From 64abcdadf132bc8ea94108e392f8ca549a2b1068 Mon Sep 17 00:00:00 2001 From: cheney2013 Date: Fri, 2 Jun 2023 12:25:21 +0800 Subject: [PATCH] UIState --- ...tom Script Template Help Documentation.url | 2 + .creator/default-meta.json | 5 + .gitignore | 24 + assets/scene.meta | 12 + assets/scene/Main.scene | 2562 +++ assets/scene/Main.scene.meta | 11 + assets/script.meta | 12 + assets/script/Main.ts | 32 + assets/script/Main.ts.meta | 9 + assets/script/component.meta | 12 + assets/script/component/UIState.ts | 653 + assets/script/component/UIState.ts.meta | 9 + assets/wealth.meta | 12 + assets/wealth/ljcz_img_004.png | Bin 0 -> 70046 bytes assets/wealth/ljcz_img_004.png.meta | 134 + assets/wealth/ly_bg_004.jpg | Bin 0 -> 177970 bytes assets/wealth/ly_bg_004.jpg.meta | 134 + assets/wealth/mkxx_img_038.png | Bin 0 -> 2314 bytes assets/wealth/mkxx_img_038.png.meta | 134 + assets/wealth/ty_bg_003.jpg | Bin 0 -> 31386 bytes assets/wealth/ty_bg_003.jpg.meta | 134 + assets/wealth/ty_btn_036.png | Bin 0 -> 14071 bytes assets/wealth/ty_btn_036.png.meta | 134 + assets/wealth/ty_btn_037.png | Bin 0 -> 9631 bytes assets/wealth/ty_btn_037.png.meta | 134 + .../uistate-inspector/@types/editor.d.ts | 1318 ++ .../uistate-inspector/@types/electron.d.ts | 16090 ++++++++++++++++ .../uistate-inspector/@types/extension.d.ts | 66 + .../uistate-inspector/@types/index.d.ts | 2 + .../uistate-inspector/@types/message.d.ts | 31 + .../alipay-mini-game/@types/index.d.ts | 14 + .../@types/packages/android/@types/index.d.ts | 72 + .../packages/asset-db/@types/message.d.ts | 179 + .../packages/asset-db/@types/public.d.ts | 120 + .../@types/packages/assets/@types/public.d.ts | 24 + .../@types/packages/assets/@types/vue.d.ts | 7 + .../@types/packages/builder/@types/index.d.ts | 2 + .../packages/builder/@types/message.d.ts | 45 + .../builder/@types/public/build-plugin.d.ts | 117 + .../builder/@types/public/build-result.d.ts | 199 + .../builder/@types/public/global.d.ts | 6 + .../packages/builder/@types/public/index.d.ts | 102 + .../builder/@types/public/options.d.ts | 222 + .../@types/public/texture-compress.d.ts | 71 + .../bytedance-mini-game/@types/index.d.ts | 26 + .../packages/certificate/@types/index.d.ts | 1 + .../channel-upload-tools/@types/index.d.ts | 1 + .../packages/console/@types/pritate.d.ts | 33 + .../packages/engine-extends/@types/glTF.d.ts | 684 + .../engine-extends/@types/gltf-validator.d.ts | 109 + .../@types/i18n-well-defined.d.ts | 811 + .../engine-extends/@types/third-parts.d.ts | 160 + .../engine/@types/editor-extends/index.d.ts | 51 + .../@types/editor-extends/index.d.ts.map | 1 + .../@types/editor-extends/manager/asset.d.ts | 15 + .../editor-extends/manager/asset.d.ts.map | 1 + .../editor-extends/manager/component.d.ts | 82 + .../editor-extends/manager/component.d.ts.map | 1 + .../@types/editor-extends/manager/dialog.d.ts | 32 + .../editor-extends/manager/dialog.d.ts.map | 1 + .../@types/editor-extends/manager/node.d.ts | 54 + .../editor-extends/manager/node.d.ts.map | 1 + .../@types/editor-extends/manager/script.d.ts | 26 + .../editor-extends/manager/script.d.ts.map | 1 + .../missing-class-reporter.d.ts | 13 + .../missing-class-reporter.d.ts.map | 1 + .../missing-object-reporter.d.ts | 8 + .../missing-object-reporter.d.ts.map | 1 + .../missing-reporter/missing-reporter.d.ts | 20 + .../missing-reporter.d.ts.map | 1 + .../missing-reporter/object-walker.d.ts | 43 + .../missing-reporter/object-walker.d.ts.map | 1 + .../@types/editor-extends/utils/geometry.d.ts | 19 + .../editor-extends/utils/geometry.d.ts.map | 1 + .../@types/editor-extends/utils/prefab.d.ts | 18 + .../editor-extends/utils/prefab.d.ts.map | 1 + .../utils/serialize/compiled/builder.d.ts | 55 + .../utils/serialize/compiled/builder.d.ts.map | 1 + .../serialize/compiled/create-class-mask.d.ts | 12 + .../compiled/create-class-mask.d.ts.map | 1 + .../utils/serialize/compiled/pack-jsons.d.ts | 8 + .../serialize/compiled/pack-jsons.d.ts.map | 1 + .../utils/serialize/compiled/types.d.ts | 101 + .../utils/serialize/compiled/types.d.ts.map | 1 + .../utils/serialize/dynamic-builder.d.ts | 74 + .../utils/serialize/dynamic-builder.d.ts.map | 1 + .../editor-extends/utils/serialize/index.d.ts | 13 + .../utils/serialize/index.d.ts.map | 1 + .../utils/serialize/parser.d.ts | 112 + .../utils/serialize/parser.d.ts.map | 1 + .../@types/editor-extends/utils/uuid.d.ts | 16 + .../@types/editor-extends/utils/uuid.d.ts.map | 1 + .../engine/@types/engine-compiler/index.d.ts | 23 + .../@types/engine-compiler/index.d.ts.map | 1 + .../@types/packages/engine/@types/index.d.ts | 15 + .../packages/engine/@types/message.d.ts | 22 + .../@types/packages/engine/@types/module.d.ts | 78 + .../fb-instant-games/@types/index.d.ts | 15 + .../packages/huawei-agc/@types/index.d.ts | 50 + .../huawei-quick-game/@types/index.d.ts | 32 + .../packages/information/@types/message.d.ts | 37 + .../packages/information/@types/public.d.ts | 18 + .../@types/packages/ios/@types/index.d.ts | 41 + .../@types/packages/linux/@types/index.d.ts | 18 + .../@types/packages/mac/@types/index.d.ts | 29 + .../@types/packages/ohos/@types/index.d.ts | 36 + .../packages/open-harmonyos/@types/index.d.ts | 37 + .../packages/oppo-mini-game/@types/index.d.ts | 30 + .../packages/package-asset/@types/public.d.ts | 60 + .../packages/preferences/@types/index.d.ts | 54 + .../packages/preferences/@types/message.d.ts | 19 + .../@types/packages/preview/@types/index.d.ts | 1 + .../packages/program/@types/message.d.ts | 21 + .../packages/program/@types/public.d.ts | 18 + .../packages/programming/@types/message.d.ts | 19 + .../@types/packages/project/@types/index.d.ts | 49 + .../packages/project/@types/message.d.ts | 19 + .../runtime-dev-tools/@types/index.d.ts | 2 + .../scene/@types/animation/public.d.ts | 156 + .../packages/scene/@types/cce/3d/assets.d.ts | 12 + .../scene/@types/cce/3d/assets.d.ts.map | 1 + .../cce/3d/facade/animation-scene-facade.d.ts | 45 + .../3d/facade/animation-scene-facade.d.ts.map | 1 + .../cce/3d/facade/general-scene-facade.d.ts | 288 + .../3d/facade/general-scene-facade.d.ts.map | 1 + .../cce/3d/facade/prefab-scene-facade.d.ts | 18 + .../3d/facade/prefab-scene-facade.d.ts.map | 1 + .../cce/3d/facade/preview-scene-facade.d.ts | 29 + .../3d/facade/preview-scene-facade.d.ts.map | 1 + .../cce/3d/facade/scene-facade-fsm.d.ts | 24 + .../cce/3d/facade/scene-facade-fsm.d.ts.map | 1 + .../cce/3d/facade/scene-facade-manager.d.ts | 318 + .../3d/facade/scene-facade-manager.d.ts.map | 1 + .../facade/scene-facade-state-interface.d.ts | 24 + .../scene-facade-state-interface.d.ts.map | 1 + .../facade/scene-facade-state-transition.d.ts | 22 + .../scene-facade-state-transition.d.ts.map | 1 + .../manager/animation-graph-preview/base.d.ts | 51 + .../animation-graph-preview/base.d.ts.map | 1 + .../animation-graph-preview/motion.d.ts | 15 + .../animation-graph-preview/motion.d.ts.map | 1 + .../animation-graph-preview/transition.d.ts | 14 + .../transition.d.ts.map | 1 + .../animation/editor-animation-clip.d.ts | 283 + .../animation/editor-animation-clip.d.ts.map | 1 + .../editor-animation-combined-curve.d.ts | 53 + .../editor-animation-combined-curve.d.ts.map | 1 + .../editor-animation-curve-base.d.ts | 49 + .../editor-animation-curve-base.d.ts.map | 1 + .../animation/editor-animation-curve.d.ts | 81 + .../animation/editor-animation-curve.d.ts.map | 1 + .../cce/3d/manager/animation/index.d.ts | 230 + .../cce/3d/manager/animation/index.d.ts.map | 1 + .../3d/manager/animation/type-defines.d.ts | 100 + .../manager/animation/type-defines.d.ts.map | 1 + .../3d/manager/animation/uniform-handler.d.ts | 30 + .../animation/uniform-handler.d.ts.map | 1 + .../cce/3d/manager/animation/utils.d.ts | 121 + .../cce/3d/manager/animation/utils.d.ts.map | 1 + .../asset/animation-graph-variant.d.ts | 14 + .../asset/animation-graph-variant.d.ts.map | 1 + .../cce/3d/manager/asset/animation-mask.d.ts | 11 + .../3d/manager/asset/animation-mask.d.ts.map | 1 + .../cce/3d/manager/asset/asset-watcher.d.ts | 29 + .../3d/manager/asset/asset-watcher.d.ts.map | 1 + .../manager/asset/edit-component-asset.d.ts | 34 + .../asset/edit-component-asset.d.ts.map | 1 + .../@types/cce/3d/manager/asset/index.d.ts | 153 + .../cce/3d/manager/asset/index.d.ts.map | 1 + .../@types/cce/3d/manager/asset/material.d.ts | 80 + .../cce/3d/manager/asset/material.d.ts.map | 1 + .../3d/manager/asset/physics-material.d.ts | 6 + .../manager/asset/physics-material.d.ts.map | 1 + .../cce/3d/manager/asset/render-pipeline.d.ts | 38 + .../3d/manager/asset/render-pipeline.d.ts.map | 1 + .../@types/cce/3d/manager/asset/utils.d.ts | 7 + .../cce/3d/manager/asset/utils.d.ts.map | 1 + .../camera/2d/camera-controller-2d.d.ts | 61 + .../camera/2d/camera-controller-2d.d.ts.map | 1 + .../3d/manager/camera/2d/mode/idle-mode.d.ts | 7 + .../manager/camera/2d/mode/idle-mode.d.ts.map | 1 + .../3d/manager/camera/2d/mode/mode-base.d.ts | 23 + .../manager/camera/2d/mode/mode-base.d.ts.map | 1 + .../3d/manager/camera/2d/mode/pan-mode.d.ts | 10 + .../manager/camera/2d/mode/pan-mode.d.ts.map | 1 + .../3d/manager/camera/2d/ruler-interface.d.ts | 9 + .../camera/2d/ruler-interface.d.ts.map | 1 + .../cce/3d/manager/camera/2d/web/ruler.d.ts | 18 + .../3d/manager/camera/2d/web/ruler.d.ts.map | 1 + .../camera/3d/camera-controller-3d.d.ts | 109 + .../camera/3d/camera-controller-3d.d.ts.map | 1 + .../3d/manager/camera/3d/mode/idle-mode.d.ts | 7 + .../manager/camera/3d/mode/idle-mode.d.ts.map | 1 + .../3d/manager/camera/3d/mode/mode-base.d.ts | 23 + .../manager/camera/3d/mode/mode-base.d.ts.map | 1 + .../3d/manager/camera/3d/mode/orbit-mode.d.ts | 12 + .../camera/3d/mode/orbit-mode.d.ts.map | 1 + .../3d/manager/camera/3d/mode/pan-mode.d.ts | 12 + .../manager/camera/3d/mode/pan-mode.d.ts.map | 1 + .../manager/camera/3d/mode/wander-mode.d.ts | 32 + .../camera/3d/mode/wander-mode.d.ts.map | 1 + .../cce/3d/manager/camera/animate-value.d.ts | 28 + .../3d/manager/camera/animate-value.d.ts.map | 1 + .../camera/camera-controller-base.d.ts | 49 + .../camera/camera-controller-base.d.ts.map | 1 + .../camera/editor-camera-components.d.ts | 29 + .../camera/editor-camera-components.d.ts.map | 1 + .../cce/3d/manager/camera/grid/index.d.ts | 42 + .../cce/3d/manager/camera/grid/index.d.ts.map | 1 + .../3d/manager/camera/grid/linear-ticks.d.ts | 35 + .../manager/camera/grid/linear-ticks.d.ts.map | 1 + .../@types/cce/3d/manager/camera/index.d.ts | 122 + .../cce/3d/manager/camera/index.d.ts.map | 1 + .../cce/3d/manager/camera/listener.d.ts | 8 + .../cce/3d/manager/camera/listener.d.ts.map | 1 + .../camera/operation-mode-interface.d.ts | 13 + .../camera/operation-mode-interface.d.ts.map | 1 + .../@types/cce/3d/manager/camera/tween.d.ts | 51 + .../cce/3d/manager/camera/tween.d.ts.map | 1 + .../@types/cce/3d/manager/camera/utils.d.ts | 84 + .../cce/3d/manager/camera/utils.d.ts.map | 1 + .../cce/3d/manager/component/index.d.ts | 98 + .../cce/3d/manager/component/index.d.ts.map | 1 + .../cce/3d/manager/component/utils.d.ts | 22 + .../cce/3d/manager/component/utils.d.ts.map | 1 + .../scene/@types/cce/3d/manager/effects.d.ts | 28 + .../@types/cce/3d/manager/effects.d.ts.map | 1 + .../3d/manager/engine/geometry_renderer.d.ts | 18 + .../manager/engine/geometry_renderer.d.ts.map | 1 + .../@types/cce/3d/manager/engine/index.d.ts | 55 + .../cce/3d/manager/engine/index.d.ts.map | 1 + .../@types/cce/3d/manager/engine/time.d.ts | 67 + .../cce/3d/manager/engine/time.d.ts.map | 1 + .../scene/@types/cce/3d/manager/gizmos.d.ts | 3 + .../@types/cce/3d/manager/gizmos.d.ts.map | 1 + .../cce/3d/manager/history/animation.d.ts | 30 + .../cce/3d/manager/history/animation.d.ts.map | 1 + .../cce/3d/manager/history/icommand.d.ts | 5 + .../cce/3d/manager/history/icommand.d.ts.map | 1 + .../@types/cce/3d/manager/history/prefab.d.ts | 4 + .../cce/3d/manager/history/prefab.d.ts.map | 1 + .../cce/3d/manager/history/preview.d.ts | 4 + .../cce/3d/manager/history/preview.d.ts.map | 1 + .../@types/cce/3d/manager/history/scene.d.ts | 50 + .../cce/3d/manager/history/scene.d.ts.map | 1 + .../3d/manager/history/snapshot-command.d.ts | 11 + .../manager/history/snapshot-command.d.ts.map | 1 + .../3d/manager/history/undo-manager-base.d.ts | 26 + .../history/undo-manager-base.d.ts.map | 1 + .../@types/cce/3d/manager/ipc/index.d.ts | 3 + .../@types/cce/3d/manager/ipc/index.d.ts.map | 1 + .../@types/cce/3d/manager/ipc/web/ipc.d.ts | 12 + .../cce/3d/manager/ipc/web/ipc.d.ts.map | 1 + .../cce/3d/manager/ipc/web/webview.d.ts | 18 + .../cce/3d/manager/ipc/web/webview.d.ts.map | 1 + .../scene/@types/cce/3d/manager/lod.d.ts | 40 + .../scene/@types/cce/3d/manager/lod.d.ts.map | 1 + .../3d/manager/material-preview/index.d.ts | 24 + .../manager/material-preview/index.d.ts.map | 1 + .../cce/3d/manager/mesh-preview/index.d.ts | 32 + .../3d/manager/mesh-preview/index.d.ts.map | 1 + .../scene/@types/cce/3d/manager/message.d.ts | 9 + .../@types/cce/3d/manager/message.d.ts.map | 1 + .../cce/3d/manager/mini-preview/apply.d.ts | 5 + .../3d/manager/mini-preview/apply.d.ts.map | 1 + .../cce/3d/manager/mini-preview/index.d.ts | 24 + .../3d/manager/mini-preview/index.d.ts.map | 1 + .../3d/manager/mini-preview/private.d.ts.map | 1 + .../cce/3d/manager/model-preview/index.d.ts | 89 + .../3d/manager/model-preview/index.d.ts.map | 1 + .../@types/cce/3d/manager/node/index.d.ts | 282 + .../@types/cce/3d/manager/node/index.d.ts.map | 1 + .../@types/cce/3d/manager/node/utils.d.ts | 33 + .../@types/cce/3d/manager/node/utils.d.ts.map | 1 + .../@types/cce/3d/manager/operation.d.ts | 3 + .../@types/cce/3d/manager/operation.d.ts.map | 1 + .../cce/3d/manager/particle-2d/index.d.ts | 7 + .../cce/3d/manager/particle-2d/index.d.ts.map | 1 + .../scene/@types/cce/3d/manager/particle.d.ts | 75 + .../@types/cce/3d/manager/particle.d.ts.map | 1 + .../cce/3d/manager/physics-2d/index.d.ts | 12 + .../cce/3d/manager/physics-2d/index.d.ts.map | 1 + .../manager/physics-2d/marching-squares.d.ts | 13 + .../physics-2d/marching-squares.d.ts.map | 1 + .../@types/cce/3d/manager/physics-2d/rdp.d.ts | 3 + .../cce/3d/manager/physics-2d/rdp.d.ts.map | 1 + .../scene/@types/cce/3d/manager/plugin.d.ts | 39 + .../@types/cce/3d/manager/plugin.d.ts.map | 1 + .../cce/3d/manager/prefab/component.d.ts | 47 + .../cce/3d/manager/prefab/component.d.ts.map | 1 + .../@types/cce/3d/manager/prefab/index.d.ts | 86 + .../cce/3d/manager/prefab/index.d.ts.map | 1 + .../@types/cce/3d/manager/prefab/node.d.ts | 117 + .../cce/3d/manager/prefab/node.d.ts.map | 1 + .../@types/cce/3d/manager/prefab/utils.d.ts | 143 + .../cce/3d/manager/prefab/utils.d.ts.map | 1 + .../cce/3d/manager/preview-play/index.d.ts | 62 + .../3d/manager/preview-play/index.d.ts.map | 1 + .../manager/preview/Interactive-preview.d.ts | 27 + .../preview/Interactive-preview.d.ts.map | 1 + .../@types/cce/3d/manager/preview/buffer.d.ts | 44 + .../cce/3d/manager/preview/buffer.d.ts.map | 1 + .../@types/cce/3d/manager/preview/index.d.ts | 30 + .../cce/3d/manager/preview/index.d.ts.map | 1 + .../cce/3d/manager/preview/preview-base.d.ts | 10 + .../3d/manager/preview/preview-base.d.ts.map | 1 + .../manager/preview/scene-preview/index.d.ts | 18 + .../preview/scene-preview/index.d.ts.map | 1 + .../3d/manager/scene-events-interface.d.ts | 21 + .../manager/scene-events-interface.d.ts.map | 1 + .../cce/3d/manager/scene-view/index.d.ts | 24 + .../cce/3d/manager/scene-view/index.d.ts.map | 1 + .../3d/manager/scene-view/light-manager.d.ts | 16 + .../manager/scene-view/light-manager.d.ts.map | 1 + .../manager/scene-view/scene-view-data.d.ts | 22 + .../scene-view/scene-view-data.d.ts.map | 1 + .../@types/cce/3d/manager/scene/index.d.ts | 4 + .../cce/3d/manager/scene/index.d.ts.map | 1 + .../scene/proxy/animation-scene-proxy.d.ts | 57 + .../proxy/animation-scene-proxy.d.ts.map | 1 + .../scene/proxy/gameview-scene-proxy.d.ts | 42 + .../scene/proxy/gameview-scene-proxy.d.ts.map | 1 + .../scene/proxy/general-scene-proxy.d.ts | 76 + .../scene/proxy/general-scene-proxy.d.ts.map | 1 + .../scene/proxy/prefab-scene-proxy.d.ts | 71 + .../scene/proxy/prefab-scene-proxy.d.ts.map | 1 + .../3d/manager/scene/proxy/scene-proxy.d.ts | 83 + .../manager/scene/proxy/scene-proxy.d.ts.map | 1 + .../cce/3d/manager/scene/scene-cache.d.ts | 25 + .../cce/3d/manager/scene/scene-cache.d.ts.map | 1 + .../cce/3d/manager/scene/scene-manager.d.ts | 93 + .../3d/manager/scene/scene-manager.d.ts.map | 1 + .../@types/cce/3d/manager/scene/utils.d.ts | 41 + .../cce/3d/manager/scene/utils.d.ts.map | 1 + .../scene/@types/cce/3d/manager/scripts.d.ts | 40 + .../@types/cce/3d/manager/scripts.d.ts.map | 1 + .../@types/cce/3d/manager/selection.d.ts | 22 + .../@types/cce/3d/manager/selection.d.ts.map | 1 + .../@types/cce/3d/manager/shortcut/index.d.ts | 18 + .../cce/3d/manager/shortcut/index.d.ts.map | 1 + .../3d/manager/skeleton-preview/index.d.ts | 16 + .../manager/skeleton-preview/index.d.ts.map | 1 + .../manager/startup/engine/adapter-util.d.ts | 12 + .../startup/engine/adapter-util.d.ts.map | 1 + .../cce/3d/manager/startup/engine/index.d.ts | 30 + .../3d/manager/startup/engine/index.d.ts.map | 1 + .../@types/cce/3d/manager/startup/index.d.ts | 66 + .../cce/3d/manager/startup/index.d.ts.map | 1 + .../@types/cce/3d/manager/startup/log.d.ts | 8 + .../cce/3d/manager/startup/log.d.ts.map | 1 + .../cce/3d/manager/startup/overwrite.d.ts | 14 + .../cce/3d/manager/startup/overwrite.d.ts.map | 1 + .../@types/cce/3d/manager/terrain/index.d.ts | 52 + .../cce/3d/manager/terrain/index.d.ts.map | 1 + .../cce/3d/manager/thumbnail/index.d.ts | 34 + .../cce/3d/manager/thumbnail/index.d.ts.map | 1 + .../thumbnail/mesh-thumbnail-generator.d.ts | 12 + .../mesh-thumbnail-generator.d.ts.map | 1 + .../thumbnail-generator-interface.d.ts | 15 + .../thumbnail-generator-interface.d.ts.map | 1 + .../scene/@types/cce/3d/manager/ui/index.d.ts | 7 + .../@types/cce/3d/manager/ui/index.d.ts.map | 1 + .../cce/3d/manager/unit-test/index.d.ts | 10 + .../cce/3d/manager/unit-test/index.d.ts.map | 1 + .../manager/unit-test/nested-prefab-test.d.ts | 8 + .../unit-test/nested-prefab-test.d.ts.map | 1 + .../unit-test/target-override-test.d.ts | 8 + .../unit-test/target-override-test.d.ts.map | 1 + .../unit-test/unit-test-interface.d.ts | 6 + .../unit-test/unit-test-interface.d.ts.map | 1 + .../cce/3d/manager/wireframe/index.d.ts | 59 + .../cce/3d/manager/wireframe/index.d.ts.map | 1 + .../cce/3d/manager/wireframe/wireframe.d.ts | 7 + .../3d/manager/wireframe/wireframe.d.ts.map | 1 + .../3d/preload/preview/editor-preview.d.ts | 13 + .../preload/preview/editor-preview.d.ts.map | 1 + .../cce/3d/preload/preview/preload.d.ts | 11 + .../cce/3d/preload/preview/preload.d.ts.map | 1 + .../@types/cce/3d/preload/web/preload.d.ts | 6 + .../cce/3d/preload/web/preload.d.ts.map | 1 + .../scene/@types/cce/3d/utils/dump/index.d.ts | 56 + .../@types/cce/3d/utils/dump/index.d.ts.map | 1 + .../utils/get-component-function-of-node.d.ts | 4 + .../get-component-function-of-node.d.ts.map | 1 + .../@types/cce/3d/utils/is-child-class.d.ts | 3 + .../cce/3d/utils/is-child-class.d.ts.map | 1 + .../state-machine/finite-state-machine.d.ts | 14 + .../finite-state-machine.d.ts.map | 1 + .../utils/state-machine/state-interface.d.ts | 7 + .../state-machine/state-interface.d.ts.map | 1 + .../3d/utils/state-machine/transition.d.ts | 14 + .../utils/state-machine/transition.d.ts.map | 1 + .../scene/@types/cce/3d/utils/timer-util.d.ts | 20 + .../@types/cce/3d/utils/timer-util.d.ts.map | 1 + .../scene/@types/cce/3d/utils/types.d.ts | 31 + .../scene/@types/cce/3d/utils/types.d.ts.map | 1 + .../scene/@types/cce/public/EventEmitter.d.ts | 7 + .../@types/cce/public/EventEmitter.d.ts.map | 1 + .../scene/@types/cce/public/event-enum.d.ts | 28 + .../@types/cce/public/event-enum.d.ts.map | 1 + .../@types/cce/public/gizmos/3d/cce.d.ts | 23 + .../@types/cce/public/gizmos/3d/cce.d.ts.map | 1 + .../components/camera-component-gizmo.d.ts | 28 + .../camera-component-gizmo.d.ts.map | 1 + .../3d/elements/components/canvas-gizmo.d.ts | 19 + .../elements/components/canvas-gizmo.d.ts.map | 1 + .../colliders/2d/box-collider-2d-gizmo.d.ts | 29 + .../2d/box-collider-2d-gizmo.d.ts.map | 1 + .../2d/circle-collider-2d-gizmo.d.ts | 26 + .../2d/circle-collider-2d-gizmo.d.ts.map | 1 + .../2d/polygon-collider-2d-gizmo.d.ts | 44 + .../2d/polygon-collider-2d-gizmo.d.ts.map | 1 + .../box-collider-component-gizmo.d.ts | 21 + .../box-collider-component-gizmo.d.ts.map | 1 + .../capsule-collider-component-gizmo.d.ts | 23 + .../capsule-collider-component-gizmo.d.ts.map | 1 + .../cone-collider-component-gizmo.d.ts | 23 + .../cone-collider-component-gizmo.d.ts.map | 1 + .../cylinder-collider-component-gizmo.d.ts | 23 + ...cylinder-collider-component-gizmo.d.ts.map | 1 + .../colliders/mesh-collider-gizmo.d.ts | 18 + .../colliders/mesh-collider-gizmo.d.ts.map | 1 + .../colliders/plane-collider-gizmo.d.ts | 12 + .../colliders/plane-collider-gizmo.d.ts.map | 1 + .../colliders/simplex-collider-gizmo.d.ts | 20 + .../colliders/simplex-collider-gizmo.d.ts.map | 1 + .../sphere-collider-component-gizmo.d.ts | 23 + .../sphere-collider-component-gizmo.d.ts.map | 1 + .../joint/2d/Spring-joint-2d-gizmo.d.ts | 5 + .../joint/2d/Spring-joint-2d-gizmo.d.ts.map | 1 + .../joint/2d/distance-joint-2d-gizmo.d.ts | 9 + .../joint/2d/distance-joint-2d-gizmo.d.ts.map | 1 + .../joint/2d/fixed-joint-2d-gizmo.d.ts | 5 + .../joint/2d/fixed-joint-2d-gizmo.d.ts.map | 1 + .../joint/2d/hinge-joint-2d-gizmo.d.ts | 5 + .../joint/2d/hinge-joint-2d-gizmo.d.ts.map | 1 + .../components/joint/2d/joint-2d-gizmo.d.ts | 27 + .../joint/2d/joint-2d-gizmo.d.ts.map | 1 + .../joint/2d/relative-joint-2d-gizmo.d.ts | 5 + .../joint/2d/relative-joint-2d-gizmo.d.ts.map | 1 + .../joint/2d/slider-joint-2d-gizmo.d.ts | 5 + .../joint/2d/slider-joint-2d-gizmo.d.ts.map | 1 + .../joint/2d/wheel-joint-2d-gizmo.d.ts | 5 + .../joint/2d/wheel-joint-2d-gizmo.d.ts.map | 1 + .../components/light-component-gizmo.d.ts | 29 + .../components/light-component-gizmo.d.ts.map | 1 + .../directional-light-component-gizmo.d.ts | 20 + ...directional-light-component-gizmo.d.ts.map | 1 + .../components/light/light-probe-gizmo.d.ts | 57 + .../light/light-probe-gizmo.d.ts.map | 1 + .../light/sphere-light-component-gizmo.d.ts | 25 + .../sphere-light-component-gizmo.d.ts.map | 1 + .../light/spot-light-component-gizmo.d.ts | 31 + .../light/spot-light-component-gizmo.d.ts.map | 1 + .../elements/components/lod-group-gizmo.d.ts | 20 + .../components/lod-group-gizmo.d.ts.map | 1 + .../components/model-component-gizmo.d.ts | 18 + .../components/model-component-gizmo.d.ts.map | 1 + .../particle-system-component-gizmo.d.ts | 56 + .../particle-system-component-gizmo.d.ts.map | 1 + .../components/reflection-probe-gizmo.d.ts | 31 + .../reflection-probe-gizmo.d.ts.map | 1 + .../skinning-model-component-gizmo.d.ts | 17 + .../skinning-model-component-gizmo.d.ts.map | 1 + .../components/terrain/terrain-brush.d.ts | 62 + .../components/terrain/terrain-brush.d.ts.map | 1 + .../terrain/terrain-editor-manage.d.ts | 7 + .../terrain/terrain-editor-manage.d.ts.map | 1 + .../terrain/terrain-editor-mode.d.ts | 16 + .../terrain/terrain-editor-mode.d.ts.map | 1 + .../terrain/terrain-editor-paint.d.ts | 24 + .../terrain/terrain-editor-paint.d.ts.map | 1 + .../terrain/terrain-editor-sculpt-tools.d.ts | 31 + .../terrain-editor-sculpt-tools.d.ts.map | 1 + .../terrain/terrain-editor-sculpt.d.ts | 22 + .../terrain/terrain-editor-sculpt.d.ts.map | 1 + .../terrain/terrain-editor-select.d.ts | 29 + .../terrain/terrain-editor-select.d.ts.map | 1 + .../components/terrain/terrain-editor.d.ts | 27 + .../terrain/terrain-editor.d.ts.map | 1 + .../components/terrain/terrain-gizmo.d.ts | 74 + .../components/terrain/terrain-gizmo.d.ts.map | 1 + .../components/terrain/terrain-operation.d.ts | 65 + .../terrain/terrain-operation.d.ts.map | 1 + .../ui-transform-component-gizmo.d.ts | 20 + .../ui-transform-component-gizmo.d.ts.map | 1 + .../components/video-player-gizmo.d.ts | 27 + .../components/video-player-gizmo.d.ts.map | 1 + .../3d/elements/components/webview-gizmo.d.ts | 24 + .../components/webview-gizmo.d.ts.map | 1 + .../elements/controller/box-controller.d.ts | 31 + .../controller/box-controller.d.ts.map | 1 + .../controller/capsule-controller.d.ts | 47 + .../controller/capsule-controller.d.ts.map | 1 + .../controller/circle-controller.d.ts | 31 + .../controller/circle-controller.d.ts.map | 1 + .../elements/controller/cone-controller.d.ts | 42 + .../controller/cone-controller.d.ts.map | 1 + .../elements/controller/controller-base.d.ts | 107 + .../controller/controller-base.d.ts.map | 1 + .../controller/cylinder-controller.d.ts | 47 + .../controller/cylinder-controller.d.ts.map | 1 + .../direction-light-controller.d.ts | 10 + .../direction-light-controller.d.ts.map | 1 + .../elements/controller/disc-controller.d.ts | 57 + .../controller/disc-controller.d.ts.map | 1 + .../controller/editable-controller.d.ts | 44 + .../controller/editable-controller.d.ts.map | 1 + .../controller/frustum-controller.d.ts | 37 + .../controller/frustum-controller.d.ts.map | 1 + .../controller/hemisphere-controller.d.ts | 29 + .../controller/hemisphere-controller.d.ts.map | 1 + .../elements/controller/icon-controller.d.ts | 18 + .../controller/icon-controller.d.ts.map | 1 + .../elements/controller/image-controller.d.ts | 15 + .../controller/image-controller.d.ts.map | 1 + .../controller/joint-2d-controller.d.ts | 39 + .../controller/joint-2d-controller.d.ts.map | 1 + .../light-probe-bounding-box-controller.d.ts | 31 + ...ght-probe-bounding-box-controller.d.ts.map | 1 + .../controller/light-probe-controller.d.ts | 117 + .../light-probe-controller.d.ts.map | 1 + .../light-probe-tetrahedron-controller.d.ts | 28 + ...ight-probe-tetrahedron-controller.d.ts.map | 1 + .../elements/controller/line-controller.d.ts | 14 + .../controller/line-controller.d.ts.map | 1 + .../elements/controller/lines-controller.d.ts | 15 + .../controller/lines-controller.d.ts.map | 1 + .../elements/controller/lod-controller.d.ts | 19 + .../controller/lod-controller.d.ts.map | 1 + .../elements/controller/mesh-controller.d.ts | 11 + .../controller/mesh-controller.d.ts.map | 1 + .../particlesystem-cone-controller.d.ts | 42 + .../particlesystem-cone-controller.d.ts.map | 1 + .../elements/controller/plane-controller.d.ts | 11 + .../controller/plane-controller.d.ts.map | 1 + .../elements/controller/point-controller.d.ts | 11 + .../controller/point-controller.d.ts.map | 1 + .../controller/polygon-controller.d.ts | 51 + .../controller/polygon-controller.d.ts.map | 1 + .../controller/position-controller.d.ts | 43 + .../controller/position-controller.d.ts.map | 1 + .../elements/controller/quad-controller.d.ts | 25 + .../controller/quad-controller.d.ts.map | 1 + .../controller/rectangle-controller.d.ts | 64 + .../controller/rectangle-controller.d.ts.map | 1 + .../controller/rotation-controller.d.ts | 56 + .../controller/rotation-controller.d.ts.map | 1 + .../elements/controller/scale-controller.d.ts | 37 + .../controller/scale-controller.d.ts.map | 1 + .../controller/sphere-controller.d.ts | 34 + .../controller/sphere-controller.d.ts.map | 1 + .../controller/terrain-controller.d.ts | 20 + .../controller/terrain-controller.d.ts.map | 1 + .../controller/tetrahedron-cotroller.d.ts | 13 + .../controller/tetrahedron-cotroller.d.ts.map | 1 + .../controller/triangle-controller.d.ts | 14 + .../controller/triangle-controller.d.ts.map | 1 + .../controller/world-axis-controller.d.ts | 23 + .../controller/world-axis-controller.d.ts.map | 1 + .../public/gizmos/3d/elements/gizmo-base.d.ts | 59 + .../gizmos/3d/elements/gizmo-base.d.ts.map | 1 + .../icon-gizmo/camera-icon-gizmo.d.ts | 6 + .../icon-gizmo/camera-icon-gizmo.d.ts.map | 1 + .../directional-light-icon-gizmo.d.ts | 6 + .../directional-light-icon-gizmo.d.ts.map | 1 + .../elements/icon-gizmo/icon-gizmo-base.d.ts | 29 + .../icon-gizmo/icon-gizmo-base.d.ts.map | 1 + .../icon-gizmo/light-probe-icon-gizmo.d.ts | 6 + .../light-probe-icon-gizmo.d.ts.map | 1 + .../particle-system-icon-gizmo.d.ts | 6 + .../particle-system-icon-gizmo.d.ts.map | 1 + .../reflection-probe-icon-gizmo.d.ts | 8 + .../reflection-probe-icon-gizmo.d.ts.map | 1 + .../icon-gizmo/sphere-light-icon-gizmo.d.ts | 7 + .../sphere-light-icon-gizmo.d.ts.map | 1 + .../icon-gizmo/spot-light-icon-gizmo.d.ts | 7 + .../icon-gizmo/spot-light-icon-gizmo.d.ts.map | 1 + .../listener/gizmo-event-listener.d.ts | 9 + .../listener/gizmo-event-listener.d.ts.map | 1 + .../gizmo-operation-event-listener.d.ts | 20 + .../gizmo-operation-event-listener.d.ts.map | 1 + .../light-probe-edit-mode-listener.d.ts | 6 + .../light-probe-edit-mode-listener.d.ts.map | 1 + .../gizmos/3d/elements/scene-gizmo.d.ts | 16 + .../gizmos/3d/elements/scene-gizmo.d.ts.map | 1 + .../3d/elements/transform/position-gizmo.d.ts | 83 + .../transform/position-gizmo.d.ts.map | 1 + .../3d/elements/transform/rect-gizmo.d.ts | 57 + .../3d/elements/transform/rect-gizmo.d.ts.map | 1 + .../3d/elements/transform/rotation-gizmo.d.ts | 33 + .../transform/rotation-gizmo.d.ts.map | 1 + .../3d/elements/transform/scale-gizmo.d.ts | 24 + .../elements/transform/scale-gizmo.d.ts.map | 1 + .../elements/transform/transform-gizmo.d.ts | 31 + .../transform/transform-gizmo.d.ts.map | 1 + .../utils/controller-shape-collider.d.ts | 7 + .../utils/controller-shape-collider.d.ts.map | 1 + .../3d/elements/utils/controller-shape.d.ts | 151 + .../elements/utils/controller-shape.d.ts.map | 1 + .../3d/elements/utils/controller-utils.d.ts | 43 + .../elements/utils/controller-utils.d.ts.map | 1 + .../cce/public/gizmos/3d/gizmo-defines.d.ts | 18 + .../public/gizmos/3d/gizmo-defines.d.ts.map | 1 + .../cce/public/gizmos/3d/gizmo-manager.d.ts | 169 + .../public/gizmos/3d/gizmo-manager.d.ts.map | 1 + .../cce/public/gizmos/3d/gizmo-operation.d.ts | 58 + .../public/gizmos/3d/gizmo-operation.d.ts.map | 1 + .../@types/cce/public/gizmos/defines.d.ts | 99 + .../@types/cce/public/gizmos/defines.d.ts.map | 1 + .../cce/public/gizmos/gizmo-config.d.ts | 6 + .../cce/public/gizmos/gizmo-config.d.ts.map | 1 + .../scene/@types/cce/public/gizmos/index.d.ts | 3 + .../@types/cce/public/gizmos/index.d.ts.map | 1 + .../@types/cce/public/gizmos/utils/2d.d.ts | 18 + .../cce/public/gizmos/utils/2d.d.ts.map | 1 + .../@types/cce/public/gizmos/utils/3d.d.ts | 23 + .../cce/public/gizmos/utils/3d.d.ts.map | 1 + .../cce/public/gizmos/utils/engine/2d.d.ts | 39 + .../public/gizmos/utils/engine/2d.d.ts.map | 1 + .../cce/public/gizmos/utils/engine/3d.d.ts | 67 + .../public/gizmos/utils/engine/3d.d.ts.map | 1 + .../gizmos/utils/engine/engine-interface.d.ts | 30 + .../utils/engine/engine-interface.d.ts.map | 1 + .../cce/public/gizmos/utils/engine/index.d.ts | 3 + .../public/gizmos/utils/engine/index.d.ts.map | 1 + .../cce/public/gizmos/utils/external.d.ts | 14 + .../cce/public/gizmos/utils/external.d.ts.map | 1 + .../@types/cce/public/gizmos/utils/index.d.ts | 3 + .../cce/public/gizmos/utils/index.d.ts.map | 1 + .../@types/cce/public/gizmos/utils/misc.d.ts | 10 + .../cce/public/gizmos/utils/misc.d.ts.map | 1 + .../gizmos/utils/rect-transform-snapping.d.ts | 111 + .../utils/rect-transform-snapping.d.ts.map | 1 + .../cce/public/gizmos/utils/set-util.d.ts | 28 + .../cce/public/gizmos/utils/set-util.d.ts.map | 1 + .../gizmos/utils/transform-tool-data.d.ts | 63 + .../gizmos/utils/transform-tool-data.d.ts.map | 1 + .../public/gizmos/utils/utils-interface.d.ts | 58 + .../gizmos/utils/utils-interface.d.ts.map | 1 + .../scene/@types/cce/public/ipc/utils.d.ts | 36 + .../@types/cce/public/ipc/utils.d.ts.map | 1 + .../@types/cce/public/operation/index.d.ts | 81 + .../cce/public/operation/index.d.ts.map | 1 + .../selection/gizmo-selection-logic.d.ts | 30 + .../selection/gizmo-selection-logic.d.ts.map | 1 + .../cce/public/selection/gizmo-selection.d.ts | 32 + .../public/selection/gizmo-selection.d.ts.map | 1 + .../@types/cce/public/selection/index.d.ts | 72 + .../cce/public/selection/index.d.ts.map | 1 + .../cce/public/selection/uuid-array.d.ts | 13 + .../cce/public/selection/uuid-array.d.ts.map | 1 + .../packages/scene/@types/cce/utils/aabb.d.ts | 130 + .../scene/@types/cce/utils/aabb.d.ts.map | 1 + .../scene/@types/cce/utils/assertion.d.ts | 14 + .../scene/@types/cce/utils/assertion.d.ts.map | 1 + .../scene/@types/cce/utils/asset.d.ts | 9 + .../scene/@types/cce/utils/asset.d.ts.map | 1 + .../@types/cce/utils/callbacks-invoker.d.ts | 99 + .../cce/utils/callbacks-invoker.d.ts.map | 1 + .../@types/cce/utils/device-adapter.d.ts | 41 + .../@types/cce/utils/device-adapter.d.ts.map | 1 + .../scene/@types/cce/utils/dump/decode.d.ts | 28 + .../@types/cce/utils/dump/decode.d.ts.map | 1 + .../@types/cce/utils/dump/dump-defines.d.ts | 6 + .../cce/utils/dump/dump-defines.d.ts.map | 1 + .../scene/@types/cce/utils/dump/encode.d.ts | 27 + .../@types/cce/utils/dump/encode.d.ts.map | 1 + .../scene/@types/cce/utils/dump/index.d.ts | 18 + .../@types/cce/utils/dump/index.d.ts.map | 1 + .../dump/types/animation-curve-dump.d.ts | 10 + .../dump/types/animation-curve-dump.d.ts.map | 1 + .../cce/utils/dump/types/asset-dump.d.ts | 9 + .../cce/utils/dump/types/asset-dump.d.ts.map | 1 + .../cce/utils/dump/types/component-dump.d.ts | 9 + .../utils/dump/types/component-dump.d.ts.map | 1 + .../cce/utils/dump/types/dump-interface.d.ts | 6 + .../utils/dump/types/dump-interface.d.ts.map | 1 + .../cce/utils/dump/types/gradient-dump.d.ts | 9 + .../utils/dump/types/gradient-dump.d.ts.map | 1 + .../cce/utils/dump/types/node-dump.d.ts | 9 + .../cce/utils/dump/types/node-dump.d.ts.map | 1 + .../cce/utils/dump/types/number-dump.d.ts | 9 + .../cce/utils/dump/types/number-dump.d.ts.map | 1 + .../cce/utils/dump/types/real-curve-dump.d.ts | 12 + .../utils/dump/types/real-curve-dump.d.ts.map | 1 + .../cce/utils/dump/types/string-dump.d.ts | 9 + .../cce/utils/dump/types/string-dump.d.ts.map | 1 + .../utils/dump/types/typed-array-dump.d.ts | 9 + .../dump/types/typed-array-dump.d.ts.map | 1 + .../cce/utils/dump/types/value-type-dump.d.ts | 9 + .../utils/dump/types/value-type-dump.d.ts.map | 1 + .../scene/@types/cce/utils/dump/utils.d.ts | 25 + .../@types/cce/utils/dump/utils.d.ts.map | 1 + .../packages/scene/@types/cce/utils/env.d.ts | 10 + .../scene/@types/cce/utils/env.d.ts.map | 1 + .../scene/@types/cce/utils/event-emitter.d.ts | 9 + .../@types/cce/utils/event-emitter.d.ts.map | 1 + .../@types/cce/utils/geom-utils/enums.d.ts | 21 + .../cce/utils/geom-utils/enums.d.ts.map | 1 + .../cce/utils/geom-utils/intersect.d.ts | 8 + .../cce/utils/geom-utils/intersect.d.ts.map | 1 + .../@types/cce/utils/geom-utils/ray.d.ts | 93 + .../@types/cce/utils/geom-utils/ray.d.ts.map | 1 + .../@types/cce/utils/geom-utils/triangle.d.ts | 107 + .../cce/utils/geom-utils/triangle.d.ts.map | 1 + .../scene/@types/cce/utils/graphics.d.ts | 11 + .../scene/@types/cce/utils/graphics.d.ts.map | 1 + .../scene/@types/cce/utils/index.d.ts | 4 + .../scene/@types/cce/utils/index.d.ts.map | 1 + .../scene/@types/cce/utils/ipc/utils.d.ts | 44 + .../scene/@types/cce/utils/ipc/utils.d.ts.map | 1 + .../scene/@types/cce/utils/lodash.d.ts | 3 + .../scene/@types/cce/utils/lodash.d.ts.map | 1 + .../scene/@types/cce/utils/math/index.d.ts | 179 + .../@types/cce/utils/math/index.d.ts.map | 1 + .../scene/@types/cce/utils/math/mat3.d.ts | 124 + .../scene/@types/cce/utils/math/mat3.d.ts.map | 1 + .../scene/@types/cce/utils/math/mat4.d.ts | 209 + .../scene/@types/cce/utils/math/mat4.d.ts.map | 1 + .../scene/@types/cce/utils/math/quat.d.ts | 179 + .../scene/@types/cce/utils/math/quat.d.ts.map | 1 + .../@types/cce/utils/math/type-define.d.ts | 74 + .../cce/utils/math/type-define.d.ts.map | 1 + .../scene/@types/cce/utils/math/utils.d.ts | 135 + .../@types/cce/utils/math/utils.d.ts.map | 1 + .../scene/@types/cce/utils/math/vec2.d.ts | 154 + .../scene/@types/cce/utils/math/vec2.d.ts.map | 1 + .../scene/@types/cce/utils/math/vec3.d.ts | 208 + .../scene/@types/cce/utils/math/vec3.d.ts.map | 1 + .../@types/cce/utils/memop/recycle-pool.d.ts | 44 + .../cce/utils/memop/recycle-pool.d.ts.map | 1 + .../packages/scene/@types/cce/utils/misc.d.ts | 8 + .../scene/@types/cce/utils/misc.d.ts.map | 1 + .../packages/scene/@types/cce/utils/node.d.ts | 102 + .../scene/@types/cce/utils/node.d.ts.map | 1 + .../packages/scene/@types/cce/utils/path.d.ts | 3 + .../scene/@types/cce/utils/path.d.ts.map | 1 + .../packages/scene/@types/cce/utils/pool.d.ts | 11 + .../scene/@types/cce/utils/pool.d.ts.map | 1 + .../scene/@types/cce/utils/raycast.d.ts | 118 + .../scene/@types/cce/utils/raycast.d.ts.map | 1 + .../scene/@types/cce/utils/window.d.ts | 7 + .../scene/@types/cce/utils/window.d.ts.map | 1 + .../packages/scene/@types/engine-view.d.ts | 72 + .../@types/packages/scene/@types/message.d.ts | 317 + .../@types/packages/scene/@types/public.d.ts | 347 + .../scene/@types/scene-facade-interface.d.ts | 825 + .../packages/server/@types/message.d.ts | 11 + .../packages/server/@types/package.d.ts | 27 + .../packages/shortcuts/@types/shortcut.d.ts | 20 + .../taobao-creative-app/@types/index.d.ts | 16 + .../taobao-mini-game/@types/index.d.ts | 95 + .../packages/vivo-mini-game/@types/index.d.ts | 30 + .../packages/web-desktop/@types/index.d.ts | 28 + .../packages/web-mobile/@types/index.d.ts | 26 + .../packages/wechatgame/@types/index.d.ts | 101 + .../packages/wechatprogram/@types/index.d.ts | 99 + .../@types/packages/windows/@types/index.d.ts | 29 + .../xiaomi-quick-game/@types/index.d.ts | 33 + extensions/uistate-inspector/README.md | 16 + extensions/uistate-inspector/README.zh-CN.md | 50 + .../inspector/uistate-inspector.js | 60 + .../contributions/inspector/utils/prop.js | 402 + extensions/uistate-inspector/dist/main.js | 38 + .../dist/panels/default/index.js | 31 + .../dist/panels/list/index.js | 20 + extensions/uistate-inspector/dist/scene.js | 50 + extensions/uistate-inspector/i18n/en.js | 1 + extensions/uistate-inspector/i18n/zh.js | 1 + .../uistate-inspector/package-lock.json | 35 + extensions/uistate-inspector/package.json | 60 + .../inspector/uistate-inspector.ts | 59 + .../src/contributions/inspector/utils/prop.ts | 445 + extensions/uistate-inspector/src/main.ts | 35 + .../src/panels/default/index.ts | 30 + .../src/panels/list/index.ts | 19 + extensions/uistate-inspector/src/scene.ts | 42 + .../static/template/default/index.html | 3 + extensions/uistate-inspector/tsconfig.json | 14 + package.json | 7 + settings/v2/packages/builder.json | 3 + settings/v2/packages/cocos-service.json | 23 + settings/v2/packages/device.json | 3 + settings/v2/packages/engine.json | 150 + settings/v2/packages/program.json | 3 + settings/v2/packages/project.json | 9 + tsconfig.json | 9 + 788 files changed, 42717 insertions(+) create mode 100644 .creator/asset-template/typescript/Custom Script Template Help Documentation.url create mode 100644 .creator/default-meta.json create mode 100644 .gitignore create mode 100644 assets/scene.meta create mode 100644 assets/scene/Main.scene create mode 100644 assets/scene/Main.scene.meta create mode 100644 assets/script.meta create mode 100644 assets/script/Main.ts create mode 100644 assets/script/Main.ts.meta create mode 100644 assets/script/component.meta create mode 100644 assets/script/component/UIState.ts create mode 100644 assets/script/component/UIState.ts.meta create mode 100644 assets/wealth.meta create mode 100644 assets/wealth/ljcz_img_004.png create mode 100644 assets/wealth/ljcz_img_004.png.meta create mode 100644 assets/wealth/ly_bg_004.jpg create mode 100644 assets/wealth/ly_bg_004.jpg.meta create mode 100644 assets/wealth/mkxx_img_038.png create mode 100644 assets/wealth/mkxx_img_038.png.meta create mode 100644 assets/wealth/ty_bg_003.jpg create mode 100644 assets/wealth/ty_bg_003.jpg.meta create mode 100644 assets/wealth/ty_btn_036.png create mode 100644 assets/wealth/ty_btn_036.png.meta create mode 100644 assets/wealth/ty_btn_037.png create mode 100644 assets/wealth/ty_btn_037.png.meta create mode 100644 extensions/uistate-inspector/@types/editor.d.ts create mode 100644 extensions/uistate-inspector/@types/electron.d.ts create mode 100644 extensions/uistate-inspector/@types/extension.d.ts create mode 100644 extensions/uistate-inspector/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/alipay-mini-game/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/android/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/asset-db/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/asset-db/@types/public.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/assets/@types/public.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/assets/@types/vue.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/builder/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/builder/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/builder/@types/public/build-plugin.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/builder/@types/public/build-result.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/builder/@types/public/global.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/builder/@types/public/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/builder/@types/public/options.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/builder/@types/public/texture-compress.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/bytedance-mini-game/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/certificate/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/channel-upload-tools/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/console/@types/pritate.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine-extends/@types/glTF.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine-extends/@types/gltf-validator.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine-extends/@types/i18n-well-defined.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine-extends/@types/third-parts.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/asset.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/asset.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/component.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/component.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/dialog.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/dialog.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/node.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/node.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/script.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/script.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-class-reporter.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-class-reporter.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-object-reporter.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-object-reporter.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-reporter.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-reporter.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/object-walker.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/object-walker.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/geometry.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/geometry.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/prefab.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/prefab.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/builder.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/builder.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/create-class-mask.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/create-class-mask.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/pack-jsons.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/pack-jsons.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/types.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/types.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/dynamic-builder.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/dynamic-builder.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/parser.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/parser.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/uuid.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/uuid.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/engine-compiler/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/engine-compiler/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/engine/@types/module.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/fb-instant-games/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/huawei-agc/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/huawei-quick-game/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/information/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/information/@types/public.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/ios/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/linux/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/mac/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/ohos/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/open-harmonyos/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/oppo-mini-game/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/package-asset/@types/public.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/preferences/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/preferences/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/preview/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/program/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/program/@types/public.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/programming/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/project/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/project/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/runtime-dev-tools/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/animation/public.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/assets.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/assets.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/animation-scene-facade.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/animation-scene-facade.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/general-scene-facade.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/general-scene-facade.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/prefab-scene-facade.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/prefab-scene-facade.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/preview-scene-facade.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/preview-scene-facade.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-fsm.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-fsm.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-manager.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-manager.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-transition.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-transition.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/motion.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/motion.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/transition.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/transition.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-clip.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-clip.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-combined-curve.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-combined-curve.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/type-defines.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/type-defines.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/uniform-handler.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/uniform-handler.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-graph-variant.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-graph-variant.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-mask.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-mask.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/asset-watcher.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/asset-watcher.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/edit-component-asset.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/edit-component-asset.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/material.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/material.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/physics-material.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/physics-material.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/render-pipeline.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/render-pipeline.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/camera-controller-2d.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/camera-controller-2d.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/idle-mode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/idle-mode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/mode-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/mode-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/pan-mode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/pan-mode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/ruler-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/ruler-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/web/ruler.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/web/ruler.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/camera-controller-3d.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/camera-controller-3d.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/idle-mode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/idle-mode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/mode-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/mode-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/orbit-mode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/orbit-mode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/pan-mode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/pan-mode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/wander-mode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/wander-mode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/animate-value.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/animate-value.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/camera-controller-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/camera-controller-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/editor-camera-components.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/editor-camera-components.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/linear-ticks.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/linear-ticks.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/listener.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/listener.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/operation-mode-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/operation-mode-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/tween.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/tween.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/effects.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/effects.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/geometry_renderer.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/geometry_renderer.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/time.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/time.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/gizmos.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/gizmos.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/animation.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/animation.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/icommand.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/icommand.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/prefab.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/prefab.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/preview.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/preview.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/scene.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/scene.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/snapshot-command.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/snapshot-command.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/undo-manager-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/undo-manager-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/ipc.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/ipc.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/webview.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/webview.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/lod.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/lod.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/material-preview/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/material-preview/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mesh-preview/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mesh-preview/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/message.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/apply.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/apply.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/private.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/model-preview/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/model-preview/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/operation.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/operation.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle-2d/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle-2d/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/marching-squares.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/marching-squares.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/rdp.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/rdp.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/plugin.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/plugin.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/component.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/component.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/node.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/node.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview-play/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview-play/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/Interactive-preview.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/Interactive-preview.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/buffer.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/buffer.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/preview-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/preview-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/scene-preview/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/scene-preview/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-events-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-events-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/light-manager.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/light-manager.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/scene-view-data.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/scene-view-data.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/animation-scene-proxy.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/animation-scene-proxy.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/gameview-scene-proxy.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/gameview-scene-proxy.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/general-scene-proxy.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/general-scene-proxy.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/prefab-scene-proxy.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/prefab-scene-proxy.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/scene-proxy.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/scene-proxy.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-cache.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-cache.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-manager.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-manager.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scripts.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scripts.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/selection.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/selection.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/shortcut/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/shortcut/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/skeleton-preview/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/skeleton-preview/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/adapter-util.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/adapter-util.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/log.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/log.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/overwrite.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/overwrite.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/terrain/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/terrain/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/mesh-thumbnail-generator.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/mesh-thumbnail-generator.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/thumbnail-generator-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/thumbnail-generator-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ui/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ui/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/nested-prefab-test.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/nested-prefab-test.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/target-override-test.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/target-override-test.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/unit-test-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/unit-test-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/wireframe.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/wireframe.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/editor-preview.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/editor-preview.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/preload.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/preload.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/web/preload.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/web/preload.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/dump/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/dump/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/get-component-function-of-node.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/get-component-function-of-node.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/is-child-class.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/is-child-class.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/finite-state-machine.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/finite-state-machine.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/state-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/state-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/transition.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/transition.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/timer-util.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/timer-util.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/types.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/types.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/EventEmitter.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/EventEmitter.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/event-enum.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/event-enum.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/cce.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/cce.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/camera-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/camera-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/canvas-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/canvas-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/light-probe-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/light-probe-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/lod-group-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/lod-group-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/model-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/model-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/particle-system-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/particle-system-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/reflection-probe-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/reflection-probe-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/skinning-model-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/skinning-model-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-brush.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-brush.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-select.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-select.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-operation.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-operation.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/ui-transform-component-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/ui-transform-component-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/video-player-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/video-player-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/webview-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/webview-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/box-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/box-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/capsule-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/capsule-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/circle-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/circle-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cone-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cone-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/controller-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/controller-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cylinder-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cylinder-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/direction-light-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/direction-light-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/disc-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/disc-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/editable-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/editable-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/frustum-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/frustum-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/hemisphere-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/hemisphere-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/icon-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/icon-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/image-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/image-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/joint-2d-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/joint-2d-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/line-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/line-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lines-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lines-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lod-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lod-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/mesh-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/mesh-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/particlesystem-cone-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/particlesystem-cone-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/plane-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/plane-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/point-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/point-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/polygon-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/polygon-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/position-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/position-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/quad-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/quad-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rectangle-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rectangle-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rotation-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rotation-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/scale-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/scale-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/sphere-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/sphere-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/terrain-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/terrain-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/tetrahedron-cotroller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/tetrahedron-cotroller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/triangle-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/triangle-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/world-axis-controller.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/world-axis-controller.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/gizmo-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/gizmo-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-event-listener.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-event-listener.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/scene-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/scene-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/position-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/position-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rect-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rect-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rotation-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rotation-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/scale-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/scale-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/transform-gizmo.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/transform-gizmo.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape-collider.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape-collider.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-defines.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-defines.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-manager.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-manager.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-operation.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-operation.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/defines.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/defines.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/gizmo-config.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/gizmo-config.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/2d.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/2d.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/3d.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/3d.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/2d.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/2d.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/3d.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/3d.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/engine-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/engine-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/external.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/external.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/misc.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/misc.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/rect-transform-snapping.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/rect-transform-snapping.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/set-util.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/set-util.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/transform-tool-data.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/transform-tool-data.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/utils-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/utils-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/ipc/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/ipc/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/operation/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/operation/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection-logic.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection-logic.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/uuid-array.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/uuid-array.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/aabb.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/aabb.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/assertion.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/assertion.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/asset.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/asset.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/callbacks-invoker.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/callbacks-invoker.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/device-adapter.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/device-adapter.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/decode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/decode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/dump-defines.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/dump-defines.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/encode.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/encode.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/animation-curve-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/animation-curve-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/asset-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/asset-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/component-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/component-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/dump-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/dump-interface.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/gradient-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/gradient-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/node-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/node-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/number-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/number-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/real-curve-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/real-curve-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/string-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/string-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/typed-array-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/typed-array-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/value-type-dump.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/value-type-dump.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/env.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/env.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/event-emitter.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/event-emitter.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/enums.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/enums.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/intersect.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/intersect.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/ray.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/ray.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/triangle.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/triangle.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/graphics.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/graphics.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/ipc/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/ipc/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/lodash.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/lodash.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/index.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat3.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat3.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat4.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat4.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/quat.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/quat.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/type-define.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/type-define.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/utils.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/utils.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec2.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec2.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec3.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec3.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/memop/recycle-pool.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/memop/recycle-pool.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/misc.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/misc.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/node.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/node.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/path.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/path.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/pool.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/pool.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/raycast.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/raycast.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/window.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/window.d.ts.map create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/engine-view.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/public.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/scene/@types/scene-facade-interface.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/server/@types/message.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/server/@types/package.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/shortcuts/@types/shortcut.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/taobao-creative-app/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/taobao-mini-game/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/vivo-mini-game/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/web-desktop/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/web-mobile/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/wechatgame/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/wechatprogram/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/windows/@types/index.d.ts create mode 100644 extensions/uistate-inspector/@types/packages/xiaomi-quick-game/@types/index.d.ts create mode 100644 extensions/uistate-inspector/README.md create mode 100644 extensions/uistate-inspector/README.zh-CN.md create mode 100644 extensions/uistate-inspector/dist/contributions/inspector/uistate-inspector.js create mode 100644 extensions/uistate-inspector/dist/contributions/inspector/utils/prop.js create mode 100644 extensions/uistate-inspector/dist/main.js create mode 100644 extensions/uistate-inspector/dist/panels/default/index.js create mode 100644 extensions/uistate-inspector/dist/panels/list/index.js create mode 100644 extensions/uistate-inspector/dist/scene.js create mode 100644 extensions/uistate-inspector/i18n/en.js create mode 100644 extensions/uistate-inspector/i18n/zh.js create mode 100644 extensions/uistate-inspector/package-lock.json create mode 100644 extensions/uistate-inspector/package.json create mode 100644 extensions/uistate-inspector/src/contributions/inspector/uistate-inspector.ts create mode 100644 extensions/uistate-inspector/src/contributions/inspector/utils/prop.ts create mode 100644 extensions/uistate-inspector/src/main.ts create mode 100644 extensions/uistate-inspector/src/panels/default/index.ts create mode 100644 extensions/uistate-inspector/src/panels/list/index.ts create mode 100644 extensions/uistate-inspector/src/scene.ts create mode 100644 extensions/uistate-inspector/static/template/default/index.html create mode 100644 extensions/uistate-inspector/tsconfig.json create mode 100644 package.json create mode 100644 settings/v2/packages/builder.json create mode 100644 settings/v2/packages/cocos-service.json create mode 100644 settings/v2/packages/device.json create mode 100644 settings/v2/packages/engine.json create mode 100644 settings/v2/packages/program.json create mode 100644 settings/v2/packages/project.json create mode 100644 tsconfig.json diff --git a/.creator/asset-template/typescript/Custom Script Template Help Documentation.url b/.creator/asset-template/typescript/Custom Script Template Help Documentation.url new file mode 100644 index 0000000..7606df0 --- /dev/null +++ b/.creator/asset-template/typescript/Custom Script Template Help Documentation.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://docs.cocos.com/creator/manual/en/scripting/setup.html#custom-script-template \ No newline at end of file diff --git a/.creator/default-meta.json b/.creator/default-meta.json new file mode 100644 index 0000000..abb1239 --- /dev/null +++ b/.creator/default-meta.json @@ -0,0 +1,5 @@ +{ + "image": { + "type": "sprite-frame" + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a231b3f --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ + +#/////////////////////////// +# Cocos Creator 3D Project +#/////////////////////////// +library/ +temp/ +local/ +build/ +profiles/ +native +#////////////////////////// +# NPM +#////////////////////////// +node_modules/ + +#////////////////////////// +# VSCode +#////////////////////////// +.vscode/ + +#////////////////////////// +# WebStorm +#////////////////////////// +.idea/ \ No newline at end of file diff --git a/assets/scene.meta b/assets/scene.meta new file mode 100644 index 0000000..b312e36 --- /dev/null +++ b/assets/scene.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "769e6680-cdd1-46cf-ab55-93e0b7d62a70", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/scene/Main.scene b/assets/scene/Main.scene new file mode 100644 index 0000000..46f40c8 --- /dev/null +++ b/assets/scene/Main.scene @@ -0,0 +1,2562 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "Main", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_name": "Main", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "autoReleaseAssets": false, + "_globals": { + "__id__": 56 + }, + "_id": "420b3c54-9433-4d1f-8cda-f534eab902bb" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 5 + }, + { + "__id__": 37 + }, + { + "__id__": 44 + } + ], + "_active": true, + "_components": [ + { + "__id__": 51 + }, + { + "__id__": 52 + }, + { + "__id__": 53 + }, + { + "__id__": 54 + }, + { + "__id__": 55 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 320, + "y": 480, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "beI88Z2HpFELqR4T5EMHpg" + }, + { + "__type__": "cc.Node", + "_name": "Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 1000 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "ebFwiq8gBFaYpqYbdoDODe" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "__prefab": null, + "_projection": 0, + "_priority": 0, + "_fov": 45, + "_fovAxis": 0, + "_orthoHeight": 592.3774954627949, + "_near": 0, + "_far": 1000, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": 1, + "_stencil": 0, + "_clearFlags": 7, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_aperture": 19, + "_shutter": 7, + "_iso": 0, + "_screenScale": 1, + "_visibility": 1108344832, + "_targetTexture": null, + "_cameraType": -1, + "_trackingType": 0, + "_id": "63WIch3o5BEYRlXzTT0oWc" + }, + { + "__type__": "cc.Node", + "_name": "ly_bg_004", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 6 + }, + { + "__id__": 9 + } + ], + "_active": true, + "_components": [ + { + "__id__": 35 + }, + { + "__id__": 36 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "4bQ+RJ6ZhFm622VprN2Snn" + }, + { + "__type__": "cc.Node", + "_name": "RichText", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + }, + { + "__id__": 8 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 382.95, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": -0.09771317388476722, + "w": 0.995214617883683 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -11.215 + }, + "_id": "b5DhQMg8ZDBYEyXztSbxBs" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 240, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "5bBKu7YIBAw4yuPcLieq1R" + }, + { + "__type__": "cc.RichText", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "__prefab": null, + "_lineHeight": 40, + "_string": "黑", + "_horizontalAlign": 0, + "_verticalAlign": 0, + "_fontSize": 40, + "_maxWidth": 0, + "_fontFamily": "Arial", + "_font": null, + "_isSystemFontUsed": true, + "_userDefinedFont": null, + "_cacheMode": 0, + "_imageAtlas": null, + "_handleTouchEvent": true, + "_id": "feYRF4NKJN8orX1RCYrBE+" + }, + { + "__type__": "cc.Node", + "_name": "ljcz_img_004", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 10 + }, + { + "__id__": 13 + }, + { + "__id__": 20 + }, + { + "__id__": 23 + }, + { + "__id__": 26 + }, + { + "__id__": 29 + } + ], + "_active": true, + "_components": [ + { + "__id__": 32 + }, + { + "__id__": 33 + }, + { + "__id__": 34 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": -68.485, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "4acoM2N0hEdZTi/zV5P7Rk" + }, + { + "__type__": "cc.Node", + "_name": "Label-001", + "_objFlags": 0, + "_parent": { + "__id__": 9 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 11 + }, + { + "__id__": 12 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -214.096, + "y": 133.719, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "38TylCZI9ILokb/AEtNqhS" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 120, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "f6qxdYhxNAfoSC35tAgheF" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_string": "我是内层的框", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 20, + "_fontSize": 20, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_id": "70xQByHo1BurIswo6fefMz" + }, + { + "__type__": "cc.Node", + "_name": "ProgressBar", + "_objFlags": 0, + "_parent": { + "__id__": 9 + }, + "_children": [ + { + "__id__": 14 + } + ], + "_active": true, + "_components": [ + { + "__id__": 17 + }, + { + "__id__": 18 + }, + { + "__id__": 19 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": -19.463, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "4bldI5Oe9GmpLr2lixY9JM" + }, + { + "__type__": "cc.Node", + "_name": "Bar", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 15 + }, + { + "__id__": 16 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -150, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "d3bt9cw6BHH547wLNjTsZr" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 150, + "height": 15 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_id": "4fUTW2hAhEr6orxQjom+Mr" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "24a704da-2867-446d-8d1a-5e920c75e09d@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "c4djXrUB5L0pwVSAgM6BrQ" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 15 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "b50PFG4LFCWI1yf2AegezY" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "9fd900dd-221b-4f89-8f2c-fba34243c835@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "88bVu+YX1K64yZD7NlUPHE" + }, + { + "__type__": "cc.ProgressBar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_barSprite": { + "__id__": 16 + }, + "_mode": 0, + "_totalLength": 300, + "_progress": 0.5, + "_reverse": false, + "_id": "acjYMcyL5BnbMd1uYWOwLF" + }, + { + "__type__": "cc.Node", + "_name": "Label-002", + "_objFlags": 0, + "_parent": { + "__id__": 9 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + }, + { + "__id__": 22 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -134.852, + "y": 25.281000000000006, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "eaSJnq9XZMnoJvb4XjCzmR" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 31.12, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "c4e4nOQtpOCq/RTWgYjr8v" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_string": "1级", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 20, + "_fontSize": 20, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_id": "b31I+yOqtB4YWUUjLCSvTf" + }, + { + "__type__": "cc.Node", + "_name": "mkxx_img_038", + "_objFlags": 0, + "_parent": { + "__id__": 9 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 24 + }, + { + "__id__": 25 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 20.854, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "88HzprNaVOQLsO2Jc03Amd" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 23 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 62, + "height": 34 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "0djFfc4MRJ66BSu5H52bWs" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 23 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "88b7887e-b33d-40bb-9eb0-76fd4b99feca@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "a9zTXQqg9Dk4mUYlt7Eaud" + }, + { + "__type__": "cc.Node", + "_name": "Label-003", + "_objFlags": 0, + "_parent": { + "__id__": 9 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 27 + }, + { + "__id__": 28 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 130.682, + "y": 25.281, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "a6oPnXl2JAnLk65mcOEwix" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 31.12, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "91lF80a01OvY3O6mKE8uQS" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_string": "2级", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 20, + "_fontSize": 20, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_id": "ecC7aHI+JMDpiyoxoWzhFI" + }, + { + "__type__": "cc.Node", + "_name": "Label-004", + "_objFlags": 0, + "_parent": { + "__id__": 9 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 30 + }, + { + "__id__": 31 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": -13.645, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "4a1E+kaKdK3IpdxSATKMs2" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 29 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 120, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "fcNfmMMWNPA7f56KX2e4KM" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 29 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 50, + "g": 150, + "b": 70, + "a": 255 + }, + "_string": "已满级", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 40, + "_fontSize": 40, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_id": "12QACiLl1Ap4Fqmhgen+v4" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 588.8889999999999, + "height": 346.53400000000005 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "adRofGcMZJ1Ij2gm15K5k6" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "7c56ab6d-27a1-4557-bf3c-907ab88ddae0@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "77revYIkdNcaFvX6w0pA65" + }, + { + "__type__": "ec297+HWx5PBYSshnpV/EME", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "__prefab": null, + "_states": [ + "levelUp", + "fullLevel" + ], + "_state": 0, + "_records": { + "0": [ + { + "node": { + "__id__": 29 + }, + "active": false, + "x": 0, + "y": -13.645, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 120, + "height": 50.4, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Label": { + "color": "329646", + "string": "已满级", + "horizontalAlign": 1, + "verticalAlign": 1, + "fontSize": 40, + "fontFamily": "Arial", + "lineHeight": 40, + "overflow": 0, + "isBold": false, + "isItalic": false, + "isUnderline": false, + "underlineHeight": 2, + "enabled": true + } + }, + { + "active": true, + "x": 0, + "y": -19.463, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 300, + "height": 15, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Sprite": { + "color": "ffffff", + "spriteFrame": "9fd900dd-221b-4f89-8f2c-fba34243c835@f9941", + "grayscale": false, + "sizeMode": 0, + "type": 1, + "trim": true, + "enabled": true + }, + "node": { + "__id__": 13 + } + }, + { + "active": true, + "x": -134.852, + "y": 25.281000000000006, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 31.12, + "height": 50.4, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Label": { + "color": "000000", + "string": "1级", + "horizontalAlign": 1, + "verticalAlign": 1, + "fontSize": 20, + "fontFamily": "Arial", + "lineHeight": 40, + "overflow": 0, + "isBold": false, + "isItalic": false, + "isUnderline": false, + "underlineHeight": 2, + "enabled": true + }, + "node": { + "__id__": 20 + } + }, + { + "active": true, + "x": 0, + "y": 20.854, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 62, + "height": 34, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Sprite": { + "color": "ffffff", + "spriteFrame": "88b7887e-b33d-40bb-9eb0-76fd4b99feca@f9941", + "grayscale": false, + "sizeMode": 1, + "type": 0, + "trim": true, + "enabled": true + }, + "node": { + "__id__": 23 + } + }, + { + "active": true, + "x": 130.682, + "y": 25.281, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 31.12, + "height": 50.4, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Label": { + "color": "000000", + "string": "2级", + "horizontalAlign": 1, + "verticalAlign": 1, + "fontSize": 20, + "fontFamily": "Arial", + "lineHeight": 40, + "overflow": 0, + "isBold": false, + "isItalic": false, + "isUnderline": false, + "underlineHeight": 2, + "enabled": true + }, + "node": { + "__id__": 26 + } + } + ], + "1": [ + { + "active": true, + "x": 0, + "y": -13.645, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 120, + "height": 50.4, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Label": { + "color": "329646", + "string": "已满级", + "horizontalAlign": 1, + "verticalAlign": 1, + "fontSize": 40, + "fontFamily": "Arial", + "lineHeight": 40, + "overflow": 0, + "isBold": false, + "isItalic": false, + "isUnderline": false, + "underlineHeight": 2, + "enabled": true + }, + "node": { + "__id__": 29 + } + }, + { + "node": { + "__id__": 13 + }, + "active": false, + "x": 0, + "y": -19.463, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 300, + "height": 15, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Sprite": { + "color": "ffffff", + "spriteFrame": "9fd900dd-221b-4f89-8f2c-fba34243c835@f9941", + "grayscale": false, + "sizeMode": 0, + "type": 1, + "trim": true, + "enabled": true + } + }, + { + "node": { + "__id__": 20 + }, + "active": false, + "x": -134.852, + "y": 25.281000000000006, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 31.12, + "height": 50.4, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Label": { + "color": "000000", + "string": "1级", + "horizontalAlign": 1, + "verticalAlign": 1, + "fontSize": 20, + "fontFamily": "Arial", + "lineHeight": 40, + "overflow": 0, + "isBold": false, + "isItalic": false, + "isUnderline": false, + "underlineHeight": 2, + "enabled": true + } + }, + { + "node": { + "__id__": 23 + }, + "active": false, + "x": 0, + "y": 20.854, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 62, + "height": 34, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Sprite": { + "color": "ffffff", + "spriteFrame": "88b7887e-b33d-40bb-9eb0-76fd4b99feca@f9941", + "grayscale": false, + "sizeMode": 1, + "type": 0, + "trim": true, + "enabled": true + } + }, + { + "node": { + "__id__": 26 + }, + "active": false, + "x": 130.682, + "y": 25.281, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 31.12, + "height": 50.4, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Label": { + "color": "000000", + "string": "2级", + "horizontalAlign": 1, + "verticalAlign": 1, + "fontSize": 20, + "fontFamily": "Arial", + "lineHeight": 40, + "overflow": 0, + "isBold": false, + "isItalic": false, + "isUnderline": false, + "underlineHeight": 2, + "enabled": true + } + } + ] + }, + "_id": "98XWrxtLdCuI03GP7iad+q" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 720, + "height": 1560 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "c7l1h2ZoRD/pxwf++HK0hr" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "bde4de98-18d7-47fa-ae16-b5c0651b5ab3@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "absAHFEu5DwLqMCvxdbg+w" + }, + { + "__type__": "cc.Node", + "_name": "Button", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 38 + } + ], + "_active": true, + "_components": [ + { + "__id__": 41 + }, + { + "__id__": 42 + }, + { + "__id__": 43 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -148.246, + "y": 303.081, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "25VJGINAxLLYHKi5GYehXx" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 37 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 39 + }, + { + "__id__": 40 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 3, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "6eLTeL5vdPm6vlz6wt6lw5" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 38 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 160, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "580tLaJFRPaYhXLsOp/Nxz" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 38 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_string": "点我切换外层状态", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 20, + "_fontSize": 20, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": false, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_id": "2dStRy2CdOfKSDyimgKLmU" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 200, + "height": 58 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "2dcSfGKUtI9puZNvmbxxED" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "0591e33d-d09b-45e9-8f83-b0c645ce8dac@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "73QI9jISFFkZDc8C5ygokI" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "__prefab": null, + "clickEvents": [], + "_interactable": true, + "_transition": 3, + "_normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_hoverColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_normalSprite": { + "__uuid__": "0591e33d-d09b-45e9-8f83-b0c645ce8dac@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_hoverSprite": null, + "_pressedSprite": null, + "_disabledSprite": null, + "_duration": 0.1, + "_zoomScale": 1.2, + "_target": { + "__id__": 37 + }, + "_id": "f8F2AVAQZIWZdYLj7VCR6R" + }, + { + "__type__": "cc.Node", + "_name": "Button-001", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 45 + } + ], + "_active": true, + "_components": [ + { + "__id__": 48 + }, + { + "__id__": 49 + }, + { + "__id__": 50 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -148.246, + "y": 205.897, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "dadgcpUINPP4/TTHBH1m99" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 44 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 46 + }, + { + "__id__": 47 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 3, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "b3QMB5cE5GQ5u5aDtAbm+6" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 160, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "1cxwkhDxpCn6ONoHeL+Ol9" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_string": "点我切换内层状态", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 20, + "_fontSize": 20, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": false, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_id": "39B40TjKpMuKCaH5kKw0NF" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 200, + "height": 58 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "1d+eHFbMlIwLdYuMT5lgRN" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "53ca0b26-dfd7-48f5-b7cb-579e1220e44f@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "07GyIpuE9ExI5qotFnpIuj" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "__prefab": null, + "clickEvents": [], + "_interactable": true, + "_transition": 3, + "_normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_hoverColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_normalSprite": { + "__uuid__": "53ca0b26-dfd7-48f5-b7cb-579e1220e44f@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_hoverSprite": null, + "_pressedSprite": null, + "_disabledSprite": null, + "_duration": 0.1, + "_zoomScale": 1.2, + "_target": { + "__id__": 44 + }, + "_id": "a9kmtjwb9MDqhazJl6OD3q" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 640, + "height": 960 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "d6rUX5yfhMlKoWX2bSbawx" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_cameraComponent": { + "__id__": 4 + }, + "_alignCanvasWithScreen": true, + "_id": "12O/ljcVlEqLmVm3U2gEOQ" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 45, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "c5V1EV8IpMtrIvY1OE9t2u" + }, + { + "__type__": "101c5snyexEeZRYtyTjiv7G", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "btnChangeOutter": { + "__id__": 43 + }, + "btnChangeInner": { + "__id__": 50 + }, + "innerBox": { + "__id__": 9 + }, + "_id": "f9JatpmZ1OCYqMFGclFVWs" + }, + { + "__type__": "ec297+HWx5PBYSshnpV/EME", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_states": [ + "WoodBg", + "BlackBg" + ], + "_state": 1, + "_records": { + "0": [ + { + "active": true, + "x": 0, + "y": 0, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 720, + "height": 1560, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Sprite": { + "color": "ffffff", + "spriteFrame": "475bdcef-71c8-422c-9ac0-76197650e12b@f9941", + "grayscale": false, + "sizeMode": 1, + "type": 0, + "trim": true, + "enabled": true + }, + "node": { + "__id__": 5 + } + }, + { + "active": true, + "x": 0, + "y": 382.95, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 210, + "height": 50.4, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "RichText": { + "string": "我是外层的背景", + "horizontalAlign": 0, + "verticalAlign": 0, + "fontSize": 30, + "fontFamily": "Arial", + "maxWidth": 0, + "lineHeight": 40, + "enabled": true + }, + "node": { + "__id__": 6 + } + } + ], + "1": [ + { + "node": { + "__id__": 5 + }, + "active": true, + "x": 0, + "y": 0, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 720, + "height": 1560, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "Sprite": { + "color": "ffffff", + "spriteFrame": "bde4de98-18d7-47fa-ae16-b5c0651b5ab3@f9941", + "grayscale": false, + "sizeMode": 1, + "type": 0, + "trim": true, + "enabled": true + } + }, + { + "node": { + "__id__": 6 + }, + "active": true, + "x": 0, + "y": 382.95, + "angle": 0, + "scaleX": 1, + "scaleY": 1, + "UITransform": { + "width": 180, + "height": 50.4, + "anchorX": 0.5, + "anchorY": 0.5, + "enabled": true + }, + "RichText": { + "string": "黑", + "horizontalAlign": 0, + "verticalAlign": 0, + "fontSize": 30, + "fontFamily": "Arial", + "maxWidth": 0, + "lineHeight": 40, + "enabled": true + } + } + ] + }, + "_id": "783iGqnN1H9peaDnxAJkaw" + }, + { + "__type__": "cc.SceneGlobals", + "ambient": { + "__id__": 57 + }, + "shadows": { + "__id__": 58 + }, + "_skybox": { + "__id__": 59 + }, + "fog": { + "__id__": 60 + }, + "octree": { + "__id__": 61 + }, + "lightProbeInfo": { + "__id__": 62 + }, + "bakedWithStationaryMainLight": false, + "bakedWithHighpLightmap": false + }, + { + "__type__": "cc.AmbientInfo", + "_skyColorHDR": { + "__type__": "cc.Vec4", + "x": 0, + "y": 0, + "z": 0, + "w": 0.520833125 + }, + "_skyColor": { + "__type__": "cc.Vec4", + "x": 0, + "y": 0, + "z": 0, + "w": 0.520833125 + }, + "_skyIllumHDR": 20000, + "_skyIllum": 20000, + "_groundAlbedoHDR": { + "__type__": "cc.Vec4", + "x": 0, + "y": 0, + "z": 0, + "w": 0 + }, + "_groundAlbedo": { + "__type__": "cc.Vec4", + "x": 0, + "y": 0, + "z": 0, + "w": 0 + }, + "_skyColorLDR": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.5, + "z": 0.8, + "w": 1 + }, + "_skyIllumLDR": 20000, + "_groundAlbedoLDR": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.2, + "z": 0.2, + "w": 1 + } + }, + { + "__type__": "cc.ShadowsInfo", + "_enabled": false, + "_type": 0, + "_normal": { + "__type__": "cc.Vec3", + "x": 0, + "y": 1, + "z": 0 + }, + "_distance": 0, + "_shadowColor": { + "__type__": "cc.Color", + "r": 76, + "g": 76, + "b": 76, + "a": 255 + }, + "_maxReceived": 4, + "_size": { + "__type__": "cc.Vec2", + "x": 512, + "y": 512 + } + }, + { + "__type__": "cc.SkyboxInfo", + "_envLightingType": 0, + "_envmapHDR": null, + "_envmap": null, + "_envmapLDR": null, + "_diffuseMapHDR": null, + "_diffuseMapLDR": null, + "_enabled": false, + "_useHDR": true, + "_editableMaterial": null, + "_reflectionHDR": null, + "_reflectionLDR": null, + "_rotationAngle": 0 + }, + { + "__type__": "cc.FogInfo", + "_type": 0, + "_fogColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "_enabled": false, + "_fogDensity": 0.3, + "_fogStart": 0.5, + "_fogEnd": 300, + "_fogAtten": 5, + "_fogTop": 1.5, + "_fogRange": 1.2, + "_accurate": false + }, + { + "__type__": "cc.OctreeInfo", + "_enabled": false, + "_minPos": { + "__type__": "cc.Vec3", + "x": -1024, + "y": -1024, + "z": -1024 + }, + "_maxPos": { + "__type__": "cc.Vec3", + "x": 1024, + "y": 1024, + "z": 1024 + }, + "_depth": 8 + }, + { + "__type__": "cc.LightProbeInfo", + "_giScale": 1, + "_giSamples": 1024, + "_bounces": 2, + "_reduceRinging": 0, + "_showProbe": true, + "_showWireframe": true, + "_showConvex": false, + "_data": null + } +] \ No newline at end of file diff --git a/assets/scene/Main.scene.meta b/assets/scene/Main.scene.meta new file mode 100644 index 0000000..48233a2 --- /dev/null +++ b/assets/scene/Main.scene.meta @@ -0,0 +1,11 @@ +{ + "ver": "1.1.43", + "importer": "scene", + "imported": true, + "uuid": "420b3c54-9433-4d1f-8cda-f534eab902bb", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/assets/script.meta b/assets/script.meta new file mode 100644 index 0000000..dce05c6 --- /dev/null +++ b/assets/script.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "cc79b51d-f528-4fd3-b491-2cf36b7337aa", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/script/Main.ts b/assets/script/Main.ts new file mode 100644 index 0000000..65a1ee9 --- /dev/null +++ b/assets/script/Main.ts @@ -0,0 +1,32 @@ +import { Button, Component, Node, NodeEventType, _decorator } from 'cc'; +import UIState from './component/UIState'; +const { ccclass, property } = _decorator; + +@ccclass('Main') +export class Main extends Component { + @property(Button) + btnChangeOutter:Button; + + @property(Button) + btnChangeInner:Button; + + @property(Node) + innerBox:Node; + + start() { + this.btnChangeOutter.node.on(NodeEventType.TOUCH_END, () => { + const uiState = this.node.getComponent(UIState); + uiState.state = uiState.state === 0 ? 1 : 0; + }); + this.btnChangeInner.node.on(NodeEventType.TOUCH_END, () => { + const uiState = this.innerBox.getComponent(UIState); + uiState.state = uiState.state === 0 ? 1 : 0; + }); + } + + update(deltaTime: number) { + + } +} + + diff --git a/assets/script/Main.ts.meta b/assets/script/Main.ts.meta new file mode 100644 index 0000000..4616ee9 --- /dev/null +++ b/assets/script/Main.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "101c5b27-c9ec-4479-9458-b724e38afec6", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/script/component.meta b/assets/script/component.meta new file mode 100644 index 0000000..11935f2 --- /dev/null +++ b/assets/script/component.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "8d43befd-5bf6-45b8-9872-12ec976af5ba", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/script/component/UIState.ts b/assets/script/component/UIState.ts new file mode 100644 index 0000000..21cd968 --- /dev/null +++ b/assets/script/component/UIState.ts @@ -0,0 +1,653 @@ +/* +author:cy +version:1.0.0 +date:2023.06.02 +qq:1183875513 +使用过程中遇到问题可以联系我 +*/ + +import { + CCClass, + CCString, + Color, + Component, + Enum, + Label, + Node, + RichText, Sprite, SpriteFrame, UIRenderer, + Widget, + _decorator, assetManager +} from "cc"; +import { EDITOR } from "cc/env"; + +let isInitDebugComp = false; + +enum States { + Default +} + +/** + * 会记录的组件及其属性 + */ +const COMP_ATTR_RECORD = { + "UITransform": ["width", "height", "anchorX", "anchorY"], + "Widget": ["isAlignBottom", "isAlignTop", "isAlignLeft", "isAlignRight", "isAlignVerticalCenter", "isAlignHorizontalCenter", + "isAbsoluteTop", "isAbsoluteBottom", "isAbsoluteLeft", "isAbsoluteRight", "isAbsoluteHorizontalCenter", "isAbsoluteVerticalCenter", + "left", "right", "top", "bottom", "horizontalCenter", "verticalCenter", "alignMode", "alignFlags"], + "UIOpacity": ["opacity"], + "UIRenderer": ["color"], + "Label": ["color", "string", "horizontalAlign", "verticalAlign", "fontSize", "fontFamily", "lineHeight", "overflow", "isBold", "isItalic", "isUnderline", "underlineHeight"], + "RichText": ["string", "horizontalAlign", "verticalAlign", "fontSize", "fontFamily", "maxWidth", "lineHeight"], + "Sprite": ["color", "spriteFrame", "grayscale", "sizeMode", "type", "trim"] +} + +type KEY_OF_COMP_ATTR_RECORD = keyof typeof COMP_ATTR_RECORD; +type STRUCT_OF_COMP_ATTR_RECORD = typeof COMP_ATTR_RECORD[K]; + +type RecordProps = { + [K in KEY_OF_COMP_ATTR_RECORD]?: {[key in STRUCT_OF_COMP_ATTR_RECORD[number]]:any}; +} & { + node: Node; + x: number; + y: number; + scaleX: number; + scaleY: number; + angle: number; + active: boolean; +}; + +/** + * 判断在真正的编辑器模式中。 + * 由于编辑器预览 EDITOR 也为 true, + * 但又不想让特定代码在编辑器预览执行 + */ +//@ts-ignore +const REAL_EDITOR = EDITOR && !cc.GAME_VIEW; + +const { ccclass, property, executeInEditMode, disallowMultiple } = _decorator; +@ccclass("UIState") +@executeInEditMode +@disallowMultiple +export default class UIState extends Component { + @property + private _states: string[] = ["Default"]; + + @property({ type: [CCString], step: 1 }) + set states(value: string[]) { + if (EDITOR) { + // 状态数量减少时 + if (value.length < this._states.length){ + let hasData = false; + for (let i = value.length; i < this._states.length; i++) { + hasData = !!(this._records![i] && this._records![i].length); + if (hasData) break; + } + // 二次确认 + if (hasData){ + Editor.Dialog.warn("要删除的状态中含有数据,删除操作不可逆,是否继续?", { + cancel:1, + buttons: ["是", "否"] + }).then(returnValue=>{ + // 否 + if(returnValue.response === 1) + return; + + for (let i = value.length; i < this._states.length; i++) { + delete this._records![i]; + } + this._states = value; + this.updateStateEnumList(); + + // 软刷新场景,编辑器会闪一下,应该有更好的接口可以不闪的刷新吧,不过懒得找了 + Editor.Message.request("scene", "soft-reload"); + }); + return; + } + } + this._states = value; + this.updateStateEnumList(); + }else{ + this._states = value; + } + } + + get states() { + return this._states; + } + + @property + private _state: States = States.Default; + + set state(val: number) { + if (this._state === val) return; + // 编辑器模式时,切换状态前保存当前状态数据 + if (REAL_EDITOR) { + this.walkNode(this.node, child => { + this.recordBeforeStateChange(child); + // this.removeListener(child); + }); + } + + let stateRecord = this.records[val]; + // 新的状态不存在的话 + if (!stateRecord) { + // 编辑器模式下,从当前状态复制 + if (REAL_EDITOR) { + stateRecord = this.createState(val); + const currStateRecord = this.records[this._state]; + + currStateRecord.forEach(record => { + stateRecord.push(this.cloneRecord(record)); + }); + } + else return; + } + + this._state = val; + this.applyState(); + if (REAL_EDITOR) this.onFocusInEditor!(); + } + + @property({ type: Enum(States) }) + get state() { + return this._state; + } + + // creator bug 用二维数组的数据结构,在编辑器里删除一个节点,再撤销会报错 + // 找不到原因,只能用对象实现了 + // private _records:RecordProps[][] = []; + /** 关键:加上 @property 让编辑器序列化保存这个数据 */ + @property + private _records?: { [k in number]: RecordProps[] } = undefined; + + private _backupRecords?: { [k in number]: RecordProps[] }; + + get records() { + // creator bug 在编辑器里删除一个节点,再撤销会重新赋初始值给组件所有 + // 带 @property 装饰器的属性,导致数据丢失,无奈只能用另一个变量来恢复数据了 + if (!this._records) this._records = this._backupRecords; + return this._records!; + } + + /** 根据 uuid 快速找到记录(当前状态) */ + private _uuidRecordMap?: Map; + + /** 当前状态的节点记录,用于判断节点是否修改 */ + private _defaultNodeState = new Map(); + + onLoad() { + // 编辑器模式下,确保一个场景或预制只初始化一次 + if (REAL_EDITOR) { + if (!isInitDebugComp){ + isInitDebugComp = true; + UIStateDecorator(Component); + } + } + + if (!this._records) this._records = {}; + this._backupRecords = this._records; + + if (REAL_EDITOR) this.updateStateEnumList(); + + if (!this.records[this._state]) + this.createState(this._state); + this.applyState(); + } + + private updateStateEnumList() { + const enumList: { name: string; value: number }[] = []; + this.states.forEach((state, index) => { + enumList.push({ name: state, value: index }); + }); + CCClass.Attr.setClassAttr(this, "state", "enumList", enumList); + } + + onDestroy() { + if (REAL_EDITOR) this.saveCurrentState(); + + } + + /** + * 保存当前状态 + */ + saveCurrentState() { + // 编辑器模式时 + this.walkNode(this.node, child => { + this.recordBeforeStateChange(child); + }); + console.log("已保存当前状态"); + } + + /** 必须要有个默认状态 */ + private createState(state:number) { + const stateRecord:RecordProps[] = []; + this.records[state] = stateRecord; + return stateRecord; + } + + private applyState() { + let stateRecord = this.records[this._state]; + + // 建立当前状态的缓存映射关系 + this._uuidRecordMap = new Map(); + stateRecord.forEach(record => { + if (record.node) this._uuidRecordMap?.set(record.node.uuid, record); + }); + + // 应用状态 + for (let i = stateRecord.length - 1; i >= 0; i--) { + const record = stateRecord[i]; + const node = record.node; + + // 删除无效的记录 + if (!node || !node.parent){ + stateRecord.splice(i, 1); + continue; + } + + if (node === this.node) continue; + node.active = record.active!; + node.angle = record.angle; + node.setScale(record.scaleX, record.scaleY); + + // 在编辑器模式下设置属性会有额外的操作,比如很多组件的属性都会影响 Widget 的属性 + // 为了避免异常,先从节点树移除 + let temp:Node; + let tempSiblingIndex:number; + if (REAL_EDITOR){ + tempSiblingIndex = node.getSiblingIndex(); + temp = node.parent; + node.parent = null; + } + Object.keys(COMP_ATTR_RECORD).forEach(compName=>{ + const comp = node.getComponent(`cc.${compName}`); + if (comp){ + const recordCompAttr = record[compName as keyof RecordProps]; + if (recordCompAttr) { + switch(compName){ + case "Label": + Object.keys(recordCompAttr).forEach(attr => { + this.applyLabelAttr(attr, comp as Label, recordCompAttr); + }); + break; + case "Sprite": + Object.keys(recordCompAttr).forEach(attr => { + this.applySpriteAttr(attr, comp as Sprite, recordCompAttr); + }); + break; + case "UIRenderer": + Object.keys(recordCompAttr).forEach(attr => { + this.applyUIRendererAttr(attr, comp as UIRenderer, recordCompAttr); + }); + break; + case "Widget": + Object.assign(comp, recordCompAttr); + break; + default: + Object.assign(comp, recordCompAttr); + break; + } + } + } + }); + if (REAL_EDITOR){ + temp.insertChild(node, tempSiblingIndex); + } + + // 应用组件启用状态 + node.components.forEach((comp, index) => { + const compName = (comp as any).__proto__.constructor.name as keyof RecordProps; + const recordCompAttr = record[compName]; + // 没有记录且没在 COMP_ATTR_RECORD 中表明是在其他状态新增的组件,那么在当前状态就需要禁用 + if(!recordCompAttr && COMP_ATTR_RECORD[compName as KEY_OF_COMP_ATTR_RECORD]){ + comp.enabled = false; + } + }); + const widget = node.getComponent(Widget); + if (!widget || !widget.enabled) + node.setPosition(record.x, record.y); + } + + this._defaultNodeState.clear(); + this.walkNodeWithSubUIState(this.node, child => { + this._defaultNodeState.set(child.uuid, this.recordNode(child)); + }); + } + + /** + * 记录节点 + * @param node + * @returns + */ + private recordNode(node: Node, record?: RecordProps) { + if (!record) + record = { + node, + active: node.active, + x: node.position.x, + y: node.position.y, + angle: node.angle, + scaleX: node.scale.x, + scaleY: node.scale.y + }; + else{ + record.active = node.active; + record.x = node.position.x; + record.y = node.position.y; + record.angle = node.angle; + record.scaleX = node.scale.x; + record.scaleY = node.scale.y; + } + + // 记录组件启用状态 + node.components.forEach(comp => { + const compName = (comp as any).__proto__.constructor.name as KEY_OF_COMP_ATTR_RECORD; + if (COMP_ATTR_RECORD[compName]){ + const compAttrs = COMP_ATTR_RECORD[compName].slice(); + // 记录组件的 enabled + compAttrs.push("enabled" as never); + const recordCompAttr:any = {}; + record![compName] = recordCompAttr; + switch(compName){ + case "Label": + compAttrs.forEach(attr => { + this.recordLabelAttr(attr, comp as Label, recordCompAttr); + }); + break; + case "Sprite": + compAttrs.forEach(attr => { + this.recordSpriteAttr(attr, comp as Sprite, recordCompAttr); + }); + break; + default: + compAttrs.forEach(attr => { + recordCompAttr[attr] = comp[attr as keyof typeof comp]; + }); + break; + } + } + }); + + return record; + } + + private recordLabelAttr(attr:string, comp:Label, recordCompAttr:any){ + switch(attr){ + case "color": + recordCompAttr[attr] = comp.color.toHEX(); + break; + case "string": + // 有多语言组件时不处理 + if (comp.getComponent("L10nLabel")) break; + default: + recordCompAttr[attr] = comp[attr as keyof typeof comp]; + break; + } + } + + private applyLabelAttr(attr:string, comp:Label, recordCompAttr:any){ + switch(attr){ + case "color": + comp.color.fromHEX(recordCompAttr[attr]); + (comp as any)["_updateColor"](); + break; + default: + (comp as any)[attr] = recordCompAttr[attr]; + break; + } + } + + private recordSpriteAttr(attr:string, comp:Sprite, recordCompAttr:any){ + switch(attr){ + case "color": + recordCompAttr[attr] = comp.color.toHEX(); + break; + case "spriteFrame": + recordCompAttr[attr] = comp.spriteFrame?.uuid; + break; + default: + recordCompAttr[attr] = comp[attr as keyof typeof comp]; + break; + } + } + + private applySpriteAttr(attr:string, comp:Sprite, recordCompAttr:any){ + switch(attr){ + case "color": + comp.color.fromHEX(recordCompAttr[attr]); + (comp as any)["_updateColor"](); + break; + case "spriteFrame": + if (comp.spriteFrame!.uuid === recordCompAttr[attr]) return; + + assetManager.loadAny(recordCompAttr[attr], (err, asset) => { + if (err){ + console.warn(err); + return; + } + comp.spriteFrame = asset; + + // 特定情况下会出现SpriteFrame没有更新,点击 Creator 能够刷新 + // 使用软刷新场景的接口,编辑器会闪一下,体验不是太好,不过可以保证显示正确 + REAL_EDITOR && Editor.Message.request("scene", "soft-reload"); + }); + break; + default: + (comp as any)[attr] = recordCompAttr[attr]; + break; + } + } + + private applyUIRendererAttr(attr:string, comp:UIRenderer, recordCompAttr:any){ + switch(attr){ + case "color": + comp.color.fromHEX(recordCompAttr[attr]); + (comp as any)["_updateColor"](); + break; + default: + (comp as any)[attr] = recordCompAttr[attr]; + break; + } + } + + /** + * 保存状态 + * 新增的节点不需要处理 + * 修改的节点 + * 有记录:更新状态当前记录 + * 无记录:保存当前状态,并在其他状态上保存默认的状态 + */ + private recordBeforeStateChange(node: Node) { + const defaultNodeState = this._defaultNodeState.get(node.uuid)!; + + // 新增的节点记录到 _defaultNodeState + if (!defaultNodeState){ + this._defaultNodeState.set(node.uuid, this.recordNode(node)); + return; + } + + let isModify = false; + let record = this._uuidRecordMap?.get(node.uuid); + // 清理已经删除的组件 + Object.keys(COMP_ATTR_RECORD).some(compName=>{ + if (node.getComponent(`cc.${compName}`)) return false; + + if (defaultNodeState[compName as keyof RecordProps]){ + isModify = true; + + // 如果没有记录就退出循环,因为已经知道了修改状态,而且也不需要更新记录 + if (!record) return true; + + delete record![compName as keyof RecordProps]; + return false; + }else if (record){ + delete record![compName as keyof RecordProps]; + return false; + } + return false; + }); + + if (!isModify){ + if (defaultNodeState.active !== node.active || defaultNodeState.x!== node.position.x || + defaultNodeState.y!== node.position.y|| defaultNodeState.angle !== node.angle || + defaultNodeState.scaleX!== node.scale.x || defaultNodeState.scaleY!== node.scale.y) + isModify = true; + } + + if (!isModify) + // 检查节点是否有增加或修改 + isModify = node.components.some(component =>{ + const compName = (component as any).__proto__.constructor.name as keyof RecordProps; + + // 不在 COMP_ATTR_RECORD 里的组件不记录 + if (!COMP_ATTR_RECORD[compName as KEY_OF_COMP_ATTR_RECORD]) + return false; + + // 新增的组件 + if (!defaultNodeState[compName]) + return true; + + const compAttrRecord = defaultNodeState[compName]!; + return Object.keys(compAttrRecord).some(key => { + switch(key){ + case "color": + return (compAttrRecord as any)[key] !== ((component as any)[key] as Color).toHEX(); + case "spriteFrame": + return (compAttrRecord as any)[key] !== ((component as any)[key] as SpriteFrame).uuid; + default: + if ((compAttrRecord as any)[key] !== (component as any)[key]) + return true; + return false; + } + }) + }) + + if (isModify){ + if (record){ + this.recordNode(node, record); + }else{ + Object.values(this.records).forEach((stateRecord, state) => { + if (this._state === state) { + record = this.recordNode(node); + this._uuidRecordMap?.set(node.uuid, record); + }else { + // 深度拷贝 + record = this.cloneRecord(this._defaultNodeState.get(node.uuid)!); + } + stateRecord.push(record); + }); + } + } + } + + /** + * 遍历时包括拥有UIState的子节点 + * @param node + * @param func + */ + private walkNodeWithSubUIState(node: Node, func: (target: Node) => void) { + let skipUuid = ""; + node.walk( + child => { + if (skipUuid) return; + // if (child === node) return; + if (child.getComponent(RichText)) { + skipUuid = child.uuid; + } + func(child); + }, + (child: Node) => { + if (skipUuid && skipUuid === child.uuid) { + skipUuid = ""; + } + } + ); + } + + private walkNode(node: Node, func: (target: Node) => void) { + let skipUuid = ""; + node.walk( + child => { + if (skipUuid) return; + // if (child === node) return; + if (child.getComponent(RichText) || (child !== node && child.getComponent(UIState))) { + skipUuid = child.uuid; + } + func(child); + }, + (child: Node) => { + if (skipUuid && skipUuid === child.uuid) { + skipUuid = ""; + } + } + ); + } + + /** + * 深拷贝记录 + * @param sourceRecord 要拷贝的记录 + * @returns 克隆的记录 + */ + private cloneRecord(sourceRecord:RecordProps){ + let clone = Object.assign({}, sourceRecord); + (clone.node as any) = undefined; + clone = JSON.parse(JSON.stringify(clone)) as RecordProps; + clone.node = sourceRecord.node; + return clone; + } +} + +// 场景编辑器左下角的自定义信息显示 +const DIV_NAME = "UIStateElement"; +const UIStateDecorator = function (ctr: Function) { + let createUIStateElement = function () { + var div = document.createElement("div"); + div.id = DIV_NAME; + div.style.background = "#2b2b2b"; + div.style.position = "fixed"; + div.style.padding = "10px"; + div.style.color = "#cccccc"; + div.style.fontSize = "14px"; + div.style.left = "0px"; + div.style.bottom = "0px"; + div.style.zIndex = "99999"; + div.style.borderRadius = "calc(var(--size-normal-radius) * 2px)"; + div.style.boxShadow = "inset 0 0 0 calc(var(--size-normal-border) * 1px) var(--color-default-border-normal)"; + document.getElementById("GameDiv")!.append(div); + return div; + }; + + let __oldOnFocusInEditor = ctr.prototype.onFocusInEditor; + ctr.prototype.onFocusInEditor = function () { + let targetElement = document.getElementById(DIV_NAME); + if (!targetElement) targetElement = createUIStateElement(); + + if (targetElement) { + // 找到 UIState + let uiState: UIState; + let node = this.node; + while (node) { + uiState = node.getComponent(UIState); + if (uiState) break; + node = node.parent; + } + + if (!node) return; + + Editor.Message.send("uistate-inspector", "record-uuid", uiState!.uuid); + + targetElement.innerHTML = `UIState
${node.name}
state: ${ + uiState!.states[uiState!.state] + } `; + } + __oldOnFocusInEditor?.apply(this, arguments); + }; + + let __oldOnLostFocusInEditor = ctr.prototype.onLostFocusInEditor; + ctr.prototype.onLostFocusInEditor = function () { + if (document.getElementById(DIV_NAME)) { + document.getElementById(DIV_NAME)!.remove(); + } + __oldOnLostFocusInEditor?.apply(this, arguments); + }; +}; \ No newline at end of file diff --git a/assets/script/component/UIState.ts.meta b/assets/script/component/UIState.ts.meta new file mode 100644 index 0000000..0f9c5fa --- /dev/null +++ b/assets/script/component/UIState.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "ec297f87-5b1e-4f05-84ac-867a55fc4304", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/wealth.meta b/assets/wealth.meta new file mode 100644 index 0000000..c78a9ad --- /dev/null +++ b/assets/wealth.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "0185c6e0-48fc-45f5-827b-2c51e01f63f7", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/wealth/ljcz_img_004.png b/assets/wealth/ljcz_img_004.png new file mode 100644 index 0000000000000000000000000000000000000000..4da9cd5a8fd093a174112c9fcc492ba031c3a06c GIT binary patch literal 70046 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

VDkm)xSW* zNNF*>%)xIh{bEll{wcA%bJ6E(rE&zDZ{2nl=tyBc;egn*fkNx6M&kB+!c5MRDq4*^ zeRYqDFjuw=3$WYYO3y-KX<@=m1%FR1HV{G$q01K@(=P@Au zdF`RvXv#Qhyv+qZM2OY#I;Doy)T&d#+`o?HDL5XY5$1z#Bs_i`8KvY4jmiS{oBUVb z&|10VxD_tKp|X#)6P@hxah24m20wqQbkW=jtbv`m_!l7a8_k~s5=bC3d3896j7v$` z5ucAmSc{oZQBnruPvo;Z4oaB*+2nBwj z{w}QEoUqrK{1oX4}IrZ!X)8x8lv_ibQ?b%1vx{wm{Hk{T^=za89Gj>$w@ z;%MqJ&i+lC)-O%zZ2aOQGR5EWBADE?_B*(kuii-QbOR$lrV9Fej6*Epbt=n+n`I;D zf^;*G5{}KvlalAdj0vvo>~9_T3;tAa^fO!ix_ZC-83$x?cVDvduz29pT$i)y`sC1R zYDDQv1j-MmN-_ZonY~d!$3&%p_qsS=y+Ch*akFDXj7&Lxj{tAU^STw4hjNG6$d zPI}{*W-MwEg$!@4&-U&M$Dahu_;`tMf`z0xRM8H|g^TZgjAqe6=EM9i1~Ec@b{)ka z(TM7_@_GRZb2=t~4m^PN^y(4z<66ESfBSqO?o|O%X`HCxRO7>a0~v{}J8{ZBLqpr- zIwj`2)bh@jSC!6pX$%MS<;{Ag1!s_DMQOF@7aWo4jktY1*2{UtT#GF|j~_?VteXeQ zW!$Xq_%3d#x^B`;;=r}m(N9?1DEiLp5?VhfkF|`?kV;n&2i{laml*NN2$vsV_i4|#1dQ$#;XjjCY^piGanl+&0gVh|VU$!Mp~i+ipi&9hME>wKAWn zil~Y`PfuuiuE4Z&ZIVlXz+E@B8jqMd7+Gbtfw_rYQB^g>c4MZ%zfw6uuoPh_7@#3WMloIK!d@0$f zba-Q}1JtqcT8Mf9d~exnb(8EglKW2nlhZExyqdAxGCQW*3J(N*;(3D+-e4~fvUd^) zY$s|$?hlw{)IrJ6@H@yea~bOQlBS79n#Vadl8G~RbEym5MD&M;ucLd6Va?jeCAmIt zDgGTH5J={d!bO3SrUn}`&73KTR~7{2Q@pC{zUa}Jz%D+0)(R+79JRRu7fr0!K+7r! z#JT#Bzw1+N^(?6a!G;2eo2=MwzdjFktt3|HpyA#DrC;P1L7B7UE5PD zH_#AppxtcNT0E{uFz34oE5KP!okH+_K;LcLK8k$yj(HTNw%ytKNQ=ZL*CLmR>Agv!aaN4M_LY`&D;6AHn{-* zVJ=;7n;4}54{$~&NHc2NG@{s2l$@=K<)KrfN!cK_MrvOsHYPIoeLGEP8^D+Bv1_xm1J$`3O9JRuzi09~0P<6>*gPqwBy z@B(NVc#ue9`j+!~6`6$A>vta?+c}92-AXnm0+}^#c?X{|iKT>@TYyl9uGJG#^f6Ih zPM+B`(Sjpz&nhi5>)%<)Zu?QU0*xm|nfPmzzM)Y{Z!BwfzUGp;sQ9&Ofq@|dpdspPM!orWP$fbS|kuxYB8v%bsYHwiX1kvIDmelO(+-?f7CX`|UtxBU4hR6z&@t z+S3k``bsf{&oa+@;K)srRfT^(1XJ&*{fWlWj1dhv&m(pZyfU~n6N~ilIB<|m)9$1{E!<} z4y?BLX1}&2;8kVMOtz0T&TewbiTzxZ*psXZ6IMZ`B??DLrdL*}^TG#FpWbRb>us+R zMnK)a-jxLapo47PRJAd=uhFRqXD_55`RQ@vx!BU}%>t>djWF*%<59|47Zd44GU^`KG<=eY=|-jWbInW% z7!uXQtB_4=AGvu7oR)2(PC-^P(tcgpj_x|@8hUR&;qHjU;HFkJ&*Ho@h%kFmxbhYeZ;X)pq zdD%&Ag-c_HCm6m2XT^Dl{TiX+ST0|HpHDLFn}0huLUm??S^gKTi9(!zuc3M zI6X#s>E)#C4LDcU_G7Rh0D1vCm=bB5fBhD4d8k}8tjPP)vDWveVJY2=yw~BlNLpA` zse5(xwy2jw>pr{SpIY%TWaG)eO!MRF2qri(MZPslMo91Ad?qjg&iv=u!V=g`>046T zliboJYq%&OIi+9WF>==GIZU10>w_N)`KGPF?_=QBst$`;8E8B5-mjo-e-$MxeAFh5 zo-&t@!jJv8Mdj+4|E`gN^vwXVis{kE3%6nk!9`FtSVw^N&tw zA2QFR%paSQBJ1o9O=WvQ**0cmwS-$&OY`_N>AwQooIm)mV$?_h{)os0Ai>IoZG6L@ zVgsiqtg6c>>FJpeZq-7<*=>QN7Ojgp$RvKq^7s$KCr zidXUajVIayFN{M$#QqOHDHvt<67|D5$B7TA-kWLTX-Wi9wM$4CF)*aFWmJB?t{94G z^d#YHSvU?SbFj_ID z|B98R5@U7sff?%wAuZo>sph%yuoL-?LWrzh{f5mlWz)CvsjPI0YDoz()7p3$^=1X4 zEf|hea+e41YNL%HJyB-ADh>sI6;ymFac}8q3f3;jDCINq6PL+~PhTR-f{^3O$@nL* zUy?L2nRllut3x`W_v^)bJHMC_t?@^8x#Pw1_%lAN5AR!XCq&j0__uu+A4p`IIqsKf ziG1eB$WBVYAtV|U0z)u(Lt7@Dd+!^(&sY1N)O!iFJeaM@R)TQ})Q)bk5&bme!ueoh zaxjaK&Xv00`ZTY6%l^thLkuAjPC=|{zZQ)z^sbg(;_a)5LNX>I`XNi8Ay_%O$&B9c zu?qAwO&aa((G#s4IZJ&?Hm2O;NR(lcB~{M8g-_2O7%p?6PD)WfKugZGitqRv!_R`7 z?hm{%SORuXVU2RwMy#+l!4#6Ig2Ss%~O88aQXIaLm06BHP9K*9G7cZg^CM4QFI z?1$ff>k~(Cg=WZDl{j|NC#`P~l!x;*TD8?TZuj84U1!q>4O>dfuFc0CX^M<8warjb z$&J&{ds@~S4B&V!(eXZPinZN~7gf#%@$Ep#%dq&?PteQ6!@1NzqL_D8`3gFq+4594 zgPxavyS2CCx*4LrVN;{zd2n>!c}gv-$SZF%@ZO7qlUjRnC`X#`xrH$y7Fy=dObk$7#;3Ppi?NbX=Auv4DR>3?YUtZ zZvfJr1nGnfZ+d*=M&F(|I(8|Vo=sq>g836ml@DfP!LVuc39C;!Tff+{ZY_313ROM6 zaq+ZoW=nkxbh6|CTOOKJ^4&rT;(bZFKhh31gmzaRSrVn+LoV49O(g7h<>W|o%Pb%G za6?-z8;xf*u$g^P4tI|^N=HU|MR42NsonKH3>?XdhBJchk_+t@brV!mYr4%j8*4<7 z$Uf~+js4`gbpyetn#c2ulwq2|ck$GK&dV8{wDm9FW#z^+4p?slCHmu^7Kj7X;V+R_ zE{|YX<(3$i5*Sxx#-m1L_fx=aydEgrhcg!gF0CzS7%!Wz--lab&GmjOsM8}BRW?k3 z<@UQn2l5b@#?KDY*|J@!x-43vSzDohPoifXBh$2uH;1O5dIj!Td_S&O<3;F?fkv;u zUTXDtB;t4_XQEyzQ3X%bcw++#*u!eg3E1DHsQ^MdxfGh*(caO~G-Ku;npoaM%os_X z{rG0L{fTUHXOwm7tn3U7ht>ZRR{T^7Hta{w#+a|5>I$5j*8@WSyiucFb1}$?UvL^~ zX_!PFodi^`7iAT!dGYo*x-eR5$g6{bgjuRa8IGlN!awj9Yd*^~I0dd^6A}BcS?Qum ztcBIIkZLM4&jm8DXN#X?!Ue!}>jMiSxkXiFKbz9%c)}JO*VFScJ<3=SywNvcfiwTbf4Wi!yyWxQ!7_#B`x5WT%cvzr zC^r=h2dXTGXLmlRKN1=iAEP=P>dX7}stq&7^qk5Fbt zuQWe&ad*xG{8;_k!2*KBMZuIv9mWtQL%cnKxp%hPqvBd>bjXlJ>;s|VOman3J% z4og3OuRh(wzP)_H_sDl9^8ee(g48fyFQ}st$|F)?A7_KY6)1WGUXFz@E zG_C)+^FPp4#2SDP?;@9rCK%BR@&mT*Cg4^D=bq9`sTYP^A}!t}^!1?YY>ZX#;^H2Ts=m^ONQcq~*3s6=3gj|X+k zD>=ET>58dfjWz85@{nV6>bgu>*&hFky)a`WAdqd1>D~Hm_QK%`m1e+WlepQWZYKLQ zkef$YN@G4LT=NjOCB*HKn4@7ZsZQ)b@HgC68KzD|p;h8^Nn>49W7K->Zx%RGhDERT zR{LI+S&9(b2uwZHCQc@MnGP-D7lz0wYGp7$K$75|Yw_bT`t1jPCAIav&nYNGU}c1f>)Z`Mu};o9jB) z&USd7=X~$`{@jK+8tS#O5_anpR|Lu0JGWu0%$$OxpDx4XAjzg$Vm*A}&l7W{|6$k-i6ClyiAx710+cvI6fj_f@z|GyvC$A=c%{yZUXT_U~p4rWRsb!qF+SRa>A&8)RJ)56u93mNe; z1^hN=z!l!p62otE*#evh^d4@1(h+vHvT!qe#gLU_)Qbb>1SApi|t#(e^EKQ?Dz$0Ki zrDMA5vv7O-=MybW<#$snA`6;l`v|_b^O=uUuhc94_0P%Et&;*E(31t=zn0a+QK;Ol zy86d;A+-R%85dhqKr$m9fNV`xkR)XM@JDVSsUz|E`w!0DEMNBs_ydd%#XFqR@f%4=22D)YRpRWwOMdy3FFFc1PpLL=yZ!?a*P7d>>3=-cmQS1$ zQ4Fnn4LLo)aVBfV%0+4<4Q5-MypYqw>7?P-mQ7R$e5ayF&AHvP)=M25!k3oI1)GA@&2z_8>NE`!Q+_34Q%T{Q|# zWt9!KO9TP$$jAXz2@_ty-bWo$l_`s^sUCfw_Y_YW0ri8WTNt0dkOhiC$Xr%U- z9O_X>91ZqJ6pvA=DNdY{Zo80QBq6k3QT!2azh9PSwx&H!2faeLX%a}n)s(E4 z$b@()l8Mw0x9cjJ`HozWBzzq_N_Av8`){O?oAfYTF5yRE{@*$(!K+EedOw}~>q7gZ zCQ{;a%f6?vG$5{q+;gw+FRDlu#4f-t14Lpyo&t;r=@P#CMOo`)11V^f@g(y80RF`o zF~v0MX76_$V(KLk?Z9kh!M5qop-3k3hOF*XQb)yu;M4cf%EGv9Gj2`ytCrfw-9Svf z0o5kgH|6MRSI9#T;B{?Ve=KDmkR_7k|0M4L<=+@#o`GtKd)J)D@TFZ}RWme{ z(|jc38vPFx1bJGoF_MJb&hflf46T`2$es{jH1Bvj=+ccC9&F3>{6s6wL(1|7Q}+?b zPEMgaUH9d;;!l9ado#52#PW8oQjCW>)O@I3C`D#170}3De?ubqrUG47ixeUDthw;Z zNusZ+TJ&TCO}T6BnwNTw_S9I^MlKo0R8o05$sZ=Jc;_}(3DHUun(k~K8l!ojGHl5w zkx|?_`lqDF4YO+w!dTm~mnC4?$Y7jWR$!j5v6z+qYuG3HTAxiqWm^Vkk@wpgjTsI> zeLtSR@go0qS!ZjT(!Dtx@727e8kC`x;ppr!V4JE8GM2N99OHEipzPTsz!%3`V=8$Q zAP&E*c~9?C%Pu?RaXG2=_1FvscJNfsCJhLB>;{WX?}z2A8Bh+Ln0hhU`v!w}o(CiW zC+oUu#a(k>+X|0Acxw0THtyb&1Am8RU&-jk6PFDaep~D8H-$^^2F;j9{>}XJtHP>k zD4k>v#_%k%d8$E|i|}Srs3o#_gT+)?n)dXDdFu>ba>2h-fQooRG4FQL@uZL#f~#gZJAc& zlYeP#j9kp=?+LA)PbAOxr2&7oxV}xwdz3^Z3y1W;2Sut{AJvW!owK06S+~qTohp`( z`*0UEK8ze~xn1aMhcp%v!cAK@h^qG=)eadtNtW7(FQ`hG)MJ#Lc5rNDe*pf>`uQm9 zLrEZH)Dk`p*kvA;g1Vory6_bZ(2v!b>|Z0}cKH7Tk@R0i$lPD3mvP=al%w(2W)3}M zIL4JY%J(FHU)f<)(S~jt*}^n7BvB6}d!=LMZnv#aRLjYR0(t=+RWbj_-Ki$XV*?66 z_om9Rt%d)A7{swd&Mx(X*_#qnhPimnTN){R;Vvy6J13?@<0(Y}x#V9Z3Dm1qKiF~p zI1eAhnZnE`tp)fTpO;=TsMlglo2xl;7r2v4_vKSZe}8}W_s~>LRy&(}@0k3)UNq%# z6y4ZxD|@@E#J|o;PSIUlmQdwXGVU0izz$JOo}B;W$e@+@|}9(+dadI;E7`>3^ex+OTB zS@0w{z@|x<8zOP!m;P7`Y^&#CYV8=h^)@+R;wNN-J471fdLT&$yY$Wq_Ywaxmi){eb8|Kpt;t!ZsZUvZnfZRr6@b08(Jvx&v;I&QA(X@5 zkn6BSytZ!|=}W@}l=kT#B9oq@0o=gW_OW?|dYfd#>Bsa|^oMI>JGmj@6YpjA_@~8$ z3X&Vbl=;M@HS^o33_^eRlW;NLV`|kncO55l`;cLd?*J9Y8S&JMT|MQ>qnhoLmC=&3 zIhFCAj>I-J&w;))ECYox=j;?B@kyz0EkS=m3kU|0Eq7r!ISp(4dt8?nJw z6KYL|l7dxT2flO*>gp{-N=tc8So?w>HldmS!E;5se^$&Li3+Vb@jMts7Psukc0%Rt zRV~d`Y=dB4;hrCpmUcfjdtKSrrcGSIFoky<7OeWAz^PU7_zKT3uF^8@!lO1j=(8n} z*NKFAMubTB#~=4)k3u93w%{L%$R5YUF2#?@>SwWtBJjiH@vO{}D7lX_eN*$o1hu_v zJ@D^PD%R&jU6!qXGV$*r zR=AD{;7!^iTjcksc2Zw$)mgs^gsgBC=~TY)zA}e>aKyS4c?7Yo+osXV(4GzrJnov zep~eoPxPmc`F>H-()Ib1H;n5n8>f$DOCb$IuM;B$8t7K$76&RpbIR*Fjoc}AE!h_f?=pYY z(1q65W%?WwX_ty;W|T7C7aSG4{V}9_9xI&g$Tm~rp^?wjF5Ve&M)7)L*RTOYB>3?A zG8>22R1+)yv%YPYPpbn6^@O5|*U7x{w}oEkH3t-$N(#h=-#CpnAU2~Zy-V9$e;sGB zhV~jgX93fbW!`V8dF;`o;`BK8UNv*{3n8&|XWFx?QZuqdx#sxGBmeua zn^6fkcn?J4E4=^Kr1%^Vnv+eS<5+-79tcc*)&J9~v(}br-LIXV7>Rs0gH;rt_S0RR zvkvj&602hC*w9uOj^Qt*S5l_m1T!vhe%v;_{%64D-Q$Fz&~Qk(q@crR$puW>>8e}5 z%37>bAj(gcxVkDJd^+?coIrF$LmReQ#ZN~0@W5y)@)40uP`*8zec<&XJ!N2G8pnL; z-K$lCArNc+hp`QiY8pf%1CEoKsG<+YCe0oN=L~FAnoFZecg}sAjKo=|1JZx^)gWp= zW@*Ye`CLh}+#Qv}oH$n-#Q%`XY#$ot5%k*T^w|D;0CZ-`*Gtw#VOP?%=l_{h4!@>& znJv%zHcF20wf?#QKrnmrSZ6B4Doh!2IK-jAC#-DTPa|9ABfH}Y&Dhpj0$xNM!iw_$ z^~5oU_c3Pl4h?J@QKGNzg61p7`kion9ZZs2bnf`ecI5UsiN@Mq6%@at(@D~r)K`{1 zf18Il|Fh;z%6Jo}!^9q&0nZ(tsnBcDchaUxL;0`&B%wfNkxphn&7;P@RbztdgaT!b zIlOBaQjX%uy#@s-uObWvHhq`rS-zem#{gQe}3;nt}!WvvsNGThPV7UAm^+buJKo=XMD zb-K3V1URx22WKHy2_HxGjXHtS=28N-W^dTqiAR2;lUtdvY+Ll92hfH}F?e-@?5ojx zMmNe3bX5kDP__N?@S#d`SMnl6PyIpf#0pXMA8aCunas&qpiK$dnjB@@AN-@`(g!F+$#jXol@Kl%AZ{X!q zW-R0MVU$E<-@3+KO{1r^q259|R{Ku6)CZ46kcp{PTnP$**fU)ii%AByCmXST;)0~{ zq7q)|s{xAf+=(#`JwcQ3?f%E%V7g36`3?sSp#cq!{8HV@yDePUX}QidGo(G69l@+` zVYDG(ic^q#m&7PL5>WCEP^V%_;Z$WkVfn?e_(j2@XAm{R8OMp4SS$PGF*7`JFQSVI zIiwH0Y?Cy;=Wy98KcS!x){8U@ej>ELDquO}c|}1d`Dal^08C4*I{|u5fSFod8{OAN zeWa?SZd#e#yiOz|*3#?wj@B!Lq1 zo@M)~&{vw~Pp&tWk9e1GEY5dentO6+oQ0ks(lzp$`vszW`g20tcRc_rsI(Y&(>IF6 ziN_7tX+u3+@6`skv;Q9w6I6lt8g+g7z|R%I9O|lbT`9!FQSec;J3^)m&SvE?`K@U` z{if35;RN?O(}L)s>+)Z0W`~#WkK7Qn32iq9?PTmp#6$Q+z{{#8!dQAzvc)6i04DYy zD0)q7TN$Z?uTZ+!w=Iz-X(JnSS66K!dTaH4gL3T`8qe{=OlgJ~ikeon$>ls?ruO#< z23>YT=V>+|_Y6$S{38Lkk5B|HV0T_BkvOG5GVvntg7L--!SzwrP+TjBP^VH(qG&Hn z6cZW9?_XD>9pKm_8T)uX6#?5x7y0PbB*F6UQk(9_{==z&$I^eRk|C!Ok<*Rg&6Jor zjdkFAGj#Z>QjADpD=PBHz*X_p?5KEgzRf>tzcHCb`Bm3|N0dhaca;b=^B)LIYx#ym z8Kn?@yp%W}VjcP$0bK$`M@L@LczVsPmup(&#%nDSblm7Y!-j&Ch${Q zF*#$BbX%}gY7ybZ?P$G~O}?PniivTA5@qS=9Av7SQtHf8Rz_bCQ{| zp$fo62UE?rlPT;R5PX~;i>G^?C-)nSh zT$HWDn#$K~r$Raakesq`OweLA^+rO5GGRtfc_N%~6ZclB;`20?PiNeF&q*)D0*LX_ zYImTW<#uc(DI#5#;%cL5L;t?9f-EN57}EMoHj0MCc%Wpg*`-pl3PjD1`G5u>mWnEg zk5fL=c`!c}e`@Ta-L`0b`rNm~>p7gUuGJmTAUQud81B3$E=iFY{m3n{Q17*|048duFyp5F83GHjJ-%87kt%H~+*QU~| z58OHYQc^py_FN%Wph8*_l@BiVb!q*${H_b%obUBFN+_SHsufE^n|p>$4XhOaB6|uuK;v9>Zr8dGlw5k1f+;FPv}yXr-#6 zf#Pc_m8;yIslLmGpN2)?@He{y(V_nomiJs2x1Qab{o&5quQlikC08tZaS<*;0v6K* zykh@>P62?bP&iajPX`m|${~*}=7*;5vTNcyu!+hP`fXGGBM0whLw6%&ZcM6~!!xY* z?3-lqUzy5#P8sZTos$a#=>2#QMa+)PG@zt`w1$w^IVQo~3jQ9K%%OGQUskbV{nQ(i zYd>)tbdim3h5of-NB=*zf1T)yv%_hP9n)9@ifxaE)l)M*6lOFKot=`2Fa@+3E^PU$ zj|@yfdXG#FHI8_$YwSe4H#7tO#>x*mb6{{sXvYG5WveOTp3AOu6*)XlQYlq0(?oPG zz?${g_!BI)BgV@5E^8m$xllh_+*RNgDMX8w7ZXf}WB|FPI6KXuL2h+_8rd7Ot@+(? z0ameuKgABax&{O-|74@n=O(r~)f;|O;rZ4aK6J77!i?;ST2WKqaeWxzzqAh0xD5itK*m^|uiGdF6F1q0jP1%W%Bf8EpjLw=O@oHl+Ibe+ zLltyLn=6sE(8G}fj){B8fAUUB&L{8u^1F40V-a;><^Ai@06`w`f|amZzf;kVjl6Rk z#m32S3gwf|BKoj=h8oW9Z*rC^^}JA`?iTQOrjDy4;R+Qnh+?l}T){1ImCkXtu8VbZPttG-!|>rd#9%YUV`a46udk4s=R79gIxMrUlIA83M9J-h5lWmn=+c&cdNu-_QF4b zbj)@U@?j3)1*Oc4jnfRHho1-|HPdVAiGYH-6!HUx=k4y?tkGr6QMk{<>LTA@m#|PD zcsQrF2D{<8VM#27xJ}nz6wxW^`<2phN|6?#_H~Up`7Cgn`yG4X%==VGtpvpk=pgdC z*rhP++<_m((E_J~(?v#X{#hjfJf#Fs58W1pmzR;($QRyYe~m~t$&5C*latlPgRQ@u z0=)|E>Jt*=@f|c;7;(Up%-dE$}Jya!J|DMEg8< z2PPSq>H>WSS8C}Bd}C2^Q>M?*z~V4^Ty8W%K#ZNke@RrG^PX9d9PjJgOX;PA5Bd2$ zczG=m+Ldyo#m`iM0Aa<6D&fDyp%0tH(%?FcZKv*cn(tMtIA?X>EDSZcGJiio@QTuG z87Ql3Yv&{W10CR#rHK6N{knT>`aM6Kd+TL$UJG97HS(L#UDoUu;ZMJ%iAymgCEWlT zbJX>s)LT?INoQ<~;@kq5xv2HAS|$y7d*2rDV)=%Uv2iZL2hVP$6K&p~cNl8&z2r>4 z8svGB_uW_F1JeT#x5^?-+kYUoD!72kA8JTE&@)iHpCOm`4)`Is4w}zq-if?_k;-i@ zU+^f$V(av-Dx*d|pTfx};-s}6JgyKtoc2lPhV2M|a9EHfg%%gO-q(WLQ`ny}U8HMc zVL(eePNl?*@iNc9g=B4vjQniLa>c!Jr@aY|7VM=~y@4B63(yKMq0Ml)ue>1>S5wZYf)S2h99gLHy zu+k0Zr6O$!U&AK)5UAt@T3%4z^SJp3!S5~REQ$utLACR7QmTUUUwNLEG@3+eA{JjI z9?kztVl^Jr7PZXj!%0>4b8YLLD9?SSBr?AgV)p-b)1r=y=Qrv z2ROg43u7$2%h(J~u*>AiGOnc05>%B9e$F2LK~-n;8fvyG_)>IlpI2IV2~^~eE~BG$ zGss#zAMr3Asi8klRa%6iFWP~Pg;TpyJNgat(XXkHF#8;Pj60&r^0Qv-YNHX)G$~LG zy~{QPHanjX=byH_i>___y006I+BJVe%N@DINpdsC9oiGMSveBOOYUY?*bKORSY~)u z;MhhZnAh$%GlpCMfQhGTW29K}FDRZX;F*#ze12E=oqrxoq4lkAG!GY~w#SP%2UWUU zds1+X$^@)ut70^VOI-O<~g)Jx-n(vJgmRJdZr^BsFErB$56AK+OvlNf4?4J+r*p z#0(cUU%{3-*cFu5Xe7Eg3j2L7#j|}-yQ2xpZ~zoA2K-H|rzyd$*Bd6s;w*$7f+rYF z+?Bpi>OBFrH3*sG`D3PV3pcfNmbYd-@<;A*9kEWS+7@^<^vriKFaf1v!o*R;PgA{C zQXl;9O6?MVOhK}u-Rgc3s!8~=255Lte?KhrEXoQYaS6mEx~g zZ0B@0YID1YPv++0$FS+q5l4J`A!W$Z2E+(V&CW?J21>uc*S5{r)S)}hWc!r~t92T5 zM0~N?JC`5WbLc87>UtirbaTXY;I=bCr|M+<6^%x+Q@%iwPw^O!Q~{!w6r*IM_Y1o( za_Kn)^c^pDoXroZL7_F7yz*S6AK7zplWN@?pLvO1@bheGAfJiYKM7+m9Z%HBo;hY15UEYqiD4|Qt1Xi_#WKlbnbt2`BshXg zK?)?Wm49Eg`rKk3p2J4ds+O&?Bc%SH4PvwZ#vfzB7wH}ALypz#G#+o~{=kGMraT1}sl=7c}_I z#9k_pNw+_CedM#CqLOKm_0pd=v?fIxzjOKVdqIhFbOs$F@@M}a;?-A2k!|BQs(Baw@(X1)9f6S+GpkuI&N(63L}=*f9hOg>fw{i6 z-+y7~daeOB%DnRA+u8t-Nk-^VZ&QBknbi2Vwph!&ozaba3G>bp^ppsDPGr;6|PEV$@ z%yB75X<;ZZQ5XBNn>~70+w?!sz8@+I%M$Q_GNP6e4wSPF$?tk7?S&6=9fa=%#)u}= zx5ok{&rg9rLEd%O<*a3s+||;~i?Yt|oRctHy3pDAIMC9DVGXapahz#qUk_-iKVk79 zt)9xL;Kh9lR}Xag|06s$6!cMh^KabXP+x&Dl&k!EfNdM+f`AmfpEY zr(~wI6Mso@|AhuW2~#!54!Ji2m!|mVaNYyxcRF1<&_39rSa|uLX)LN7Dqc4{NK`#i zi~KqvDClvpHc%|cAl)QqDj%^cpj907lVw5ob!^fwO5|aq-)Bsw+lR>^xfI-TyW<-( zLq5Yt0s?7E%$5_oNFv$F?1qvWV#QFmrEeGZpeD&`j^M)VWE7J~_sS(VtemxM&1yCp zJxQ1yJ#)*@Y2l~u{;M#@PJvWrZ#dhpMh2jq+dD!PUPdY+bXzUHa(@_$X+3`3jftGd zh?OmUuGMg0pTqT@(ONAt;TH3L0hhh zO6AXkFo*+Sy=^6DetCe}MfHs!_Sa|gPKMZl6ttp9bVZcL?DmTc3M3vy5=d09Nq%3< zZJPLcw$g-Cj_lQ+x(!7XUF0P1cZ?qU;QI~ZY{i45&}R+P6PVKRc6oXW3XTN>({F*3 zNFfItB2~he(Vdww*8I{uQ?9i4Fj^|FXM?RdpI3Pc$)0k`#TNBL6p?X1S_5Qy)0%k? ze?c^6ki@F;>BhzHOrMazIK?_2r2nBKbefuF*A&Hq?(AzP)RI8w>x@9!OP9^!0tV=m zHCun?UZ84o56Lzi7An$z!RVqgJk9Ml{)QK-l~C|trvZ>B@5InzB5Gxre)AsZ2qx+d zF~^bAnOL2bxxW-5lfucUr${Ayuh=Rmukq2LXfqklE0xP)8@X(y=}}|7!lL8vwy4+s6!%}5z4;2RjNv|X%l3S5jysrHZVR1R!*}&U)P_X{ zH!<0EK8wFqpq2dMlkgb#*0+N(s0N4E8MWR$K?g1wWa#t$bgDzw1#E*u=E{sF=zbl} zdv}0HUMoEIP0K9BCVYEQ>*ex-vQ~zTOC+J8wv(s8VH?8eY&s!H!GTB(2U8Cuf_5x0 zAsRqoaMClU$P5}IKm@xgrFmS%8vVLUz>O*;rWx7|-KfCfU`C1iYH{MkFYIw76jI&L ze8BK9!eqm8*W+Ny*kOt7m>FdZ-eaX^TH^JiD$o!k>Sa=}MaaklzQ=f7J3 zKy!tjjhLw zMPz>1f1p)!{4lug5fFSDZj;Q)qVlgvH+mOOWr!4uV+?x~_DcE*(kVq1w5WS=-L z{t={LKY>1ckBMh~u@3p1H`g0*y(nM0zW}w%_m_y`Ipt5Bpi#-fEC{puXYyF3I$Fsh zE4C*?9ctu0FD15W3=qEaE>UM$)D$U(i-x@$f-u(3Cn$tx`u8$h9Hs!0UChYnjU=AD zLKx*2Q(*iS2zO)(1GskE^!LWRJlrkEU!Ud(j+HxgsZ(+UmHdXW@=OIMi^YY!`r3p1 zo)3V*5YzA2=W5e)o>b$Bo#R0RvqH#D&dbi8ah#Jz`2HQN3WxEHdY$u@^<0FsZv8<5 z1mo&*PBKNn`v#_Evej)%acBUAf1=M7?-u&2Qnkuc99_?^{#}WazbvEv3>|R;pjFjU z1;Gz}Jrs04t=fjyL23fr@i@efT<3qGJ@_>r##)A4Z6>HvLpN8BscX^TQtL=|QD9^U zdon~YUCrRKgdn7cro_-I;Ts_F(mc3ACn_T&k;icJ7-C7!Pm0X=G-KC8WQv$L7xj=# zD8Nuo6>V|t6xkuug;3vsIO!NIwBJPeVZ|SdJ(TEr)D$z&s>DpWR^WL(0 z%#!ssuinPoLn?%aT)w4LS9W0|kg4d*Y|l>}$Ro=Z`rp83x}X15%^+n_vQ4GyyZsX- zINA_R-VJ4Er`DHkUXAqm{g-GzGAv+e@Uigt=r}W%BJa9R3aOq_53|Fhr+ZY8+}fR23kmLnzLE zCE-n}TWRc`*eVHXYXYf~Kk+6svXu{8ZNC~AjOrJrx|XSLZQzkPH1dY`3D56hG=>?& zjqcc`Ygs-;aCm1Gm&b!quKpNpCjRZqD~@loQ$rOi{?j1_6uo)EODPd_>yhtA$}6mL zZEe(Ie{>vktk&^%hbEL%vUftX0qWx#B8uZU;P9EbsDoC zCuVxN7s&|J8?Sc#{8V}e%QMMA9wmb1kbz}ef*>anZvP2sH99j*&0Lc%d0;9`S2{{g zDn!nE0Of02-IUZ3=p*6Tb2S&siH#Y4?8Wo6$V{y{r~}@u7m;{l%J~R0)(wl@&<466 zROOp4bm1ETe`O2V?61vP+Z4M#D5e*a)Y$|@CYtwq_;Dy!3eezf%P%Ib30%4XyOAGS zk1;UHzb-pyCEu(yF90C8)kT>0Sfo|5cW8)mhfPW-am;O2Sb0D_v&_0o8bZ#J_{3t+ zxO*=zQO=<2#W=T6f?yIpV7SDM&Hu>3$ba?oKGn1`Gc6+9>53WXl&P@!HaM)p0Alv%*d>tw-aCpP}_Ifpf;LCvBiQV5wYb%_2 zp<;IMft_~ANSvn#Rf{MIPN13`P+4PZ^X8QAnT@x~1|iIJT?e+2*$HN13f9XN!D{E< zAgeH%XL-W=##yU$gXi}TrZOA9k-H4oH)pIeR`$_vYY2fDdZSX8Kqaw+?)kxVZ@-#G zYS1gHuRpeSimtvcYZ{4S&7+W>S3N7NMM-dweh(OCW~E38|sqT+aQ9^_Y&1k79!KqxiOMC@fjg&nL8w`Gaw(Cijgvvu=8XlkMQGc=q+rb-h(b8D zI)mG~jkkW)6=J?t6_CdVFi&i{kr76+>r&+L+$EKL`HADJ8+*X1ap#gL;%c4HIibyC zf*_Wt4;H}_IM_z68vfyL*w77AJ|bc+BOZ6(SlaPW_iJktDU{{upNR&5u;0l)a?dRF z;Zz99TMSLAMPfCMwav&ZiFzH8_%(pA1Q?9kp4$?WEscTcoz)?=Bd0TEHz2?6((5^Dl}U#ea*CH# zi;4rnDw%Rm6;w3vOt(^|JoRJx{YA=k1#oOW$~p=+Ecx=3Pc^r-KyzMjk11vyV|0YF9_eWTy&#; z0xnVY9Ns1)?zcTeM#Uz!1Rv>WeAvD|h9)nZ=h>w^A3KE83yXZnsCg2N_cWD&Hgm|? zH*FB6d8v_M`SZL){71gDRk_eib0!ce)8T+|dkFC`@mbeoNS7@klPDe}VgfzB-MK&= za$2$^(sBVwkdI~P{~@q31N=5e{@=d6MA`r$Gg+Imyr|*Ds{|Hf+S3i+b_OLq7i>I} zX{kg;i)Yj0cdKA`wG~!Yt-#b8eiC-cA%~N&>L066MhS{7_@TrguGRJnItp3(pJ#Q_ zxSq2+tCKPyh|m+XR5uD(nCg9MVr_@}Zk%CdmJm{U3aNg~S8%cpiC0R5#O=e7Sr;-M zE+j*_8hH{&puPNd;gID*Aa>$8w74+;2Z8s z@lZwhuPS;w)JrM+Uu^6H+c9%Fn;-LNUnBckB=Dh?16qMVDz9c(V$Izsz4M#9G0YM< zj*al6K1MXy^%kl(>tZfxOh{5t`LM}}8V&^6SL_^$Y|b`9 zA6x-|s}lJWwiiWqpec<2pF0DmF5WCrZ%K-XR=CVxdS$Pl6=4ge&H3ymOb@D`o~frL zSVY?bD#80R4F*B_h=)93#7X22TU6y=`lCmP|ERXNTi!t{sN`s0w{a(oFQ!PRe7&DW zplFbCTo=X7^HMMiAIIPAvY!cQvE^D3z!I00c)vqG4;oB)>wU?_~-_jP2z> zTS}6Y*V3BLrtlpjRJ?+LpkLqw7D=qH^w4;q5MeV{u7! zphU0VY5hezCCDNMZ?(P$qKW9D08a0FRxVg%Bsc^_0zXbmtwhma6V6WegNr(ZNE&j{Y>Svcw+^VplhsE*g2wVK0KfS5&kx0&t(v;#0YBR>| zi9R{8P?vCKjYdaGk7}ZTulrWXI;cnaf0f>KXk-WDam}}2MfiM$pKR`XQC?{qe}3@y zD-=EC$hi_Wa{_oWWpFD;&cpvY+`C04r)C6&=?|kl@KxEDE5YCl9^nW@%D-sy!+rMs zleO-tXxwGL67j!&Nn{jypA$F)PIa(R`}Zw#e_sP>R1GREo!>7zm;cRKJY6@6pT8}% z8~K>c;j{ZvdiiWKb`0Yiyte+Y1?sICyf}DDWv?v#1j6J`s{G`ibeUW1x7R7>f1-%* zQ*mZCL>M1LnA{&o@H~@>pI4WrS)!gc7|cZAs6lcIl&q?O~eZ4O+8mUvG-xd@Q z2ug)2^mP11Y!9gZ2jZ@3lKH;DyLGj##=*~7cIxk0(w1sqEJ18A6QVzDrn(UN{F%UU zSvusrv=ajqUv?+606pf%tN@wZaUw%(&FU86ydLtt$){k^v1W?Rnzl94yzBu0HlY|UF>3SW*-pmXZGtcVK}FY+Tkkbvo?TzlJh|@AM;l_$P26w?awMc6x7i%U8@qXDMSt8Fwt3&*PXz zrb3W$$0mM_OH6>d&EpzHd<;U_n@ZQPs(8)!(y&q2DY8jA^D3H`)qxS}Fc~6m-wKHeVIY zic$6z%a6YhvuW$r-ZIQ%C$#uX2D9~!XlGL}Od6pxV54AN#ne{LHn7Od!D)N!Iy($@_dn?{#~{T!!s z$k68`2j6I6Hgqp}9IqfkbHas1{=u9)g{EQ~ez&bo^m!@7H;WLCR=i&kc$!d(Gj$Le z3vwvcS;|f+C~#^J2}CbYMpSY!=}yH8Qw9V5C8IYCl;jmNpO1k>vN}iT)f#Rqc7D+6 zO(ejf7ps9j!g6w?3YP5Z6+iLSm;B9a68?ed3~#5vp)x9mKm8x0x%Pg)Pg8cqlFe+T z`D5!B1E>tLh!XlrAnN!@5aL^|M&BX&2`~#9`a1}Nt-Idbo7OV|v39+ut!$Ztg1hf8 zxjS!jz1HyDOg=o_;XWexmQ)YaT&Td~M!fzw_#a4-I#1G(O9ltX0_g@j z&#+!_p`s0>RdNLB_K4QIh=1J2!ZhCbHn6Gko&v{ggT-mmyT}xS%AXq=hv$_KE5f-K zcws_scRTaG=x2u{bWiSr+`7*JukL7Du8b7%|P=abSsSSLbVe!9&RLDtA)snFU zY(g__2fMV>mx)43<$BuS-OkaCR8sw_wveU~iuXB+txYdZFI#?a9;@;d$z`aD^to5U zbHRMUfO=Dj%VoY6jkhsULmCibSOBAr>{&G^4e+MuAa$awSEE}|jRwk5?6M4g;jk4R z13i+AEZ=p0Z0Ty^^OrHoZpRYxLR*8Qf&OgOf(o)%B~1X#ZFyI`G$5FHmVroe1lv!% z8S^NUvS+s8eHYNf;F?;S_}{)?{WxdWm_+;;6f7=`ninqAh8<9Fzx zPSxFWH5>YklEfCkDhMq+Rd91}_a(JYA*dO>^hN*1Ouxu=i ze)Rmrf^9HTR#hShBYdrzJg{yg{$pG9A|;8_A%OQPqN=>%VT@IQg~QLUcS+p4BE-EU zEXfql3tFN0!Qv`Rr)osAOaVR;3|bs4VjWB=%>kh~x0%Hp#q zi>p-5&;z+0ByW`_7IOH%^-y=<6;m^e}? zq?nLR?^X^KUr8f^bs~-_lndB9490G(oFbU|HM1=yf7S~J8=;EJ5@|>*bt_%h>9x$*Ohwr=_{0i45q+RX^>9$V{G?2p##0>N@6|N{;#dHP-pGu1FzIF8!i7bUA z0lB?sCpMUDQnby`da0qq!h0t|n=u^>`t=nN7)8m+VW5f$N%2q<5A0fDr(A6QKTwcR zFSZFF@fp59%@*KcJcrv|esM@cwvr7vDGkC~E8Zs-!d>3xRHPPAEit3JK)65D{B zLepV@OMO^^Eu=6;K2N6v8bw4h6aG)vB&6u5AmWi`ZDI6t9fY!Q^?k?PVF3whZ>q}) zvsTyYV=J6|apXH4mVm`aI@wMJ6Ou@zOJYv#nofCyEqjw4!TQnxy;#B5#C^5L#_XjV zG0-Ex>cqxL4sBV-=@A%Q=Z@%g%tl#UC7_pKwWex5?B%2Ta3Nv3j_aW4n}yPI9#9jb z!w;3YN**a8>JXXHGD2WYBRtr1S z#L*~nf5A~BkEE}wwXyeMZ?DQGwlQBN>crG8j2JXUIGngeLugMc*gqe+n49TU00mDU zfoEsby|lxv{`75Sv9fawgN_jX+mMv+Uo)R_AvcZt+o8zJOYQc{g>n!DV(xa3|$ijTg(cfUX2?CiYHVej*JJuh0% zeeT0-UH9WhWmt)|I;_I0qk)VH;k#JDPwQKMli5PeoCf|*E(Zt%viOP~PZ2{(2iePZ z$$jmAr|mF>Yw~n`eTt^4|FVCdJ}YivbVeGn3C|7?nEE<7EwOTNZ56!@@k70ygqF|> z!aSEul_w)U9Spg=@=wm{hoWl~rU9n7_T*f{j>1=8zX@7!|bpY#txJsm;6YQ2+RT`GfA@?cpMeHa1) z9`s+{Wk;Di?aI#+EEMsa`pFQ34q>Y8= zIQmTHm`hq_%e~GSbnsRsJ}f!+&WDwR!;20)=V6(x6nfJ1Skd*9>m}Uj$oh2kEwmq2zeF|n4IkHvHtAOy;dU=V!p0P*1TLzk7e`g;mB-{@42WxupY~=A+zv zY~*1ZtVl6DQSC-M&8d$6K`P~M7n7*VJjf3dPaw2cBCUZ*?gtGcr8*q`tD~FjPKWDf zfbNT|fs7}_>OMYfBonWuTG-{i>3&k=68!6tzNJ@vth+q|=?uYd=&(DW0W$enR|80& zymwI9DLXYe{U+vg;g?~^V*!_UI);TrXqL3P>e|6|kt#?vU&afbHTWx|htl;kP~Dsh zYev=RAm5gPtey0!jE9mhDrA>SHyl``vqgoEM>`Hz)()RSo4@VWnlk0CuJe4IHKVt9 zqfJ#ZFWfWBn|}IP1arS#mg9;0hZVUr_5s3iHEyAR(j$J3_AHfrFh0rOD6Z9~a!LhMq*BBabfJ znw2(ugM?k4mFki9UNj-=H3**V_C_M$g%@kjS&Lnix%f0gKSbM=mOZCa;ie3C?x=Gc z7!D|cvczW8y?tEptPig&MG!YJ=^T?kSE*SD-LP+*GB8ADh#B?bk7zSaai`P9dE$Jr zEg!3MwgVKxQhqVC(cG@L{)`z3xPJ7Oa(fL*o!>)VIn4-A+-v3qkbeE*mY29U)(+`> z4w&OnQXO^;*R+U>jN46%O(J3uHPTH>E$)^d-y@|a3x5iD&d3~szFU6U>%j9Qoj)jh z%)2A*k5I|8-q(v1u-$y&=qJEjl_WID@~{|m%dKqF`F=sTJSIY(76n55%D70DA3v`U zJ!UQ(hqbOPOgKv;&AeG8U7}CezDct4T3c|XKp(F(!l{L^6~iAVB&OTBK=|s_8qjw) zVr4H8hN!+jr>QP!hxTLbmuxxgGb`jiZm7Q6bYf?m&OWfO;Gj?;twnp@s{7QaezRGN z9#+219p(6G=+{PHqS+~m`#a&&Z=X0w_KZH4YMNZBVXM2kRV*a_7lU};1 zi$xB1=dJy~RP#r72^VrsWF!3!-wvD~0=u*+oNSrr+nL7J9IK4}n?@5UlRs#_sZz29 z9mXPd*y2!|lIWF2 z?&(yevUIwQPpal!X0&}YjojY_e{gtRnXV?sl2jBrCxJ(W5-^z$z$)ZpV}1Dg{ecX| z?wz-IMQR+AWHu1uZr^=tE)Ull|JFlg?ZmJ$LiVcC;-LiIsL;`rD-5jTrD~jSt3dwR zq5s8l)M?y8=b29p%m=qp>x=AeFjMrs{kyMk5ldt!*o2Fgd90hI(ji?b zaxOVN)^wdtPBH?YRHo&)HtdzwH-uwtiw>Z%xtOW9WJNp^ zK{Q6P$T+hSC36FKpks|^Md*osCHAdHpNrcxU=%s>GXG^MULjdRW5k>{TnJtX9mk2R z!n192G+0UJuS0QqT@=q}N{@WtAEs=#G0$1tirZ3}Z@>P*r%H;jI%}cO@l_JnUA$dQ z{)JH;_W}t#k|5Z7!9OmQ`5(?q#bsI*3>Co30&|`4nvK<%FiyADpIK16QI!2x3#s(& zHc$A5ZyQt?`pC2VF(`N^9eE=oR^#%3c(0et^>)6+MR@k>wMdg@*(=k0g*#Vh=RzTd zlCYh;wO>r@Am1N|u;%RLc#^crR&3do<+LQu7*Cx$HJ}R49dK!wyj4E8-GmidKNt^f z-W+L%n5lP&=a`rO-RJaEhlB-)$$15wd1LdgB`?M?8W^`2)pHSV{|9je2m)%Z4*3^z zha>k%CF6}F?+6GG)rbU4#cY>@$##UGUDkz}AVfnLS1*32BQb!_?olbr1FJ0>jr=oZ z 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 literal 0 HcmV?d00001 diff --git a/assets/wealth/ty_bg_003.jpg.meta b/assets/wealth/ty_bg_003.jpg.meta new file mode 100644 index 0000000..21e41f7 --- /dev/null +++ b/assets/wealth/ty_bg_003.jpg.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "bde4de98-18d7-47fa-ae16-b5c0651b5ab3", + "files": [ + ".jpg", + ".json" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "bde4de98-18d7-47fa-ae16-b5c0651b5ab3@6c48a", + "displayName": "ty_bg_003", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "imageUuidOrDatabaseUri": "bde4de98-18d7-47fa-ae16-b5c0651b5ab3", + "isUuid": true, + "visible": false, + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0 + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "bde4de98-18d7-47fa-ae16-b5c0651b5ab3@f9941", + "displayName": "ty_bg_003", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 720, + "height": 1560, + "rawWidth": 720, + "rawHeight": 1560, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -360, + -780, + 0, + 360, + -780, + 0, + -360, + 780, + 0, + 360, + 780, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 1560, + 720, + 1560, + 0, + 0, + 720, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -360, + -780, + 0 + ], + "maxPos": [ + 360, + 780, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "bde4de98-18d7-47fa-ae16-b5c0651b5ab3@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": false, + "redirect": "bde4de98-18d7-47fa-ae16-b5c0651b5ab3@f9941" + } +} diff --git a/assets/wealth/ty_btn_036.png b/assets/wealth/ty_btn_036.png new file mode 100644 index 0000000000000000000000000000000000000000..01fe03b083f750e6c7dadac9f1691c6268d3b6ef GIT binary patch literal 14071 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%0AZ832{H( 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 literal 0 HcmV?d00001 diff --git a/assets/wealth/ty_btn_036.png.meta b/assets/wealth/ty_btn_036.png.meta new file mode 100644 index 0000000..ec4c7f3 --- /dev/null +++ b/assets/wealth/ty_btn_036.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "53ca0b26-dfd7-48f5-b7cb-579e1220e44f", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "53ca0b26-dfd7-48f5-b7cb-579e1220e44f@6c48a", + "displayName": "ty_btn_036", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "imageUuidOrDatabaseUri": "53ca0b26-dfd7-48f5-b7cb-579e1220e44f", + "isUuid": true, + "visible": false, + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0 + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "53ca0b26-dfd7-48f5-b7cb-579e1220e44f@f9941", + "displayName": "ty_btn_036", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 216, + "height": 76, + "rawWidth": 216, + "rawHeight": 76, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -108, + -38, + 0, + 108, + -38, + 0, + -108, + 38, + 0, + 108, + 38, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 76, + 216, + 76, + 0, + 0, + 216, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -108, + -38, + 0 + ], + "maxPos": [ + 108, + 38, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "53ca0b26-dfd7-48f5-b7cb-579e1220e44f@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "53ca0b26-dfd7-48f5-b7cb-579e1220e44f@f9941" + } +} diff --git a/assets/wealth/ty_btn_037.png b/assets/wealth/ty_btn_037.png new file mode 100644 index 0000000000000000000000000000000000000000..5d515238c36676d89d78943d8c4bb743945134ec GIT binary patch literal 9631 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 VDIQk(hzS4y002ovPDHLkV1m$IlotR1 literal 0 HcmV?d00001 diff --git a/assets/wealth/ty_btn_037.png.meta b/assets/wealth/ty_btn_037.png.meta new file mode 100644 index 0000000..71ff2a3 --- /dev/null +++ b/assets/wealth/ty_btn_037.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "0591e33d-d09b-45e9-8f83-b0c645ce8dac", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "0591e33d-d09b-45e9-8f83-b0c645ce8dac@6c48a", + "displayName": "ty_btn_037", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "imageUuidOrDatabaseUri": "0591e33d-d09b-45e9-8f83-b0c645ce8dac", + "isUuid": true, + "visible": false, + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0 + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "0591e33d-d09b-45e9-8f83-b0c645ce8dac@f9941", + "displayName": "ty_btn_037", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 163, + "height": 58, + "rawWidth": 163, + "rawHeight": 58, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -81.5, + -29, + 0, + 81.5, + -29, + 0, + -81.5, + 29, + 0, + 81.5, + 29, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 58, + 163, + 58, + 0, + 0, + 163, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -81.5, + -29, + 0 + ], + "maxPos": [ + 81.5, + 29, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "0591e33d-d09b-45e9-8f83-b0c645ce8dac@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "0591e33d-d09b-45e9-8f83-b0c645ce8dac@f9941" + } +} diff --git a/extensions/uistate-inspector/@types/editor.d.ts b/extensions/uistate-inspector/@types/editor.d.ts new file mode 100644 index 0000000..e0bd39f --- /dev/null +++ b/extensions/uistate-inspector/@types/editor.d.ts @@ -0,0 +1,1318 @@ +/// + +/// +/// + +import * as NodeJSPath from 'path'; +import { FileFilter, BrowserWindow, OpenDialogReturnValue, SaveDialogReturnValue, MessageBoxReturnValue } from 'electron'; +import { ChildProcess } from 'child_process'; + +declare global { + export namespace Editor { + export namespace App { + export const userAgent: string; + /** + * 是否是开发模式 + * Development mode + */ + export const dev: boolean; + /** + * 编辑器启动参数 + * Editor startup parameters + */ + export const args: {[key: string]: any}; + /** + * 编辑器版本号 + * Editor version + */ + export const version: string; + /** + * 主目录 + * Home directory + */ + export const home: string; + /** + * 编辑器程序文件夹 + * Program folder + */ + export const path: string; + /** + * 获取当前编辑器的临时缓存目录 + * Temporary cache directory + */ + export const temp: string; + /** + * 获取当前编辑器 icon 地址 + * Gets the icon address of the current editor + */ + export const icon: string; + /** + * 获取当前编辑器使用的 url 地址 + * Gets the URL used by the current editor + */ + export const urls: { + manual: string; + api: string; + forum: string; + }; + /** + * 退出程序 + * Exit the program + */ + export function quit(): void; + } + export namespace Clipboard { + export type ICopyType = 'image' | 'text' | 'files' | string; + /** + * 获取剪贴板内容 + * @param type + */ + export function read(type: ICopyType): any; + /** + * 写入剪贴板内容 + * @param type + * @param value + */ + export function write(type: 'image', value: string): boolean; + export function write(type: 'text', value: string): boolean; + export function write(type: 'files', value: FileList): boolean; + export function write(type: string, value: any): boolean; + + /** + * 判断当前剪贴板内是否是指定类型 + * @param type + */ + export function has(type: ICopyType): boolean; + /** + * 清空剪贴板 + */ + export function clear(): void; + } + export namespace Dialog { + + export interface SaveDialogOptions { + title?: string; + path?: string; + button?: string; + filters?: FileFilter[]; + } + export interface SelectDialogOptions { + title?: string; + path?: string; + type?: 'directory' | 'file'; + button?: string; + multi?: boolean; + filters?: FileFilter[]; + extensions?: string; + } + export interface MessageDialogOptions { + title?: string; + detail?: string; + default?: number; + cancel?: number; + checkboxLabel?: string; + checkboxChecked?: boolean; + buttons?: string[]; + } + + /** + * 选择文件弹窗 + * Select the file popover + * + * @param options 选择弹窗参数 Select popover parameters + * @param window 依附于哪个窗口(插件主进程才可使用) Which window it is attached to (only available to the plugin's main process) + */ + export function select(options?: SelectDialogOptions, window?: BrowserWindow): Promise; + /** + * 保存文件弹窗 + * Save the file popup + * + * @param options 保存文件窗口参数 Save the file window parameters + * @param window 依附于哪个窗口(插件主进程才可使用) Which window it is attached to (only available to the plugin's main process) + */ + export function save(options?: SaveDialogOptions, window?: BrowserWindow): Promise; + /** + * 信息弹窗 + * Information popup window + * + * @param message 显示的消息 Displayed message + * @param options 信息弹窗可选参数 Information popup optional parameter + * @param window 依附于哪个窗口(插件主进程才可使用) Which window it is attached to (only available to the plugin's main process) + */ + export function info(message: string, options?: MessageDialogOptions, window?: BrowserWindow): Promise; + /** + * 警告弹窗 + * Warning popup + * + * @param message 警告信息 Warning message + * @param options 警告弹窗可选参数 Warning popover optional parameter + * @param window 依附于哪个窗口(插件主进程才可使用) Which window it is attached to (only available to the plugin's main process) + */ + export function warn(message: string, options?: MessageDialogOptions, window?: BrowserWindow): Promise; + /** + * 错误弹窗 + * Error popup window + * + * @param message 错误信息 The error message + * @param options 错误弹窗可选参数 Error popover optional parameter + * @param window 依附于哪个窗口(插件主进程才可使用) Which window it is attached to (only available to the plugin's main process) + */ + export function error(message: string, options?: MessageDialogOptions, window?: BrowserWindow): Promise; + } + export namespace EditMode { + /** + * 标记编辑器进入了一种编辑模式 + * The tag editor goes into an edit mode + * + * @param mode 编辑模式的名字 The name of the edit mode + */ + export function enter(mode: string); + /** + * 当前所处的编辑模式 + * The current editing mode + * + */ + export function getMode(): string; + } + export namespace I18n { + export type I18nMap = { + [key: string]: I18nMap | string; + }; + /** + * 获取当前的语言 zh | en + * Get the current language + */ + export function getLanguage(): string; + /** + * 传入 key,翻译成当前语言 + * Passing in the key translates into the current language + * 允许翻译变量 {a},传入的第二个参数 obj 内定义 a + * The translation variable {a} is allowed, and a is defined in the second argument passed in obj + * + * @param key 用于翻译的 key 值 The key value for translation + * @param obj 翻译字段内如果有 {key} 等可以在这里传入替换字段 If you have {key} in the translation field, you can pass in the replacement field here + */ + export function t( + key: string, + obj?: { + [key: string]: string; + }, + ): string; + + /** + * 选择一种翻译语言 + * Choose a translation language + * + * @param language 选择当前使用的语言 Select the language currently in use + */ + export function select(language: string): void; + } + export namespace Layout { + interface ILayoutItem { + 'min-width': number; + 'min-height': number; + direction: 'row' | 'column' | 'none'; + percent: number; + minimize: boolean; + children?: ILayoutItem[]; + active?: string; + panels?: string[]; + } + + export interface ILayout { + version: 1; + layout: ILayoutItem; + } + /** + * 应用布局信息 + * Application layout information + * + * @param json 布局文件内容 Layout file content + */ + export function apply(json: any); + /** + * 查询当前的布局信息,返回一个布局 json 对象 + * Query the current layout information and return a layout json object + * + * @param name + */ + export function query(name?: string): Promise; + } + export namespace Logger { + /** + * 清空所有的日志 + * Clear all logs + */ + export function clear(regexp?: string | RegExp): any; + /** + * 查询所有日志 + * Query all logs + */ + export function query(): any; + } + export namespace Menu { + export interface BaseMenuItem { + template?: string; + type?: string; + label?: string; + sublabel?: string; + visible?: boolean; + checked?: boolean; + enabled?: boolean; + icon?: string; + accelerator?: string; + order?: number; + group?: string; + message?: string; + target?: string; + params?: any[]; + click?: Function | null; + role?: string; + submenu?: MenuTemplateItem[]; + } + export interface MainMenuItem extends BaseMenuItem { + path: string; + } + export interface ContextMenuItem extends BaseMenuItem { + accelerator?: string; + } + export type MenuTemplateItem = BaseMenuItem; + export interface PopupOptions { + x?: number; + y?: number; + menu: ContextMenuItem[]; + } + /** + * 右键弹窗 + * Right-click pop-up + * 只有面板进程可以使用 + * Only panel processes can be used + * + * @param json + */ + export function popup(json: PopupOptions): any; + } + export namespace Message { + export interface MessageInfo { + methods: string[]; + public?: boolean; + description?: string; + doc?: string; + sync?: boolean; + } + + export interface TableBase { + [x: string]: any; + params: any[]; + } + /** + * 发送一个消息,并等待返回 + * Send a message and wait for it to return + * + * @param name 目标插件的名字 The name of the target plug-in + * @param message 触发消息的名字 The name of the trigger message + * @param args 消息需要的参数 The parameters required for the message + */ + export function request( + name: J, + message: K, + ...args: EditorMessageMaps[J][K]['params'] + ): Promise; + /** + * 发送一个消息,没有返回 + * Send a message, no return + * + * @param name 目标插件的名字 The name of the target plug-in + * @param message 触发消息的名字 The name of the trigger message + * @param args 消息需要的参数 The parameters required for the message + */ + export function send( + name: M, + message: N, + ...args: EditorMessageMaps[M][N]['params'] + ): void; + /** + * 广播一个消息 + * Broadcast a message + * + * @param message 消息的名字 Name of message + * @param args 消息附加的参数 Parameter attached to the message + */ + export function broadcast(message: string, ...args: any[]): void; + /** + * 新增一个广播消息监听器 + * Add a new broadcast message listener + * 不监听的时候,需要主动取消监听 + * When not listening, you need to take the initiative to cancel listening + * + * @param message 消息名 Message name + * @param func 处理函数 The processing function + */ + export function addBroadcastListener(message: string, func: Function): any; + /** + * 新增一个广播消息监听器 + * Removes a broadcast message listener + * + * @param message 消息名 Message name + * @param func 处理函数 The processing function + */ + export function removeBroadcastListener(message: string, func: Function): any; + } + export namespace Network { + /** + * 查询当前电脑的 ip 列表 + * Query the IP list of the current computer + */ + export function queryIPList(): string[]; + /** + * 测试是否可以联通 passport.cocos.com 服务器 + * Test whether you can connect to the passport.cocos.com server + */ + export function testConnectServer(): Promise; + /** + * 检查一个端口是否被占用 + * Checks if a port is used + * + * @param port + */ + export function portIsOccupied(port: number): Promise; + /** + * 测试是否可以联通某一台主机 + * Test whether a host can be connected + * + * @param ip + */ + export function testHost(ip: string): Promise; + /** + * Get 方式请求某个服务器数据 + * GET requests data from a server + * + * @param url + * @param data + */ + export function get( + url: string, + data?: { + [index: string]: string | string[]; + }, + ): Promise; + /** + * Post 方式请求某个服务器数据 + * POST requests data from a server + * + * @param url + * @param data + */ + export function post( + url: string, + data?: { + [index: string]: string | number | string[]; + }, + ): Promise; + /** + * 获取某个可用的端口号 + * get the port that is free + * + * @param port + */ + export function getFreePort(port: number): Promise; + } + export namespace Package { + // export module VERSION: string; + export interface IGetPackageOptions { + name?: string; + debug?: boolean; + path?: string; + enable?: boolean; + invalid?: boolean; + } + export interface PackageJson { + author?: string; + debug?: boolean; + description?: string; + main?: string; + menu?: any; + name: string; + version: string; + windows: string; + editor?: string; + panel?: any; + } + export type PathType = 'home' | 'data' | 'temp'; + /** + * 查询插件列表 + * Query Plug-in List + * + * @param options + */ + export function getPackages(options?: IGetPackageOptions): Editor.Interface.PackageInfo[]; + /** + * 注册一个插件 + * Register a plug-in + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + * + * @param path + */ + export function register(path: string): any; + /** + * 反注册一个插件 + * Unregister a plug-in + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + * + * @param path + */ + export function unregister(path: string): any; + /** + * 启动一个插件 + * Enable a plug-in + * + * @param path + */ + export function enable(path: string): any; + /** + * 关闭一个插件 + * Disable a plug-in + * + * @param path + */ + export function disable(path: string, options: any): any; + /** + * 获取一个插件的几个预制目录地址 + * Gets several prefab directory addresses for a plug-in + * + * @param extensionName 扩展的名字 Name of the extension + * @param type 地址类型(temp 临时目录,data 需要同步的数据目录,不传则返回现在打开的插件路径) Address type (temp temporary directory, data need to synchronize data directory, do not pass to return the current open plug-in path) + */ + export function getPath(extensionName: string): string | undefined; + } + export namespace Panel { + /** + * 打开一个面板 + * Open up a panel + * + * @param name + * @param args + */ + export function open(name: string, ...args: any[]): any; + /** + * 关闭一个面板 + * Close a panel + * + * @param name + */ + export function close(name: string): any; + /** + * 将焦点传递给一个面板 + * Pass focus to a panel + * + * @param name + */ + export function focus(name: string): any; + /** + * 检查面板是否已经打开 + * Check that the panel is open + * + * @param name + */ + export function has(name: string): Promise; + /** + * 查询当前窗口里某个面板里的元素列表 + * @param name + * @param selector + */ + export function querySelector(name: string, selector: string): Promise; + + export type Selector<$> = { $: Record }; + + export type Options void> = { + /** + * @en Listening to panel events + * @zh 监听面板事件 + */ + listeners?: { + /** + * @en Hooks triggered when the panel is displayed + * @zh 面板显示的时候触发的钩子 + */ + show?: () => any; + /** + * @en Hooks triggered when the panel is hidden + * @zh 面板隐藏的时候触发的钩子 + */ + hide?: () => any; + }; + + /** + * @en Template of the panel + * @zh 面板的内容 + */ + template: string; + /** + * @en Style of the panel + * @zh 面板上的样式 + * */ + style?: string; + /** + * @en Selector of the panel + * @zh 快捷选择器 + */ + $?: S; + /** + * @en Panel built-in function methods that can be called in Messages, Listeners, lifecycle functions + * @zh panel 内置的函数方法,可以在 messages、listeners、生命周期函数内调用 + */ + methods?: M; + /** + * @en Hooks triggered when the panel is update + * @zh 面板数据更新后触发的钩子函数 + */ + update?: (...args: Parameters) => void; + /** + * @en Hooks triggered when the panel is ready + * @zh 面板启动后触发的钩子函数 + */ + ready?: () => void; + /** + * @en The function that will be triggered when the panel is ready to close, and will terminate the closing of the panel if it + * returns false + * @zh 面板准备关闭的时候会触发的函数,return false 的话,会终止关闭面板 + * 生命周期函数,在 panel 准备关闭的时候触发 + * 如果 return false,则会中断关闭流程,请谨慎使用,错误的判断会导致编辑器无法关闭。 + */ + beforeClose?: () => Promise | boolean | void; + /** + * @en Hook functions after panel closure + * @zh 面板关闭后的钩子函数 + */ + close?: () => void; + } & ThisType & M>; // merge them together + + export function define void, Selector = Record, M = Record>( + options: Options, + ): any; + } + export namespace Profile { + export type preferencesProtocol = 'default' | 'global' | 'local'; + export type projectProtocol = 'default' | 'project'; + export type tempProtocol = 'temp'; + export interface ProfileGetOptions { + type: 'deep' | 'current' | 'inherit'; + } + export interface ProfileObj { + get: (key?: string, options?: ProfileGetOptions) => any; + set: (key?: string, value?: any) => any; + remove: (key: string) => void; + save: () => void; + clear: () => void; + reset: () => void; + } + /** + * 读取插件配置 + * Read the plug-in configuration + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + * @param type 配置的类型,选填 Type of configuration, optional(global,local,default) + */ + export function getConfig(name: string, key?: string, type?: preferencesProtocol): Promise; + /** + * 设置插件配置 + * Set the plug-in configuration + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + * @param value 配置的值 The value of the configuration + * @param type 配置的类型,选填 Type of configuration, optional(global,local,default) + */ + export function setConfig(name: string, key: string, value: any, type?: preferencesProtocol): Promise; + /** + * 删除某个插件配置 + * Delete a plug-in configuration + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + * @param type 配置的类型,选填 Type of configuration, optional(global,local,default) + */ + export function removeConfig(name: string, key: string, type?: preferencesProtocol): Promise; + /** + * 读取插件内的项目配置 + * Read the project configuration within the plug-in + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + * @param type 配置的类型,选填 Type of configuration, optional(project,default) + */ + export function getProject(name: string, key?: string, type?: projectProtocol): Promise; + /** + * 设置插件内的项目配置 + * Set the project configuration within the plug-in + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + * @param value 配置的值 The value of the configuration + * @param type 配置的类型,选填 Type of configuration, optional(project,default) + */ + export function setProject(name: string, key: string, value: any, type?: projectProtocol): Promise; + /** + * 删除插件内的项目配置 + * Delete the project configuration within the plug-in + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + * @param type 配置的类型,选填 Type of configuration, optional(project,default) + */ + export function removeProject(name: string, key: string, type?: projectProtocol): Promise; + /** + * 读取插件配置 + * Read the plug-in configuration + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + */ + export function getTemp(name: string, key?: string): Promise; + /** + * 设置插件配置 + * Set the plug-in configuration + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + * @param value 配置的值 The value of the configuration + */ + export function setTemp(name: string, key: string, value: any): Promise; + /** + * 删除某个插件配置 + * Delete a plug-in configuration + * + * @param name 插件名 The plugin name + * @param key 配置路径 Configure path + */ + export function removeTemp(name: string, key: string): Promise; + /** + * 迁移插件某个版本的本地配置数据到编辑器最新版本 + * Migrate the local configuration data of a certain version of the plugin to the latest version of the editor + * + * @param pkgName + * @param profileVersion + * @param profileData + */ + export function migrateLocal(pkgName: string, profileVersion: string, profileData: any): any; + /** + * 迁移插件某个版本的全局配置数据到编辑器最新版本 + * Migrate the global configuration data of a certain version of the plugin to the latest version of the editor + * + * @param pkgName + * @param profileVersion + * @param profileData + */ + export function migrateGlobal(pkgName: string, profileVersion: string, profileData: any): any; + /** + * 迁移插件某个版本的项目配置数据到编辑器最新版本 + * Migrate the project configuration data of a certain version of the plugin to the latest version of the editor + * + * @param pkgName + * @param profileVersion + * @param profileData + */ + export function migrateProject(pkgName: string, profileVersion: string, profileData: any): any; + } + export namespace Project { + /** + * 创建一个项目 + * Creating a project + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + */ + export function create(): any; + /** + * 打开一个项目 + * Open a project + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + * + * @param path + */ + export function open(path?: string): Promise; + /** + * 添加一个项目 + * Add a project + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + * + * @param path + */ + export function add(path: string): any; + /** + * 当前项目路径 + * Current project path + */ + export const path: string; + /** + * 当前项目 uuid + * The current project UUID + */ + export const uuid: string; + /** + * 当前项目名称(取自 package.json) + * The current project name + */ + export const name: string; + /** + * 当前项目临时文件夹 + * Temporary folder for current project + */ + export const tmpDir: string; + /** + * 当前项目类型 + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + */ + export const type: '2d' | '3d'; + } + export namespace Selection { + /** + * 选中一个或者一组元素 + * Select one or a group of elements + * + * @param type + * @param uuid + */ + export function select(type: string, uuid: string | string[]): any; + /** + * 取消一个或者一组元素的选中状态 + * To deselect one or a group of elements + * + * @param type + * @param uuid + */ + export function unselect(type: string, uuid: string | string[]): any; + /** + * 清空一个类型的所有选中元素 + * Clears all selected elements of a type + * + * @param type + */ + export function clear(type: string): any; + /** + * 更新当前选中的类型数据 + * Updates the currently selected type data + * + * @param type + * @param uuids + */ + export function update(type: string, uuids: string[]): any; + /** + * 悬停触碰了某个元素 + * Hover touches an element + * 会发出 selection:hover 的广播消息 + * A broadcast message for selection:hover is issued + * + * @param type + * @param uuid + */ + export function hover(type: string, uuid?: string): any; + /** + * 获取最后选中的元素的类型 + * Gets the type of the last selected element + */ + export function getLastSelectedType(): string; + /** + * 获取某个类型内,最后选中的元素 + * Gets the last selected element of a type + * + * @param type + */ + export function getLastSelected(type: string): string; + /** + * 获取一个类型选中的所有元素数组 + * Gets an array of all elements selected for a type + * + * @param type + */ + export function getSelected(type: string): string[]; + } + export namespace Task { + export interface NoticeOptions { + title: string; + message?: string; + type?: 'error' | 'warn' | 'log' | 'success'; + source?: string; + timeout?: number; + } + /** + * 添加一个同步任务 + * Add a synchronous task + * 会在主窗口显示一个遮罩层 + * A mask layer is displayed in the main window + * + * @param title 任务名字 The task name + * @param describe 任务描述 Task description + * @param message 任务内容 Content of the task + */ + export function addSyncTask(title: string, describe?: string, message?: string): any; + /** + * 更新某一个同步任务显示的数据 + * Update the data displayed by a synchronous task + * + * @param title 任务名字 The task name + * @param describe 任务描述 Task description + * @param message 任务内容 Content of the task + */ + export function updateSyncTask(title: string, describe?: string, message?: string): any; + /** + * 删除一个同步任务 + * Delete a synchronous task + * + * @param title 任务的名字 The name of the task + */ + export function removeSyncTask(title: string): any; + /** + * 添加一个通知 + * Add a notification + * + * @param options 消息配置 Message configuration + * @return id 当前 notice ID,可用于查找移除 + */ + export function addNotice(options: NoticeOptions): number; + /** + * 删除一个通知 + * Delete a notification + * + * @param id 通知 id Notification ID + */ + export function removeNotice(id: number): any; + /** + * 修改 notice 自动移除的时间 + * Modify notice automatic removal time + * + * @param id 通知 id Notification ID + * @param time 超时时间 timeout + */ + export function changeNoticeTimeout(id: number, time: number): any; + /** + * 查询所有通知 + * Query all notifications + */ + export function queryNotices(): any; + /** + * 页面进程立即同步一次主进程数据 + * The page process synchronizes the master process data immediately + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + */ + export function sync(): any; + } + export namespace Theme { + /** + * 获取所有主题的名字 + * Gets the names of all topics + */ + export function getList(): any; + /** + * 使用某个皮肤 + * Use a certain skin + * + * @param name + */ + export function use(name?: string): any; + } + export namespace UI { + /** + * 在当前页面上注册一个自定义节点 + * Registers a custom node on the current page + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + * + * @param tagName 元素名字 + * @param element 元素的定义函数 + */ + export function register(tagName: string, element: any): void; + export const Base: any; + export const Button: any; + export const Input: any; + export const NumInput: any; + export const Loading: any; + export const Checkbox: any; + export const Section: any; + export const Select: any; + export const Bit: any; + export const Slider: any; + export const ColorPicker: any; + export const Color: any; + export const DragItem: any; + export const DragArea: any; + export const DragObject: any; + export const Prop: any; + export const Tooltip: any; + export const TextArea: any; + export const Progress: any; + export const Label: any; + export const Code: any; + export const Tab: any; + export const Gradient: any; + export const GradientPicker: any; + export const Icon: any; + export const File: any; + export const Link: any; + export const Image: any; + export const QRCode: any; + export const Markdown: any; + export const Curve: any; + export const CurveEditor: any; + export const NodeGraph: any; + } + export namespace User { + export interface UserData { + session_id: string; + session_key: string; + cocos_uid: string; + email: string; + nickname: string; + } + export interface UserTokenData { + access_token: string; + cocos_uid: number; + expires_in: number; + } + /** + * 跳过 User + * Skip the User + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + */ + export function skip(): any; + /** + * 获取 user 数据 + * Get user data + */ + export function getData(): Promise; + /** + * 检查用户是否登陆 + * Check if the user is logged in + */ + export function isLoggedIn(): Promise; + /** + * 用户登陆 + * The user login + * 失败会抛出异常 + * Failure throws an exception + * + * @param username + * @param password + */ + export function login(username: string, password: string): Promise; + /** + * 退出登陆 + * Logged out + * 失败会抛出异常 + * Failure throws an exception + */ + export function logout(): void; + /** + * 获取用户 token + * Get user token + * 失败会抛出异常 + * Failure throws an exception + */ + export function getUserToken(): Promise; + /** + * 根据插件 id 返回 session code + * Returns the session code based on the plug-in ID + * + * @param extensionId + */ + export function getSessionCode(extensionId: number): Promise; + /** + * 显示用户登陆遮罩层 + * Shows user login mask layer + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + */ + export function showMask(): void; + /** + * 隐藏用户登陆遮罩层 + * Hide user login mask layer + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + */ + export function hideMask(): void; + /** + * 监听事件 + * Listen for an event + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + * @param action + * @param handle + */ + export function on(action: string, handle: Function): any; + /** + * 监听一次事件 + * Listening for one event + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + * @param action + * @param handle + */ + export function once(action: string, handle: Function): any; + /** + * 取消已经监听的事件 + * Cancels the event you are listening for + * 谨慎使用,之后会被移除 + * Use with caution and it will be removed later + * @param action + * @param handle + */ + export function removeListener(action: string, handle: Function): any; + } + export namespace Utils { + export namespace File { + /** + * 初始化一个可用的文件名 + * Initializes a available filename + * 返回可用名称的文件路径 + * Returns the file path with the available name + * + * @param file 初始文件路径 Initial file path + */ + export function getName(file: string): string; + interface UnzipOptions { + peel?: boolean; + } + /** + * 解压文件夹 + * Unzip folder + * + * @param zip + * @param target + * @param options + */ + export function unzip(zip: string, target: string, options?: UnzipOptions): Promise; + /** + * 复制一个文件到另一个位置 + * Copy a file to another location + * + * @param source + * @param target + */ + export function copy(source: string, target: string): void; + + export function trashItem(path: string): Promise; + } + export namespace Path { + /** + * 返回一个不含扩展名的文件名 + * @param path + */ + export function basenameNoExt(path: string): string; + /** + * 将 \ 统一换成 / + * @param path + */ + export function slash(path: string): string; + /** + * 去除路径最后的斜杆,返回一个不带斜杆的路径 + * @param path + */ + export function stripSep(path: string): string; + /** + * 删除一个路径的扩展名 + * @param path + */ + export function stripExt(path: string): string; + /** + * 判断路径 pathA 是否包含 pathB + * pathA = foo/bar, pathB = foo/bar/foobar, return true + * pathA = foo/bar, pathB = foo/bar, return true + * pathA = foo/bar/foobar, pathB = foo/bar, return false + * pathA = foo/bar/foobar, pathB = foobar/bar/foo, return false + * @param pathA + * @param pathB + */ + export function contains(pathA: string, pathB: string): boolean; + /** + * 格式化路径 + * 如果是 Windows 平台,需要将盘符转成小写进行判断 + * @param path + */ + export function normalize(path: string): string; + export const join: typeof NodeJSPath.join; + export const resolve: typeof NodeJSPath.resolve; + export const isAbsolute: typeof NodeJSPath.isAbsolute; + export const relative: typeof NodeJSPath.relative; + export const dirname: typeof NodeJSPath.dirname; + export const basename: typeof NodeJSPath.basename; + export const extname: typeof NodeJSPath.extname; + export const sep: '\\' | '/'; + export const delimiter: ';' | ':'; + export const parse: typeof NodeJSPath.parse; + export const format: typeof NodeJSPath.format; + } + export namespace Math { + /** + * 取给定边界范围的值 + * Take the value of the given boundary range + * @param {number} val + * @param {number} min + * @param {number} max + */ + export function clamp(val: number, min: number, max: number): number; + /** + * @function clamp01 + * @param {number} val + * @returns {number} + * + * Clamps a value between 0 and 1. + */ + export function clamp01(val: number): number; + /** + * 加法函数 + * 入参:函数内部转化时会先转字符串再转数值,因而传入字符串或 number 均可 + * 返回值:arg1 加上 arg2 的精确结果 + * @param {number|string} arg1 + * @param {number|string} arg2 + */ + export function add(arg1: number | string, arg2: number | string): number; + /** + * 减法函数 + * 入参:函数内部转化时会先转字符串再转数值,因而传入字符串或number均可 + * 返回值:arg1 减 arg2的精确结果 + * @param {number|string} arg1 + * @param {number|string} arg2 + */ + export function sub(arg1: number | string, arg2: number | string): number; + /** + * 乘法函数 + * 入参:函数内部转化时会先转字符串再转数值,因而传入字符串或 number 均可 + * 返回值:arg1 乘 arg2 的精确结果 + * @param {number} arg1 + * @param {number} arg2 + */ + export function multi(arg1: number, arg2: number): number; + /** + * 除法函数 + * 入参:函数内部转化时会先转字符串再转数值,因而传入字符串或 number 均可 + * 返回值:arg1 除 arg2 的精确结果 + * @param {number} arg1 + * @param {number} arg2 + */ + export function divide(arg1: number, arg2: number): number; + /** + * 保留小数点 + * @param val + * @param num + */ + export function toFixed(val: number, num: number): number; + } + export namespace Parse { + interface WhenParam { + PanelName?: string; + EditMode?: string; + ProjectType?: string; + } + /** + * 解析 when 参数 + * when 的格式: + * PanelName === '' && EditMode === '' + * 整理后的数据格式: + * { + * PanelName: '', + * EditMode: '', + * } + */ + export function when(when: string): WhenParam; + /** + * 判断一个 when 数据是否符合当前条件 + * @param when + */ + export function checkWhen(when: string): boolean; + } + export namespace Url { + /** + * 快捷获取文档路径 + * @param relativeUrl + * @param type + */ + export function getDocUrl(relativeUrl: string, type?: 'manual' | 'api'): string; + } + + export namespace UUID { + /** + * 压缩 UUID + * compress UUID + * @param uuid + * @param min + */ + export function compressUUID(uuid: string, min: boolean): string; + /** + * 解压 UUID + * decompress the UUID + * @param str + */ + export function decompressUUID(str: string): string; + /** + * 检查输入字符串是否是 UUID + * Check whether the input string is a UUID + * @param str + */ + export function isUUID(str: string): string; + /** + * 生成一个新的 uuid + * compress 是否压缩,默认 true + */ + export function generate(compress?: boolean): string; + /** + * 从路径中提取 UUID + * ".../5b/5b9cbc23-76b3-41ff-9953-4219fdbea72c/Fontin-SmallCaps.ttf" -> "5b9cbc23-76b3-41ff-9953-4219fdbea72c" + */ + export function getUuidFromLibPath(path: string): string; + /** + * 获取子资源的短 uuid + * @param name + */ + export function nameToSubId(name: string): string; + } + + export namespace Process { + export enum LogLevel { + LOG, + WARN, + ERROR, + NULL, + } + export interface IQuickSpawnOption { + cwd?: string; + env?: any; + // 输出等级,默认 = 0,即 log 级别以上都打印 + logLevel?: LogLevel; + + downGradeWaring?: boolean; // 警告将会转为 log 打印,默认为 false + downGradeLog?: boolean; // log 将会转为 debug 打印,默认为 true + downGradeError?: boolean; // 错误将会转为警告打印,默认为 false + + onlyPrintWhenError?: boolean; // 默认为 true, 日志都正常收集,但仅在发生错误时打印信息,其他时候静默处理 + + prefix?: string; // 日志输出前缀 + } + /** + * 快速开启子进程,无需再自行监听输出,将会返回一个标记完成的 promise 对象 + * @param command 命令 + * @param cmdParams 参数数组 + * @param options 可选,开启的一些参数配置 + */ + export function quickSpawn(command: string, cmdParams: string[], options?: IQuickSpawnOption):Promise; + } + } + export namespace Module { + /** + * 导入一个项目模块。 + * @param url 项目模块的 Database URL。 + * @experimental 实验性质。 + */ + export function importProjectModule(url: string): Promise; + } + export namespace Windows { + export function open(layout: Editor.Layout.ILayout, rect: { x: number, y: number, width: number, height: number}): void; + } + } +} diff --git a/extensions/uistate-inspector/@types/electron.d.ts b/extensions/uistate-inspector/@types/electron.d.ts new file mode 100644 index 0000000..7aff6b9 --- /dev/null +++ b/extensions/uistate-inspector/@types/electron.d.ts @@ -0,0 +1,16090 @@ +// Type definitions for Electron 13.1.4 +// Project: http://electronjs.org/ +// Definitions by: The Electron Team +// Definitions: https://github.com/electron/electron-typescript-definitions + +/// + +type GlobalEvent = Event & { returnValue: any }; + +declare namespace Electron { + const NodeEventEmitter: typeof import('events').EventEmitter; + + class Accelerator extends String { + + } + interface App extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/app + + /** + * Emitted when Chrome's accessibility support changes. This event fires when + * assistive technologies, such as screen readers, are enabled or disabled. See + * https://www.chromium.org/developers/design-documents/accessibility for more + * details. + * + * @platform darwin,win32 + */ + on(event: 'accessibility-support-changed', listener: (event: Event, + /** + * `true` when Chrome's accessibility support is enabled, `false` otherwise. + */ + accessibilitySupportEnabled: boolean) => void): this; + once(event: 'accessibility-support-changed', listener: (event: Event, + /** + * `true` when Chrome's accessibility support is enabled, `false` otherwise. + */ + accessibilitySupportEnabled: boolean) => void): this; + addListener(event: 'accessibility-support-changed', listener: (event: Event, + /** + * `true` when Chrome's accessibility support is enabled, `false` otherwise. + */ + accessibilitySupportEnabled: boolean) => void): this; + removeListener(event: 'accessibility-support-changed', listener: (event: Event, + /** + * `true` when Chrome's accessibility support is enabled, `false` otherwise. + */ + accessibilitySupportEnabled: boolean) => void): this; + /** + * Emitted when the application is activated. Various actions can trigger this + * event, such as launching the application for the first time, attempting to + * re-launch the application when it's already running, or clicking on the + * application's dock or taskbar icon. + * + * @platform darwin + */ + on(event: 'activate', listener: (event: Event, + hasVisibleWindows: boolean) => void): this; + once(event: 'activate', listener: (event: Event, + hasVisibleWindows: boolean) => void): this; + addListener(event: 'activate', listener: (event: Event, + hasVisibleWindows: boolean) => void): this; + removeListener(event: 'activate', listener: (event: Event, + hasVisibleWindows: boolean) => void): this; + /** + * Emitted during Handoff after an activity from this device was successfully + * resumed on another one. + * + * @platform darwin + */ + on(event: 'activity-was-continued', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity. + */ + userInfo: unknown) => void): this; + once(event: 'activity-was-continued', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity. + */ + userInfo: unknown) => void): this; + addListener(event: 'activity-was-continued', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity. + */ + userInfo: unknown) => void): this; + removeListener(event: 'activity-was-continued', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity. + */ + userInfo: unknown) => void): this; + /** + * Emitted before the application starts closing its windows. Calling + * `event.preventDefault()` will prevent the default behavior, which is terminating + * the application. + * + * **Note:** If application quit was initiated by `autoUpdater.quitAndInstall()`, + * then `before-quit` is emitted *after* emitting `close` event on all windows and + * closing them. + * + * **Note:** On Windows, this event will not be emitted if the app is closed due to + * a shutdown/restart of the system or a user logout. + */ + on(event: 'before-quit', listener: (event: Event) => void): this; + once(event: 'before-quit', listener: (event: Event) => void): this; + addListener(event: 'before-quit', listener: (event: Event) => void): this; + removeListener(event: 'before-quit', listener: (event: Event) => void): this; + /** + * Emitted when a browserWindow gets blurred. + */ + on(event: 'browser-window-blur', listener: (event: Event, + window: BrowserWindow) => void): this; + once(event: 'browser-window-blur', listener: (event: Event, + window: BrowserWindow) => void): this; + addListener(event: 'browser-window-blur', listener: (event: Event, + window: BrowserWindow) => void): this; + removeListener(event: 'browser-window-blur', listener: (event: Event, + window: BrowserWindow) => void): this; + /** + * Emitted when a new browserWindow is created. + */ + on(event: 'browser-window-created', listener: (event: Event, + window: BrowserWindow) => void): this; + once(event: 'browser-window-created', listener: (event: Event, + window: BrowserWindow) => void): this; + addListener(event: 'browser-window-created', listener: (event: Event, + window: BrowserWindow) => void): this; + removeListener(event: 'browser-window-created', listener: (event: Event, + window: BrowserWindow) => void): this; + /** + * Emitted when a browserWindow gets focused. + */ + on(event: 'browser-window-focus', listener: (event: Event, + window: BrowserWindow) => void): this; + once(event: 'browser-window-focus', listener: (event: Event, + window: BrowserWindow) => void): this; + addListener(event: 'browser-window-focus', listener: (event: Event, + window: BrowserWindow) => void): this; + removeListener(event: 'browser-window-focus', listener: (event: Event, + window: BrowserWindow) => void): this; + /** + * Emitted when failed to verify the `certificate` for `url`, to trust the + * certificate you should prevent the default behavior with + * `event.preventDefault()` and call `callback(true)`. + */ + on(event: 'certificate-error', listener: (event: Event, + webContents: WebContents, + url: string, + /** + * The error code + */ + error: string, + certificate: Certificate, + callback: (isTrusted: boolean) => void) => void): this; + once(event: 'certificate-error', listener: (event: Event, + webContents: WebContents, + url: string, + /** + * The error code + */ + error: string, + certificate: Certificate, + callback: (isTrusted: boolean) => void) => void): this; + addListener(event: 'certificate-error', listener: (event: Event, + webContents: WebContents, + url: string, + /** + * The error code + */ + error: string, + certificate: Certificate, + callback: (isTrusted: boolean) => void) => void): this; + removeListener(event: 'certificate-error', listener: (event: Event, + webContents: WebContents, + url: string, + /** + * The error code + */ + error: string, + certificate: Certificate, + callback: (isTrusted: boolean) => void) => void): this; + /** + * Emitted when the child process unexpectedly disappears. This is normally because + * it was crashed or killed. It does not include renderer processes. + */ + on(event: 'child-process-gone', listener: (event: Event, + details: Details) => void): this; + once(event: 'child-process-gone', listener: (event: Event, + details: Details) => void): this; + addListener(event: 'child-process-gone', listener: (event: Event, + details: Details) => void): this; + removeListener(event: 'child-process-gone', listener: (event: Event, + details: Details) => void): this; + /** + * Emitted during Handoff when an activity from a different device wants to be + * resumed. You should call `event.preventDefault()` if you want to handle this + * event. + * + * A user activity can be continued only in an app that has the same developer Team + * ID as the activity's source app and that supports the activity's type. Supported + * activity types are specified in the app's `Info.plist` under the + * `NSUserActivityTypes` key. + * + * @platform darwin + */ + on(event: 'continue-activity', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity on another device. + */ + userInfo: unknown) => void): this; + once(event: 'continue-activity', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity on another device. + */ + userInfo: unknown) => void): this; + addListener(event: 'continue-activity', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity on another device. + */ + userInfo: unknown) => void): this; + removeListener(event: 'continue-activity', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity on another device. + */ + userInfo: unknown) => void): this; + /** + * Emitted during Handoff when an activity from a different device fails to be + * resumed. + * + * @platform darwin + */ + on(event: 'continue-activity-error', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * A string with the error's localized description. + */ + error: string) => void): this; + once(event: 'continue-activity-error', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * A string with the error's localized description. + */ + error: string) => void): this; + addListener(event: 'continue-activity-error', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * A string with the error's localized description. + */ + error: string) => void): this; + removeListener(event: 'continue-activity-error', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * A string with the error's localized description. + */ + error: string) => void): this; + /** + * Emitted when `desktopCapturer.getSources()` is called in the renderer process of + * `webContents`. Calling `event.preventDefault()` will make it return empty + * sources. + */ + on(event: 'desktop-capturer-get-sources', listener: (event: Event, + webContents: WebContents) => void): this; + once(event: 'desktop-capturer-get-sources', listener: (event: Event, + webContents: WebContents) => void): this; + addListener(event: 'desktop-capturer-get-sources', listener: (event: Event, + webContents: WebContents) => void): this; + removeListener(event: 'desktop-capturer-get-sources', listener: (event: Event, + webContents: WebContents) => void): this; + /** + * Emitted when mac application become active. Difference from `activate` event is + * that `did-become-active` is emitted every time the app becomes active, not only + * when Dock icon is clicked or application is re-launched. + * + * @platform darwin + */ + on(event: 'did-become-active', listener: (event: Event) => void): this; + once(event: 'did-become-active', listener: (event: Event) => void): this; + addListener(event: 'did-become-active', listener: (event: Event) => void): this; + removeListener(event: 'did-become-active', listener: (event: Event) => void): this; + /** + * Emitted whenever there is a GPU info update. + */ + on(event: 'gpu-info-update', listener: Function): this; + once(event: 'gpu-info-update', listener: Function): this; + addListener(event: 'gpu-info-update', listener: Function): this; + removeListener(event: 'gpu-info-update', listener: Function): this; + /** + * Emitted when the GPU process crashes or is killed. + * + * **Deprecated:** This event is superceded by the `child-process-gone` event which + * contains more information about why the child process disappeared. It isn't + * always because it crashed. The `killed` boolean can be replaced by checking + * `reason === 'killed'` when you switch to that event. + * + * @deprecated + */ + on(event: 'gpu-process-crashed', listener: (event: Event, + killed: boolean) => void): this; + once(event: 'gpu-process-crashed', listener: (event: Event, + killed: boolean) => void): this; + addListener(event: 'gpu-process-crashed', listener: (event: Event, + killed: boolean) => void): this; + removeListener(event: 'gpu-process-crashed', listener: (event: Event, + killed: boolean) => void): this; + /** + * Emitted when `webContents` wants to do basic auth. + * + * The default behavior is to cancel all authentications. To override this you + * should prevent the default behavior with `event.preventDefault()` and call + * `callback(username, password)` with the credentials. + * + * If `callback` is called without a username or password, the authentication + * request will be cancelled and the authentication error will be returned to the + * page. + */ + on(event: 'login', listener: (event: Event, + webContents: WebContents, + authenticationResponseDetails: AuthenticationResponseDetails, + authInfo: AuthInfo, + callback: (username?: string, password?: string) => void) => void): this; + once(event: 'login', listener: (event: Event, + webContents: WebContents, + authenticationResponseDetails: AuthenticationResponseDetails, + authInfo: AuthInfo, + callback: (username?: string, password?: string) => void) => void): this; + addListener(event: 'login', listener: (event: Event, + webContents: WebContents, + authenticationResponseDetails: AuthenticationResponseDetails, + authInfo: AuthInfo, + callback: (username?: string, password?: string) => void) => void): this; + removeListener(event: 'login', listener: (event: Event, + webContents: WebContents, + authenticationResponseDetails: AuthenticationResponseDetails, + authInfo: AuthInfo, + callback: (username?: string, password?: string) => void) => void): this; + /** + * Emitted when the user clicks the native macOS new tab button. The new tab button + * is only visible if the current `BrowserWindow` has a `tabbingIdentifier` + * + * @platform darwin + */ + on(event: 'new-window-for-tab', listener: (event: Event) => void): this; + once(event: 'new-window-for-tab', listener: (event: Event) => void): this; + addListener(event: 'new-window-for-tab', listener: (event: Event) => void): this; + removeListener(event: 'new-window-for-tab', listener: (event: Event) => void): this; + /** + * Emitted when the user wants to open a file with the application. The `open-file` + * event is usually emitted when the application is already open and the OS wants + * to reuse the application to open the file. `open-file` is also emitted when a + * file is dropped onto the dock and the application is not yet running. Make sure + * to listen for the `open-file` event very early in your application startup to + * handle this case (even before the `ready` event is emitted). + * + * You should call `event.preventDefault()` if you want to handle this event. + * + * On Windows, you have to parse `process.argv` (in the main process) to get the + * filepath. + * + * @platform darwin + */ + on(event: 'open-file', listener: (event: Event, + path: string) => void): this; + once(event: 'open-file', listener: (event: Event, + path: string) => void): this; + addListener(event: 'open-file', listener: (event: Event, + path: string) => void): this; + removeListener(event: 'open-file', listener: (event: Event, + path: string) => void): this; + /** + * Emitted when the user wants to open a URL with the application. Your + * application's `Info.plist` file must define the URL scheme within the + * `CFBundleURLTypes` key, and set `NSPrincipalClass` to `AtomApplication`. + * +You should call `event.preventDefault()` if you want to handle this event. + * + * @platform darwin + */ + on(event: 'open-url', listener: (event: Event, + url: string) => void): this; + once(event: 'open-url', listener: (event: Event, + url: string) => void): this; + addListener(event: 'open-url', listener: (event: Event, + url: string) => void): this; + removeListener(event: 'open-url', listener: (event: Event, + url: string) => void): this; + /** + * Emitted when the application is quitting. + * + * **Note:** On Windows, this event will not be emitted if the app is closed due to + * a shutdown/restart of the system or a user logout. + */ + on(event: 'quit', listener: (event: Event, + exitCode: number) => void): this; + once(event: 'quit', listener: (event: Event, + exitCode: number) => void): this; + addListener(event: 'quit', listener: (event: Event, + exitCode: number) => void): this; + removeListener(event: 'quit', listener: (event: Event, + exitCode: number) => void): this; + /** + * Emitted once, when Electron has finished initializing. On macOS, `launchInfo` + * holds the `userInfo` of the `NSUserNotification` or information from + * `UNNotificationResponse` that was used to open the application, if it was + * launched from Notification Center. You can also call `app.isReady()` to check if + * this event has already fired and `app.whenReady()` to get a Promise that is + * fulfilled when Electron is initialized. + */ + on(event: 'ready', listener: (event: Event, + launchInfo: (Record) | (NotificationResponse)) => void): this; + once(event: 'ready', listener: (event: Event, + launchInfo: (Record) | (NotificationResponse)) => void): this; + addListener(event: 'ready', listener: (event: Event, + launchInfo: (Record) | (NotificationResponse)) => void): this; + removeListener(event: 'ready', listener: (event: Event, + launchInfo: (Record) | (NotificationResponse)) => void): this; + /** + * Emitted when `remote.getBuiltin()` is called in the renderer process of + * `webContents`. Calling `event.preventDefault()` will prevent the module from + * being returned. Custom value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-get-builtin', listener: (event: Event, + webContents: WebContents, + moduleName: string) => void): this; + once(event: 'remote-get-builtin', listener: (event: Event, + webContents: WebContents, + moduleName: string) => void): this; + addListener(event: 'remote-get-builtin', listener: (event: Event, + webContents: WebContents, + moduleName: string) => void): this; + removeListener(event: 'remote-get-builtin', listener: (event: Event, + webContents: WebContents, + moduleName: string) => void): this; + /** + * Emitted when `remote.getCurrentWebContents()` is called in the renderer process + * of `webContents`. Calling `event.preventDefault()` will prevent the object from + * being returned. Custom value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-get-current-web-contents', listener: (event: Event, + webContents: WebContents) => void): this; + once(event: 'remote-get-current-web-contents', listener: (event: Event, + webContents: WebContents) => void): this; + addListener(event: 'remote-get-current-web-contents', listener: (event: Event, + webContents: WebContents) => void): this; + removeListener(event: 'remote-get-current-web-contents', listener: (event: Event, + webContents: WebContents) => void): this; + /** + * Emitted when `remote.getCurrentWindow()` is called in the renderer process of + * `webContents`. Calling `event.preventDefault()` will prevent the object from + * being returned. Custom value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-get-current-window', listener: (event: Event, + webContents: WebContents) => void): this; + once(event: 'remote-get-current-window', listener: (event: Event, + webContents: WebContents) => void): this; + addListener(event: 'remote-get-current-window', listener: (event: Event, + webContents: WebContents) => void): this; + removeListener(event: 'remote-get-current-window', listener: (event: Event, + webContents: WebContents) => void): this; + /** + * Emitted when `remote.getGlobal()` is called in the renderer process of + * `webContents`. Calling `event.preventDefault()` will prevent the global from + * being returned. Custom value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-get-global', listener: (event: Event, + webContents: WebContents, + globalName: string) => void): this; + once(event: 'remote-get-global', listener: (event: Event, + webContents: WebContents, + globalName: string) => void): this; + addListener(event: 'remote-get-global', listener: (event: Event, + webContents: WebContents, + globalName: string) => void): this; + removeListener(event: 'remote-get-global', listener: (event: Event, + webContents: WebContents, + globalName: string) => void): this; + /** + * Emitted when `remote.require()` is called in the renderer process of + * `webContents`. Calling `event.preventDefault()` will prevent the module from + * being returned. Custom value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-require', listener: (event: Event, + webContents: WebContents, + moduleName: string) => void): this; + once(event: 'remote-require', listener: (event: Event, + webContents: WebContents, + moduleName: string) => void): this; + addListener(event: 'remote-require', listener: (event: Event, + webContents: WebContents, + moduleName: string) => void): this; + removeListener(event: 'remote-require', listener: (event: Event, + webContents: WebContents, + moduleName: string) => void): this; + /** + * Emitted when the renderer process unexpectedly disappears. This is normally + * because it was crashed or killed. + */ + on(event: 'render-process-gone', listener: (event: Event, + webContents: WebContents, + details: RenderProcessGoneDetails) => void): this; + once(event: 'render-process-gone', listener: (event: Event, + webContents: WebContents, + details: RenderProcessGoneDetails) => void): this; + addListener(event: 'render-process-gone', listener: (event: Event, + webContents: WebContents, + details: RenderProcessGoneDetails) => void): this; + removeListener(event: 'render-process-gone', listener: (event: Event, + webContents: WebContents, + details: RenderProcessGoneDetails) => void): this; + /** + * Emitted when the renderer process of `webContents` crashes or is killed. + * + * **Deprecated:** This event is superceded by the `render-process-gone` event + * which contains more information about why the render process disappeared. It + * isn't always because it crashed. The `killed` boolean can be replaced by + * checking `reason === 'killed'` when you switch to that event. + * + * @deprecated + */ + on(event: 'renderer-process-crashed', listener: (event: Event, + webContents: WebContents, + killed: boolean) => void): this; + once(event: 'renderer-process-crashed', listener: (event: Event, + webContents: WebContents, + killed: boolean) => void): this; + addListener(event: 'renderer-process-crashed', listener: (event: Event, + webContents: WebContents, + killed: boolean) => void): this; + removeListener(event: 'renderer-process-crashed', listener: (event: Event, + webContents: WebContents, + killed: boolean) => void): this; + /** + * This event will be emitted inside the primary instance of your application when + * a second instance has been executed and calls `app.requestSingleInstanceLock()`. + * + * `argv` is an Array of the second instance's command line arguments, and + * `workingDirectory` is its current working directory. Usually applications + * respond to this by making their primary window focused and non-minimized. + * + * **Note:** If the second instance is started by a different user than the first, + * the `argv` array will not include the arguments. + * + * This event is guaranteed to be emitted after the `ready` event of `app` gets + * emitted. + * + * **Note:** Extra command line arguments might be added by Chromium, such as + * `--original-process-start-time`. + */ + on(event: 'second-instance', listener: (event: Event, + /** + * An array of the second instance's command line arguments + */ + argv: string[], + /** + * The second instance's working directory + */ + workingDirectory: string) => void): this; + once(event: 'second-instance', listener: (event: Event, + /** + * An array of the second instance's command line arguments + */ + argv: string[], + /** + * The second instance's working directory + */ + workingDirectory: string) => void): this; + addListener(event: 'second-instance', listener: (event: Event, + /** + * An array of the second instance's command line arguments + */ + argv: string[], + /** + * The second instance's working directory + */ + workingDirectory: string) => void): this; + removeListener(event: 'second-instance', listener: (event: Event, + /** + * An array of the second instance's command line arguments + */ + argv: string[], + /** + * The second instance's working directory + */ + workingDirectory: string) => void): this; + /** + * Emitted when a client certificate is requested. + * + * The `url` corresponds to the navigation entry requesting the client certificate + * and `callback` can be called with an entry filtered from the list. Using + * `event.preventDefault()` prevents the application from using the first + * certificate from the store. + */ + on(event: 'select-client-certificate', listener: (event: Event, + webContents: WebContents, + url: string, + certificateList: Certificate[], + callback: (certificate?: Certificate) => void) => void): this; + once(event: 'select-client-certificate', listener: (event: Event, + webContents: WebContents, + url: string, + certificateList: Certificate[], + callback: (certificate?: Certificate) => void) => void): this; + addListener(event: 'select-client-certificate', listener: (event: Event, + webContents: WebContents, + url: string, + certificateList: Certificate[], + callback: (certificate?: Certificate) => void) => void): this; + removeListener(event: 'select-client-certificate', listener: (event: Event, + webContents: WebContents, + url: string, + certificateList: Certificate[], + callback: (certificate?: Certificate) => void) => void): this; + /** + * Emitted when Electron has created a new `session`. + */ + on(event: 'session-created', listener: (session: Session) => void): this; + once(event: 'session-created', listener: (session: Session) => void): this; + addListener(event: 'session-created', listener: (session: Session) => void): this; + removeListener(event: 'session-created', listener: (session: Session) => void): this; + /** + * Emitted when Handoff is about to be resumed on another device. If you need to + * update the state to be transferred, you should call `event.preventDefault()` + * immediately, construct a new `userInfo` dictionary and call + * `app.updateCurrentActivity()` in a timely manner. Otherwise, the operation will + * fail and `continue-activity-error` will be called. + * + * @platform darwin + */ + on(event: 'update-activity-state', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity. + */ + userInfo: unknown) => void): this; + once(event: 'update-activity-state', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity. + */ + userInfo: unknown) => void): this; + addListener(event: 'update-activity-state', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity. + */ + userInfo: unknown) => void): this; + removeListener(event: 'update-activity-state', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string, + /** + * Contains app-specific state stored by the activity. + */ + userInfo: unknown) => void): this; + /** + * Emitted when a new webContents is created. + */ + on(event: 'web-contents-created', listener: (event: Event, + webContents: WebContents) => void): this; + once(event: 'web-contents-created', listener: (event: Event, + webContents: WebContents) => void): this; + addListener(event: 'web-contents-created', listener: (event: Event, + webContents: WebContents) => void): this; + removeListener(event: 'web-contents-created', listener: (event: Event, + webContents: WebContents) => void): this; + /** + * Emitted during Handoff before an activity from a different device wants to be + * resumed. You should call `event.preventDefault()` if you want to handle this + * event. + * + * @platform darwin + */ + on(event: 'will-continue-activity', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string) => void): this; + once(event: 'will-continue-activity', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string) => void): this; + addListener(event: 'will-continue-activity', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string) => void): this; + removeListener(event: 'will-continue-activity', listener: (event: Event, + /** + * A string identifying the activity. Maps to `NSUserActivity.activityType`. + */ + type: string) => void): this; + /** + * Emitted when the application has finished basic startup. On Windows and Linux, + * the `will-finish-launching` event is the same as the `ready` event; on macOS, + * this event represents the `applicationWillFinishLaunching` notification of + * `NSApplication`. You would usually set up listeners for the `open-file` and + * `open-url` events here, and start the crash reporter and auto updater. + * +In most cases, you should do everything in the `ready` event handler. + */ + on(event: 'will-finish-launching', listener: Function): this; + once(event: 'will-finish-launching', listener: Function): this; + addListener(event: 'will-finish-launching', listener: Function): this; + removeListener(event: 'will-finish-launching', listener: Function): this; + /** + * Emitted when all windows have been closed and the application will quit. Calling + * `event.preventDefault()` will prevent the default behavior, which is terminating + * the application. + * + * See the description of the `window-all-closed` event for the differences between + * the `will-quit` and `window-all-closed` events. + * + * **Note:** On Windows, this event will not be emitted if the app is closed due to + * a shutdown/restart of the system or a user logout. + */ + on(event: 'will-quit', listener: (event: Event) => void): this; + once(event: 'will-quit', listener: (event: Event) => void): this; + addListener(event: 'will-quit', listener: (event: Event) => void): this; + removeListener(event: 'will-quit', listener: (event: Event) => void): this; + /** + * Emitted when all windows have been closed. + * + * If you do not subscribe to this event and all windows are closed, the default + * behavior is to quit the app; however, if you subscribe, you control whether the + * app quits or not. If the user pressed `Cmd + Q`, or the developer called + * `app.quit()`, Electron will first try to close all the windows and then emit the + * `will-quit` event, and in this case the `window-all-closed` event would not be + * emitted. + */ + on(event: 'window-all-closed', listener: Function): this; + once(event: 'window-all-closed', listener: Function): this; + addListener(event: 'window-all-closed', listener: Function): this; + removeListener(event: 'window-all-closed', listener: Function): this; + /** + * Adds `path` to the recent documents list. + * + * This list is managed by the OS. On Windows, you can visit the list from the task + * bar, and on macOS, you can visit it from dock menu. + * + * @platform darwin,win32 + */ + addRecentDocument(path: string): void; + /** + * Clears the recent documents list. + * + * @platform darwin,win32 + */ + clearRecentDocuments(): void; + /** + * By default, Chromium disables 3D APIs (e.g. WebGL) until restart on a per domain + * basis if the GPU processes crashes too frequently. This function disables that + * behavior. + +This method can only be called before app is ready. + */ + disableDomainBlockingFor3DAPIs(): void; + /** + * Disables hardware acceleration for current app. + * +This method can only be called before app is ready. + */ + disableHardwareAcceleration(): void; + /** + * Enables full sandbox mode on the app. This means that all renderers will be + * launched sandboxed, regardless of the value of the `sandbox` flag in + * WebPreferences. + +This method can only be called before app is ready. + */ + enableSandbox(): void; + /** + * Exits immediately with `exitCode`. `exitCode` defaults to 0. + * + * All windows will be closed immediately without asking the user, and the + * `before-quit` and `will-quit` events will not be emitted. + */ + exit(exitCode?: number): void; + /** + * On Linux, focuses on the first visible window. On macOS, makes the application + * the active app. On Windows, focuses on the application's first window. + * +You should seek to use the `steal` option as sparingly as possible. + */ + focus(options?: FocusOptions): void; + /** + * Resolve with an object containing the following: + * + * * `icon` NativeImage - the display icon of the app handling the protocol. + * * `path` String - installation path of the app handling the protocol. + * * `name` String - display name of the app handling the protocol. + * + * This method returns a promise that contains the application name, icon and path + * of the default handler for the protocol (aka URI scheme) of a URL. + * + * @platform darwin,win32 + */ + getApplicationInfoForProtocol(url: string): Promise; + /** + * Name of the application handling the protocol, or an empty string if there is no + * handler. For instance, if Electron is the default handler of the URL, this could + * be `Electron` on Windows and Mac. However, don't rely on the precise format + * which is not guaranteed to remain unchanged. Expect a different format on Linux, + * possibly with a `.desktop` suffix. + * + * This method returns the application name of the default handler for the protocol + * (aka URI scheme) of a URL. + */ + getApplicationNameForProtocol(url: string): string; + /** + * Array of `ProcessMetric` objects that correspond to memory and CPU usage + * statistics of all the processes associated with the app. + */ + getAppMetrics(): ProcessMetric[]; + /** + * The current application directory. + */ + getAppPath(): string; + /** + * The current value displayed in the counter badge. + * + * @platform linux,darwin + */ + getBadgeCount(): number; + /** + * The type of the currently running activity. + * + * @platform darwin + */ + getCurrentActivityType(): string; + /** + * fulfilled with the app's icon, which is a NativeImage. + * + * Fetches a path's associated icon. + * + * On _Windows_, there a 2 kinds of icons: + * + * * Icons associated with certain file extensions, like `.mp3`, `.png`, etc. + * * Icons inside the file itself, like `.exe`, `.dll`, `.ico`. + * + * On _Linux_ and _macOS_, icons depend on the application associated with file + * mime type. + */ + getFileIcon(path: string, options?: FileIconOptions): Promise; + /** + * The Graphics Feature Status from `chrome://gpu/`. + * + * **Note:** This information is only usable after the `gpu-info-update` event is + * emitted. + */ + getGPUFeatureStatus(): GPUFeatureStatus; + /** + * For `infoType` equal to `complete`: Promise is fulfilled with `Object` + * containing all the GPU Information as in chromium's GPUInfo object. This + * includes the version and driver information that's shown on `chrome://gpu` page. + * + * For `infoType` equal to `basic`: Promise is fulfilled with `Object` containing + * fewer attributes than when requested with `complete`. Here's an example of basic + * response: + * + * Using `basic` should be preferred if only basic information like `vendorId` or + * `driverId` is needed. + */ + getGPUInfo(infoType: 'basic' | 'complete'): Promise; + /** + * * `minItems` Integer - The minimum number of items that will be shown in the + * Jump List (for a more detailed description of this value see the MSDN docs). + * * `removedItems` JumpListItem[] - Array of `JumpListItem` objects that + * correspond to items that the user has explicitly removed from custom categories + * in the Jump List. These items must not be re-added to the Jump List in the + * **next** call to `app.setJumpList()`, Windows will not display any custom + * category that contains any of the removed items. + * + * @platform win32 + */ + getJumpListSettings(): JumpListSettings; + /** + * The current application locale, fetched using Chromium's `l10n_util` library. + * Possible return values are documented here. + * + * To set the locale, you'll want to use a command line switch at app startup, + * which may be found here. + * + * **Note:** When distributing your packaged app, you have to also ship the + * `locales` folder. + * + * **Note:** On Windows, you have to call it after the `ready` events gets emitted. + */ + getLocale(): string; + /** + * User operating system's locale two-letter ISO 3166 country code. The value is + * taken from native OS APIs. + * +**Note:** When unable to detect locale country code, it returns empty string. + */ + getLocaleCountryCode(): string; + /** + * If you provided `path` and `args` options to `app.setLoginItemSettings`, then + * you need to pass the same arguments here for `openAtLogin` to be set correctly. + * + * + * * `openAtLogin` Boolean - `true` if the app is set to open at login. + * * `openAsHidden` Boolean _macOS_ - `true` if the app is set to open as hidden at + * login. This setting is not available on MAS builds. + * * `wasOpenedAtLogin` Boolean _macOS_ - `true` if the app was opened at login + * automatically. This setting is not available on MAS builds. + * * `wasOpenedAsHidden` Boolean _macOS_ - `true` if the app was opened as a hidden + * login item. This indicates that the app should not open any windows at startup. + * This setting is not available on MAS builds. + * * `restoreState` Boolean _macOS_ - `true` if the app was opened as a login item + * that should restore the state from the previous session. This indicates that the + * app should restore the windows that were open the last time the app was closed. + * This setting is not available on MAS builds. + * * `executableWillLaunchAtLogin` Boolean _Windows_ - `true` if app is set to open + * at login and its run key is not deactivated. This differs from `openAtLogin` as + * it ignores the `args` option, this property will be true if the given executable + * would be launched at login with **any** arguments. + * * `launchItems` Object[] _Windows_ + * * `name` String _Windows_ - name value of a registry entry. + * * `path` String _Windows_ - The executable to an app that corresponds to a + * registry entry. + * * `args` String[] _Windows_ - the command-line arguments to pass to the + * executable. + * * `scope` String _Windows_ - one of `user` or `machine`. Indicates whether the + * registry entry is under `HKEY_CURRENT USER` or `HKEY_LOCAL_MACHINE`. + * * `enabled` Boolean _Windows_ - `true` if the app registry key is startup + * approved and therefore shows as `enabled` in Task Manager and Windows settings. + * + * @platform darwin,win32 + */ + getLoginItemSettings(options?: LoginItemSettingsOptions): LoginItemSettings; + /** + * The current application's name, which is the name in the application's + * `package.json` file. + * + * Usually the `name` field of `package.json` is a short lowercase name, according + * to the npm modules spec. You should usually also specify a `productName` field, + * which is your application's full capitalized name, and which will be preferred + * over `name` by Electron. + */ + getName(): string; + /** + * A path to a special directory or file associated with `name`. On failure, an + * `Error` is thrown. + * + * If `app.getPath('logs')` is called without called `app.setAppLogsPath()` being + * called first, a default log directory will be created equivalent to calling + * `app.setAppLogsPath()` without a `path` parameter. + */ + getPath(name: 'home' | 'appData' | 'userData' | 'cache' | 'temp' | 'exe' | 'module' | 'desktop' | 'documents' | 'downloads' | 'music' | 'pictures' | 'videos' | 'recent' | 'logs' | 'crashDumps'): string; + /** + * The version of the loaded application. If no version is found in the + * application's `package.json` file, the version of the current bundle or + * executable is returned. + */ + getVersion(): string; + /** + * This method returns whether or not this instance of your app is currently + * holding the single instance lock. You can request the lock with + * `app.requestSingleInstanceLock()` and release with + * `app.releaseSingleInstanceLock()` + */ + hasSingleInstanceLock(): boolean; + /** + * Hides all application windows without minimizing them. + * + * @platform darwin + */ + hide(): void; + /** + * Imports the certificate in pkcs12 format into the platform certificate store. + * `callback` is called with the `result` of import operation, a value of `0` + * indicates success while any other value indicates failure according to Chromium + * net_error_list. + * + * @platform linux + */ + importCertificate(options: ImportCertificateOptions, callback: (result: number) => void): void; + /** + * Invalidates the current Handoff user activity. + * + * @platform darwin + */ + invalidateCurrentActivity(): void; + /** + * `true` if Chrome's accessibility support is enabled, `false` otherwise. This API + * will return `true` if the use of assistive technologies, such as screen readers, + * has been detected. See + * https://www.chromium.org/developers/design-documents/accessibility for more + * details. + * + * @platform darwin,win32 + */ + isAccessibilitySupportEnabled(): boolean; + /** + * Whether the current executable is the default handler for a protocol (aka URI + * scheme). + * + * **Note:** On macOS, you can use this method to check if the app has been + * registered as the default protocol handler for a protocol. You can also verify + * this by checking `~/Library/Preferences/com.apple.LaunchServices.plist` on the + * macOS machine. Please refer to Apple's documentation for details. + * + * The API uses the Windows Registry and `LSCopyDefaultHandlerForURLScheme` + * internally. + */ + isDefaultProtocolClient(protocol: string, path?: string, args?: string[]): boolean; + /** + * whether or not the current OS version allows for native emoji pickers. + */ + isEmojiPanelSupported(): boolean; + /** + * Whether the application is currently running from the systems Application + * folder. Use in combination with `app.moveToApplicationsFolder()` + * + * @platform darwin + */ + isInApplicationsFolder(): boolean; + /** + * `true` if Electron has finished initializing, `false` otherwise. See also + * `app.whenReady()`. + */ + isReady(): boolean; + /** + * whether `Secure Keyboard Entry` is enabled. + * +By default this API will return `false`. + * + * @platform darwin + */ + isSecureKeyboardEntryEnabled(): boolean; + /** + * Whether the current desktop environment is Unity launcher. + * + * @platform linux + */ + isUnityRunning(): boolean; + /** + * Whether the move was successful. Please note that if the move is successful, + * your application will quit and relaunch. + * + * No confirmation dialog will be presented by default. If you wish to allow the + * user to confirm the operation, you may do so using the `dialog` API. + * + * **NOTE:** This method throws errors if anything other than the user causes the + * move to fail. For instance if the user cancels the authorization dialog, this + * method returns false. If we fail to perform the copy, then this method will + * throw an error. The message in the error should be informative and tell you + * exactly what went wrong. + * + * By default, if an app of the same name as the one being moved exists in the + * Applications directory and is _not_ running, the existing app will be trashed + * and the active app moved into its place. If it _is_ running, the pre-existing + * running app will assume focus and the previously active app will quit itself. + * This behavior can be changed by providing the optional conflict handler, where + * the boolean returned by the handler determines whether or not the move conflict + * is resolved with default behavior. i.e. returning `false` will ensure no + * further action is taken, returning `true` will result in the default behavior + * and the method continuing. + * + * For example: + * + * Would mean that if an app already exists in the user directory, if the user + * chooses to 'Continue Move' then the function would continue with its default + * behavior and the existing app will be trashed and the active app moved into its + * place. + * + * @platform darwin + */ + moveToApplicationsFolder(options?: MoveToApplicationsFolderOptions): boolean; + /** + * Try to close all windows. The `before-quit` event will be emitted first. If all + * windows are successfully closed, the `will-quit` event will be emitted and by + * default the application will terminate. + * + * This method guarantees that all `beforeunload` and `unload` event handlers are + * correctly executed. It is possible that a window cancels the quitting by + * returning `false` in the `beforeunload` event handler. + */ + quit(): void; + /** + * Relaunches the app when current instance exits. + * + * By default, the new instance will use the same working directory and command + * line arguments with current instance. When `args` is specified, the `args` will + * be passed as command line arguments instead. When `execPath` is specified, the + * `execPath` will be executed for relaunch instead of current app. + * + * Note that this method does not quit the app when executed, you have to call + * `app.quit` or `app.exit` after calling `app.relaunch` to make the app restart. + * + * When `app.relaunch` is called for multiple times, multiple instances will be + * started after current instance exited. + * + * An example of restarting current instance immediately and adding a new command + * line argument to the new instance: + */ + relaunch(options?: RelaunchOptions): void; + /** + * Releases all locks that were created by `requestSingleInstanceLock`. This will + * allow multiple instances of the application to once again run side by side. + */ + releaseSingleInstanceLock(): void; + /** + * Whether the call succeeded. + * + * This method checks if the current executable as the default handler for a + * protocol (aka URI scheme). If so, it will remove the app as the default handler. + * + * @platform darwin,win32 + */ + removeAsDefaultProtocolClient(protocol: string, path?: string, args?: string[]): boolean; + /** + * The return value of this method indicates whether or not this instance of your + * application successfully obtained the lock. If it failed to obtain the lock, + * you can assume that another instance of your application is already running with + * the lock and exit immediately. + * + * I.e. This method returns `true` if your process is the primary instance of your + * application and your app should continue loading. It returns `false` if your + * process should immediately quit as it has sent its parameters to another + * instance that has already acquired the lock. + * + * On macOS, the system enforces single instance automatically when users try to + * open a second instance of your app in Finder, and the `open-file` and `open-url` + * events will be emitted for that. However when users start your app in command + * line, the system's single instance mechanism will be bypassed, and you have to + * use this method to ensure single instance. + * + * An example of activating the window of primary instance when a second instance + * starts: + */ + requestSingleInstanceLock(): boolean; + /** + * Marks the current Handoff user activity as inactive without invalidating it. + * + * @platform darwin + */ + resignCurrentActivity(): void; + /** + * Set the about panel options. This will override the values defined in the app's + * `.plist` file on macOS. See the Apple docs for more details. On Linux, values + * must be set in order to be shown; there are no defaults. + * + * If you do not set `credits` but still wish to surface them in your app, AppKit + * will look for a file named "Credits.html", "Credits.rtf", and "Credits.rtfd", in + * that order, in the bundle returned by the NSBundle class method main. The first + * file found is used, and if none is found, the info area is left blank. See Apple + * documentation for more information. + */ + setAboutPanelOptions(options: AboutPanelOptionsOptions): void; + /** + * Manually enables Chrome's accessibility support, allowing to expose + * accessibility switch to users in application settings. See Chromium's + * accessibility docs for more details. Disabled by default. + * + * This API must be called after the `ready` event is emitted. + * + * **Note:** Rendering accessibility tree can significantly affect the performance + * of your app. It should not be enabled by default. + * + * @platform darwin,win32 + */ + setAccessibilitySupportEnabled(enabled: boolean): void; + /** + * Sets the activation policy for a given app. + * + * Activation policy types: + * + * * 'regular' - The application is an ordinary app that appears in the Dock and + * may have a user interface. + * * 'accessory' - The application doesn’t appear in the Dock and doesn’t have a + * menu bar, but it may be activated programmatically or by clicking on one of its + * windows. + * * 'prohibited' - The application doesn’t appear in the Dock and may not create + * windows or be activated. + * + * @platform darwin + */ + setActivationPolicy(policy: 'regular' | 'accessory' | 'prohibited'): void; + /** + * Sets or creates a directory your app's logs which can then be manipulated with + * `app.getPath()` or `app.setPath(pathName, newPath)`. + * + * Calling `app.setAppLogsPath()` without a `path` parameter will result in this + * directory being set to `~/Library/Logs/YourAppName` on _macOS_, and inside the + * `userData` directory on _Linux_ and _Windows_. + */ + setAppLogsPath(path?: string): void; + /** + * Changes the Application User Model ID to `id`. + * + * @platform win32 + */ + setAppUserModelId(id: string): void; + /** + * Whether the call succeeded. + * + * Sets the current executable as the default handler for a protocol (aka URI + * scheme). It allows you to integrate your app deeper into the operating system. + * Once registered, all links with `your-protocol://` will be opened with the + * current executable. The whole link, including protocol, will be passed to your + * application as a parameter. + * + * **Note:** On macOS, you can only register protocols that have been added to your + * app's `info.plist`, which cannot be modified at runtime. However, you can change + * the file during build time via Electron Forge, Electron Packager, or by editing + * `info.plist` with a text editor. Please refer to Apple's documentation for + * details. + * + * **Note:** In a Windows Store environment (when packaged as an `appx`) this API + * will return `true` for all calls but the registry key it sets won't be + * accessible by other applications. In order to register your Windows Store + * application as a default protocol handler you must declare the protocol in your + * manifest. + * + * The API uses the Windows Registry and `LSSetDefaultHandlerForURLScheme` + * internally. + */ + setAsDefaultProtocolClient(protocol: string, path?: string, args?: string[]): boolean; + /** + * Whether the call succeeded. + * + * Sets the counter badge for current app. Setting the count to `0` will hide the + * badge. + * + * On macOS, it shows on the dock icon. On Linux, it only works for Unity launcher. + * + * **Note:** Unity launcher requires the existence of a `.desktop` file to work, + * for more information please read Desktop Environment Integration. + * + * @platform linux,darwin + */ + setBadgeCount(count?: number): boolean; + /** + * Sets or removes a custom Jump List for the application, and returns one of the + * following strings: + * + * * `ok` - Nothing went wrong. + * * `error` - One or more errors occurred, enable runtime logging to figure out + * the likely cause. + * * `invalidSeparatorError` - An attempt was made to add a separator to a custom + * category in the Jump List. Separators are only allowed in the standard `Tasks` + * category. + * * `fileTypeRegistrationError` - An attempt was made to add a file link to the + * Jump List for a file type the app isn't registered to handle. + * * `customCategoryAccessDeniedError` - Custom categories can't be added to the + * Jump List due to user privacy or group policy settings. + * + * If `categories` is `null` the previously set custom Jump List (if any) will be + * replaced by the standard Jump List for the app (managed by Windows). + * + * **Note:** If a `JumpListCategory` object has neither the `type` nor the `name` + * property set then its `type` is assumed to be `tasks`. If the `name` property is + * set but the `type` property is omitted then the `type` is assumed to be + * `custom`. + * + * **Note:** Users can remove items from custom categories, and Windows will not + * allow a removed item to be added back into a custom category until **after** the + * next successful call to `app.setJumpList(categories)`. Any attempt to re-add a + * removed item to a custom category earlier than that will result in the entire + * custom category being omitted from the Jump List. The list of removed items can + * be obtained using `app.getJumpListSettings()`. + * + * **Note:** The maximum length of a Jump List item's `description` property is 260 + * characters. Beyond this limit, the item will not be added to the Jump List, nor + * will it be displayed. + * +Here's a very simple example of creating a custom Jump List: + * + * @platform win32 + */ + setJumpList(categories: (JumpListCategory[]) | (null)): void; + /** + * To work with Electron's `autoUpdater` on Windows, which uses Squirrel, you'll + * want to set the launch path to Update.exe, and pass arguments that specify your + * application name. For example: + * + * @platform darwin,win32 + */ + setLoginItemSettings(settings: Settings): void; + /** + * Overrides the current application's name. + * + * **Note:** This function overrides the name used internally by Electron; it does + * not affect the name that the OS uses. + */ + setName(name: string): void; + /** + * Overrides the `path` to a special directory or file associated with `name`. If + * the path specifies a directory that does not exist, an `Error` is thrown. In + * that case, the directory should be created with `fs.mkdirSync` or similar. + * + * You can only override paths of a `name` defined in `app.getPath`. + * + * By default, web pages' cookies and caches will be stored under the `userData` + * directory. If you want to change this location, you have to override the + * `userData` path before the `ready` event of the `app` module is emitted. + */ + setPath(name: string, path: string): void; + /** + * Set the `Secure Keyboard Entry` is enabled in your application. + * + * By using this API, important information such as password and other sensitive + * information can be prevented from being intercepted by other processes. + * + * See Apple's documentation for more details. + * + * **Note:** Enable `Secure Keyboard Entry` only when it is needed and disable it + * when it is no longer needed. + * + * @platform darwin + */ + setSecureKeyboardEntryEnabled(enabled: boolean): void; + /** + * Creates an `NSUserActivity` and sets it as the current activity. The activity is + * eligible for Handoff to another device afterward. + * + * @platform darwin + */ + setUserActivity(type: string, userInfo: any, webpageURL?: string): void; + /** + * Adds `tasks` to the Tasks category of the Jump List on Windows. + * + * `tasks` is an array of `Task` objects. + * + * Whether the call succeeded. + * + * **Note:** If you'd like to customize the Jump List even more use + * `app.setJumpList(categories)` instead. + * + * @platform win32 + */ + setUserTasks(tasks: Task[]): boolean; + /** + * Shows application windows after they were hidden. Does not automatically focus + * them. + * + * @platform darwin + */ + show(): void; + /** + * Show the app's about panel options. These options can be overridden with + * `app.setAboutPanelOptions(options)`. + */ + showAboutPanel(): void; + /** + * Show the platform's native emoji picker. + * + * @platform darwin,win32 + */ + showEmojiPanel(): void; + /** + * This function **must** be called once you have finished accessing the security + * scoped file. If you do not remember to stop accessing the bookmark, kernel + * resources will be leaked and your app will lose its ability to reach outside the + * sandbox completely, until your app is restarted. + * + * Start accessing a security scoped resource. With this method Electron + * applications that are packaged for the Mac App Store may reach outside their + * sandbox to access files chosen by the user. See Apple's documentation for a + * description of how this system works. + * + * @platform mas + */ + startAccessingSecurityScopedResource(bookmarkData: string): Function; + /** + * Updates the current activity if its type matches `type`, merging the entries + * from `userInfo` into its current `userInfo` dictionary. + * + * @platform darwin + */ + updateCurrentActivity(type: string, userInfo: any): void; + /** + * fulfilled when Electron is initialized. May be used as a convenient alternative + * to checking `app.isReady()` and subscribing to the `ready` event if the app is + * not ready yet. + */ + whenReady(): Promise; + /** + * A `Boolean` property that's `true` if Chrome's accessibility support is enabled, + * `false` otherwise. This property will be `true` if the use of assistive + * technologies, such as screen readers, has been detected. Setting this property + * to `true` manually enables Chrome's accessibility support, allowing developers + * to expose accessibility switch to users in application settings. + * + * See Chromium's accessibility docs for more details. Disabled by default. + * + * This API must be called after the `ready` event is emitted. + * + * **Note:** Rendering accessibility tree can significantly affect the performance + * of your app. It should not be enabled by default. + * + * @platform darwin,win32 + */ + accessibilitySupportEnabled: boolean; + /** + * A `Boolean` which when `true` disables the overrides that Electron has in place + * to ensure renderer processes are restarted on every navigation. The current + * default value for this property is `true`. + * + * The intention is for these overrides to become disabled by default and then at + * some point in the future this property will be removed. This property impacts + * which native modules you can use in the renderer process. For more information + * on the direction Electron is going with renderer process restarts and usage of + * native modules in the renderer process please check out this Tracking Issue. + */ + allowRendererProcessReuse: boolean; + /** + * A `Menu | null` property that returns `Menu` if one has been set and `null` + * otherwise. Users can pass a Menu to set this property. + */ + applicationMenu: (Menu) | (null); + /** + * An `Integer` property that returns the badge count for current app. Setting the + * count to `0` will hide the badge. + * + * On macOS, setting this with any nonzero integer shows on the dock icon. On + * Linux, this property only works for Unity launcher. + * + * **Note:** Unity launcher requires the existence of a `.desktop` file to work, + * for more information please read Desktop Environment Integration. + * + * **Note:** On macOS, you need to ensure that your application has the permission + * to display notifications for this property to take effect. + * + * @platform linux,darwin + */ + badgeCount: number; + /** + * A `CommandLine` object that allows you to read and manipulate the command line + * arguments that Chromium uses. + * + */ + readonly commandLine: CommandLine; + /** + * A `Dock` `| undefined` object that allows you to perform actions on your app + * icon in the user's dock on macOS. + * + * @platform darwin + */ + readonly dock: Dock; + /** + * A `Boolean` property that returns `true` if the app is packaged, `false` + * otherwise. For many apps, this property can be used to distinguish development + * and production environments. + * + */ + readonly isPackaged: boolean; + /** + * A `String` property that indicates the current application's name, which is the + * name in the application's `package.json` file. + * + * Usually the `name` field of `package.json` is a short lowercase name, according + * to the npm modules spec. You should usually also specify a `productName` field, + * which is your application's full capitalized name, and which will be preferred + * over `name` by Electron. + */ + name: string; + /** + * A `Boolean` which when `true` indicates that the app is currently running under + * the Rosetta Translator Environment. + * + * You can use this property to prompt users to download the arm64 version of your + * application when they are running the x64 version under Rosetta incorrectly. + * + * @platform darwin + */ + readonly runningUnderRosettaTranslation: boolean; + /** + * A `String` which is the user agent string Electron will use as a global + * fallback. + * + * This is the user agent that will be used when no user agent is set at the + * `webContents` or `session` level. It is useful for ensuring that your entire + * app has the same user agent. Set to a custom value as early as possible in your + * app's initialization to ensure that your overridden value is used. + */ + userAgentFallback: string; + } + + interface AutoUpdater extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/auto-updater + + /** + * This event is emitted after a user calls `quitAndInstall()`. + * + * When this API is called, the `before-quit` event is not emitted before all + * windows are closed. As a result you should listen to this event if you wish to + * perform actions before the windows are closed while a process is quitting, as + * well as listening to `before-quit`. + */ + on(event: 'before-quit-for-update', listener: Function): this; + once(event: 'before-quit-for-update', listener: Function): this; + addListener(event: 'before-quit-for-update', listener: Function): this; + removeListener(event: 'before-quit-for-update', listener: Function): this; + /** + * Emitted when checking if an update has started. + */ + on(event: 'checking-for-update', listener: Function): this; + once(event: 'checking-for-update', listener: Function): this; + addListener(event: 'checking-for-update', listener: Function): this; + removeListener(event: 'checking-for-update', listener: Function): this; + /** + * Emitted when there is an error while updating. + */ + on(event: 'error', listener: (error: Error) => void): this; + once(event: 'error', listener: (error: Error) => void): this; + addListener(event: 'error', listener: (error: Error) => void): this; + removeListener(event: 'error', listener: (error: Error) => void): this; + /** + * Emitted when there is an available update. The update is downloaded + * automatically. + */ + on(event: 'update-available', listener: Function): this; + once(event: 'update-available', listener: Function): this; + addListener(event: 'update-available', listener: Function): this; + removeListener(event: 'update-available', listener: Function): this; + /** + * Emitted when an update has been downloaded. + * + * On Windows only `releaseName` is available. + * + * **Note:** It is not strictly necessary to handle this event. A successfully + * downloaded update will still be applied the next time the application starts. + */ + on(event: 'update-downloaded', listener: (event: Event, + releaseNotes: string, + releaseName: string, + releaseDate: Date, + updateURL: string) => void): this; + once(event: 'update-downloaded', listener: (event: Event, + releaseNotes: string, + releaseName: string, + releaseDate: Date, + updateURL: string) => void): this; + addListener(event: 'update-downloaded', listener: (event: Event, + releaseNotes: string, + releaseName: string, + releaseDate: Date, + updateURL: string) => void): this; + removeListener(event: 'update-downloaded', listener: (event: Event, + releaseNotes: string, + releaseName: string, + releaseDate: Date, + updateURL: string) => void): this; + /** + * Emitted when there is no available update. + */ + on(event: 'update-not-available', listener: Function): this; + once(event: 'update-not-available', listener: Function): this; + addListener(event: 'update-not-available', listener: Function): this; + removeListener(event: 'update-not-available', listener: Function): this; + /** + * Asks the server whether there is an update. You must call `setFeedURL` before + * using this API. + */ + checkForUpdates(): void; + /** + * The current update feed URL. + */ + getFeedURL(): string; + /** + * Restarts the app and installs the update after it has been downloaded. It should + * only be called after `update-downloaded` has been emitted. + * + * Under the hood calling `autoUpdater.quitAndInstall()` will close all application + * windows first, and automatically call `app.quit()` after all windows have been + * closed. + * + * **Note:** It is not strictly necessary to call this function to apply an update, + * as a successfully downloaded update will always be applied the next time the + * application starts. + */ + quitAndInstall(): void; + /** + * Sets the `url` and initialize the auto updater. + */ + setFeedURL(options: FeedURLOptions): void; + } + + interface BluetoothDevice { + + // Docs: https://electronjs.org/docs/api/structures/bluetooth-device + + deviceId: string; + deviceName: string; + } + + class BrowserView { + + // Docs: https://electronjs.org/docs/api/browser-view + + /** + * BrowserView + */ + constructor(options?: BrowserViewConstructorOptions); + /** + * The `bounds` of this BrowserView instance as `Object`. + * + * @experimental + */ + getBounds(): Rectangle; + setAutoResize(options: AutoResizeOptions): void; + setBackgroundColor(color: string): void; + /** + * Resizes and moves the view to the supplied bounds relative to the window. + * + * @experimental + */ + setBounds(bounds: Rectangle): void; + webContents: WebContents; + } + + class BrowserWindow extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/browser-window + + /** + * Emitted when the window is set or unset to show always on top of other windows. + */ + on(event: 'always-on-top-changed', listener: (event: Event, + isAlwaysOnTop: boolean) => void): this; + once(event: 'always-on-top-changed', listener: (event: Event, + isAlwaysOnTop: boolean) => void): this; + addListener(event: 'always-on-top-changed', listener: (event: Event, + isAlwaysOnTop: boolean) => void): this; + removeListener(event: 'always-on-top-changed', listener: (event: Event, + isAlwaysOnTop: boolean) => void): this; + /** + * Emitted when an App Command is invoked. These are typically related to keyboard + * media keys or browser commands, as well as the "Back" button built into some + * mice on Windows. + * + * Commands are lowercased, underscores are replaced with hyphens, and the + * `APPCOMMAND_` prefix is stripped off. e.g. `APPCOMMAND_BROWSER_BACKWARD` is + * emitted as `browser-backward`. + * + * The following app commands are explicitly supported on Linux: + * +* `browser-backward` +* `browser-forward` + * + * @platform win32,linux + */ + on(event: 'app-command', listener: (event: Event, + command: string) => void): this; + once(event: 'app-command', listener: (event: Event, + command: string) => void): this; + addListener(event: 'app-command', listener: (event: Event, + command: string) => void): this; + removeListener(event: 'app-command', listener: (event: Event, + command: string) => void): this; + /** + * Emitted when the window loses focus. + */ + on(event: 'blur', listener: Function): this; + once(event: 'blur', listener: Function): this; + addListener(event: 'blur', listener: Function): this; + removeListener(event: 'blur', listener: Function): this; + /** + * Emitted when the window is going to be closed. It's emitted before the + * `beforeunload` and `unload` event of the DOM. Calling `event.preventDefault()` + * will cancel the close. + * + * Usually you would want to use the `beforeunload` handler to decide whether the + * window should be closed, which will also be called when the window is reloaded. + * In Electron, returning any value other than `undefined` would cancel the close. + * For example: + * + * _**Note**: There is a subtle difference between the behaviors of + * `window.onbeforeunload = handler` and `window.addEventListener('beforeunload', + * handler)`. It is recommended to always set the `event.returnValue` explicitly, + * instead of only returning a value, as the former works more consistently within + * Electron._ + */ + on(event: 'close', listener: (event: Event) => void): this; + once(event: 'close', listener: (event: Event) => void): this; + addListener(event: 'close', listener: (event: Event) => void): this; + removeListener(event: 'close', listener: (event: Event) => void): this; + /** + * Emitted when the window is closed. After you have received this event you should + * remove the reference to the window and avoid using it any more. + */ + on(event: 'closed', listener: Function): this; + once(event: 'closed', listener: Function): this; + addListener(event: 'closed', listener: Function): this; + removeListener(event: 'closed', listener: Function): this; + /** + * Emitted when the window enters a full-screen state. + */ + on(event: 'enter-full-screen', listener: Function): this; + once(event: 'enter-full-screen', listener: Function): this; + addListener(event: 'enter-full-screen', listener: Function): this; + removeListener(event: 'enter-full-screen', listener: Function): this; + /** + * Emitted when the window enters a full-screen state triggered by HTML API. + */ + on(event: 'enter-html-full-screen', listener: Function): this; + once(event: 'enter-html-full-screen', listener: Function): this; + addListener(event: 'enter-html-full-screen', listener: Function): this; + removeListener(event: 'enter-html-full-screen', listener: Function): this; + /** + * Emitted when the window gains focus. + */ + on(event: 'focus', listener: Function): this; + once(event: 'focus', listener: Function): this; + addListener(event: 'focus', listener: Function): this; + removeListener(event: 'focus', listener: Function): this; + /** + * Emitted when the window is hidden. + */ + on(event: 'hide', listener: Function): this; + once(event: 'hide', listener: Function): this; + addListener(event: 'hide', listener: Function): this; + removeListener(event: 'hide', listener: Function): this; + /** + * Emitted when the window leaves a full-screen state. + */ + on(event: 'leave-full-screen', listener: Function): this; + once(event: 'leave-full-screen', listener: Function): this; + addListener(event: 'leave-full-screen', listener: Function): this; + removeListener(event: 'leave-full-screen', listener: Function): this; + /** + * Emitted when the window leaves a full-screen state triggered by HTML API. + */ + on(event: 'leave-html-full-screen', listener: Function): this; + once(event: 'leave-html-full-screen', listener: Function): this; + addListener(event: 'leave-html-full-screen', listener: Function): this; + removeListener(event: 'leave-html-full-screen', listener: Function): this; + /** + * Emitted when window is maximized. + */ + on(event: 'maximize', listener: Function): this; + once(event: 'maximize', listener: Function): this; + addListener(event: 'maximize', listener: Function): this; + removeListener(event: 'maximize', listener: Function): this; + /** + * Emitted when the window is minimized. + */ + on(event: 'minimize', listener: Function): this; + once(event: 'minimize', listener: Function): this; + addListener(event: 'minimize', listener: Function): this; + removeListener(event: 'minimize', listener: Function): this; + /** + * Emitted when the window is being moved to a new position. + */ + on(event: 'move', listener: Function): this; + once(event: 'move', listener: Function): this; + addListener(event: 'move', listener: Function): this; + removeListener(event: 'move', listener: Function): this; + /** + * Emitted once when the window is moved to a new position. + * +__Note__: On macOS this event is an alias of `move`. + * + * @platform darwin,win32 + */ + on(event: 'moved', listener: Function): this; + once(event: 'moved', listener: Function): this; + addListener(event: 'moved', listener: Function): this; + removeListener(event: 'moved', listener: Function): this; + /** + * Emitted when the native new tab button is clicked. + * + * @platform darwin + */ + on(event: 'new-window-for-tab', listener: Function): this; + once(event: 'new-window-for-tab', listener: Function): this; + addListener(event: 'new-window-for-tab', listener: Function): this; + removeListener(event: 'new-window-for-tab', listener: Function): this; + /** + * Emitted when the document changed its title, calling `event.preventDefault()` + * will prevent the native window's title from changing. `explicitSet` is false + * when title is synthesized from file URL. + */ + on(event: 'page-title-updated', listener: (event: Event, + title: string, + explicitSet: boolean) => void): this; + once(event: 'page-title-updated', listener: (event: Event, + title: string, + explicitSet: boolean) => void): this; + addListener(event: 'page-title-updated', listener: (event: Event, + title: string, + explicitSet: boolean) => void): this; + removeListener(event: 'page-title-updated', listener: (event: Event, + title: string, + explicitSet: boolean) => void): this; + /** + * Emitted when the web page has been rendered (while not being shown) and window + * can be displayed without a visual flash. + * + * Please note that using this event implies that the renderer will be considered + * "visible" and paint even though `show` is false. This event will never fire if + * you use `paintWhenInitiallyHidden: false` + */ + on(event: 'ready-to-show', listener: Function): this; + once(event: 'ready-to-show', listener: Function): this; + addListener(event: 'ready-to-show', listener: Function): this; + removeListener(event: 'ready-to-show', listener: Function): this; + /** + * Emitted after the window has been resized. + */ + on(event: 'resize', listener: Function): this; + once(event: 'resize', listener: Function): this; + addListener(event: 'resize', listener: Function): this; + removeListener(event: 'resize', listener: Function): this; + /** + * Emitted once when the window has finished being resized. + * + * This is usually emitted when the window has been resized manually. On macOS, + * resizing the window with `setBounds`/`setSize` and setting the `animate` + * parameter to `true` will also emit this event once resizing has finished. + * + * @platform darwin,win32 + */ + on(event: 'resized', listener: Function): this; + once(event: 'resized', listener: Function): this; + addListener(event: 'resized', listener: Function): this; + removeListener(event: 'resized', listener: Function): this; + /** + * Emitted when the unresponsive web page becomes responsive again. + */ + on(event: 'responsive', listener: Function): this; + once(event: 'responsive', listener: Function): this; + addListener(event: 'responsive', listener: Function): this; + removeListener(event: 'responsive', listener: Function): this; + /** + * Emitted when the window is restored from a minimized state. + */ + on(event: 'restore', listener: Function): this; + once(event: 'restore', listener: Function): this; + addListener(event: 'restore', listener: Function): this; + removeListener(event: 'restore', listener: Function): this; + /** + * Emitted on trackpad rotation gesture. Continually emitted until rotation gesture + * is ended. The `rotation` value on each emission is the angle in degrees rotated + * since the last emission. The last emitted event upon a rotation gesture will + * always be of value `0`. Counter-clockwise rotation values are positive, while + * clockwise ones are negative. + * + * @platform darwin + */ + on(event: 'rotate-gesture', listener: (event: Event, + rotation: number) => void): this; + once(event: 'rotate-gesture', listener: (event: Event, + rotation: number) => void): this; + addListener(event: 'rotate-gesture', listener: (event: Event, + rotation: number) => void): this; + removeListener(event: 'rotate-gesture', listener: (event: Event, + rotation: number) => void): this; + /** + * Emitted when scroll wheel event phase has begun. + * + * @platform darwin + */ + on(event: 'scroll-touch-begin', listener: Function): this; + once(event: 'scroll-touch-begin', listener: Function): this; + addListener(event: 'scroll-touch-begin', listener: Function): this; + removeListener(event: 'scroll-touch-begin', listener: Function): this; + /** + * Emitted when scroll wheel event phase filed upon reaching the edge of element. + * + * @platform darwin + */ + on(event: 'scroll-touch-edge', listener: Function): this; + once(event: 'scroll-touch-edge', listener: Function): this; + addListener(event: 'scroll-touch-edge', listener: Function): this; + removeListener(event: 'scroll-touch-edge', listener: Function): this; + /** + * Emitted when scroll wheel event phase has ended. + * + * @platform darwin + */ + on(event: 'scroll-touch-end', listener: Function): this; + once(event: 'scroll-touch-end', listener: Function): this; + addListener(event: 'scroll-touch-end', listener: Function): this; + removeListener(event: 'scroll-touch-end', listener: Function): this; + /** + * Emitted when window session is going to end due to force shutdown or machine + * restart or session log off. + * + * @platform win32 + */ + on(event: 'session-end', listener: Function): this; + once(event: 'session-end', listener: Function): this; + addListener(event: 'session-end', listener: Function): this; + removeListener(event: 'session-end', listener: Function): this; + /** + * Emitted when the window opens a sheet. + * + * @platform darwin + */ + on(event: 'sheet-begin', listener: Function): this; + once(event: 'sheet-begin', listener: Function): this; + addListener(event: 'sheet-begin', listener: Function): this; + removeListener(event: 'sheet-begin', listener: Function): this; + /** + * Emitted when the window has closed a sheet. + * + * @platform darwin + */ + on(event: 'sheet-end', listener: Function): this; + once(event: 'sheet-end', listener: Function): this; + addListener(event: 'sheet-end', listener: Function): this; + removeListener(event: 'sheet-end', listener: Function): this; + /** + * Emitted when the window is shown. + */ + on(event: 'show', listener: Function): this; + once(event: 'show', listener: Function): this; + addListener(event: 'show', listener: Function): this; + removeListener(event: 'show', listener: Function): this; + /** + * Emitted on 3-finger swipe. Possible directions are `up`, `right`, `down`, + * `left`. + * + * The method underlying this event is built to handle older macOS-style trackpad + * swiping, where the content on the screen doesn't move with the swipe. Most macOS + * trackpads are not configured to allow this kind of swiping anymore, so in order + * for it to emit properly the 'Swipe between pages' preference in `System + * Preferences > Trackpad > More Gestures` must be set to 'Swipe with two or three + * fingers'. + * + * @platform darwin + */ + on(event: 'swipe', listener: (event: Event, + direction: string) => void): this; + once(event: 'swipe', listener: (event: Event, + direction: string) => void): this; + addListener(event: 'swipe', listener: (event: Event, + direction: string) => void): this; + removeListener(event: 'swipe', listener: (event: Event, + direction: string) => void): this; + /** + * Emitted when the system context menu is triggered on the window, this is + * normally only triggered when the user right clicks on the non-client area of + * your window. This is the window titlebar or any area you have declared as + * `-webkit-app-region: drag` in a frameless window. + * +Calling `event.preventDefault()` will prevent the menu from being displayed. + * + * @platform win32 + */ + on(event: 'system-context-menu', listener: (event: Event, + /** + * The screen coordinates the context menu was triggered at + */ + point: Point) => void): this; + once(event: 'system-context-menu', listener: (event: Event, + /** + * The screen coordinates the context menu was triggered at + */ + point: Point) => void): this; + addListener(event: 'system-context-menu', listener: (event: Event, + /** + * The screen coordinates the context menu was triggered at + */ + point: Point) => void): this; + removeListener(event: 'system-context-menu', listener: (event: Event, + /** + * The screen coordinates the context menu was triggered at + */ + point: Point) => void): this; + /** + * Emitted when the window exits from a maximized state. + */ + on(event: 'unmaximize', listener: Function): this; + once(event: 'unmaximize', listener: Function): this; + addListener(event: 'unmaximize', listener: Function): this; + removeListener(event: 'unmaximize', listener: Function): this; + /** + * Emitted when the web page becomes unresponsive. + */ + on(event: 'unresponsive', listener: Function): this; + once(event: 'unresponsive', listener: Function): this; + addListener(event: 'unresponsive', listener: Function): this; + removeListener(event: 'unresponsive', listener: Function): this; + /** + * Emitted before the window is moved. On Windows, calling `event.preventDefault()` + * will prevent the window from being moved. + * + * Note that this is only emitted when the window is being resized manually. + * Resizing the window with `setBounds`/`setSize` will not emit this event. + * + * @platform darwin,win32 + */ + on(event: 'will-move', listener: (event: Event, + /** + * Location the window is being moved to. + */ + newBounds: Rectangle) => void): this; + once(event: 'will-move', listener: (event: Event, + /** + * Location the window is being moved to. + */ + newBounds: Rectangle) => void): this; + addListener(event: 'will-move', listener: (event: Event, + /** + * Location the window is being moved to. + */ + newBounds: Rectangle) => void): this; + removeListener(event: 'will-move', listener: (event: Event, + /** + * Location the window is being moved to. + */ + newBounds: Rectangle) => void): this; + /** + * Emitted before the window is resized. Calling `event.preventDefault()` will + * prevent the window from being resized. + * + * Note that this is only emitted when the window is being resized manually. + * Resizing the window with `setBounds`/`setSize` will not emit this event. + * + * @platform darwin,win32 + */ + on(event: 'will-resize', listener: (event: Event, + /** + * Size the window is being resized to. + */ + newBounds: Rectangle) => void): this; + once(event: 'will-resize', listener: (event: Event, + /** + * Size the window is being resized to. + */ + newBounds: Rectangle) => void): this; + addListener(event: 'will-resize', listener: (event: Event, + /** + * Size the window is being resized to. + */ + newBounds: Rectangle) => void): this; + removeListener(event: 'will-resize', listener: (event: Event, + /** + * Size the window is being resized to. + */ + newBounds: Rectangle) => void): this; + /** + * BrowserWindow + */ + constructor(options?: BrowserWindowConstructorOptions); + /** + * The window that owns the given `browserView`. If the given view is not attached + * to any window, returns `null`. + */ + static fromBrowserView(browserView: BrowserView): (BrowserWindow) | (null); + /** + * The window with the given `id`. + */ + static fromId(id: number): (BrowserWindow) | (null); + /** + * The window that owns the given `webContents` or `null` if the contents are not + * owned by a window. + */ + static fromWebContents(webContents: WebContents): (BrowserWindow) | (null); + /** + * An array of all opened browser windows. + */ + static getAllWindows(): BrowserWindow[]; + /** + * The window that is focused in this application, otherwise returns `null`. + */ + static getFocusedWindow(): (BrowserWindow) | (null); + /** + * Replacement API for setBrowserView supporting work with multi browser views. + * + * @experimental + */ + addBrowserView(browserView: BrowserView): void; + /** + * Adds a window as a tab on this window, after the tab for the window instance. + * + * @platform darwin + */ + addTabbedWindow(browserWindow: BrowserWindow): void; + /** + * Removes focus from the window. + */ + blur(): void; + blurWebView(): void; + /** + * Resolves with a NativeImage + * + * Captures a snapshot of the page within `rect`. Omitting `rect` will capture the + * whole visible page. If the page is not visible, `rect` may be empty. + */ + capturePage(rect?: Rectangle): Promise; + /** + * Moves window to the center of the screen. + */ + center(): void; + /** + * Try to close the window. This has the same effect as a user manually clicking + * the close button of the window. The web page may cancel the close though. See + * the close event. + */ + close(): void; + /** + * Closes the currently open Quick Look panel. + * + * @platform darwin + */ + closeFilePreview(): void; + /** + * Force closing the window, the `unload` and `beforeunload` event won't be emitted + * for the web page, and `close` event will also not be emitted for this window, + * but it guarantees the `closed` event will be emitted. + */ + destroy(): void; + /** + * Starts or stops flashing the window to attract user's attention. + */ + flashFrame(flag: boolean): void; + /** + * Focuses on the window. + */ + focus(): void; + focusOnWebView(): void; + /** + * Gets the background color of the window. See Setting `backgroundColor`. + */ + getBackgroundColor(): string; + /** + * The `bounds` of the window as `Object`. + */ + getBounds(): Rectangle; + /** + * The `BrowserView` attached to `win`. Returns `null` if one is not attached. + * Throws an error if multiple `BrowserView`s are attached. + * + * @experimental + */ + getBrowserView(): (BrowserView) | (null); + /** + * an array of all BrowserViews that have been attached with `addBrowserView` or + * `setBrowserView`. + * + * **Note:** The BrowserView API is currently experimental and may change or be + * removed in future Electron releases. + * + * @experimental + */ + getBrowserViews(): BrowserView[]; + /** + * All child windows. + */ + getChildWindows(): BrowserWindow[]; + /** + * The `bounds` of the window's client area as `Object`. + */ + getContentBounds(): Rectangle; + /** + * Contains the window's client area's width and height. + */ + getContentSize(): number[]; + /** + * Contains the window's maximum width and height. + */ + getMaximumSize(): number[]; + /** + * Window id in the format of DesktopCapturerSource's id. For example + * "window:1324:0". + * + * More precisely the format is `window:id:other_id` where `id` is `HWND` on + * Windows, `CGWindowID` (`uint64_t`) on macOS and `Window` (`unsigned long`) on + * Linux. `other_id` is used to identify web contents (tabs) so within the same top + * level window. + */ + getMediaSourceId(): string; + /** + * Contains the window's minimum width and height. + */ + getMinimumSize(): number[]; + /** + * The platform-specific handle of the window. + * + * The native type of the handle is `HWND` on Windows, `NSView*` on macOS, and + * `Window` (`unsigned long`) on Linux. + */ + getNativeWindowHandle(): Buffer; + /** + * Contains the window bounds of the normal state + * + * **Note:** whatever the current state of the window : maximized, minimized or in + * fullscreen, this function always returns the position and size of the window in + * normal state. In normal state, getBounds and getNormalBounds returns the same + * `Rectangle`. + */ + getNormalBounds(): Rectangle; + /** + * between 0.0 (fully transparent) and 1.0 (fully opaque). On Linux, always returns + * 1. + */ + getOpacity(): number; + /** + * The parent window. + */ + getParentWindow(): BrowserWindow; + /** + * Contains the window's current position. + */ + getPosition(): number[]; + /** + * The pathname of the file the window represents. + * + * @platform darwin + */ + getRepresentedFilename(): string; + /** + * Contains the window's width and height. + */ + getSize(): number[]; + /** + * The title of the native window. + * + * **Note:** The title of the web page can be different from the title of the + * native window. + */ + getTitle(): string; + /** + * The custom position for the traffic light buttons in frameless window. + * + * @platform darwin + */ + getTrafficLightPosition(): Point; + /** + * Whether the window has a shadow. + */ + hasShadow(): boolean; + /** + * Hides the window. + */ + hide(): void; + /** + * Hooks a windows message. The `callback` is called when the message is received + * in the WndProc. + * + * @platform win32 + */ + hookWindowMessage(message: number, callback: (wParam: any, lParam: any) => void): void; + /** + * Whether the window is always on top of other windows. + */ + isAlwaysOnTop(): boolean; + /** + * Whether the window can be manually closed by user. + * +On Linux always returns `true`. + * + * @platform darwin,win32 + */ + isClosable(): boolean; + /** + * Whether the window is destroyed. + */ + isDestroyed(): boolean; + /** + * Whether the window's document has been edited. + * + * @platform darwin + */ + isDocumentEdited(): boolean; + /** + * whether the window is enabled. + */ + isEnabled(): boolean; + /** + * Whether the window is focused. + */ + isFocused(): boolean; + /** + * Whether the window is in fullscreen mode. + */ + isFullScreen(): boolean; + /** + * Whether the maximize/zoom window button toggles fullscreen mode or maximizes the + * window. + */ + isFullScreenable(): boolean; + /** + * Whether the window is in kiosk mode. + */ + isKiosk(): boolean; + /** + * Whether the window can be manually maximized by user. + * +On Linux always returns `true`. + * + * @platform darwin,win32 + */ + isMaximizable(): boolean; + /** + * Whether the window is maximized. + */ + isMaximized(): boolean; + /** + * Whether menu bar automatically hides itself. + */ + isMenuBarAutoHide(): boolean; + /** + * Whether the menu bar is visible. + */ + isMenuBarVisible(): boolean; + /** + * Whether the window can be manually minimized by the user. + * +On Linux always returns `true`. + * + * @platform darwin,win32 + */ + isMinimizable(): boolean; + /** + * Whether the window is minimized. + */ + isMinimized(): boolean; + /** + * Whether current window is a modal window. + */ + isModal(): boolean; + /** + * Whether the window can be moved by user. + +On Linux always returns `true`. + * + * @platform darwin,win32 + */ + isMovable(): boolean; + /** + * Whether the window is in normal state (not maximized, not minimized, not in + * fullscreen mode). + */ + isNormal(): boolean; + /** + * Whether the window can be manually resized by the user. + */ + isResizable(): boolean; + /** + * Whether the window is in simple (pre-Lion) fullscreen mode. + * + * @platform darwin + */ + isSimpleFullScreen(): boolean; + /** + * Whether the window is in Windows 10 tablet mode. + * + * Since Windows 10 users can use their PC as tablet, under this mode apps can + * choose to optimize their UI for tablets, such as enlarging the titlebar and + * hiding titlebar buttons. + * + * This API returns whether the window is in tablet mode, and the `resize` event + * can be be used to listen to changes to tablet mode. + * + * @platform win32 + */ + isTabletMode(): boolean; + /** + * Whether the window is visible to the user. + */ + isVisible(): boolean; + /** + * Whether the window is visible on all workspaces. + * +**Note:** This API always returns false on Windows. + */ + isVisibleOnAllWorkspaces(): boolean; + /** + * `true` or `false` depending on whether the message is hooked. + * + * @platform win32 + */ + isWindowMessageHooked(message: number): boolean; + /** + * the promise will resolve when the page has finished loading (see + * `did-finish-load`), and rejects if the page fails to load (see `did-fail-load`). + * + * Same as `webContents.loadFile`, `filePath` should be a path to an HTML file + * relative to the root of your application. See the `webContents` docs for more + * information. + */ + loadFile(filePath: string, options?: LoadFileOptions): Promise; + /** + * the promise will resolve when the page has finished loading (see + * `did-finish-load`), and rejects if the page fails to load (see `did-fail-load`). + * + * Same as `webContents.loadURL(url[, options])`. + * + * The `url` can be a remote address (e.g. `http://`) or a path to a local HTML + * file using the `file://` protocol. + * + * To ensure that file URLs are properly formatted, it is recommended to use Node's + * `url.format` method: + * + * You can load a URL using a `POST` request with URL-encoded data by doing the + * following: + */ + loadURL(url: string, options?: LoadURLOptions): Promise; + /** + * Maximizes the window. This will also show (but not focus) the window if it isn't + * being displayed already. + */ + maximize(): void; + /** + * Merges all windows into one window with multiple tabs when native tabs are + * enabled and there is more than one open window. + * + * @platform darwin + */ + mergeAllWindows(): void; + /** + * Minimizes the window. On some platforms the minimized window will be shown in + * the Dock. + */ + minimize(): void; + /** + * Moves window above the source window in the sense of z-order. If the + * `mediaSourceId` is not of type window or if the window does not exist then this + * method throws an error. + */ + moveAbove(mediaSourceId: string): void; + /** + * Moves the current tab into a new window if native tabs are enabled and there is + * more than one tab in the current window. + * + * @platform darwin + */ + moveTabToNewWindow(): void; + /** + * Moves window to top(z-order) regardless of focus + */ + moveTop(): void; + /** + * Uses Quick Look to preview a file at a given path. + * + * @platform darwin + */ + previewFile(path: string, displayName?: string): void; + /** + * Same as `webContents.reload`. + */ + reload(): void; + removeBrowserView(browserView: BrowserView): void; + /** + * Remove the window's menu bar. + * + * @platform linux,win32 + */ + removeMenu(): void; + /** + * Restores the window from minimized state to its previous state. + */ + restore(): void; + /** + * Selects the next tab when native tabs are enabled and there are other tabs in + * the window. + * + * @platform darwin + */ + selectNextTab(): void; + /** + * Selects the previous tab when native tabs are enabled and there are other tabs + * in the window. + * + * @platform darwin + */ + selectPreviousTab(): void; + /** + * Sets whether the window should show always on top of other windows. After + * setting this, the window is still a normal window, not a toolbox window which + * can not be focused on. + */ + setAlwaysOnTop(flag: boolean, level?: 'normal' | 'floating' | 'torn-off-menu' | 'modal-panel' | 'main-menu' | 'status' | 'pop-up-menu' | 'screen-saver', relativeLevel?: number): void; + /** + * Sets the properties for the window's taskbar button. + * + * **Note:** `relaunchCommand` and `relaunchDisplayName` must always be set + * together. If one of those properties is not set, then neither will be used. + * + * @platform win32 + */ + setAppDetails(options: AppDetailsOptions): void; + /** + * This will make a window maintain an aspect ratio. The extra size allows a + * developer to have space, specified in pixels, not included within the aspect + * ratio calculations. This API already takes into account the difference between a + * window's size and its content size. + * + * Consider a normal window with an HD video player and associated controls. + * Perhaps there are 15 pixels of controls on the left edge, 25 pixels of controls + * on the right edge and 50 pixels of controls below the player. In order to + * maintain a 16:9 aspect ratio (standard aspect ratio for HD @1920x1080) within + * the player itself we would call this function with arguments of 16/9 and { + * width: 40, height: 50 }. The second argument doesn't care where the extra width + * and height are within the content view--only that they exist. Sum any extra + * width and height areas you have within the overall content view. + * + * The aspect ratio is not respected when window is resized programmingly with APIs + * like `win.setSize`. + */ + setAspectRatio(aspectRatio: number, extraSize?: Size): void; + /** + * Controls whether to hide cursor when typing. + * + * @platform darwin + */ + setAutoHideCursor(autoHide: boolean): void; + /** + * Sets whether the window menu bar should hide itself automatically. Once set the + * menu bar will only show when users press the single `Alt` key. + * + * If the menu bar is already visible, calling `setAutoHideMenuBar(true)` won't + * hide it immediately. + */ + setAutoHideMenuBar(hide: boolean): void; + /** + * Sets the background color of the window. See Setting `backgroundColor`. + */ + setBackgroundColor(backgroundColor: string): void; + /** + * Resizes and moves the window to the supplied bounds. Any properties that are not + * supplied will default to their current values. + */ + setBounds(bounds: Partial, animate?: boolean): void; + setBrowserView(browserView: (BrowserView) | (null)): void; + /** + * Sets whether the window can be manually closed by user. On Linux does nothing. + * + * @platform darwin,win32 + */ + setClosable(closable: boolean): void; + /** + * Resizes and moves the window's client area (e.g. the web page) to the supplied + * bounds. + */ + setContentBounds(bounds: Rectangle, animate?: boolean): void; + /** + * Prevents the window contents from being captured by other apps. + * + * On macOS it sets the NSWindow's sharingType to NSWindowSharingNone. On Windows + * it calls SetWindowDisplayAffinity with `WDA_EXCLUDEFROMCAPTURE`. For Windows 10 + * version 2004 and up the window will be removed from capture entirely, older + * Windows versions behave as if `WDA_MONITOR` is applied capturing a black window. + * + * @platform darwin,win32 + */ + setContentProtection(enable: boolean): void; + /** + * Resizes the window's client area (e.g. the web page) to `width` and `height`. + */ + setContentSize(width: number, height: number, animate?: boolean): void; + /** + * Specifies whether the window’s document has been edited, and the icon in title + * bar will become gray when set to `true`. + * + * @platform darwin + */ + setDocumentEdited(edited: boolean): void; + /** + * Disable or enable the window. + */ + setEnabled(enable: boolean): void; + /** + * Changes whether the window can be focused. + * +On macOS it does not remove the focus from the window. + * + * @platform darwin,win32 + */ + setFocusable(focusable: boolean): void; + /** + * Sets whether the window should be in fullscreen mode. + */ + setFullScreen(flag: boolean): void; + /** + * Sets whether the maximize/zoom window button toggles fullscreen mode or + * maximizes the window. + */ + setFullScreenable(fullscreenable: boolean): void; + /** + * Sets whether the window should have a shadow. + */ + setHasShadow(hasShadow: boolean): void; + /** + * Changes window icon. + * + * @platform win32,linux + */ + setIcon(icon: (NativeImage) | (string)): void; + /** + * Makes the window ignore all mouse events. + * + * All mouse events happened in this window will be passed to the window below this + * window, but if this window has focus, it will still receive keyboard events. + */ + setIgnoreMouseEvents(ignore: boolean, options?: IgnoreMouseEventsOptions): void; + /** + * Enters or leaves kiosk mode. + */ + setKiosk(flag: boolean): void; + /** + * Sets whether the window can be manually maximized by user. On Linux does + * nothing. + * + * @platform darwin,win32 + */ + setMaximizable(maximizable: boolean): void; + /** + * Sets the maximum size of window to `width` and `height`. + */ + setMaximumSize(width: number, height: number): void; + /** + * Sets the `menu` as the window's menu bar. + * + * @platform linux,win32 + */ + setMenu(menu: (Menu) | (null)): void; + /** + * Sets whether the menu bar should be visible. If the menu bar is auto-hide, users + * can still bring up the menu bar by pressing the single `Alt` key. + * + * @platform win32,linux + */ + setMenuBarVisibility(visible: boolean): void; + /** + * Sets whether the window can be manually minimized by user. On Linux does + * nothing. + * + * @platform darwin,win32 + */ + setMinimizable(minimizable: boolean): void; + /** + * Sets the minimum size of window to `width` and `height`. + */ + setMinimumSize(width: number, height: number): void; + /** + * Sets whether the window can be moved by user. On Linux does nothing. + * + * @platform darwin,win32 + */ + setMovable(movable: boolean): void; + /** + * Sets the opacity of the window. On Linux, does nothing. Out of bound number + * values are clamped to the [0, 1] range. + * + * @platform win32,darwin + */ + setOpacity(opacity: number): void; + /** + * Sets a 16 x 16 pixel overlay onto the current taskbar icon, usually used to + * convey some sort of application status or to passively notify the user. + * + * @platform win32 + */ + setOverlayIcon(overlay: (NativeImage) | (null), description: string): void; + /** + * Sets `parent` as current window's parent window, passing `null` will turn + * current window into a top-level window. + */ + setParentWindow(parent: (BrowserWindow) | (null)): void; + /** + * Moves window to `x` and `y`. + */ + setPosition(x: number, y: number, animate?: boolean): void; + /** + * Sets progress value in progress bar. Valid range is [0, 1.0]. + * + * Remove progress bar when progress < 0; Change to indeterminate mode when + * progress > 1. + * + * On Linux platform, only supports Unity desktop environment, you need to specify + * the `*.desktop` file name to `desktopName` field in `package.json`. By default, + * it will assume `{app.name}.desktop`. + * + * On Windows, a mode can be passed. Accepted values are `none`, `normal`, + * `indeterminate`, `error`, and `paused`. If you call `setProgressBar` without a + * mode set (but with a value within the valid range), `normal` will be assumed. + */ + setProgressBar(progress: number, options?: ProgressBarOptions): void; + /** + * Sets the pathname of the file the window represents, and the icon of the file + * will show in window's title bar. + * + * @platform darwin + */ + setRepresentedFilename(filename: string): void; + /** + * Sets whether the window can be manually resized by the user. + */ + setResizable(resizable: boolean): void; + /** + * Setting a window shape determines the area within the window where the system + * permits drawing and user interaction. Outside of the given region, no pixels + * will be drawn and no mouse events will be registered. Mouse events outside of + * the region will not be received by that window, but will fall through to + * whatever is behind the window. + * + * @experimental + * @platform win32,linux + */ + setShape(rects: Rectangle[]): void; + /** + * Changes the attachment point for sheets on macOS. By default, sheets are + * attached just below the window frame, but you may want to display them beneath a + * HTML-rendered toolbar. For example: + * + * @platform darwin + */ + setSheetOffset(offsetY: number, offsetX?: number): void; + /** + * Enters or leaves simple fullscreen mode. + * + * Simple fullscreen mode emulates the native fullscreen behavior found in versions + * of macOS prior to Lion (10.7). + * + * @platform darwin + */ + setSimpleFullScreen(flag: boolean): void; + /** + * Resizes the window to `width` and `height`. If `width` or `height` are below any + * set minimum size constraints the window will snap to its minimum size. + */ + setSize(width: number, height: number, animate?: boolean): void; + /** + * Makes the window not show in the taskbar. + */ + setSkipTaskbar(skip: boolean): void; + /** + * Whether the buttons were added successfully + * + * Add a thumbnail toolbar with a specified set of buttons to the thumbnail image + * of a window in a taskbar button layout. Returns a `Boolean` object indicates + * whether the thumbnail has been added successfully. + * + * The number of buttons in thumbnail toolbar should be no greater than 7 due to + * the limited room. Once you setup the thumbnail toolbar, the toolbar cannot be + * removed due to the platform's limitation. But you can call the API with an empty + * array to clean the buttons. + * + * The `buttons` is an array of `Button` objects: + * + * * `Button` Object + * * `icon` NativeImage - The icon showing in thumbnail toolbar. + * * `click` Function + * * `tooltip` String (optional) - The text of the button's tooltip. + * * `flags` String[] (optional) - Control specific states and behaviors of the + * button. By default, it is `['enabled']`. + * + * The `flags` is an array that can include following `String`s: + * + * * `enabled` - The button is active and available to the user. + * * `disabled` - The button is disabled. It is present, but has a visual state + * indicating it will not respond to user action. + * * `dismissonclick` - When the button is clicked, the thumbnail window closes + * immediately. + * * `nobackground` - Do not draw a button border, use only the image. + * * `hidden` - The button is not shown to the user. + * * `noninteractive` - The button is enabled but not interactive; no pressed + * button state is drawn. This value is intended for instances where the button is + * used in a notification. + * + * @platform win32 + */ + setThumbarButtons(buttons: ThumbarButton[]): boolean; + /** + * Sets the region of the window to show as the thumbnail image displayed when + * hovering over the window in the taskbar. You can reset the thumbnail to be the + * entire window by specifying an empty region: `{ x: 0, y: 0, width: 0, height: 0 + * }`. + * + * @platform win32 + */ + setThumbnailClip(region: Rectangle): void; + /** + * Sets the toolTip that is displayed when hovering over the window thumbnail in + * the taskbar. + * + * @platform win32 + */ + setThumbnailToolTip(toolTip: string): void; + /** + * Changes the title of native window to `title`. + */ + setTitle(title: string): void; + /** + * Raises `browserView` above other `BrowserView`s attached to `win`. Throws an + * error if `browserView` is not attached to `win`. + * + * @experimental + */ + setTopBrowserView(browserView: BrowserView): void; + /** + * Sets the touchBar layout for the current window. Specifying `null` or + * `undefined` clears the touch bar. This method only has an effect if the machine + * has a touch bar and is running on macOS 10.12.1+. + * + * **Note:** The TouchBar API is currently experimental and may change or be + * removed in future Electron releases. + * + * @platform darwin + */ + setTouchBar(touchBar: (TouchBar) | (null)): void; + /** + * Set a custom position for the traffic light buttons in frameless window. + * + * @platform darwin + */ + setTrafficLightPosition(position: Point): void; + /** + * Adds a vibrancy effect to the browser window. Passing `null` or an empty string + * will remove the vibrancy effect on the window. + * + * Note that `appearance-based`, `light`, `dark`, `medium-light`, and `ultra-dark` + * have been deprecated and will be removed in an upcoming version of macOS. + * + * @platform darwin + */ + setVibrancy(type: (('appearance-based' | 'light' | 'dark' | 'titlebar' | 'selection' | 'menu' | 'popover' | 'sidebar' | 'medium-light' | 'ultra-dark' | 'header' | 'sheet' | 'window' | 'hud' | 'fullscreen-ui' | 'tooltip' | 'content' | 'under-window' | 'under-page')) | (null)): void; + /** + * Sets whether the window should be visible on all workspaces. + * +**Note:** This API does nothing on Windows. + */ + setVisibleOnAllWorkspaces(visible: boolean, options?: VisibleOnAllWorkspacesOptions): void; + /** + * Sets whether the window traffic light buttons should be visible. + * + * @platform darwin + */ + setWindowButtonVisibility(visible: boolean): void; + /** + * Shows and gives focus to the window. + */ + show(): void; + /** + * Same as `webContents.showDefinitionForSelection()`. + * + * @platform darwin + */ + showDefinitionForSelection(): void; + /** + * Shows the window but doesn't focus on it. + */ + showInactive(): void; + /** + * Toggles the visibility of the tab bar if native tabs are enabled and there is + * only one tab in the current window. + * + * @platform darwin + */ + toggleTabBar(): void; + /** + * Unhooks all of the window messages. + * + * @platform win32 + */ + unhookAllWindowMessages(): void; + /** + * Unhook the window message. + * + * @platform win32 + */ + unhookWindowMessage(message: number): void; + /** + * Unmaximizes the window. + */ + unmaximize(): void; + accessibleTitle: string; + autoHideMenuBar: boolean; + closable: boolean; + documentEdited: boolean; + excludedFromShownWindowsMenu: boolean; + fullScreen: boolean; + fullScreenable: boolean; + readonly id: number; + kiosk: boolean; + maximizable: boolean; + menuBarVisible: boolean; + minimizable: boolean; + movable: boolean; + representedFilename: string; + resizable: boolean; + shadow: boolean; + simpleFullScreen: boolean; + title: string; + visibleOnAllWorkspaces: boolean; + readonly webContents: WebContents; + } + + class BrowserWindowProxy { + + // Docs: https://electronjs.org/docs/api/browser-window-proxy + + /** + * Removes focus from the child window. + */ + blur(): void; + /** + * Forcefully closes the child window without calling its unload event. + */ + close(): void; + /** + * Evaluates the code in the child window. + */ + eval(code: string): void; + /** + * Focuses the child window (brings the window to front). + */ + focus(): void; + /** + * Sends a message to the child window with the specified origin or `*` for no + * origin preference. + * + * In addition to these methods, the child window implements `window.opener` object + * with no properties and a single method. + */ + postMessage(message: any, targetOrigin: string): void; + /** + * Invokes the print dialog on the child window. + */ + print(): void; + closed: boolean; + } + + interface Certificate { + + // Docs: https://electronjs.org/docs/api/structures/certificate + + /** + * PEM encoded data + */ + data: string; + /** + * Fingerprint of the certificate + */ + fingerprint: string; + /** + * Issuer principal + */ + issuer: CertificatePrincipal; + /** + * Issuer certificate (if not self-signed) + */ + issuerCert: Certificate; + /** + * Issuer's Common Name + */ + issuerName: string; + /** + * Hex value represented string + */ + serialNumber: string; + /** + * Subject principal + */ + subject: CertificatePrincipal; + /** + * Subject's Common Name + */ + subjectName: string; + /** + * End date of the certificate being valid in seconds + */ + validExpiry: number; + /** + * Start date of the certificate being valid in seconds + */ + validStart: number; + } + + interface CertificatePrincipal { + + // Docs: https://electronjs.org/docs/api/structures/certificate-principal + + /** + * Common Name. + */ + commonName: string; + /** + * Country or region. + */ + country: string; + /** + * Locality. + */ + locality: string; + /** + * Organization names. + */ + organizations: string[]; + /** + * Organization Unit names. + */ + organizationUnits: string[]; + /** + * State or province. + */ + state: string; + } + + class ClientRequest extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/client-request + + /** + * Emitted when the `request` is aborted. The `abort` event will not be fired if + * the `request` is already closed. + */ + on(event: 'abort', listener: Function): this; + once(event: 'abort', listener: Function): this; + addListener(event: 'abort', listener: Function): this; + removeListener(event: 'abort', listener: Function): this; + /** + * Emitted as the last event in the HTTP request-response transaction. The `close` + * event indicates that no more events will be emitted on either the `request` or + * `response` objects. + */ + on(event: 'close', listener: Function): this; + once(event: 'close', listener: Function): this; + addListener(event: 'close', listener: Function): this; + removeListener(event: 'close', listener: Function): this; + /** + * Emitted when the `net` module fails to issue a network request. Typically when + * the `request` object emits an `error` event, a `close` event will subsequently + * follow and no response object will be provided. + */ + on(event: 'error', listener: ( + /** + * an error object providing some information about the failure. + */ + error: Error) => void): this; + once(event: 'error', listener: ( + /** + * an error object providing some information about the failure. + */ + error: Error) => void): this; + addListener(event: 'error', listener: ( + /** + * an error object providing some information about the failure. + */ + error: Error) => void): this; + removeListener(event: 'error', listener: ( + /** + * an error object providing some information about the failure. + */ + error: Error) => void): this; + /** + * Emitted just after the last chunk of the `request`'s data has been written into + * the `request` object. + */ + on(event: 'finish', listener: Function): this; + once(event: 'finish', listener: Function): this; + addListener(event: 'finish', listener: Function): this; + removeListener(event: 'finish', listener: Function): this; + /** + * Emitted when an authenticating proxy is asking for user credentials. + * + * The `callback` function is expected to be called back with user credentials: + * + * * `username` String + * * `password` String + * + * Providing empty credentials will cancel the request and report an authentication + * error on the response object: + */ + on(event: 'login', listener: (authInfo: AuthInfo, + callback: (username?: string, password?: string) => void) => void): this; + once(event: 'login', listener: (authInfo: AuthInfo, + callback: (username?: string, password?: string) => void) => void): this; + addListener(event: 'login', listener: (authInfo: AuthInfo, + callback: (username?: string, password?: string) => void) => void): this; + removeListener(event: 'login', listener: (authInfo: AuthInfo, + callback: (username?: string, password?: string) => void) => void): this; + /** + * Emitted when the server returns a redirect response (e.g. 301 Moved + * Permanently). Calling `request.followRedirect` will continue with the + * redirection. If this event is handled, `request.followRedirect` must be called + * **synchronously**, otherwise the request will be cancelled. + */ + on(event: 'redirect', listener: (statusCode: number, + method: string, + redirectUrl: string, + responseHeaders: Record) => void): this; + once(event: 'redirect', listener: (statusCode: number, + method: string, + redirectUrl: string, + responseHeaders: Record) => void): this; + addListener(event: 'redirect', listener: (statusCode: number, + method: string, + redirectUrl: string, + responseHeaders: Record) => void): this; + removeListener(event: 'redirect', listener: (statusCode: number, + method: string, + redirectUrl: string, + responseHeaders: Record) => void): this; + on(event: 'response', listener: ( + /** + * An object representing the HTTP response message. + */ + response: IncomingMessage) => void): this; + once(event: 'response', listener: ( + /** + * An object representing the HTTP response message. + */ + response: IncomingMessage) => void): this; + addListener(event: 'response', listener: ( + /** + * An object representing the HTTP response message. + */ + response: IncomingMessage) => void): this; + removeListener(event: 'response', listener: ( + /** + * An object representing the HTTP response message. + */ + response: IncomingMessage) => void): this; + /** + * ClientRequest + */ + constructor(options: (ClientRequestConstructorOptions) | (string)); + /** + * Cancels an ongoing HTTP transaction. If the request has already emitted the + * `close` event, the abort operation will have no effect. Otherwise an ongoing + * event will emit `abort` and `close` events. Additionally, if there is an ongoing + * response object,it will emit the `aborted` event. + */ + abort(): void; + /** + * Sends the last chunk of the request data. Subsequent write or end operations + * will not be allowed. The `finish` event is emitted just after the end operation. + */ + end(chunk?: (string) | (Buffer), encoding?: string, callback?: () => void): void; + /** + * Continues any pending redirection. Can only be called during a `'redirect'` + * event. + */ + followRedirect(): void; + /** + * The value of a previously set extra header name. + */ + getHeader(name: string): string; + /** + * * `active` Boolean - Whether the request is currently active. If this is false + * no other properties will be set + * * `started` Boolean - Whether the upload has started. If this is false both + * `current` and `total` will be set to 0. + * * `current` Integer - The number of bytes that have been uploaded so far + * * `total` Integer - The number of bytes that will be uploaded this request + * + * You can use this method in conjunction with `POST` requests to get the progress + * of a file upload or other data transfer. + */ + getUploadProgress(): UploadProgress; + /** + * Removes a previously set extra header name. This method can be called only + * before first write. Trying to call it after the first write will throw an error. + */ + removeHeader(name: string): void; + /** + * Adds an extra HTTP header. The header name will be issued as-is without + * lowercasing. It can be called only before first write. Calling this method after + * the first write will throw an error. If the passed value is not a `String`, its + * `toString()` method will be called to obtain the final value. + * + * Certain headers are restricted from being set by apps. These headers are listed + * below. More information on restricted headers can be found in Chromium's header + * utils. + * + * * `Content-Length` + * * `Host` + * * `Trailer` or `Te` + * * `Upgrade` + * * `Cookie2` + * * `Keep-Alive` + * * `Transfer-Encoding` + * + * Additionally, setting the `Connection` header to the value `upgrade` is also + * disallowed. + */ + setHeader(name: string, value: string): void; + /** + * `callback` is essentially a dummy function introduced in the purpose of keeping + * similarity with the Node.js API. It is called asynchronously in the next tick + * after `chunk` content have been delivered to the Chromium networking layer. + * Contrary to the Node.js implementation, it is not guaranteed that `chunk` + * content have been flushed on the wire before `callback` is called. + * + * Adds a chunk of data to the request body. The first write operation may cause + * the request headers to be issued on the wire. After the first write operation, + * it is not allowed to add or remove a custom header. + */ + write(chunk: (string) | (Buffer), encoding?: string, callback?: () => void): void; + chunkedEncoding: boolean; + } + + interface Clipboard { + + // Docs: https://electronjs.org/docs/api/clipboard + + /** + * An array of supported formats for the clipboard `type`. + */ + availableFormats(type?: 'selection' | 'clipboard'): string[]; + /** + * Clears the clipboard content. + */ + clear(type?: 'selection' | 'clipboard'): void; + /** + * Whether the clipboard supports the specified `format`. + * + * @experimental + */ + has(format: string, type?: 'selection' | 'clipboard'): boolean; + /** + * Reads `format` type from the clipboard. + * + * @experimental + */ + read(format: string): string; + /** + * * `title` String + * * `url` String + * + * Returns an Object containing `title` and `url` keys representing the bookmark in + * the clipboard. The `title` and `url` values will be empty strings when the + * bookmark is unavailable. + * + * @platform darwin,win32 + */ + readBookmark(): ReadBookmark; + /** + * Reads `format` type from the clipboard. + * + * @experimental + */ + readBuffer(format: string): Buffer; + /** + * The text on the find pasteboard, which is the pasteboard that holds information + * about the current state of the active application’s find panel. + * + * This method uses synchronous IPC when called from the renderer process. The + * cached value is reread from the find pasteboard whenever the application is + * activated. + * + * @platform darwin + */ + readFindText(): string; + /** + * The content in the clipboard as markup. + */ + readHTML(type?: 'selection' | 'clipboard'): string; + /** + * The image content in the clipboard. + */ + readImage(type?: 'selection' | 'clipboard'): NativeImage; + /** + * The content in the clipboard as RTF. + */ + readRTF(type?: 'selection' | 'clipboard'): string; + /** + * The content in the clipboard as plain text. + */ + readText(type?: 'selection' | 'clipboard'): string; + /** + * Writes `data` to the clipboard. + */ + write(data: Data, type?: 'selection' | 'clipboard'): void; + /** + * Writes the `title` and `url` into the clipboard as a bookmark. + * + * **Note:** Most apps on Windows don't support pasting bookmarks into them so you + * can use `clipboard.write` to write both a bookmark and fallback text to the + * clipboard. + * + * @platform darwin,win32 + */ + writeBookmark(title: string, url: string, type?: 'selection' | 'clipboard'): void; + /** + * Writes the `buffer` into the clipboard as `format`. + * + * @experimental + */ + writeBuffer(format: string, buffer: Buffer, type?: 'selection' | 'clipboard'): void; + /** + * Writes the `text` into the find pasteboard (the pasteboard that holds + * information about the current state of the active application’s find panel) as + * plain text. This method uses synchronous IPC when called from the renderer + * process. + * + * @platform darwin + */ + writeFindText(text: string): void; + /** + * Writes `markup` to the clipboard. + */ + writeHTML(markup: string, type?: 'selection' | 'clipboard'): void; + /** + * Writes `image` to the clipboard. + */ + writeImage(image: NativeImage, type?: 'selection' | 'clipboard'): void; + /** + * Writes the `text` into the clipboard in RTF. + */ + writeRTF(text: string, type?: 'selection' | 'clipboard'): void; + /** + * Writes the `text` into the clipboard as plain text. + */ + writeText(text: string, type?: 'selection' | 'clipboard'): void; + } + + class CommandLine { + + // Docs: https://electronjs.org/docs/api/command-line + + /** + * Append an argument to Chromium's command line. The argument will be quoted + * correctly. Switches will precede arguments regardless of appending order. + * + * If you're appending an argument like `--switch=value`, consider using + * `appendSwitch('switch', 'value')` instead. + * + * **Note:** This will not affect `process.argv`. The intended usage of this + * function is to control Chromium's behavior. + */ + appendArgument(value: string): void; + /** + * Append a switch (with optional `value`) to Chromium's command line. + * + * **Note:** This will not affect `process.argv`. The intended usage of this + * function is to control Chromium's behavior. + */ + appendSwitch(the_switch: string, value?: string): void; + /** + * The command-line switch value. + * + * **Note:** When the switch is not present or has no value, it returns empty + * string. + */ + getSwitchValue(the_switch: string): string; + /** + * Whether the command-line switch is present. + */ + hasSwitch(the_switch: string): boolean; + } + + interface ContentTracing { + + // Docs: https://electronjs.org/docs/api/content-tracing + + /** + * resolves with an array of category groups once all child processes have + * acknowledged the `getCategories` request + * + * Get a set of category groups. The category groups can change as new code paths + * are reached. See also the list of built-in tracing categories. + * + * > **NOTE:** Electron adds a non-default tracing category called `"electron"`. + * This category can be used to capture Electron-specific tracing events. + */ + getCategories(): Promise; + /** + * Resolves with an object containing the `value` and `percentage` of trace buffer + * maximum usage + * + * * `value` Number + * * `percentage` Number + * + * Get the maximum usage across processes of trace buffer as a percentage of the + * full state. + */ + getTraceBufferUsage(): Promise; + /** + * resolved once all child processes have acknowledged the `startRecording` + * request. + * + * Start recording on all processes. + * + * Recording begins immediately locally and asynchronously on child processes as + * soon as they receive the EnableRecording request. + * + * If a recording is already running, the promise will be immediately resolved, as + * only one trace operation can be in progress at a time. + */ + startRecording(options: (TraceConfig) | (TraceCategoriesAndOptions)): Promise; + /** + * resolves with a path to a file that contains the traced data once all child + * processes have acknowledged the `stopRecording` request + * + * Stop recording on all processes. + * + * Child processes typically cache trace data and only rarely flush and send trace + * data back to the main process. This helps to minimize the runtime overhead of + * tracing since sending trace data over IPC can be an expensive operation. So, to + * end tracing, Chromium asynchronously asks all child processes to flush any + * pending trace data. + * + * Trace data will be written into `resultFilePath`. If `resultFilePath` is empty + * or not provided, trace data will be written to a temporary file, and the path + * will be returned in the promise. + */ + stopRecording(resultFilePath?: string): Promise; + } + + interface ContextBridge { + + // Docs: https://electronjs.org/docs/api/context-bridge + + exposeInMainWorld(apiKey: string, api: any): void; + } + + interface Cookie { + + // Docs: https://electronjs.org/docs/api/structures/cookie + + /** + * The domain of the cookie; this will be normalized with a preceding dot so that + * it's also valid for subdomains. + */ + domain?: string; + /** + * The expiration date of the cookie as the number of seconds since the UNIX epoch. + * Not provided for session cookies. + */ + expirationDate?: number; + /** + * Whether the cookie is a host-only cookie; this will only be `true` if no domain + * was passed. + */ + hostOnly?: boolean; + /** + * Whether the cookie is marked as HTTP only. + */ + httpOnly?: boolean; + /** + * The name of the cookie. + */ + name: string; + /** + * The path of the cookie. + */ + path?: string; + /** + * The Same Site policy applied to this cookie. Can be `unspecified`, + * `no_restriction`, `lax` or `strict`. + */ + sameSite: ('unspecified' | 'no_restriction' | 'lax' | 'strict'); + /** + * Whether the cookie is marked as secure. + */ + secure?: boolean; + /** + * Whether the cookie is a session cookie or a persistent cookie with an expiration + * date. + */ + session?: boolean; + /** + * The value of the cookie. + */ + value: string; + } + + class Cookies extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/cookies + + /** + * Emitted when a cookie is changed because it was added, edited, removed, or + * expired. + */ + on(event: 'changed', listener: (event: Event, + /** + * The cookie that was changed. + */ + cookie: Cookie, + /** + * The cause of the change with one of the following values: + */ + cause: ('explicit' | 'overwrite' | 'expired' | 'evicted' | 'expired-overwrite'), + /** + * `true` if the cookie was removed, `false` otherwise. + */ + removed: boolean) => void): this; + once(event: 'changed', listener: (event: Event, + /** + * The cookie that was changed. + */ + cookie: Cookie, + /** + * The cause of the change with one of the following values: + */ + cause: ('explicit' | 'overwrite' | 'expired' | 'evicted' | 'expired-overwrite'), + /** + * `true` if the cookie was removed, `false` otherwise. + */ + removed: boolean) => void): this; + addListener(event: 'changed', listener: (event: Event, + /** + * The cookie that was changed. + */ + cookie: Cookie, + /** + * The cause of the change with one of the following values: + */ + cause: ('explicit' | 'overwrite' | 'expired' | 'evicted' | 'expired-overwrite'), + /** + * `true` if the cookie was removed, `false` otherwise. + */ + removed: boolean) => void): this; + removeListener(event: 'changed', listener: (event: Event, + /** + * The cookie that was changed. + */ + cookie: Cookie, + /** + * The cause of the change with one of the following values: + */ + cause: ('explicit' | 'overwrite' | 'expired' | 'evicted' | 'expired-overwrite'), + /** + * `true` if the cookie was removed, `false` otherwise. + */ + removed: boolean) => void): this; + /** + * A promise which resolves when the cookie store has been flushed + * +Writes any unwritten cookies data to disk. + */ + flushStore(): Promise; + /** + * A promise which resolves an array of cookie objects. + * + * Sends a request to get all cookies matching `filter`, and resolves a promise + * with the response. + */ + get(filter: CookiesGetFilter): Promise; + /** + * A promise which resolves when the cookie has been removed + * +Removes the cookies matching `url` and `name` + */ + remove(url: string, name: string): Promise; + /** + * A promise which resolves when the cookie has been set + * +Sets a cookie with `details`. + */ + set(details: CookiesSetDetails): Promise; + } + + interface CPUUsage { + + // Docs: https://electronjs.org/docs/api/structures/cpu-usage + + /** + * The number of average idle CPU wakeups per second since the last call to + * getCPUUsage. First call returns 0. Will always return 0 on Windows. + */ + idleWakeupsPerSecond: number; + /** + * Percentage of CPU used since the last call to getCPUUsage. First call returns 0. + */ + percentCPUUsage: number; + } + + interface CrashReport { + + // Docs: https://electronjs.org/docs/api/structures/crash-report + + date: Date; + id: string; + } + + interface CrashReporter { + + // Docs: https://electronjs.org/docs/api/crash-reporter + + /** + * Set an extra parameter to be sent with the crash report. The values specified + * here will be sent in addition to any values set via the `extra` option when + * `start` was called. + * + * Parameters added in this fashion (or via the `extra` parameter to + * `crashReporter.start`) are specific to the calling process. Adding extra + * parameters in the main process will not cause those parameters to be sent along + * with crashes from renderer or other child processes. Similarly, adding extra + * parameters in a renderer process will not result in those parameters being sent + * with crashes that occur in other renderer processes or in the main process. + * + * **Note:** Parameters have limits on the length of the keys and values. Key names + * must be no longer than 39 bytes, and values must be no longer than 20320 bytes. + * Keys with names longer than the maximum will be silently ignored. Key values + * longer than the maximum length will be truncated. + * + * **Note:** On linux values that are longer than 127 bytes will be chunked into + * multiple keys, each 127 bytes in length. E.g. `addExtraParameter('foo', + * 'a'.repeat(130))` will result in two chunked keys `foo__1` and `foo__2`, the + * first will contain the first 127 bytes and the second will contain the remaining + * 3 bytes. On your crash reporting backend you should stitch together keys in + * this format. + */ + addExtraParameter(key: string, value: string): void; + /** + * The date and ID of the last crash report. Only crash reports that have been + * uploaded will be returned; even if a crash report is present on disk it will not + * be returned until it is uploaded. In the case that there are no uploaded + * reports, `null` is returned. + * +**Note:** This method is only available in the main process. + */ + getLastCrashReport(): CrashReport; + /** + * The current 'extra' parameters of the crash reporter. + */ + getParameters(): Record; + /** + * Returns all uploaded crash reports. Each report contains the date and uploaded + * ID. + +**Note:** This method is only available in the main process. + */ + getUploadedReports(): CrashReport[]; + /** + * Whether reports should be submitted to the server. Set through the `start` + * method or `setUploadToServer`. + * +**Note:** This method is only available in the main process. + */ + getUploadToServer(): boolean; + /** + * Remove an extra parameter from the current set of parameters. Future crashes + * will not include this parameter. + */ + removeExtraParameter(key: string): void; + /** + * This would normally be controlled by user preferences. This has no effect if + * called before `start` is called. + * +**Note:** This method is only available in the main process. + */ + setUploadToServer(uploadToServer: boolean): void; + /** + * This method must be called before using any other `crashReporter` APIs. Once + * initialized this way, the crashpad handler collects crashes from all + * subsequently created processes. The crash reporter cannot be disabled once + * started. + * + * This method should be called as early as possible in app startup, preferably + * before `app.on('ready')`. If the crash reporter is not initialized at the time a + * renderer process is created, then that renderer process will not be monitored by + * the crash reporter. + * + * **Note:** You can test out the crash reporter by generating a crash using + * `process.crash()`. + * + * **Note:** If you need to send additional/updated `extra` parameters after your + * first call `start` you can call `addExtraParameter`. + * + * **Note:** Parameters passed in `extra`, `globalExtra` or set with + * `addExtraParameter` have limits on the length of the keys and values. Key names + * must be at most 39 bytes long, and values must be no longer than 127 bytes. Keys + * with names longer than the maximum will be silently ignored. Key values longer + * than the maximum length will be truncated. + * +**Note:** This method is only available in the main process. + */ + start(options: CrashReporterStartOptions): void; + } + + interface CustomScheme { + + // Docs: https://electronjs.org/docs/api/structures/custom-scheme + + privileges?: Privileges; + /** + * Custom schemes to be registered with options. + */ + scheme: string; + } + + class Debugger extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/debugger + + /** + * Emitted when the debugging session is terminated. This happens either when + * `webContents` is closed or devtools is invoked for the attached `webContents`. + */ + on(event: 'detach', listener: (event: Event, + /** + * Reason for detaching debugger. + */ + reason: string) => void): this; + once(event: 'detach', listener: (event: Event, + /** + * Reason for detaching debugger. + */ + reason: string) => void): this; + addListener(event: 'detach', listener: (event: Event, + /** + * Reason for detaching debugger. + */ + reason: string) => void): this; + removeListener(event: 'detach', listener: (event: Event, + /** + * Reason for detaching debugger. + */ + reason: string) => void): this; + /** + * Emitted whenever the debugging target issues an instrumentation event. + */ + on(event: 'message', listener: (event: Event, + /** + * Method name. + */ + method: string, + /** + * Event parameters defined by the 'parameters' attribute in the remote debugging + * protocol. + */ + params: any, + /** + * Unique identifier of attached debugging session, will match the value sent from + * `debugger.sendCommand`. + */ + sessionId: string) => void): this; + once(event: 'message', listener: (event: Event, + /** + * Method name. + */ + method: string, + /** + * Event parameters defined by the 'parameters' attribute in the remote debugging + * protocol. + */ + params: any, + /** + * Unique identifier of attached debugging session, will match the value sent from + * `debugger.sendCommand`. + */ + sessionId: string) => void): this; + addListener(event: 'message', listener: (event: Event, + /** + * Method name. + */ + method: string, + /** + * Event parameters defined by the 'parameters' attribute in the remote debugging + * protocol. + */ + params: any, + /** + * Unique identifier of attached debugging session, will match the value sent from + * `debugger.sendCommand`. + */ + sessionId: string) => void): this; + removeListener(event: 'message', listener: (event: Event, + /** + * Method name. + */ + method: string, + /** + * Event parameters defined by the 'parameters' attribute in the remote debugging + * protocol. + */ + params: any, + /** + * Unique identifier of attached debugging session, will match the value sent from + * `debugger.sendCommand`. + */ + sessionId: string) => void): this; + /** + * Attaches the debugger to the `webContents`. + */ + attach(protocolVersion?: string): void; + /** + * Detaches the debugger from the `webContents`. + */ + detach(): void; + /** + * Whether a debugger is attached to the `webContents`. + */ + isAttached(): boolean; + /** + * A promise that resolves with the response defined by the 'returns' attribute of + * the command description in the remote debugging protocol or is rejected + * indicating the failure of the command. + * +Send given command to the debugging target. + */ + sendCommand(method: string, commandParams?: any, sessionId?: string): Promise; + } + + interface DesktopCapturer { + + // Docs: https://electronjs.org/docs/api/desktop-capturer + + /** + * Resolves with an array of `DesktopCapturerSource` objects, each + * `DesktopCapturerSource` represents a screen or an individual window that can be + * captured. + * + * **Note** Capturing the screen contents requires user consent on macOS 10.15 + * Catalina or higher, which can detected by + * `systemPreferences.getMediaAccessStatus`. + */ + getSources(options: SourcesOptions): Promise; + } + + interface DesktopCapturerSource { + + // Docs: https://electronjs.org/docs/api/structures/desktop-capturer-source + + /** + * An icon image of the application that owns the window or null if the source has + * a type screen. The size of the icon is not known in advance and depends on what + * the application provides. + */ + appIcon: NativeImage; + /** + * A unique identifier that will correspond to the `id` of the matching Display + * returned by the Screen API. On some platforms, this is equivalent to the `XX` + * portion of the `id` field above and on others it will differ. It will be an + * empty string if not available. + */ + display_id: string; + /** + * The identifier of a window or screen that can be used as a `chromeMediaSourceId` + * constraint when calling [`navigator.webkitGetUserMedia`]. The format of the + * identifier will be `window:XX:YY` or `screen:ZZ:0`. XX is the windowID/handle. + * YY is 1 for the current process, and 0 for all others. ZZ is a sequential number + * that represents the screen, and it does not equal to the index in the source's + * name. + */ + id: string; + /** + * A screen source will be named either `Entire Screen` or `Screen `, while + * the name of a window source will match the window title. + */ + name: string; + /** + * A thumbnail image. **Note:** There is no guarantee that the size of the + * thumbnail is the same as the `thumbnailSize` specified in the `options` passed + * to `desktopCapturer.getSources`. The actual size depends on the scale of the + * screen or window. + */ + thumbnail: NativeImage; + } + + interface Dialog { + + // Docs: https://electronjs.org/docs/api/dialog + + /** + * resolves when the certificate trust dialog is shown. + * + * On macOS, this displays a modal dialog that shows a message and certificate + * information, and gives the user the option of trusting/importing the + * certificate. If you provide a `browserWindow` argument the dialog will be + * attached to the parent window, making it modal. + * + * On Windows the options are more limited, due to the Win32 APIs used: + * + * * The `message` argument is not used, as the OS provides its own confirmation + * dialog. + * * The `browserWindow` argument is ignored since it is not possible to make this + * confirmation dialog modal. + * + * @platform darwin,win32 + */ + showCertificateTrustDialog(browserWindow: BrowserWindow, options: CertificateTrustDialogOptions): Promise; + /** + * resolves when the certificate trust dialog is shown. + * + * On macOS, this displays a modal dialog that shows a message and certificate + * information, and gives the user the option of trusting/importing the + * certificate. If you provide a `browserWindow` argument the dialog will be + * attached to the parent window, making it modal. + * + * On Windows the options are more limited, due to the Win32 APIs used: + * + * * The `message` argument is not used, as the OS provides its own confirmation + * dialog. + * * The `browserWindow` argument is ignored since it is not possible to make this + * confirmation dialog modal. + * + * @platform darwin,win32 + */ + showCertificateTrustDialog(options: CertificateTrustDialogOptions): Promise; + /** + * Displays a modal dialog that shows an error message. + * + * This API can be called safely before the `ready` event the `app` module emits, + * it is usually used to report errors in early stage of startup. If called before + * the app `ready`event on Linux, the message will be emitted to stderr, and no GUI + * dialog will appear. + */ + showErrorBox(title: string, content: string): void; + /** + * resolves with a promise containing the following properties: + * + * * `response` Number - The index of the clicked button. + * * `checkboxChecked` Boolean - The checked state of the checkbox if + * `checkboxLabel` was set. Otherwise `false`. + * + * Shows a message box. + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + */ + showMessageBox(browserWindow: BrowserWindow, options: MessageBoxOptions): Promise; + /** + * resolves with a promise containing the following properties: + * + * * `response` Number - The index of the clicked button. + * * `checkboxChecked` Boolean - The checked state of the checkbox if + * `checkboxLabel` was set. Otherwise `false`. + * + * Shows a message box. + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + */ + showMessageBox(options: MessageBoxOptions): Promise; + /** + * the index of the clicked button. + * + * Shows a message box, it will block the process until the message box is closed. + * It returns the index of the clicked button. + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. If `browserWindow` is not shown dialog will not be + * attached to it. In such case it will be displayed as an independent window. + */ + showMessageBoxSync(browserWindow: BrowserWindow, options: MessageBoxSyncOptions): number; + /** + * the index of the clicked button. + * + * Shows a message box, it will block the process until the message box is closed. + * It returns the index of the clicked button. + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. If `browserWindow` is not shown dialog will not be + * attached to it. In such case it will be displayed as an independent window. + */ + showMessageBoxSync(options: MessageBoxSyncOptions): number; + /** + * Resolve with an object containing the following: + * + * * `canceled` Boolean - whether or not the dialog was canceled. + * * `filePaths` String[] - An array of file paths chosen by the user. If the + * dialog is cancelled this will be an empty array. + * * `bookmarks` String[] (optional) _macOS_ _mas_ - An array matching the + * `filePaths` array of base64 encoded strings which contains security scoped + * bookmark data. `securityScopedBookmarks` must be enabled for this to be + * populated. (For return values, see table here.) + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + * + * The `filters` specifies an array of file types that can be displayed or selected + * when you want to limit the user to a specific type. For example: + * + * The `extensions` array should contain extensions without wildcards or dots (e.g. + * `'png'` is good but `'.png'` and `'*.png'` are bad). To show all files, use the + * `'*'` wildcard (no other wildcard is supported). + * + * **Note:** On Windows and Linux an open dialog can not be both a file selector + * and a directory selector, so if you set `properties` to `['openFile', + * 'openDirectory']` on these platforms, a directory selector will be shown. + */ + showOpenDialog(browserWindow: BrowserWindow, options: OpenDialogOptions): Promise; + /** + * Resolve with an object containing the following: + * + * * `canceled` Boolean - whether or not the dialog was canceled. + * * `filePaths` String[] - An array of file paths chosen by the user. If the + * dialog is cancelled this will be an empty array. + * * `bookmarks` String[] (optional) _macOS_ _mas_ - An array matching the + * `filePaths` array of base64 encoded strings which contains security scoped + * bookmark data. `securityScopedBookmarks` must be enabled for this to be + * populated. (For return values, see table here.) + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + * + * The `filters` specifies an array of file types that can be displayed or selected + * when you want to limit the user to a specific type. For example: + * + * The `extensions` array should contain extensions without wildcards or dots (e.g. + * `'png'` is good but `'.png'` and `'*.png'` are bad). To show all files, use the + * `'*'` wildcard (no other wildcard is supported). + * + * **Note:** On Windows and Linux an open dialog can not be both a file selector + * and a directory selector, so if you set `properties` to `['openFile', + * 'openDirectory']` on these platforms, a directory selector will be shown. + */ + showOpenDialog(options: OpenDialogOptions): Promise; + /** + * the file paths chosen by the user; if the dialog is cancelled it returns + * `undefined`. + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + * + * The `filters` specifies an array of file types that can be displayed or selected + * when you want to limit the user to a specific type. For example: + * + * The `extensions` array should contain extensions without wildcards or dots (e.g. + * `'png'` is good but `'.png'` and `'*.png'` are bad). To show all files, use the + * `'*'` wildcard (no other wildcard is supported). + * + * **Note:** On Windows and Linux an open dialog can not be both a file selector + * and a directory selector, so if you set `properties` to `['openFile', + * 'openDirectory']` on these platforms, a directory selector will be shown. + */ + showOpenDialogSync(browserWindow: BrowserWindow, options: OpenDialogSyncOptions): (string[]) | (undefined); + /** + * the file paths chosen by the user; if the dialog is cancelled it returns + * `undefined`. + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + * + * The `filters` specifies an array of file types that can be displayed or selected + * when you want to limit the user to a specific type. For example: + * + * The `extensions` array should contain extensions without wildcards or dots (e.g. + * `'png'` is good but `'.png'` and `'*.png'` are bad). To show all files, use the + * `'*'` wildcard (no other wildcard is supported). + * + * **Note:** On Windows and Linux an open dialog can not be both a file selector + * and a directory selector, so if you set `properties` to `['openFile', + * 'openDirectory']` on these platforms, a directory selector will be shown. + */ + showOpenDialogSync(options: OpenDialogSyncOptions): (string[]) | (undefined); + /** + * Resolve with an object containing the following: + * + * * `canceled` Boolean - whether or not the dialog was canceled. + * * `filePath` String (optional) - If the dialog is canceled, this will be + * `undefined`. + * * `bookmark` String (optional) _macOS_ _mas_ - Base64 encoded string which + * contains the security scoped bookmark data for the saved file. + * `securityScopedBookmarks` must be enabled for this to be present. (For return + * values, see table here.) + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + * + * The `filters` specifies an array of file types that can be displayed, see + * `dialog.showOpenDialog` for an example. + * + * **Note:** On macOS, using the asynchronous version is recommended to avoid + * issues when expanding and collapsing the dialog. + */ + showSaveDialog(browserWindow: BrowserWindow, options: SaveDialogOptions): Promise; + /** + * Resolve with an object containing the following: + * + * * `canceled` Boolean - whether or not the dialog was canceled. + * * `filePath` String (optional) - If the dialog is canceled, this will be + * `undefined`. + * * `bookmark` String (optional) _macOS_ _mas_ - Base64 encoded string which + * contains the security scoped bookmark data for the saved file. + * `securityScopedBookmarks` must be enabled for this to be present. (For return + * values, see table here.) + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + * + * The `filters` specifies an array of file types that can be displayed, see + * `dialog.showOpenDialog` for an example. + * + * **Note:** On macOS, using the asynchronous version is recommended to avoid + * issues when expanding and collapsing the dialog. + */ + showSaveDialog(options: SaveDialogOptions): Promise; + /** + * the path of the file chosen by the user; if the dialog is cancelled it returns + * `undefined`. + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + * + * The `filters` specifies an array of file types that can be displayed, see + * `dialog.showOpenDialog` for an example. + */ + showSaveDialogSync(browserWindow: BrowserWindow, options: SaveDialogSyncOptions): (string) | (undefined); + /** + * the path of the file chosen by the user; if the dialog is cancelled it returns + * `undefined`. + * + * The `browserWindow` argument allows the dialog to attach itself to a parent + * window, making it modal. + * + * The `filters` specifies an array of file types that can be displayed, see + * `dialog.showOpenDialog` for an example. + */ + showSaveDialogSync(options: SaveDialogSyncOptions): (string) | (undefined); + } + + interface Display { + + // Docs: https://electronjs.org/docs/api/structures/display + + /** + * Can be `available`, `unavailable`, `unknown`. + */ + accelerometerSupport: ('available' | 'unavailable' | 'unknown'); + /** + * the bounds of the display in DIP points. + */ + bounds: Rectangle; + /** + * The number of bits per pixel. + */ + colorDepth: number; + /** + * represent a color space (three-dimensional object which contains all realizable + * color combinations) for the purpose of color conversions + */ + colorSpace: string; + /** + * The number of bits per color component. + */ + depthPerComponent: number; + /** + * The display refresh rate. + */ + displayFrequency: number; + /** + * Unique identifier associated with the display. + */ + id: number; + /** + * `true` for an internal display and `false` for an external display + */ + internal: boolean; + /** + * Whether or not the display is a monochrome display. + */ + monochrome: boolean; + /** + * Can be 0, 90, 180, 270, represents screen rotation in clock-wise degrees. + */ + rotation: number; + /** + * Output device's pixel scale factor. + */ + scaleFactor: number; + size: Size; + /** + * Can be `available`, `unavailable`, `unknown`. + */ + touchSupport: ('available' | 'unavailable' | 'unknown'); + /** + * the work area of the display in DIP points. + */ + workArea: Rectangle; + workAreaSize: Size; + } + + class Dock { + + // Docs: https://electronjs.org/docs/api/dock + + /** + * an ID representing the request. + * + * When `critical` is passed, the dock icon will bounce until either the + * application becomes active or the request is canceled. + * + * When `informational` is passed, the dock icon will bounce for one second. + * However, the request remains active until either the application becomes active + * or the request is canceled. + * + * **Nota Bene:** This method can only be used while the app is not focused; when + * the app is focused it will return -1. + * + * @platform darwin + */ + bounce(type?: 'critical' | 'informational'): number; + /** + * Cancel the bounce of `id`. + * + * @platform darwin + */ + cancelBounce(id: number): void; + /** + * Bounces the Downloads stack if the filePath is inside the Downloads folder. + * + * @platform darwin + */ + downloadFinished(filePath: string): void; + /** + * The badge string of the dock. + * + * @platform darwin + */ + getBadge(): string; + /** + * The application's [dock menu][dock-menu]. + * + * @platform darwin + */ + getMenu(): (Menu) | (null); + /** + * Hides the dock icon. + * + * @platform darwin + */ + hide(): void; + /** + * Whether the dock icon is visible. + * + * @platform darwin + */ + isVisible(): boolean; + /** + * Sets the string to be displayed in the dock’s badging area. + * + * @platform darwin + */ + setBadge(text: string): void; + /** + * Sets the `image` associated with this dock icon. + * + * @platform darwin + */ + setIcon(image: (NativeImage) | (string)): void; + /** + * Sets the application's [dock menu][dock-menu]. + * + * @platform darwin + */ + setMenu(menu: Menu): void; + /** + * Resolves when the dock icon is shown. + * + * @platform darwin + */ + show(): Promise; + } + + class DownloadItem extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/download-item + + /** + * Emitted when the download is in a terminal state. This includes a completed + * download, a cancelled download (via `downloadItem.cancel()`), and interrupted + * download that can't be resumed. + * + * The `state` can be one of following: + * + * * `completed` - The download completed successfully. + * * `cancelled` - The download has been cancelled. + * * `interrupted` - The download has interrupted and can not resume. + */ + on(event: 'done', listener: (event: Event, + /** + * Can be `completed`, `cancelled` or `interrupted`. + */ + state: ('completed' | 'cancelled' | 'interrupted')) => void): this; + once(event: 'done', listener: (event: Event, + /** + * Can be `completed`, `cancelled` or `interrupted`. + */ + state: ('completed' | 'cancelled' | 'interrupted')) => void): this; + addListener(event: 'done', listener: (event: Event, + /** + * Can be `completed`, `cancelled` or `interrupted`. + */ + state: ('completed' | 'cancelled' | 'interrupted')) => void): this; + removeListener(event: 'done', listener: (event: Event, + /** + * Can be `completed`, `cancelled` or `interrupted`. + */ + state: ('completed' | 'cancelled' | 'interrupted')) => void): this; + /** + * Emitted when the download has been updated and is not done. + * + * The `state` can be one of following: + * + * * `progressing` - The download is in-progress. + * * `interrupted` - The download has interrupted and can be resumed. + */ + on(event: 'updated', listener: (event: Event, + /** + * Can be `progressing` or `interrupted`. + */ + state: ('progressing' | 'interrupted')) => void): this; + once(event: 'updated', listener: (event: Event, + /** + * Can be `progressing` or `interrupted`. + */ + state: ('progressing' | 'interrupted')) => void): this; + addListener(event: 'updated', listener: (event: Event, + /** + * Can be `progressing` or `interrupted`. + */ + state: ('progressing' | 'interrupted')) => void): this; + removeListener(event: 'updated', listener: (event: Event, + /** + * Can be `progressing` or `interrupted`. + */ + state: ('progressing' | 'interrupted')) => void): this; + /** + * Cancels the download operation. + */ + cancel(): void; + /** + * Whether the download can resume. + */ + canResume(): boolean; + /** + * The Content-Disposition field from the response header. + */ + getContentDisposition(): string; + /** + * ETag header value. + */ + getETag(): string; + /** + * The file name of the download item. + * + * **Note:** The file name is not always the same as the actual one saved in local + * disk. If user changes the file name in a prompted download saving dialog, the + * actual name of saved file will be different. + */ + getFilename(): string; + /** + * Last-Modified header value. + */ + getLastModifiedTime(): string; + /** + * The files mime type. + */ + getMimeType(): string; + /** + * The received bytes of the download item. + */ + getReceivedBytes(): number; + /** + * Returns the object previously set by + * `downloadItem.setSaveDialogOptions(options)`. + */ + getSaveDialogOptions(): SaveDialogOptions; + /** + * The save path of the download item. This will be either the path set via + * `downloadItem.setSavePath(path)` or the path selected from the shown save + * dialog. + */ + getSavePath(): string; + /** + * Number of seconds since the UNIX epoch when the download was started. + */ + getStartTime(): number; + /** + * The current state. Can be `progressing`, `completed`, `cancelled` or + * `interrupted`. + * + * **Note:** The following methods are useful specifically to resume a `cancelled` + * item when session is restarted. + */ + getState(): ('progressing' | 'completed' | 'cancelled' | 'interrupted'); + /** + * The total size in bytes of the download item. + * +If the size is unknown, it returns 0. + */ + getTotalBytes(): number; + /** + * The origin URL where the item is downloaded from. + */ + getURL(): string; + /** + * The complete URL chain of the item including any redirects. + */ + getURLChain(): string[]; + /** + * Whether the download has user gesture. + */ + hasUserGesture(): boolean; + /** + * Whether the download is paused. + */ + isPaused(): boolean; + /** + * Pauses the download. + */ + pause(): void; + /** + * Resumes the download that has been paused. + * + * **Note:** To enable resumable downloads the server you are downloading from must + * support range requests and provide both `Last-Modified` and `ETag` header + * values. Otherwise `resume()` will dismiss previously received bytes and restart + * the download from the beginning. + */ + resume(): void; + /** + * This API allows the user to set custom options for the save dialog that opens + * for the download item by default. The API is only available in session's + * `will-download` callback function. + */ + setSaveDialogOptions(options: SaveDialogOptions): void; + /** + * The API is only available in session's `will-download` callback function. If + * `path` doesn't exist, Electron will try to make the directory recursively. If + * user doesn't set the save path via the API, Electron will use the original + * routine to determine the save path; this usually prompts a save dialog. + */ + setSavePath(path: string): void; + savePath: string; + } + + interface Event extends GlobalEvent { + + // Docs: https://electronjs.org/docs/api/structures/event + + preventDefault: (() => void); + } + + interface Extension { + + // Docs: https://electronjs.org/docs/api/structures/extension + + id: string; + /** + * Copy of the extension's manifest data. + */ + manifest: any; + name: string; + /** + * The extension's file path. + */ + path: string; + /** + * The extension's `chrome-extension://` URL. + */ + url: string; + version: string; + } + + interface ExtensionInfo { + + // Docs: https://electronjs.org/docs/api/structures/extension-info + + name: string; + version: string; + } + + interface FileFilter { + + // Docs: https://electronjs.org/docs/api/structures/file-filter + + extensions: string[]; + name: string; + } + + interface FilePathWithHeaders { + + // Docs: https://electronjs.org/docs/api/structures/file-path-with-headers + + /** + * Additional headers to be sent. + */ + headers?: Record; + /** + * The path to the file to send. + */ + path: string; + } + + interface GlobalShortcut { + + // Docs: https://electronjs.org/docs/api/global-shortcut + + /** + * Whether this application has registered `accelerator`. + * + * When the accelerator is already taken by other applications, this call will + * still return `false`. This behavior is intended by operating systems, since they + * don't want applications to fight for global shortcuts. + */ + isRegistered(accelerator: Accelerator): boolean; + /** + * Whether or not the shortcut was registered successfully. + * + * Registers a global shortcut of `accelerator`. The `callback` is called when the + * registered shortcut is pressed by the user. + * + * When the accelerator is already taken by other applications, this call will + * silently fail. This behavior is intended by operating systems, since they don't + * want applications to fight for global shortcuts. + * + * The following accelerators will not be registered successfully on macOS 10.14 + * Mojave unless the app has been authorized as a trusted accessibility client: + * + * * "Media Play/Pause" + * * "Media Next Track" +* "Media Previous Track" +* "Media Stop" + */ + register(accelerator: Accelerator, callback: () => void): boolean; + /** + * Registers a global shortcut of all `accelerator` items in `accelerators`. The + * `callback` is called when any of the registered shortcuts are pressed by the + * user. + * + * When a given accelerator is already taken by other applications, this call will + * silently fail. This behavior is intended by operating systems, since they don't + * want applications to fight for global shortcuts. + * + * The following accelerators will not be registered successfully on macOS 10.14 + * Mojave unless the app has been authorized as a trusted accessibility client: + * + * * "Media Play/Pause" + * * "Media Next Track" +* "Media Previous Track" +* "Media Stop" + */ + registerAll(accelerators: string[], callback: () => void): void; + /** + * Unregisters the global shortcut of `accelerator`. + */ + unregister(accelerator: Accelerator): void; + /** + * Unregisters all of the global shortcuts. + */ + unregisterAll(): void; + } + + interface GPUFeatureStatus { + + // Docs: https://electronjs.org/docs/api/structures/gpu-feature-status + + /** + * Canvas. + */ + '2d_canvas': string; + /** + * Flash. + */ + flash_3d: string; + /** + * Flash Stage3D. + */ + flash_stage3d: string; + /** + * Flash Stage3D Baseline profile. + */ + flash_stage3d_baseline: string; + /** + * Compositing. + */ + gpu_compositing: string; + /** + * Multiple Raster Threads. + */ + multiple_raster_threads: string; + /** + * Native GpuMemoryBuffers. + */ + native_gpu_memory_buffers: string; + /** + * Rasterization. + */ + rasterization: string; + /** + * Video Decode. + */ + video_decode: string; + /** + * Video Encode. + */ + video_encode: string; + /** + * VPx Video Decode. + */ + vpx_decode: string; + /** + * WebGL. + */ + webgl: string; + /** + * WebGL2. + */ + webgl2: string; + } + + interface InAppPurchase extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/in-app-purchase + + on(event: 'transactions-updated', listener: Function): this; + once(event: 'transactions-updated', listener: Function): this; + addListener(event: 'transactions-updated', listener: Function): this; + removeListener(event: 'transactions-updated', listener: Function): this; + /** + * whether a user can make a payment. + */ + canMakePayments(): boolean; + /** + * Completes all pending transactions. + */ + finishAllTransactions(): void; + /** + * Completes the pending transactions corresponding to the date. + */ + finishTransactionByDate(date: string): void; + /** + * Resolves with an array of `Product` objects. + * +Retrieves the product descriptions. + */ + getProducts(productIDs: string[]): Promise; + /** + * the path to the receipt. + */ + getReceiptURL(): string; + /** + * Returns `true` if the product is valid and added to the payment queue. + * + * You should listen for the `transactions-updated` event as soon as possible and + * certainly before you call `purchaseProduct`. + */ + purchaseProduct(productID: string, quantity?: number): Promise; + /** + * Restores finished transactions. This method can be called either to install + * purchases on additional devices, or to restore purchases for an application that + * the user deleted and reinstalled. + * + * The payment queue delivers a new transaction for each previously completed + * transaction that can be restored. Each transaction includes a copy of the + * original transaction. + */ + restoreCompletedTransactions(): void; + } + + class IncomingMessage extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/incoming-message + + /** + * Emitted when a request has been canceled during an ongoing HTTP transaction. + */ + on(event: 'aborted', listener: Function): this; + once(event: 'aborted', listener: Function): this; + addListener(event: 'aborted', listener: Function): this; + removeListener(event: 'aborted', listener: Function): this; + /** + * The `data` event is the usual method of transferring response data into + * applicative code. + */ + on(event: 'data', listener: ( + /** + * A chunk of response body's data. + */ + chunk: Buffer) => void): this; + once(event: 'data', listener: ( + /** + * A chunk of response body's data. + */ + chunk: Buffer) => void): this; + addListener(event: 'data', listener: ( + /** + * A chunk of response body's data. + */ + chunk: Buffer) => void): this; + removeListener(event: 'data', listener: ( + /** + * A chunk of response body's data. + */ + chunk: Buffer) => void): this; + /** + * Indicates that response body has ended. Must be placed before 'data' event. + */ + on(event: 'end', listener: Function): this; + once(event: 'end', listener: Function): this; + addListener(event: 'end', listener: Function): this; + removeListener(event: 'end', listener: Function): this; + /** + * Returns: + * + * `error` Error - Typically holds an error string identifying failure root cause. + * + * Emitted when an error was encountered while streaming response data events. For + * instance, if the server closes the underlying while the response is still + * streaming, an `error` event will be emitted on the response object and a `close` + * event will subsequently follow on the request object. + */ + on(event: 'error', listener: Function): this; + once(event: 'error', listener: Function): this; + addListener(event: 'error', listener: Function): this; + removeListener(event: 'error', listener: Function): this; + headers: Record; + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + statusCode: number; + statusMessage: string; + } + + interface InputEvent { + + // Docs: https://electronjs.org/docs/api/structures/input-event + + /** + * An array of modifiers of the event, can be `shift`, `control`, `ctrl`, `alt`, + * `meta`, `command`, `cmd`, `isKeypad`, `isAutoRepeat`, `leftButtonDown`, + * `middleButtonDown`, `rightButtonDown`, `capsLock`, `numLock`, `left`, `right`. + */ + modifiers?: Array<'shift' | 'control' | 'ctrl' | 'alt' | 'meta' | 'command' | 'cmd' | 'isKeypad' | 'isAutoRepeat' | 'leftButtonDown' | 'middleButtonDown' | 'rightButtonDown' | 'capsLock' | 'numLock' | 'left' | 'right'>; + } + + interface IOCounters { + + // Docs: https://electronjs.org/docs/api/structures/io-counters + + /** + * Then number of I/O other operations. + */ + otherOperationCount: number; + /** + * Then number of I/O other transfers. + */ + otherTransferCount: number; + /** + * The number of I/O read operations. + */ + readOperationCount: number; + /** + * The number of I/O read transfers. + */ + readTransferCount: number; + /** + * The number of I/O write operations. + */ + writeOperationCount: number; + /** + * The number of I/O write transfers. + */ + writeTransferCount: number; + } + + interface IpcMain extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/ipc-main + + /** + * Adds a handler for an `invoke`able IPC. This handler will be called whenever a + * renderer calls `ipcRenderer.invoke(channel, ...args)`. + * + * If `listener` returns a Promise, the eventual result of the promise will be + * returned as a reply to the remote caller. Otherwise, the return value of the + * listener will be used as the value of the reply. + * + * The `event` that is passed as the first argument to the handler is the same as + * that passed to a regular event listener. It includes information about which + * WebContents is the source of the invoke request. + * + * Errors thrown through `handle` in the main process are not transparent as they + * are serialized and only the `message` property from the original error is + * provided to the renderer process. Please refer to #24427 for details. + */ + handle(channel: string, listener: (event: IpcMainInvokeEvent, ...args: any[]) => (Promise) | (any)): void; + /** + * Handles a single `invoke`able IPC message, then removes the listener. See + * `ipcMain.handle(channel, listener)`. + */ + handleOnce(channel: string, listener: (event: IpcMainInvokeEvent, ...args: any[]) => (Promise) | (any)): void; + /** + * Listens to `channel`, when a new message arrives `listener` would be called with + * `listener(event, args...)`. + */ + on(channel: string, listener: (event: IpcMainEvent, ...args: any[]) => void): this; + /** + * Adds a one time `listener` function for the event. This `listener` is invoked + * only the next time a message is sent to `channel`, after which it is removed. + */ + once(channel: string, listener: (event: IpcMainEvent, ...args: any[]) => void): this; + /** + * Removes listeners of the specified `channel`. + */ + removeAllListeners(channel?: string): this; + /** + * Removes any handler for `channel`, if present. + */ + removeHandler(channel: string): void; + /** + * Removes the specified `listener` from the listener array for the specified + * `channel`. + */ + removeListener(channel: string, listener: (...args: any[]) => void): this; + } + + interface IpcMainEvent extends Event { + + // Docs: https://electronjs.org/docs/api/structures/ipc-main-event + + /** + * The ID of the renderer frame that sent this message + */ + frameId: number; + /** + * A list of MessagePorts that were transferred with this message + */ + ports: MessagePortMain[]; + /** + * The internal ID of the renderer process that sent this message + */ + processId: number; + /** + * A function that will send an IPC message to the renderer frame that sent the + * original message that you are currently handling. You should use this method to + * "reply" to the sent message in order to guarantee the reply will go to the + * correct process and frame. + */ + reply: Function; + /** + * Set this to the value to be returned in a synchronous message + */ + returnValue: any; + /** + * Returns the `webContents` that sent the message + */ + sender: WebContents; + /** + * The frame that sent this message + * + */ + readonly senderFrame: WebFrameMain; + } + + interface IpcMainInvokeEvent extends Event { + + // Docs: https://electronjs.org/docs/api/structures/ipc-main-invoke-event + + /** + * The ID of the renderer frame that sent this message + */ + frameId: number; + /** + * The internal ID of the renderer process that sent this message + */ + processId: number; + /** + * Returns the `webContents` that sent the message + */ + sender: WebContents; + /** + * The frame that sent this message + * + */ + readonly senderFrame: WebFrameMain; + } + + interface IpcRenderer extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/ipc-renderer + + /** + * Resolves with the response from the main process. + * + * Send a message to the main process via `channel` and expect a result + * asynchronously. Arguments will be serialized with the Structured Clone + * Algorithm, just like `window.postMessage`, so prototype chains will not be + * included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will throw + * an exception. + * + * > **NOTE:** Sending non-standard JavaScript types such as DOM objects or special + * Electron objects will throw an exception. + * + * Since the main process does not have support for DOM objects such as + * `ImageBitmap`, `File`, `DOMMatrix` and so on, such objects cannot be sent over + * Electron's IPC to the main process, as the main process would have no way to + * decode them. Attempting to send such objects over IPC will result in an error. + * + * The main process should listen for `channel` with `ipcMain.handle()`. + * + * For example: + * + * If you need to transfer a `MessagePort` to the main process, use + * `ipcRenderer.postMessage`. + * + * If you do not need a response to the message, consider using `ipcRenderer.send`. + */ + invoke(channel: string, ...args: any[]): Promise; + /** + * Listens to `channel`, when a new message arrives `listener` would be called with + * `listener(event, args...)`. + */ + on(channel: string, listener: (event: IpcRendererEvent, ...args: any[]) => void): this; + /** + * Adds a one time `listener` function for the event. This `listener` is invoked + * only the next time a message is sent to `channel`, after which it is removed. + */ + once(channel: string, listener: (event: IpcRendererEvent, ...args: any[]) => void): this; + /** + * Send a message to the main process, optionally transferring ownership of zero or + * more `MessagePort` objects. + * + * The transferred `MessagePort` objects will be available in the main process as + * `MessagePortMain` objects by accessing the `ports` property of the emitted + * event. + * + * For example: + * + * For more information on using `MessagePort` and `MessageChannel`, see the MDN + * documentation. + */ + postMessage(channel: string, message: any, transfer?: MessagePort[]): void; + /** + * Removes all listeners, or those of the specified `channel`. + */ + removeAllListeners(channel: string): this; + /** + * Removes the specified `listener` from the listener array for the specified + * `channel`. + */ + removeListener(channel: string, listener: (...args: any[]) => void): this; + /** + * Send an asynchronous message to the main process via `channel`, along with + * arguments. Arguments will be serialized with the Structured Clone Algorithm, + * just like `window.postMessage`, so prototype chains will not be included. + * Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will throw an + * exception. + * + * > **NOTE:** Sending non-standard JavaScript types such as DOM objects or special + * Electron objects will throw an exception. + * + * Since the main process does not have support for DOM objects such as + * `ImageBitmap`, `File`, `DOMMatrix` and so on, such objects cannot be sent over + * Electron's IPC to the main process, as the main process would have no way to + * decode them. Attempting to send such objects over IPC will result in an error. + * + * The main process handles it by listening for `channel` with the `ipcMain` + * module. + * + * If you need to transfer a `MessagePort` to the main process, use + * `ipcRenderer.postMessage`. + * + * If you want to receive a single response from the main process, like the result + * of a method call, consider using `ipcRenderer.invoke`. + */ + send(channel: string, ...args: any[]): void; + /** + * The value sent back by the `ipcMain` handler. + * + * Send a message to the main process via `channel` and expect a result + * synchronously. Arguments will be serialized with the Structured Clone Algorithm, + * just like `window.postMessage`, so prototype chains will not be included. + * Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will throw an + * exception. + * + * > **NOTE:** Sending non-standard JavaScript types such as DOM objects or special + * Electron objects will throw an exception. + * + * Since the main process does not have support for DOM objects such as + * `ImageBitmap`, `File`, `DOMMatrix` and so on, such objects cannot be sent over + * Electron's IPC to the main process, as the main process would have no way to + * decode them. Attempting to send such objects over IPC will result in an error. + * + * The main process handles it by listening for `channel` with `ipcMain` module, + * and replies by setting `event.returnValue`. + * + * > :warning: **WARNING**: Sending a synchronous message will block the whole + * renderer process until the reply is received, so use this method only as a last + * resort. It's much better to use the asynchronous version, `invoke()`. + */ + sendSync(channel: string, ...args: any[]): any; + /** + * Sends a message to a window with `webContentsId` via `channel`. + */ + sendTo(webContentsId: number, channel: string, ...args: any[]): void; + /** + * Like `ipcRenderer.send` but the event will be sent to the `` element in + * the host page instead of the main process. + */ + sendToHost(channel: string, ...args: any[]): void; + } + + interface IpcRendererEvent extends Event { + + // Docs: https://electronjs.org/docs/api/structures/ipc-renderer-event + + /** + * A list of MessagePorts that were transferred with this message + */ + ports: MessagePort[]; + /** + * The `IpcRenderer` instance that emitted the event originally + */ + sender: IpcRenderer; + /** + * The `webContents.id` that sent the message, you can call + * `event.sender.sendTo(event.senderId, ...)` to reply to the message, see + * ipcRenderer.sendTo for more information. This only applies to messages sent from + * a different renderer. Messages sent directly from the main process set + * `event.senderId` to `0`. + */ + senderId: number; + } + + interface JumpListCategory { + + // Docs: https://electronjs.org/docs/api/structures/jump-list-category + + /** + * Array of `JumpListItem` objects if `type` is `tasks` or `custom`, otherwise it + * should be omitted. + */ + items?: JumpListItem[]; + /** + * Must be set if `type` is `custom`, otherwise it should be omitted. + */ + name?: string; + /** + * One of the following: + */ + type?: ('tasks' | 'frequent' | 'recent' | 'custom'); + } + + interface JumpListItem { + + // Docs: https://electronjs.org/docs/api/structures/jump-list-item + + /** + * The command line arguments when `program` is executed. Should only be set if + * `type` is `task`. + */ + args?: string; + /** + * Description of the task (displayed in a tooltip). Should only be set if `type` + * is `task`. Maximum length 260 characters. + */ + description?: string; + /** + * The index of the icon in the resource file. If a resource file contains multiple + * icons this value can be used to specify the zero-based index of the icon that + * should be displayed for this task. If a resource file contains only one icon, + * this property should be set to zero. + */ + iconIndex?: number; + /** + * The absolute path to an icon to be displayed in a Jump List, which can be an + * arbitrary resource file that contains an icon (e.g. `.ico`, `.exe`, `.dll`). You + * can usually specify `process.execPath` to show the program icon. + */ + iconPath?: string; + /** + * Path of the file to open, should only be set if `type` is `file`. + */ + path?: string; + /** + * Path of the program to execute, usually you should specify `process.execPath` + * which opens the current program. Should only be set if `type` is `task`. + */ + program?: string; + /** + * The text to be displayed for the item in the Jump List. Should only be set if + * `type` is `task`. + */ + title?: string; + /** + * One of the following: + */ + type?: ('task' | 'separator' | 'file'); + /** + * The working directory. Default is empty. + */ + workingDirectory?: string; + } + + interface KeyboardEvent { + + // Docs: https://electronjs.org/docs/api/structures/keyboard-event + + /** + * whether an Alt key was used in an accelerator to trigger the Event + */ + altKey?: boolean; + /** + * whether the Control key was used in an accelerator to trigger the Event + */ + ctrlKey?: boolean; + /** + * whether a meta key was used in an accelerator to trigger the Event + */ + metaKey?: boolean; + /** + * whether a Shift key was used in an accelerator to trigger the Event + */ + shiftKey?: boolean; + /** + * whether an accelerator was used to trigger the event as opposed to another user + * gesture like mouse click + */ + triggeredByAccelerator?: boolean; + } + + interface KeyboardInputEvent extends InputEvent { + + // Docs: https://electronjs.org/docs/api/structures/keyboard-input-event + + /** + * The character that will be sent as the keyboard event. Should only use the valid + * key codes in Accelerator. + */ + keyCode: string; + /** + * The type of the event, can be `keyDown`, `keyUp` or `char`. + */ + type: ('keyDown' | 'keyUp' | 'char'); + } + + interface MemoryInfo { + + // Docs: https://electronjs.org/docs/api/structures/memory-info + + /** + * The maximum amount of memory that has ever been pinned to actual physical RAM. + */ + peakWorkingSetSize: number; + /** + * The amount of memory not shared by other processes, such as JS heap or HTML + * content. + * + * @platform win32 + */ + privateBytes?: number; + /** + * The amount of memory currently pinned to actual physical RAM. + */ + workingSetSize: number; + } + + interface MemoryUsageDetails { + + // Docs: https://electronjs.org/docs/api/structures/memory-usage-details + + count: number; + liveSize: number; + size: number; + } + + class Menu { + + // Docs: https://electronjs.org/docs/api/menu + + /** + * Emitted when a popup is closed either manually or with `menu.closePopup()`. + */ + on(event: 'menu-will-close', listener: (event: Event) => void): this; + once(event: 'menu-will-close', listener: (event: Event) => void): this; + addListener(event: 'menu-will-close', listener: (event: Event) => void): this; + removeListener(event: 'menu-will-close', listener: (event: Event) => void): this; + /** + * Emitted when `menu.popup()` is called. + */ + on(event: 'menu-will-show', listener: (event: Event) => void): this; + once(event: 'menu-will-show', listener: (event: Event) => void): this; + addListener(event: 'menu-will-show', listener: (event: Event) => void): this; + removeListener(event: 'menu-will-show', listener: (event: Event) => void): this; + /** + * Menu + */ + constructor(); + /** + * Generally, the `template` is an array of `options` for constructing a MenuItem. + * The usage can be referenced above. + * + * You can also attach other fields to the element of the `template` and they will + * become properties of the constructed menu items. + */ + static buildFromTemplate(template: Array<(MenuItemConstructorOptions) | (MenuItem)>): Menu; + /** + * The application menu, if set, or `null`, if not set. + * + * **Note:** The returned `Menu` instance doesn't support dynamic addition or + * removal of menu items. Instance properties can still be dynamically modified. + */ + static getApplicationMenu(): (Menu) | (null); + /** + * Sends the `action` to the first responder of application. This is used for + * emulating default macOS menu behaviors. Usually you would use the `role` + * property of a `MenuItem`. + * + * See the macOS Cocoa Event Handling Guide for more information on macOS' native + * actions. + * + * @platform darwin + */ + static sendActionToFirstResponder(action: string): void; + /** + * Sets `menu` as the application menu on macOS. On Windows and Linux, the `menu` + * will be set as each window's top menu. + * + * Also on Windows and Linux, you can use a `&` in the top-level item name to + * indicate which letter should get a generated accelerator. For example, using + * `&File` for the file menu would result in a generated `Alt-F` accelerator that + * opens the associated menu. The indicated character in the button label then gets + * an underline, and the `&` character is not displayed on the button label. + * + * In order to escape the `&` character in an item name, add a proceeding `&`. For + * example, `&&File` would result in `&File` displayed on the button label. + * + * Passing `null` will suppress the default menu. On Windows and Linux, this has + * the additional effect of removing the menu bar from the window. + * + * **Note:** The default menu will be created automatically if the app does not set + * one. It contains standard items such as `File`, `Edit`, `View`, `Window` and + * `Help`. + */ + static setApplicationMenu(menu: (Menu) | (null)): void; + /** + * Appends the `menuItem` to the menu. + */ + append(menuItem: MenuItem): void; + /** + * Closes the context menu in the `browserWindow`. + */ + closePopup(browserWindow?: BrowserWindow): void; + /** + * the item with the specified `id` + */ + getMenuItemById(id: string): (MenuItem) | (null); + /** + * Inserts the `menuItem` to the `pos` position of the menu. + */ + insert(pos: number, menuItem: MenuItem): void; + /** + * Pops up this menu as a context menu in the `BrowserWindow`. + */ + popup(options?: PopupOptions): void; + items: MenuItem[]; + } + + class MenuItem { + + // Docs: https://electronjs.org/docs/api/menu-item + + /** + * MenuItem + */ + constructor(options: MenuItemConstructorOptions); + accelerator?: Accelerator; + checked: boolean; + click: Function; + commandId: number; + enabled: boolean; + icon?: (NativeImage) | (string); + id: string; + label: string; + menu: Menu; + registerAccelerator: boolean; + role?: ('undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'pasteAndMatchStyle' | 'delete' | 'selectAll' | 'reload' | 'forceReload' | 'toggleDevTools' | 'resetZoom' | 'zoomIn' | 'zoomOut' | 'togglefullscreen' | 'window' | 'minimize' | 'close' | 'help' | 'about' | 'services' | 'hide' | 'hideOthers' | 'unhide' | 'quit' | 'startSpeaking' | 'stopSpeaking' | 'zoom' | 'front' | 'appMenu' | 'fileMenu' | 'editMenu' | 'viewMenu' | 'recentDocuments' | 'toggleTabBar' | 'selectNextTab' | 'selectPreviousTab' | 'mergeAllWindows' | 'clearRecentDocuments' | 'moveTabToNewWindow' | 'windowMenu'); + sharingItem: SharingItem; + sublabel: string; + submenu?: Menu; + toolTip: string; + type: ('normal' | 'separator' | 'submenu' | 'checkbox' | 'radio'); + visible: boolean; + } + + class MessageChannelMain extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/message-channel-main + + port1: MessagePortMain; + port2: MessagePortMain; + } + + class MessagePortMain extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/message-port-main + + /** + * Emitted when the remote end of a MessagePortMain object becomes disconnected. + */ + on(event: 'close', listener: Function): this; + once(event: 'close', listener: Function): this; + addListener(event: 'close', listener: Function): this; + removeListener(event: 'close', listener: Function): this; + /** + * Emitted when a MessagePortMain object receives a message. + */ + on(event: 'message', listener: (messageEvent: MessageEvent) => void): this; + once(event: 'message', listener: (messageEvent: MessageEvent) => void): this; + addListener(event: 'message', listener: (messageEvent: MessageEvent) => void): this; + removeListener(event: 'message', listener: (messageEvent: MessageEvent) => void): this; + /** + * Disconnects the port, so it is no longer active. + */ + close(): void; + /** + * Sends a message from the port, and optionally, transfers ownership of objects to + * other browsing contexts. + */ + postMessage(message: any, transfer?: MessagePortMain[]): void; + /** + * Starts the sending of messages queued on the port. Messages will be queued until + * this method is called. + */ + start(): void; + } + + interface MimeTypedBuffer { + + // Docs: https://electronjs.org/docs/api/structures/mime-typed-buffer + + /** + * Charset of the buffer. + */ + charset?: string; + /** + * The actual Buffer content. + */ + data: Buffer; + /** + * MIME type of the buffer. + */ + mimeType?: string; + } + + interface MouseInputEvent extends InputEvent { + + // Docs: https://electronjs.org/docs/api/structures/mouse-input-event + + /** + * The button pressed, can be `left`, `middle`, `right`. + */ + button?: ('left' | 'middle' | 'right'); + clickCount?: number; + globalX?: number; + globalY?: number; + movementX?: number; + movementY?: number; + /** + * The type of the event, can be `mouseDown`, `mouseUp`, `mouseEnter`, + * `mouseLeave`, `contextMenu`, `mouseWheel` or `mouseMove`. + */ + type: ('mouseDown' | 'mouseUp' | 'mouseEnter' | 'mouseLeave' | 'contextMenu' | 'mouseWheel' | 'mouseMove'); + x: number; + y: number; + } + + interface MouseWheelInputEvent extends MouseInputEvent { + + // Docs: https://electronjs.org/docs/api/structures/mouse-wheel-input-event + + accelerationRatioX?: number; + accelerationRatioY?: number; + canScroll?: boolean; + deltaX?: number; + deltaY?: number; + hasPreciseScrollingDeltas?: boolean; + /** + * The type of the event, can be `mouseWheel`. + */ + type: ('mouseWheel'); + wheelTicksX?: number; + wheelTicksY?: number; + } + + class NativeImage { + + // Docs: https://electronjs.org/docs/api/native-image + + /** + * Creates an empty `NativeImage` instance. + */ + static createEmpty(): NativeImage; + /** + * Creates a new `NativeImage` instance from `buffer` that contains the raw bitmap + * pixel data returned by `toBitmap()`. The specific format is platform-dependent. + */ + static createFromBitmap(buffer: Buffer, options: CreateFromBitmapOptions): NativeImage; + /** + * Creates a new `NativeImage` instance from `buffer`. Tries to decode as PNG or + * JPEG first. + */ + static createFromBuffer(buffer: Buffer, options?: CreateFromBufferOptions): NativeImage; + /** + * Creates a new `NativeImage` instance from `dataURL`. + */ + static createFromDataURL(dataURL: string): NativeImage; + /** + * Creates a new `NativeImage` instance from the NSImage that maps to the given + * image name. See `System Icons` for a list of possible values. + * + * The `hslShift` is applied to the image with the following rules: + * + * * `hsl_shift[0]` (hue): The absolute hue value for the image - 0 and 1 map to 0 + * and 360 on the hue color wheel (red). + * * `hsl_shift[1]` (saturation): A saturation shift for the image, with the + * following key values: 0 = remove all color. 0.5 = leave unchanged. 1 = fully + * saturate the image. + * * `hsl_shift[2]` (lightness): A lightness shift for the image, with the + * following key values: 0 = remove all lightness (make all pixels black). 0.5 = + * leave unchanged. 1 = full lightness (make all pixels white). + * + * This means that `[-1, 0, 1]` will make the image completely white and `[-1, 1, + * 0]` will make the image completely black. + * + * In some cases, the `NSImageName` doesn't match its string representation; one + * example of this is `NSFolderImageName`, whose string representation would + * actually be `NSFolder`. Therefore, you'll need to determine the correct string + * representation for your image before passing it in. This can be done with the + * following: + * + * `echo -e '#import \nint main() { NSLog(@"%@", SYSTEM_IMAGE_NAME); + * }' | clang -otest -x objective-c -framework Cocoa - && ./test` + * +where `SYSTEM_IMAGE_NAME` should be replaced with any value from this list. + * + * @platform darwin + */ + static createFromNamedImage(imageName: string, hslShift?: number[]): NativeImage; + /** + * Creates a new `NativeImage` instance from a file located at `path`. This method + * returns an empty image if the `path` does not exist, cannot be read, or is not a + * valid image. + */ + static createFromPath(path: string): NativeImage; + /** + * fulfilled with the file's thumbnail preview image, which is a NativeImage. + * + * @platform darwin,win32 + */ + static createThumbnailFromPath(path: string, maxSize: Size): Promise; + /** + * Add an image representation for a specific scale factor. This can be used to + * explicitly add different scale factor representations to an image. This can be + * called on empty images. + */ + addRepresentation(options: AddRepresentationOptions): void; + /** + * The cropped image. + */ + crop(rect: Rectangle): NativeImage; + /** + * The image's aspect ratio. + * + * If `scaleFactor` is passed, this will return the aspect ratio corresponding to + * the image representation most closely matching the passed value. + */ + getAspectRatio(scaleFactor?: number): number; + /** + * A Buffer that contains the image's raw bitmap pixel data. + * + * The difference between `getBitmap()` and `toBitmap()` is that `getBitmap()` does + * not copy the bitmap data, so you have to use the returned Buffer immediately in + * current event loop tick; otherwise the data might be changed or destroyed. + */ + getBitmap(options?: BitmapOptions): Buffer; + /** + * A Buffer that stores C pointer to underlying native handle of the image. On + * macOS, a pointer to `NSImage` instance would be returned. + * + * Notice that the returned pointer is a weak pointer to the underlying native + * image instead of a copy, so you _must_ ensure that the associated `nativeImage` + * instance is kept around. + * + * @platform darwin + */ + getNativeHandle(): Buffer; + /** + * An array of all scale factors corresponding to representations for a given + * nativeImage. + */ + getScaleFactors(): number[]; + /** + * If `scaleFactor` is passed, this will return the size corresponding to the image + * representation most closely matching the passed value. + */ + getSize(scaleFactor?: number): Size; + /** + * Whether the image is empty. + */ + isEmpty(): boolean; + /** + * Whether the image is a template image. + */ + isTemplateImage(): boolean; + /** + * The resized image. + * + * If only the `height` or the `width` are specified then the current aspect ratio + * will be preserved in the resized image. + */ + resize(options: ResizeOptions): NativeImage; + /** + * Marks the image as a template image. + */ + setTemplateImage(option: boolean): void; + /** + * A Buffer that contains a copy of the image's raw bitmap pixel data. + */ + toBitmap(options?: ToBitmapOptions): Buffer; + /** + * The data URL of the image. + */ + toDataURL(options?: ToDataURLOptions): string; + /** + * A Buffer that contains the image's `JPEG` encoded data. + */ + toJPEG(quality: number): Buffer; + /** + * A Buffer that contains the image's `PNG` encoded data. + */ + toPNG(options?: ToPNGOptions): Buffer; + isMacTemplateImage: boolean; + } + + interface NativeTheme extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/native-theme + + /** + * Emitted when something in the underlying NativeTheme has changed. This normally + * means that either the value of `shouldUseDarkColors`, + * `shouldUseHighContrastColors` or `shouldUseInvertedColorScheme` has changed. You + * will have to check them to determine which one has changed. + */ + on(event: 'updated', listener: Function): this; + once(event: 'updated', listener: Function): this; + addListener(event: 'updated', listener: Function): this; + removeListener(event: 'updated', listener: Function): this; + /** + * A `Boolean` for if the OS / Chromium currently has a dark mode enabled or is + * being instructed to show a dark-style UI. If you want to modify this value you + * should use `themeSource` below. + * + */ + readonly shouldUseDarkColors: boolean; + /** + * A `Boolean` for if the OS / Chromium currently has high-contrast mode enabled or + * is being instructed to show a high-contrast UI. + * + * @platform darwin,win32 + */ + readonly shouldUseHighContrastColors: boolean; + /** + * A `Boolean` for if the OS / Chromium currently has an inverted color scheme or + * is being instructed to use an inverted color scheme. + * + * @platform darwin,win32 + */ + readonly shouldUseInvertedColorScheme: boolean; + /** + * A `String` property that can be `system`, `light` or `dark`. It is used to + * override and supersede the value that Chromium has chosen to use internally. + * + * Setting this property to `system` will remove the override and everything will + * be reset to the OS default. By default `themeSource` is `system`. + * + * Settings this property to `dark` will have the following effects: + * + * * `nativeTheme.shouldUseDarkColors` will be `true` when accessed + * * Any UI Electron renders on Linux and Windows including context menus, + * devtools, etc. will use the dark UI. + * * Any UI the OS renders on macOS including menus, window frames, etc. will use + * the dark UI. + * * The `prefers-color-scheme` CSS query will match `dark` mode. + * * The `updated` event will be emitted + * + * Settings this property to `light` will have the following effects: + * + * * `nativeTheme.shouldUseDarkColors` will be `false` when accessed + * * Any UI Electron renders on Linux and Windows including context menus, + * devtools, etc. will use the light UI. + * * Any UI the OS renders on macOS including menus, window frames, etc. will use + * the light UI. + * * The `prefers-color-scheme` CSS query will match `light` mode. + * * The `updated` event will be emitted + * + * The usage of this property should align with a classic "dark mode" state machine + * in your application where the user has three options. + * + * * `Follow OS` --> `themeSource = 'system'` + * * `Dark Mode` --> `themeSource = 'dark'` + * * `Light Mode` --> `themeSource = 'light'` + * + * Your application should then always use `shouldUseDarkColors` to determine what + * CSS to apply. + */ + themeSource: ('system' | 'light' | 'dark'); + } + + interface Net { + + // Docs: https://electronjs.org/docs/api/net + + /** + * Whether there is currently internet connection. + * + * A return value of `false` is a pretty strong indicator that the user won't be + * able to connect to remote sites. However, a return value of `true` is + * inconclusive; even if some link is up, it is uncertain whether a particular + * connection attempt to a particular remote site will be successful. + */ + isOnline(): boolean; + /** + * Creates a `ClientRequest` instance using the provided `options` which are + * directly forwarded to the `ClientRequest` constructor. The `net.request` method + * would be used to issue both secure and insecure HTTP requests according to the + * specified protocol scheme in the `options` object. + */ + request(options: (ClientRequestConstructorOptions) | (string)): ClientRequest; + /** + * A `Boolean` property. Whether there is currently internet connection. + * + * A return value of `false` is a pretty strong indicator that the user won't be + * able to connect to remote sites. However, a return value of `true` is + * inconclusive; even if some link is up, it is uncertain whether a particular + * connection attempt to a particular remote site will be successful. + * + */ + readonly online: boolean; + } + + interface NetLog { + + // Docs: https://electronjs.org/docs/api/net-log + + /** + * resolves when the net log has begun recording. + * +Starts recording network events to `path`. + */ + startLogging(path: string, options?: StartLoggingOptions): Promise; + /** + * resolves when the net log has been flushed to disk. + * + * Stops recording network events. If not called, net logging will automatically + * end when app quits. + */ + stopLogging(): Promise; + /** + * A `Boolean` property that indicates whether network logs are currently being + * recorded. + * + */ + readonly currentlyLogging: boolean; + } + + interface NewWindowWebContentsEvent extends Event { + + // Docs: https://electronjs.org/docs/api/structures/new-window-web-contents-event + + newGuest?: BrowserWindow; + } + + class Notification extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/notification + + on(event: 'action', listener: (event: Event, + /** + * The index of the action that was activated. + */ + index: number) => void): this; + once(event: 'action', listener: (event: Event, + /** + * The index of the action that was activated. + */ + index: number) => void): this; + addListener(event: 'action', listener: (event: Event, + /** + * The index of the action that was activated. + */ + index: number) => void): this; + removeListener(event: 'action', listener: (event: Event, + /** + * The index of the action that was activated. + */ + index: number) => void): this; + /** + * Emitted when the notification is clicked by the user. + */ + on(event: 'click', listener: (event: Event) => void): this; + once(event: 'click', listener: (event: Event) => void): this; + addListener(event: 'click', listener: (event: Event) => void): this; + removeListener(event: 'click', listener: (event: Event) => void): this; + /** + * Emitted when the notification is closed by manual intervention from the user. + * + * This event is not guaranteed to be emitted in all cases where the notification + * is closed. + */ + on(event: 'close', listener: (event: Event) => void): this; + once(event: 'close', listener: (event: Event) => void): this; + addListener(event: 'close', listener: (event: Event) => void): this; + removeListener(event: 'close', listener: (event: Event) => void): this; + /** + * Emitted when an error is encountered while creating and showing the native + * notification. + * + * @platform win32 + */ + on(event: 'failed', listener: (event: Event, + /** + * The error encountered during execution of the `show()` method. + */ + error: string) => void): this; + once(event: 'failed', listener: (event: Event, + /** + * The error encountered during execution of the `show()` method. + */ + error: string) => void): this; + addListener(event: 'failed', listener: (event: Event, + /** + * The error encountered during execution of the `show()` method. + */ + error: string) => void): this; + removeListener(event: 'failed', listener: (event: Event, + /** + * The error encountered during execution of the `show()` method. + */ + error: string) => void): this; + /** + * Emitted when the user clicks the "Reply" button on a notification with + * `hasReply: true`. + * + * @platform darwin + */ + on(event: 'reply', listener: (event: Event, + /** + * The string the user entered into the inline reply field. + */ + reply: string) => void): this; + once(event: 'reply', listener: (event: Event, + /** + * The string the user entered into the inline reply field. + */ + reply: string) => void): this; + addListener(event: 'reply', listener: (event: Event, + /** + * The string the user entered into the inline reply field. + */ + reply: string) => void): this; + removeListener(event: 'reply', listener: (event: Event, + /** + * The string the user entered into the inline reply field. + */ + reply: string) => void): this; + /** + * Emitted when the notification is shown to the user, note this could be fired + * multiple times as a notification can be shown multiple times through the + * `show()` method. + */ + on(event: 'show', listener: (event: Event) => void): this; + once(event: 'show', listener: (event: Event) => void): this; + addListener(event: 'show', listener: (event: Event) => void): this; + removeListener(event: 'show', listener: (event: Event) => void): this; + /** + * Notification + */ + constructor(options?: NotificationConstructorOptions); + /** + * Whether or not desktop notifications are supported on the current system + */ + static isSupported(): boolean; + /** + * Dismisses the notification. + */ + close(): void; + /** + * Immediately shows the notification to the user, please note this means unlike + * the HTML5 Notification implementation, instantiating a `new Notification` does + * not immediately show it to the user, you need to call this method before the OS + * will display it. + * + * If the notification has been shown before, this method will dismiss the + * previously shown notification and create a new one with identical properties. + */ + show(): void; + actions: NotificationAction[]; + body: string; + closeButtonText: string; + hasReply: boolean; + replyPlaceholder: string; + silent: boolean; + sound: string; + subtitle: string; + timeoutType: ('default' | 'never'); + title: string; + toastXml: string; + urgency: ('normal' | 'critical' | 'low'); + } + + interface NotificationAction { + + // Docs: https://electronjs.org/docs/api/structures/notification-action + + /** + * The label for the given action. + */ + text?: string; + /** + * The type of action, can be `button`. + */ + type: ('button'); + } + + interface NotificationResponse { + + // Docs: https://electronjs.org/docs/api/structures/notification-response + + /** + * The identifier string of the action that the user selected. + */ + actionIdentifier: string; + /** + * The delivery date of the notification. + */ + date: number; + /** + * The unique identifier for this notification request. + */ + identifier: string; + /** + * A dictionary of custom information associated with the notification. + */ + userInfo: Record; + /** + * The text entered or chosen by the user. + */ + userText?: string; + } + + interface Point { + + // Docs: https://electronjs.org/docs/api/structures/point + + x: number; + y: number; + } + + interface PostBody { + + // Docs: https://electronjs.org/docs/api/structures/post-body + + /** + * The boundary used to separate multiple parts of the message. Only valid when + * `contentType` is `multipart/form-data`. + */ + boundary?: string; + /** + * The `content-type` header used for the data. One of + * `application/x-www-form-urlencoded` or `multipart/form-data`. Corresponds to the + * `enctype` attribute of the submitted HTML form. + */ + contentType: string; + /** + * The post data to be sent to the new window. + */ + data: Array<(UploadRawData) | (UploadFile)>; + } + + interface PowerMonitor extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/power-monitor + + /** + * Emitted when the system is about to lock the screen. + * + * @platform darwin,win32 + */ + on(event: 'lock-screen', listener: Function): this; + once(event: 'lock-screen', listener: Function): this; + addListener(event: 'lock-screen', listener: Function): this; + removeListener(event: 'lock-screen', listener: Function): this; + /** + * Emitted when the system changes to AC power. + * + * @platform darwin,win32 + */ + on(event: 'on-ac', listener: Function): this; + once(event: 'on-ac', listener: Function): this; + addListener(event: 'on-ac', listener: Function): this; + removeListener(event: 'on-ac', listener: Function): this; + /** + * Emitted when system changes to battery power. + * + * @platform darwin + */ + on(event: 'on-battery', listener: Function): this; + once(event: 'on-battery', listener: Function): this; + addListener(event: 'on-battery', listener: Function): this; + removeListener(event: 'on-battery', listener: Function): this; + /** + * Emitted when system is resuming. + * + * @platform darwin,win32 + */ + on(event: 'resume', listener: Function): this; + once(event: 'resume', listener: Function): this; + addListener(event: 'resume', listener: Function): this; + removeListener(event: 'resume', listener: Function): this; + /** + * Emitted when the system is about to reboot or shut down. If the event handler + * invokes `e.preventDefault()`, Electron will attempt to delay system shutdown in + * order for the app to exit cleanly. If `e.preventDefault()` is called, the app + * should exit as soon as possible by calling something like `app.quit()`. + * + * @platform linux,darwin + */ + on(event: 'shutdown', listener: Function): this; + once(event: 'shutdown', listener: Function): this; + addListener(event: 'shutdown', listener: Function): this; + removeListener(event: 'shutdown', listener: Function): this; + /** + * Emitted when the system is suspending. + * + * @platform darwin,win32 + */ + on(event: 'suspend', listener: Function): this; + once(event: 'suspend', listener: Function): this; + addListener(event: 'suspend', listener: Function): this; + removeListener(event: 'suspend', listener: Function): this; + /** + * Emitted as soon as the systems screen is unlocked. + * + * @platform darwin,win32 + */ + on(event: 'unlock-screen', listener: Function): this; + once(event: 'unlock-screen', listener: Function): this; + addListener(event: 'unlock-screen', listener: Function): this; + removeListener(event: 'unlock-screen', listener: Function): this; + /** + * Emitted when a login session is activated. See documentation for more + * information. + * + * @platform darwin + */ + on(event: 'user-did-become-active', listener: Function): this; + once(event: 'user-did-become-active', listener: Function): this; + addListener(event: 'user-did-become-active', listener: Function): this; + removeListener(event: 'user-did-become-active', listener: Function): this; + /** + * Emitted when a login session is deactivated. See documentation for more + * information. + * + * @platform darwin + */ + on(event: 'user-did-resign-active', listener: Function): this; + once(event: 'user-did-resign-active', listener: Function): this; + addListener(event: 'user-did-resign-active', listener: Function): this; + removeListener(event: 'user-did-resign-active', listener: Function): this; + /** + * The system's current state. Can be `active`, `idle`, `locked` or `unknown`. + * + * Calculate the system idle state. `idleThreshold` is the amount of time (in + * seconds) before considered idle. `locked` is available on supported systems + * only. + */ + getSystemIdleState(idleThreshold: number): ('active' | 'idle' | 'locked' | 'unknown'); + /** + * Idle time in seconds + +Calculate system idle time in seconds. + */ + getSystemIdleTime(): number; + /** + * Whether the system is on battery power. + * + * To monitor for changes in this property, use the `on-battery` and `on-ac` + * events. + */ + isOnBatteryPower(): boolean; + /** + * A `Boolean` property. True if the system is on battery power. + * +See `powerMonitor.isOnBatteryPower()`. + */ + onBatteryPower: boolean; + } + + interface PowerSaveBlocker { + + // Docs: https://electronjs.org/docs/api/power-save-blocker + + /** + * Whether the corresponding `powerSaveBlocker` has started. + */ + isStarted(id: number): boolean; + /** + * The blocker ID that is assigned to this power blocker. + * + * Starts preventing the system from entering lower-power mode. Returns an integer + * identifying the power save blocker. + * + * **Note:** `prevent-display-sleep` has higher precedence over + * `prevent-app-suspension`. Only the highest precedence type takes effect. In + * other words, `prevent-display-sleep` always takes precedence over + * `prevent-app-suspension`. + * + * For example, an API calling A requests for `prevent-app-suspension`, and another + * calling B requests for `prevent-display-sleep`. `prevent-display-sleep` will be + * used until B stops its request. After that, `prevent-app-suspension` is used. + */ + start(type: 'prevent-app-suspension' | 'prevent-display-sleep'): number; + /** + * Stops the specified power save blocker. + */ + stop(id: number): void; + } + + interface PrinterInfo { + + // Docs: https://electronjs.org/docs/api/structures/printer-info + + /** + * a longer description of the printer's type. + */ + description: string; + /** + * the name of the printer as shown in Print Preview. + */ + displayName: string; + /** + * whether or not a given printer is set as the default printer on the OS. + */ + isDefault: boolean; + /** + * the name of the printer as understood by the OS. + */ + name: string; + /** + * an object containing a variable number of platform-specific printer information. + */ + options: Options; + /** + * the current status of the printer. + */ + status: number; + } + + interface ProcessMemoryInfo { + + // Docs: https://electronjs.org/docs/api/structures/process-memory-info + + /** + * The amount of memory not shared by other processes, such as JS heap or HTML + * content in Kilobytes. + */ + private: number; + /** + * The amount of memory currently pinned to actual physical RAM in Kilobytes. + * + * @platform linux,win32 + */ + residentSet: number; + /** + * The amount of memory shared between processes, typically memory consumed by the + * Electron code itself in Kilobytes. + */ + shared: number; + } + + interface ProcessMetric { + + // Docs: https://electronjs.org/docs/api/structures/process-metric + + /** + * CPU usage of the process. + */ + cpu: CPUUsage; + /** + * Creation time for this process. The time is represented as number of + * milliseconds since epoch. Since the `pid` can be reused after a process dies, it + * is useful to use both the `pid` and the `creationTime` to uniquely identify a + * process. + */ + creationTime: number; + /** + * One of the following values: + * + * @platform win32 + */ + integrityLevel?: ('untrusted' | 'low' | 'medium' | 'high' | 'unknown'); + /** + * Memory information for the process. + */ + memory: MemoryInfo; + /** + * The name of the process. Examples for utility: `Audio Service`, `Content + * Decryption Module Service`, `Network Service`, `Video Capture`, etc. + */ + name?: string; + /** + * Process id of the process. + */ + pid: number; + /** + * Whether the process is sandboxed on OS level. + * + * @platform darwin,win32 + */ + sandboxed?: boolean; + /** + * The non-localized name of the process. + */ + serviceName?: string; + /** + * Process type. One of the following values: + */ + type: ('Browser' | 'Tab' | 'Utility' | 'Zygote' | 'Sandbox helper' | 'GPU' | 'Pepper Plugin' | 'Pepper Plugin Broker' | 'Unknown'); + } + + interface Product { + + // Docs: https://electronjs.org/docs/api/structures/product + + /** + * The total size of the content, in bytes. + */ + contentLengths: number[]; + /** + * A string that identifies the version of the content. + */ + contentVersion: string; + /** + * 3 character code presenting a product's currency based on the ISO 4217 standard. + */ + currencyCode: string; + /** + * The locale formatted price of the product. + */ + formattedPrice: string; + /** + * A Boolean value that indicates whether the App Store has downloadable content + * for this product. `true` if at least one file has been associated with the + * product. + */ + isDownloadable: boolean; + /** + * A description of the product. + */ + localizedDescription: string; + /** + * The name of the product. + */ + localizedTitle: string; + /** + * The cost of the product in the local currency. + */ + price: number; + /** + * The string that identifies the product to the Apple App Store. + */ + productIdentifier: string; + } + + interface Protocol { + + // Docs: https://electronjs.org/docs/api/protocol + + /** + * Whether the protocol was successfully intercepted + * + * Intercepts `scheme` protocol and uses `handler` as the protocol's new handler + * which sends a `Buffer` as a response. + */ + interceptBufferProtocol(scheme: string, handler: (request: ProtocolRequest, callback: (response: (Buffer) | (ProtocolResponse)) => void) => void): boolean; + /** + * Whether the protocol was successfully intercepted + * + * Intercepts `scheme` protocol and uses `handler` as the protocol's new handler + * which sends a file as a response. + */ + interceptFileProtocol(scheme: string, handler: (request: ProtocolRequest, callback: (response: (string) | (ProtocolResponse)) => void) => void): boolean; + /** + * Whether the protocol was successfully intercepted + * + * Intercepts `scheme` protocol and uses `handler` as the protocol's new handler + * which sends a new HTTP request as a response. + */ + interceptHttpProtocol(scheme: string, handler: (request: ProtocolRequest, callback: (response: ProtocolResponse) => void) => void): boolean; + /** + * Whether the protocol was successfully intercepted + * + * Same as `protocol.registerStreamProtocol`, except that it replaces an existing + * protocol handler. + */ + interceptStreamProtocol(scheme: string, handler: (request: ProtocolRequest, callback: (response: (NodeJS.ReadableStream) | (ProtocolResponse)) => void) => void): boolean; + /** + * Whether the protocol was successfully intercepted + * + * Intercepts `scheme` protocol and uses `handler` as the protocol's new handler + * which sends a `String` as a response. + */ + interceptStringProtocol(scheme: string, handler: (request: ProtocolRequest, callback: (response: (string) | (ProtocolResponse)) => void) => void): boolean; + /** + * Whether `scheme` is already intercepted. + */ + isProtocolIntercepted(scheme: string): boolean; + /** + * Whether `scheme` is already registered. + */ + isProtocolRegistered(scheme: string): boolean; + /** + * Whether the protocol was successfully registered + * + * Registers a protocol of `scheme` that will send a `Buffer` as a response. + * + * The usage is the same with `registerFileProtocol`, except that the `callback` + * should be called with either a `Buffer` object or an object that has the `data` + * property. + +Example: + */ + registerBufferProtocol(scheme: string, handler: (request: ProtocolRequest, callback: (response: (Buffer) | (ProtocolResponse)) => void) => void): boolean; + /** + * Whether the protocol was successfully registered + * + * Registers a protocol of `scheme` that will send a file as the response. The + * `handler` will be called with `request` and `callback` where `request` is an + * incoming request for the `scheme`. + * + * To handle the `request`, the `callback` should be called with either the file's + * path or an object that has a `path` property, e.g. `callback(filePath)` or + * `callback({ path: filePath })`. The `filePath` must be an absolute path. + * + * By default the `scheme` is treated like `http:`, which is parsed differently + * from protocols that follow the "generic URI syntax" like `file:`. + */ + registerFileProtocol(scheme: string, handler: (request: ProtocolRequest, callback: (response: (string) | (ProtocolResponse)) => void) => void): boolean; + /** + * Whether the protocol was successfully registered + * + * Registers a protocol of `scheme` that will send an HTTP request as a response. + * + * The usage is the same with `registerFileProtocol`, except that the `callback` + * should be called with an object that has the `url` property. + */ + registerHttpProtocol(scheme: string, handler: (request: ProtocolRequest, callback: (response: ProtocolResponse) => void) => void): boolean; + /** + * **Note:** This method can only be used before the `ready` event of the `app` + * module gets emitted and can be called only once. + * + * Registers the `scheme` as standard, secure, bypasses content security policy for + * resources, allows registering ServiceWorker, supports fetch API, and streaming + * video/audio. Specify a privilege with the value of `true` to enable the + * capability. + * + * An example of registering a privileged scheme, that bypasses Content Security + * Policy: + * + * A standard scheme adheres to what RFC 3986 calls generic URI syntax. For example + * `http` and `https` are standard schemes, while `file` is not. + * + * Registering a scheme as standard allows relative and absolute resources to be + * resolved correctly when served. Otherwise the scheme will behave like the `file` + * protocol, but without the ability to resolve relative URLs. + * + * For example when you load following page with custom protocol without + * registering it as standard scheme, the image will not be loaded because + * non-standard schemes can not recognize relative URLs: + * + * Registering a scheme as standard will allow access to files through the + * FileSystem API. Otherwise the renderer will throw a security error for the + * scheme. + * + * By default web storage apis (localStorage, sessionStorage, webSQL, indexedDB, + * cookies) are disabled for non standard schemes. So in general if you want to + * register a custom protocol to replace the `http` protocol, you have to register + * it as a standard scheme. + * + * Protocols that use streams (http and stream protocols) should set `stream: + * true`. The ``. + * + * By default a new `BrowserWindow` will be created for the `url`. + * + * Calling `event.preventDefault()` will prevent Electron from automatically + * creating a new `BrowserWindow`. If you call `event.preventDefault()` and + * manually create a new `BrowserWindow` then you must set `event.newGuest` to + * reference the new `BrowserWindow` instance, failing to do so may result in + * unexpected behavior. For example: + * + * @deprecated + */ + on(event: 'new-window', listener: (event: NewWindowWebContentsEvent, + url: string, + frameName: string, + /** + * Can be `default`, `foreground-tab`, `background-tab`, `new-window`, + * `save-to-disk` and `other`. + */ + disposition: ('default' | 'foreground-tab' | 'background-tab' | 'new-window' | 'save-to-disk' | 'other'), + /** + * The options which will be used for creating the new `BrowserWindow`. + */ + options: BrowserWindowConstructorOptions, + /** + * The non-standard features (features not handled by Chromium or Electron) given + * to `window.open()`. + */ + additionalFeatures: string[], + /** + * The referrer that will be passed to the new window. May or may not result in the + * `Referer` header being sent, depending on the referrer policy. + */ + referrer: Referrer, + /** + * The post data that will be sent to the new window, along with the appropriate + * headers that will be set. If no post data is to be sent, the value will be + * `null`. Only defined when the window is being created by a form that set + * `target=_blank`. + */ + postBody: PostBody) => void): this; + once(event: 'new-window', listener: (event: NewWindowWebContentsEvent, + url: string, + frameName: string, + /** + * Can be `default`, `foreground-tab`, `background-tab`, `new-window`, + * `save-to-disk` and `other`. + */ + disposition: ('default' | 'foreground-tab' | 'background-tab' | 'new-window' | 'save-to-disk' | 'other'), + /** + * The options which will be used for creating the new `BrowserWindow`. + */ + options: BrowserWindowConstructorOptions, + /** + * The non-standard features (features not handled by Chromium or Electron) given + * to `window.open()`. + */ + additionalFeatures: string[], + /** + * The referrer that will be passed to the new window. May or may not result in the + * `Referer` header being sent, depending on the referrer policy. + */ + referrer: Referrer, + /** + * The post data that will be sent to the new window, along with the appropriate + * headers that will be set. If no post data is to be sent, the value will be + * `null`. Only defined when the window is being created by a form that set + * `target=_blank`. + */ + postBody: PostBody) => void): this; + addListener(event: 'new-window', listener: (event: NewWindowWebContentsEvent, + url: string, + frameName: string, + /** + * Can be `default`, `foreground-tab`, `background-tab`, `new-window`, + * `save-to-disk` and `other`. + */ + disposition: ('default' | 'foreground-tab' | 'background-tab' | 'new-window' | 'save-to-disk' | 'other'), + /** + * The options which will be used for creating the new `BrowserWindow`. + */ + options: BrowserWindowConstructorOptions, + /** + * The non-standard features (features not handled by Chromium or Electron) given + * to `window.open()`. + */ + additionalFeatures: string[], + /** + * The referrer that will be passed to the new window. May or may not result in the + * `Referer` header being sent, depending on the referrer policy. + */ + referrer: Referrer, + /** + * The post data that will be sent to the new window, along with the appropriate + * headers that will be set. If no post data is to be sent, the value will be + * `null`. Only defined when the window is being created by a form that set + * `target=_blank`. + */ + postBody: PostBody) => void): this; + removeListener(event: 'new-window', listener: (event: NewWindowWebContentsEvent, + url: string, + frameName: string, + /** + * Can be `default`, `foreground-tab`, `background-tab`, `new-window`, + * `save-to-disk` and `other`. + */ + disposition: ('default' | 'foreground-tab' | 'background-tab' | 'new-window' | 'save-to-disk' | 'other'), + /** + * The options which will be used for creating the new `BrowserWindow`. + */ + options: BrowserWindowConstructorOptions, + /** + * The non-standard features (features not handled by Chromium or Electron) given + * to `window.open()`. + */ + additionalFeatures: string[], + /** + * The referrer that will be passed to the new window. May or may not result in the + * `Referer` header being sent, depending on the referrer policy. + */ + referrer: Referrer, + /** + * The post data that will be sent to the new window, along with the appropriate + * headers that will be set. If no post data is to be sent, the value will be + * `null`. Only defined when the window is being created by a form that set + * `target=_blank`. + */ + postBody: PostBody) => void): this; + /** + * Emitted when page receives favicon urls. + */ + on(event: 'page-favicon-updated', listener: (event: Event, + /** + * Array of URLs. + */ + favicons: string[]) => void): this; + once(event: 'page-favicon-updated', listener: (event: Event, + /** + * Array of URLs. + */ + favicons: string[]) => void): this; + addListener(event: 'page-favicon-updated', listener: (event: Event, + /** + * Array of URLs. + */ + favicons: string[]) => void): this; + removeListener(event: 'page-favicon-updated', listener: (event: Event, + /** + * Array of URLs. + */ + favicons: string[]) => void): this; + /** + * Fired when page title is set during navigation. `explicitSet` is false when + * title is synthesized from file url. + */ + on(event: 'page-title-updated', listener: (event: Event, + title: string, + explicitSet: boolean) => void): this; + once(event: 'page-title-updated', listener: (event: Event, + title: string, + explicitSet: boolean) => void): this; + addListener(event: 'page-title-updated', listener: (event: Event, + title: string, + explicitSet: boolean) => void): this; + removeListener(event: 'page-title-updated', listener: (event: Event, + title: string, + explicitSet: boolean) => void): this; + /** + * Emitted when a new frame is generated. Only the dirty area is passed in the + * buffer. + */ + on(event: 'paint', listener: (event: Event, + dirtyRect: Rectangle, + /** + * The image data of the whole frame. + */ + image: NativeImage) => void): this; + once(event: 'paint', listener: (event: Event, + dirtyRect: Rectangle, + /** + * The image data of the whole frame. + */ + image: NativeImage) => void): this; + addListener(event: 'paint', listener: (event: Event, + dirtyRect: Rectangle, + /** + * The image data of the whole frame. + */ + image: NativeImage) => void): this; + removeListener(event: 'paint', listener: (event: Event, + dirtyRect: Rectangle, + /** + * The image data of the whole frame. + */ + image: NativeImage) => void): this; + /** + * Emitted when a plugin process has crashed. + */ + on(event: 'plugin-crashed', listener: (event: Event, + name: string, + version: string) => void): this; + once(event: 'plugin-crashed', listener: (event: Event, + name: string, + version: string) => void): this; + addListener(event: 'plugin-crashed', listener: (event: Event, + name: string, + version: string) => void): this; + removeListener(event: 'plugin-crashed', listener: (event: Event, + name: string, + version: string) => void): this; + /** + * Emitted when the `WebContents` preferred size has changed. + * + * This event will only be emitted when `enablePreferredSizeMode` is set to `true` + * in `webPreferences`. + */ + on(event: 'preferred-size-changed', listener: (event: Event, + /** + * The minimum size needed to contain the layout of the document—without requiring + * scrolling. + */ + preferredSize: Size) => void): this; + once(event: 'preferred-size-changed', listener: (event: Event, + /** + * The minimum size needed to contain the layout of the document—without requiring + * scrolling. + */ + preferredSize: Size) => void): this; + addListener(event: 'preferred-size-changed', listener: (event: Event, + /** + * The minimum size needed to contain the layout of the document—without requiring + * scrolling. + */ + preferredSize: Size) => void): this; + removeListener(event: 'preferred-size-changed', listener: (event: Event, + /** + * The minimum size needed to contain the layout of the document—without requiring + * scrolling. + */ + preferredSize: Size) => void): this; + /** + * Emitted when the preload script `preloadPath` throws an unhandled exception + * `error`. + */ + on(event: 'preload-error', listener: (event: Event, + preloadPath: string, + error: Error) => void): this; + once(event: 'preload-error', listener: (event: Event, + preloadPath: string, + error: Error) => void): this; + addListener(event: 'preload-error', listener: (event: Event, + preloadPath: string, + error: Error) => void): this; + removeListener(event: 'preload-error', listener: (event: Event, + preloadPath: string, + error: Error) => void): this; + /** + * Emitted when `remote.getBuiltin()` is called in the renderer process. Calling + * `event.preventDefault()` will prevent the module from being returned. Custom + * value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-get-builtin', listener: (event: IpcMainEvent, + moduleName: string) => void): this; + once(event: 'remote-get-builtin', listener: (event: IpcMainEvent, + moduleName: string) => void): this; + addListener(event: 'remote-get-builtin', listener: (event: IpcMainEvent, + moduleName: string) => void): this; + removeListener(event: 'remote-get-builtin', listener: (event: IpcMainEvent, + moduleName: string) => void): this; + /** + * Emitted when `remote.getCurrentWebContents()` is called in the renderer process. + * Calling `event.preventDefault()` will prevent the object from being returned. + * Custom value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-get-current-web-contents', listener: (event: IpcMainEvent) => void): this; + once(event: 'remote-get-current-web-contents', listener: (event: IpcMainEvent) => void): this; + addListener(event: 'remote-get-current-web-contents', listener: (event: IpcMainEvent) => void): this; + removeListener(event: 'remote-get-current-web-contents', listener: (event: IpcMainEvent) => void): this; + /** + * Emitted when `remote.getCurrentWindow()` is called in the renderer process. + * Calling `event.preventDefault()` will prevent the object from being returned. + * Custom value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-get-current-window', listener: (event: IpcMainEvent) => void): this; + once(event: 'remote-get-current-window', listener: (event: IpcMainEvent) => void): this; + addListener(event: 'remote-get-current-window', listener: (event: IpcMainEvent) => void): this; + removeListener(event: 'remote-get-current-window', listener: (event: IpcMainEvent) => void): this; + /** + * Emitted when `remote.getGlobal()` is called in the renderer process. Calling + * `event.preventDefault()` will prevent the global from being returned. Custom + * value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-get-global', listener: (event: IpcMainEvent, + globalName: string) => void): this; + once(event: 'remote-get-global', listener: (event: IpcMainEvent, + globalName: string) => void): this; + addListener(event: 'remote-get-global', listener: (event: IpcMainEvent, + globalName: string) => void): this; + removeListener(event: 'remote-get-global', listener: (event: IpcMainEvent, + globalName: string) => void): this; + /** + * Emitted when `remote.require()` is called in the renderer process. Calling + * `event.preventDefault()` will prevent the module from being returned. Custom + * value can be returned by setting `event.returnValue`. + * + * @deprecated + */ + on(event: 'remote-require', listener: (event: IpcMainEvent, + moduleName: string) => void): this; + once(event: 'remote-require', listener: (event: IpcMainEvent, + moduleName: string) => void): this; + addListener(event: 'remote-require', listener: (event: IpcMainEvent, + moduleName: string) => void): this; + removeListener(event: 'remote-require', listener: (event: IpcMainEvent, + moduleName: string) => void): this; + /** + * Emitted when the renderer process unexpectedly disappears. This is normally + * because it was crashed or killed. + */ + on(event: 'render-process-gone', listener: (event: Event, + details: RenderProcessGoneDetails) => void): this; + once(event: 'render-process-gone', listener: (event: Event, + details: RenderProcessGoneDetails) => void): this; + addListener(event: 'render-process-gone', listener: (event: Event, + details: RenderProcessGoneDetails) => void): this; + removeListener(event: 'render-process-gone', listener: (event: Event, + details: RenderProcessGoneDetails) => void): this; + /** + * Emitted when the unresponsive web page becomes responsive again. + */ + on(event: 'responsive', listener: Function): this; + once(event: 'responsive', listener: Function): this; + addListener(event: 'responsive', listener: Function): this; + removeListener(event: 'responsive', listener: Function): this; + /** + * Emitted when bluetooth device needs to be selected on call to + * `navigator.bluetooth.requestDevice`. To use `navigator.bluetooth` api + * `webBluetooth` should be enabled. If `event.preventDefault` is not called, first + * available device will be selected. `callback` should be called with `deviceId` + * to be selected, passing empty string to `callback` will cancel the request. + */ + on(event: 'select-bluetooth-device', listener: (event: Event, + devices: BluetoothDevice[], + callback: (deviceId: string) => void) => void): this; + once(event: 'select-bluetooth-device', listener: (event: Event, + devices: BluetoothDevice[], + callback: (deviceId: string) => void) => void): this; + addListener(event: 'select-bluetooth-device', listener: (event: Event, + devices: BluetoothDevice[], + callback: (deviceId: string) => void) => void): this; + removeListener(event: 'select-bluetooth-device', listener: (event: Event, + devices: BluetoothDevice[], + callback: (deviceId: string) => void) => void): this; + /** + * Emitted when a client certificate is requested. + * +The usage is the same with the `select-client-certificate` event of `app`. + */ + on(event: 'select-client-certificate', listener: (event: Event, + url: string, + certificateList: Certificate[], + callback: (certificate: Certificate) => void) => void): this; + once(event: 'select-client-certificate', listener: (event: Event, + url: string, + certificateList: Certificate[], + callback: (certificate: Certificate) => void) => void): this; + addListener(event: 'select-client-certificate', listener: (event: Event, + url: string, + certificateList: Certificate[], + callback: (certificate: Certificate) => void) => void): this; + removeListener(event: 'select-client-certificate', listener: (event: Event, + url: string, + certificateList: Certificate[], + callback: (certificate: Certificate) => void) => void): this; + /** + * Emitted when the web page becomes unresponsive. + */ + on(event: 'unresponsive', listener: Function): this; + once(event: 'unresponsive', listener: Function): this; + addListener(event: 'unresponsive', listener: Function): this; + removeListener(event: 'unresponsive', listener: Function): this; + /** + * Emitted when mouse moves over a link or the keyboard moves the focus to a link. + */ + on(event: 'update-target-url', listener: (event: Event, + url: string) => void): this; + once(event: 'update-target-url', listener: (event: Event, + url: string) => void): this; + addListener(event: 'update-target-url', listener: (event: Event, + url: string) => void): this; + removeListener(event: 'update-target-url', listener: (event: Event, + url: string) => void): this; + /** + * Emitted when a ``'s web contents is being attached to this web + * contents. Calling `event.preventDefault()` will destroy the guest page. + * + * This event can be used to configure `webPreferences` for the `webContents` of a + * `` before it's loaded, and provides the ability to set settings that + * can't be set via `` attributes. + * + * **Note:** The specified `preload` script option will appear as `preloadURL` (not + * `preload`) in the `webPreferences` object emitted with this event. + */ + on(event: 'will-attach-webview', listener: (event: Event, + /** + * The web preferences that will be used by the guest page. This object can be + * modified to adjust the preferences for the guest page. + */ + webPreferences: WebPreferences, + /** + * The other `` parameters such as the `src` URL. This object can be + * modified to adjust the parameters of the guest page. + */ + params: Record) => void): this; + once(event: 'will-attach-webview', listener: (event: Event, + /** + * The web preferences that will be used by the guest page. This object can be + * modified to adjust the preferences for the guest page. + */ + webPreferences: WebPreferences, + /** + * The other `` parameters such as the `src` URL. This object can be + * modified to adjust the parameters of the guest page. + */ + params: Record) => void): this; + addListener(event: 'will-attach-webview', listener: (event: Event, + /** + * The web preferences that will be used by the guest page. This object can be + * modified to adjust the preferences for the guest page. + */ + webPreferences: WebPreferences, + /** + * The other `` parameters such as the `src` URL. This object can be + * modified to adjust the parameters of the guest page. + */ + params: Record) => void): this; + removeListener(event: 'will-attach-webview', listener: (event: Event, + /** + * The web preferences that will be used by the guest page. This object can be + * modified to adjust the preferences for the guest page. + */ + webPreferences: WebPreferences, + /** + * The other `` parameters such as the `src` URL. This object can be + * modified to adjust the parameters of the guest page. + */ + params: Record) => void): this; + /** + * Emitted when a user or the page wants to start navigation. It can happen when + * the `window.location` object is changed or a user clicks a link in the page. + * + * This event will not emit when the navigation is started programmatically with + * APIs like `webContents.loadURL` and `webContents.back`. + * + * It is also not emitted for in-page navigations, such as clicking anchor links or + * updating the `window.location.hash`. Use `did-navigate-in-page` event for this + * purpose. + +Calling `event.preventDefault()` will prevent the navigation. + */ + on(event: 'will-navigate', listener: (event: Event, + url: string) => void): this; + once(event: 'will-navigate', listener: (event: Event, + url: string) => void): this; + addListener(event: 'will-navigate', listener: (event: Event, + url: string) => void): this; + removeListener(event: 'will-navigate', listener: (event: Event, + url: string) => void): this; + /** + * Emitted when a `beforeunload` event handler is attempting to cancel a page + * unload. + * + * Calling `event.preventDefault()` will ignore the `beforeunload` event handler + * and allow the page to be unloaded. + */ + on(event: 'will-prevent-unload', listener: (event: Event) => void): this; + once(event: 'will-prevent-unload', listener: (event: Event) => void): this; + addListener(event: 'will-prevent-unload', listener: (event: Event) => void): this; + removeListener(event: 'will-prevent-unload', listener: (event: Event) => void): this; + /** + * Emitted as a server side redirect occurs during navigation. For example a 302 + * redirect. + * + * This event will be emitted after `did-start-navigation` and always before the + * `did-redirect-navigation` event for the same navigation. + * + * Calling `event.preventDefault()` will prevent the navigation (not just the + * redirect). + */ + on(event: 'will-redirect', listener: (event: Event, + url: string, + isInPlace: boolean, + isMainFrame: boolean, + frameProcessId: number, + frameRoutingId: number) => void): this; + once(event: 'will-redirect', listener: (event: Event, + url: string, + isInPlace: boolean, + isMainFrame: boolean, + frameProcessId: number, + frameRoutingId: number) => void): this; + addListener(event: 'will-redirect', listener: (event: Event, + url: string, + isInPlace: boolean, + isMainFrame: boolean, + frameProcessId: number, + frameRoutingId: number) => void): this; + removeListener(event: 'will-redirect', listener: (event: Event, + url: string, + isInPlace: boolean, + isMainFrame: boolean, + frameProcessId: number, + frameRoutingId: number) => void): this; + /** + * Emitted when the user is requesting to change the zoom level using the mouse + * wheel. + */ + on(event: 'zoom-changed', listener: (event: Event, + /** + * Can be `in` or `out`. + */ + zoomDirection: ('in' | 'out')) => void): this; + once(event: 'zoom-changed', listener: (event: Event, + /** + * Can be `in` or `out`. + */ + zoomDirection: ('in' | 'out')) => void): this; + addListener(event: 'zoom-changed', listener: (event: Event, + /** + * Can be `in` or `out`. + */ + zoomDirection: ('in' | 'out')) => void): this; + removeListener(event: 'zoom-changed', listener: (event: Event, + /** + * Can be `in` or `out`. + */ + zoomDirection: ('in' | 'out')) => void): this; + /** + * Adds the specified path to DevTools workspace. Must be used after DevTools + * creation: + */ + addWorkSpace(path: string): void; + /** + * Begin subscribing for presentation events and captured frames, the `callback` + * will be called with `callback(image, dirtyRect)` when there is a presentation + * event. + * + * The `image` is an instance of NativeImage that stores the captured frame. + * + * The `dirtyRect` is an object with `x, y, width, height` properties that + * describes which part of the page was repainted. If `onlyDirty` is set to `true`, + * `image` will only contain the repainted area. `onlyDirty` defaults to `false`. + */ + beginFrameSubscription(onlyDirty: boolean, callback: (image: NativeImage, dirtyRect: Rectangle) => void): void; + /** + * Begin subscribing for presentation events and captured frames, the `callback` + * will be called with `callback(image, dirtyRect)` when there is a presentation + * event. + * + * The `image` is an instance of NativeImage that stores the captured frame. + * + * The `dirtyRect` is an object with `x, y, width, height` properties that + * describes which part of the page was repainted. If `onlyDirty` is set to `true`, + * `image` will only contain the repainted area. `onlyDirty` defaults to `false`. + */ + beginFrameSubscription(callback: (image: NativeImage, dirtyRect: Rectangle) => void): void; + /** + * Whether the browser can go back to previous web page. + */ + canGoBack(): boolean; + /** + * Whether the browser can go forward to next web page. + */ + canGoForward(): boolean; + /** + * Whether the web page can go to `offset`. + */ + canGoToOffset(offset: number): boolean; + /** + * Resolves with a NativeImage + * + * Captures a snapshot of the page within `rect`. Omitting `rect` will capture the + * whole visible page. + */ + capturePage(rect?: Rectangle): Promise; + /** + * Clears the navigation history. + */ + clearHistory(): void; + /** + * Closes the devtools. + */ + closeDevTools(): void; + /** + * Executes the editing command `copy` in web page. + */ + copy(): void; + /** + * Copy the image at the given position to the clipboard. + */ + copyImageAt(x: number, y: number): void; + /** + * Executes the editing command `cut` in web page. + */ + cut(): void; + /** + * Decrease the capturer count by one. The page will be set to hidden or occluded + * state when its browser window is hidden or occluded and the capturer count + * reaches zero. If you want to decrease the hidden capturer count instead you + * should set `stayHidden` to true. + */ + decrementCapturerCount(stayHidden?: boolean, stayAwake?: boolean): void; + /** + * Executes the editing command `delete` in web page. + */ + delete(): void; + /** + * Disable device emulation enabled by `webContents.enableDeviceEmulation`. + */ + disableDeviceEmulation(): void; + /** + * Initiates a download of the resource at `url` without navigating. The + * `will-download` event of `session` will be triggered. + */ + downloadURL(url: string): void; + /** + * Enable device emulation with the given parameters. + */ + enableDeviceEmulation(parameters: Parameters): void; + /** + * End subscribing for frame presentation events. + */ + endFrameSubscription(): void; + /** + * A promise that resolves with the result of the executed code or is rejected if + * the result of the code is a rejected promise. + * + * Evaluates `code` in page. + * + * In the browser window some HTML APIs like `requestFullScreen` can only be + * invoked by a gesture from the user. Setting `userGesture` to `true` will remove + * this limitation. + +Code execution will be suspended until web page stop loading. + */ + executeJavaScript(code: string, userGesture?: boolean): Promise; + /** + * A promise that resolves with the result of the executed code or is rejected if + * the result of the code is a rejected promise. + * +Works like `executeJavaScript` but evaluates `scripts` in an isolated context. + */ + executeJavaScriptInIsolatedWorld(worldId: number, scripts: WebSource[], userGesture?: boolean): Promise; + /** + * The request id used for the request. + * + * Starts a request to find all matches for the `text` in the web page. The result + * of the request can be obtained by subscribing to `found-in-page` event. + */ + findInPage(text: string, options?: FindInPageOptions): number; + /** + * Focuses the web page. + */ + focus(): void; + /** + * Forcefully terminates the renderer process that is currently hosting this + * `webContents`. This will cause the `render-process-gone` event to be emitted + * with the `reason=killed || reason=crashed`. Please note that some webContents + * share renderer processes and therefore calling this method may also crash the + * host process for other webContents as well. + * + * Calling `reload()` immediately after calling this method will force the reload + * to occur in a new process. This should be used when this process is unstable or + * unusable, for instance in order to recover from the `unresponsive` event. + */ + forcefullyCrashRenderer(): void; + /** + * Information about all Shared Workers. + */ + getAllSharedWorkers(): SharedWorkerInfo[]; + /** + * whether or not this WebContents will throttle animations and timers when the + * page becomes backgrounded. This also affects the Page Visibility API. + */ + getBackgroundThrottling(): boolean; + /** + * If *offscreen rendering* is enabled returns the current frame rate. + */ + getFrameRate(): number; + /** + * The operating system `pid` of the associated renderer process. + */ + getOSProcessId(): number; + /** + * Get the system printer list. + */ + getPrinters(): PrinterInfo[]; + /** + * The Chromium internal `pid` of the associated renderer. Can be compared to the + * `frameProcessId` passed by frame specific navigation events (e.g. + * `did-frame-navigate`) + */ + getProcessId(): number; + /** + * The title of the current web page. + */ + getTitle(): string; + /** + * the type of the webContent. Can be `backgroundPage`, `window`, `browserView`, + * `remote`, `webview` or `offscreen`. + */ + getType(): ('backgroundPage' | 'window' | 'browserView' | 'remote' | 'webview' | 'offscreen'); + /** + * The URL of the current web page. + */ + getURL(): string; + /** + * The user agent for this web page. + */ + getUserAgent(): string; + /** + * Returns the WebRTC IP Handling Policy. + */ + getWebRTCIPHandlingPolicy(): string; + /** + * the current zoom factor. + */ + getZoomFactor(): number; + /** + * the current zoom level. + */ + getZoomLevel(): number; + /** + * Makes the browser go back a web page. + */ + goBack(): void; + /** + * Makes the browser go forward a web page. + */ + goForward(): void; + /** + * Navigates browser to the specified absolute web page index. + */ + goToIndex(index: number): void; + /** + * Navigates to the specified offset from the "current entry". + */ + goToOffset(offset: number): void; + /** + * Increase the capturer count by one. The page is considered visible when its + * browser window is hidden and the capturer count is non-zero. If you would like + * the page to stay hidden, you should ensure that `stayHidden` is set to true. + * +This also affects the Page Visibility API. + */ + incrementCapturerCount(size?: Size, stayHidden?: boolean, stayAwake?: boolean): void; + /** + * A promise that resolves with a key for the inserted CSS that can later be used + * to remove the CSS via `contents.removeInsertedCSS(key)`. + * + * Injects CSS into the current web page and returns a unique key for the inserted + * stylesheet. + */ + insertCSS(css: string, options?: InsertCSSOptions): Promise; + /** + * Inserts `text` to the focused element. + */ + insertText(text: string): Promise; + /** + * Starts inspecting element at position (`x`, `y`). + */ + inspectElement(x: number, y: number): void; + /** + * Opens the developer tools for the service worker context. + */ + inspectServiceWorker(): void; + /** + * Opens the developer tools for the shared worker context. + */ + inspectSharedWorker(): void; + /** + * Inspects the shared worker based on its ID. + */ + inspectSharedWorkerById(workerId: string): void; + /** + * Schedules a full repaint of the window this web contents is in. + * + * If *offscreen rendering* is enabled invalidates the frame and generates a new + * one through the `'paint'` event. + */ + invalidate(): void; + /** + * Whether this page has been muted. + */ + isAudioMuted(): boolean; + /** + * Whether this page is being captured. It returns true when the capturer count is + * large then 0. + */ + isBeingCaptured(): boolean; + /** + * Whether the renderer process has crashed. + */ + isCrashed(): boolean; + /** + * Whether audio is currently playing. + */ + isCurrentlyAudible(): boolean; + /** + * Whether the web page is destroyed. + */ + isDestroyed(): boolean; + /** + * Whether the devtools view is focused . + */ + isDevToolsFocused(): boolean; + /** + * Whether the devtools is opened. + */ + isDevToolsOpened(): boolean; + /** + * Whether the web page is focused. + */ + isFocused(): boolean; + /** + * Whether web page is still loading resources. + */ + isLoading(): boolean; + /** + * Whether the main frame (and not just iframes or frames within it) is still + * loading. + */ + isLoadingMainFrame(): boolean; + /** + * Indicates whether *offscreen rendering* is enabled. + */ + isOffscreen(): boolean; + /** + * If *offscreen rendering* is enabled returns whether it is currently painting. + */ + isPainting(): boolean; + /** + * Whether the web page is waiting for a first-response from the main resource of + * the page. + */ + isWaitingForResponse(): boolean; + /** + * the promise will resolve when the page has finished loading (see + * `did-finish-load`), and rejects if the page fails to load (see `did-fail-load`). + * + * Loads the given file in the window, `filePath` should be a path to an HTML file + * relative to the root of your application. For instance an app structure like + * this: + +Would require code like this + */ + loadFile(filePath: string, options?: LoadFileOptions): Promise; + /** + * the promise will resolve when the page has finished loading (see + * `did-finish-load`), and rejects if the page fails to load (see `did-fail-load`). + * A noop rejection handler is already attached, which avoids unhandled rejection + * errors. + * + * Loads the `url` in the window. The `url` must contain the protocol prefix, e.g. + * the `http://` or `file://`. If the load should bypass http cache then use the + * `pragma` header to achieve it. + */ + loadURL(url: string, options?: LoadURLOptions): Promise; + /** + * Opens the devtools. + * + * When `contents` is a `` tag, the `mode` would be `detach` by default, + * explicitly passing an empty `mode` can force using last used dock state. + */ + openDevTools(options?: OpenDevToolsOptions): void; + /** + * Executes the editing command `paste` in web page. + */ + paste(): void; + /** + * Executes the editing command `pasteAndMatchStyle` in web page. + */ + pasteAndMatchStyle(): void; + /** + * Send a message to the renderer process, optionally transferring ownership of + * zero or more [`MessagePortMain`][] objects. + * + * The transferred `MessagePortMain` objects will be available in the renderer + * process by accessing the `ports` property of the emitted event. When they arrive + * in the renderer, they will be native DOM `MessagePort` objects. + +For example: + */ + postMessage(channel: string, message: any, transfer?: MessagePortMain[]): void; + /** + * When a custom `pageSize` is passed, Chromium attempts to validate platform + * specific minimum values for `width_microns` and `height_microns`. Width and + * height must both be minimum 353 microns but may be higher on some operating + * systems. + * + * Prints window's web page. When `silent` is set to `true`, Electron will pick the + * system's default printer if `deviceName` is empty and the default settings for + * printing. + * + * Use `page-break-before: always;` CSS style to force to print to a new page. + * +Example usage: + */ + print(options?: WebContentsPrintOptions, callback?: (success: boolean, failureReason: string) => void): void; + /** + * Resolves with the generated PDF data. + * + * Prints window's web page as PDF with Chromium's preview printing custom + * settings. + * + * The `landscape` will be ignored if `@page` CSS at-rule is used in the web page. + * + * By default, an empty `options` will be regarded as: + * + * Use `page-break-before: always;` CSS style to force to print to a new page. + * +An example of `webContents.printToPDF`: + */ + printToPDF(options: PrintToPDFOptions): Promise; + /** + * Executes the editing command `redo` in web page. + */ + redo(): void; + /** + * Reloads the current web page. + */ + reload(): void; + /** + * Reloads current page and ignores cache. + */ + reloadIgnoringCache(): void; + /** + * Resolves if the removal was successful. + * + * Removes the inserted CSS from the current web page. The stylesheet is identified + * by its key, which is returned from `contents.insertCSS(css)`. + */ + removeInsertedCSS(key: string): Promise; + /** + * Removes the specified path from DevTools workspace. + */ + removeWorkSpace(path: string): void; + /** + * Executes the editing command `replace` in web page. + */ + replace(text: string): void; + /** + * Executes the editing command `replaceMisspelling` in web page. + */ + replaceMisspelling(text: string): void; + /** + * resolves if the page is saved. + */ + savePage(fullPath: string, saveType: 'HTMLOnly' | 'HTMLComplete' | 'MHTML'): Promise; + /** + * Executes the editing command `selectAll` in web page. + */ + selectAll(): void; + /** + * Send an asynchronous message to the renderer process via `channel`, along with + * arguments. Arguments will be serialized with the Structured Clone Algorithm, + * just like `postMessage`, so prototype chains will not be included. Sending + * Functions, Promises, Symbols, WeakMaps, or WeakSets will throw an exception. + * + * > **NOTE**: Sending non-standard JavaScript types such as DOM objects or special + * Electron objects will throw an exception. + * + * The renderer process can handle the message by listening to `channel` with the + * `ipcRenderer` module. + * +An example of sending messages from the main process to the renderer process: + */ + send(channel: string, ...args: any[]): void; + /** + * Sends an input `event` to the page. **Note:** The `BrowserWindow` containing the + * contents needs to be focused for `sendInputEvent()` to work. + */ + sendInputEvent(inputEvent: (MouseInputEvent) | (MouseWheelInputEvent) | (KeyboardInputEvent)): void; + /** + * Send an asynchronous message to a specific frame in a renderer process via + * `channel`, along with arguments. Arguments will be serialized with the + * Structured Clone Algorithm, just like `postMessage`, so prototype chains will + * not be included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets + * will throw an exception. + * + * > **NOTE:** Sending non-standard JavaScript types such as DOM objects or special + * Electron objects will throw an exception. + * + * The renderer process can handle the message by listening to `channel` with the + * `ipcRenderer` module. + * + * If you want to get the `frameId` of a given renderer context you should use the + * `webFrame.routingId` value. E.g. + * +You can also read `frameId` from all incoming IPC messages in the main process. + */ + sendToFrame(frameId: (number) | ([number, number]), channel: string, ...args: any[]): void; + /** + * Mute the audio on the current web page. + */ + setAudioMuted(muted: boolean): void; + /** + * Controls whether or not this WebContents will throttle animations and timers + * when the page becomes backgrounded. This also affects the Page Visibility API. + */ + setBackgroundThrottling(allowed: boolean): void; + /** + * Uses the `devToolsWebContents` as the target `WebContents` to show devtools. + * + * The `devToolsWebContents` must not have done any navigation, and it should not + * be used for other purposes after the call. + * + * By default Electron manages the devtools by creating an internal `WebContents` + * with native view, which developers have very limited control of. With the + * `setDevToolsWebContents` method, developers can use any `WebContents` to show + * the devtools in it, including `BrowserWindow`, `BrowserView` and `` + * tag. + * + * Note that closing the devtools does not destroy the `devToolsWebContents`, it is + * caller's responsibility to destroy `devToolsWebContents`. + * + * An example of showing devtools in a `` tag: + * +An example of showing devtools in a `BrowserWindow`: + */ + setDevToolsWebContents(devToolsWebContents: WebContents): void; + /** + * If *offscreen rendering* is enabled sets the frame rate to the specified number. + * Only values between 1 and 240 are accepted. + */ + setFrameRate(fps: number): void; + /** + * Ignore application menu shortcuts while this web contents is focused. + */ + setIgnoreMenuShortcuts(ignore: boolean): void; + /** + * Overrides the user agent for this web page. + */ + setUserAgent(userAgent: string): void; + /** + * Sets the maximum and minimum pinch-to-zoom level. + * + * > **NOTE**: Visual zoom is disabled by default in Electron. To re-enable it, + * call: + */ + setVisualZoomLevelLimits(minimumLevel: number, maximumLevel: number): Promise; + /** + * Setting the WebRTC IP handling policy allows you to control which IPs are + * exposed via WebRTC. See BrowserLeaks for more details. + */ + setWebRTCIPHandlingPolicy(policy: 'default' | 'default_public_interface_only' | 'default_public_and_private_interfaces' | 'disable_non_proxied_udp'): void; + /** + * Called before creating a window when `window.open()` is called from the + * renderer. See `window.open()` for more details and how to use this in + * conjunction with `did-create-window`. + */ + setWindowOpenHandler(handler: (details: HandlerDetails) => ({action: 'deny'}) | ({action: 'allow', overrideBrowserWindowOptions?: BrowserWindowConstructorOptions})): void; + /** + * Changes the zoom factor to the specified factor. Zoom factor is zoom percent + * divided by 100, so 300% = 3.0. + +The factor must be greater than 0.0. + */ + setZoomFactor(factor: number): void; + /** + * Changes the zoom level to the specified level. The original size is 0 and each + * increment above or below represents zooming 20% larger or smaller to default + * limits of 300% and 50% of original size, respectively. The formula for this is + * `scale := 1.2 ^ level`. + * + * > **NOTE**: The zoom policy at the Chromium level is same-origin, meaning that + * the zoom level for a specific domain propagates across all instances of windows + * with the same domain. Differentiating the window URLs will make zoom work + * per-window. + */ + setZoomLevel(level: number): void; + /** + * Shows pop-up dictionary that searches the selected word on the page. + * + * @platform darwin + */ + showDefinitionForSelection(): void; + /** + * Sets the `item` as dragging item for current drag-drop operation, `file` is the + * absolute path of the file to be dragged, and `icon` is the image showing under + * the cursor when dragging. + */ + startDrag(item: Item): void; + /** + * If *offscreen rendering* is enabled and not painting, start painting. + */ + startPainting(): void; + /** + * Stops any pending navigation. + */ + stop(): void; + /** + * Stops any `findInPage` request for the `webContents` with the provided `action`. + */ + stopFindInPage(action: 'clearSelection' | 'keepSelection' | 'activateSelection'): void; + /** + * If *offscreen rendering* is enabled and painting, stop painting. + */ + stopPainting(): void; + /** + * Indicates whether the snapshot has been created successfully. + * +Takes a V8 heap snapshot and saves it to `filePath`. + */ + takeHeapSnapshot(filePath: string): Promise; + /** + * Toggles the developer tools. + */ + toggleDevTools(): void; + /** + * Executes the editing command `undo` in web page. + */ + undo(): void; + /** + * Executes the editing command `unselect` in web page. + */ + unselect(): void; + audioMuted: boolean; + backgroundThrottling: boolean; + readonly debugger: Debugger; + readonly devToolsWebContents: (WebContents) | (null); + frameRate: number; + readonly hostWebContents: WebContents; + readonly id: number; + readonly mainFrame: WebFrameMain; + readonly session: Session; + userAgent: string; + zoomFactor: number; + zoomLevel: number; + } + + interface WebFrame extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/web-frame + + /** + * Attempts to free memory that is no longer being used (like images from a + * previous navigation). + * + * Note that blindly calling this method probably makes Electron slower since it + * will have to refill these emptied caches, you should only call it if an event in + * your app has occurred that makes you think your page is actually using less + * memory (i.e. you have navigated from a super heavy page to a mostly empty one, + * and intend to stay there). + */ + clearCache(): void; + /** + * A promise that resolves with the result of the executed code or is rejected if + * execution throws or results in a rejected promise. + * + * Evaluates `code` in page. + * + * In the browser window some HTML APIs like `requestFullScreen` can only be + * invoked by a gesture from the user. Setting `userGesture` to `true` will remove + * this limitation. + */ + executeJavaScript(code: string, userGesture?: boolean, callback?: (result: any, error: Error) => void): Promise; + /** + * A promise that resolves with the result of the executed code or is rejected if + * execution could not start. + * + * Works like `executeJavaScript` but evaluates `scripts` in an isolated context. + * + * Note that when the execution of script fails, the returned promise will not + * reject and the `result` would be `undefined`. This is because Chromium does not + * dispatch errors of isolated worlds to foreign worlds. + */ + executeJavaScriptInIsolatedWorld(worldId: number, scripts: WebSource[], userGesture?: boolean, callback?: (result: any, error: Error) => void): Promise; + /** + * A child of `webFrame` with the supplied `name`, `null` would be returned if + * there's no such frame or if the frame is not in the current renderer process. + */ + findFrameByName(name: string): WebFrame; + /** + * that has the supplied `routingId`, `null` if not found. + */ + findFrameByRoutingId(routingId: number): WebFrame; + /** + * The frame element in `webFrame's` document selected by `selector`, `null` would + * be returned if `selector` does not select a frame or if the frame is not in the + * current renderer process. + */ + getFrameForSelector(selector: string): WebFrame; + /** + * * `images` MemoryUsageDetails + * * `scripts` MemoryUsageDetails + * * `cssStyleSheets` MemoryUsageDetails + * * `xslStyleSheets` MemoryUsageDetails + * * `fonts` MemoryUsageDetails + * * `other` MemoryUsageDetails + * + * Returns an object describing usage information of Blink's internal memory + * caches. + +This will generate: + */ + getResourceUsage(): ResourceUsage; + /** + * A list of suggested words for a given word. If the word is spelled correctly, + * the result will be empty. + */ + getWordSuggestions(word: string): string[]; + /** + * The current zoom factor. + */ + getZoomFactor(): number; + /** + * The current zoom level. + */ + getZoomLevel(): number; + /** + * A key for the inserted CSS that can later be used to remove the CSS via + * `webFrame.removeInsertedCSS(key)`. + * + * Injects CSS into the current web page and returns a unique key for the inserted + * stylesheet. + */ + insertCSS(css: string): string; + /** + * Inserts `text` to the focused element. + */ + insertText(text: string): void; + /** + * True if the word is misspelled according to the built in spellchecker, false + * otherwise. If no dictionary is loaded, always return false. + */ + isWordMisspelled(word: string): boolean; + /** + * Removes the inserted CSS from the current web page. The stylesheet is identified + * by its key, which is returned from `webFrame.insertCSS(css)`. + */ + removeInsertedCSS(key: string): void; + /** + * Set the security origin, content security policy and name of the isolated world. + * Note: If the `csp` is specified, then the `securityOrigin` also has to be + * specified. + */ + setIsolatedWorldInfo(worldId: number, info: Info): void; + /** + * Sets a provider for spell checking in input fields and text areas. + * + * If you want to use this method you must disable the builtin spellchecker when + * you construct the window. + * + * The `provider` must be an object that has a `spellCheck` method that accepts an + * array of individual words for spellchecking. The `spellCheck` function runs + * asynchronously and calls the `callback` function with an array of misspelt words + * when complete. + +An example of using node-spellchecker as provider: + */ + setSpellCheckProvider(language: string, provider: Provider): void; + /** + * Sets the maximum and minimum pinch-to-zoom level. + * + * > **NOTE**: Visual zoom is disabled by default in Electron. To re-enable it, + * call: + * + * > **NOTE**: Visual zoom only applies to pinch-to-zoom behavior. Cmd+/-/0 zoom + * shortcuts are controlled by the 'zoomIn', 'zoomOut', and 'resetZoom' MenuItem + * roles in the application Menu. To disable shortcuts, manually define the Menu + * and omit zoom roles from the definition. + */ + setVisualZoomLevelLimits(minimumLevel: number, maximumLevel: number): void; + /** + * Changes the zoom factor to the specified factor. Zoom factor is zoom percent + * divided by 100, so 300% = 3.0. + +The factor must be greater than 0.0. + */ + setZoomFactor(factor: number): void; + /** + * Changes the zoom level to the specified level. The original size is 0 and each + * increment above or below represents zooming 20% larger or smaller to default + * limits of 300% and 50% of original size, respectively. + * + * > **NOTE**: The zoom policy at the Chromium level is same-origin, meaning that + * the zoom level for a specific domain propagates across all instances of windows + * with the same domain. Differentiating the window URLs will make zoom work + * per-window. + */ + setZoomLevel(level: number): void; + /** + * A `WebFrame | null` representing the first child frame of `webFrame`, the + * property would be `null` if `webFrame` has no children or if first child is not + * in the current renderer process. + * + */ + readonly firstChild: (WebFrame) | (null); + /** + * A `WebFrame | null` representing next sibling frame, the property would be + * `null` if `webFrame` is the last frame in its parent or if the next sibling is + * not in the current renderer process. + * + */ + readonly nextSibling: (WebFrame) | (null); + /** + * A `WebFrame | null` representing the frame which opened `webFrame`, the property + * would be `null` if there's no opener or opener is not in the current renderer + * process. + * + */ + readonly opener: (WebFrame) | (null); + /** + * A `WebFrame | null` representing parent frame of `webFrame`, the property would + * be `null` if `webFrame` is top or parent is not in the current renderer process. + * + */ + readonly parent: (WebFrame) | (null); + /** + * An `Integer` representing the unique frame id in the current renderer process. + * Distinct WebFrame instances that refer to the same underlying frame will have + * the same `routingId`. + * + */ + readonly routingId: number; + /** + * A `WebFrame | null` representing top frame in frame hierarchy to which + * `webFrame` belongs, the property would be `null` if top frame is not in the + * current renderer process. + * + */ + readonly top: (WebFrame) | (null); + } + + class WebFrameMain extends NodeEventEmitter { + + // Docs: https://electronjs.org/docs/api/web-frame-main + + /** + * A frame with the given process and routing IDs, or `undefined` if there is no + * WebFrameMain associated with the given IDs. + */ + static fromId(processId: number, routingId: number): (WebFrameMain) | (undefined); + /** + * A promise that resolves with the result of the executed code or is rejected if + * execution throws or results in a rejected promise. + * + * Evaluates `code` in page. + * + * In the browser window some HTML APIs like `requestFullScreen` can only be + * invoked by a gesture from the user. Setting `userGesture` to `true` will remove + * this limitation. + */ + executeJavaScript(code: string, userGesture?: boolean): Promise; + /** + * Send a message to the renderer process, optionally transferring ownership of + * zero or more [`MessagePortMain`][] objects. + * + * The transferred `MessagePortMain` objects will be available in the renderer + * process by accessing the `ports` property of the emitted event. When they arrive + * in the renderer, they will be native DOM `MessagePort` objects. + +For example: + */ + postMessage(channel: string, message: any, transfer?: MessagePortMain[]): void; + /** + * Whether the reload was initiated successfully. Only results in `false` when the + * frame has no history. + */ + reload(): boolean; + /** + * Send an asynchronous message to the renderer process via `channel`, along with + * arguments. Arguments will be serialized with the [Structured Clone + * Algorithm][SCA], just like [`postMessage`][], so prototype chains will not be + * included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will throw + * an exception. + * + * The renderer process can handle the message by listening to `channel` with the + * `ipcRenderer` module. + */ + send(channel: string, ...args: any[]): void; + readonly frames: WebFrameMain[]; + readonly framesInSubtree: WebFrameMain[]; + readonly frameTreeNodeId: number; + readonly name: string; + readonly osProcessId: number; + readonly parent: (WebFrameMain) | (null); + readonly processId: number; + readonly routingId: number; + readonly top: (WebFrameMain) | (null); + readonly url: string; + } + + class WebRequest { + + // Docs: https://electronjs.org/docs/api/web-request + + /** + * The `listener` will be called with `listener(details)` when a server initiated + * redirect is about to occur. + */ + onBeforeRedirect(filter: Filter, listener: ((details: OnBeforeRedirectListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` when a server initiated + * redirect is about to occur. + */ + onBeforeRedirect(listener: ((details: OnBeforeRedirectListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details, callback)` when a request + * is about to occur. + * + * The `uploadData` is an array of `UploadData` objects. + * + * The `callback` has to be called with an `response` object. + * +Some examples of valid `urls`: + */ + onBeforeRequest(filter: Filter, listener: ((details: OnBeforeRequestListenerDetails, callback: (response: Response) => void) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details, callback)` when a request + * is about to occur. + * + * The `uploadData` is an array of `UploadData` objects. + * + * The `callback` has to be called with an `response` object. + * +Some examples of valid `urls`: + */ + onBeforeRequest(listener: ((details: OnBeforeRequestListenerDetails, callback: (response: Response) => void) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details, callback)` before sending + * an HTTP request, once the request headers are available. This may occur after a + * TCP connection is made to the server, but before any http data is sent. + * +The `callback` has to be called with a `response` object. + */ + onBeforeSendHeaders(filter: Filter, listener: ((details: OnBeforeSendHeadersListenerDetails, callback: (beforeSendResponse: BeforeSendResponse) => void) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details, callback)` before sending + * an HTTP request, once the request headers are available. This may occur after a + * TCP connection is made to the server, but before any http data is sent. + * +The `callback` has to be called with a `response` object. + */ + onBeforeSendHeaders(listener: ((details: OnBeforeSendHeadersListenerDetails, callback: (beforeSendResponse: BeforeSendResponse) => void) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` when a request is + * completed. + */ + onCompleted(filter: Filter, listener: ((details: OnCompletedListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` when a request is + * completed. + */ + onCompleted(listener: ((details: OnCompletedListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` when an error occurs. + */ + onErrorOccurred(filter: Filter, listener: ((details: OnErrorOccurredListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` when an error occurs. + */ + onErrorOccurred(listener: ((details: OnErrorOccurredListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details, callback)` when HTTP + * response headers of a request have been received. + * +The `callback` has to be called with a `response` object. + */ + onHeadersReceived(filter: Filter, listener: ((details: OnHeadersReceivedListenerDetails, callback: (headersReceivedResponse: HeadersReceivedResponse) => void) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details, callback)` when HTTP + * response headers of a request have been received. + * +The `callback` has to be called with a `response` object. + */ + onHeadersReceived(listener: ((details: OnHeadersReceivedListenerDetails, callback: (headersReceivedResponse: HeadersReceivedResponse) => void) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` when first byte of the + * response body is received. For HTTP requests, this means that the status line + * and response headers are available. + */ + onResponseStarted(filter: Filter, listener: ((details: OnResponseStartedListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` when first byte of the + * response body is received. For HTTP requests, this means that the status line + * and response headers are available. + */ + onResponseStarted(listener: ((details: OnResponseStartedListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` just before a request is + * going to be sent to the server, modifications of previous `onBeforeSendHeaders` + * response are visible by the time this listener is fired. + */ + onSendHeaders(filter: Filter, listener: ((details: OnSendHeadersListenerDetails) => void) | (null)): void; + /** + * The `listener` will be called with `listener(details)` just before a request is + * going to be sent to the server, modifications of previous `onBeforeSendHeaders` + * response are visible by the time this listener is fired. + */ + onSendHeaders(listener: ((details: OnSendHeadersListenerDetails) => void) | (null)): void; + } + + interface WebSource { + + // Docs: https://electronjs.org/docs/api/structures/web-source + + code: string; + /** + * Default is 1. + */ + startLine?: number; + url?: string; + } + + interface WebviewTag extends HTMLElement { + + // Docs: https://electronjs.org/docs/api/webview-tag + + /** + * Fired when a load has committed. This includes navigation within the current + * document as well as subframe document-level loads, but does not include + * asynchronous resource loads. + */ + addEventListener(event: 'load-commit', listener: (event: LoadCommitEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'load-commit', listener: (event: LoadCommitEvent) => void): this; + /** + * Fired when the navigation is done, i.e. the spinner of the tab will stop + * spinning, and the `onload` event is dispatched. + */ + addEventListener(event: 'did-finish-load', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'did-finish-load', listener: (event: Event) => void): this; + /** + * This event is like `did-finish-load`, but fired when the load failed or was + * cancelled, e.g. `window.stop()` is invoked. + */ + addEventListener(event: 'did-fail-load', listener: (event: DidFailLoadEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'did-fail-load', listener: (event: DidFailLoadEvent) => void): this; + /** + * Fired when a frame has done navigation. + */ + addEventListener(event: 'did-frame-finish-load', listener: (event: DidFrameFinishLoadEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'did-frame-finish-load', listener: (event: DidFrameFinishLoadEvent) => void): this; + /** + * Corresponds to the points in time when the spinner of the tab starts spinning. + */ + addEventListener(event: 'did-start-loading', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'did-start-loading', listener: (event: Event) => void): this; + /** + * Corresponds to the points in time when the spinner of the tab stops spinning. + */ + addEventListener(event: 'did-stop-loading', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'did-stop-loading', listener: (event: Event) => void): this; + /** + * Fired when document in the given frame is loaded. + */ + addEventListener(event: 'dom-ready', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'dom-ready', listener: (event: Event) => void): this; + /** + * Fired when page title is set during navigation. `explicitSet` is false when + * title is synthesized from file url. + */ + addEventListener(event: 'page-title-updated', listener: (event: PageTitleUpdatedEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'page-title-updated', listener: (event: PageTitleUpdatedEvent) => void): this; + /** + * Fired when page receives favicon urls. + */ + addEventListener(event: 'page-favicon-updated', listener: (event: PageFaviconUpdatedEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'page-favicon-updated', listener: (event: PageFaviconUpdatedEvent) => void): this; + /** + * Fired when page enters fullscreen triggered by HTML API. + */ + addEventListener(event: 'enter-html-full-screen', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'enter-html-full-screen', listener: (event: Event) => void): this; + /** + * Fired when page leaves fullscreen triggered by HTML API. + */ + addEventListener(event: 'leave-html-full-screen', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'leave-html-full-screen', listener: (event: Event) => void): this; + /** + * Fired when the guest window logs a console message. + * + * The following example code forwards all log messages to the embedder's console + * without regard for log level or other properties. + */ + addEventListener(event: 'console-message', listener: (event: ConsoleMessageEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'console-message', listener: (event: ConsoleMessageEvent) => void): this; + /** + * Fired when a result is available for `webview.findInPage` request. + */ + addEventListener(event: 'found-in-page', listener: (event: FoundInPageEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'found-in-page', listener: (event: FoundInPageEvent) => void): this; + /** + * Fired when the guest page attempts to open a new browser window. + * +The following example code opens the new url in system's default browser. + */ + addEventListener(event: 'new-window', listener: (event: NewWindowEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'new-window', listener: (event: NewWindowEvent) => void): this; + /** + * Emitted when a user or the page wants to start navigation. It can happen when + * the `window.location` object is changed or a user clicks a link in the page. + * + * This event will not emit when the navigation is started programmatically with + * APIs like `.loadURL` and `.back`. + * + * It is also not emitted during in-page navigation, such as clicking anchor links + * or updating the `window.location.hash`. Use `did-navigate-in-page` event for + * this purpose. + +Calling `event.preventDefault()` does __NOT__ have any effect. + */ + addEventListener(event: 'will-navigate', listener: (event: WillNavigateEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'will-navigate', listener: (event: WillNavigateEvent) => void): this; + /** + * Emitted when a navigation is done. + * + * This event is not emitted for in-page navigations, such as clicking anchor links + * or updating the `window.location.hash`. Use `did-navigate-in-page` event for + * this purpose. + */ + addEventListener(event: 'did-navigate', listener: (event: DidNavigateEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'did-navigate', listener: (event: DidNavigateEvent) => void): this; + /** + * Emitted when an in-page navigation happened. + * + * When in-page navigation happens, the page URL changes but does not cause + * navigation outside of the page. Examples of this occurring are when anchor links + * are clicked or when the DOM `hashchange` event is triggered. + */ + addEventListener(event: 'did-navigate-in-page', listener: (event: DidNavigateInPageEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'did-navigate-in-page', listener: (event: DidNavigateInPageEvent) => void): this; + /** + * Fired when the guest page attempts to close itself. + * + * The following example code navigates the `webview` to `about:blank` when the + * guest attempts to close itself. + */ + addEventListener(event: 'close', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'close', listener: (event: Event) => void): this; + /** + * Fired when the guest page has sent an asynchronous message to embedder page. + * + * With `sendToHost` method and `ipc-message` event you can communicate between + * guest page and embedder page: + */ + addEventListener(event: 'ipc-message', listener: (event: IpcMessageEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'ipc-message', listener: (event: IpcMessageEvent) => void): this; + /** + * Fired when the renderer process is crashed. + */ + addEventListener(event: 'crashed', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'crashed', listener: (event: Event) => void): this; + /** + * Fired when a plugin process is crashed. + */ + addEventListener(event: 'plugin-crashed', listener: (event: PluginCrashedEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'plugin-crashed', listener: (event: PluginCrashedEvent) => void): this; + /** + * Fired when the WebContents is destroyed. + */ + addEventListener(event: 'destroyed', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'destroyed', listener: (event: Event) => void): this; + /** + * Emitted when media starts playing. + */ + addEventListener(event: 'media-started-playing', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'media-started-playing', listener: (event: Event) => void): this; + /** + * Emitted when media is paused or done playing. + */ + addEventListener(event: 'media-paused', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'media-paused', listener: (event: Event) => void): this; + /** + * Emitted when a page's theme color changes. This is usually due to encountering a + * meta tag: + */ + addEventListener(event: 'did-change-theme-color', listener: (event: DidChangeThemeColorEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'did-change-theme-color', listener: (event: DidChangeThemeColorEvent) => void): this; + /** + * Emitted when mouse moves over a link or the keyboard moves the focus to a link. + */ + addEventListener(event: 'update-target-url', listener: (event: UpdateTargetUrlEvent) => void, useCapture?: boolean): this; + removeEventListener(event: 'update-target-url', listener: (event: UpdateTargetUrlEvent) => void): this; + /** + * Emitted when DevTools is opened. + */ + addEventListener(event: 'devtools-opened', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'devtools-opened', listener: (event: Event) => void): this; + /** + * Emitted when DevTools is closed. + */ + addEventListener(event: 'devtools-closed', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'devtools-closed', listener: (event: Event) => void): this; + /** + * Emitted when DevTools is focused / opened. + */ + addEventListener(event: 'devtools-focused', listener: (event: Event) => void, useCapture?: boolean): this; + removeEventListener(event: 'devtools-focused', listener: (event: Event) => void): this; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void; + /** + * Whether the guest page can go back. + */ + canGoBack(): boolean; + /** + * Whether the guest page can go forward. + */ + canGoForward(): boolean; + /** + * Whether the guest page can go to `offset`. + */ + canGoToOffset(offset: number): boolean; + /** + * Resolves with a NativeImage + * + * Captures a snapshot of the page within `rect`. Omitting `rect` will capture the + * whole visible page. + */ + capturePage(rect?: Rectangle): Promise; + /** + * Clears the navigation history. + */ + clearHistory(): void; + /** + * Closes the DevTools window of guest page. + */ + closeDevTools(): void; + /** + * Executes editing command `copy` in page. + */ + copy(): void; + /** + * Executes editing command `cut` in page. + */ + cut(): void; + /** + * Executes editing command `delete` in page. + */ + delete(): void; + /** + * Initiates a download of the resource at `url` without navigating. + */ + downloadURL(url: string): void; + /** + * A promise that resolves with the result of the executed code or is rejected if + * the result of the code is a rejected promise. + * + * Evaluates `code` in page. If `userGesture` is set, it will create the user + * gesture context in the page. HTML APIs like `requestFullScreen`, which require + * user action, can take advantage of this option for automation. + */ + executeJavaScript(code: string, userGesture?: boolean): Promise; + /** + * The request id used for the request. + * + * Starts a request to find all matches for the `text` in the web page. The result + * of the request can be obtained by subscribing to `found-in-page` event. + */ + findInPage(text: string, options?: FindInPageOptions): number; + /** + * The title of guest page. + */ + getTitle(): string; + /** + * The URL of guest page. + */ + getURL(): string; + /** + * The user agent for guest page. + */ + getUserAgent(): string; + /** + * The WebContents ID of this `webview`. + */ + getWebContentsId(): number; + /** + * the current zoom factor. + */ + getZoomFactor(): number; + /** + * the current zoom level. + */ + getZoomLevel(): number; + /** + * Makes the guest page go back. + */ + goBack(): void; + /** + * Makes the guest page go forward. + */ + goForward(): void; + /** + * Navigates to the specified absolute index. + */ + goToIndex(index: number): void; + /** + * Navigates to the specified offset from the "current entry". + */ + goToOffset(offset: number): void; + /** + * A promise that resolves with a key for the inserted CSS that can later be used + * to remove the CSS via `.removeInsertedCSS(key)`. + * + * Injects CSS into the current web page and returns a unique key for the inserted + * stylesheet. + */ + insertCSS(css: string): Promise; + /** + * Inserts `text` to the focused element. + */ + insertText(text: string): Promise; + /** + * Starts inspecting element at position (`x`, `y`) of guest page. + */ + inspectElement(x: number, y: number): void; + /** + * Opens the DevTools for the service worker context present in the guest page. + */ + inspectServiceWorker(): void; + /** + * Opens the DevTools for the shared worker context present in the guest page. + */ + inspectSharedWorker(): void; + /** + * Whether guest page has been muted. + */ + isAudioMuted(): boolean; + /** + * Whether the renderer process has crashed. + */ + isCrashed(): boolean; + /** + * Whether audio is currently playing. + */ + isCurrentlyAudible(): boolean; + /** + * Whether DevTools window of guest page is focused. + */ + isDevToolsFocused(): boolean; + /** + * Whether guest page has a DevTools window attached. + */ + isDevToolsOpened(): boolean; + /** + * Whether guest page is still loading resources. + */ + isLoading(): boolean; + /** + * Whether the main frame (and not just iframes or frames within it) is still + * loading. + */ + isLoadingMainFrame(): boolean; + /** + * Whether the guest page is waiting for a first-response for the main resource of + * the page. + */ + isWaitingForResponse(): boolean; + /** + * The promise will resolve when the page has finished loading (see + * `did-finish-load`), and rejects if the page fails to load (see `did-fail-load`). + * + * Loads the `url` in the webview, the `url` must contain the protocol prefix, e.g. + * the `http://` or `file://`. + */ + loadURL(url: string, options?: LoadURLOptions): Promise; + /** + * Opens a DevTools window for guest page. + */ + openDevTools(): void; + /** + * Executes editing command `paste` in page. + */ + paste(): void; + /** + * Executes editing command `pasteAndMatchStyle` in page. + */ + pasteAndMatchStyle(): void; + /** + * Prints `webview`'s web page. Same as `webContents.print([options])`. + */ + print(options?: WebviewTagPrintOptions): Promise; + /** + * Resolves with the generated PDF data. + * +Prints `webview`'s web page as PDF, Same as `webContents.printToPDF(options)`. + */ + printToPDF(options: PrintToPDFOptions): Promise; + /** + * Executes editing command `redo` in page. + */ + redo(): void; + /** + * Reloads the guest page. + */ + reload(): void; + /** + * Reloads the guest page and ignores cache. + */ + reloadIgnoringCache(): void; + /** + * Resolves if the removal was successful. + * + * Removes the inserted CSS from the current web page. The stylesheet is identified + * by its key, which is returned from `.insertCSS(css)`. + */ + removeInsertedCSS(key: string): Promise; + /** + * Executes editing command `replace` in page. + */ + replace(text: string): void; + /** + * Executes editing command `replaceMisspelling` in page. + */ + replaceMisspelling(text: string): void; + /** + * Executes editing command `selectAll` in page. + */ + selectAll(): void; + /** + * Send an asynchronous message to renderer process via `channel`, you can also + * send arbitrary arguments. The renderer process can handle the message by + * listening to the `channel` event with the `ipcRenderer` module. + * +See webContents.send for examples. + */ + send(channel: string, ...args: any[]): Promise; + /** + * Sends an input `event` to the page. + * +See webContents.sendInputEvent for detailed description of `event` object. + */ + sendInputEvent(event: (MouseInputEvent) | (MouseWheelInputEvent) | (KeyboardInputEvent)): Promise; + /** + * Set guest page muted. + */ + setAudioMuted(muted: boolean): void; + /** + * Overrides the user agent for the guest page. + */ + setUserAgent(userAgent: string): void; + /** + * Sets the maximum and minimum pinch-to-zoom level. + */ + setVisualZoomLevelLimits(minimumLevel: number, maximumLevel: number): Promise; + /** + * Changes the zoom factor to the specified factor. Zoom factor is zoom percent + * divided by 100, so 300% = 3.0. + */ + setZoomFactor(factor: number): void; + /** + * Changes the zoom level to the specified level. The original size is 0 and each + * increment above or below represents zooming 20% larger or smaller to default + * limits of 300% and 50% of original size, respectively. The formula for this is + * `scale := 1.2 ^ level`. + * + * > **NOTE**: The zoom policy at the Chromium level is same-origin, meaning that + * the zoom level for a specific domain propagates across all instances of windows + * with the same domain. Differentiating the window URLs will make zoom work + * per-window. + */ + setZoomLevel(level: number): void; + /** + * Shows pop-up dictionary that searches the selected word on the page. + * + * @platform darwin + */ + showDefinitionForSelection(): void; + /** + * Stops any pending navigation. + */ + stop(): void; + /** + * Stops any `findInPage` request for the `webview` with the provided `action`. + */ + stopFindInPage(action: 'clearSelection' | 'keepSelection' | 'activateSelection'): void; + /** + * Executes editing command `undo` in page. + */ + undo(): void; + /** + * Executes editing command `unselect` in page. + */ + unselect(): void; + /** + * A `Boolean`. When this attribute is present the guest page will be allowed to + * open new windows. Popups are disabled by default. + */ + allowpopups: boolean; + /** + * A `String` which is a list of strings which specifies the blink features to be + * disabled separated by `,`. The full list of supported feature strings can be + * found in the RuntimeEnabledFeatures.json5 file. + */ + disableblinkfeatures: string; + /** + * A `Boolean`. When this attribute is present the guest page will have web + * security disabled. Web security is enabled by default. + */ + disablewebsecurity: boolean; + /** + * A `String` which is a list of strings which specifies the blink features to be + * enabled separated by `,`. The full list of supported feature strings can be + * found in the RuntimeEnabledFeatures.json5 file. + */ + enableblinkfeatures: string; + /** + * A `Boolean`. When this attribute is `false` the guest page in `webview` will not + * have access to the `remote` module. The remote module is unavailable by default. + */ + enableremotemodule: boolean; + /** + * A `String` that sets the referrer URL for the guest page. + */ + httpreferrer: string; + /** + * A `Boolean`. When this attribute is present the guest page in `webview` will + * have node integration and can use node APIs like `require` and `process` to + * access low level system resources. Node integration is disabled by default in + * the guest page. + */ + nodeintegration: boolean; + /** + * A `Boolean` for the experimental option for enabling NodeJS support in + * sub-frames such as iframes inside the `webview`. All your preloads will load for + * every iframe, you can use `process.isMainFrame` to determine if you are in the + * main frame or not. This option is disabled by default in the guest page. + */ + nodeintegrationinsubframes: boolean; + /** + * A `String` that sets the session used by the page. If `partition` starts with + * `persist:`, the page will use a persistent session available to all pages in the + * app with the same `partition`. if there is no `persist:` prefix, the page will + * use an in-memory session. By assigning the same `partition`, multiple pages can + * share the same session. If the `partition` is unset then default session of the + * app will be used. + * + * This value can only be modified before the first navigation, since the session + * of an active renderer process cannot change. Subsequent attempts to modify the + * value will fail with a DOM exception. + */ + partition: string; + /** + * A `Boolean`. When this attribute is present the guest page in `webview` will be + * able to use browser plugins. Plugins are disabled by default. + */ + plugins: boolean; + /** + * A `String` that specifies a script that will be loaded before other scripts run + * in the guest page. The protocol of script's URL must be either `file:` or + * `asar:`, because it will be loaded by `require` in guest page under the hood. + * + * When the guest page doesn't have node integration this script will still have + * access to all Node APIs, but global objects injected by Node will be deleted + * after this script has finished executing. + * + * **Note:** This option will appear as `preloadURL` (not `preload`) in the + * `webPreferences` specified to the `will-attach-webview` event. + */ + preload: string; + /** + * A `String` representing the visible URL. Writing to this attribute initiates + * top-level navigation. + * + * Assigning `src` its own value will reload the current page. + * + * The `src` attribute can also accept data URLs, such as `data:text/plain,Hello, + * world!`. + */ + src: string; + /** + * A `String` that sets the user agent for the guest page before the page is + * navigated to. Once the page is loaded, use the `setUserAgent` method to change + * the user agent. + */ + useragent: string; + /** + * A `String` which is a comma separated list of strings which specifies the web + * preferences to be set on the webview. The full list of supported preference + * strings can be found in BrowserWindow. + * + * The string follows the same format as the features string in `window.open`. A + * name by itself is given a `true` boolean value. A preference can be set to + * another value by including an `=`, followed by the value. Special values `yes` + * and `1` are interpreted as `true`, while `no` and `0` are interpreted as + * `false`. + */ + webpreferences: string; + } + + interface AboutPanelOptionsOptions { + /** + * The app's name. + */ + applicationName?: string; + /** + * The app's version. + */ + applicationVersion?: string; + /** + * Copyright information. + */ + copyright?: string; + /** + * The app's build version number. + * + * @platform darwin + */ + version?: string; + /** + * Credit information. + * + * @platform darwin,win32 + */ + credits?: string; + /** + * List of app authors. + * + * @platform linux + */ + authors?: string[]; + /** + * The app's website. + * + * @platform linux + */ + website?: string; + /** + * Path to the app's icon in a JPEG or PNG file format. On Linux, will be shown as + * 64x64 pixels while retaining aspect ratio. + * + * @platform linux,win32 + */ + iconPath?: string; + } + + interface AddRepresentationOptions { + /** + * The scale factor to add the image representation for. + */ + scaleFactor: number; + /** + * Defaults to 0. Required if a bitmap buffer is specified as `buffer`. + */ + width?: number; + /** + * Defaults to 0. Required if a bitmap buffer is specified as `buffer`. + */ + height?: number; + /** + * The buffer containing the raw image data. + */ + buffer?: Buffer; + /** + * The data URL containing either a base 64 encoded PNG or JPEG image. + */ + dataURL?: string; + } + + interface AnimationSettings { + /** + * Returns true if rich animations should be rendered. Looks at session type (e.g. + * remote desktop) and accessibility settings to give guidance for heavy + * animations. + */ + shouldRenderRichAnimation: boolean; + /** + * Determines on a per-platform basis whether scroll animations (e.g. produced by + * home/end key) should be enabled. + */ + scrollAnimationsEnabledBySystem: boolean; + /** + * Determines whether the user desires reduced motion based on platform APIs. + */ + prefersReducedMotion: boolean; + } + + interface AppDetailsOptions { + /** + * Window's App User Model ID. It has to be set, otherwise the other options will + * have no effect. + */ + appId?: string; + /** + * Window's Relaunch Icon. + */ + appIconPath?: string; + /** + * Index of the icon in `appIconPath`. Ignored when `appIconPath` is not set. + * Default is `0`. + */ + appIconIndex?: number; + /** + * Window's Relaunch Command. + */ + relaunchCommand?: string; + /** + * Window's Relaunch Display Name. + */ + relaunchDisplayName?: string; + } + + interface ApplicationInfoForProtocolReturnValue { + /** + * the display icon of the app handling the protocol. + */ + icon: NativeImage; + /** + * installation path of the app handling the protocol. + */ + path: string; + /** + * display name of the app handling the protocol. + */ + name: string; + } + + interface AuthenticationResponseDetails { + url: string; + } + + interface AuthInfo { + isProxy: boolean; + scheme: string; + host: string; + port: number; + realm: string; + } + + interface AutoResizeOptions { + /** + * If `true`, the view's width will grow and shrink together with the window. + * `false` by default. + */ + width?: boolean; + /** + * If `true`, the view's height will grow and shrink together with the window. + * `false` by default. + */ + height?: boolean; + /** + * If `true`, the view's x position and width will grow and shrink proportionally + * with the window. `false` by default. + */ + horizontal?: boolean; + /** + * If `true`, the view's y position and height will grow and shrink proportionally + * with the window. `false` by default. + */ + vertical?: boolean; + } + + interface BeforeSendResponse { + cancel?: boolean; + /** + * When provided, request will be made with these headers. + */ + requestHeaders?: Record; + } + + interface BitmapOptions { + /** + * Defaults to 1.0. + */ + scaleFactor?: number; + } + + interface BlinkMemoryInfo { + /** + * Size of all allocated objects in Kilobytes. + */ + allocated: number; + /** + * Size of all marked objects in Kilobytes. + */ + marked: number; + /** + * Total allocated space in Kilobytes. + */ + total: number; + } + + interface BrowserViewConstructorOptions { + /** + * See BrowserWindow. + */ + webPreferences?: WebPreferences; + } + + interface BrowserWindowConstructorOptions { + /** + * Window's width in pixels. Default is `800`. + */ + width?: number; + /** + * Window's height in pixels. Default is `600`. + */ + height?: number; + /** + * (**required** if y is used) Window's left offset from screen. Default is to + * center the window. + */ + x?: number; + /** + * (**required** if x is used) Window's top offset from screen. Default is to + * center the window. + */ + y?: number; + /** + * The `width` and `height` would be used as web page's size, which means the + * actual window's size will include window frame's size and be slightly larger. + * Default is `false`. + */ + useContentSize?: boolean; + /** + * Show window in the center of the screen. + */ + center?: boolean; + /** + * Window's minimum width. Default is `0`. + */ + minWidth?: number; + /** + * Window's minimum height. Default is `0`. + */ + minHeight?: number; + /** + * Window's maximum width. Default is no limit. + */ + maxWidth?: number; + /** + * Window's maximum height. Default is no limit. + */ + maxHeight?: number; + /** + * Whether window is resizable. Default is `true`. + */ + resizable?: boolean; + /** + * Whether window is movable. This is not implemented on Linux. Default is `true`. + */ + movable?: boolean; + /** + * Whether window is minimizable. This is not implemented on Linux. Default is + * `true`. + */ + minimizable?: boolean; + /** + * Whether window is maximizable. This is not implemented on Linux. Default is + * `true`. + */ + maximizable?: boolean; + /** + * Whether window is closable. This is not implemented on Linux. Default is `true`. + */ + closable?: boolean; + /** + * Whether the window can be focused. Default is `true`. On Windows setting + * `focusable: false` also implies setting `skipTaskbar: true`. On Linux setting + * `focusable: false` makes the window stop interacting with wm, so the window will + * always stay on top in all workspaces. + */ + focusable?: boolean; + /** + * Whether the window should always stay on top of other windows. Default is + * `false`. + */ + alwaysOnTop?: boolean; + /** + * Whether the window should show in fullscreen. When explicitly set to `false` the + * fullscreen button will be hidden or disabled on macOS. Default is `false`. + */ + fullscreen?: boolean; + /** + * Whether the window can be put into fullscreen mode. On macOS, also whether the + * maximize/zoom button should toggle full screen mode or maximize window. Default + * is `true`. + */ + fullscreenable?: boolean; + /** + * Use pre-Lion fullscreen on macOS. Default is `false`. + */ + simpleFullscreen?: boolean; + /** + * Whether to show the window in taskbar. Default is `false`. + */ + skipTaskbar?: boolean; + /** + * Whether the window is in kiosk mode. Default is `false`. + */ + kiosk?: boolean; + /** + * Default window title. Default is `"Electron"`. If the HTML tag `` is + * defined in the HTML file loaded by `loadURL()`, this property will be ignored. + */ + title?: string; + /** + * The window icon. On Windows it is recommended to use `ICO` icons to get best + * visual effects, you can also leave it undefined so the executable's icon will be + * used. + */ + icon?: (NativeImage) | (string); + /** + * Whether window should be shown when created. Default is `true`. + */ + show?: boolean; + /** + * Whether the renderer should be active when `show` is `false` and it has just + * been created. In order for `document.visibilityState` to work correctly on + * first load with `show: false` you should set this to `false`. Setting this to + * `false` will cause the `ready-to-show` event to not fire. Default is `true`. + */ + paintWhenInitiallyHidden?: boolean; + /** + * Specify `false` to create a Frameless Window. Default is `true`. + */ + frame?: boolean; + /** + * Specify parent window. Default is `null`. + */ + parent?: BrowserWindow; + /** + * Whether this is a modal window. This only works when the window is a child + * window. Default is `false`. + */ + modal?: boolean; + /** + * Whether the web view accepts a single mouse-down event that simultaneously + * activates the window. Default is `false`. + */ + acceptFirstMouse?: boolean; + /** + * Whether to hide cursor when typing. Default is `false`. + */ + disableAutoHideCursor?: boolean; + /** + * Auto hide the menu bar unless the `Alt` key is pressed. Default is `false`. + */ + autoHideMenuBar?: boolean; + /** + * Enable the window to be resized larger than screen. Only relevant for macOS, as + * other OSes allow larger-than-screen windows by default. Default is `false`. + */ + enableLargerThanScreen?: boolean; + /** + * Window's background color as a hexadecimal value, like `#66CD00` or `#FFF` or + * `#80FFFFFF` (alpha in #AARRGGBB format is supported if `transparent` is set to + * `true`). Default is `#FFF` (white). + */ + backgroundColor?: string; + /** + * Whether window should have a shadow. Default is `true`. + */ + hasShadow?: boolean; + /** + * Set the initial opacity of the window, between 0.0 (fully transparent) and 1.0 + * (fully opaque). This is only implemented on Windows and macOS. + */ + opacity?: number; + /** + * Forces using dark theme for the window, only works on some GTK+3 desktop + * environments. Default is `false`. + */ + darkTheme?: boolean; + /** + * Makes the window transparent. Default is `false`. On Windows, does not work + * unless the window is frameless. + */ + transparent?: boolean; + /** + * The type of window, default is normal window. See more about this below. + */ + type?: string; + /** + * Specify how the material appearance should reflect window activity state on + * macOS. Must be used with the `vibrancy` property. Possible values are: + */ + visualEffectState?: ('followWindow' | 'active' | 'inactive'); + /** + * The style of window title bar. Default is `default`. Possible values are: + */ + titleBarStyle?: ('default' | 'hidden' | 'hiddenInset' | 'customButtonsOnHover'); + /** + * Set a custom position for the traffic light buttons in frameless windows. + */ + trafficLightPosition?: Point; + /** + * Whether frameless window should have rounded corners on macOS. Default is + * `true`. + */ + roundedCorners?: boolean; + /** + * Shows the title in the title bar in full screen mode on macOS for `hiddenInset` + * titleBarStyle. Default is `false`. + * + * @deprecated + */ + fullscreenWindowTitle?: boolean; + /** + * Use `WS_THICKFRAME` style for frameless windows on Windows, which adds standard + * window frame. Setting it to `false` will remove window shadow and window + * animations. Default is `true`. + */ + thickFrame?: boolean; + /** + * Add a type of vibrancy effect to the window, only on macOS. Can be + * `appearance-based`, `light`, `dark`, `titlebar`, `selection`, `menu`, `popover`, + * `sidebar`, `medium-light`, `ultra-dark`, `header`, `sheet`, `window`, `hud`, + * `fullscreen-ui`, `tooltip`, `content`, `under-window`, or `under-page`. Please + * note that `appearance-based`, `light`, `dark`, `medium-light`, and `ultra-dark` + * are deprecated and have been removed in macOS Catalina (10.15). + */ + vibrancy?: ('appearance-based' | 'light' | 'dark' | 'titlebar' | 'selection' | 'menu' | 'popover' | 'sidebar' | 'medium-light' | 'ultra-dark' | 'header' | 'sheet' | 'window' | 'hud' | 'fullscreen-ui' | 'tooltip' | 'content' | 'under-window' | 'under-page'); + /** + * Controls the behavior on macOS when option-clicking the green stoplight button + * on the toolbar or by clicking the Window > Zoom menu item. If `true`, the window + * will grow to the preferred width of the web page when zoomed, `false` will cause + * it to zoom to the width of the screen. This will also affect the behavior when + * calling `maximize()` directly. Default is `false`. + */ + zoomToPageWidth?: boolean; + /** + * Tab group name, allows opening the window as a native tab on macOS 10.12+. + * Windows with the same tabbing identifier will be grouped together. This also + * adds a native new tab button to your window's tab bar and allows your `app` and + * window to receive the `new-window-for-tab` event. + */ + tabbingIdentifier?: string; + /** + * Settings of web page's features. + */ + webPreferences?: WebPreferences; + } + + interface CertificateTrustDialogOptions { + /** + * The certificate to trust/import. + */ + certificate: Certificate; + /** + * The message to display to the user. + */ + message: string; + } + + interface ClearStorageDataOptions { + /** + * Should follow `window.location.origin`’s representation `scheme://host:port`. + */ + origin?: string; + /** + * The types of storages to clear, can contain: `appcache`, `cookies`, + * `filesystem`, `indexdb`, `localstorage`, `shadercache`, `websql`, + * `serviceworkers`, `cachestorage`. If not specified, clear all storage types. + */ + storages?: string[]; + /** + * The types of quotas to clear, can contain: `temporary`, `persistent`, + * `syncable`. If not specified, clear all quotas. + */ + quotas?: string[]; + } + + interface ClientRequestConstructorOptions { + /** + * The HTTP request method. Defaults to the GET method. + */ + method?: string; + /** + * The request URL. Must be provided in the absolute form with the protocol scheme + * specified as http or https. + */ + url?: string; + /** + * The `Session` instance with which the request is associated. + */ + session?: Session; + /** + * The name of the `partition` with which the request is associated. Defaults to + * the empty string. The `session` option supersedes `partition`. Thus if a + * `session` is explicitly specified, `partition` is ignored. + */ + partition?: string; + /** + * Can be `include` or `omit`. Whether to send credentials with this request. If + * set to `include`, credentials from the session associated with the request will + * be used. If set to `omit`, credentials will not be sent with the request (and + * the `'login'` event will not be triggered in the event of a 401). This matches + * the behavior of the fetch option of the same name. If this option is not + * specified, authentication data from the session will be sent, and cookies will + * not be sent (unless `useSessionCookies` is set). + */ + credentials?: ('include' | 'omit'); + /** + * Whether to send cookies with this request from the provided session. If + * `credentials` is specified, this option has no effect. Default is `false`. + */ + useSessionCookies?: boolean; + /** + * Can be `http:` or `https:`. The protocol scheme in the form 'scheme:'. Defaults + * to 'http:'. + */ + protocol?: string; + /** + * The server host provided as a concatenation of the hostname and the port number + * 'hostname:port'. + */ + host?: string; + /** + * The server host name. + */ + hostname?: string; + /** + * The server's listening port number. + */ + port?: number; + /** + * The path part of the request URL. + */ + path?: string; + /** + * Can be `follow`, `error` or `manual`. The redirect mode for this request. When + * mode is `error`, any redirection will be aborted. When mode is `manual` the + * redirection will be cancelled unless `request.followRedirect` is invoked + * synchronously during the `redirect` event. Defaults to `follow`. + */ + redirect?: ('follow' | 'error' | 'manual'); + /** + * The origin URL of the request. + */ + origin?: string; + } + + interface Config { + /** + * The proxy mode. Should be one of `direct`, `auto_detect`, `pac_script`, + * `fixed_servers` or `system`. If it's unspecified, it will be automatically + * determined based on other specified options. + */ + mode?: ('direct' | 'auto_detect' | 'pac_script' | 'fixed_servers' | 'system'); + /** + * The URL associated with the PAC file. + */ + pacScript?: string; + /** + * Rules indicating which proxies to use. + */ + proxyRules?: string; + /** + * Rules indicating which URLs should bypass the proxy settings. + */ + proxyBypassRules?: string; + } + + interface ConsoleMessageEvent extends Event { + /** + * The log level, from 0 to 3. In order it matches `verbose`, `info`, `warning` and + * `error`. + */ + level: number; + /** + * The actual console message + */ + message: string; + /** + * The line number of the source that triggered this console message + */ + line: number; + sourceId: string; + } + + interface ContextMenuParams { + /** + * x coordinate. + */ + x: number; + /** + * y coordinate. + */ + y: number; + /** + * URL of the link that encloses the node the context menu was invoked on. + */ + linkURL: string; + /** + * Text associated with the link. May be an empty string if the contents of the + * link are an image. + */ + linkText: string; + /** + * URL of the top level page that the context menu was invoked on. + */ + pageURL: string; + /** + * URL of the subframe that the context menu was invoked on. + */ + frameURL: string; + /** + * Source URL for the element that the context menu was invoked on. Elements with + * source URLs are images, audio and video. + */ + srcURL: string; + /** + * Type of the node the context menu was invoked on. Can be `none`, `image`, + * `audio`, `video`, `canvas`, `file` or `plugin`. + */ + mediaType: ('none' | 'image' | 'audio' | 'video' | 'canvas' | 'file' | 'plugin'); + /** + * Whether the context menu was invoked on an image which has non-empty contents. + */ + hasImageContents: boolean; + /** + * Whether the context is editable. + */ + isEditable: boolean; + /** + * Text of the selection that the context menu was invoked on. + */ + selectionText: string; + /** + * Title text of the selection that the context menu was invoked on. + */ + titleText: string; + /** + * Alt text of the selection that the context menu was invoked on. + */ + altText: string; + /** + * Suggested filename to be used when saving file through 'Save Link As' option of + * context menu. + */ + suggestedFilename: string; + /** + * Rect representing the coordinates in the document space of the selection. + */ + selectionRect: Rectangle; + /** + * Start position of the selection text. + */ + selectionStartOffset: number; + /** + * The referrer policy of the frame on which the menu is invoked. + */ + referrerPolicy: Referrer; + /** + * The misspelled word under the cursor, if any. + */ + misspelledWord: string; + /** + * An array of suggested words to show the user to replace the `misspelledWord`. + * Only available if there is a misspelled word and spellchecker is enabled. + */ + dictionarySuggestions: string[]; + /** + * The character encoding of the frame on which the menu was invoked. + */ + frameCharset: string; + /** + * If the context menu was invoked on an input field, the type of that field. + * Possible values are `none`, `plainText`, `password`, `other`. + */ + inputFieldType: string; + /** + * If the context is editable, whether or not spellchecking is enabled. + */ + spellcheckEnabled: boolean; + /** + * Input source that invoked the context menu. Can be `none`, `mouse`, `keyboard`, + * `touch`, `touchMenu`, `longPress`, `longTap`, `touchHandle`, `stylus`, + * `adjustSelection`, or `adjustSelectionReset`. + */ + menuSourceType: ('none' | 'mouse' | 'keyboard' | 'touch' | 'touchMenu' | 'longPress' | 'longTap' | 'touchHandle' | 'stylus' | 'adjustSelection' | 'adjustSelectionReset'); + /** + * The flags for the media element the context menu was invoked on. + */ + mediaFlags: MediaFlags; + /** + * These flags indicate whether the renderer believes it is able to perform the + * corresponding action. + */ + editFlags: EditFlags; + } + + interface CookiesGetFilter { + /** + * Retrieves cookies which are associated with `url`. Empty implies retrieving + * cookies of all URLs. + */ + url?: string; + /** + * Filters cookies by name. + */ + name?: string; + /** + * Retrieves cookies whose domains match or are subdomains of `domains`. + */ + domain?: string; + /** + * Retrieves cookies whose path matches `path`. + */ + path?: string; + /** + * Filters cookies by their Secure property. + */ + secure?: boolean; + /** + * Filters out session or persistent cookies. + */ + session?: boolean; + } + + interface CookiesSetDetails { + /** + * The URL to associate the cookie with. The promise will be rejected if the URL is + * invalid. + */ + url: string; + /** + * The name of the cookie. Empty by default if omitted. + */ + name?: string; + /** + * The value of the cookie. Empty by default if omitted. + */ + value?: string; + /** + * The domain of the cookie; this will be normalized with a preceding dot so that + * it's also valid for subdomains. Empty by default if omitted. + */ + domain?: string; + /** + * The path of the cookie. Empty by default if omitted. + */ + path?: string; + /** + * Whether the cookie should be marked as Secure. Defaults to false. + */ + secure?: boolean; + /** + * Whether the cookie should be marked as HTTP only. Defaults to false. + */ + httpOnly?: boolean; + /** + * The expiration date of the cookie as the number of seconds since the UNIX epoch. + * If omitted then the cookie becomes a session cookie and will not be retained + * between sessions. + */ + expirationDate?: number; + /** + * The Same Site policy to apply to this cookie. Can be `unspecified`, + * `no_restriction`, `lax` or `strict`. Default is `no_restriction`. + */ + sameSite?: ('unspecified' | 'no_restriction' | 'lax' | 'strict'); + } + + interface CrashReporterStartOptions { + /** + * URL that crash reports will be sent to as POST. Required unless `uploadToServer` + * is `false`. + */ + submitURL?: string; + /** + * Defaults to `app.name`. + */ + productName?: string; + /** + * Deprecated alias for `{ globalExtra: { _companyName: ... } }`. + * + * @deprecated + */ + companyName?: string; + /** + * Whether crash reports should be sent to the server. If false, crash reports will + * be collected and stored in the crashes directory, but not uploaded. Default is + * `true`. + */ + uploadToServer?: boolean; + /** + * If true, crashes generated in the main process will not be forwarded to the + * system crash handler. Default is `false`. + */ + ignoreSystemCrashHandler?: boolean; + /** + * If true, limit the number of crashes uploaded to 1/hour. Default is `false`. + * + * @platform darwin,win32 + */ + rateLimit?: boolean; + /** + * If true, crash reports will be compressed and uploaded with `Content-Encoding: + * gzip`. Default is `true`. + */ + compress?: boolean; + /** + * Extra string key/value annotations that will be sent along with crash reports + * that are generated in the main process. Only string values are supported. + * Crashes generated in child processes will not contain these extra parameters to + * crash reports generated from child processes, call `addExtraParameter` from the + * child process. + */ + extra?: Record<string, string>; + /** + * Extra string key/value annotations that will be sent along with any crash + * reports generated in any process. These annotations cannot be changed once the + * crash reporter has been started. If a key is present in both the global extra + * parameters and the process-specific extra parameters, then the global one will + * take precedence. By default, `productName` and the app version are included, as + * well as the Electron version. + */ + globalExtra?: Record<string, string>; + } + + interface CreateFromBitmapOptions { + width: number; + height: number; + /** + * Defaults to 1.0. + */ + scaleFactor?: number; + } + + interface CreateFromBufferOptions { + /** + * Required for bitmap buffers. + */ + width?: number; + /** + * Required for bitmap buffers. + */ + height?: number; + /** + * Defaults to 1.0. + */ + scaleFactor?: number; + } + + interface CreateInterruptedDownloadOptions { + /** + * Absolute path of the download. + */ + path: string; + /** + * Complete URL chain for the download. + */ + urlChain: string[]; + mimeType?: string; + /** + * Start range for the download. + */ + offset: number; + /** + * Total length of the download. + */ + length: number; + /** + * Last-Modified header value. + */ + lastModified?: string; + /** + * ETag header value. + */ + eTag?: string; + /** + * Time when download was started in number of seconds since UNIX epoch. + */ + startTime?: number; + } + + interface Data { + text?: string; + html?: string; + image?: NativeImage; + rtf?: string; + /** + * The title of the URL at `text`. + */ + bookmark?: string; + } + + interface Details { + /** + * Process type. One of the following values: + */ + type: ('Utility' | 'Zygote' | 'Sandbox helper' | 'GPU' | 'Pepper Plugin' | 'Pepper Plugin Broker' | 'Unknown'); + /** + * The reason the child process is gone. Possible values: + */ + reason: ('clean-exit' | 'abnormal-exit' | 'killed' | 'crashed' | 'oom' | 'launch-failed' | 'integrity-failure'); + /** + * The exit code for the process (e.g. status from waitpid if on posix, from + * GetExitCodeProcess on Windows). + */ + exitCode: number; + /** + * The non-localized name of the process. + */ + serviceName?: string; + /** + * The name of the process. Examples for utility: `Audio Service`, `Content + * Decryption Module Service`, `Network Service`, `Video Capture`, etc. + */ + name?: string; + } + + interface DidChangeThemeColorEvent extends Event { + themeColor: string; + } + + interface DidCreateWindowDetails { + /** + * URL for the created window. + */ + url: string; + /** + * Name given to the created window in the `window.open()` call. + */ + frameName: string; + /** + * The options used to create the BrowserWindow. They are merged in increasing + * precedence: options inherited from the parent, parsed options from the + * `features` string from `window.open()`, and options given by + * `webContents.setWindowOpenHandler`. Unrecognized options are not filtered out. + */ + options: BrowserWindowConstructorOptions; + /** + * The non-standard features (features not handled Chromium or Electron) + * _Deprecated_ + */ + additionalFeatures: string[]; + /** + * The referrer that will be passed to the new window. May or may not result in the + * `Referer` header being sent, depending on the referrer policy. + */ + referrer: Referrer; + /** + * The post data that will be sent to the new window, along with the appropriate + * headers that will be set. If no post data is to be sent, the value will be + * `null`. Only defined when the window is being created by a form that set + * `target=_blank`. + */ + postBody?: PostBody; + /** + * Can be `default`, `foreground-tab`, `background-tab`, `new-window`, + * `save-to-disk` and `other`. + */ + disposition: ('default' | 'foreground-tab' | 'background-tab' | 'new-window' | 'save-to-disk' | 'other'); + } + + interface DidFailLoadEvent extends Event { + errorCode: number; + errorDescription: string; + validatedURL: string; + isMainFrame: boolean; + } + + interface DidFrameFinishLoadEvent extends Event { + isMainFrame: boolean; + } + + interface DidNavigateEvent extends Event { + url: string; + } + + interface DidNavigateInPageEvent extends Event { + isMainFrame: boolean; + url: string; + } + + interface DisplayBalloonOptions { + /** + * Icon to use when `iconType` is `custom`. + */ + icon?: (NativeImage) | (string); + /** + * Can be `none`, `info`, `warning`, `error` or `custom`. Default is `custom`. + */ + iconType?: ('none' | 'info' | 'warning' | 'error' | 'custom'); + title: string; + content: string; + /** + * The large version of the icon should be used. Default is `true`. Maps to + * `NIIF_LARGE_ICON`. + */ + largeIcon?: boolean; + /** + * Do not play the associated sound. Default is `false`. Maps to `NIIF_NOSOUND`. + */ + noSound?: boolean; + /** + * Do not display the balloon notification if the current user is in "quiet time". + * Default is `false`. Maps to `NIIF_RESPECT_QUIET_TIME`. + */ + respectQuietTime?: boolean; + } + + interface EnableNetworkEmulationOptions { + /** + * Whether to emulate network outage. Defaults to false. + */ + offline?: boolean; + /** + * RTT in ms. Defaults to 0 which will disable latency throttling. + */ + latency?: number; + /** + * Download rate in Bps. Defaults to 0 which will disable download throttling. + */ + downloadThroughput?: number; + /** + * Upload rate in Bps. Defaults to 0 which will disable upload throttling. + */ + uploadThroughput?: number; + } + + interface FeedURLOptions { + url: string; + /** + * HTTP request headers. + * + * @platform darwin + */ + headers?: Record<string, string>; + /** + * Can be `json` or `default`, see the Squirrel.Mac README for more information. + * + * @platform darwin + */ + serverType?: ('json' | 'default'); + } + + interface FileIconOptions { + size: ('small' | 'normal' | 'large'); + } + + interface Filter { + /** + * Array of URL patterns that will be used to filter out the requests that do not + * match the URL patterns. + */ + urls: string[]; + } + + interface FindInPageOptions { + /** + * Whether to search forward or backward, defaults to `true`. + */ + forward?: boolean; + /** + * Whether to begin a new text finding session with this request. Should be `true` + * for initial requests, and `false` for follow-up requests. Defaults to `false`. + */ + findNext?: boolean; + /** + * Whether search should be case-sensitive, defaults to `false`. + */ + matchCase?: boolean; + } + + interface FocusOptions { + /** + * Make the receiver the active app even if another app is currently active. + * + * @platform darwin + */ + steal: boolean; + } + + interface FoundInPageEvent extends Event { + result: FoundInPageResult; + } + + interface FromPartitionOptions { + /** + * Whether to enable cache. + */ + cache: boolean; + } + + interface HandlerDetails { + /** + * The _resolved_ version of the URL passed to `window.open()`. e.g. opening a + * window with `window.open('foo')` will yield something like + * `https://the-origin/the/current/path/foo`. + */ + url: string; + /** + * Name of the window provided in `window.open()` + */ + frameName: string; + /** + * Comma separated list of window features provided to `window.open()`. + */ + features: string; + /** + * Can be `default`, `foreground-tab`, `background-tab`, `new-window`, + * `save-to-disk` or `other`. + */ + disposition: ('default' | 'foreground-tab' | 'background-tab' | 'new-window' | 'save-to-disk' | 'other'); + /** + * The referrer that will be passed to the new window. May or may not result in the + * `Referer` header being sent, depending on the referrer policy. + */ + referrer: Referrer; + /** + * The post data that will be sent to the new window, along with the appropriate + * headers that will be set. If no post data is to be sent, the value will be + * `null`. Only defined when the window is being created by a form that set + * `target=_blank`. + */ + postBody?: PostBody; + } + + interface HeadersReceivedResponse { + cancel?: boolean; + /** + * When provided, the server is assumed to have responded with these headers. + */ + responseHeaders?: Record<string, (string) | (string[])>; + /** + * Should be provided when overriding `responseHeaders` to change header status + * otherwise original response header's status will be used. + */ + statusLine?: string; + } + + interface HeapStatistics { + totalHeapSize: number; + totalHeapSizeExecutable: number; + totalPhysicalSize: number; + totalAvailableSize: number; + usedHeapSize: number; + heapSizeLimit: number; + mallocedMemory: number; + peakMallocedMemory: number; + doesZapGarbage: boolean; + } + + interface IgnoreMouseEventsOptions { + /** + * If true, forwards mouse move messages to Chromium, enabling mouse related events + * such as `mouseleave`. Only used when `ignore` is true. If `ignore` is false, + * forwarding is always disabled regardless of this value. + * + * @platform darwin,win32 + */ + forward?: boolean; + } + + interface ImportCertificateOptions { + /** + * Path for the pkcs12 file. + */ + certificate: string; + /** + * Passphrase for the certificate. + */ + password: string; + } + + interface Info { + /** + * Security origin for the isolated world. + */ + securityOrigin?: string; + /** + * Content Security Policy for the isolated world. + */ + csp?: string; + /** + * Name for isolated world. Useful in devtools. + */ + name?: string; + } + + interface Input { + /** + * Either `keyUp` or `keyDown`. + */ + type: string; + /** + * Equivalent to KeyboardEvent.key. + */ + key: string; + /** + * Equivalent to KeyboardEvent.code. + */ + code: string; + /** + * Equivalent to KeyboardEvent.repeat. + */ + isAutoRepeat: boolean; + /** + * Equivalent to KeyboardEvent.isComposing. + */ + isComposing: boolean; + /** + * Equivalent to KeyboardEvent.shiftKey. + */ + shift: boolean; + /** + * Equivalent to KeyboardEvent.controlKey. + */ + control: boolean; + /** + * Equivalent to KeyboardEvent.altKey. + */ + alt: boolean; + /** + * Equivalent to KeyboardEvent.metaKey. + */ + meta: boolean; + } + + interface InsertCSSOptions { + /** + * Can be either 'user' or 'author'; Specifying 'user' enables you to prevent + * websites from overriding the CSS you insert. Default is 'author'. + */ + cssOrigin?: string; + } + + interface IpcMessageEvent extends Event { + channel: string; + args: any[]; + } + + interface Item { + /** + * The path(s) to the file(s) being dragged. + */ + file: (string[]) | (string); + /** + * The image must be non-empty on macOS. + */ + icon: (NativeImage) | (string); + } + + interface JumpListSettings { + /** + * The minimum number of items that will be shown in the Jump List (for a more + * detailed description of this value see the MSDN docs). + */ + minItems: number; + /** + * Array of `JumpListItem` objects that correspond to items that the user has + * explicitly removed from custom categories in the Jump List. These items must not + * be re-added to the Jump List in the **next** call to `app.setJumpList()`, + * Windows will not display any custom category that contains any of the removed + * items. + */ + removedItems: JumpListItem[]; + } + + interface LoadCommitEvent extends Event { + url: string; + isMainFrame: boolean; + } + + interface LoadExtensionOptions { + /** + * Whether to allow the extension to read local files over `file://` protocol and + * inject content scripts into `file://` pages. This is required e.g. for loading + * devtools extensions on `file://` URLs. Defaults to false. + */ + allowFileAccess: boolean; + } + + interface LoadFileOptions { + /** + * Passed to `url.format()`. + */ + query?: Record<string, string>; + /** + * Passed to `url.format()`. + */ + search?: string; + /** + * Passed to `url.format()`. + */ + hash?: string; + } + + interface LoadURLOptions { + /** + * An HTTP Referrer url. + */ + httpReferrer?: (string) | (Referrer); + /** + * A user agent originating the request. + */ + userAgent?: string; + /** + * Extra headers separated by "\n" + */ + extraHeaders?: string; + postData?: Array<(UploadRawData) | (UploadFile)>; + /** + * Base url (with trailing path separator) for files to be loaded by the data url. + * This is needed only if the specified `url` is a data url and needs to load other + * files. + */ + baseURLForDataURL?: string; + } + + interface LoginItemSettings { + /** + * `true` if the app is set to open at login. + */ + openAtLogin: boolean; + /** + * `true` if the app is set to open as hidden at login. This setting is not + * available on MAS builds. + * + * @platform darwin + */ + openAsHidden: boolean; + /** + * `true` if the app was opened at login automatically. This setting is not + * available on MAS builds. + * + * @platform darwin + */ + wasOpenedAtLogin: boolean; + /** + * `true` if the app was opened as a hidden login item. This indicates that the app + * should not open any windows at startup. This setting is not available on MAS + * builds. + * + * @platform darwin + */ + wasOpenedAsHidden: boolean; + /** + * `true` if the app was opened as a login item that should restore the state from + * the previous session. This indicates that the app should restore the windows + * that were open the last time the app was closed. This setting is not available + * on MAS builds. + * + * @platform darwin + */ + restoreState: boolean; + /** + * `true` if app is set to open at login and its run key is not deactivated. This + * differs from `openAtLogin` as it ignores the `args` option, this property will + * be true if the given executable would be launched at login with **any** + * arguments. + * + * @platform win32 + */ + executableWillLaunchAtLogin: boolean; + launchItems: LaunchItems[]; + } + + interface LoginItemSettingsOptions { + /** + * The executable path to compare against. Defaults to `process.execPath`. + * + * @platform win32 + */ + path?: string; + /** + * The command-line arguments to compare against. Defaults to an empty array. + * + * @platform win32 + */ + args?: string[]; + } + + interface MenuItemConstructorOptions { + /** + * Will be called with `click(menuItem, browserWindow, event)` when the menu item + * is clicked. + */ + click?: (menuItem: MenuItem, browserWindow: (BrowserWindow) | (undefined), event: KeyboardEvent) => void; + /** + * Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, + * `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, + * `zoomOut`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, + * `services`, `hide`, `hideOthers`, `unhide`, `quit`, `startSpeaking`, + * `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, + * `shareMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, + * `selectPreviousTab`, `mergeAllWindows`, `clearRecentDocuments`, + * `moveTabToNewWindow` or `windowMenu` - Define the action of the menu item, when + * specified the `click` property will be ignored. See roles. + */ + role?: ('undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'pasteAndMatchStyle' | 'delete' | 'selectAll' | 'reload' | 'forceReload' | 'toggleDevTools' | 'resetZoom' | 'zoomIn' | 'zoomOut' | 'togglefullscreen' | 'window' | 'minimize' | 'close' | 'help' | 'about' | 'services' | 'hide' | 'hideOthers' | 'unhide' | 'quit' | 'startSpeaking' | 'stopSpeaking' | 'zoom' | 'front' | 'appMenu' | 'fileMenu' | 'editMenu' | 'viewMenu' | 'shareMenu' | 'recentDocuments' | 'toggleTabBar' | 'selectNextTab' | 'selectPreviousTab' | 'mergeAllWindows' | 'clearRecentDocuments' | 'moveTabToNewWindow' | 'windowMenu'); + /** + * Can be `normal`, `separator`, `submenu`, `checkbox` or `radio`. + */ + type?: ('normal' | 'separator' | 'submenu' | 'checkbox' | 'radio'); + label?: string; + sublabel?: string; + /** + * Hover text for this menu item. + * + * @platform darwin + */ + toolTip?: string; + accelerator?: Accelerator; + icon?: (NativeImage) | (string); + /** + * If false, the menu item will be greyed out and unclickable. + */ + enabled?: boolean; + /** + * default is `true`, and when `false` will prevent the accelerator from triggering + * the item if the item is not visible`. + * + * @platform darwin + */ + acceleratorWorksWhenHidden?: boolean; + /** + * If false, the menu item will be entirely hidden. + */ + visible?: boolean; + /** + * Should only be specified for `checkbox` or `radio` type menu items. + */ + checked?: boolean; + /** + * If false, the accelerator won't be registered with the system, but it will still + * be displayed. Defaults to true. + * + * @platform linux,win32 + */ + registerAccelerator?: boolean; + /** + * The item to share when the `role` is `shareMenu`. + * + * @platform darwin + */ + sharingItem?: SharingItem; + /** + * Should be specified for `submenu` type menu items. If `submenu` is specified, + * the `type: 'submenu'` can be omitted. If the value is not a `Menu` then it will + * be automatically converted to one using `Menu.buildFromTemplate`. + */ + submenu?: (MenuItemConstructorOptions[]) | (Menu); + /** + * Unique within a single menu. If defined then it can be used as a reference to + * this item by the position attribute. + */ + id?: string; + /** + * Inserts this item before the item with the specified label. If the referenced + * item doesn't exist the item will be inserted at the end of the menu. Also + * implies that the menu item in question should be placed in the same “group” as + * the item. + */ + before?: string[]; + /** + * Inserts this item after the item with the specified label. If the referenced + * item doesn't exist the item will be inserted at the end of the menu. + */ + after?: string[]; + /** + * Provides a means for a single context menu to declare the placement of their + * containing group before the containing group of the item with the specified + * label. + */ + beforeGroupContaining?: string[]; + /** + * Provides a means for a single context menu to declare the placement of their + * containing group after the containing group of the item with the specified + * label. + */ + afterGroupContaining?: string[]; + } + + interface MessageBoxOptions { + /** + * Content of the message box. + */ + message: string; + /** + * Can be `"none"`, `"info"`, `"error"`, `"question"` or `"warning"`. On Windows, + * `"question"` displays the same icon as `"info"`, unless you set an icon using + * the `"icon"` option. On macOS, both `"warning"` and `"error"` display the same + * warning icon. + */ + type?: string; + /** + * Array of texts for buttons. On Windows, an empty array will result in one button + * labeled "OK". + */ + buttons?: string[]; + /** + * Index of the button in the buttons array which will be selected by default when + * the message box opens. + */ + defaultId?: number; + /** + * Title of the message box, some platforms will not show it. + */ + title?: string; + /** + * Extra information of the message. + */ + detail?: string; + /** + * If provided, the message box will include a checkbox with the given label. + */ + checkboxLabel?: string; + /** + * Initial checked state of the checkbox. `false` by default. + */ + checkboxChecked?: boolean; + icon?: NativeImage; + /** + * The index of the button to be used to cancel the dialog, via the `Esc` key. By + * default this is assigned to the first button with "cancel" or "no" as the label. + * If no such labeled buttons exist and this option is not set, `0` will be used as + * the return value. + */ + cancelId?: number; + /** + * On Windows Electron will try to figure out which one of the `buttons` are common + * buttons (like "Cancel" or "Yes"), and show the others as command links in the + * dialog. This can make the dialog appear in the style of modern Windows apps. If + * you don't like this behavior, you can set `noLink` to `true`. + */ + noLink?: boolean; + /** + * Normalize the keyboard access keys across platforms. Default is `false`. + * Enabling this assumes `&` is used in the button labels for the placement of the + * keyboard shortcut access key and labels will be converted so they work correctly + * on each platform, `&` characters are removed on macOS, converted to `_` on + * Linux, and left untouched on Windows. For example, a button label of `Vie&w` + * will be converted to `Vie_w` on Linux and `View` on macOS and can be selected + * via `Alt-W` on Windows and Linux. + */ + normalizeAccessKeys?: boolean; + } + + interface MessageBoxReturnValue { + /** + * The index of the clicked button. + */ + response: number; + /** + * The checked state of the checkbox if `checkboxLabel` was set. Otherwise `false`. + */ + checkboxChecked: boolean; + } + + interface MessageBoxSyncOptions { + /** + * Content of the message box. + */ + message: string; + /** + * Can be `"none"`, `"info"`, `"error"`, `"question"` or `"warning"`. On Windows, + * `"question"` displays the same icon as `"info"`, unless you set an icon using + * the `"icon"` option. On macOS, both `"warning"` and `"error"` display the same + * warning icon. + */ + type?: string; + /** + * Array of texts for buttons. On Windows, an empty array will result in one button + * labeled "OK". + */ + buttons?: string[]; + /** + * Index of the button in the buttons array which will be selected by default when + * the message box opens. + */ + defaultId?: number; + /** + * Title of the message box, some platforms will not show it. + */ + title?: string; + /** + * Extra information of the message. + */ + detail?: string; + /** + * If provided, the message box will include a checkbox with the given label. + */ + checkboxLabel?: string; + /** + * Initial checked state of the checkbox. `false` by default. + */ + checkboxChecked?: boolean; + icon?: (NativeImage) | (string); + /** + * The index of the button to be used to cancel the dialog, via the `Esc` key. By + * default this is assigned to the first button with "cancel" or "no" as the label. + * If no such labeled buttons exist and this option is not set, `0` will be used as + * the return value. + */ + cancelId?: number; + /** + * On Windows Electron will try to figure out which one of the `buttons` are common + * buttons (like "Cancel" or "Yes"), and show the others as command links in the + * dialog. This can make the dialog appear in the style of modern Windows apps. If + * you don't like this behavior, you can set `noLink` to `true`. + */ + noLink?: boolean; + /** + * Normalize the keyboard access keys across platforms. Default is `false`. + * Enabling this assumes `&` is used in the button labels for the placement of the + * keyboard shortcut access key and labels will be converted so they work correctly + * on each platform, `&` characters are removed on macOS, converted to `_` on + * Linux, and left untouched on Windows. For example, a button label of `Vie&w` + * will be converted to `Vie_w` on Linux and `View` on macOS and can be selected + * via `Alt-W` on Windows and Linux. + */ + normalizeAccessKeys?: boolean; + } + + interface MessageDetails { + /** + * The actual console message + */ + message: string; + /** + * The version ID of the service worker that sent the log message + */ + versionId: number; + /** + * The type of source for this message. Can be `javascript`, `xml`, `network`, + * `console-api`, `storage`, `app-cache`, `rendering`, `security`, `deprecation`, + * `worker`, `violation`, `intervention`, `recommendation` or `other`. + */ + source: ('javascript' | 'xml' | 'network' | 'console-api' | 'storage' | 'app-cache' | 'rendering' | 'security' | 'deprecation' | 'worker' | 'violation' | 'intervention' | 'recommendation' | 'other'); + /** + * The log level, from 0 to 3. In order it matches `verbose`, `info`, `warning` and + * `error`. + */ + level: number; + /** + * The URL the message came from + */ + sourceUrl: string; + /** + * The line number of the source that triggered this console message + */ + lineNumber: number; + } + + interface MessageEvent { + data: any; + ports: MessagePortMain[]; + } + + interface MoveToApplicationsFolderOptions { + /** + * A handler for potential conflict in move failure. + */ + conflictHandler?: (conflictType: 'exists' | 'existsAndRunning') => boolean; + } + + interface NewWindowEvent extends Event { + url: string; + frameName: string; + /** + * Can be `default`, `foreground-tab`, `background-tab`, `new-window`, + * `save-to-disk` and `other`. + */ + disposition: ('default' | 'foreground-tab' | 'background-tab' | 'new-window' | 'save-to-disk' | 'other'); + /** + * The options which should be used for creating the new `BrowserWindow`. + */ + options: BrowserWindowConstructorOptions; + } + + interface NotificationConstructorOptions { + /** + * A title for the notification, which will be shown at the top of the notification + * window when it is shown. + */ + title?: string; + /** + * A subtitle for the notification, which will be displayed below the title. + * + * @platform darwin + */ + subtitle?: string; + /** + * The body text of the notification, which will be displayed below the title or + * subtitle. + */ + body?: string; + /** + * Whether or not to emit an OS notification noise when showing the notification. + */ + silent?: boolean; + /** + * An icon to use in the notification. + */ + icon?: (string) | (NativeImage); + /** + * Whether or not to add an inline reply option to the notification. + * + * @platform darwin + */ + hasReply?: boolean; + /** + * The timeout duration of the notification. Can be 'default' or 'never'. + * + * @platform linux,win32 + */ + timeoutType?: ('default' | 'never'); + /** + * The placeholder to write in the inline reply input field. + * + * @platform darwin + */ + replyPlaceholder?: string; + /** + * The name of the sound file to play when the notification is shown. + * + * @platform darwin + */ + sound?: string; + /** + * The urgency level of the notification. Can be 'normal', 'critical', or 'low'. + * + * @platform linux + */ + urgency?: ('normal' | 'critical' | 'low'); + /** + * Actions to add to the notification. Please read the available actions and + * limitations in the `NotificationAction` documentation. + * + * @platform darwin + */ + actions?: NotificationAction[]; + /** + * A custom title for the close button of an alert. An empty string will cause the + * default localized text to be used. + * + * @platform darwin + */ + closeButtonText?: string; + /** + * A custom description of the Notification on Windows superseding all properties + * above. Provides full customization of design and behavior of the notification. + * + * @platform win32 + */ + toastXml?: string; + } + + interface OnBeforeRedirectListenerDetails { + id: number; + url: string; + method: string; + webContentsId?: number; + webContents?: WebContents; + frame?: WebFrameMain; + resourceType: string; + referrer: string; + timestamp: number; + redirectURL: string; + statusCode: number; + statusLine: string; + /** + * The server IP address that the request was actually sent to. + */ + ip?: string; + fromCache: boolean; + responseHeaders?: Record<string, string[]>; + } + + interface OnBeforeRequestListenerDetails { + id: number; + url: string; + method: string; + webContentsId?: number; + webContents?: WebContents; + frame?: WebFrameMain; + resourceType: string; + referrer: string; + timestamp: number; + uploadData: UploadData[]; + } + + interface OnBeforeSendHeadersListenerDetails { + id: number; + url: string; + method: string; + webContentsId?: number; + webContents?: WebContents; + frame?: WebFrameMain; + resourceType: string; + referrer: string; + timestamp: number; + requestHeaders: Record<string, string>; + } + + interface OnCompletedListenerDetails { + id: number; + url: string; + method: string; + webContentsId?: number; + webContents?: WebContents; + frame?: WebFrameMain; + resourceType: string; + referrer: string; + timestamp: number; + responseHeaders?: Record<string, string[]>; + fromCache: boolean; + statusCode: number; + statusLine: string; + error: string; + } + + interface OnErrorOccurredListenerDetails { + id: number; + url: string; + method: string; + webContentsId?: number; + webContents?: WebContents; + frame?: WebFrameMain; + resourceType: string; + referrer: string; + timestamp: number; + fromCache: boolean; + /** + * The error description. + */ + error: string; + } + + interface OnHeadersReceivedListenerDetails { + id: number; + url: string; + method: string; + webContentsId?: number; + webContents?: WebContents; + frame?: WebFrameMain; + resourceType: string; + referrer: string; + timestamp: number; + statusLine: string; + statusCode: number; + requestHeaders: Record<string, string>; + responseHeaders?: Record<string, string[]>; + } + + interface OnResponseStartedListenerDetails { + id: number; + url: string; + method: string; + webContentsId?: number; + webContents?: WebContents; + frame?: WebFrameMain; + resourceType: string; + referrer: string; + timestamp: number; + responseHeaders?: Record<string, string[]>; + /** + * Indicates whether the response was fetched from disk cache. + */ + fromCache: boolean; + statusCode: number; + statusLine: string; + } + + interface OnSendHeadersListenerDetails { + id: number; + url: string; + method: string; + webContentsId?: number; + webContents?: WebContents; + frame?: WebFrameMain; + resourceType: string; + referrer: string; + timestamp: number; + requestHeaders: Record<string, string>; + } + + interface OpenDevToolsOptions { + /** + * Opens the devtools with specified dock state, can be `right`, `bottom`, + * `undocked`, `detach`. Defaults to last used dock state. In `undocked` mode it's + * possible to dock back. In `detach` mode it's not. + */ + mode: ('right' | 'bottom' | 'undocked' | 'detach'); + /** + * Whether to bring the opened devtools window to the foreground. The default is + * `true`. + */ + activate?: boolean; + } + + interface OpenDialogOptions { + title?: string; + defaultPath?: string; + /** + * Custom label for the confirmation button, when left empty the default label will + * be used. + */ + buttonLabel?: string; + filters?: FileFilter[]; + /** + * Contains which features the dialog should use. The following values are + * supported: + */ + properties?: Array<'openFile' | 'openDirectory' | 'multiSelections' | 'showHiddenFiles' | 'createDirectory' | 'promptToCreate' | 'noResolveAliases' | 'treatPackageAsDirectory' | 'dontAddToRecent'>; + /** + * Message to display above input boxes. + * + * @platform darwin + */ + message?: string; + /** + * Create security scoped bookmarks when packaged for the Mac App Store. + * + * @platform darwin,mas + */ + securityScopedBookmarks?: boolean; + } + + interface OpenDialogReturnValue { + /** + * whether or not the dialog was canceled. + */ + canceled: boolean; + /** + * An array of file paths chosen by the user. If the dialog is cancelled this will + * be an empty array. + */ + filePaths: string[]; + /** + * An array matching the `filePaths` array of base64 encoded strings which contains + * security scoped bookmark data. `securityScopedBookmarks` must be enabled for + * this to be populated. (For return values, see table here.) + * + * @platform darwin,mas + */ + bookmarks?: string[]; + } + + interface OpenDialogSyncOptions { + title?: string; + defaultPath?: string; + /** + * Custom label for the confirmation button, when left empty the default label will + * be used. + */ + buttonLabel?: string; + filters?: FileFilter[]; + /** + * Contains which features the dialog should use. The following values are + * supported: + */ + properties?: Array<'openFile' | 'openDirectory' | 'multiSelections' | 'showHiddenFiles' | 'createDirectory' | 'promptToCreate' | 'noResolveAliases' | 'treatPackageAsDirectory' | 'dontAddToRecent'>; + /** + * Message to display above input boxes. + * + * @platform darwin + */ + message?: string; + /** + * Create security scoped bookmarks when packaged for the Mac App Store. + * + * @platform darwin,mas + */ + securityScopedBookmarks?: boolean; + } + + interface OpenExternalOptions { + /** + * `true` to bring the opened application to the foreground. The default is `true`. + * + * @platform darwin + */ + activate?: boolean; + /** + * The working directory. + * + * @platform win32 + */ + workingDirectory?: string; + } + + interface Options { + } + + interface PageFaviconUpdatedEvent extends Event { + /** + * Array of URLs. + */ + favicons: string[]; + } + + interface PageTitleUpdatedEvent extends Event { + title: string; + explicitSet: boolean; + } + + interface Parameters { + /** + * Specify the screen type to emulate (default: `desktop`): + */ + screenPosition: ('desktop' | 'mobile'); + /** + * Set the emulated screen size (screenPosition == mobile). + */ + screenSize: Size; + /** + * Position the view on the screen (screenPosition == mobile) (default: `{ x: 0, y: + * 0 }`). + */ + viewPosition: Point; + /** + * Set the device scale factor (if zero defaults to original device scale factor) + * (default: `0`). + */ + deviceScaleFactor: number; + /** + * Set the emulated view size (empty means no override) + */ + viewSize: Size; + /** + * Scale of emulated view inside available space (not in fit to view mode) + * (default: `1`). + */ + scale: number; + } + + interface Payment { + /** + * The identifier of the purchased product. + */ + productIdentifier: string; + /** + * The quantity purchased. + */ + quantity: number; + } + + interface PermissionCheckHandlerHandlerDetails { + /** + * The origin of the frame embedding the frame that made the permission check. + * Only set for cross-origin sub frames making permission checks. + */ + embeddingOrigin?: string; + /** + * The security origin of the `media` check. + */ + securityOrigin?: string; + /** + * The type of media access being requested, can be `video`, `audio` or `unknown` + */ + mediaType?: ('video' | 'audio' | 'unknown'); + /** + * The last URL the requesting frame loaded. This is not provided for cross-origin + * sub frames making permission checks. + */ + requestingUrl?: string; + /** + * Whether the frame making the request is the main frame + */ + isMainFrame: boolean; + } + + interface PermissionRequestHandlerHandlerDetails { + /** + * The url of the `openExternal` request. + */ + externalURL?: string; + /** + * The types of media access being requested, elements can be `video` or `audio` + */ + mediaTypes?: Array<'video' | 'audio'>; + /** + * The last URL the requesting frame loaded + */ + requestingUrl: string; + /** + * Whether the frame making the request is the main frame + */ + isMainFrame: boolean; + } + + interface PluginCrashedEvent extends Event { + name: string; + version: string; + } + + interface PopupOptions { + /** + * Default is the focused window. + */ + window?: BrowserWindow; + /** + * Default is the current mouse cursor position. Must be declared if `y` is + * declared. + */ + x?: number; + /** + * Default is the current mouse cursor position. Must be declared if `x` is + * declared. + */ + y?: number; + /** + * The index of the menu item to be positioned under the mouse cursor at the + * specified coordinates. Default is -1. + * + * @platform darwin + */ + positioningItem?: number; + /** + * Called when menu is closed. + */ + callback?: () => void; + } + + interface PreconnectOptions { + /** + * URL for preconnect. Only the origin is relevant for opening the socket. + */ + url: string; + /** + * number of sockets to preconnect. Must be between 1 and 6. Defaults to 1. + */ + numSockets?: number; + } + + interface PrintToPDFOptions { + /** + * the header and footer for the PDF. + */ + headerFooter?: Record<string, string>; + /** + * `true` for landscape, `false` for portrait. + */ + landscape?: boolean; + /** + * Specifies the type of margins to use. Uses 0 for default margin, 1 for no + * margin, and 2 for minimum margin. and `width` in microns. + */ + marginsType?: number; + /** + * The scale factor of the web page. Can range from 0 to 100. + */ + scaleFactor?: number; + /** + * The page range to print. On macOS, only the first range is honored. + */ + pageRanges?: Record<string, number>; + /** + * Specify page size of the generated PDF. Can be `A3`, `A4`, `A5`, `Legal`, + * `Letter`, `Tabloid` or an Object containing `height` + */ + pageSize?: (string) | (Size); + /** + * Whether to print CSS backgrounds. + */ + printBackground?: boolean; + /** + * Whether to print selection only. + */ + printSelectionOnly?: boolean; + } + + interface Privileges { + /** + * Default false. + */ + standard?: boolean; + /** + * Default false. + */ + secure?: boolean; + /** + * Default false. + */ + bypassCSP?: boolean; + /** + * Default false. + */ + allowServiceWorkers?: boolean; + /** + * Default false. + */ + supportFetchAPI?: boolean; + /** + * Default false. + */ + corsEnabled?: boolean; + /** + * Default false. + */ + stream?: boolean; + } + + interface ProgressBarOptions { + /** + * Mode for the progress bar. Can be `none`, `normal`, `indeterminate`, `error` or + * `paused`. + * + * @platform win32 + */ + mode: ('none' | 'normal' | 'indeterminate' | 'error' | 'paused'); + } + + interface Provider { + spellCheck: (words: string[], callback: (misspeltWords: string[]) => void) => void; + } + + interface ReadBookmark { + title: string; + url: string; + } + + interface RegistrationCompletedDetails { + /** + * The base URL that a service worker is registered for + */ + scope: string; + } + + interface RelaunchOptions { + args?: string[]; + execPath?: string; + } + + interface RenderProcessGoneDetails { + /** + * The reason the render process is gone. Possible values: + */ + reason: ('clean-exit' | 'abnormal-exit' | 'killed' | 'crashed' | 'oom' | 'launch-failed' | 'integrity-failure'); + /** + * The exit code of the process, unless `reason` is `launch-failed`, in which case + * `exitCode` will be a platform-specific launch failure error code. + */ + exitCode: number; + } + + interface Request { + hostname: string; + certificate: Certificate; + validatedCertificate: Certificate; + /** + * Verification result from chromium. + */ + verificationResult: string; + /** + * Error code. + */ + errorCode: number; + } + + interface ResizeOptions { + /** + * Defaults to the image's width. + */ + width?: number; + /** + * Defaults to the image's height. + */ + height?: number; + /** + * The desired quality of the resize image. Possible values are `good`, `better`, + * or `best`. The default is `best`. These values express a desired quality/speed + * tradeoff. They are translated into an algorithm-specific method that depends on + * the capabilities (CPU, GPU) of the underlying platform. It is possible for all + * three methods to be mapped to the same algorithm on a given platform. + */ + quality?: string; + } + + interface ResourceUsage { + images: MemoryUsageDetails; + scripts: MemoryUsageDetails; + cssStyleSheets: MemoryUsageDetails; + xslStyleSheets: MemoryUsageDetails; + fonts: MemoryUsageDetails; + other: MemoryUsageDetails; + } + + interface Response { + cancel?: boolean; + /** + * The original request is prevented from being sent or completed and is instead + * redirected to the given URL. + */ + redirectURL?: string; + } + + interface Result { + requestId: number; + /** + * Position of the active match. + */ + activeMatchOrdinal: number; + /** + * Number of Matches. + */ + matches: number; + /** + * Coordinates of first match region. + */ + selectionArea: Rectangle; + finalUpdate: boolean; + } + + interface SaveDialogOptions { + /** + * The dialog title. Cannot be displayed on some _Linux_ desktop environments. + */ + title?: string; + /** + * Absolute directory path, absolute file path, or file name to use by default. + */ + defaultPath?: string; + /** + * Custom label for the confirmation button, when left empty the default label will + * be used. + */ + buttonLabel?: string; + filters?: FileFilter[]; + /** + * Message to display above text fields. + * + * @platform darwin + */ + message?: string; + /** + * Custom label for the text displayed in front of the filename text field. + * + * @platform darwin + */ + nameFieldLabel?: string; + /** + * Show the tags input box, defaults to `true`. + * + * @platform darwin + */ + showsTagField?: boolean; + properties?: Array<'showHiddenFiles' | 'createDirectory' | 'treatPackageAsDirectory' | 'showOverwriteConfirmation' | 'dontAddToRecent'>; + /** + * Create a security scoped bookmark when packaged for the Mac App Store. If this + * option is enabled and the file doesn't already exist a blank file will be + * created at the chosen path. + * + * @platform darwin,mas + */ + securityScopedBookmarks?: boolean; + } + + interface SaveDialogReturnValue { + /** + * whether or not the dialog was canceled. + */ + canceled: boolean; + /** + * If the dialog is canceled, this will be `undefined`. + */ + filePath?: string; + /** + * Base64 encoded string which contains the security scoped bookmark data for the + * saved file. `securityScopedBookmarks` must be enabled for this to be present. + * (For return values, see table here.) + * + * @platform darwin,mas + */ + bookmark?: string; + } + + interface SaveDialogSyncOptions { + /** + * The dialog title. Cannot be displayed on some _Linux_ desktop environments. + */ + title?: string; + /** + * Absolute directory path, absolute file path, or file name to use by default. + */ + defaultPath?: string; + /** + * Custom label for the confirmation button, when left empty the default label will + * be used. + */ + buttonLabel?: string; + filters?: FileFilter[]; + /** + * Message to display above text fields. + * + * @platform darwin + */ + message?: string; + /** + * Custom label for the text displayed in front of the filename text field. + * + * @platform darwin + */ + nameFieldLabel?: string; + /** + * Show the tags input box, defaults to `true`. + * + * @platform darwin + */ + showsTagField?: boolean; + properties?: Array<'showHiddenFiles' | 'createDirectory' | 'treatPackageAsDirectory' | 'showOverwriteConfirmation' | 'dontAddToRecent'>; + /** + * Create a security scoped bookmark when packaged for the Mac App Store. If this + * option is enabled and the file doesn't already exist a blank file will be + * created at the chosen path. + * + * @platform darwin,mas + */ + securityScopedBookmarks?: boolean; + } + + interface Settings { + /** + * `true` to open the app at login, `false` to remove the app as a login item. + * Defaults to `false`. + */ + openAtLogin?: boolean; + /** + * `true` to open the app as hidden. Defaults to `false`. The user can edit this + * setting from the System Preferences so + * `app.getLoginItemSettings().wasOpenedAsHidden` should be checked when the app is + * opened to know the current value. This setting is not available on MAS builds. + * + * @platform darwin + */ + openAsHidden?: boolean; + /** + * The executable to launch at login. Defaults to `process.execPath`. + * + * @platform win32 + */ + path?: string; + /** + * The command-line arguments to pass to the executable. Defaults to an empty + * array. Take care to wrap paths in quotes. + * + * @platform win32 + */ + args?: string[]; + /** + * `true` will change the startup approved registry key and `enable / disable` the + * App in Task Manager and Windows Settings. Defaults to `true`. + * + * @platform win32 + */ + enabled?: boolean; + /** + * value name to write into registry. Defaults to the app's AppUserModelId(). Set + * the app's login item settings. + * + * @platform win32 + */ + name?: string; + } + + interface SourcesOptions { + /** + * An array of Strings that lists the types of desktop sources to be captured, + * available types are `screen` and `window`. + */ + types: string[]; + /** + * The size that the media source thumbnail should be scaled to. Default is `150` x + * `150`. Set width or height to 0 when you do not need the thumbnails. This will + * save the processing time required for capturing the content of each window and + * screen. + */ + thumbnailSize?: Size; + /** + * Set to true to enable fetching window icons. The default value is false. When + * false the appIcon property of the sources return null. Same if a source has the + * type screen. + */ + fetchWindowIcons?: boolean; + } + + interface SSLConfigConfig { + /** + * Can be `tls1`, `tls1.1`, `tls1.2` or `tls1.3`. The minimum SSL version to allow + * when connecting to remote servers. Defaults to `tls1`. + */ + minVersion?: string; + /** + * Can be `tls1.2` or `tls1.3`. The maximum SSL version to allow when connecting to + * remote servers. Defaults to `tls1.3`. + */ + maxVersion?: string; + /** + * List of cipher suites which should be explicitly prevented from being used in + * addition to those disabled by the net built-in policy. Supported literal forms: + * 0xAABB, where AA is `cipher_suite[0]` and BB is `cipher_suite[1]`, as defined in + * RFC 2246, Section 7.4.1.2. Unrecognized but parsable cipher suites in this form + * will not return an error. Ex: To disable TLS_RSA_WITH_RC4_128_MD5, specify + * 0x0004, while to disable TLS_ECDH_ECDSA_WITH_RC4_128_SHA, specify 0xC002. Note + * that TLSv1.3 ciphers cannot be disabled using this mechanism. + */ + disabledCipherSuites?: number[]; + } + + interface StartLoggingOptions { + /** + * What kinds of data should be captured. By default, only metadata about requests + * will be captured. Setting this to `includeSensitive` will include cookies and + * authentication data. Setting it to `everything` will include all bytes + * transferred on sockets. Can be `default`, `includeSensitive` or `everything`. + */ + captureMode?: ('default' | 'includeSensitive' | 'everything'); + /** + * When the log grows beyond this size, logging will automatically stop. Defaults + * to unlimited. + */ + maxFileSize?: number; + } + + interface SystemMemoryInfo { + /** + * The total amount of physical memory in Kilobytes available to the system. + */ + total: number; + /** + * The total amount of memory not being used by applications or disk cache. + */ + free: number; + /** + * The total amount of swap memory in Kilobytes available to the system. + * + * @platform win32,linux + */ + swapTotal: number; + /** + * The free amount of swap memory in Kilobytes available to the system. + * + * @platform win32,linux + */ + swapFree: number; + } + + interface TitleOptions { + /** + * The font family variant to display, can be `monospaced` or `monospacedDigit`. + * `monospaced` is available in macOS 10.15+ and `monospacedDigit` is available in + * macOS 10.11+. When left blank, the title uses the default system font. + */ + fontType?: ('monospaced' | 'monospacedDigit'); + } + + interface ToBitmapOptions { + /** + * Defaults to 1.0. + */ + scaleFactor?: number; + } + + interface ToDataURLOptions { + /** + * Defaults to 1.0. + */ + scaleFactor?: number; + } + + interface ToPNGOptions { + /** + * Defaults to 1.0. + */ + scaleFactor?: number; + } + + interface TouchBarButtonConstructorOptions { + /** + * Button text. + */ + label?: string; + /** + * A short description of the button for use by screenreaders like VoiceOver. + */ + accessibilityLabel?: string; + /** + * Button background color in hex format, i.e `#ABCDEF`. + */ + backgroundColor?: string; + /** + * Button icon. + */ + icon?: (NativeImage) | (string); + /** + * Can be `left`, `right` or `overlay`. Defaults to `overlay`. + */ + iconPosition?: ('left' | 'right' | 'overlay'); + /** + * Function to call when the button is clicked. + */ + click?: () => void; + /** + * Whether the button is in an enabled state. Default is `true`. + */ + enabled?: boolean; + } + + interface TouchBarColorPickerConstructorOptions { + /** + * Array of hex color strings to appear as possible colors to select. + */ + availableColors?: string[]; + /** + * The selected hex color in the picker, i.e `#ABCDEF`. + */ + selectedColor?: string; + /** + * Function to call when a color is selected. + */ + change?: (color: string) => void; + } + + interface TouchBarConstructorOptions { + items?: Array<(TouchBarButton) | (TouchBarColorPicker) | (TouchBarGroup) | (TouchBarLabel) | (TouchBarPopover) | (TouchBarScrubber) | (TouchBarSegmentedControl) | (TouchBarSlider) | (TouchBarSpacer)>; + escapeItem?: (TouchBarButton) | (TouchBarColorPicker) | (TouchBarGroup) | (TouchBarLabel) | (TouchBarPopover) | (TouchBarScrubber) | (TouchBarSegmentedControl) | (TouchBarSlider) | (TouchBarSpacer) | (null); + } + + interface TouchBarGroupConstructorOptions { + /** + * Items to display as a group. + */ + items: TouchBar; + } + + interface TouchBarLabelConstructorOptions { + /** + * Text to display. + */ + label?: string; + /** + * A short description of the button for use by screenreaders like VoiceOver. + */ + accessibilityLabel?: string; + /** + * Hex color of text, i.e `#ABCDEF`. + */ + textColor?: string; + } + + interface TouchBarPopoverConstructorOptions { + /** + * Popover button text. + */ + label?: string; + /** + * Popover button icon. + */ + icon?: NativeImage; + /** + * Items to display in the popover. + */ + items: TouchBar; + /** + * `true` to display a close button on the left of the popover, `false` to not show + * it. Default is `true`. + */ + showCloseButton?: boolean; + } + + interface TouchBarScrubberConstructorOptions { + /** + * An array of items to place in this scrubber. + */ + items: ScrubberItem[]; + /** + * Called when the user taps an item that was not the last tapped item. + */ + select?: (selectedIndex: number) => void; + /** + * Called when the user taps any item. + */ + highlight?: (highlightedIndex: number) => void; + /** + * Selected item style. Can be `background`, `outline` or `none`. Defaults to + * `none`. + */ + selectedStyle?: ('background' | 'outline' | 'none'); + /** + * Selected overlay item style. Can be `background`, `outline` or `none`. Defaults + * to `none`. + */ + overlayStyle?: ('background' | 'outline' | 'none'); + /** + * Defaults to `false`. + */ + showArrowButtons?: boolean; + /** + * Can be `fixed` or `free`. The default is `free`. + */ + mode?: ('fixed' | 'free'); + /** + * Defaults to `true`. + */ + continuous?: boolean; + } + + interface TouchBarSegmentedControlConstructorOptions { + /** + * Style of the segments: + */ + segmentStyle?: ('automatic' | 'rounded' | 'textured-rounded' | 'round-rect' | 'textured-square' | 'capsule' | 'small-square' | 'separated'); + /** + * The selection mode of the control: + */ + mode?: ('single' | 'multiple' | 'buttons'); + /** + * An array of segments to place in this control. + */ + segments: SegmentedControlSegment[]; + /** + * The index of the currently selected segment, will update automatically with user + * interaction. When the mode is `multiple` it will be the last selected item. + */ + selectedIndex?: number; + /** + * Called when the user selects a new segment. + */ + change?: (selectedIndex: number, isSelected: boolean) => void; + } + + interface TouchBarSliderConstructorOptions { + /** + * Label text. + */ + label?: string; + /** + * Selected value. + */ + value?: number; + /** + * Minimum value. + */ + minValue?: number; + /** + * Maximum value. + */ + maxValue?: number; + /** + * Function to call when the slider is changed. + */ + change?: (newValue: number) => void; + } + + interface TouchBarSpacerConstructorOptions { + /** + * Size of spacer, possible values are: + */ + size?: ('small' | 'large' | 'flexible'); + } + + interface TraceBufferUsageReturnValue { + value: number; + percentage: number; + } + + interface UpdateTargetUrlEvent extends Event { + url: string; + } + + interface UploadProgress { + /** + * Whether the request is currently active. If this is false no other properties + * will be set + */ + active: boolean; + /** + * Whether the upload has started. If this is false both `current` and `total` will + * be set to 0. + */ + started: boolean; + /** + * The number of bytes that have been uploaded so far + */ + current: number; + /** + * The number of bytes that will be uploaded this request + */ + total: number; + } + + interface VisibleOnAllWorkspacesOptions { + /** + * Sets whether the window should be visible above fullscreen windows. + * + * @platform darwin + */ + visibleOnFullScreen?: boolean; + /** + * Calling setVisibleOnAllWorkspaces will by default transform the process type + * between UIElementApplication and ForegroundApplication to ensure the correct + * behavior. However, this will hide the window and dock for a short time every + * time it is called. If your window is already of type UIElementApplication, you + * can bypass this transformation by passing true to skipTransformProcessType. + * + * @platform darwin + */ + skipTransformProcessType?: boolean; + } + + interface WebContentsPrintOptions { + /** + * Don't ask user for print settings. Default is `false`. + */ + silent?: boolean; + /** + * Prints the background color and image of the web page. Default is `false`. + */ + printBackground?: boolean; + /** + * Set the printer device name to use. Must be the system-defined name and not the + * 'friendly' name, e.g 'Brother_QL_820NWB' and not 'Brother QL-820NWB'. + */ + deviceName?: string; + /** + * Set whether the printed web page will be in color or grayscale. Default is + * `true`. + */ + color?: boolean; + margins?: Margins; + /** + * Whether the web page should be printed in landscape mode. Default is `false`. + */ + landscape?: boolean; + /** + * The scale factor of the web page. + */ + scaleFactor?: number; + /** + * The number of pages to print per page sheet. + */ + pagesPerSheet?: number; + /** + * Whether the web page should be collated. + */ + collate?: boolean; + /** + * The number of copies of the web page to print. + */ + copies?: number; + /** + * The page range to print. On macOS, only one range is honored. + */ + pageRanges?: PageRanges[]; + /** + * Set the duplex mode of the printed web page. Can be `simplex`, `shortEdge`, or + * `longEdge`. + */ + duplexMode?: ('simplex' | 'shortEdge' | 'longEdge'); + dpi?: Record<string, number>; + /** + * String to be printed as page header. + */ + header?: string; + /** + * String to be printed as page footer. + */ + footer?: string; + /** + * Specify page size of the printed document. Can be `A3`, `A4`, `A5`, `Legal`, + * `Letter`, `Tabloid` or an Object containing `height`. + */ + pageSize?: (string) | (Size); + } + + interface WebviewTagPrintOptions { + /** + * Don't ask user for print settings. Default is `false`. + */ + silent?: boolean; + /** + * Prints the background color and image of the web page. Default is `false`. + */ + printBackground?: boolean; + /** + * Set the printer device name to use. Must be the system-defined name and not the + * 'friendly' name, e.g 'Brother_QL_820NWB' and not 'Brother QL-820NWB'. + */ + deviceName?: string; + /** + * Set whether the printed web page will be in color or grayscale. Default is + * `true`. + */ + color?: boolean; + margins?: Margins; + /** + * Whether the web page should be printed in landscape mode. Default is `false`. + */ + landscape?: boolean; + /** + * The scale factor of the web page. + */ + scaleFactor?: number; + /** + * The number of pages to print per page sheet. + */ + pagesPerSheet?: number; + /** + * Whether the web page should be collated. + */ + collate?: boolean; + /** + * The number of copies of the web page to print. + */ + copies?: number; + /** + * The page range to print. + */ + pageRanges?: PageRanges[]; + /** + * Set the duplex mode of the printed web page. Can be `simplex`, `shortEdge`, or + * `longEdge`. + */ + duplexMode?: ('simplex' | 'shortEdge' | 'longEdge'); + dpi?: Record<string, number>; + /** + * String to be printed as page header. + */ + header?: string; + /** + * String to be printed as page footer. + */ + footer?: string; + /** + * Specify page size of the printed document. Can be `A3`, `A4`, `A5`, `Legal`, + * `Letter`, `Tabloid` or an Object containing `height`. + */ + pageSize?: (string) | (Size); + } + + interface WillNavigateEvent extends Event { + url: string; + } + + interface EditFlags { + /** + * Whether the renderer believes it can undo. + */ + canUndo: boolean; + /** + * Whether the renderer believes it can redo. + */ + canRedo: boolean; + /** + * Whether the renderer believes it can cut. + */ + canCut: boolean; + /** + * Whether the renderer believes it can copy. + */ + canCopy: boolean; + /** + * Whether the renderer believes it can paste. + */ + canPaste: boolean; + /** + * Whether the renderer believes it can delete. + */ + canDelete: boolean; + /** + * Whether the renderer believes it can select all. + */ + canSelectAll: boolean; + /** + * Whether the renderer believes it can edit text richly. + */ + canEditRichly: boolean; + } + + interface FoundInPageResult { + requestId: number; + /** + * Position of the active match. + */ + activeMatchOrdinal: number; + /** + * Number of Matches. + */ + matches: number; + /** + * Coordinates of first match region. + */ + selectionArea: Rectangle; + finalUpdate: boolean; + } + + interface LaunchItems { + /** + * name value of a registry entry. + * + * @platform win32 + */ + name: string; + /** + * The executable to an app that corresponds to a registry entry. + * + * @platform win32 + */ + path: string; + /** + * the command-line arguments to pass to the executable. + * + * @platform win32 + */ + args: string[]; + /** + * one of `user` or `machine`. Indicates whether the registry entry is under + * `HKEY_CURRENT USER` or `HKEY_LOCAL_MACHINE`. + * + * @platform win32 + */ + scope: string; + /** + * `true` if the app registry key is startup approved and therefore shows as + * `enabled` in Task Manager and Windows settings. + * + * @platform win32 + */ + enabled: boolean; + } + + interface Margins { + /** + * Can be `default`, `none`, `printableArea`, or `custom`. If `custom` is chosen, + * you will also need to specify `top`, `bottom`, `left`, and `right`. + */ + marginType?: ('default' | 'none' | 'printableArea' | 'custom'); + /** + * The top margin of the printed web page, in pixels. + */ + top?: number; + /** + * The bottom margin of the printed web page, in pixels. + */ + bottom?: number; + /** + * The left margin of the printed web page, in pixels. + */ + left?: number; + /** + * The right margin of the printed web page, in pixels. + */ + right?: number; + } + + interface MediaFlags { + /** + * Whether the media element has crashed. + */ + inError: boolean; + /** + * Whether the media element is paused. + */ + isPaused: boolean; + /** + * Whether the media element is muted. + */ + isMuted: boolean; + /** + * Whether the media element has audio. + */ + hasAudio: boolean; + /** + * Whether the media element is looping. + */ + isLooping: boolean; + /** + * Whether the media element's controls are visible. + */ + isControlsVisible: boolean; + /** + * Whether the media element's controls are toggleable. + */ + canToggleControls: boolean; + /** + * Whether the media element can be printed. + */ + canPrint: boolean; + /** + * Whether or not the media element can be downloaded. + */ + canSave: boolean; + /** + * Whether the media element can show picture-in-picture. + */ + canShowPictureInPicture: boolean; + /** + * Whether the media element is currently showing picture-in-picture. + */ + isShowingPictureInPicture: boolean; + /** + * Whether the media element can be rotated. + */ + canRotate: boolean; + /** + * Whether the media element can be looped. + */ + canLoop: boolean; + } + + interface PageRanges { + /** + * Index of the first page to print (0-based). + */ + from: number; + /** + * Index of the last page to print (inclusive) (0-based). + */ + to: number; + } + + interface WebPreferences { + /** + * Whether to enable DevTools. If it is set to `false`, can not use + * `BrowserWindow.webContents.openDevTools()` to open DevTools. Default is `true`. + */ + devTools?: boolean; + /** + * Whether node integration is enabled. Default is `false`. + */ + nodeIntegration?: boolean; + /** + * Whether node integration is enabled in web workers. Default is `false`. More + * about this can be found in Multithreading. + */ + nodeIntegrationInWorker?: boolean; + /** + * Experimental option for enabling Node.js support in sub-frames such as iframes + * and child windows. All your preloads will load for every iframe, you can use + * `process.isMainFrame` to determine if you are in the main frame or not. + */ + nodeIntegrationInSubFrames?: boolean; + /** + * Specifies a script that will be loaded before other scripts run in the page. + * This script will always have access to node APIs no matter whether node + * integration is turned on or off. The value should be the absolute file path to + * the script. When node integration is turned off, the preload script can + * reintroduce Node global symbols back to the global scope. See example here. + */ + preload?: string; + /** + * If set, this will sandbox the renderer associated with the window, making it + * compatible with the Chromium OS-level sandbox and disabling the Node.js engine. + * This is not the same as the `nodeIntegration` option and the APIs available to + * the preload script are more limited. Read more about the option here. + */ + sandbox?: boolean; + /** + * Whether to enable the `remote` module. Default is `false`. + */ + enableRemoteModule?: boolean; + /** + * Sets the session used by the page. Instead of passing the Session object + * directly, you can also choose to use the `partition` option instead, which + * accepts a partition string. When both `session` and `partition` are provided, + * `session` will be preferred. Default is the default session. + */ + session?: Session; + /** + * Sets the session used by the page according to the session's partition string. + * If `partition` starts with `persist:`, the page will use a persistent session + * available to all pages in the app with the same `partition`. If there is no + * `persist:` prefix, the page will use an in-memory session. By assigning the same + * `partition`, multiple pages can share the same session. Default is the default + * session. + */ + partition?: string; + /** + * When specified, web pages with the same `affinity` will run in the same renderer + * process. Note that due to reusing the renderer process, certain `webPreferences` + * options will also be shared between the web pages even when you specified + * different values for them, including but not limited to `preload`, `sandbox` and + * `nodeIntegration`. So it is suggested to use exact same `webPreferences` for web + * pages with the same `affinity`. _Deprecated_ + */ + affinity?: string; + /** + * The default zoom factor of the page, `3.0` represents `300%`. Default is `1.0`. + */ + zoomFactor?: number; + /** + * Enables JavaScript support. Default is `true`. + */ + javascript?: boolean; + /** + * When `false`, it will disable the same-origin policy (usually using testing + * websites by people), and set `allowRunningInsecureContent` to `true` if this + * options has not been set by user. Default is `true`. + */ + webSecurity?: boolean; + /** + * Allow an https page to run JavaScript, CSS or plugins from http URLs. Default is + * `false`. + */ + allowRunningInsecureContent?: boolean; + /** + * Enables image support. Default is `true`. + */ + images?: boolean; + /** + * Make TextArea elements resizable. Default is `true`. + */ + textAreasAreResizable?: boolean; + /** + * Enables WebGL support. Default is `true`. + */ + webgl?: boolean; + /** + * Whether plugins should be enabled. Default is `false`. + */ + plugins?: boolean; + /** + * Enables Chromium's experimental features. Default is `false`. + */ + experimentalFeatures?: boolean; + /** + * Enables scroll bounce (rubber banding) effect on macOS. Default is `false`. + */ + scrollBounce?: boolean; + /** + * A list of feature strings separated by `,`, like `CSSVariables,KeyboardEventKey` + * to enable. The full list of supported feature strings can be found in the + * RuntimeEnabledFeatures.json5 file. + */ + enableBlinkFeatures?: string; + /** + * A list of feature strings separated by `,`, like `CSSVariables,KeyboardEventKey` + * to disable. The full list of supported feature strings can be found in the + * RuntimeEnabledFeatures.json5 file. + */ + disableBlinkFeatures?: string; + /** + * Sets the default font for the font-family. + */ + defaultFontFamily?: DefaultFontFamily; + /** + * Defaults to `16`. + */ + defaultFontSize?: number; + /** + * Defaults to `13`. + */ + defaultMonospaceFontSize?: number; + /** + * Defaults to `0`. + */ + minimumFontSize?: number; + /** + * Defaults to `ISO-8859-1`. + */ + defaultEncoding?: string; + /** + * Whether to throttle animations and timers when the page becomes background. This + * also affects the Page Visibility API. Defaults to `true`. + */ + backgroundThrottling?: boolean; + /** + * Whether to enable offscreen rendering for the browser window. Defaults to + * `false`. See the offscreen rendering tutorial for more details. + */ + offscreen?: boolean; + /** + * Whether to run Electron APIs and the specified `preload` script in a separate + * JavaScript context. Defaults to `true`. The context that the `preload` script + * runs in will only have access to its own dedicated `document` and `window` + * globals, as well as its own set of JavaScript builtins (`Array`, `Object`, + * `JSON`, etc.), which are all invisible to the loaded content. The Electron API + * will only be available in the `preload` script and not the loaded page. This + * option should be used when loading potentially untrusted remote content to + * ensure the loaded content cannot tamper with the `preload` script and any + * Electron APIs being used. This option uses the same technique used by Chrome + * Content Scripts. You can access this context in the dev tools by selecting the + * 'Electron Isolated Context' entry in the combo box at the top of the Console + * tab. + */ + contextIsolation?: boolean; + /** + * If true, values returned from `webFrame.executeJavaScript` will be sanitized to + * ensure JS values can't unsafely cross between worlds when using + * `contextIsolation`. Defaults to `true`. _Deprecated_ + */ + worldSafeExecuteJavaScript?: boolean; + /** + * Whether to use native `window.open()`. Defaults to `false`. Child windows will + * always have node integration disabled unless `nodeIntegrationInSubFrames` is + * true. **Note:** This option is currently experimental. + */ + nativeWindowOpen?: boolean; + /** + * Whether to enable the `<webview>` tag. Defaults to `false`. **Note:** The + * `preload` script configured for the `<webview>` will have node integration + * enabled when it is executed so you should ensure remote/untrusted content is not + * able to create a `<webview>` tag with a possibly malicious `preload` script. You + * can use the `will-attach-webview` event on webContents to strip away the + * `preload` script and to validate or alter the `<webview>`'s initial settings. + */ + webviewTag?: boolean; + /** + * A list of strings that will be appended to `process.argv` in the renderer + * process of this app. Useful for passing small bits of data down to renderer + * process preload scripts. + */ + additionalArguments?: string[]; + /** + * Whether to enable browser style consecutive dialog protection. Default is + * `false`. + */ + safeDialogs?: boolean; + /** + * The message to display when consecutive dialog protection is triggered. If not + * defined the default message would be used, note that currently the default + * message is in English and not localized. + */ + safeDialogsMessage?: string; + /** + * Whether to disable dialogs completely. Overrides `safeDialogs`. Default is + * `false`. + */ + disableDialogs?: boolean; + /** + * Whether dragging and dropping a file or link onto the page causes a navigation. + * Default is `false`. + */ + navigateOnDragDrop?: boolean; + /** + * Autoplay policy to apply to content in the window, can be + * `no-user-gesture-required`, `user-gesture-required`, + * `document-user-activation-required`. Defaults to `no-user-gesture-required`. + */ + autoplayPolicy?: ('no-user-gesture-required' | 'user-gesture-required' | 'document-user-activation-required'); + /** + * Whether to prevent the window from resizing when entering HTML Fullscreen. + * Default is `false`. + */ + disableHtmlFullscreenWindowResize?: boolean; + /** + * An alternative title string provided only to accessibility tools such as screen + * readers. This string is not directly visible to users. + */ + accessibleTitle?: string; + /** + * Whether to enable the builtin spellchecker. Default is `true`. + */ + spellcheck?: boolean; + /** + * Whether to enable the WebSQL api. Default is `true`. + */ + enableWebSQL?: boolean; + /** + * Enforces the v8 code caching policy used by blink. Accepted values are + */ + v8CacheOptions?: ('none' | 'code' | 'bypassHeatCheck' | 'bypassHeatCheckAndEagerCompile'); + /** + * Whether to enable preferred size mode. The preferred size is the minimum size + * needed to contain the layout of the document—without requiring scrolling. + * Enabling this will cause the `preferred-size-changed` event to be emitted on the + * `WebContents` when the preferred size changes. Default is `false`. + */ + enablePreferredSizeMode?: boolean; + } + + interface DefaultFontFamily { + /** + * Defaults to `Times New Roman`. + */ + standard?: string; + /** + * Defaults to `Times New Roman`. + */ + serif?: string; + /** + * Defaults to `Arial`. + */ + sansSerif?: string; + /** + * Defaults to `Courier New`. + */ + monospace?: string; + /** + * Defaults to `Script`. + */ + cursive?: string; + /** + * Defaults to `Impact`. + */ + fantasy?: string; + } + + interface RemoteMainInterface { + app: App; + autoUpdater: AutoUpdater; + BrowserView: typeof BrowserView; + BrowserWindow: typeof BrowserWindow; + ClientRequest: typeof ClientRequest; + clipboard: Clipboard; + CommandLine: typeof CommandLine; + contentTracing: ContentTracing; + Cookies: typeof Cookies; + crashReporter: CrashReporter; + Debugger: typeof Debugger; + desktopCapturer: DesktopCapturer; + dialog: Dialog; + Dock: typeof Dock; + DownloadItem: typeof DownloadItem; + globalShortcut: GlobalShortcut; + inAppPurchase: InAppPurchase; + IncomingMessage: typeof IncomingMessage; + ipcMain: IpcMain; + Menu: typeof Menu; + MenuItem: typeof MenuItem; + MessageChannelMain: typeof MessageChannelMain; + MessagePortMain: typeof MessagePortMain; + nativeImage: typeof NativeImage; + nativeTheme: NativeTheme; + net: Net; + netLog: NetLog; + Notification: typeof Notification; + powerMonitor: PowerMonitor; + powerSaveBlocker: PowerSaveBlocker; + protocol: Protocol; + screen: Screen; + ServiceWorkers: typeof ServiceWorkers; + session: typeof Session; + ShareMenu: typeof ShareMenu; + shell: Shell; + systemPreferences: SystemPreferences; + TouchBar: typeof TouchBar; + TouchBarButton: typeof TouchBarButton; + TouchBarColorPicker: typeof TouchBarColorPicker; + TouchBarGroup: typeof TouchBarGroup; + TouchBarLabel: typeof TouchBarLabel; + TouchBarOtherItemsProxy: typeof TouchBarOtherItemsProxy; + TouchBarPopover: typeof TouchBarPopover; + TouchBarScrubber: typeof TouchBarScrubber; + TouchBarSegmentedControl: typeof TouchBarSegmentedControl; + TouchBarSlider: typeof TouchBarSlider; + TouchBarSpacer: typeof TouchBarSpacer; + Tray: typeof Tray; + webContents: typeof WebContents; + webFrameMain: typeof WebFrameMain; + WebRequest: typeof WebRequest; + } + + namespace Common { + const clipboard: Clipboard; + const crashReporter: CrashReporter; + const desktopCapturer: DesktopCapturer; + class NativeImage extends Electron.NativeImage {} + type nativeImage = NativeImage; + const nativeImage: typeof NativeImage; + const shell: Shell; + type AboutPanelOptionsOptions = Electron.AboutPanelOptionsOptions; + type AddRepresentationOptions = Electron.AddRepresentationOptions; + type AnimationSettings = Electron.AnimationSettings; + type AppDetailsOptions = Electron.AppDetailsOptions; + type ApplicationInfoForProtocolReturnValue = Electron.ApplicationInfoForProtocolReturnValue; + type AuthenticationResponseDetails = Electron.AuthenticationResponseDetails; + type AuthInfo = Electron.AuthInfo; + type AutoResizeOptions = Electron.AutoResizeOptions; + type BeforeSendResponse = Electron.BeforeSendResponse; + type BitmapOptions = Electron.BitmapOptions; + type BlinkMemoryInfo = Electron.BlinkMemoryInfo; + type BrowserViewConstructorOptions = Electron.BrowserViewConstructorOptions; + type BrowserWindowConstructorOptions = Electron.BrowserWindowConstructorOptions; + type CertificateTrustDialogOptions = Electron.CertificateTrustDialogOptions; + type ClearStorageDataOptions = Electron.ClearStorageDataOptions; + type ClientRequestConstructorOptions = Electron.ClientRequestConstructorOptions; + type Config = Electron.Config; + type ConsoleMessageEvent = Electron.ConsoleMessageEvent; + type ContextMenuParams = Electron.ContextMenuParams; + type CookiesGetFilter = Electron.CookiesGetFilter; + type CookiesSetDetails = Electron.CookiesSetDetails; + type CrashReporterStartOptions = Electron.CrashReporterStartOptions; + type CreateFromBitmapOptions = Electron.CreateFromBitmapOptions; + type CreateFromBufferOptions = Electron.CreateFromBufferOptions; + type CreateInterruptedDownloadOptions = Electron.CreateInterruptedDownloadOptions; + type Data = Electron.Data; + type Details = Electron.Details; + type DidChangeThemeColorEvent = Electron.DidChangeThemeColorEvent; + type DidCreateWindowDetails = Electron.DidCreateWindowDetails; + type DidFailLoadEvent = Electron.DidFailLoadEvent; + type DidFrameFinishLoadEvent = Electron.DidFrameFinishLoadEvent; + type DidNavigateEvent = Electron.DidNavigateEvent; + type DidNavigateInPageEvent = Electron.DidNavigateInPageEvent; + type DisplayBalloonOptions = Electron.DisplayBalloonOptions; + type EnableNetworkEmulationOptions = Electron.EnableNetworkEmulationOptions; + type FeedURLOptions = Electron.FeedURLOptions; + type FileIconOptions = Electron.FileIconOptions; + type Filter = Electron.Filter; + type FindInPageOptions = Electron.FindInPageOptions; + type FocusOptions = Electron.FocusOptions; + type FoundInPageEvent = Electron.FoundInPageEvent; + type FromPartitionOptions = Electron.FromPartitionOptions; + type HandlerDetails = Electron.HandlerDetails; + type HeadersReceivedResponse = Electron.HeadersReceivedResponse; + type HeapStatistics = Electron.HeapStatistics; + type IgnoreMouseEventsOptions = Electron.IgnoreMouseEventsOptions; + type ImportCertificateOptions = Electron.ImportCertificateOptions; + type Info = Electron.Info; + type Input = Electron.Input; + type InsertCSSOptions = Electron.InsertCSSOptions; + type IpcMessageEvent = Electron.IpcMessageEvent; + type Item = Electron.Item; + type JumpListSettings = Electron.JumpListSettings; + type LoadCommitEvent = Electron.LoadCommitEvent; + type LoadExtensionOptions = Electron.LoadExtensionOptions; + type LoadFileOptions = Electron.LoadFileOptions; + type LoadURLOptions = Electron.LoadURLOptions; + type LoginItemSettings = Electron.LoginItemSettings; + type LoginItemSettingsOptions = Electron.LoginItemSettingsOptions; + type MenuItemConstructorOptions = Electron.MenuItemConstructorOptions; + type MessageBoxOptions = Electron.MessageBoxOptions; + type MessageBoxReturnValue = Electron.MessageBoxReturnValue; + type MessageBoxSyncOptions = Electron.MessageBoxSyncOptions; + type MessageDetails = Electron.MessageDetails; + type MessageEvent = Electron.MessageEvent; + type MoveToApplicationsFolderOptions = Electron.MoveToApplicationsFolderOptions; + type NewWindowEvent = Electron.NewWindowEvent; + type NotificationConstructorOptions = Electron.NotificationConstructorOptions; + type OnBeforeRedirectListenerDetails = Electron.OnBeforeRedirectListenerDetails; + type OnBeforeRequestListenerDetails = Electron.OnBeforeRequestListenerDetails; + type OnBeforeSendHeadersListenerDetails = Electron.OnBeforeSendHeadersListenerDetails; + type OnCompletedListenerDetails = Electron.OnCompletedListenerDetails; + type OnErrorOccurredListenerDetails = Electron.OnErrorOccurredListenerDetails; + type OnHeadersReceivedListenerDetails = Electron.OnHeadersReceivedListenerDetails; + type OnResponseStartedListenerDetails = Electron.OnResponseStartedListenerDetails; + type OnSendHeadersListenerDetails = Electron.OnSendHeadersListenerDetails; + type OpenDevToolsOptions = Electron.OpenDevToolsOptions; + type OpenDialogOptions = Electron.OpenDialogOptions; + type OpenDialogReturnValue = Electron.OpenDialogReturnValue; + type OpenDialogSyncOptions = Electron.OpenDialogSyncOptions; + type OpenExternalOptions = Electron.OpenExternalOptions; + type Options = Electron.Options; + type PageFaviconUpdatedEvent = Electron.PageFaviconUpdatedEvent; + type PageTitleUpdatedEvent = Electron.PageTitleUpdatedEvent; + type Parameters = Electron.Parameters; + type Payment = Electron.Payment; + type PermissionCheckHandlerHandlerDetails = Electron.PermissionCheckHandlerHandlerDetails; + type PermissionRequestHandlerHandlerDetails = Electron.PermissionRequestHandlerHandlerDetails; + type PluginCrashedEvent = Electron.PluginCrashedEvent; + type PopupOptions = Electron.PopupOptions; + type PreconnectOptions = Electron.PreconnectOptions; + type PrintToPDFOptions = Electron.PrintToPDFOptions; + type Privileges = Electron.Privileges; + type ProgressBarOptions = Electron.ProgressBarOptions; + type Provider = Electron.Provider; + type ReadBookmark = Electron.ReadBookmark; + type RegistrationCompletedDetails = Electron.RegistrationCompletedDetails; + type RelaunchOptions = Electron.RelaunchOptions; + type RenderProcessGoneDetails = Electron.RenderProcessGoneDetails; + type Request = Electron.Request; + type ResizeOptions = Electron.ResizeOptions; + type ResourceUsage = Electron.ResourceUsage; + type Response = Electron.Response; + type Result = Electron.Result; + type SaveDialogOptions = Electron.SaveDialogOptions; + type SaveDialogReturnValue = Electron.SaveDialogReturnValue; + type SaveDialogSyncOptions = Electron.SaveDialogSyncOptions; + type Settings = Electron.Settings; + type SourcesOptions = Electron.SourcesOptions; + type SSLConfigConfig = Electron.SSLConfigConfig; + type StartLoggingOptions = Electron.StartLoggingOptions; + type SystemMemoryInfo = Electron.SystemMemoryInfo; + type TitleOptions = Electron.TitleOptions; + type ToBitmapOptions = Electron.ToBitmapOptions; + type ToDataURLOptions = Electron.ToDataURLOptions; + type ToPNGOptions = Electron.ToPNGOptions; + type TouchBarButtonConstructorOptions = Electron.TouchBarButtonConstructorOptions; + type TouchBarColorPickerConstructorOptions = Electron.TouchBarColorPickerConstructorOptions; + type TouchBarConstructorOptions = Electron.TouchBarConstructorOptions; + type TouchBarGroupConstructorOptions = Electron.TouchBarGroupConstructorOptions; + type TouchBarLabelConstructorOptions = Electron.TouchBarLabelConstructorOptions; + type TouchBarPopoverConstructorOptions = Electron.TouchBarPopoverConstructorOptions; + type TouchBarScrubberConstructorOptions = Electron.TouchBarScrubberConstructorOptions; + type TouchBarSegmentedControlConstructorOptions = Electron.TouchBarSegmentedControlConstructorOptions; + type TouchBarSliderConstructorOptions = Electron.TouchBarSliderConstructorOptions; + type TouchBarSpacerConstructorOptions = Electron.TouchBarSpacerConstructorOptions; + type TraceBufferUsageReturnValue = Electron.TraceBufferUsageReturnValue; + type UpdateTargetUrlEvent = Electron.UpdateTargetUrlEvent; + type UploadProgress = Electron.UploadProgress; + type VisibleOnAllWorkspacesOptions = Electron.VisibleOnAllWorkspacesOptions; + type WebContentsPrintOptions = Electron.WebContentsPrintOptions; + type WebviewTagPrintOptions = Electron.WebviewTagPrintOptions; + type WillNavigateEvent = Electron.WillNavigateEvent; + type EditFlags = Electron.EditFlags; + type FoundInPageResult = Electron.FoundInPageResult; + type LaunchItems = Electron.LaunchItems; + type Margins = Electron.Margins; + type MediaFlags = Electron.MediaFlags; + type PageRanges = Electron.PageRanges; + type WebPreferences = Electron.WebPreferences; + type DefaultFontFamily = Electron.DefaultFontFamily; + type BluetoothDevice = Electron.BluetoothDevice; + type Certificate = Electron.Certificate; + type CertificatePrincipal = Electron.CertificatePrincipal; + type Cookie = Electron.Cookie; + type CPUUsage = Electron.CPUUsage; + type CrashReport = Electron.CrashReport; + type CustomScheme = Electron.CustomScheme; + type DesktopCapturerSource = Electron.DesktopCapturerSource; + type Display = Electron.Display; + type Event = Electron.Event; + type Extension = Electron.Extension; + type ExtensionInfo = Electron.ExtensionInfo; + type FileFilter = Electron.FileFilter; + type FilePathWithHeaders = Electron.FilePathWithHeaders; + type GPUFeatureStatus = Electron.GPUFeatureStatus; + type InputEvent = Electron.InputEvent; + type IOCounters = Electron.IOCounters; + type IpcMainEvent = Electron.IpcMainEvent; + type IpcMainInvokeEvent = Electron.IpcMainInvokeEvent; + type IpcRendererEvent = Electron.IpcRendererEvent; + type JumpListCategory = Electron.JumpListCategory; + type JumpListItem = Electron.JumpListItem; + type KeyboardEvent = Electron.KeyboardEvent; + type KeyboardInputEvent = Electron.KeyboardInputEvent; + type MemoryInfo = Electron.MemoryInfo; + type MemoryUsageDetails = Electron.MemoryUsageDetails; + type MimeTypedBuffer = Electron.MimeTypedBuffer; + type MouseInputEvent = Electron.MouseInputEvent; + type MouseWheelInputEvent = Electron.MouseWheelInputEvent; + type NewWindowWebContentsEvent = Electron.NewWindowWebContentsEvent; + type NotificationAction = Electron.NotificationAction; + type NotificationResponse = Electron.NotificationResponse; + type Point = Electron.Point; + type PostBody = Electron.PostBody; + type PrinterInfo = Electron.PrinterInfo; + type ProcessMemoryInfo = Electron.ProcessMemoryInfo; + type ProcessMetric = Electron.ProcessMetric; + type Product = Electron.Product; + type ProtocolRequest = Electron.ProtocolRequest; + type ProtocolResponse = Electron.ProtocolResponse; + type ProtocolResponseUploadData = Electron.ProtocolResponseUploadData; + type Rectangle = Electron.Rectangle; + type Referrer = Electron.Referrer; + type ScrubberItem = Electron.ScrubberItem; + type SegmentedControlSegment = Electron.SegmentedControlSegment; + type SerialPort = Electron.SerialPort; + type ServiceWorkerInfo = Electron.ServiceWorkerInfo; + type SharedWorkerInfo = Electron.SharedWorkerInfo; + type SharingItem = Electron.SharingItem; + type ShortcutDetails = Electron.ShortcutDetails; + type Size = Electron.Size; + type Task = Electron.Task; + type ThumbarButton = Electron.ThumbarButton; + type TraceCategoriesAndOptions = Electron.TraceCategoriesAndOptions; + type TraceConfig = Electron.TraceConfig; + type Transaction = Electron.Transaction; + type UploadData = Electron.UploadData; + type UploadFile = Electron.UploadFile; + type UploadRawData = Electron.UploadRawData; + type WebSource = Electron.WebSource; + } + + namespace Main { + const app: App; + const autoUpdater: AutoUpdater; + class BrowserView extends Electron.BrowserView {} + class BrowserWindow extends Electron.BrowserWindow {} + class ClientRequest extends Electron.ClientRequest {} + class CommandLine extends Electron.CommandLine {} + const contentTracing: ContentTracing; + class Cookies extends Electron.Cookies {} + class Debugger extends Electron.Debugger {} + const dialog: Dialog; + class Dock extends Electron.Dock {} + class DownloadItem extends Electron.DownloadItem {} + const globalShortcut: GlobalShortcut; + const inAppPurchase: InAppPurchase; + class IncomingMessage extends Electron.IncomingMessage {} + const ipcMain: IpcMain; + class Menu extends Electron.Menu {} + class MenuItem extends Electron.MenuItem {} + class MessageChannelMain extends Electron.MessageChannelMain {} + class MessagePortMain extends Electron.MessagePortMain {} + const nativeTheme: NativeTheme; + const net: Net; + const netLog: NetLog; + class Notification extends Electron.Notification {} + const powerMonitor: PowerMonitor; + const powerSaveBlocker: PowerSaveBlocker; + const protocol: Protocol; + const screen: Screen; + class ServiceWorkers extends Electron.ServiceWorkers {} + class Session extends Electron.Session {} + type session = Session; + const session: typeof Session; + class ShareMenu extends Electron.ShareMenu {} + const systemPreferences: SystemPreferences; + class TouchBar extends Electron.TouchBar {} + class TouchBarButton extends Electron.TouchBarButton {} + class TouchBarColorPicker extends Electron.TouchBarColorPicker {} + class TouchBarGroup extends Electron.TouchBarGroup {} + class TouchBarLabel extends Electron.TouchBarLabel {} + class TouchBarOtherItemsProxy extends Electron.TouchBarOtherItemsProxy {} + class TouchBarPopover extends Electron.TouchBarPopover {} + class TouchBarScrubber extends Electron.TouchBarScrubber {} + class TouchBarSegmentedControl extends Electron.TouchBarSegmentedControl {} + class TouchBarSlider extends Electron.TouchBarSlider {} + class TouchBarSpacer extends Electron.TouchBarSpacer {} + class Tray extends Electron.Tray {} + class WebContents extends Electron.WebContents {} + type webContents = WebContents; + const webContents: typeof WebContents; + class WebFrameMain extends Electron.WebFrameMain {} + type webFrameMain = WebFrameMain; + const webFrameMain: typeof WebFrameMain; + class WebRequest extends Electron.WebRequest {} + type AboutPanelOptionsOptions = Electron.AboutPanelOptionsOptions; + type AddRepresentationOptions = Electron.AddRepresentationOptions; + type AnimationSettings = Electron.AnimationSettings; + type AppDetailsOptions = Electron.AppDetailsOptions; + type ApplicationInfoForProtocolReturnValue = Electron.ApplicationInfoForProtocolReturnValue; + type AuthenticationResponseDetails = Electron.AuthenticationResponseDetails; + type AuthInfo = Electron.AuthInfo; + type AutoResizeOptions = Electron.AutoResizeOptions; + type BeforeSendResponse = Electron.BeforeSendResponse; + type BitmapOptions = Electron.BitmapOptions; + type BlinkMemoryInfo = Electron.BlinkMemoryInfo; + type BrowserViewConstructorOptions = Electron.BrowserViewConstructorOptions; + type BrowserWindowConstructorOptions = Electron.BrowserWindowConstructorOptions; + type CertificateTrustDialogOptions = Electron.CertificateTrustDialogOptions; + type ClearStorageDataOptions = Electron.ClearStorageDataOptions; + type ClientRequestConstructorOptions = Electron.ClientRequestConstructorOptions; + type Config = Electron.Config; + type ConsoleMessageEvent = Electron.ConsoleMessageEvent; + type ContextMenuParams = Electron.ContextMenuParams; + type CookiesGetFilter = Electron.CookiesGetFilter; + type CookiesSetDetails = Electron.CookiesSetDetails; + type CrashReporterStartOptions = Electron.CrashReporterStartOptions; + type CreateFromBitmapOptions = Electron.CreateFromBitmapOptions; + type CreateFromBufferOptions = Electron.CreateFromBufferOptions; + type CreateInterruptedDownloadOptions = Electron.CreateInterruptedDownloadOptions; + type Data = Electron.Data; + type Details = Electron.Details; + type DidChangeThemeColorEvent = Electron.DidChangeThemeColorEvent; + type DidCreateWindowDetails = Electron.DidCreateWindowDetails; + type DidFailLoadEvent = Electron.DidFailLoadEvent; + type DidFrameFinishLoadEvent = Electron.DidFrameFinishLoadEvent; + type DidNavigateEvent = Electron.DidNavigateEvent; + type DidNavigateInPageEvent = Electron.DidNavigateInPageEvent; + type DisplayBalloonOptions = Electron.DisplayBalloonOptions; + type EnableNetworkEmulationOptions = Electron.EnableNetworkEmulationOptions; + type FeedURLOptions = Electron.FeedURLOptions; + type FileIconOptions = Electron.FileIconOptions; + type Filter = Electron.Filter; + type FindInPageOptions = Electron.FindInPageOptions; + type FocusOptions = Electron.FocusOptions; + type FoundInPageEvent = Electron.FoundInPageEvent; + type FromPartitionOptions = Electron.FromPartitionOptions; + type HandlerDetails = Electron.HandlerDetails; + type HeadersReceivedResponse = Electron.HeadersReceivedResponse; + type HeapStatistics = Electron.HeapStatistics; + type IgnoreMouseEventsOptions = Electron.IgnoreMouseEventsOptions; + type ImportCertificateOptions = Electron.ImportCertificateOptions; + type Info = Electron.Info; + type Input = Electron.Input; + type InsertCSSOptions = Electron.InsertCSSOptions; + type IpcMessageEvent = Electron.IpcMessageEvent; + type Item = Electron.Item; + type JumpListSettings = Electron.JumpListSettings; + type LoadCommitEvent = Electron.LoadCommitEvent; + type LoadExtensionOptions = Electron.LoadExtensionOptions; + type LoadFileOptions = Electron.LoadFileOptions; + type LoadURLOptions = Electron.LoadURLOptions; + type LoginItemSettings = Electron.LoginItemSettings; + type LoginItemSettingsOptions = Electron.LoginItemSettingsOptions; + type MenuItemConstructorOptions = Electron.MenuItemConstructorOptions; + type MessageBoxOptions = Electron.MessageBoxOptions; + type MessageBoxReturnValue = Electron.MessageBoxReturnValue; + type MessageBoxSyncOptions = Electron.MessageBoxSyncOptions; + type MessageDetails = Electron.MessageDetails; + type MessageEvent = Electron.MessageEvent; + type MoveToApplicationsFolderOptions = Electron.MoveToApplicationsFolderOptions; + type NewWindowEvent = Electron.NewWindowEvent; + type NotificationConstructorOptions = Electron.NotificationConstructorOptions; + type OnBeforeRedirectListenerDetails = Electron.OnBeforeRedirectListenerDetails; + type OnBeforeRequestListenerDetails = Electron.OnBeforeRequestListenerDetails; + type OnBeforeSendHeadersListenerDetails = Electron.OnBeforeSendHeadersListenerDetails; + type OnCompletedListenerDetails = Electron.OnCompletedListenerDetails; + type OnErrorOccurredListenerDetails = Electron.OnErrorOccurredListenerDetails; + type OnHeadersReceivedListenerDetails = Electron.OnHeadersReceivedListenerDetails; + type OnResponseStartedListenerDetails = Electron.OnResponseStartedListenerDetails; + type OnSendHeadersListenerDetails = Electron.OnSendHeadersListenerDetails; + type OpenDevToolsOptions = Electron.OpenDevToolsOptions; + type OpenDialogOptions = Electron.OpenDialogOptions; + type OpenDialogReturnValue = Electron.OpenDialogReturnValue; + type OpenDialogSyncOptions = Electron.OpenDialogSyncOptions; + type OpenExternalOptions = Electron.OpenExternalOptions; + type Options = Electron.Options; + type PageFaviconUpdatedEvent = Electron.PageFaviconUpdatedEvent; + type PageTitleUpdatedEvent = Electron.PageTitleUpdatedEvent; + type Parameters = Electron.Parameters; + type Payment = Electron.Payment; + type PermissionCheckHandlerHandlerDetails = Electron.PermissionCheckHandlerHandlerDetails; + type PermissionRequestHandlerHandlerDetails = Electron.PermissionRequestHandlerHandlerDetails; + type PluginCrashedEvent = Electron.PluginCrashedEvent; + type PopupOptions = Electron.PopupOptions; + type PreconnectOptions = Electron.PreconnectOptions; + type PrintToPDFOptions = Electron.PrintToPDFOptions; + type Privileges = Electron.Privileges; + type ProgressBarOptions = Electron.ProgressBarOptions; + type Provider = Electron.Provider; + type ReadBookmark = Electron.ReadBookmark; + type RegistrationCompletedDetails = Electron.RegistrationCompletedDetails; + type RelaunchOptions = Electron.RelaunchOptions; + type RenderProcessGoneDetails = Electron.RenderProcessGoneDetails; + type Request = Electron.Request; + type ResizeOptions = Electron.ResizeOptions; + type ResourceUsage = Electron.ResourceUsage; + type Response = Electron.Response; + type Result = Electron.Result; + type SaveDialogOptions = Electron.SaveDialogOptions; + type SaveDialogReturnValue = Electron.SaveDialogReturnValue; + type SaveDialogSyncOptions = Electron.SaveDialogSyncOptions; + type Settings = Electron.Settings; + type SourcesOptions = Electron.SourcesOptions; + type SSLConfigConfig = Electron.SSLConfigConfig; + type StartLoggingOptions = Electron.StartLoggingOptions; + type SystemMemoryInfo = Electron.SystemMemoryInfo; + type TitleOptions = Electron.TitleOptions; + type ToBitmapOptions = Electron.ToBitmapOptions; + type ToDataURLOptions = Electron.ToDataURLOptions; + type ToPNGOptions = Electron.ToPNGOptions; + type TouchBarButtonConstructorOptions = Electron.TouchBarButtonConstructorOptions; + type TouchBarColorPickerConstructorOptions = Electron.TouchBarColorPickerConstructorOptions; + type TouchBarConstructorOptions = Electron.TouchBarConstructorOptions; + type TouchBarGroupConstructorOptions = Electron.TouchBarGroupConstructorOptions; + type TouchBarLabelConstructorOptions = Electron.TouchBarLabelConstructorOptions; + type TouchBarPopoverConstructorOptions = Electron.TouchBarPopoverConstructorOptions; + type TouchBarScrubberConstructorOptions = Electron.TouchBarScrubberConstructorOptions; + type TouchBarSegmentedControlConstructorOptions = Electron.TouchBarSegmentedControlConstructorOptions; + type TouchBarSliderConstructorOptions = Electron.TouchBarSliderConstructorOptions; + type TouchBarSpacerConstructorOptions = Electron.TouchBarSpacerConstructorOptions; + type TraceBufferUsageReturnValue = Electron.TraceBufferUsageReturnValue; + type UpdateTargetUrlEvent = Electron.UpdateTargetUrlEvent; + type UploadProgress = Electron.UploadProgress; + type VisibleOnAllWorkspacesOptions = Electron.VisibleOnAllWorkspacesOptions; + type WebContentsPrintOptions = Electron.WebContentsPrintOptions; + type WebviewTagPrintOptions = Electron.WebviewTagPrintOptions; + type WillNavigateEvent = Electron.WillNavigateEvent; + type EditFlags = Electron.EditFlags; + type FoundInPageResult = Electron.FoundInPageResult; + type LaunchItems = Electron.LaunchItems; + type Margins = Electron.Margins; + type MediaFlags = Electron.MediaFlags; + type PageRanges = Electron.PageRanges; + type WebPreferences = Electron.WebPreferences; + type DefaultFontFamily = Electron.DefaultFontFamily; + type BluetoothDevice = Electron.BluetoothDevice; + type Certificate = Electron.Certificate; + type CertificatePrincipal = Electron.CertificatePrincipal; + type Cookie = Electron.Cookie; + type CPUUsage = Electron.CPUUsage; + type CrashReport = Electron.CrashReport; + type CustomScheme = Electron.CustomScheme; + type DesktopCapturerSource = Electron.DesktopCapturerSource; + type Display = Electron.Display; + type Event = Electron.Event; + type Extension = Electron.Extension; + type ExtensionInfo = Electron.ExtensionInfo; + type FileFilter = Electron.FileFilter; + type FilePathWithHeaders = Electron.FilePathWithHeaders; + type GPUFeatureStatus = Electron.GPUFeatureStatus; + type InputEvent = Electron.InputEvent; + type IOCounters = Electron.IOCounters; + type IpcMainEvent = Electron.IpcMainEvent; + type IpcMainInvokeEvent = Electron.IpcMainInvokeEvent; + type IpcRendererEvent = Electron.IpcRendererEvent; + type JumpListCategory = Electron.JumpListCategory; + type JumpListItem = Electron.JumpListItem; + type KeyboardEvent = Electron.KeyboardEvent; + type KeyboardInputEvent = Electron.KeyboardInputEvent; + type MemoryInfo = Electron.MemoryInfo; + type MemoryUsageDetails = Electron.MemoryUsageDetails; + type MimeTypedBuffer = Electron.MimeTypedBuffer; + type MouseInputEvent = Electron.MouseInputEvent; + type MouseWheelInputEvent = Electron.MouseWheelInputEvent; + type NewWindowWebContentsEvent = Electron.NewWindowWebContentsEvent; + type NotificationAction = Electron.NotificationAction; + type NotificationResponse = Electron.NotificationResponse; + type Point = Electron.Point; + type PostBody = Electron.PostBody; + type PrinterInfo = Electron.PrinterInfo; + type ProcessMemoryInfo = Electron.ProcessMemoryInfo; + type ProcessMetric = Electron.ProcessMetric; + type Product = Electron.Product; + type ProtocolRequest = Electron.ProtocolRequest; + type ProtocolResponse = Electron.ProtocolResponse; + type ProtocolResponseUploadData = Electron.ProtocolResponseUploadData; + type Rectangle = Electron.Rectangle; + type Referrer = Electron.Referrer; + type ScrubberItem = Electron.ScrubberItem; + type SegmentedControlSegment = Electron.SegmentedControlSegment; + type SerialPort = Electron.SerialPort; + type ServiceWorkerInfo = Electron.ServiceWorkerInfo; + type SharedWorkerInfo = Electron.SharedWorkerInfo; + type SharingItem = Electron.SharingItem; + type ShortcutDetails = Electron.ShortcutDetails; + type Size = Electron.Size; + type Task = Electron.Task; + type ThumbarButton = Electron.ThumbarButton; + type TraceCategoriesAndOptions = Electron.TraceCategoriesAndOptions; + type TraceConfig = Electron.TraceConfig; + type Transaction = Electron.Transaction; + type UploadData = Electron.UploadData; + type UploadFile = Electron.UploadFile; + type UploadRawData = Electron.UploadRawData; + type WebSource = Electron.WebSource; + } + + namespace Renderer { + class BrowserWindowProxy extends Electron.BrowserWindowProxy {} + const contextBridge: ContextBridge; + const ipcRenderer: IpcRenderer; + const remote: Remote; + const webFrame: WebFrame; + const webviewTag: WebviewTag; + type AboutPanelOptionsOptions = Electron.AboutPanelOptionsOptions; + type AddRepresentationOptions = Electron.AddRepresentationOptions; + type AnimationSettings = Electron.AnimationSettings; + type AppDetailsOptions = Electron.AppDetailsOptions; + type ApplicationInfoForProtocolReturnValue = Electron.ApplicationInfoForProtocolReturnValue; + type AuthenticationResponseDetails = Electron.AuthenticationResponseDetails; + type AuthInfo = Electron.AuthInfo; + type AutoResizeOptions = Electron.AutoResizeOptions; + type BeforeSendResponse = Electron.BeforeSendResponse; + type BitmapOptions = Electron.BitmapOptions; + type BlinkMemoryInfo = Electron.BlinkMemoryInfo; + type BrowserViewConstructorOptions = Electron.BrowserViewConstructorOptions; + type BrowserWindowConstructorOptions = Electron.BrowserWindowConstructorOptions; + type CertificateTrustDialogOptions = Electron.CertificateTrustDialogOptions; + type ClearStorageDataOptions = Electron.ClearStorageDataOptions; + type ClientRequestConstructorOptions = Electron.ClientRequestConstructorOptions; + type Config = Electron.Config; + type ConsoleMessageEvent = Electron.ConsoleMessageEvent; + type ContextMenuParams = Electron.ContextMenuParams; + type CookiesGetFilter = Electron.CookiesGetFilter; + type CookiesSetDetails = Electron.CookiesSetDetails; + type CrashReporterStartOptions = Electron.CrashReporterStartOptions; + type CreateFromBitmapOptions = Electron.CreateFromBitmapOptions; + type CreateFromBufferOptions = Electron.CreateFromBufferOptions; + type CreateInterruptedDownloadOptions = Electron.CreateInterruptedDownloadOptions; + type Data = Electron.Data; + type Details = Electron.Details; + type DidChangeThemeColorEvent = Electron.DidChangeThemeColorEvent; + type DidCreateWindowDetails = Electron.DidCreateWindowDetails; + type DidFailLoadEvent = Electron.DidFailLoadEvent; + type DidFrameFinishLoadEvent = Electron.DidFrameFinishLoadEvent; + type DidNavigateEvent = Electron.DidNavigateEvent; + type DidNavigateInPageEvent = Electron.DidNavigateInPageEvent; + type DisplayBalloonOptions = Electron.DisplayBalloonOptions; + type EnableNetworkEmulationOptions = Electron.EnableNetworkEmulationOptions; + type FeedURLOptions = Electron.FeedURLOptions; + type FileIconOptions = Electron.FileIconOptions; + type Filter = Electron.Filter; + type FindInPageOptions = Electron.FindInPageOptions; + type FocusOptions = Electron.FocusOptions; + type FoundInPageEvent = Electron.FoundInPageEvent; + type FromPartitionOptions = Electron.FromPartitionOptions; + type HandlerDetails = Electron.HandlerDetails; + type HeadersReceivedResponse = Electron.HeadersReceivedResponse; + type HeapStatistics = Electron.HeapStatistics; + type IgnoreMouseEventsOptions = Electron.IgnoreMouseEventsOptions; + type ImportCertificateOptions = Electron.ImportCertificateOptions; + type Info = Electron.Info; + type Input = Electron.Input; + type InsertCSSOptions = Electron.InsertCSSOptions; + type IpcMessageEvent = Electron.IpcMessageEvent; + type Item = Electron.Item; + type JumpListSettings = Electron.JumpListSettings; + type LoadCommitEvent = Electron.LoadCommitEvent; + type LoadExtensionOptions = Electron.LoadExtensionOptions; + type LoadFileOptions = Electron.LoadFileOptions; + type LoadURLOptions = Electron.LoadURLOptions; + type LoginItemSettings = Electron.LoginItemSettings; + type LoginItemSettingsOptions = Electron.LoginItemSettingsOptions; + type MenuItemConstructorOptions = Electron.MenuItemConstructorOptions; + type MessageBoxOptions = Electron.MessageBoxOptions; + type MessageBoxReturnValue = Electron.MessageBoxReturnValue; + type MessageBoxSyncOptions = Electron.MessageBoxSyncOptions; + type MessageDetails = Electron.MessageDetails; + type MessageEvent = Electron.MessageEvent; + type MoveToApplicationsFolderOptions = Electron.MoveToApplicationsFolderOptions; + type NewWindowEvent = Electron.NewWindowEvent; + type NotificationConstructorOptions = Electron.NotificationConstructorOptions; + type OnBeforeRedirectListenerDetails = Electron.OnBeforeRedirectListenerDetails; + type OnBeforeRequestListenerDetails = Electron.OnBeforeRequestListenerDetails; + type OnBeforeSendHeadersListenerDetails = Electron.OnBeforeSendHeadersListenerDetails; + type OnCompletedListenerDetails = Electron.OnCompletedListenerDetails; + type OnErrorOccurredListenerDetails = Electron.OnErrorOccurredListenerDetails; + type OnHeadersReceivedListenerDetails = Electron.OnHeadersReceivedListenerDetails; + type OnResponseStartedListenerDetails = Electron.OnResponseStartedListenerDetails; + type OnSendHeadersListenerDetails = Electron.OnSendHeadersListenerDetails; + type OpenDevToolsOptions = Electron.OpenDevToolsOptions; + type OpenDialogOptions = Electron.OpenDialogOptions; + type OpenDialogReturnValue = Electron.OpenDialogReturnValue; + type OpenDialogSyncOptions = Electron.OpenDialogSyncOptions; + type OpenExternalOptions = Electron.OpenExternalOptions; + type Options = Electron.Options; + type PageFaviconUpdatedEvent = Electron.PageFaviconUpdatedEvent; + type PageTitleUpdatedEvent = Electron.PageTitleUpdatedEvent; + type Parameters = Electron.Parameters; + type Payment = Electron.Payment; + type PermissionCheckHandlerHandlerDetails = Electron.PermissionCheckHandlerHandlerDetails; + type PermissionRequestHandlerHandlerDetails = Electron.PermissionRequestHandlerHandlerDetails; + type PluginCrashedEvent = Electron.PluginCrashedEvent; + type PopupOptions = Electron.PopupOptions; + type PreconnectOptions = Electron.PreconnectOptions; + type PrintToPDFOptions = Electron.PrintToPDFOptions; + type Privileges = Electron.Privileges; + type ProgressBarOptions = Electron.ProgressBarOptions; + type Provider = Electron.Provider; + type ReadBookmark = Electron.ReadBookmark; + type RegistrationCompletedDetails = Electron.RegistrationCompletedDetails; + type RelaunchOptions = Electron.RelaunchOptions; + type RenderProcessGoneDetails = Electron.RenderProcessGoneDetails; + type Request = Electron.Request; + type ResizeOptions = Electron.ResizeOptions; + type ResourceUsage = Electron.ResourceUsage; + type Response = Electron.Response; + type Result = Electron.Result; + type SaveDialogOptions = Electron.SaveDialogOptions; + type SaveDialogReturnValue = Electron.SaveDialogReturnValue; + type SaveDialogSyncOptions = Electron.SaveDialogSyncOptions; + type Settings = Electron.Settings; + type SourcesOptions = Electron.SourcesOptions; + type SSLConfigConfig = Electron.SSLConfigConfig; + type StartLoggingOptions = Electron.StartLoggingOptions; + type SystemMemoryInfo = Electron.SystemMemoryInfo; + type TitleOptions = Electron.TitleOptions; + type ToBitmapOptions = Electron.ToBitmapOptions; + type ToDataURLOptions = Electron.ToDataURLOptions; + type ToPNGOptions = Electron.ToPNGOptions; + type TouchBarButtonConstructorOptions = Electron.TouchBarButtonConstructorOptions; + type TouchBarColorPickerConstructorOptions = Electron.TouchBarColorPickerConstructorOptions; + type TouchBarConstructorOptions = Electron.TouchBarConstructorOptions; + type TouchBarGroupConstructorOptions = Electron.TouchBarGroupConstructorOptions; + type TouchBarLabelConstructorOptions = Electron.TouchBarLabelConstructorOptions; + type TouchBarPopoverConstructorOptions = Electron.TouchBarPopoverConstructorOptions; + type TouchBarScrubberConstructorOptions = Electron.TouchBarScrubberConstructorOptions; + type TouchBarSegmentedControlConstructorOptions = Electron.TouchBarSegmentedControlConstructorOptions; + type TouchBarSliderConstructorOptions = Electron.TouchBarSliderConstructorOptions; + type TouchBarSpacerConstructorOptions = Electron.TouchBarSpacerConstructorOptions; + type TraceBufferUsageReturnValue = Electron.TraceBufferUsageReturnValue; + type UpdateTargetUrlEvent = Electron.UpdateTargetUrlEvent; + type UploadProgress = Electron.UploadProgress; + type VisibleOnAllWorkspacesOptions = Electron.VisibleOnAllWorkspacesOptions; + type WebContentsPrintOptions = Electron.WebContentsPrintOptions; + type WebviewTagPrintOptions = Electron.WebviewTagPrintOptions; + type WillNavigateEvent = Electron.WillNavigateEvent; + type EditFlags = Electron.EditFlags; + type FoundInPageResult = Electron.FoundInPageResult; + type LaunchItems = Electron.LaunchItems; + type Margins = Electron.Margins; + type MediaFlags = Electron.MediaFlags; + type PageRanges = Electron.PageRanges; + type WebPreferences = Electron.WebPreferences; + type DefaultFontFamily = Electron.DefaultFontFamily; + type BluetoothDevice = Electron.BluetoothDevice; + type Certificate = Electron.Certificate; + type CertificatePrincipal = Electron.CertificatePrincipal; + type Cookie = Electron.Cookie; + type CPUUsage = Electron.CPUUsage; + type CrashReport = Electron.CrashReport; + type CustomScheme = Electron.CustomScheme; + type DesktopCapturerSource = Electron.DesktopCapturerSource; + type Display = Electron.Display; + type Event = Electron.Event; + type Extension = Electron.Extension; + type ExtensionInfo = Electron.ExtensionInfo; + type FileFilter = Electron.FileFilter; + type FilePathWithHeaders = Electron.FilePathWithHeaders; + type GPUFeatureStatus = Electron.GPUFeatureStatus; + type InputEvent = Electron.InputEvent; + type IOCounters = Electron.IOCounters; + type IpcMainEvent = Electron.IpcMainEvent; + type IpcMainInvokeEvent = Electron.IpcMainInvokeEvent; + type IpcRendererEvent = Electron.IpcRendererEvent; + type JumpListCategory = Electron.JumpListCategory; + type JumpListItem = Electron.JumpListItem; + type KeyboardEvent = Electron.KeyboardEvent; + type KeyboardInputEvent = Electron.KeyboardInputEvent; + type MemoryInfo = Electron.MemoryInfo; + type MemoryUsageDetails = Electron.MemoryUsageDetails; + type MimeTypedBuffer = Electron.MimeTypedBuffer; + type MouseInputEvent = Electron.MouseInputEvent; + type MouseWheelInputEvent = Electron.MouseWheelInputEvent; + type NewWindowWebContentsEvent = Electron.NewWindowWebContentsEvent; + type NotificationAction = Electron.NotificationAction; + type NotificationResponse = Electron.NotificationResponse; + type Point = Electron.Point; + type PostBody = Electron.PostBody; + type PrinterInfo = Electron.PrinterInfo; + type ProcessMemoryInfo = Electron.ProcessMemoryInfo; + type ProcessMetric = Electron.ProcessMetric; + type Product = Electron.Product; + type ProtocolRequest = Electron.ProtocolRequest; + type ProtocolResponse = Electron.ProtocolResponse; + type ProtocolResponseUploadData = Electron.ProtocolResponseUploadData; + type Rectangle = Electron.Rectangle; + type Referrer = Electron.Referrer; + type ScrubberItem = Electron.ScrubberItem; + type SegmentedControlSegment = Electron.SegmentedControlSegment; + type SerialPort = Electron.SerialPort; + type ServiceWorkerInfo = Electron.ServiceWorkerInfo; + type SharedWorkerInfo = Electron.SharedWorkerInfo; + type SharingItem = Electron.SharingItem; + type ShortcutDetails = Electron.ShortcutDetails; + type Size = Electron.Size; + type Task = Electron.Task; + type ThumbarButton = Electron.ThumbarButton; + type TraceCategoriesAndOptions = Electron.TraceCategoriesAndOptions; + type TraceConfig = Electron.TraceConfig; + type Transaction = Electron.Transaction; + type UploadData = Electron.UploadData; + type UploadFile = Electron.UploadFile; + type UploadRawData = Electron.UploadRawData; + type WebSource = Electron.WebSource; + } + + const app: App; + const autoUpdater: AutoUpdater; + const clipboard: Clipboard; + const contentTracing: ContentTracing; + const contextBridge: ContextBridge; + const crashReporter: CrashReporter; + const desktopCapturer: DesktopCapturer; + const dialog: Dialog; + const globalShortcut: GlobalShortcut; + const inAppPurchase: InAppPurchase; + const ipcMain: IpcMain; + const ipcRenderer: IpcRenderer; + type nativeImage = NativeImage; + const nativeImage: typeof NativeImage; + const nativeTheme: NativeTheme; + const net: Net; + const netLog: NetLog; + const powerMonitor: PowerMonitor; + const powerSaveBlocker: PowerSaveBlocker; + const protocol: Protocol; + const remote: Remote; + const screen: Screen; + type session = Session; + const session: typeof Session; + const shell: Shell; + const systemPreferences: SystemPreferences; + type webContents = WebContents; + const webContents: typeof WebContents; + const webFrame: WebFrame; + type webFrameMain = WebFrameMain; + const webFrameMain: typeof WebFrameMain; + const webviewTag: WebviewTag; + +} + +declare module 'electron' { + export = Electron; +} + +declare module 'electron/main' { + export = Electron.Main +} + +declare module 'electron/common' { + export = Electron.Common +} + +declare module 'electron/renderer' { + export = Electron.Renderer +} + +interface NodeRequireFunction { + (moduleName: 'electron'): typeof Electron; + (moduleName: 'electron/main'): typeof Electron.Main; + (moduleName: 'electron/common'): typeof Electron.Common; + (moduleName: 'electron/renderer'): typeof Electron.Renderer; +} + +interface NodeRequire { + (moduleName: 'electron'): typeof Electron; + (moduleName: 'electron/main'): typeof Electron.Main; + (moduleName: 'electron/common'): typeof Electron.Common; + (moduleName: 'electron/renderer'): typeof Electron.Renderer; +} + +interface File { + /** + * The real path to the file on the users filesystem + */ + path: string; +} + +declare module 'original-fs' { + import * as fs from 'fs'; + export = fs; +} + +interface Document { + createElement(tagName: 'webview'): Electron.WebviewTag; +} + +declare namespace NodeJS { + interface Process extends NodeJS.EventEmitter { + + // Docs: https://electronjs.org/docs/api/process + + /** + * Emitted when Electron has loaded its internal initialization script and is + * beginning to load the web page or the main script. + */ + on(event: 'loaded', listener: Function): this; + once(event: 'loaded', listener: Function): this; + addListener(event: 'loaded', listener: Function): this; + removeListener(event: 'loaded', listener: Function): this; + /** + * Causes the main thread of the current process crash. + */ + crash(): void; + /** + * * `allocated` Integer - Size of all allocated objects in Kilobytes. + * * `marked` Integer - Size of all marked objects in Kilobytes. + * * `total` Integer - Total allocated space in Kilobytes. + * + * Returns an object with Blink memory information. It can be useful for debugging + * rendering / DOM related memory issues. Note that all values are reported in + * Kilobytes. + */ + getBlinkMemoryInfo(): Electron.BlinkMemoryInfo; + getCPUUsage(): Electron.CPUUsage; + /** + * The number of milliseconds since epoch, or `null` if the information is + * unavailable + * + * Indicates the creation time of the application. The time is represented as + * number of milliseconds since epoch. It returns null if it is unable to get the + * process creation time. + */ + getCreationTime(): (number) | (null); + /** + * * `totalHeapSize` Integer + * * `totalHeapSizeExecutable` Integer + * * `totalPhysicalSize` Integer + * * `totalAvailableSize` Integer + * * `usedHeapSize` Integer + * * `heapSizeLimit` Integer + * * `mallocedMemory` Integer + * * `peakMallocedMemory` Integer + * * `doesZapGarbage` Boolean + * + * Returns an object with V8 heap statistics. Note that all statistics are reported + * in Kilobytes. + */ + getHeapStatistics(): Electron.HeapStatistics; + getIOCounters(): Electron.IOCounters; + /** + * Resolves with a ProcessMemoryInfo + * + * Returns an object giving memory usage statistics about the current process. Note + * that all statistics are reported in Kilobytes. This api should be called after + * app ready. + * + * Chromium does not provide `residentSet` value for macOS. This is because macOS + * performs in-memory compression of pages that haven't been recently used. As a + * result the resident set size value is not what one would expect. `private` + * memory is more representative of the actual pre-compression memory usage of the + * process on macOS. + */ + getProcessMemoryInfo(): Promise<Electron.ProcessMemoryInfo>; + /** + * * `total` Integer - The total amount of physical memory in Kilobytes available + * to the system. + * * `free` Integer - The total amount of memory not being used by applications or + * disk cache. + * * `swapTotal` Integer _Windows_ _Linux_ - The total amount of swap memory in + * Kilobytes available to the system. + * * `swapFree` Integer _Windows_ _Linux_ - The free amount of swap memory in + * Kilobytes available to the system. + * + * Returns an object giving memory usage statistics about the entire system. Note + * that all statistics are reported in Kilobytes. + */ + getSystemMemoryInfo(): Electron.SystemMemoryInfo; + /** + * The version of the host operating system. + * + * Example: + * + * **Note:** It returns the actual operating system version instead of kernel + * version on macOS unlike `os.release()`. + */ + getSystemVersion(): string; + /** + * Causes the main thread of the current process hang. + */ + hang(): void; + /** + * Sets the file descriptor soft limit to `maxDescriptors` or the OS hard limit, + * whichever is lower for the current process. + * + * @platform darwin,linux + */ + setFdLimit(maxDescriptors: number): void; + /** + * Indicates whether the snapshot has been created successfully. + * +Takes a V8 heap snapshot and saves it to `filePath`. + */ + takeHeapSnapshot(filePath: string): boolean; + /** + * A `String` representing Chrome's version string. + * + */ + readonly chrome: string; + /** + * A `String` (optional) representing a globally unique ID of the current + * JavaScript context. Each frame has its own JavaScript context. When + * contextIsolation is enabled, the isolated world also has a separate JavaScript + * context. This property is only available in the renderer process. + * + */ + readonly contextId?: string; + /** + * A `Boolean` that indicates whether the current renderer context has + * `contextIsolation` enabled. It is `undefined` in the main process. + * + */ + readonly contextIsolated: boolean; + /** + * A `Boolean`. When app is started by being passed as parameter to the default + * app, this property is `true` in the main process, otherwise it is `undefined`. + * + */ + readonly defaultApp: boolean; + /** + * A `String` representing Electron's version string. + * + */ + readonly electron: string; + /** + * A `Boolean`, `true` when the current renderer context is the "main" renderer + * frame. If you want the ID of the current frame you should use + * `webFrame.routingId`. + * + */ + readonly isMainFrame: boolean; + /** + * A `Boolean`. For Mac App Store build, this property is `true`, for other builds + * it is `undefined`. + * + */ + readonly mas: boolean; + /** + * A `Boolean` that controls ASAR support inside your application. Setting this to + * `true` will disable the support for `asar` archives in Node's built-in modules. + */ + noAsar: boolean; + /** + * A `Boolean` that controls whether or not deprecation warnings are printed to + * `stderr`. Setting this to `true` will silence deprecation warnings. This + * property is used instead of the `--no-deprecation` command line flag. + */ + noDeprecation: boolean; + /** + * A `String` representing the path to the resources directory. + * + */ + readonly resourcesPath: string; + /** + * A `Boolean`. When the renderer process is sandboxed, this property is `true`, + * otherwise it is `undefined`. + * + */ + readonly sandboxed: boolean; + /** + * A `Boolean` that controls whether or not deprecation warnings will be thrown as + * exceptions. Setting this to `true` will throw errors for deprecations. This + * property is used instead of the `--throw-deprecation` command line flag. + */ + throwDeprecation: boolean; + /** + * A `Boolean` that controls whether or not deprecations printed to `stderr` + * include their stack trace. Setting this to `true` will print stack traces for + * deprecations. This property is instead of the `--trace-deprecation` command line + * flag. + */ + traceDeprecation: boolean; + /** + * A `Boolean` that controls whether or not process warnings printed to `stderr` + * include their stack trace. Setting this to `true` will print stack traces for + * process warnings (including deprecations). This property is instead of the + * `--trace-warnings` command line flag. + */ + traceProcessWarnings: boolean; + /** + * A `String` representing the current process's type, can be: + * + * * `browser` - The main process + * * `renderer` - A renderer process +* `worker` - In a web worker + * + */ + readonly type: ('browser' | 'renderer' | 'worker'); + /** + * A `Boolean`. If the app is running as a Windows Store app (appx), this property + * is `true`, for otherwise it is `undefined`. + * + */ + readonly windowsStore: boolean; + } + interface ProcessVersions { + readonly electron: string; + readonly chrome: string; + } +} diff --git a/extensions/uistate-inspector/@types/extension.d.ts b/extensions/uistate-inspector/@types/extension.d.ts new file mode 100644 index 0000000..27907e5 --- /dev/null +++ b/extensions/uistate-inspector/@types/extension.d.ts @@ -0,0 +1,66 @@ +declare namespace Editor { + + namespace Interface { + // ---- Package ---- start + interface PackageInfo { + debug: boolean; + enable: boolean; + // TODO 更名为 packageJSON 更合适 + info: PackageJson; + invalid: boolean; + name: string; + path: string; + version: string; + } + + interface PackageJson { + name: string; + version: string; + + title?: string; + author?: string; + debug?: boolean; + description?: string; + main?: string; + editor?: string; + panel?: any; + migrations?: { + version: string; + profile?: string; + custom?: string; + }[]; + contributions?: { + [key: string]: any; + builder?: string; // 构建插件注册脚本 + }; + } + // ---- Package ---- end + + // ---- UI ---- start + interface PanelInfo { + template?: string; + style?: string; + listeners?: { [key: string]: () => {} }; + methods?: { [key: string]: Function }; + $?: { [key: string]: string }; + ready?(): void; + update?(...args: any[]): void; + beforeClose?(): void; + close?(): void; + } + + namespace UIKit { + interface UIPanelInfo extends PanelInfo { + // 向上触发事件 + dispath(eventName: string, ...arg: any): void; + } + + interface EditorElementBase extends HTMLElement { + value: any; + dispath: (name: string, event: any) => void; + } + + } + // ---- UI ---- end + } +} diff --git a/extensions/uistate-inspector/@types/index.d.ts b/extensions/uistate-inspector/@types/index.d.ts new file mode 100644 index 0000000..ef7f4d4 --- /dev/null +++ b/extensions/uistate-inspector/@types/index.d.ts @@ -0,0 +1,2 @@ +/// <reference path="./editor.d.ts"/> +/// <reference path="./message.d.ts"/> diff --git a/extensions/uistate-inspector/@types/message.d.ts b/extensions/uistate-inspector/@types/message.d.ts new file mode 100644 index 0000000..a39dd4f --- /dev/null +++ b/extensions/uistate-inspector/@types/message.d.ts @@ -0,0 +1,31 @@ +// import * as AssetDB from './packages/asset-db/@types/message'; +// import * as Scene from './packages/scene/@types/message'; +// import * as Engine from './packages/engine/@types/message'; +// import * as Builder from './packages/builder/@types/public/message'; +// import * as Programming from './packages/programming/@types/message'; +// import * as Extension from './packages/extension/@types/message'; +import { IpcMainEvent } from 'electron'; +declare global { + interface EditorMessageContent { + params: any[], + result: any; + } + + interface EditorMessageMap { + [x: string]: EditorMessageContent; + } + + interface EditorMessageMaps { + [x: string]: EditorMessageMap; + // 'asset-db': AssetDB.message; + // 'scene': Scene.message; + // 'engine': Engine.message; + // 'builder': Builder.message; + // 'programming': Programming.message, + // 'extension': Extension.message; + } +} + +export interface IMessageEvent extends IpcMainEvent { + reply(error: null | Error | unknown, ...args: any[]): void; +} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/alipay-mini-game/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/alipay-mini-game/@types/index.d.ts new file mode 100644 index 0000000..fc0fa00 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/alipay-mini-game/@types/index.d.ts @@ -0,0 +1,14 @@ +/// <reference path='../../../@types/index'/> + +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions, IPolyFills, ISettings } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'alipay-mini-game': { + deviceOrientation: IOrientation; + }; + }; +} diff --git a/extensions/uistate-inspector/@types/packages/android/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/android/@types/index.d.ts new file mode 100644 index 0000000..4e338ff --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/android/@types/index.d.ts @@ -0,0 +1,72 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions, InternalBuildResult } from '@editor/library-type/packages/builder/@types/protect'; +import { IOptions as INativeOption } from '@editor/library-type/packages/native'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'android': IOptions; + native: INativeOption; + } +} + +export type IAppABI = 'armeabi-v7a' | 'arm64-v8a' | 'x86' | 'x86_64'; + +export interface IOptions { + packageName: string; + orientation: { + landscapeRight: boolean; + landscapeLeft: boolean; + portrait: boolean; + upsideDown: boolean; + }, + + apiLevel: number; + appABIs: IAppABI[]; + + useDebugKeystore: boolean; + keystorePath: string; + keystorePassword: string; + keystoreAlias: string; + keystoreAliasPassword: string; + + appBundle: boolean; + androidInstant: boolean; + remoteUrl: string; + sdkPath: string; + ndkPath: string; + + swappy: boolean; + + renderBackEnd: { + vulkan: boolean; + gles3: boolean; + gles2: boolean; + } +} + +export interface IBuildResult extends InternalBuildResult { + userFrameWorks: boolean; // 是否使用用户的配置数据 +} + +export interface ICertificateSetting { + country: string; + state: string; + locality: string; + organizationalUnit: string; + organization: string; + email: string; + certificatePath: string; + + password: string; // 密钥密码 + confirmPassword: string; // 确认密钥密码 + + alias: string; // 密钥别名 + aliasPassword: string; + confirmAliasPassword: string; + + validity: number; // 有效期 +} diff --git a/extensions/uistate-inspector/@types/packages/asset-db/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/asset-db/@types/message.d.ts new file mode 100644 index 0000000..2cffe3f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/asset-db/@types/message.d.ts @@ -0,0 +1,179 @@ +import { AssetInfo, QueryAssetsOption, AssetOperationOption, AssetDBOptions, IAssetMeta } from './public'; + +export interface message extends EditorMessageMap { + 'query-ready': { + params: [], + result: boolean, + }, + 'create-asset': { + params: [ + string, + string | Buffer | null, + ] | [ + string, + string | Buffer | null, + AssetOperationOption, + ], + result: AssetInfo | null, + }, + 'import-asset': { + params: [ + string, + string, + ] | [ + string, + string, + AssetOperationOption, + ], + result: AssetInfo | null, + }, + 'copy-asset': { + params: [ + string, + string, + ] | [ + string, + string, + AssetOperationOption, + ], + result: AssetInfo | null, + }, + 'move-asset': { + params: [ + string, + string, + ] | [ + string, + string, + AssetOperationOption, + ], + result: AssetInfo | null, + }, + 'delete-asset': { + params: [ + string, + ], + result: AssetInfo | null, + }, + 'open-asset': { + params: [ + string, + ], + result: void, + }, + 'save-asset': { + params: [ + string, + string | Buffer, + ], + result: AssetInfo | null, + }, + 'save-asset-meta': { + params: [ + string, + string, + ], + result: AssetInfo | null, + }, + 'reimport-asset': { + params: [ + string, + ], + result: boolean, + }, + 'refresh-asset': { + params: [ + string + ], + result: boolean, + }, + 'query-asset-info': { + params: [ + string, // uuid | url | path + ], + result: AssetInfo | null, + }, + 'query-asset-meta': { + params: [ + string, + ], + result: IAssetMeta | null, + }, + 'query-path': { + params: [ + string, + ], + result: string | null, + }, + 'query-url': { + params: [ + string + ], + result: string | null, + }, + 'query-uuid': { + params: [ + string + ], + result: string | null, + }, + 'query-assets': { + params: [] | [ + QueryAssetsOption, + ], + result: AssetInfo[], + }, + 'generate-available-url': { + params: [ + string, + ], + result: string, + }, + + // private + + 'query-asset-mtime': { + params: [ + string + ], + result: string | null, + }, + 'refresh': { + params: [], + result: void, + }, + 'open-devtools': { + params: [], + result: void, + }, + 'query-db-info': { + params: [ + string, + ], + result: AssetDBOptions, + }, + 'create-asset-dialog': { + params: [ + string, + ] | [ + string, + string, + ], + result: string | null, + }, + 'init-asset': { + params: [ + string, + string, + ], + result: AssetInfo | null, + }, + 'query-all-importer': { + params: [], + result: string[], + }, + 'query-all-asset-types': { + params: [], + result: string[], + }, +} diff --git a/extensions/uistate-inspector/@types/packages/asset-db/@types/public.d.ts b/extensions/uistate-inspector/@types/packages/asset-db/@types/public.d.ts new file mode 100644 index 0000000..205c1ac --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/asset-db/@types/public.d.ts @@ -0,0 +1,120 @@ +// Basic information about the resource +// 资源的基础信息 +export interface AssetInfo { + // Asset name + // 资源名字 + name: string; + // Asset display name + // 资源用于显示的名字 + displayName: string; + // URL + source: string; + // loader 加载的层级地址 + path: string; + // loader 加载地址会去掉扩展名,这个参数不去掉 + url: string; + // 绝对路径 + file: string; + // 资源的唯一 ID + uuid: string; + // 使用的导入器名字 + importer: string; + // 类型 + type: string; + // 是否是文件夹 + isDirectory: boolean; + // 导入资源的 map + library: { [key: string]: string }; + // 子资源 map + subAssets: { [key: string]: AssetInfo }; + // 是否显示 + visible: boolean; + // 是否只读 + readonly: boolean; + + // 虚拟资源可以实例化成实体的话,会带上这个扩展名 + instantiation?: string; + // 跳转指向资源 + redirect?: IRedirectInfo; + // 继承类型 + extends?: string[]; + // 是否导入完成 + imported: boolean; + // 是否导入失败 + invalid: boolean; +} + +export interface IRedirectInfo { + // 跳转资源的类型 + type: string; + // 跳转资源的 uuid + uuid: string; +} + +export interface QueryAssetsOption { + type?: string; + pattern?: string; + ccType?: string; + extname?: string; + importer?: string; + isBundle?: boolean; +} + +export interface AssetOperationOption { + // 是否强制覆盖已经存在的文件,默认 false + overwrite?: boolean; + // 是否自动重命名冲突文件,默认 false + rename?: boolean; +} + +export interface AssetDBOptions { + name: string; + target: string; + library: string; + temp: string; + /** + * 0: 忽略错误 + * 1: 仅仅打印错误 + * 2: 打印错误、警告 + * 3: 打印错误、警告、日志 + * 4: 打印错误、警告、日志、调试信息 + */ + level: number; + ignoreFiles: string[]; + readonly: boolean; +} + +export interface ContributionInfo { + mount?: { + path: string; + readonly?: boolean; + visible?: boolean; + enable?: string; + }; + openMessage?: { + [importerName: string]: string; + }; +} + +export interface ExecuteAssetDBScriptMethodOptions { + name: string; + method: string; + args: any[]; +} + +export interface IAssetMeta { + ver: string; + importer: string; + imported: boolean; + uuid: string; + files: string[]; + subMetas: { + [index: string]: IAssetMeta; + }; + userData: { + [index: string]: any; + }; + displayName: string; + id: string; + name: string; +} diff --git a/extensions/uistate-inspector/@types/packages/assets/@types/public.d.ts b/extensions/uistate-inspector/@types/packages/assets/@types/public.d.ts new file mode 100644 index 0000000..9799ce0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/assets/@types/public.d.ts @@ -0,0 +1,24 @@ +/** + * 外部插件注册搜索方式指定返回的接口 + * + * @export + * @interface SearchMenuItem + */ +export interface SearchMenuItem { + label: string; + key: string; + // handler 方法是外部扩展的搜索方法,返回 true 表示匹配搜索成功 + // searchValue 表示 assets 面板输入的搜索内容,asset 表示匹配搜索时的节点信息 + handler: (searchVale: string, asset: any) => boolean | Promise<boolean>; +} + +/** + * 外部插件注册扩展的入口 + * 可以是搜索方式或限定搜索类型 + * + * @export + * @interface SearchExtension + */ +export interface SearchExtension { + searchMenu: Function; // 搜索方式 +} diff --git a/extensions/uistate-inspector/@types/packages/assets/@types/vue.d.ts b/extensions/uistate-inspector/@types/packages/assets/@types/vue.d.ts new file mode 100644 index 0000000..504ad76 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/assets/@types/vue.d.ts @@ -0,0 +1,7 @@ +// 因为外围使用了 'vue/dist/vue.js' 否则不需要此声明文件 + +declare module 'vue/dist/vue.js' { + import Vue from 'vue'; + export * from 'vue'; + export default Vue; +} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/builder/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/builder/@types/index.d.ts new file mode 100644 index 0000000..a95d9a2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/builder/@types/index.d.ts @@ -0,0 +1,2 @@ + +export * from './public'; diff --git a/extensions/uistate-inspector/@types/packages/builder/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/builder/@types/message.d.ts new file mode 100644 index 0000000..71921ed --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/builder/@types/message.d.ts @@ -0,0 +1,45 @@ +import { IBundleConfig, ISettings } from './public/build-result'; +import { IBuildTaskItemJSON } from './public/options'; +export interface message extends EditorMessageMap { + 'open': { + params: [], + result: void, + }, + 'query-worker-ready': { + params: [], + result: boolean, + }, + + // 'open-devtools': { + // params: [], + // result: void, + // }, + // 'generate-preview-setting': { + // params: any[], + // result: Promise<{ + // settings: ISettings; + // script2library: Record<string, string>; + // bundleConfigs: IBundleConfig[]; + // }>, + // }, + // 'query-tasks-info': { + // params: [], + // result: { + // queue: Record<string, IBuildTaskItemJSON>, + // free: Promise<boolean>, + // }, + // }, + // 'query-task': { + // params: string[], + // result: Promise<IBuildTaskItemJSON>, + // }, + // /** + // * 预览合图 + // * @param {object} pacUuid + // */ + // 'preview-pac': { + // params: string[], + // result: Promise<IBuildTaskItemJSON>, + // }, + +} diff --git a/extensions/uistate-inspector/@types/packages/builder/@types/public/build-plugin.d.ts b/extensions/uistate-inspector/@types/packages/builder/@types/public/build-plugin.d.ts new file mode 100644 index 0000000..735f587 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/builder/@types/public/build-plugin.d.ts @@ -0,0 +1,117 @@ +import { ITextureCompressType, IPVRQuality, IASTCQuality, IETCQuality, ITextureFormatInfo } from './texture-compress'; +import { IBuildTaskOption, IConsoleType } from './options'; +import { IBuildResult } from './build-result'; + +export interface IBuildPluginConfig { + doc?: string; // 文档地址,支持 HTTP 地址,支持相对于编辑器官方 URL 的地址 + hooks?: string; // relate url about IHook + options?: IDisplayOptions; // config of options + verifyRuleMap?: IVerificationRuleMap; +} + +export interface IBuildPluginProfile { + builder?: { + common?: Record<string, any>; + // { platform: options } + options?: Record<string, Record<string, any>>; + // id: options + taskOptionsMap?: Record<string, any>; + } + __version__: string; + + // 旧版本的数据格式,已废弃 + common?: Record<string, any>; + // { platform: options } + options?: Record<string, Record<string, any>>; +} + +export type IVerificationFunc = (val: any, ...arg: any[]) => boolean | Promise<boolean>; +export type IInternalVerificationFunc = (val: any, ...arg: any[]) => boolean; + +export type IVerificationRuleMap = Record<string, IVerificationRule>; + +export interface IVerificationRule { + func: IVerificationFunc; + message: string; +} +export interface IInternalVerificationRule { + func: IInternalVerificationFunc; + message: string; +} + +export interface ITextureFormatConfig { + displayName: string; + options: IDisplayOptions; + formats: ITextureFormatInfo[]; // 未指定 formats 则当前格式 key 作为存储的格式 value + suffix: string; +} + +export type IDisplayOptions = Record<string, IConfigItem>; + +export type ArrayItem = { + label: string; + value: string; +}; + +export interface IConfigItem { + key?: string; // 唯一标识符 + // 配置显示的名字,如果需要翻译,则传入 i18n:${key} + label?: string; + // 设置的简单说明 + description?: string; + + experiment?: boolean; // 是否为实验性属性 + // 默认值 + default?: any; + // 配置的类型 + type?: 'array' | 'object'; + itemConfigs?: IConfigItem[] | Record<string, IConfigItem>; + verifyRules?: string[]; + verifyLevel?: IConsoleType, // 不赋值是默认为 error,等级为 error 时校验不通过将会无法点击构建,其他则仅做界面提示 + hidden?: boolean; // 是否隐藏 + render?: { + ui: string; + attributes?: Record<string, string | boolean | number>; + items?: ArrayItem[]; + }; +} + +export interface IBuildPlugin { + configs?: BuildPlugin.Configs; + assetHandlers?: BuildPlugin.AssetHandlers; + load?: BuildPlugin.load; + unload?: BuildPlugin.Unload; +} +export type IBaseHooks = (options: IBuildTaskOption, result: IBuildResult) => Promise<void> | void; +export type IBuildStageHooks = (root: string, options: IBuildTaskOption) => Promise<void> | void; + +export namespace BuildPlugin { + export type Configs = Record<string, IBuildPluginConfig>; + export type AssetHandlers = string; + export type load = () => Promise<void> | void; + export type Unload = () => Promise<void> | void; +} + +export namespace BuildHook { + export type throwError = boolean; // 插件注入的钩子函数,在执行失败时是否直接退出构建流程 + export type title = string; // 插件任务整体 title,支持 i18n 写法 + + export type onError = IBaseHooks; // 构建发生中断错误时的回调,仅作为事件通知,并不能劫持错误 + + export type onBeforeBuild = IBaseHooks; + export type onBeforeCompressSettings = IBaseHooks; + export type onAfterCompressSettings = IBaseHooks; + export type onAfterBuild = IBaseHooks; + + export type onAfterMake = IBuildStageHooks; + export type onBeforeMake = IBuildStageHooks; + + export type load = () => Promise<void> | void; + export type unload = () => Promise<void> | void; +} + +export namespace AssetHandlers { + export type compressTextures = ( + tasks: { src: string; dest: string; quality: number | IPVRQuality | IASTCQuality | IETCQuality; format: ITextureCompressType }[], + ) => Promise<void>; +} diff --git a/extensions/uistate-inspector/@types/packages/builder/@types/public/build-result.d.ts b/extensions/uistate-inspector/@types/packages/builder/@types/public/build-result.d.ts new file mode 100644 index 0000000..64cdd3b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/builder/@types/public/build-result.d.ts @@ -0,0 +1,199 @@ +/** + * settings.js 里定义的数据 + */ + +import { ISplashSetting, ICustomJointTextureLayout, UUID, IPhysicsConfig, IOrientation } from './options'; + +// ****************************** settings ************************************************ + +// debug: true +// designResolution: {width: "960", height: "640", policy: 4} +// jsList: ["assets/resources/b.js", "assets/resources/a.js"] +// launchScene: "db://assets/New Scene-001.scene" +// platform: "web-desktop" +// rawAssets: { +// assets: { +// "0e95a9f8-d4e7-4849-875a-7a11dd692b34": ["mesh/env/gltf/textures/birch_yellow_mat_baseColor.png", "cc.ImageAsset"] +// } +// internal: { +// "1baf0fc9-befa-459c-8bdd-af1a450a0319": ["effects/builtin-standard.effect", "cc.EffectAsset"] +// } +// } +// scenes: [{url: "db://assets/New Scene-001.scene", uuid: "69dc4a42-cc6c-49fb-9a57-7de0c212f83d"},…] +// startScene: "current_scene" + +export interface ISettings { + CocosEngine: string; + engine: { + debug: boolean; + macros: Record<string, any>; + customLayers: {name: string, bit: number}[]; + sortingLayers: {id: number, name: string, value: number}[]; + platform: string; + engineModules?: string[]; + builtinAssets: string[]; + }; + physics?: IPhysicsConfig; + rendering: { + renderPipeline: string; + renderMode?: number; + // effect.bin + effectSettingsPath?: string; + }; + assets: { + server: string; + remoteBundles: string[]; + bundleVers: Record<string, string>; + preloadBundles: { bundle: string, version?: string }[]; + importBase?: string; + nativeBase?: string; + subpackages: string[]; + preloadAssets: string[]; + jsbDownloaderMaxTasks?: number; + jsbDownloaderTimeout?: number; + projectBundles: string[]; + }; + plugins: { + jsList: string[]; + }; + scripting: { + scriptPackages?: string[]; + }; + launch: { + launchScene: string; + }; + screen: { + frameRate?: number; + exactFitScreen: boolean; + orientation?: IOrientation; + designResolution: ISettingsDesignResolution; + }; + splashScreen?: ISplashSetting; + animation: { + customJointTextureLayouts?: ICustomJointTextureLayout[]; + }; + profiling?: { + showFPS: boolean; + }; +} + +// 物理配置 +export interface IVec3Like { + x: number; + y: number; + z: number; +} + +export interface ICollisionMatrix { + [x: string]: number; +} + +export interface IPhysicsMaterial { + friction: number; // 0.5 + rollingFriction: number; // 0.1 + spinningFriction: number; // 0.1 + restitution: number; // 0.1 +} + +export interface IPackageInfo { + name: string; + path: string; + uuids: UUID[]; +} + +export interface ISettingsDesignResolution { + width: number; + height: number; + policy: number; +} + +interface IAssetPathBase { + bundleName?: string; + redirect?: string; // 重定向的 bundle 包名 +} + +export interface IRawAssetPathInfo extends IAssetPathBase { + raw: string[]; +} +export declare interface IAssetPathInfo extends IAssetPathBase { + raw?: string[]; + json?: string; + groupIndex?: number; +} + +export interface IJsonPathInfo extends IAssetPathBase { + json?: string; + groupIndex?: number; +} + +export interface IBuildPaths { + dir: string; // 构建资源输出地址( assets 所在的目录,并不一定与构建目录对应) + settings: string; // settings.json 输出地址 + systemJs?: string; // system.js 生成地址 + engineDir?: string; // 引擎生成地址 + polyfillsJs?: string; // polyfill.js 生成地址 + assets: string; // assets 目录 + subpackages: string; // subpackages 目录 + remote: string; // remote 目录 + bundleScripts: string // bundle 的脚本,某些平台无法下载脚本,则将远程包中的脚本移到本地 + applicationJS: string; // application.js 的生成地址 + compileConfig?: string; // cocos.compile.config.json + importMap: string; // import-map 文件地址 +} + +export declare class IBuildResult { + dest: string; // options 指定的构建目录 + + paths: IBuildPaths; // 构建后资源相关地址集合 + + settings?: ISettings; + + /** + * 指定的 uuid 资源是否包含在构建资源中 + */ + containsAsset: (uuid: string) => boolean; + + /** + * 获取指定 uuid 原始资源的存放路径(不包括序列化 json) + * 自动图集的小图 uuid 和自动图集的 uuid 都将会查询到合图大图的生成路径 + * 实际返回多个路径的情况:查询 uuid 为自动图集资源,且对应图集生成多张大图,纹理压缩会有多个图片格式路径 + */ + getRawAssetPaths: (uuid: string) => IRawAssetPathInfo[]; + + /** + * 获取指定 uuid 资源的序列化 json 路径 + */ + getJsonPathInfo: (uuid: string) => IJsonPathInfo[]; + + /** + * 获取指定 uuid 资源的路径相关信息 + * @return {raw?: string[]; json?: string; groupIndex?: number;} + * @return.raw: 该资源源文件的实际存储位置 + * @return.json: 该资源序列化 json 的实际存储位置,不存在为空 + * @return.groupIndex: 若该资源的序列化 json 在某个 json 分组内,这里标识在分组内的 index,不存在为空 + */ + getAssetPathInfo: (uuid: string) => IAssetPathInfo[]; +} + +export interface IBundleConfig { + importBase: string; // bundle 中 import 目录的名称,通常是 'import' + nativeBase: string; // native 中 native 目录的名称,通常是 'native' + name: string; // bundle 的名称,可以通过 bundle 名称加载 bundle + deps: string[]; // 该 bundle 依赖的其他 bundle 名称 + uuids: UUID[]; // 该 bundle 中的所有资源的 uuid + paths: Record<string, any[]>; // 该 bundle 中可以通过路径加载的资源,参考以前 settings 中 rawAssets 的定义 + scenes: Record<string, UUID|number>; // 该 bundle 中所有场景,场景名为 key, uuid 为 value + packs: Record<UUID, UUID[]>; // 该 bundle 中所有合并的 json, 参考以前 settings 中 packedAssets 的定义 + versions: { import: Array<string|number>, native: Array<string|number> }; // 该 bundle 中所有资源的版本号,参考以前 settings 中 md5AssetsMap 的定义 + redirect: Array<string|number>; // 该 bundle 中重定向到其他 bundle 的资源 + debug: boolean; // 是否是 debug 模式,debug 模式会对 config.json 的数据进行压缩,所以运行时得解压 + types?: string[]; // paths 中的类型数组,参考以前 settings 中 assetTypes 的定义 + encrypted?: boolean; // 原生上使用,标记该 bundle 中的脚本是否加密 + isZip?: boolean; // 是否是 zip 模式 + zipVersion?: string; + extensionMap: Record<string, UUID[]>; + /** + * 是否有需要预加载的脚本,默认为 `false`。 + */ + hasPreloadScript: boolean; +} diff --git a/extensions/uistate-inspector/@types/packages/builder/@types/public/global.d.ts b/extensions/uistate-inspector/@types/packages/builder/@types/public/global.d.ts new file mode 100644 index 0000000..16dffe0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/builder/@types/public/global.d.ts @@ -0,0 +1,6 @@ +import { IBuild } from '.'; + +// 定义 builder 进程内的全局变量 +declare global { + const Build: IBuild; +} diff --git a/extensions/uistate-inspector/@types/packages/builder/@types/public/index.d.ts b/extensions/uistate-inspector/@types/packages/builder/@types/public/index.d.ts new file mode 100644 index 0000000..4581f0f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/builder/@types/public/index.d.ts @@ -0,0 +1,102 @@ +import { ITransformOptions } from './options'; + +export * from './build-result'; +export * from './build-plugin'; +export * from './texture-compress'; +export * from './options'; + +interface IAppendRes { + hash: string; + paths: string[]; +} + +interface ICreateBundleOptions { + excludes?: string[]; + debug?: boolean; + sourceMap?: boolean; + targets?: string; +} +export interface IBuildUtils { + /** + * 压缩 uuid + * 'fc991dd7-0033-4b80-9d41-c8a86a702e59' -> 'fc9913XADNLgJ1ByKhqcC5Z' + */ + compressUuid: (uuid: string, min: boolean) => string; + + /** + * 解压缩 uuid + * 'fc9913XADNLgJ1ByKhqcC5Z' -> 'fc991dd7-0033-4b80-9d41-c8a86a702e59' + */ + decompressUuid: (uuid: string) => string; + + /** + * 翻译带有 i18n 开头的名称(i18n:test)(待定) + * 'i18n:test' -> '测试' + */ + transI18nName: (name: string) => string; + + /** + * 移除 db 前缀 + * 'db://assets/test.jpg' -> 'assets/test.jpg' + */ + removeDbHeader: (url: string) => string; + + /** + * 将 db 开头的 url 转为项目里的实际 url + * 'db://assets/test.jpg' -> 'c:/project/assets/test.jpg' + */ + dbUrlToRawPath: (url: string) => string; + + /** + * 从路径里获取存在的 uuid + * 'E:\test3d\library\oc\0c0c1f5742-89b0-4a1e-b5eb-914d84f48c1c.json' -> '0c0c1f5742-89b0-4a1e-b5eb-914d84f48c1c' + */ + getUuidFromPath: (path: string) => string; + + /** + * 检查是否全局安装了 nodejs + */ + isInstallNodeJs: () => Promise<boolean>; + + /** + * 逐文件拷贝 + */ + copyDirSync: (src: string, dest: string) => void; + + /** + * 获取相对路径接口 + * 返回 / 拼接的相对路径 + */ + relativeUrl: (from: string, to: string) => string; + + transformCode: (code: string, options: ITransformOptions) => Promise<string>; + + /** + * 给指定路径添加 md5 + */ + appendMd5ToPaths: (paths: string[]) => Promise<IAppendRes | null>; + + calcMd5: (data: Buffer | string) => string; + + copyPaths: (paths: { src: string; dest: string }[]) => Promise<void[]>; + + createBundle: (src: string, dest: string, options?: ICreateBundleOptions) => Promise<unknown>; +} +export interface IBuild { + Utils: IBuildUtils; + + LIBRARY_NAME: string; + IMPORT_HEADER: string; + NATIVE_HEADER: string; + ASSETS_HEADER: string; + SUBPACKAGES_HEADER: string; + REMOTE_HEADER: string; + BUNDLE_SCRIPTS_HEADER: string; + SCRIPT_NAME: string; + CONFIG_NAME: string; + BUNDLE_ZIP_NAME: string; + projectTempDir: string; + globalTempDir: string; + buildTemplateDir: string; // 构建模板地址 build-templates + isCommand: boolean; // 是否为命令行构建 +} diff --git a/extensions/uistate-inspector/@types/packages/builder/@types/public/options.d.ts b/extensions/uistate-inspector/@types/packages/builder/@types/public/options.d.ts new file mode 100644 index 0000000..4583348 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/builder/@types/public/options.d.ts @@ -0,0 +1,222 @@ +import * as babel from '@babel/core'; + +export interface IPhysicsConfig { + gravity: IVec3Like; // (0,-10, 0) + allowSleep: boolean; // true + sleepThreshold: number; // 0.1,最小 0 + autoSimulation: boolean; // true + fixedTimeStep: number; // 1 / 60 ,最小 0 + maxSubSteps: number; // 1,最小 0 + defaultMaterial?: string; // 物理材质 uuid + useNodeChains: boolean; // true + collisionMatrix: ICollisionMatrix; + physicsEngine: string; +} + +export type IConsoleType = 'log' | 'warn' | 'error' | 'debug'; + +/** + * 构建所需的完整参数 + */ +export interface IBuildTaskOption { + taskId?: string; // 指定构建任务 id,可选 + // 构建后的游戏文件夹生成的路径 + buildPath: string; + debug: boolean; + inlineSpriteFrames: boolean; + md5Cache: boolean; + + // bundle 设置 + mainBundleCompressionType: BundleCompressionType; + mainBundleIsRemote: boolean; + useBuiltinServer: boolean; // 使用内置的服务器地址,实验性功能 + server?: string; // 服务器地址 + // 小游戏平台将会自动勾选 + moveRemoteBundleScript: boolean; + + mergeJson: boolean; + name: string; + // packAutoAtlas: boolean; + platform: Platform; + scenes: IBuildSceneItem[]; + skipCompressTexture: boolean; + sourceMaps: boolean; + startScene: string; + outputName: string; + experimentalEraseModules: boolean; + polyfills?: IPolyFills; + nextStages?: string[]; + + // 构建阶段性任务绑定分组 + buildStageGroup?: Record<string, string[]>; + + /** + * 是否是预览进程发送的构建请求。 + * @default false + */ + preview?: boolean; + + // 项目设置 + includeModules?: string[]; + renderPipeline?: string; + designResolution?: IBuildDesignResolution; + physicsConfig?: IPhysicsConfig; + flags?: Record<string, boolean>; + customLayers: {name: string, value: number}[]; + sortingLayers: {id: number, name: string, value: number}[]; + + // 是否使用自定义插屏选项 + useSplashScreen?: boolean; + splashScreen: ISplashSetting; + + packages?: Record<string, any>; + id?: string; // 手动配置构建任务 id + // recompileConfig?: IRecompileConfig; + + // 一些偏好设置选项 + useBuildAssetCache?: boolean; + useBuildEngineCache?: boolean; + useBuildTextureCompressCache?: boolean; + useBuildAutoAtlasCache?: boolean; + __version__?: string; +} + +export type UUID = string; + +export interface ISplashSetting { + displayRatio: number; + totalTime: number; + watermarkLocation: 'default' | 'topLeft' | 'topRight' | 'topCenter' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'; + autoFit: boolean; + + url?: string; + + // 运行时使用的数据 + bgBase64?: string; + base64src?: string; +} + + +export interface ICustomJointTextureLayout { + textureLength: number; + contents: IChunkContent[]; +} + +export interface IChunkContent { + skeleton: null | string; + clips: string[]; +} + +/** + * 构建使用的设计分辨率数据 + */ +export interface IBuildDesignResolution { + height: number; + width: number; + fitWidth?: boolean; + fitHeight?: boolean; +} + +/** + * 构建使用的场景的数据 + */ +export interface IBuildSceneItem { + url: string; + uuid: string; + inBundle?: boolean; +} + +export interface IPolyFills { + /** + * True if async functions polyfills(i.e. regeneratorRuntime) needs to be included. + * You need to turn on this field if you want to use async functions in language. + */ + asyncFunctions?: boolean; + + /** + * If true, [core-js](https://github.com/zloirock/core-js) polyfills are included. + * The default options of [core-js-builder](https://github.com/zloirock/core-js/tree/master/packages/core-js-builder) + * will be used to build the core-js. + */ + coreJs?: boolean; + + targets?: string; +} + +// **************************** options ******************************************* +export type Platform = + | 'web-desktop' + | 'web-mobile' + | 'wechatgame' + | 'wechatprogram' + | 'oppo-mini-game' + | 'vivo-mini-game' + | 'huawei-quick-game' + | 'alipay-mini-game' + | 'taobao-creative-app' + | 'taobao-mini-game' + | 'mac' + | 'ios' + | 'linux' + // | 'ios-app-clip' + | 'android' + | 'ohos' + | 'open-harmonyos' + | 'windows' + | 'xiaomi-quick-game' + | 'baidu-mini-game' + | 'bytedance-mini-game' + | 'cocos-play' + | 'huawei-agc' + | 'link-sure' + | 'qtt' + | 'fb-instant-games' + | 'cocos-runtime' + | 'xr-meta' + | 'xr-huaweivr' + | 'xr-pico' + | 'xr-rokid' + | 'xr-monado' + | 'ar-android' + | 'ar-ios' + | 'xr-spaces' + | 'xr-seed' + | 'online' + | 'xr-gsxr' + | 'xr-yvr' + | 'xr-htc' + | 'xr-iqiyi' + | 'xr-skyworth' + | 'xr-ffalcon' + | 'xr-nreal' + | 'xr-inmo' + | 'xr-lenovo' + ; + +export type BundleCompressionType = 'none' | 'merge_dep' | 'merge_all_json' | 'subpackage' | 'zip'; +export type IModules = 'esm' | 'commonjs' | 'systemjs'; + +export interface ITransformOptions { + importMapFormat: IModules; + plugins?: babel.PluginItem[]; +} + +export type ITaskState = 'waiting' | 'success' | 'failure' | 'cancel' | 'processing'; + +export interface ITaskItemJSON{ + id: string; + progress: number; + state: ITaskState; + message: string; + time: string; +} + +export interface IBuildTaskItemJSON extends ITaskItemJSON { + stage: 'build' | string; + options: IBuildTaskOption; + dirty: boolean; + rawOptions?: IBuildTaskOption; + type: 'build', +} + +export type IOrientation = 'auto' | 'landscape' | 'portrait'; \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/builder/@types/public/texture-compress.d.ts b/extensions/uistate-inspector/@types/packages/builder/@types/public/texture-compress.d.ts new file mode 100644 index 0000000..8549cab --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/builder/@types/public/texture-compress.d.ts @@ -0,0 +1,71 @@ +export type ITextureCompressType = + | 'jpg' + | 'png' + | 'webp' + | 'pvrtc_4bits_rgb' + | 'pvrtc_4bits_rgba' + | 'pvrtc_4bits_rgb_a' + | 'pvrtc_2bits_rgb' + | 'pvrtc_2bits_rgba' + | 'pvrtc_2bits_rgb_a' + | 'etc1_rgb' + | 'etc1_rgb_a' + | 'etc2_rgb' + | 'etc2_rgba' + | 'astc_4x4' + | 'astc_5x5' + | 'astc_6x6' + | 'astc_8x8' + | 'astc_10x5' + | 'astc_10x10' + | 'astc_12x12' + | string; +export type ITextureCompressPlatform = 'miniGame' | 'web' | 'ios' | 'android'; + +export interface IHandlerInfo { + type: 'program' | 'npm' | 'function'; + info: ICommandInfo | Function; + func?: Function; +} + +export interface ICustomConfig { + id: string; + name: string; + path: string; + command: string; + format: string; + overwrite?: boolean; + num?: number; +} + +export interface ICommandInfo { + command: string; + params?: string[]; + path: string; +} + +export interface ITextureFormatInfo { + displayName: string; + value: ITextureCompressType | string; + formatSuffix?: string; + alpha?: boolean; + formatType?: string; + handler?: IHandlerInfo; + custom?: boolean; + params?: string[]; +} +export interface ISupportFormat { + rgb: ITextureCompressType[]; + rgba: ITextureCompressType[]; +} +export interface IConfigGroupsInfo { + defaultSupport?: ISupportFormat, + support: ISupportFormat, + displayName: string; + icon: string; +} +export type IConfigGroups = Record<ITextureCompressPlatform, IConfigGroupsInfo>; + +export type IPVRQuality = 'fastest' | 'fast' | 'normal' | 'high' | 'best'; +export type IETCQuality = 'slow' | 'fast'; +export type IASTCQuality = 'veryfast' | 'fast' | 'medium' | 'thorough' | 'exhaustive'; diff --git a/extensions/uistate-inspector/@types/packages/bytedance-mini-game/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/bytedance-mini-game/@types/index.d.ts new file mode 100644 index 0000000..505dc6b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/bytedance-mini-game/@types/index.d.ts @@ -0,0 +1,26 @@ +/// <reference path='../../../@types/index'/> + +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'auto' | 'landscape' | 'portrait'; + +export interface IOptions { + appid: string; + buildOpenDataContextTemplate: boolean; + orientation: IOrientation; + physX: { + use: 'physX' | 'project'; + notPackPhysXLibs: boolean; + mutiThread: boolean; + subThreadCount: number; + epsilon: number; + }; +} + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'bytedance-mini-game': IOptions; + }; +} diff --git a/extensions/uistate-inspector/@types/packages/certificate/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/certificate/@types/index.d.ts new file mode 100644 index 0000000..24aaa06 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/certificate/@types/index.d.ts @@ -0,0 +1 @@ +/// <reference path='../../../@types/index'/> diff --git a/extensions/uistate-inspector/@types/packages/channel-upload-tools/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/channel-upload-tools/@types/index.d.ts new file mode 100644 index 0000000..24aaa06 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/channel-upload-tools/@types/index.d.ts @@ -0,0 +1 @@ +/// <reference path='../../../@types/index'/> diff --git a/extensions/uistate-inspector/@types/packages/console/@types/pritate.d.ts b/extensions/uistate-inspector/@types/packages/console/@types/pritate.d.ts new file mode 100644 index 0000000..c932909 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/console/@types/pritate.d.ts @@ -0,0 +1,33 @@ + +export type logType = 'log' | 'warn' | 'error' | 'info'; +export interface IMessageItem { + rows: number; // 内部有几行 包括 details & stacks + translateY: number; + show: boolean; + title: string; + content: string[]; // details + count: number; // 重复的个数 + fold: boolean; // 折叠 + type: logType; + message: any; + texture: string; // 纹理 light or dark + date?: number; // 格式化的时间 + time?: number; // 时间戳 + process?: string; + stack: string[]; +} + +export interface INewItem { + type: logType + [propName: string]: any +} + +export type ILogCounter = Record<logType, number>; + +export type IConsoleExtension = { + name: string, + key: string, + label: string, + value?: boolean, + show: boolean +} diff --git a/extensions/uistate-inspector/@types/packages/engine-extends/@types/glTF.d.ts b/extensions/uistate-inspector/@types/packages/engine-extends/@types/glTF.d.ts new file mode 100644 index 0000000..4ccf00c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine-extends/@types/glTF.d.ts @@ -0,0 +1,684 @@ +export type GlTfId = number; +/** + * Indices of those attributes that deviate from their initialization value. + */ +export interface AccessorSparseIndices { + /** + * The index of the bufferView with sparse indices. Referenced bufferView can't have ARRAY_BUFFER or ELEMENT_ARRAY_BUFFER target. + */ + 'bufferView': GlTfId; + /** + * The offset relative to the start of the bufferView in bytes. Must be aligned. + */ + 'byteOffset'?: number; + /** + * The indices data type. + */ + 'componentType': 5121 | 5123 | 5125 | number; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Array of size `accessor.sparse.count` times number of components storing the displaced accessor attributes pointed by `accessor.sparse.indices`. + */ +export interface AccessorSparseValues { + /** + * The index of the bufferView with sparse values. Referenced bufferView can't have ARRAY_BUFFER or ELEMENT_ARRAY_BUFFER target. + */ + 'bufferView': GlTfId; + /** + * The offset relative to the start of the bufferView in bytes. Must be aligned. + */ + 'byteOffset'?: number; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Sparse storage of attributes that deviate from their initialization value. + */ +export interface AccessorSparse { + /** + * Number of entries stored in the sparse array. + */ + 'count': number; + /** + * Index array of size `count` that points to those accessor attributes that deviate from their initialization value. Indices must strictly increase. + */ + 'indices': AccessorSparseIndices; + /** + * Array of size `count` times number of components, storing the displaced accessor attributes pointed by `indices`. Substituted values must have the same `componentType` and number of components as the base accessor. + */ + 'values': AccessorSparseValues; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A typed view into a bufferView. A bufferView contains raw binary data. An accessor provides a typed view into a bufferView or a subset of a bufferView similar to how WebGL's `vertexAttribPointer()` defines an attribute in a buffer. + */ +export interface Accessor { + /** + * The index of the bufferView. + */ + 'bufferView'?: GlTfId; + /** + * The offset relative to the start of the bufferView in bytes. + */ + 'byteOffset'?: number; + /** + * The datatype of components in the attribute. + */ + 'componentType': 5120 | 5121 | 5122 | 5123 | 5125 | 5126 | number; + /** + * Specifies whether integer data values should be normalized. + */ + 'normalized'?: boolean; + /** + * The number of attributes referenced by this accessor. + */ + 'count': number; + /** + * Specifies if the attribute is a scalar, vector, or matrix. + */ + 'type': 'SCALAR' | 'VEC2' | 'VEC3' | 'VEC4' | 'MAT2' | 'MAT3' | 'MAT4' | string; + /** + * Maximum value of each component in this attribute. + */ + 'max'?: number[]; + /** + * Minimum value of each component in this attribute. + */ + 'min'?: number[]; + /** + * Sparse storage of attributes that deviate from their initialization value. + */ + 'sparse'?: AccessorSparse; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * The index of the node and TRS property that an animation channel targets. + */ +export interface AnimationChannelTarget { + /** + * The index of the node to target. + */ + 'node'?: GlTfId; + /** + * The name of the node's TRS property to modify, or the "weights" of the Morph Targets it instantiates. For the "translation" property, the values that are provided by the sampler are the translation along the x, y, and z axes. For the "rotation" property, the values are a quaternion in the order (x, y, z, w), where w is the scalar. For the "scale" property, the values are the scaling factors along the x, y, and z axes. + */ + 'path': 'translation' | 'rotation' | 'scale' | 'weights' | string; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Targets an animation's sampler at a node's property. + */ +export interface AnimationChannel { + /** + * The index of a sampler in this animation used to compute the value for the target. + */ + 'sampler': GlTfId; + /** + * The index of the node and TRS property to target. + */ + 'target': AnimationChannelTarget; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Combines input and output accessors with an interpolation algorithm to define a keyframe graph (but not its target). + */ +export interface AnimationSampler { + /** + * The index of an accessor containing keyframe input values, e.g., time. + */ + 'input': GlTfId; + /** + * Interpolation algorithm. + */ + 'interpolation'?: 'LINEAR' | 'STEP' | 'CUBICSPLINE' | string; + /** + * The index of an accessor, containing keyframe output values. + */ + 'output': GlTfId; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A keyframe animation. + */ +export interface Animation { + /** + * An array of channels, each of which targets an animation's sampler at a node's property. Different channels of the same animation can't have equal targets. + */ + 'channels': AnimationChannel[]; + /** + * An array of samplers that combines input and output accessors with an interpolation algorithm to define a keyframe graph (but not its target). + */ + 'samplers': AnimationSampler[]; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Metadata about the glTF asset. + */ +export interface Asset { + /** + * A copyright message suitable for display to credit the content creator. + */ + 'copyright'?: string; + /** + * Tool that generated this glTF model. Useful for debugging. + */ + 'generator'?: string; + /** + * The glTF version that this asset targets. + */ + 'version': string; + /** + * The minimum glTF version that this asset targets. + */ + 'minVersion'?: string; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A buffer points to binary geometry, animation, or skins. + */ +export interface Buffer { + /** + * The uri of the buffer. + */ + 'uri'?: string; + /** + * The length of the buffer in bytes. + */ + 'byteLength': number; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A view into a buffer generally representing a subset of the buffer. + */ +export interface BufferView { + /** + * The index of the buffer. + */ + 'buffer': GlTfId; + /** + * The offset into the buffer in bytes. + */ + 'byteOffset'?: number; + /** + * The length of the bufferView in bytes. + */ + 'byteLength': number; + /** + * The stride, in bytes. + */ + 'byteStride'?: number; + /** + * The target that the GPU buffer should be bound to. + */ + 'target'?: 34962 | 34963 | number; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * An orthographic camera containing properties to create an orthographic projection matrix. + */ +export interface CameraOrthographic { + /** + * The floating-point horizontal magnification of the view. Must not be zero. + */ + 'xmag': number; + /** + * The floating-point vertical magnification of the view. Must not be zero. + */ + 'ymag': number; + /** + * The floating-point distance to the far clipping plane. `zfar` must be greater than `znear`. + */ + 'zfar': number; + /** + * The floating-point distance to the near clipping plane. + */ + 'znear': number; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A perspective camera containing properties to create a perspective projection matrix. + */ +export interface CameraPerspective { + /** + * The floating-point aspect ratio of the field of view. + */ + 'aspectRatio'?: number; + /** + * The floating-point vertical field of view in radians. + */ + 'yfov': number; + /** + * The floating-point distance to the far clipping plane. + */ + 'zfar'?: number; + /** + * The floating-point distance to the near clipping plane. + */ + 'znear': number; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A camera's projection. A node can reference a camera to apply a transform to place the camera in the scene. + */ +export interface Camera { + /** + * An orthographic camera containing properties to create an orthographic projection matrix. + */ + 'orthographic'?: CameraOrthographic; + /** + * A perspective camera containing properties to create a perspective projection matrix. + */ + 'perspective'?: CameraPerspective; + /** + * Specifies if the camera uses a perspective or orthographic projection. + */ + 'type': 'perspective' | 'orthographic' | string; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Image data used to create a texture. Image can be referenced by URI or `bufferView` index. `mimeType` is required in the latter case. + */ +export interface Image { + /** + * The uri of the image. + */ + 'uri'?: string; + /** + * The image's MIME type. Required if `bufferView` is defined. + */ + 'mimeType'?: 'image/jpeg' | 'image/png' | string; + /** + * The index of the bufferView that contains the image. Use this instead of the image's uri property. + */ + 'bufferView'?: GlTfId; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Reference to a texture. + */ +export interface TextureInfo { + /** + * The index of the texture. + */ + 'index': GlTfId; + /** + * The set index of texture's TEXCOORD attribute used for texture coordinate mapping. + */ + 'texCoord'?: number; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A set of parameter values that are used to define the metallic-roughness material model from Physically-Based Rendering (PBR) methodology. + */ +export interface MaterialPbrMetallicRoughness { + /** + * The material's base color factor. + */ + 'baseColorFactor'?: number[]; + /** + * The base color texture. + */ + 'baseColorTexture'?: TextureInfo; + /** + * The metalness of the material. + */ + 'metallicFactor'?: number; + /** + * The roughness of the material. + */ + 'roughnessFactor'?: number; + /** + * The metallic-roughness texture. + */ + 'metallicRoughnessTexture'?: TextureInfo; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +export interface MaterialNormalTextureInfo { + 'index'?: any; + 'texCoord'?: any; + /** + * The scalar multiplier applied to each normal vector of the normal texture. + */ + 'scale'?: number; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +export interface MaterialOcclusionTextureInfo { + 'index'?: any; + 'texCoord'?: any; + /** + * A scalar multiplier controlling the amount of occlusion applied. + */ + 'strength'?: number; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * The material appearance of a primitive. + */ +export interface Material { + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + /** + * A set of parameter values that are used to define the metallic-roughness material model from Physically-Based Rendering (PBR) methodology. When not specified, all the default values of `pbrMetallicRoughness` apply. + */ + 'pbrMetallicRoughness'?: MaterialPbrMetallicRoughness; + /** + * The normal map texture. + */ + 'normalTexture'?: MaterialNormalTextureInfo; + /** + * The occlusion map texture. + */ + 'occlusionTexture'?: MaterialOcclusionTextureInfo; + /** + * The emissive map texture. + */ + 'emissiveTexture'?: TextureInfo; + /** + * The emissive color of the material. + */ + 'emissiveFactor'?: number[]; + /** + * The alpha rendering mode of the material. + */ + 'alphaMode'?: 'OPAQUE' | 'MASK' | 'BLEND' | string; + /** + * The alpha cutoff value of the material. + */ + 'alphaCutoff'?: number; + /** + * Specifies whether the material is double sided. + */ + 'doubleSided'?: boolean; + [k: string]: any; +} +/** + * Geometry to be rendered with the given material. + */ +export interface MeshPrimitive { + /** + * A dictionary object, where each key corresponds to mesh attribute semantic and each value is the index of the accessor containing attribute's data. + */ + 'attributes': { + [k: string]: GlTfId; + }; + /** + * The index of the accessor that contains the indices. + */ + 'indices'?: GlTfId; + /** + * The index of the material to apply to this primitive when rendering. + */ + 'material'?: GlTfId; + /** + * The type of primitives to render. + */ + 'mode'?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | number; + /** + * An array of Morph Targets, each Morph Target is a dictionary mapping attributes (only `POSITION`, `NORMAL`, and `TANGENT` supported) to their deviations in the Morph Target. + */ + 'targets'?: { + [k: string]: GlTfId; + }[]; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A set of primitives to be rendered. A node can contain one mesh. A node's transform places the mesh in the scene. + */ +export interface Mesh { + /** + * An array of primitives, each defining geometry to be rendered with a material. + */ + 'primitives': MeshPrimitive[]; + /** + * Array of weights to be applied to the Morph Targets. + */ + 'weights'?: number[]; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A node in the node hierarchy. When the node contains `skin`, all `mesh.primitives` must contain `JOINTS_0` and `WEIGHTS_0` attributes. A node can have either a `matrix` or any combination of `translation`/`rotation`/`scale` (TRS) properties. TRS properties are converted to matrices and postmultiplied in the `T * R * S` order to compose the transformation matrix; first the scale is applied to the vertices, then the rotation, and then the translation. If none are provided, the transform is the identity. When a node is targeted for animation (referenced by an animation.channel.target), only TRS properties may be present; `matrix` will not be present. + */ +export interface Node { + /** + * The index of the camera referenced by this node. + */ + 'camera'?: GlTfId; + /** + * The indices of this node's children. + */ + 'children'?: GlTfId[]; + /** + * The index of the skin referenced by this node. + */ + 'skin'?: GlTfId; + /** + * A floating-point 4x4 transformation matrix stored in column-major order. + */ + 'matrix'?: number[]; + /** + * The index of the mesh in this node. + */ + 'mesh'?: GlTfId; + /** + * The node's unit quaternion rotation in the order (x, y, z, w), where w is the scalar. + */ + 'rotation'?: number[]; + /** + * The node's non-uniform scale, given as the scaling factors along the x, y, and z axes. + */ + 'scale'?: number[]; + /** + * The node's translation along the x, y, and z axes. + */ + 'translation'?: number[]; + /** + * The weights of the instantiated Morph Target. Number of elements must match number of Morph Targets of used mesh. + */ + 'weights'?: number[]; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Texture sampler properties for filtering and wrapping modes. + */ +export interface Sampler { + /** + * Magnification filter. + */ + 'magFilter'?: 9728 | 9729 | number; + /** + * Minification filter. + */ + 'minFilter'?: 9728 | 9729 | 9984 | 9985 | 9986 | 9987 | number; + /** + * s wrapping mode. + */ + 'wrapS'?: 33071 | 33648 | 10497 | number; + /** + * t wrapping mode. + */ + 'wrapT'?: 33071 | 33648 | 10497 | number; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * The root nodes of a scene. + */ +export interface Scene { + /** + * The indices of each root node. + */ + 'nodes'?: GlTfId[]; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * Joints and matrices defining a skin. + */ +export interface Skin { + /** + * The index of the accessor containing the floating-point 4x4 inverse-bind matrices. The default is that each matrix is a 4x4 identity matrix, which implies that inverse-bind matrices were pre-applied. + */ + 'inverseBindMatrices'?: GlTfId; + /** + * The index of the node used as a skeleton root. When undefined, joints transforms resolve to scene root. + */ + 'skeleton'?: GlTfId; + /** + * Indices of skeleton nodes, used as joints in this skin. + */ + 'joints': GlTfId[]; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * A texture and its sampler. + */ +export interface Texture { + /** + * The index of the sampler used by this texture. When undefined, a sampler with repeat wrapping and auto filtering should be used. + */ + 'sampler'?: GlTfId; + /** + * The index of the image used by this texture. + */ + 'source'?: GlTfId; + 'name'?: any; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} +/** + * The root object for a glTF asset. + */ +export interface GlTf { + /** + * Names of glTF extensions used somewhere in this asset. + */ + 'extensionsUsed'?: string[]; + /** + * Names of glTF extensions required to properly load this asset. + */ + 'extensionsRequired'?: string[]; + /** + * An array of accessors. + */ + 'accessors'?: Accessor[]; + /** + * An array of keyframe animations. + */ + 'animations'?: Animation[]; + /** + * Metadata about the glTF asset. + */ + 'asset': Asset; + /** + * An array of buffers. + */ + 'buffers'?: Buffer[]; + /** + * An array of bufferViews. + */ + 'bufferViews'?: BufferView[]; + /** + * An array of cameras. + */ + 'cameras'?: Camera[]; + /** + * An array of images. + */ + 'images'?: Image[]; + /** + * An array of materials. + */ + 'materials'?: Material[]; + /** + * An array of meshes. + */ + 'meshes'?: Mesh[]; + /** + * An array of nodes. + */ + 'nodes'?: Node[]; + /** + * An array of samplers. + */ + 'samplers'?: Sampler[]; + /** + * The index of the default scene. + */ + 'scene'?: GlTfId; + /** + * An array of scenes. + */ + 'scenes'?: Scene[]; + /** + * An array of skins. + */ + 'skins'?: Skin[]; + /** + * An array of textures. + */ + 'textures'?: Texture[]; + 'extensions'?: any; + 'extras'?: any; + [k: string]: any; +} diff --git a/extensions/uistate-inspector/@types/packages/engine-extends/@types/gltf-validator.d.ts b/extensions/uistate-inspector/@types/packages/engine-extends/@types/gltf-validator.d.ts new file mode 100644 index 0000000..9b80403 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine-extends/@types/gltf-validator.d.ts @@ -0,0 +1,109 @@ + +declare module 'gltf-validator' { + /** + * Returns a version string. + */ + export const version: string; + + /** + * Returns an array of supported extensions names. + */ + export const supportedExtensions: string[]; + + /** + * @param uri Relative URI of the external resource. + * @returns Promise with Uint8Array data. + */ + export type ExternalResourceFunction = (uri: string) => Promise<Uint8Array>; + + export interface ValidationOptions { + /** + * Absolute or relative asset URI that will be copied to validation report. + */ + uri?: string; + + /** + * Max number of reported issues. Use 0 for unlimited output. + */ + maxIssues?: number; + + /** + * Array of ignored issue codes. + */ + ignoredIssues?: string[]; + + /** + * Object with overridden severities for issue codes. + */ + severityOverrides?: { + [x: string]: number; + }; + + /** + * Function for loading external resources. If omitted, external resources are not validated. + */ + externalResourceFunction?: ExternalResourceFunction; + + /** + * Set to false to skip reading of accessor data. + */ + validateAccessorData?: boolean; + } + + export interface Resource { + pointer: string; + mimeType: string; + storage: string; + uri: string; + } + + export interface Report { + uri: string; + mimeType: string; + validatorVersion: string; + validatedAt: string; + issues: { + numErrors: number; + numWarnings: number; + numInfos: number; + numHints: number; + messages: Array<{ + code: string; + message: string; + pointer: string; + severity: number; + }>; + truncated: boolean; + }; + info: { + version: string; + generator: string; + resources: Array<{ + pointer: string; + mimeType: string; + storage: string; + uri: string; + }>; + hasAnimations: boolean; + hasMaterials: boolean; + hasMorphTargets: boolean; + hasSkins: boolean; + hasTextures: boolean; + hasDefaultScene: boolean; + primitivesCount: number; + maxAttributesUsed: number; + }; + } + + export function validateBytes(data: Uint8Array, options?: ValidationOptions): Promise<Report>; + + export function validateString(json: string, options?: ValidationOptions): Promise<Report>; + + export const enum Severity { + Error = 0, + + Warning = 1, + + Information = 2, + } +} diff --git a/extensions/uistate-inspector/@types/packages/engine-extends/@types/i18n-well-defined.d.ts b/extensions/uistate-inspector/@types/packages/engine-extends/@types/i18n-well-defined.d.ts new file mode 100644 index 0000000..fc8001c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine-extends/@types/i18n-well-defined.d.ts @@ -0,0 +1,811 @@ +declare module '@base/electron-i18n' { + export function translation(key: string, language?: any): string; +} + +declare interface I18NWellDefinedDictionary { + ['about.title']: []; + ['about.editor']: []; + ['about.engine']: []; + ['about.version']: []; + ['animator.title']: []; + ['animator.loading.wait_scene_ready']: []; + ['animator.loading.init_animation_data']: []; + ['animator.mask.need_select_node']: []; + ['animator.mask.need_animation_component']: []; + ['animator.mask.need_animation_clip']: []; + ['animator.mask.enter_animation_mode']: []; + ['animator.mask.add_animation_component']: []; + ['animator.mask.add_animation_clip']: []; + ['animator.toolbar.exit']: []; + ['animator.toolbar.setting']: []; + ['animator.toolbar.order']: []; + ['animator.toolbar.jump_first_frame']: []; + ['animator.toolbar.jump_prev_frame']: []; + ['animator.toolbar.play_animation']: []; + ['animator.toolbar.stop_animation']: []; + ['animator.toolbar.pause_animation']: []; + ['animator.toolbar.jump_next_frame']: []; + ['animator.toolbar.jump_last_frame']: []; + ['animator.toolbar.insert_event']: []; + ['animator.toolbar.save_clip']: []; + ['animator.property.title']: []; + ['animator.property.create_prop']: []; + ['animator.property.remove_prop']: []; + ['animator.property.clear_keys']: []; + ['animator.property.create_key']: []; + ['animator.property.remove_key']: []; + ['animator.property.copy_key']: []; + ['animator.property.paste_key']: []; + ['animator.property.spacing_key']: []; + ['animator.property.spacing_frame']: []; + ['animator.event.title']: []; + ['animator.event.add_func']: []; + ['animator.event.del_func']: []; + ['animator.event.add_params']: []; + ['animator.event.del_params']: []; + ['animator.event.clear_params']: []; + ['animator.event.create']: []; + ['animator.event.paste']: []; + ['animator.bezier.title']: []; + ['animator.bezier.click_to_apply']: []; + ['animator.node.title']: []; + ['animator.node.move_data']: []; + ['animator.node.move_data_to']: []; + ['animator.node.clear_data']: []; + ['animator.preview_row.line_tips']: []; + ['animator.preview_row.open_curve_editor']: []; + ['animator.preview_row.asset_type_should_be']: []; + ['animator.preview_row.asset_position_tips']: []; + ['animator.is_save']: []; + ['animator.is_save_message']: []; + ['animator.is_paste_overwrite']: []; + ['animator.is_paste_overwrite_message']: []; + ['animator.overwrite']: []; + ['animator.is_clear']: []; + ['animator.is_clear_message']: []; + ['animator.is_move_data']: []; + ['animator.is_move_data_message']: []; + ['animator.is_remove_prop.title']: []; + ['animator.is_remove_prop.message']: []; + ['animator.is_remove_prop.remove']: []; + ['animator.is_clear_prop.title']: []; + ['animator.is_clear_prop.message']: []; + ['animator.is_clear_prop.remove']: []; + ['animator.move']: []; + ['animator.clear']: []; + ['animator.copy']: []; + ['animator.paste']: []; + ['animator.save']: []; + ['animator.abort']: []; + ['animator.cancel']: []; + ['animator.edit']: []; + ['animator.delete']: []; + ['animator.toolbar.spacing_frame']: []; + ['asset-db.mask.startup']: []; + ['asset-db.mask.loading']: []; + ['asset-db.debug-mode']: []; + ['asset-db.operate.dialogError']: []; + ['asset-db.operate.dialogWarning']: []; + ['asset-db.operate.dialogQuestion']: []; + ['asset-db.operate.dialogInfo']: []; + ['asset-db.fail.readonly']: []; + ['asset-db.createAsset.fail.unknown']: []; + ['asset-db.createAsset.fail.url']: []; + ['asset-db.createAsset.fail.exist']: []; + ['asset-db.createAsset.fail.drop']: []; + ['asset-db.createAsset.fail.toUrl']: []; + ['asset-db.createAsset.fail.uuid']: []; + ['asset-db.createAsset.fail.content']: []; + ['asset-db.createAsset.fail.readonly']: []; + ['asset-db.createAsset.warn.overwrite']: []; + ['asset-db.dropAsset.overwrite']: []; + ['asset-db.dropAsset.reserve']: []; + ['asset-db.dropAsset.fail.unknown']: []; + ['asset-db.dropAsset.fail.url']: []; + ['asset-db.dropAsset.fail.filepaths']: []; + ['asset-db.dropAsset.fail.readonly']: []; + ['asset-db.dropAsset.warn.overwrite']: []; + ['asset-db.dropAsset.warn.sameway']: []; + ['asset-db.saveAsset.fail.unknown']: []; + ['asset-db.saveAsset.fail.uuid']: []; + ['asset-db.saveAsset.fail.content']: []; + ['asset-db.saveAsset.fail.readonly']: []; + ['asset-db.saveAssetMeta.fail.unknown']: []; + ['asset-db.saveAssetMeta.fail.uuid']: []; + ['asset-db.saveAssetMeta.fail.content']: []; + ['asset-db.saveAssetMeta.fail.readonly']: []; + ['asset-db.copyAsset.fail.unknown']: []; + ['asset-db.copyAsset.fail.url']: []; + ['asset-db.copyAsset.fail.source']: []; + ['asset-db.copyAsset.fail.target']: []; + ['asset-db.copyAsset.fail.include']: []; + ['asset-db.copyAsset.fail.parent']: []; + ['asset-db.copyAsset.fail.readonly']: []; + ['asset-db.copyAsset.fail.metauuid']: []; + ['asset-db.moveAsset.fail.unknown']: []; + ['asset-db.moveAsset.fail.url']: []; + ['asset-db.moveAsset.fail.source']: []; + ['asset-db.moveAsset.fail.target']: []; + ['asset-db.moveAsset.fail.exist']: []; + ['asset-db.moveAsset.fail.include']: []; + ['asset-db.moveAsset.fail.parent']: []; + ['asset-db.moveAsset.fail.readonly_source']: []; + ['asset-db.moveAsset.fail.readonly']: []; + ['asset-db.moveAsset.warn.overwrite']: []; + ['asset-db.deleteAsset.fail.unknown']: []; + ['asset-db.deleteAsset.fail.url']: []; + ['asset-db.deleteAsset.fail.unexist']: []; + ['asset-db.deleteAsset.fail.readonly']: []; + ['asset-db.preferences.log_level']: []; + ['asset-db.preferences.log_level_debug']: []; + ['asset-db.preferences.log_level_log']: []; + ['asset-db.preferences.log_level_warn']: []; + ['asset-db.preferences.log_level_error']: []; + ['asset-db.importers.glTF.glTF_asset_group_mesh']: []; + ['asset-db.importers.glTF.glTF_asset_group_animation']: []; + ['asset-db.importers.glTF.glTF_asset_group_node']: []; + ['asset-db.importers.glTF.glTF_asset_group_skin']: []; + ['asset-db.importers.glTF.glTF_asset_group_sampler']: []; + ['asset-db.importers.glTF.glTF_asset']: [{ + group: any; + index: any; + name: any; + }]; + ['asset-db.importers.glTF.glTF_asset_no_name']: [{ + group: any; + index: any; + }]; + ['asset-db.importers.glTF.unsupported_alpha_mode']: [{ + material: any; + mode: any; + }]; + ['asset-db.importers.glTF.unsupported_texture_parameter']: [{ + texture: any; + sampler: any; + type: any; + value: any; + }]; + ['asset-db.importers.glTF.texture_parameter_min_filter']: []; + ['asset-db.importers.glTF.texture_parameter_mag_filter']: []; + ['asset-db.importers.glTF.unsupported_channel_path']: [{ + animation: any; + channel: any; + path: any; + }]; + ['asset-db.importers.glTF.reference_skin_in_different_scene']: [{ + node: any; + skin: any; + }]; + ['asset-db.importers.glTF.disallow_cubic_spline_channel_split']: [{ + animation: any; + channel: any; + }]; + ['asset-db.importers.glTF.failed_to_calculate_tangents_due_to_lack_of_normals']: [{ + mesh: any; + primitive: any; + }]; + ['asset-db.importers.glTF.failed_to_calculate_tangents_due_to_lack_of_uvs']: [{ + mesh: any; + primitive: any; + }]; + ['asset-db.importers.glTF.failed_to_load_image']: [{ + url: any; + reason: any; + }]; + ['asset-db.importers.glTF.image_uri_should_be_file_url']: []; + ['asset-db.importers.glTF.failed_to_convert_tga']: []; + ['asset-db.importers.fbx.failed_to_convert_fbx_file']: [{ + path: any; + }]; + ['asset-db.importers.fbx.no_available_fbx_temp_dir']: []; + ['asset-db.importers.fbx.fbx2glTF_exists_with_non_zero_code']: [{ + code: any; + output: any; + }]; + ['asset-db.importers.javascript.transform_failure']: [{ + path: any; + reason: any; + }]; + ['assets.title']: []; + ['assets.previewTitle']: []; + ['assets.menu.createMenu']: []; + ['assets.menu.searchPlaceholder_name']: []; + ['assets.menu.searchPlaceholder_uuid']: []; + ['assets.menu.searchPlaceholder_type']: []; + ['assets.menu.searchTip']: []; + ['assets.menu.search']: []; + ['assets.menu.searchName']: []; + ['assets.menu.searchUuid']: []; + ['assets.menu.searchType']: []; + ['assets.menu.sort']: []; + ['assets.menu.sortName']: []; + ['assets.menu.sortType']: []; + ['assets.menu.refresh']: []; + ['assets.menu.allExpand']: []; + ['assets.menu.allCollapse']: []; + ['assets.menu.new']: []; + ['assets.menu.newFolder']: []; + ['assets.menu.newJavaScript']: []; + ['assets.menu.newTypeScript']: []; + ['assets.menu.newCubeMap']: []; + ['assets.menu.newScene']: []; + ['assets.menu.newMaterial']: []; + ['assets.menu.newPhysicsMaterial']: []; + ['assets.menu.newEffect']: []; + ['assets.menu.newChunk']: []; + ['assets.menu.newAnimation']: []; + ['assets.menu.renderPipeline']: []; + ['assets.menu.forwardPipeline']: []; + ['assets.menu.renderPipelineTS']: []; + ['assets.menu.RenderFlowTS']: []; + ['assets.menu.RenderStageTS']: []; + ['assets.menu.newPac']: []; + ['assets.menu.newTerrain']: []; + ['assets.menu.copy']: []; + ['assets.menu.cut']: []; + ['assets.menu.paste']: []; + ['assets.menu.delete']: []; + ['assets.menu.rename']: []; + ['assets.menu.selectall']: []; + ['assets.menu.readonly']: []; + ['assets.menu.revealInlibrary']: []; + ['assets.menu.reimport']: []; + ['assets.menu.revealInExplorer']: []; + ['assets.menu.showUuid']: []; + ['assets.menu.recommendTS']: []; + ['assets.operate.cutReady']: []; + ['assets.operate.cutDone']: []; + ['assets.operate.copyReady']: []; + ['assets.operate.copyDone']: []; + ['assets.operate.dialogError']: []; + ['assets.operate.dialogWarning']: []; + ['assets.operate.dialogQuestion']: []; + ['assets.operate.dialogInfo']: []; + ['assets.operate.refreshing']: []; + ['assets.operate.assetDataError']: []; + ['assets.operate.sureDelete']: [{ + length: any; + filelist: any; + }]; + ['assets.operate.renameFail']: []; + ['assets.operate.pasteFail_parent_into_child']: []; + ['assets.operate.refreshFail']: []; + ['assets.operate.readDefaultFileFail']: []; + ['assets.operate.errorNewnameDuplicate']: []; + ['assets.operate.errorNewnameUnlegal']: []; + ['assets.operate.errorNewnameEmpty']: []; + ['assets.operate.errorScriptName']: []; + ['assets.operate.errorScriptClassName']: []; + ['assets.deprecate.fire']: []; + ['builder.title']: []; + ['builder.create_user_template']: []; + ['builder.build_config']: []; + ['builder.build']: []; + ['builder.compile']: []; + ['builder.select_all']: []; + ['builder.open_compile_file']: []; + ['builder.source_map']: []; + ['builder.recompile_engine']: []; + ['builder.debug_mode']: []; + ['builder.web_debugger']: []; + ['builder.require']: []; + ['builder.new_build_task']: []; + ['builder.empty_task_holder']: []; + ['builder.empty_scene']: []; + ['builder.reveal_in_explorer']: []; + ['builder.view_build_config']: []; + ['builder.recompile']: []; + ['builder.compress_texture']: []; + ['builder.pack_autoAtlas']: []; + ['builder.replace_splash_screen']: []; + ['builder.run']: []; + ['builder.open']: []; + ['builder.export']: []; + ['builder.import']: []; + ['builder.export_build_config']: []; + ['builder.import_build_config']: []; + ['builder.include_project_setting']: []; + ['builder.only_build_panel']: []; + ['builder.options.taskName']: []; + ['builder.options.name']: []; + ['builder.options.platform']: []; + ['builder.options.build_path']: []; + ['builder.options.start_scene']: []; + ['builder.options.inline_SpriteFrames']: []; + ['builder.options.merge_json_by_scene']: []; + ['builder.options.merge_start_scene']: []; + ['builder.options.orientation']: []; + ['builder.options.scenes']: []; + ['builder.options.debug']: []; + ['builder.options.resolution']: []; + ['builder.options.preview_url']: []; + ['builder.options.source_map']: []; + ['builder.options.force_combile_engine']: []; + ['builder.options.web_debugger']: []; + ['builder.options.compress_texture']: []; + ['builder.options.pack_autoAtlas']: []; + ['builder.package']: []; + ['builder.package_hint']: []; + ['builder.desktop_icon']: []; + ['builder.desktop_icon_hint']: []; + ['builder.version_name']: []; + ['builder.version_name_hint']: []; + ['builder.version_number']: []; + ['builder.version_number_hint']: []; + ['builder.support_min_platform']: []; + ['builder.support_min_platform_hint']: []; + ['builder.full_screen']: []; + ['builder.screen_orientation']: []; + ['builder.landscape']: []; + ['builder.portrait']: []; + ['builder.tiny_packet_mode']: []; + ['builder.tiny_packet_path']: []; + ['builder.tiny_packet_path_hint']: []; + ['builder.keystore']: []; + ['builder.use_debug_keystore']: []; + ['builder.private_pem_path']: []; + ['builder.private_pem_path_hint']: []; + ['builder.certificate_pem_path']: []; + ['builder.certificate_pem_path_hint']: []; + ['builder.print_finger']: []; + ['builder.pack_res_to_first_pack']: []; + ['builder.custom_npm_path']: []; + ['builder.custom_npm_path_hint']: []; + ['builder.custom_manifest_data']: []; + ['builder.custom_manifest_data_error']: []; + ['builder.remote_url']: []; + ['builder.not_install_nodejs_windows_error']: []; + ['builder.not_install_nodejs_mac_error']: []; + ['builder.rpk_installing']: []; + ['builder.rpk_install_fail']: []; + ['builder.rpk_install_success']: []; + ['builder.not_mainfest_data']: []; + ['builder.npm_installed_success']: []; + ['builder.npm_install_fail']: []; + ['builder.oppo.new']: []; + ['builder.oppo.not_empty']: []; + ['builder.oppo.icon_not_exist']: []; + ['builder.oppo.signature_not_exist']: []; + ['builder.oppo.private_pem_path_error']: []; + ['builder.oppo.certificate_pem_path_error']: []; + ['builder.certificate.country']: []; + ['builder.certificate.state']: []; + ['builder.certificate.locality']: []; + ['builder.certificate.organization']: []; + ['builder.certificate.organizationalUnit']: []; + ['builder.certificate.commonName']: []; + ['builder.certificate.email']: []; + ['builder.certificate.certificatePath']: []; + ['builder.certificate.generate']: []; + ['builder.certificate.build_certificate_complete']: []; + ['builder.certificate.build_certificate_fail']: []; + ['builder.huawei.select_certificate_path']: []; + ['builder.huawei.install_nodejs_before_view_certificate']: []; + ['builder.huawei.select_certificate_path_after_view_certificate']: []; + ['builder.huawei.certificate_fingerprint']: []; + ['builder.huawei.certificate_fingerprint_error']: []; + ['builder.huawei.use_native_renderer']: []; + ['builder.wechat_game.separate_engine']: []; + ['builder.wechat_game.separate_engine_tips']: []; + ['builder.wechat_game.client_path_error']: [{ + path: any; + }]; + ['builder.wechat_game.client_info_path_err']: [{ + path: any; + }]; + ['builder.wechat_game.client_version_low']: []; + ['builder.wechat_game.remote_server_address']: []; + ['builder.wechat_game.remote_server_address_tips']: []; + ['builder.wechat_game.sub_context']: []; + ['builder.wechat_game.sub_context_tips']: []; + ['builder.wechat_game.build_sub']: []; + ['builder.wechat_game.build_sub_tips']: []; + ['builder.wechat_game.wechatgame_app_path_empty']: []; + ['builder.error.build_error']: []; + ['builder.error.dirty_info']: []; + ['builder.error.build_dir_not_exists']: [{ + buildDir: any; + }]; + ['builder.error.build_path_contains_space']: []; + ['builder.error.build_path_contains_chinese']: []; + ['builder.error.can_not_empty']: []; + ['builder.error.project_name_not_legal']: []; + ['builder.error.package_name_not_legal']: []; + ['builder.error.package_name_start_with_number']: []; + ['builder.error.select_scenes_to_build']: []; + ['builder.error.binary_api_level']: []; + ['builder.error.path_too_long_title']: []; + ['builder.error.path_too_long_desc']: [{ + max_length: any; + }]; + ['builder.error.keep_raw_texture_of_atlas']: [{ + texturePath: any; + pacPath: any; + assetPath: any; + }]; + ['builder.error.arm64_not_support']: [{ + current_api: any; + min_version: any; + }]; + ['builder.warn.same_url']: []; + ['builder.tasks.build_asset']: []; + ['builder.tasks.build_engine']: []; + ['builder.tasks.build_img']: []; + ['builder.tasks.build_json']: []; + ['builder.tasks.build_atlas']: []; + ['builder.tasks.build_script']: []; + ['builder.tasks.build_suffix']: []; + ['builder.tasks.build_template']: []; + ['builder.tasks.load_script']: []; + ['builder.tasks.sort_asset']: []; + ['builder.tasks.sort_image']: []; + ['builder.tasks.sort_script']: []; + ['builder.tasks.sort_sprite_frame']: []; + ['builder.tasks.sort_texture']: []; + ['builder.tasks.sort_json']: []; + ['builder.tasks.settings.compress']: []; + ['builder.tasks.settings.design_resolution']: []; + ['builder.tasks.settings.group']: []; + ['builder.tasks.settings.md5']: []; + ['builder.tasks.settings.scene']: []; + ['builder.tasks.settings.script']: []; + ['builder.tips.enter_name']: []; + ['builder.tips.taskName']: []; + ['builder.tips.build_path']: []; + ['builder.tips.build_scenes']: []; + ['builder.tips.inline_SpriteFrames']: []; + ['builder.tips.md5Cache']: []; + ['builder.tips.merge_start_scene']: []; + ['builder.tips.debug']: []; + ['builder.tips.resolution']: []; + ['builder.tips.web_debugger']: []; + ['builder.tips.creat_template_success']: []; + ['builder.tips.set_start_scene']: []; + ['builder.splash_setting.title']: []; + ['builder.splash_setting.drag_img_here']: []; + ['builder.splash_setting.img_loading']: []; + ['builder.splash_setting.confirm']: []; + ['builder.splash_setting.settings.total_time']: []; + ['builder.splash_setting.settings.display_ratio']: []; + ['builder.splash_setting.settings.clear_color']: []; + ['builder.splash_setting.settings.effect']: []; + ['builder.splash_setting.settings.display_watermark']: []; + ['builder.splash_setting.is_save_dialog.title']: []; + ['builder.splash_setting.is_save_dialog.save']: []; + ['builder.splash_setting.is_save_dialog.cancel']: []; + ['builder.splash_setting.is_save_dialog.abort']: []; + ['builder.is_remove_task.title']: []; + ['builder.is_remove_task.has_building_task']: []; + ['builder.is_remove_task.message']: []; + ['builder.is_remove_task.remove']: []; + ['builder.is_remove_task.deep_remove']: []; + ['builder.is_remove_task.cancel']: []; + ['builder.is_stop_build.title']: []; + ['builder.is_stop_build.message']: []; + ['builder.is_stop_build.stop']: []; + ['builder.is_stop_build.cancel']: []; + ['builder.is_close_win.title']: []; + ['builder.is_close_win.message']: []; + ['builder.is_close_win.force_close']: []; + ['builder.is_close_win.cancel']: []; + ['builder.is_save_scene.title']: []; + ['builder.is_save_scene.message']: []; + ['builder.is_save_scene.save']: []; + ['builder.is_save_scene.ignore']: []; + ['builder.is_save_scene.cancel']: []; + ['builder.merge_json_by_scene']: []; + ['builder.not_require']: []; + ['builder.options.open_compile_file']: []; + ['builder.custom_manifest_file_path']: []; + ['builder.custom_manifest_file_path_hint']: []; + ['builder.install_nodejs_before_view_certificate']: []; + ['builder.window_default_npm_path_error']: []; + ['builder.mac_default_npm_path_error']: []; + ['builder.oppo.package_name_error']: []; + ['builder.huawei.certificate_fingerprint_window_error']: []; + ['builder.huawei.certificate_fingerprint_mac_error']: []; + ['console.title']: []; + ['console.editorLog']: []; + ['console.cocosLog']: []; + ['console.tabbar.regex']: []; + ['console.preferences.display_date']: []; + ['console.preferences.font_size']: []; + ['console.preferences.line_height']: []; + ['engine.title']: []; + ['engine.compile_engine']: []; + ['engine.wait_quick_compile']: []; + ['engine.confirm']: []; + ['engine.browse']: []; + ['engine.open']: []; + ['engine.engine_directory_illegal']: []; + ['engine.engine_compile_failed']: []; + ['engine.engine_compile_crash']: []; + ['engine.javascript_engine']: []; + ['engine.use_builtin_engine']: []; + ['engine.custom_engine_path']: []; + ['engine.QUICK_COMPILER.engine_modified_info']: []; + ['engine.resources_docs_1']: []; + ['engine.resources_docs_2']: []; + ['engine.resources_docs_3']: []; + ['engine.resources_docs_4']: []; + ['hierarchy.title']: []; + ['hierarchy.menu.createMenu']: []; + ['hierarchy.menu.searchPlaceholder']: []; + ['hierarchy.menu.searchPlaceholder_name']: []; + ['hierarchy.menu.searchPlaceholder_uuid']: []; + ['hierarchy.menu.searchPlaceholder_component']: []; + ['hierarchy.menu.searchTip']: []; + ['hierarchy.menu.search']: []; + ['hierarchy.menu.searchName']: []; + ['hierarchy.menu.searchUuid']: []; + ['hierarchy.menu.searchComponent']: []; + ['hierarchy.menu.refresh']: []; + ['hierarchy.menu.allExpand']: []; + ['hierarchy.menu.allCollapse']: []; + ['hierarchy.menu.newNode']: []; + ['hierarchy.menu.newNodeEmpty']: []; + ['hierarchy.menu.new3dObject']: []; + ['hierarchy.menu.new3dCube']: []; + ['hierarchy.menu.new3dCylinder']: []; + ['hierarchy.menu.new3dSphere']: []; + ['hierarchy.menu.new3dCapsule']: []; + ['hierarchy.menu.new3dCone']: []; + ['hierarchy.menu.new3dTorus']: []; + ['hierarchy.menu.new3dPlane']: []; + ['hierarchy.menu.new3dQuad']: []; + ['hierarchy.menu.newLightObject']: []; + ['hierarchy.menu.newLightDirectional']: []; + ['hierarchy.menu.newLightSphere']: []; + ['hierarchy.menu.newLightSpot']: []; + ['hierarchy.menu.newCameraObject']: []; + ['hierarchy.menu.newTerrain']: []; + ['hierarchy.menu.newEffects']: []; + ['hierarchy.menu.newEffectsParticle']: []; + ['hierarchy.menu.newUI']: []; + ['hierarchy.menu.newUICanvas']: []; + ['hierarchy.menu.newUISprite']: []; + ['hierarchy.menu.newUILabel']: []; + ['hierarchy.menu.newUIButton']: []; + ['hierarchy.menu.newUIToggle']: []; + ['hierarchy.menu.newUIToggleGroup']: []; + ['hierarchy.menu.newUISlider']: []; + ['hierarchy.menu.newUIProgressBar']: []; + ['hierarchy.menu.newUIWidget']: []; + ['hierarchy.menu.newUIEditBox']: []; + ['hierarchy.menu.newUILayout']: []; + ['hierarchy.menu.newUIScrollView']: []; + ['hierarchy.menu.newUIMask']: []; + ['hierarchy.menu.copy']: []; + ['hierarchy.menu.cut']: []; + ['hierarchy.menu.paste']: []; + ['hierarchy.menu.delete']: []; + ['hierarchy.menu.rename']: []; + ['hierarchy.menu.duplicate']: []; + ['hierarchy.menu.showUuid']: []; + ['hierarchy.menu.link_prefab']: []; + ['hierarchy.menu.link_prefab_error_node_empty']: []; + ['hierarchy.menu.link_prefab_error_node_isScene']: []; + ['hierarchy.menu.link_prefab_error_asset_empty']: []; + ['hierarchy.menu.link_prefab_error_asset_invalid']: []; + ['hierarchy.menu.link_prefab_make_sure']: []; + ['hierarchy.menu.unlink_prefab']: []; + ['hierarchy.menu.unlink_prefab_error_prefab_empty']: []; + ['hierarchy.menu.errorNewnameEmpty']: []; + ['hierarchy.operate.cutReady']: []; + ['hierarchy.operate.cutDone']: []; + ['hierarchy.operate.copyReady']: []; + ['hierarchy.operate.copyDone']: []; + ['hierarchy.operate.duplicateDone']: []; + ['hierarchy.operate.dialogError']: []; + ['hierarchy.operate.dialogWarning']: []; + ['hierarchy.operate.dialogQuestion']: []; + ['hierarchy.operate.dialogInfo']: []; + ['hierarchy.operate.renameFail']: []; + ['inspector.title']: []; + ['inspector.add_component']: []; + ['inspector.lock_unlock']: []; + ['inspector.backward_selection']: []; + ['inspector.forward_selection']: []; + ['inspector.menu.remove_component']: []; + ['inspector.menu.move_up_component']: []; + ['inspector.menu.move_down_component']: []; + ['inspector.menu.copy_node_value']: []; + ['inspector.menu.paste_node_value']: []; + ['inspector.menu.copy_component']: []; + ['inspector.menu.paste_component']: []; + ['inspector.menu.paste_component_values']: []; + ['inspector.asset.directory.is_subpackage']: []; + ['inspector.asset.directory.subpackage_name']: []; + ['inspector.asset.javascript.plugin']: []; + ['inspector.asset.javascript.loadPluginInWeb']: []; + ['inspector.asset.javascript.loadPluginInEditor']: []; + ['inspector.asset.javascript.loadPluginInNative']: []; + ['inspector.asset.fbx.browse']: []; + ['inspector.asset.spriteFrame.edit']: []; + ['inspector.asset.texture.modeWarn']: []; + ['inspector.node.layer.confirm_message']: []; + ['inspector.node.layer.change_children']: []; + ['inspector.node.layer.change_self']: []; + ['inspector.gradient.title']: []; + ['inspector.curve_editor.title']: []; + ['inspector.sprite_editor.title']: []; + ['inspector.sprite_editor.scale']: []; + ['inspector.sprite_editor.reset']: []; + ['inspector.sprite_editor.save']: []; + ['inspector.sprite_editor.saveError']: []; + ['inspector.sprite_editor.border']: []; + ['inspector.sprite_editor.left']: []; + ['inspector.sprite_editor.right']: []; + ['inspector.sprite_editor.top']: []; + ['inspector.sprite_editor.bottom']: []; + ['inspector.check_is_saved.message']: []; + ['inspector.check_is_saved.save']: []; + ['inspector.check_is_saved.abort']: []; + ['inspector.prefab.local']: []; + ['inspector.prefab.reset']: []; + ['inspector.prefab.save']: []; + ['inspector.prefab.link']: []; + ['inspector.prefab.unlink']: []; + ['inspector.prefab.lost']: []; + ['inspector.prefab.exist']: []; + ['packager.title']: []; + ['packager.menu.internal']: []; + ['packager.menu.project']: []; + ['packager.menu.global']: []; + ['packager.menu.add']: []; + ['packager.menu.addProject']: []; + ['packager.menu.addGlobal']: []; + ['packager.menu.addLabel']: []; + ['packager.menu.addSuccess']: []; + ['packager.menu.import']: []; + ['packager.menu.importProject']: []; + ['packager.menu.importGlobal']: []; + ['packager.menu.importSuccess']: []; + ['packager.menu.install']: []; + ['packager.menu.installProject']: []; + ['packager.menu.installGlobal']: []; + ['packager.menu.installSuccess']: []; + ['packager.menu.selectDirectory']: []; + ['packager.menu.search']: []; + ['packager.menu.openFolder']: []; + ['packager.menu.author']: []; + ['packager.menu.state']: []; + ['packager.menu.remove']: []; + ['packager.menu.removeSuccess']: []; + ['packager.menu.removeConfirm']: []; + ['packager.menu.enable']: []; + ['packager.menu.disable']: []; + ['packager.menu.enabled']: []; + ['packager.menu.disabled']: []; + ['packager.menu.invalid']: []; + ['packager.menu.confirm']: []; + ['packager.menu.addError']: []; + ['packager.menu.importError']: []; + ['preferences.title']: []; + ['preferences.nav.general']: []; + ['preferences.nav.edit']: []; + ['preferences.nav.extension']: []; + ['preferences.nav.native']: []; + ['preferences.nav.laboratory']: []; + ['preferences.general.language']: []; + ['preferences.general.step']: []; + ['preferences.general.preci']: []; + ['preferences.general.theme']: []; + ['preferences.general.themeColor']: []; + ['preferences.general.preview_ip']: []; + ['preferences.edit.script_editor']: []; + ['preferences.edit.picture_editor']: []; + ['preferences.edit.browse']: []; + ['preferences.edit.remove']: []; + ['preferences.edit.internal']: []; + ['preferences.native.wechatgame_app_path']: []; + ['preferences.extension.package']: []; + ['preferences.laboratory.about']: []; + ['preferences.laboratory.new_add_component']: []; + ['preferences.browse']: []; + ['preferences.open']: []; + ['preview.title']: []; + ['preview.automatic']: []; + ['preview.automatic_tooltip']: []; + ['preview.scene_is_empty']: []; + ['preview.play']: []; + ['preview.refresh_device']: []; + ['preview.scan']: []; + ['preview.create_template']: []; + ['preview.load_current_scene_error']: []; + ['preview.creat_template_success']: []; + ['project-setting.title']: []; + ['project-setting.nav.preview']: []; + ['project-setting.nav.groupList']: []; + ['project-setting.nav.modules']: []; + ['project-setting.nav.engine']: []; + ['project-setting.nav.layer']: []; + ['project-setting.nav.graphics']: []; + ['project-setting.nav.general']: []; + ['project-setting.nav.projectPath']: []; + ['project-setting.nav.wizardPath']: []; + ['project-setting.preview.start_scene']: []; + ['project-setting.preview.auto_refresh']: []; + ['project-setting.preview.current_scene']: []; + ['project-setting.preview.simulator_setting_type']: []; + ['project-setting.preview.global']: []; + ['project-setting.preview.project']: []; + ['project-setting.preview.simulator_device_orientation']: []; + ['project-setting.preview.simulator_resolution']: []; + ['project-setting.preview.customize_resolution']: []; + ['project-setting.preview.vertical']: []; + ['project-setting.preview.horizontal']: []; + ['project-setting.modules.title']: []; + ['project-setting.modules.info']: []; + ['project-setting.modules.warn']: []; + ['project-setting.modules.module']: []; + ['project-setting.modules.inquiry']: []; + ['project-setting.modules.submodule']: []; + ['project-setting.modules.inquiry_all']: []; + ['project-setting.engine.cocos_default']: []; + ['project-setting.engine.user_customize']: []; + ['project-setting.engine.renderPipeline']: []; + ['project-setting.engine.physics']: []; + ['project-setting.engine.builtin']: []; + ['project-setting.engine.cannon']: []; + ['project-setting.engine.ammo']: []; + ['project-setting.general.browse']: []; + ['project-setting.general.ts_compiler']: []; + ['project-setting.general.tslint.title']: []; + ['project-setting.general.tslint.default']: []; + ['project-setting.general.tslint.path']: []; + ['project-setting.general.section_canvas']: []; + ['project-setting.general.design_resolution']: []; + ['project-setting.general.width']: []; + ['project-setting.general.height']: []; + ['project-setting.general.fit_width']: []; + ['project-setting.general.fit_height']: []; + ['project-setting.general.type_check_level']: []; + ['project-setting.general.type_check_tips.disable']: []; + ['project-setting.general.type_check_tips.checkOnly']: []; + ['project-setting.general.type_check_tips.fatalOnError']: []; + ['scene.title']: []; + ['scene.new']: []; + ['scene.save']: []; + ['scene.save_as']: []; + ['scene.develop']: []; + ['scene.terrain.is_create_message']: []; + ['scene.terrain.is_create']: []; + ['scene.terrain.cancel']: []; + ['scene.terrain.edit']: []; + ['scene.terrain.save']: []; + ['scene.terrain.delete']: []; + ['scene.terrain.abort']: []; + ['scene.messages.warning']: []; + ['scene.messages.scenario_modified']: []; + ['scene.messages.want_to_save']: []; + ['scene.messages.save']: []; + ['scene.messages.dont_save']: []; + ['scene.messages.cancel']: []; + ['scene.messages.save_as_fail']: []; + ['scene.save_prefab']: []; + ['scene.close_prefab']: []; + ['scene.save_clip']: []; + ['scene.close_clip']: []; + ['scene.gizmos.icon3d']: []; + ['scene.gizmos.showGrid']: []; + ['scene.ui_tools.zoom_up']: []; + ['scene.ui_tools.zoom_down']: []; + ['scene.ui_tools.zoom_reset']: []; + ['scene.ui_tools.align_top']: []; + ['scene.ui_tools.align_v_center']: []; + ['scene.ui_tools.align_bottom']: []; + ['scene.ui_tools.align_left']: []; + ['scene.ui_tools.align_h_center']: []; + ['scene.ui_tools.align_right']: []; + ['scene.ui_tools.distribute_top']: []; + ['scene.ui_tools.distribute_v_center']: []; + ['scene.ui_tools.distribute_bottom']: []; + ['scene.ui_tools.distribute_left']: []; + ['scene.ui_tools.distribute_h_center']: []; + ['scene.ui_tools.distribute_right']: []; + ['tester.auto_tooltip']: []; + ['tester.play_tooltip']: []; + ['tester.pause_tooltip']: []; + ['ui-kit.title']: []; +} diff --git a/extensions/uistate-inspector/@types/packages/engine-extends/@types/third-parts.d.ts b/extensions/uistate-inspector/@types/packages/engine-extends/@types/third-parts.d.ts new file mode 100644 index 0000000..9494046 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine-extends/@types/third-parts.d.ts @@ -0,0 +1,160 @@ +declare module 'tga-js' { + export default class TGA { + width: number; + height: number; + getImageData(imageData?: ImageData): ImageData | {width: number, height: number, data: Uint8ClampedArray}; + constructor(); + load(data: Buffer): null; + } +} + +declare module 'psd.js' { + import PNG from 'pngjs'; + export default class PSD { + constructor (data: Buffer); + + parse(); + + image: { + toPng(): PNG; + }; + } +} + +declare module 'draco3dgltf' { + export function createDecoderModule(options: DecoderModuleOptions): typeof DecoderModule; + + // eslint-disable-next-line + export interface DecoderModuleOptions { + + } + + // eslint-disable-next-line + interface DecoderModule { + + } + + namespace DecoderModule { + function destroy(decoder: Decoder): void; + + function destroy(buffer: DecoderBuffer): void; + + function destroy(int32Array: DracoInt32Array): void; + + function destroy(mesh: Geometry): void; + + export class DecoderBuffer { + public Init(buffer: Int8Array, size: number): void; + } + + export class Decoder { + public GetEncodedGeometryType(buffer: DecoderBuffer): GeometryType; + + public DecodeBufferToMesh(buffer: DecoderBuffer, mesh: Mesh): Status; + + public DecodeBufferToPointCloud(buffer: DecoderBuffer, pointCloud: PointCloud): Status; + + public GetFaceFromMesh(geometry: Geometry, index: number, out: DracoInt32Array): void; + + public GetAttributeId(geometry: Geometry, attributeType: AttributeType): number; + + public GetAttributeByUniqueId(geometry: Geometry, uniqueId: number): Attribute; + + public GetAttribute(geometry: Geometry, attributeId: number): Attribute; + + public GetAttributeInt8ForAllPoints(geometry: Geometry, attribute: Attribute, attributeData: DracoInt8Array): void; + + public GetAttributeInt16ForAllPoints(geometry: Geometry, attribute: Attribute, attributeData: DracoInt16Array): void; + + public GetAttributeInt32ForAllPoints(geometry: Geometry, attribute: Attribute, attributeData: DracoInt32Array): void; + + public GetAttributeUInt8ForAllPoints(geometry: Geometry, attribute: Attribute, attributeData: DracoUInt8Array): void; + + public GetAttributeUInt16ForAllPoints(geometry: Geometry, attribute: Attribute, attributeData: DracoUInt16Array): void; + + public GetAttributeUInt32ForAllPoints(geometry: Geometry, attribute: Attribute, attributeData: DracoUInt32Array): void; + + public GetAttributeFloatForAllPoints(geometry: Geometry, attribute: Attribute, attributeData: DracoFloat32Array): void; + } + + class Status { + public ok(): boolean; + public error_msg(): string; + } + + enum GeometryType { + // See below + } + + export const TRIANGULAR_MESH: GeometryType; + + export const POINT_CLOUD: GeometryType; + + export class Mesh { + public ptr: number; + + public num_faces(): number; + + public num_points(): number; + } + + export class PointCloud { + public ptr: number; + + public num_points(): number; + } + + export type Geometry = Mesh | PointCloud; + + enum AttributeType { + // See below + } + + export const POSITION: AttributeType; + export const NORMAL: AttributeType; + export const COLOR: AttributeType; + export const TEX_COORD: AttributeType; + + class Attribute { + private constructor(); + public num_components(): number; + } + + export class DracoInt8Array { + public size(): number; + public GetValue(index: number): number; + } + + export class DracoInt16Array { + public size(): number; + public GetValue(index: number): number; + } + + export class DracoInt32Array { + public size(): number; + public GetValue(index: number): number; + } + + export class DracoUInt8Array { + public size(): number; + public GetValue(index: number): number; + } + + export class DracoUInt16Array { + public size(): number; + public GetValue(index: number): number; + } + + export class DracoUInt32Array { + public size(): number; + public GetValue(index: number): number; + } + + export class DracoFloat32Array { + public size(): number; + public GetValue(index: number): number; + } + } +} + +declare const EditorExtends: any; diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/index.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/index.d.ts new file mode 100644 index 0000000..bc0081e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/index.d.ts @@ -0,0 +1,51 @@ +import ScriptManager from './manager/script'; +import NodeManager from './manager/node'; +import ComponentManager from './manager/component'; +import AssetManager from './manager/asset'; +import DialogManager from './manager/dialog'; +export declare const Script: ScriptManager; +export declare const Node: NodeManager; +export declare const Component: ComponentManager; +export declare const Asset: AssetManager; +export declare const Dialog: DialogManager; +import * as Uuid from './utils/uuid'; +export declare const UuidUtils: typeof Uuid; +export declare let GeometryUtils: any; +export declare let PrefabUtils: any; +export declare let serialize: any; +export declare let serializeCompiled: any; +import { MissingClassReporter } from './missing-reporter/missing-class-reporter'; +import { MissingObjectReporter } from './missing-reporter/missing-object-reporter'; +export { walkProperties } from './missing-reporter/object-walker'; +export declare const MissingReporter: { + classInstance: { + reporter: MissingClassReporter; + classFinder(id: any, data: any, owner: any, propName: any): any; + hasMissingClass: boolean; + reportMissingClass(asset: any): void; + reset(): void; + }; + class: typeof MissingClassReporter; + object: typeof MissingObjectReporter; +}; +export declare function init(): Promise<void>; +/** + * 启动各个管理器 + */ +export declare function start(): void; +/** + * 关闭各个管理器 + */ +export declare function stop(): void; +export declare function emit(name: string | symbol, ...args: string[]): void; +export declare function on(name: string | symbol, handle: (...args: any[]) => void): void; +export declare function removeListener(name: string | symbol, handle: (...args: any[]) => void): void; +declare global { + export const EditorExtends: typeof import('.'); + export namespace cce { + namespace Utils { + const serialize: typeof import('./utils/serialize/index')['serialize']; + } + } +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/index.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/index.d.ts.map new file mode 100644 index 0000000..ec8360f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/editor-extends/index.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,MAAM,eAAoB,CAAC;AACxC,eAAO,MAAM,IAAI,aAAkB,CAAC;AACpC,eAAO,MAAM,SAAS,kBAAuB,CAAC;AAC9C,eAAO,MAAM,KAAK,cAAmB,CAAC;AACtC,eAAO,MAAM,MAAM,eAAoB,CAAC;AAGxC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,eAAO,MAAM,SAAS,aAAO,CAAC;AAG9B,eAAO,IAAI,aAAa,EAAE,GAAG,CAAC;AAG9B,eAAO,IAAI,WAAW,EAAE,GAAG,CAAC;AAE5B,eAAO,IAAI,SAAS,EAAE,GAAG,CAAC;AAC1B,eAAO,IAAI,iBAAiB,EAAE,GAAG,CAAC;AAGlC,OAAO,EAAE,oBAAoB,EAAgB,MAAM,2CAA2C,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;;;;CAI3B,CAAC;AAEF,wBAAsB,IAAI,kBAQzB;AAED;;GAEG;AACH,wBAAgB,KAAK,SAIpB;AAED;;GAEG;AACH,wBAAgB,IAAI,SAInB;AAID,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAE5D;AAED,wBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,QAEzE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,QAErF;AAED,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,MAAM,aAAa,EAAE,cAAc,GAAG,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,CAAC;QACjB,UAAiB,KAAK,CAAC;YACZ,MAAM,SAAS,EAAE,cAAc,yBAAyB,CAAC,CAAC,WAAW,CAAC,CAAC;SACjF;KACJ;CACJ"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/asset.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/asset.d.ts new file mode 100644 index 0000000..c08263d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/asset.d.ts @@ -0,0 +1,15 @@ +export default class AssetManager { + /** + * 查询一个资源的 info 信息 + * @param uuid + * @param callback + */ + queryAssetInfo(uuid: string, callback: Function): void; + /** + * 查询一个路径下的资源 + * @param url + * @param callback + */ + getAssetInfoFromUrl(url: string): any; +} +//# sourceMappingURL=asset.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/asset.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/asset.d.ts.map new file mode 100644 index 0000000..1085237 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/asset.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/manager/asset.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,OAAO,YAAY;IAE7B;;;;OAIG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IActD;;;;OAIG;IACI,mBAAmB,CAAC,GAAG,EAAE,MAAM;CAgBzC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/component.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/component.d.ts new file mode 100644 index 0000000..edb21ee --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/component.d.ts @@ -0,0 +1,82 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +interface MenuItem { + component: Function; + menuPath: string; + priority: number; +} +export default class ComponentManager extends EventEmitter { + allow: boolean; + _menus: MenuItem[]; + /** + * 添加一个组件的菜单项 + * @param component + * @param path + * @param priority + */ + addMenu(component: Function, path: string, priority?: number): void; + /** + * 删除一个组件的菜单项 + * @param component + */ + removeMenu(component: Function): void; + /** + * 查询已经注册的组件菜单项 + */ + getMenus(): MenuItem[]; + _map: { + [index: string]: any; + }; + _recycle: { + [index: string]: any; + }; + /** + * 新增一个组件 + * 1. 调用Node的addComponent时会调用此方法 + * 2. Node添加到场景树时,会遍历身上的组件调用此方法 + * @param uuid + * @param component + */ + add(uuid: string, component: any): void; + /** + * 删除一个组件 + * 1. 调用Node的_removeComponent时会调用此方法,removeComponent会在下一帧调用_removeComponent, + * removeComponent会调用一些Component的生命周期函数,而_removeComponent不会。 + * 2. Node添加到场景树时,会遍历身上的组件调用此方法 + * @param uuid + */ + remove(uuid: string): void; + /** + * 清空全部数据 + */ + clear(): void; + /** + * 获取一个指定的组件 + * @param uuid + */ + getComponent(uuid: string): any; + /** + * 获取所有的组件数据 + */ + getComponents(): { + [index: string]: any; + }; + /** + * 获取一个在回收站里的组件 + * @param uuid + */ + getRecycleComponent(uuid: string): any; + /** + * 获取所有回收站里的组件 + */ + getRecycleComponents(): { + [index: string]: any; + }; + /** + * 从回收站中还原一个组件 + * @param uuid + */ + recycle(uuid: string): void; +} +export {}; +//# sourceMappingURL=component.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/component.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/component.d.ts.map new file mode 100644 index 0000000..602cd9f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/manager/component.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,UAAU,QAAQ;IACd,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY;IAEtD,KAAK,UAAS;IAKd,MAAM,EAAE,QAAQ,EAAE,CAAM;IAExB;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAY5D;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,QAAQ;IAW9B;;OAEG;IACH,QAAQ;IAOR,IAAI,EAAE;QAAC,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAK;IAGjC,QAAQ,EAAE;QAAC,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAK;IAErC;;;;;;OAMG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;IAYhC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM;IAiBnB;;OAEG;IACH,KAAK;IAQL;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB;;OAEG;IACH,aAAa;;;IAIb;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM;IAIhC;;OAEG;IACH,oBAAoB;;;IAIpB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM;CAUvB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/dialog.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/dialog.d.ts new file mode 100644 index 0000000..dd73939 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/dialog.d.ts @@ -0,0 +1,32 @@ +interface MessageDialogOptions { + title?: string; + detail?: string; + default?: number; + cancel?: number; + buttons?: string[]; +} +export default class Dialog { + /** + * 信息弹窗 + * @param message 显示的消息 + * @param options 信息弹窗可选参数 + * @param window 依附于哪个窗口(插件主进程才可使用) + */ + info(message: string, options?: MessageDialogOptions): Promise<unknown>; + /** + * 警告弹窗 + * @param message 警告信息 + * @param options 警告弹窗可选参数 + * @param window 依附于哪个窗口(插件主进程才可使用) + */ + warn(message: string, options?: MessageDialogOptions): Promise<unknown>; + /** + * 错误弹窗 + * @param message 错误信息 + * @param options 错误弹窗可选参数 + * @param window 依附于哪个窗口(插件主进程才可使用) + */ + error(message: string, options?: MessageDialogOptions): Promise<unknown>; +} +export {}; +//# sourceMappingURL=dialog.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/dialog.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/dialog.d.ts.map new file mode 100644 index 0000000..0f27c7c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/dialog.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/manager/dialog.ts"],"names":[],"mappings":"AAEA,UAAU,oBAAoB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAID,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;IAYxD;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;IAYxD;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CAW5D"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/node.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/node.d.ts new file mode 100644 index 0000000..b4a82a7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/node.d.ts @@ -0,0 +1,54 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +/// <reference types="node" /> +import type { Node } from 'cc'; +import { EventEmitter } from 'events'; +export default class NodeManager extends EventEmitter { + allow: boolean; + _map: { + [index: string]: any; + }; + _recycle: { + [index: string]: any; + }; + /** + * 新增一个节点,当引擎将一个节点添加到场景树中,同时会遍历子节点,递归的调用这个方法。 + * @param uuid + * @param node + */ + add(uuid: string, node: any): void; + /** + * 删除一个节点,当引擎将一个节点从场景树中移除,同时会遍历子节点,递归的调用这个方法。 + * @param uuid + */ + remove(uuid: string): void; + /** + * 清空所有数据 + */ + clear(): void; + /** + * 获取一个节点数据,查的范围包括被删除的节点 + * @param uuid + */ + getNode(uuid: string): Node | null; + /** + * 获取所有的节点数据 + */ + getNodes(): { + [index: string]: any; + } & { + [index: string]: any; + }; + /** + * 获取场景中使用了某个资源的节点 + * @param uuid asset uuid + */ + getNodesByAsset(uuid: string): string[]; + /** + * 获取所有在场景树中的节点数据 + */ + getNodesInScene(): { + [index: string]: any; + }; + changeNodeUUID(oldUUID: string, newUUID: string): void; +} +//# sourceMappingURL=node.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/node.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/node.d.ts.map new file mode 100644 index 0000000..95add05 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/node.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/manager/node.ts"],"names":[],"mappings":";;AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY;IAEjD,KAAK,UAAS;IAEd,IAAI,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;IAEpC,QAAQ,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;IAExC;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAY3B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM;IAiBnB;;OAEG;IACH,KAAK;IAQL;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIlC;;OAEG;IACH,QAAQ;;;;;IAKR;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM;IAqC5B;;OAEG;IACH,eAAe;;;IAIf,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAelD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/script.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/script.d.ts new file mode 100644 index 0000000..16d8acc --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/script.d.ts @@ -0,0 +1,26 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +export default class ScriptManager extends EventEmitter { + allow: boolean; + _map: { + [index: string]: Function[]; + }; + /** + * 将一个 ctor 放到一个脚本注册 class 的数组里 + * @param uuid + * @param ctor + */ + add(uuid: string, ctor: Function): void; + /** + * 在 uuid 指向的脚本 ctor 数组里删除对应的 ctor + * @param uuid + * @param ctor + */ + remove(uuid: string, ctor: Function): void; + /** + * 获取指定模块内注册的 class 列表 + * @param uuid + */ + getCtors(uuid: string): Function[]; +} +//# sourceMappingURL=script.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/script.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/script.d.ts.map new file mode 100644 index 0000000..8d662d3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/manager/script.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/manager/script.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,YAAY;IAEnD,KAAK,UAAS;IAEd,IAAI,EAAE;QAAC,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAA;KAAC,CAAK;IAExC;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAYhC;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAenC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM;CAGxB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-class-reporter.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-class-reporter.d.ts new file mode 100644 index 0000000..8fe234e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-class-reporter.d.ts @@ -0,0 +1,13 @@ +import { MissingReporter } from './missing-reporter'; +export declare class MissingClassReporter extends MissingReporter { + report(): void; + reportByOwner(): void; +} +export declare const MissingClass: { + reporter: MissingClassReporter; + classFinder(id: any, data: any, owner: any, propName: any): any; + hasMissingClass: boolean; + reportMissingClass(asset: any): void; + reset(): void; +}; +//# sourceMappingURL=missing-class-reporter.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-class-reporter.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-class-reporter.d.ts.map new file mode 100644 index 0000000..f42eb3a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-class-reporter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"missing-class-reporter.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/missing-reporter/missing-class-reporter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA6ErD,qBAAa,oBAAqB,SAAQ,eAAe;IAErD,MAAM;IAQN,aAAa;CA6BhB;AAGD,eAAO,MAAM,YAAY;;oBAEL,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG;;8BAY/B,GAAG;;CAahC,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-object-reporter.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-object-reporter.d.ts new file mode 100644 index 0000000..cc92539 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-object-reporter.d.ts @@ -0,0 +1,8 @@ +import { MissingReporter } from './missing-reporter'; +export declare class MissingObjectReporter extends MissingReporter { + root: any; + doReport(obj: any, value: any, parsedObjects: any, rootUrl: any, inRootBriefLocation: any): void; + report(): void; + reportByOwner(): void; +} +//# sourceMappingURL=missing-object-reporter.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-object-reporter.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-object-reporter.d.ts.map new file mode 100644 index 0000000..480bc40 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-object-reporter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"missing-object-reporter.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/missing-reporter/missing-object-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA8BrD,qBAAa,qBAAsB,SAAQ,eAAe;IAEtD,IAAI,EAAE,GAAG,CAAC;IAEV,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG;IAsEzF,MAAM;IA4BN,aAAa;CA+BhB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-reporter.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-reporter.d.ts new file mode 100644 index 0000000..497583c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-reporter.d.ts @@ -0,0 +1,20 @@ +export declare class MissingReporter { + outputLevel: 'debug' | 'warn' | 'error'; + static INFO_DETAILED: string; + static getObjectType(obj: any): "component" | "prefab" | "scene" | "asset"; + missingObjects: Set<unknown>; + missingOwners: Map<any, any>; + root: any; + report(): void; + reportByOwner(): void; + constructor(root?: any); + reset(): void; + stash(obj: any): void; + /** + * stashByOwner 和 stash 的区别在于,stash 要求对象中有值,stashByOwner 允许对象的值为空 + * @param {any} [value] - 如果 value 未设置,不会影响提示信息,只不过提示信息可能会不够详细 + */ + stashByOwner(owner: any, propName: any, value: any): void; + removeStashedByOwner(owner: any, propName: any): any; +} +//# sourceMappingURL=missing-reporter.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-reporter.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-reporter.d.ts.map new file mode 100644 index 0000000..98f431b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/missing-reporter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"missing-reporter.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/missing-reporter/missing-reporter.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAe;IAExB,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAW;IAElD,MAAM,CAAC,aAAa,SAA8B;IAElD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG;IAgB7B,cAAc,eAAa;IAG3B,aAAa,gBAAa;IAE1B,IAAI,EAAE,GAAG,CAAC;IAEV,MAAM;IACN,aAAa;gBAED,IAAI,CAAC,EAAE,GAAG;IAItB,KAAK;IAML,KAAK,CAAC,GAAG,EAAE,GAAG;IAId;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IASlD,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;CAoBjD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/object-walker.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/object-walker.d.ts new file mode 100644 index 0000000..95ce8cb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/object-walker.d.ts @@ -0,0 +1,43 @@ +export declare class ObjectWalkerBehavior { + walk(obj: any, key: any, val: any): void; + root: any; + constructor(root: any); + parseObject(val: any): void; + parseCCClass(val: any, klass: any, props: any): void; + forIn(val: any): void; + forEach(val: any): void; +} +export declare class ObjectWalker extends ObjectWalkerBehavior { + iteratee: any; + parsedObjects: any; + parsedKeys: any; + ignoreParent: any; + ignoreSubPrefabHelper: any; + walked: Set<unknown>; + constructor(root: any, iteratee: any, options?: any); + walk(obj: any, key: any, val: any): void; +} +/** + * Traverse all objects recursively + * @param {Object} root + * @param {Function} iteratee + * @param {Object} iteratee.object + * @param {String} iteratee.property + * @param {Object} iteratee.value - per object will be navigated ONLY once in this parameter + * @param {Object[]} iteratee.parsedObjects - parsed object path, NOT contains the "object" parameter + */ +export declare function walk(root: any, iteratee: any): void; +/** + * Traverse all object's properties recursively + * @param {Object} root + * @param {Function} iteratee + * @param {Object} iteratee.object + * @param {String} iteratee.property - per object property will be navigated ONLY once in this parameter + * @param {Object} iteratee.value - per object may be navigated MORE than once in this parameter + * @param {Object[]} iteratee.parsedObjects - parsed object path, NOT contains the "object" parameter + * @param {Object} [options] + * @param {Boolean} [options.dontSkipNull = false] + */ +export declare function walkProperties(root: any, iteratee: any, options: any): void; +export declare function getNextProperty(parsedObjects: any, parsingObject: any, object: any): string; +//# sourceMappingURL=object-walker.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/object-walker.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/object-walker.d.ts.map new file mode 100644 index 0000000..dc826c2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/missing-reporter/object-walker.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"object-walker.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/missing-reporter/object-walker.ts"],"names":[],"mappings":"AAIA,qBAAa,oBAAoB;IAC7B,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAEjC,IAAI,EAAE,GAAG,CAAC;gBAEE,IAAI,EAAE,GAAG;IAIrB,WAAW,CAAC,GAAG,EAAE,GAAG;IAwBpB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAU7C,KAAK,CAAC,GAAG,EAAE,GAAG;IAWd,OAAO,CAAC,GAAG,EAAE,GAAG;CAKnB;AAMD,qBAAa,YAAa,SAAQ,oBAAoB;IAClD,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,qBAAqB,EAAE,GAAG,CAAC;IAE3B,MAAM,eAAa;gBAEP,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG;IAuBnD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAmCpC;AAGD;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,QAE5C;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QAwBpE;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,UAiBlF"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/geometry.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/geometry.d.ts new file mode 100644 index 0000000..ac05cab --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/geometry.d.ts @@ -0,0 +1,19 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +import { gfx } from 'cc'; +interface IWritableArrayLike<T> { + length: number; + [index: number]: T; +} +export declare const calculateNormals: (positions: ArrayLike<number>, indices: ArrayLike<number>, out?: IWritableArrayLike<number>) => IWritableArrayLike<number>; +export declare const calculateTangents: (positions: ArrayLike<number>, indices: ArrayLike<number>, normals: ArrayLike<number>, uvs: ArrayLike<number>, out?: IWritableArrayLike<number>) => IWritableArrayLike<number>; +export declare function forEachFace(indices: ArrayLike<number>, primitiveMode: gfx.PrimitiveMode, callback: (faceIndices: number[]) => any): void; +export declare class MeshSplitInfo { + indices: number[]; + jointSet: Set<number>; + primitiveMode: gfx.PrimitiveMode; + constructor(primitiveMode?: any); +} +export declare const splitBasedOnJoints: (joints: ArrayLike<number>, indices: ArrayLike<number>, primitiveMode: gfx.PrimitiveMode, capacity: number) => MeshSplitInfo[]; +export declare function getUintArrayCtor(maxElement: number): Uint8ArrayConstructor | Uint16ArrayConstructor | Uint32ArrayConstructor; +export {}; +//# sourceMappingURL=geometry.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/geometry.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/geometry.d.ts.map new file mode 100644 index 0000000..4028553 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/geometry.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/utils/geometry.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AAGzB,UAAU,kBAAkB,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,cAQN,UAAU,MAAM,CAAC,WAAW,UAAU,MAAM,CAAC,QAAO,mBAAmB,MAAM,CAAC,+BAyBjG,CAAC;AAEL,eAAO,MAAM,iBAAiB,cAcP,UAAU,MAAM,CAAC,WAAW,UAAU,MAAM,CAAC,WAAW,UAAU,MAAM,CAAC,OACnF,UAAU,MAAM,CAAC,QAAO,mBAAmB,MAAM,CAAC,+BAgD3D,CAAC;AAEL,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAG,QAoEjI;AAED,qBAAa,aAAa;IACf,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB,QAAQ,cAAqB;IAE7B,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC;gBAC5B,aAAa,MAAsC;CAGlE;AAED,eAAO,MAAM,kBAAkB,WAsBX,UAAU,MAAM,CAAC,WAAW,UAAU,MAAM,CAAC,iBAAiB,IAAI,aAAa,YAAY,MAAM,oBAyBjH,CAAC;AAEL,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,2EAIlD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/prefab.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/prefab.d.ts new file mode 100644 index 0000000..433ca53 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/prefab.d.ts @@ -0,0 +1,18 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +import { Component, Node, Prefab } from 'cc'; +interface IAddPrefabInfoOption { + nodeFileIdGenerator?: (node: Node) => string; + compFileIdGenerator?: (comp: Component, index: number) => string; +} +/** + * 递归循环所有的子节点,执行 handle 方法 + * @param {*} node + * @param {*} handle + */ +export declare function walkNode(node: Node, handle: (node: Node, isChild: boolean) => boolean | void, isChild?: boolean): void; +export declare function visitObjTypeReferences(node: Node, visitor: any): void; +export declare function addPrefabInfo(targetNode: Node, rootNode: Node, asset: Prefab, opts?: IAddPrefabInfoOption): void; +export declare function checkAndStripNode(node: Node, quiet?: boolean | undefined): void; +export declare function addPrefabInstance(node: Node): void; +export {}; +//# sourceMappingURL=prefab.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/prefab.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/prefab.d.ts.map new file mode 100644 index 0000000..cd32b54 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/prefab.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"prefab.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/utils/prefab.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAuB,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAKlE,UAAU,oBAAoB;IAC1B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IAC7C,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACpE;AAID;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,GAAC,IAAI,EAAE,OAAO,UAAQ,QAU3G;AAID,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAyB9D;AAyBD,wBAAgB,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,QAoE7G;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,OAAO,GAAG,SAAqB,QAkEnF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,QAQ3C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/builder.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/builder.d.ts new file mode 100644 index 0000000..5b2cbbf --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/builder.d.ts @@ -0,0 +1,55 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +import { ValueType, deserialize } from 'cc'; +import { Node, IRefsBuilder, TraceableDict } from './types'; +import { IBuilder, IBuilderOptions, PropertyOptions, IArrayOptions, IClassOptions, ICustomClassOptions, IObjParsingInfo } from '../parser'; +import D = deserialize.Internal; +declare type Empty = D.Empty_; +import File = D.File_; +declare type IFileData = D.IFileData_; +declare type IRefs = D.IRefs_; +export declare const FORMAT_VERSION = 1; +declare namespace RefsBuilder { + class Impl implements IRefsBuilder { + private beforeOffsetRefs; + private afterOffsetRefs; + private ctx; + constructor(ctx: Builder); + addRef(owner: Node, key: string | number, target: Node): number; + build(): IRefs | null; + } +} +export declare function reduceEmptyArray<T extends any[]>(array: T): T | Empty; +export default class Builder implements IBuilder { + stringify: boolean; + minify: boolean; + noNativeDep: boolean; + sharedUuids: TraceableDict<string>; + sharedStrings: TraceableDict<string>; + refsBuilder: RefsBuilder.Impl; + dependAssets: (string | number | Node)[]; + private rootNode; + private normalNodes; + private advancedNodes; + private classNodes; + private data; + constructor(options: IBuilderOptions); + setProperty_Array(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, options: IArrayOptions): IObjParsingInfo; + setProperty_Dict(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, options: PropertyOptions): IObjParsingInfo; + setProperty_Class(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, options: IClassOptions): IObjParsingInfo; + setProperty_CustomizedClass(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, options: ICustomClassOptions): IObjParsingInfo; + setProperty_ParsedObject(ownerInfo: IObjParsingInfo, key: string | number, valueInfo: IObjParsingInfo, formerlySerializedAs: string | null): void; + setProperty_Raw(owner: object, ownerInfo: IObjParsingInfo, key: string | number, value: any, options: PropertyOptions): void; + setProperty_ValueType(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, value: ValueType, options: PropertyOptions): IObjParsingInfo | null; + setProperty_TypedArray(owner: object, ownerInfo: IObjParsingInfo, key: string | number, value: any, options: PropertyOptions): void; + setProperty_AssetUuid(owner: object, ownerInfo: IObjParsingInfo, key: string | number, uuid: string, options: PropertyOptions): void; + setRoot(objInfo: IObjParsingInfo): void; + private setDynamicProperty; + private collectInstances; + private dumpInstances; + private dumpInstanceTypes; + private dumpDependUuids; + dump(): object | string; +} +export declare function getRootData(data: IFileData): IFileData[File.Instances]; +export {}; +//# sourceMappingURL=builder.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/builder.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/builder.d.ts.map new file mode 100644 index 0000000..1b7d6bb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/builder.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../../source/editor-extends/utils/serialize/compiled/builder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/create-class-mask.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/create-class-mask.d.ts new file mode 100644 index 0000000..32ca36e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/create-class-mask.d.ts @@ -0,0 +1,12 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +import { deserialize } from 'cc'; +import D = deserialize.Internal; +declare type IClass = D.IClass_; +declare type IMask = D.IMask_; +import { ClassNode, CustomClassNode } from './types'; +export default function (classNodes: (ClassNode | CustomClassNode)[]): { + sharedClasses: (IClass | string)[]; + sharedMasks: IMask[]; +}; +export {}; +//# sourceMappingURL=create-class-mask.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/create-class-mask.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/create-class-mask.d.ts.map new file mode 100644 index 0000000..8cecc8a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/create-class-mask.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"create-class-mask.d.ts","sourceRoot":"","sources":["../../../../../source/editor-extends/utils/serialize/compiled/create-class-mask.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,WAAW,EACd,MAAM,IAAI,CAAC;AAGZ,OAAO,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC;AAEhC,aAAK,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;AAExB,aAAK,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AA4JnF,MAAM,CAAC,OAAO,WAAU,UAAU,EAAE,CAAC,SAAS,GAAC,eAAe,CAAC,EAAE,GAAG;IAChE,aAAa,EAAE,CAAC,MAAM,GAAC,MAAM,CAAC,EAAE,CAAC;IACjC,WAAW,EAAE,KAAK,EAAE,CAAC;CACxB,CAkCA"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/pack-jsons.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/pack-jsons.d.ts new file mode 100644 index 0000000..26119f0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/pack-jsons.d.ts @@ -0,0 +1,8 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +import { deserialize } from 'cc'; +import D = deserialize.Internal; +declare type IFileData = D.IFileData_; +declare type IPackedFileData = D.IPackedFileData_; +export default function packJSONs(datas: IFileData[]): IPackedFileData; +export {}; +//# sourceMappingURL=pack-jsons.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/pack-jsons.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/pack-jsons.d.ts.map new file mode 100644 index 0000000..f38ed6d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/pack-jsons.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pack-jsons.d.ts","sourceRoot":"","sources":["../../../../../source/editor-extends/utils/serialize/compiled/pack-jsons.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,WAAW,EACd,MAAM,IAAI,CAAC;AAGZ,OAAO,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC;AAShC,aAAK,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC;AAE9B,aAAK,eAAe,GAAG,CAAC,CAAC,gBAAgB,CAAC;AAgL1C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,eAAe,CAwCrE"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/types.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/types.d.ts new file mode 100644 index 0000000..fd1a93e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/types.d.ts @@ -0,0 +1,101 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +import { deserialize } from 'cc'; +import D = deserialize.Internal; +declare type OtherObjectData = D.OtherObjectData_; +declare type AnyData = D.AnyData_; +import DataTypeID = D.DataTypeID_; +declare type DataTypes = D.DataTypes_; +declare type IClassObjectData = D.IClassObjectData_; +declare type ICustomObjectData = D.ICustomObjectData_; +declare type ICustomObjectDataContent = D.ICustomObjectDataContent_; +declare type IDictData = D.IDictData_; +declare type IMask = D.IMask_; +declare type IClass = D.IClass_; +export declare class TraceableItem { + result: any; + private tracers; + private keys; + static compareByRefCount(lhs: TraceableItem, rhs: TraceableItem): number; + private static readonly NO_RESULT; + constructor(); + traceBy(tracer: object, key: (string | number)): void; + movedTo(index: number): void; +} +export declare class TraceableDict<T> { + static readonly PLACEHOLDER = 0; + private values; + trace(source: any, tracer: object, key: (string | number)): TraceableItem; + traceString(source: string, tracer: object, key: (string | number)): void; + get(source: any): TraceableItem | undefined; + getSortedItems(): TraceableItem[]; + dump(offset?: number): T[]; +} +export interface IRefsBuilder { + addRef(owner: Node, key: string | number, target: Node): number; +} +declare type DynamicType = DataTypeID.Array | DataTypeID.Dict | DataTypeID.Class | DataTypeID.CustomizedClass; +declare type DerivedType = DataTypeID.InstanceRef | // 被多个对象复用时 +DataTypeID.SimpleType | // 可以完美被 json 序列化时 +DataTypeID.Array_AssetRefByInnerObj | DataTypeID.Array_Class | DataTypeID.Array_InstanceRef; +declare type StaticType = DataTypeID.SimpleType | DataTypeID.ValueType | DataTypeID.ValueTypeCreated | DataTypeID.TRS | DataTypeID.AssetRefByInnerObj; +export declare class Node { + selfType: DynamicType | DerivedType; + refCount: number; + indexed: boolean; + shouldBeIndexed: boolean; + private _index; + get instanceIndex(): number; + set instanceIndex(val: number); + get refType(): DynamicType | DerivedType; + static compareByRefCount(lhs: Node, rhs: Node): number; + constructor(dataTypeID: DynamicType); + setStatic<T extends StaticType>(key: string | number, dataTypeID: T, data: DataTypes[T]): void; + setDynamic(target: Node, key?: string | number): void; + static readonly AssetPlaceholderType = DataTypeID.SimpleType; + static readonly AssetPlaceholderValue: null; + setAssetRefPlaceholderOnIndexed(key: string | number): void; + dumpRecursively(refsBuilder: IRefsBuilder): (IClassObjectData | OtherObjectData); +} +export declare class ArrayNode extends Node { + types: (DataTypeID | undefined)[]; + datas: (AnyData | Node)[]; + static DeriveTypes: D.DataTypeID_[][]; + constructor(length: number); + setStatic(key: number, dataTypeID: StaticType, data: AnyData): void; + setDynamic(target: Node, key: number): void; + setAssetRefPlaceholderOnIndexed(key: number): void; + dumpRecursively(refsBuilder: IRefsBuilder): (import("cc").__private._cocos_serialization_deserialize__AnyData | Node)[]; +} +export declare class DictNode extends Node { + data: IDictData; + json: Record<string, DataTypes[DataTypeID.SimpleType]>; + dynamics: Record<string, Node>; + constructor(); + setStatic(key: string, dataTypeID: StaticType, value: AnyData): void; + setDynamic(target: Node, key: string): void; + dumpRecursively(refsBuilder: IRefsBuilder): IDictData | object; +} +export declare class ClassNode extends Node { + ctor: string; + simpleKeys: string[]; + private simpleValues; + advanceds: (string | number | boolean | object | number[] | import("cc").__private._cocos_serialization_deserialize__IClassObjectData | import("cc").__private._cocos_serialization_deserialize__IClassObjectData[] | import("cc").__private._cocos_serialization_deserialize__IDictData | import("cc").__private._cocos_serialization_deserialize__IArrayData | import("cc").__private._cocos_serialization_deserialize__IValueTypeData | import("cc").__private._cocos_serialization_deserialize__ITRSData | import("cc").__private._cocos_serialization_deserialize__ICustomObjectData | Node | null | undefined)[]; + dumped: IClassObjectData | undefined; + static fromData(clazz: IClass, mask: IMask, data: IClassObjectData): ClassNode; + constructor(ctor: string); + setStatic(key: string, dataTypeID: StaticType, value: AnyData): void; + setDynamic(target: Node, key: string): void; + dumpRecursively(refsBuilder: IRefsBuilder): IClassObjectData; +} +export declare class CustomClassNode extends Node { + ctor: string; + content: ICustomObjectDataContent; + dumped: ICustomObjectData | undefined; + static fromData(ctor: string, data: ICustomObjectData): CustomClassNode; + constructor(ctor: string, content: ICustomObjectDataContent); + setStatic(key: string, dataTypeID: StaticType, value: AnyData): void; + setDynamic(target: Node, key: string): void; + dumpRecursively(refsBuilder: IRefsBuilder): ICustomObjectData; +} +export {}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/types.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/types.d.ts.map new file mode 100644 index 0000000..4e95d4e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/compiled/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../source/editor-extends/utils/serialize/compiled/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/dynamic-builder.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/dynamic-builder.d.ts new file mode 100644 index 0000000..08877cd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/dynamic-builder.d.ts @@ -0,0 +1,74 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +import { Asset, ValueType, Constructor } from 'cc'; +import { IBuilder, IBuilderOptions, PropertyOptions, IArrayOptions, IClassOptions, ICustomClassOptions, IObjParsingInfo } from './parser'; +import { CCON } from 'cc/editor/serialization'; +declare namespace Format { + export interface Class { + __type__: string; + [prop: string]: AnyItem; + } + export interface CustomizedClass extends Class { + content: any; + } + export interface TypedArray extends Class { + __type__: 'TypedArray'; + ctor: string; + array: any[]; + } + export interface InstanceReference { + __id__: number; + } + export interface AssetReference { + __uuid__: string; + } + type RawItem = number | string | boolean | null; + type Item = Class | InstanceReference | RawItem; + type Dict = { + [key in string]: AnyItem; + }; + type Array = AnyItem[]; + export type Object = Class | Dict | Array; + export type AnyItem = Item | Dict | Array; + export {}; +} +interface IObjAndId extends IObjParsingInfo { + data: Format.AnyItem; + id: number; +} +export default class DynamicBuilder implements IBuilder { + stringify: boolean; + minify: boolean; + forceInline: boolean; + private serializedList; + constructor(options: IBuilderOptions); + setProperty_Array(owner: object | null, ownerInfo: IObjAndId | null, key: string | number, options: IArrayOptions): IObjAndId; + setProperty_Dict(owner: object | null, ownerInfo: IObjAndId | null, key: string | number, options: PropertyOptions): IObjAndId; + private addObject; + setProperty_Class(owner: object | null, ownerInfo: IObjAndId | null, key: string | number, options: IClassOptions): IObjAndId; + setProperty_CustomizedClass(owner: object | null, ownerInfo: IObjAndId | null, key: string | number, options: ICustomClassOptions): IObjAndId; + setProperty_ParsedObject(ownerInfo: IObjAndId, key: string | number, valueInfo: IObjAndId, formerlySerializedAs: string | null): void; + setProperty_Raw(owner: object, ownerInfo: IObjAndId, key: string | number, value: any, options: PropertyOptions): void; + setProperty_ValueType(owner: object | null, ownerInfo: IObjAndId | null, key: string | number, value: ValueType, options: PropertyOptions): IObjAndId; + setProperty_TypedArray(owner: object, ownerInfo: IObjAndId, key: string | number, value: any, options: PropertyOptions): void; + setProperty_AssetUuid(owner: object, ownerInfo: IObjAndId, key: string | number, uuid: string, options: PropertyOptions): void; + setRoot(objInfo: IObjAndId): void; + dump(): object | string | CCON; + private _useCCON; + private _mainBufferBuilder; + private _dumpAsJson; + private _dumpAsCCON; + private _getMainJsonData; +} +/** + * Create a pseudo object which will be force serialized as a reference to any asset by specified uuid. + */ +export declare function asAsset(uuid: string, type?: Constructor<Asset>): Asset | null; +/** + * Set the asset's name directly in JSON object + */ +export declare function setName(data: Format.AnyItem, name: string): void; +export declare function findRootObject(data: Format.AnyItem, type: string): string | number | boolean | Format.InstanceReference | { + [x: string]: Format.AnyItem; +} | null; +export {}; +//# sourceMappingURL=dynamic-builder.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/dynamic-builder.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/dynamic-builder.d.ts.map new file mode 100644 index 0000000..79c5b06 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/dynamic-builder.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dynamic-builder.d.ts","sourceRoot":"","sources":["../../../../source/editor-extends/utils/serialize/dynamic-builder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/index.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/index.d.ts new file mode 100644 index 0000000..577eb4d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/index.d.ts @@ -0,0 +1,13 @@ +import { IOptions } from './parser'; +export declare function serialize(obj: Exclude<any, null | undefined>, options?: IOptions): string | object; +export declare namespace serialize { + var asAsset: typeof import("./dynamic-builder").asAsset; + var setName: typeof import("./dynamic-builder").setName; + var findRootObject: typeof import("./dynamic-builder").findRootObject; +} +export declare function serializeCompiled(obj: Exclude<any, null | undefined>, options: IOptions): string | object; +export declare namespace serializeCompiled { + var getRootData: typeof import("./compiled/builder").getRootData; + var packJSONs: typeof import("./compiled/pack-jsons").default; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/index.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/index.d.ts.map new file mode 100644 index 0000000..b77adc6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/editor-extends/utils/serialize/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,QAAQ,EAAE,MAAM,UAAU,CAAC;AAI5D,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAwBlG;yBAxBe,SAAS;;;;;AA8BzB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,GAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAMvG;yBANe,iBAAiB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/parser.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/parser.d.ts new file mode 100644 index 0000000..6d84d8d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/parser.d.ts @@ -0,0 +1,112 @@ +/// <reference types="../../../../node_modules/cc/cc" /> +import { ValueType } from 'cc'; +interface IPropertyOptions { + formerlySerializedAs?: string; + defaultValue?: any; + expectedType?: string; +} +export declare type PropertyOptions = IPropertyOptions | null; +export interface IArrayOptions extends IPropertyOptions { + writeOnlyArray: any[]; +} +export interface IClassOptions extends IPropertyOptions { + type: string; + /** + * 此类的实例永远只会被一个地方引用到。 + */ + uniquelyReferenced?: boolean; +} +export interface ICustomClassOptions extends IClassOptions { + content: any; +} +export interface IObjParsingInfo { +} +export interface IBuilder { + setProperty_Raw(owner: object, ownerInfo: IObjParsingInfo, key: string | number, value: any, options: PropertyOptions): void; + setProperty_Class(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, options: IClassOptions): IObjParsingInfo; + setProperty_CustomizedClass(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, options: ICustomClassOptions): IObjParsingInfo; + setProperty_ValueType(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, value: ValueType, options: PropertyOptions): IObjParsingInfo | null; + setProperty_TypedArray(owner: object, ownerInfo: IObjParsingInfo, key: string | number, value: any, options: PropertyOptions): void; + setProperty_AssetUuid(owner: object, ownerInfo: IObjParsingInfo, key: string | number, uuid: string, options: PropertyOptions): void; + setProperty_Array(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, options: IArrayOptions): IObjParsingInfo; + setProperty_Dict(owner: object | null, ownerInfo: IObjParsingInfo | null, key: string | number, options: PropertyOptions): IObjParsingInfo; + setProperty_ParsedObject(ownerInfo: IObjParsingInfo, key: string | number, valueInfo: IObjParsingInfo, formerlySerializedAs: string | null): void; + setRoot(objInfo: IObjParsingInfo): void; + dump(): any; +} +export interface IBuilderOptions { + builder?: 'dynamic' | 'compiled'; + stringify?: boolean; + minify?: boolean; + noNativeDep?: boolean; + forceInline?: boolean; + /** + * Outputs as CCON. + * + * CCON denotes `Cocos Creator Object Notation`(let's imagine JSON as JavaScript Object Notation). + * It allows binary representation of some value but loses the readability. + * + * CCON can be represented as two formal: + * - JSON + Binary file(s) + * - Single Binary file + * However `serialize()` produces whole `CCON` and you could select a suitable formal. + * As Cocos Creator 3.3, the `useCCON` only be turned on + * when it's going to serialize `AnimationClip` into library or into production. + */ + useCCON?: boolean; +} +export interface IParserOptions { + compressUuid?: boolean; + discardInvalid?: boolean; + dontStripDefault?: boolean; + missingClassReporter?: any; + missingObjectReporter?: any; + reserveContentsForSyncablePrefab?: boolean; + _exporting?: boolean; + useCCON?: boolean; + keepNodeUuid?: boolean; + recordAssetDepends?: string[]; +} +export declare class Parser { + exporting: boolean; + mustCompresseUuid: boolean; + discardInvalid: boolean; + dontStripDefault: boolean; + missingClassReporter: any; + missingObjectReporter: any; + reserveContentsForAllSyncablePrefab: boolean; + keepNodeUuid: boolean; + recordAssetDepends: IParserOptions['recordAssetDepends']; + private builder; + private root; + private prefabRoot; + private assetExists; + private parsingInfos; + private customExportingCtxCache; + private _serializationContext; + private assetDepends?; + constructor(builder: IBuilder, options: IParserOptions); + parse(obj: object): void; + private checkMissingAsset; + private isObjRemoved; + private setParsedObj; + private verifyNotParsedValue; + private canDiscardByPrefabRoot; + private enumerateClass; + static isDefaultTrs(trs: any): boolean; + private parseField; + /** + * 解析对象 + * 1. 调用 builder 的 API 声明一个新的【空对象】 + * 2. 对可引用对象,标记解析状态,防止循环解析 + * 3. 【最后】枚举对象包含的其它属性 + */ + private parseObjField; + private enumerateDict; + private enumerateBindedDict; +} +export interface IOptions extends IParserOptions, IBuilderOptions { +} +export default function serialize(obj: Exclude<any, null | undefined>, options: IOptions): string | object; +export {}; +//# sourceMappingURL=parser.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/parser.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/parser.d.ts.map new file mode 100644 index 0000000..52dcfe6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/serialize/parser.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../source/editor-extends/utils/serialize/parser.ts"],"names":[],"mappings":";AAGA,OAAO,EAKH,SAAS,EAMZ,MAAM,IAAI,CAAC;AAiBZ,UAAU,gBAAgB;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,oBAAY,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAEtD,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IAEnD,cAAc,EAAE,GAAG,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACnD,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACtD,OAAO,EAAE,GAAG,CAAC;CAChB;AAQD,MAAM,WAAW,eAAe;CAAI;AAIpC,MAAM,WAAW,QAAQ;IAgBrB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAG7H,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,eAAe,CAAC;IAG1I,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAG1J,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,GAAG,IAAI,CAAC;IAEzK,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAEpI,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAErI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,eAAe,CAAC;IAG1I,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,CAAC;IAG3I,wBAAwB,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAElJ,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAKxC,IAAI,IAAI,GAAG,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAEjC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAE3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAE3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AA0DD,qBAAa,MAAM;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,GAAG,CAAC;IAC1B,qBAAqB,EAAE,GAAG,CAAC;IAC3B,mCAAmC,EAAE,OAAO,CAAC;IAC7C,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;IAEzD,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,WAAW,CAA0B;IAE7C,OAAO,CAAC,YAAY,CAAsC;IAE1D,OAAO,CAAC,uBAAuB,CAAM;IACrC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,YAAY,CAAC,CAAc;gBAEvB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc;IAqCtD,KAAK,CAAC,GAAG,EAAE,MAAM;IAsBjB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,oBAAoB;IAmE5B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,cAAc;IAqEtB,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAMtC,OAAO,CAAC,UAAU;IAiClB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAmNrB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,mBAAmB;CA0B9B;AAED,MAAM,WAAW,QAAS,SAAQ,cAAc,EAAE,eAAe;CAAI;AACrE,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAiBzG"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/uuid.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/uuid.d.ts new file mode 100644 index 0000000..a618bee --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/uuid.d.ts @@ -0,0 +1,16 @@ +export declare const NonUuidMark = "."; +export declare function compressUuid(uuid: string, min: boolean): string; +export declare function compressHex(hexString: string, reservedHeadLength: number): string; +export declare function decompressUuid(uuid: string): string; +export declare function isUuid(str: string): boolean; +export declare function getUuidFromLibPath(path: string): string; +export declare function uuid(compress?: boolean): string; +/** + * 从一个名字转换成一个 id + * 这是个有损压缩,并不能够还原成原来的名字 + * 注意:此方法需要和 asset-db 保持一致 + * @param id + * @param extend + */ +export declare function nameToSubId(name: string, extend?: number): string; +//# sourceMappingURL=uuid.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/uuid.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/uuid.d.ts.map new file mode 100644 index 0000000..84e7ab5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/editor-extends/utils/uuid.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../../source/editor-extends/utils/uuid.ts"],"names":[],"mappings":"AA6CA,eAAO,MAAM,WAAW,MAAM,CAAC;AAU/B,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,UAOtD;AAYD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,UAmBxE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAQ1C;AAiCD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,WAEjC;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAM9C;AAED,wBAAgB,IAAI,CAAC,QAAQ,UAAO,UAGnC;AASD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,UAOnD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/engine-compiler/index.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/engine-compiler/index.d.ts new file mode 100644 index 0000000..cc1120a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/engine-compiler/index.d.ts @@ -0,0 +1,23 @@ +interface IRebuildOptions { + debugNative?: boolean; + isNativeScene?: boolean; +} +export declare function compileEngine(directory: string, force?: boolean): Promise<void>; +export declare function rebuild(options?: IRebuildOptions): Promise<void>; +export declare function rebuildImportMaps(): Promise<void>; +interface IEngineGlobalConfig { + 'builtin': boolean; + 'custom': string; +} +/** + * 根据全局配置与项目配置、默认值等计算出真正的引擎使用路径 + * @param globalConfig + * @param projectConfig + * @param builtinPath + */ +export declare function getRightEngine(config: IEngineGlobalConfig, builtinPath: string): { + version: string; + path: string; +}; +export * as default from './index'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/engine-compiler/index.d.ts.map b/extensions/uistate-inspector/@types/packages/engine/@types/engine-compiler/index.d.ts.map new file mode 100644 index 0000000..357a8db --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/engine-compiler/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../static/engine-compiler/source/index.ts"],"names":[],"mappings":"AAqBA,UAAU,eAAe;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AACD,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,iBA8CrE;AAuED,wBAAsB,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,iBA6CtD;AAED,wBAAsB,iBAAiB,kBAkBtC;AAuOD,UAAU,mBAAmB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAQD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM;;;EAY9E;AAiHD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/index.d.ts new file mode 100644 index 0000000..dcbcc44 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/index.d.ts @@ -0,0 +1,15 @@ +export * from './module'; +export interface EngineInfo { + typescript: { + type: 'builtin' | 'custom'; // 当前使用的引擎类型(内置或自定义) + custom: string; // 自定义引擎地址 + builtin: string, // 内置引擎地址 + path: string; // 当前使用的引擎路径,为空也表示编译失败 + }, + native: { + type: 'builtin' | 'custom'; // 当前使用的引擎类型(内置或自定义) + custom: string; // 自定义引擎地址 + builtin: string; // 内置引擎地址 + path: string; // 当前使用的引擎路径,为空也表示编译失败 + }, +} diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/message.d.ts new file mode 100644 index 0000000..47344e6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/message.d.ts @@ -0,0 +1,22 @@ +import { EngineInfo } from './index'; +export interface message extends EditorMessageMap { + 'query-info': { + params: [] | [ + string, + ], + result: { + version: string; + path: string; + nativeVersion: string; // 原生引擎类型 'custom' 'builtin' + nativePath: string; + editor: string; + }, + }, + 'query-engine-info': { + params: [] | [ + string, + ], + result: EngineInfo, + }, +} + diff --git a/extensions/uistate-inspector/@types/packages/engine/@types/module.d.ts b/extensions/uistate-inspector/@types/packages/engine/@types/module.d.ts new file mode 100644 index 0000000..1609765 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/engine/@types/module.d.ts @@ -0,0 +1,78 @@ + +export type IModules = Record<string, IModuleItem>; + +export interface IFlagBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + native?: string; + + wechatPlugin?: boolean; + + default?: string[]; +} + +export interface IBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + required?: boolean; + + native?: string; + + wechatPlugin?: boolean; +} + +export interface IModuleItem extends IBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + /** + * Whether if the feature of options allow multiple selection. + */ + multi?: boolean; + + /** + * If have default it will checked + */ + default?: string[]; + + options?: Record<string, IBaseItem>; + + category?: string; + + flags?: Record<string, IFlagBaseItem>; +} + +export interface IDisplayModuleItem extends IModuleItem { + _value: boolean; + _option?: string; + options?: Record<string, IDisplayModuleItem>; +} + +export interface IDisplayModuleCache { + _value: boolean; + _option?: string; + flags?: Record<string, boolean>; +} diff --git a/extensions/uistate-inspector/@types/packages/fb-instant-games/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/fb-instant-games/@types/index.d.ts new file mode 100644 index 0000000..8714a88 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/fb-instant-games/@types/index.d.ts @@ -0,0 +1,15 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions, IPolyFills, ISettings } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'auto' | 'landscape' | 'portrait'; +export interface IOptions { + orientation: IOrientation; + embedWebDebugger: boolean; +} +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'fb-instant-games': IOptions; + } +} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/huawei-agc/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/huawei-agc/@types/index.d.ts new file mode 100644 index 0000000..8a5c85d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/huawei-agc/@types/index.d.ts @@ -0,0 +1,50 @@ + +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions, InternalBuildResult } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'android': IOptions; + } +} + +export type IAppABI = 'armeabi-v7a' | 'arm64-v8a' | 'x86' | 'x86_64'; + +export interface IOptions { + packageName: string; + orientation: { + landscapeRight: boolean; + landscapeLeft: boolean; + portrait: boolean; + upsideDown: boolean; + }, + + apiLevel: number; + appABIs: IAppABI[]; + + useDebugKeystore: boolean; + keystorePath: string; + keystorePassword: string; + keystoreAlias: string; + keystoreAliasPassword: string; + + appBundle: boolean; + androidInstant: boolean; + remoteUrl: string; + sdkPath: string; + ndkPath: string; + + renderBackEnd: { + vulkan: boolean; + gles3: boolean; + gles2: boolean; + } +} + +export interface IBuildResult extends InternalBuildResult { + userFrameWorks: boolean; // 是否使用用户的配置数据 +} diff --git a/extensions/uistate-inspector/@types/packages/huawei-quick-game/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/huawei-quick-game/@types/index.d.ts new file mode 100644 index 0000000..647e0e9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/huawei-quick-game/@types/index.d.ts @@ -0,0 +1,32 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'huawei-quick-game': IOptions; + }; +} + +export interface IOptions { + package: string; + icon: string; + versionName: string; + versionCode: string; + minPlatformVersion: string; + deviceOrientation: IOrientation; + useDebugKey: boolean; + privatePemPath: string; + certificatePemPath: string; + + fullScreen: boolean; + logLevel: string; + manifestPath?: string; + separateEngine: boolean; +} + +export interface ICompileOptions { + name: string; +} diff --git a/extensions/uistate-inspector/@types/packages/information/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/information/@types/message.d.ts new file mode 100644 index 0000000..b11fc59 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/information/@types/message.d.ts @@ -0,0 +1,37 @@ +import { IDialogAction } from './public'; + +export interface message extends EditorMessageMap { + 'query-information': { + params: [ + tag: string, + options?: { force?: boolean }, + ], + result: { + enable: boolean; + complete: boolean; + form: string; + } | null, + }, + 'information-dialog': { + params: [ + tag: string, + options?: { [key: string]: string } + ], + result: { + action: IDialogAction, + }, + }, + // TODO: 定义优化 + 'has-dialog': { + params: [ + tag: string, + ], + result: boolean, + }, + 'close-dialog': { + params: [ + tag: string, + ], + result: void, + } +} diff --git a/extensions/uistate-inspector/@types/packages/information/@types/public.d.ts b/extensions/uistate-inspector/@types/packages/information/@types/public.d.ts new file mode 100644 index 0000000..23e3248 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/information/@types/public.d.ts @@ -0,0 +1,18 @@ +export interface IContribution { + tags?: string[]; +} + +export interface IInformationItem { + enable: boolean; + complete: boolean; + form: string; +} + +// TODO: 状态处理 +export interface IDialogAction { + // reject 用户开始填写后,拒绝填写完成 + // resolve 用户正常填写完数据 + // cancel 开关没开的时候返回跳过填写 + // unusual 异常情况,例如断网、网络接口无法访问 + action: 'reject' | 'resolve' | 'cancel' | 'unusual', +} diff --git a/extensions/uistate-inspector/@types/packages/ios/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/ios/@types/index.d.ts new file mode 100644 index 0000000..b5e3789 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/ios/@types/index.d.ts @@ -0,0 +1,41 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions, InternalBuildResult } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'ios': IOptions; + native: { + JobSystem: 'none' | 'tbb' | 'taskFlow'; + }; + } +} + +export interface IBuildResult extends InternalBuildResult { + userFrameWorks: boolean; // 是否使用用户的配置数据 +} + +export interface IOptions { + packageName: string; + orientation: { + landscapeRight: boolean; + landscapeLeft: boolean; + portrait: boolean; + upsideDown: boolean; + }, + skipUpdateXcodeProject: boolean; + renderBackEnd: { + metal: boolean; + gles3: boolean; + gles2: boolean; + }, + osTarget: { + iphoneos: boolean, + simulator: boolean, + }, + developerTeam?: string, + targetVersion: string, +} diff --git a/extensions/uistate-inspector/@types/packages/linux/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/linux/@types/index.d.ts new file mode 100644 index 0000000..6e81782 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/linux/@types/index.d.ts @@ -0,0 +1,18 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions, InternalBuildResult } from '@editor/library-type/packages/builder/@types/protect'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'linux': IOptions; + native: any; + } +} + +interface IOptions { + renderBackEnd: { + metal: boolean; + gles3: boolean; + gles2: boolean; + }, +} diff --git a/extensions/uistate-inspector/@types/packages/mac/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/mac/@types/index.d.ts new file mode 100644 index 0000000..c985cb3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/mac/@types/index.d.ts @@ -0,0 +1,29 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions, InternalBuildResult } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'mac': IOptions; + native: any; + } +} + +export interface IOptions { + packageName: string; + renderBackEnd: { + metal: boolean; + gles3: boolean; + gles2: boolean; + }, + supportM1: boolean; + skipUpdateXcodeProject: boolean; + targetVersion: string; +} + +export interface IBuildCache extends InternalBuildResult { + userFrameWorks: boolean; // 是否使用用户的配置数据 +} diff --git a/extensions/uistate-inspector/@types/packages/ohos/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/ohos/@types/index.d.ts new file mode 100644 index 0000000..d9b1c00 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/ohos/@types/index.d.ts @@ -0,0 +1,36 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions, InternalBuildResult } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'ohos': IOptions; + } +} + +export interface IOptions { + packageName: string; + orientation: { + landscapeRight: boolean; + landscapeLeft: boolean; + portrait: boolean; + upsideDown: boolean; + }, + + apiLevel: number; + sdkPath: string; + ndkPath: string; + + renderBackEnd: { + // vulkan: boolean; + gles3: boolean; + // gles2: boolean; + } +} + +export interface IBuildResult extends InternalBuildResult { + userFrameWorks: boolean; // 是否使用用户的配置数据 +} diff --git a/extensions/uistate-inspector/@types/packages/open-harmonyos/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/open-harmonyos/@types/index.d.ts new file mode 100644 index 0000000..fba4962 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/open-harmonyos/@types/index.d.ts @@ -0,0 +1,37 @@ + +/// <reference path="../../../@types/index.d.ts"/> +/// <reference path="@editor/library-type/packages/builder/@types/protect/global.d.ts"/> + +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions, InternalBuildResult } from '@editor/library-type/packages/builder/@types/protect'; +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'open-harmonyos': IOptions; + } +} + +export interface IOptions { + packageName: string; + orientation: { + landscapeRight: boolean; + landscapeLeft: boolean; + portrait: boolean; + upsideDown: boolean; + }, + + apiLevel: string; + sdkPath: string; + ndkPath: string; + + renderBackEnd: { + // vulkan: boolean; + gles3: boolean; + // gles2: boolean; + } +} + +export interface IBuildResult extends InternalBuildResult { + userFrameWorks: boolean; // 是否使用用户的配置数据 +} diff --git a/extensions/uistate-inspector/@types/packages/oppo-mini-game/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/oppo-mini-game/@types/index.d.ts new file mode 100644 index 0000000..944a5e3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/oppo-mini-game/@types/index.d.ts @@ -0,0 +1,30 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'oppo-mini-game': IOptions; + }; +} + +export interface IOptions { + package: string; + icon: string; + versionName: string; + versionCode: string; + minPlatformVersion: string; + deviceOrientation: IOrientation; + useDebugKey: boolean; + privatePemPath: string; + certificatePemPath: string; + hasSubPackage?: boolean; + separateEngine: boolean; +} + +export interface ICompileOptions { + name: string; + useDebugKey: boolean; + hasSubPackage: boolean; +} diff --git a/extensions/uistate-inspector/@types/packages/package-asset/@types/public.d.ts b/extensions/uistate-inspector/@types/packages/package-asset/@types/public.d.ts new file mode 100644 index 0000000..8afa06d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/package-asset/@types/public.d.ts @@ -0,0 +1,60 @@ +export interface MenuAssetInfo { + // 资源名字 + name: string; + // 资源用于显示的名字 + displayName: string; + // loader 加载的层级地址 + url: string; + // 绝对路径 + file: string; + // 资源的唯一 ID + uuid: string; + // 使用的导入器名字 + importer: string; + // 类型 + type: string; + // 是否是文件夹 + isDirectory: boolean; + // 是否只读 + readonly: boolean; + // 虚拟资源可以实例化成实体的话,会带上这个扩展名 + instantiation?: string; + // 跳转指向资源 + redirect?: IRedirectInfo; + // 继承类型 + extends?: string[]; + // 是否导入完成 + imported: boolean; + // 是否导入失败 + invalid: boolean; +} + +export interface IRedirectInfo { + // 跳转资源的类型 + type: string; + // 跳转资源的 uuid + uuid: string; +} +export interface IAssetInfo { + name: string; // 资源名字 + displayName: string; // 资源用于显示的名字 + source: string; // url 地址 + path: string; // loader 加载的层级地址 + url: string; // loader 加载地址会去掉扩展名,这个参数不去掉 + file: string; // 绝对路径 + uuid: string; // 资源的唯一 ID + importer: string; // 使用的导入器名字 + imported: boolean; // 是否结束导入过程 + invalid: boolean; // 是否导入成功 + type: string; // 类型 + isDirectory: boolean; // 是否是文件夹 + library: { [key: string]: string }; // 导入资源的 map + subAssets: { [key: string]: IAssetInfo }; // 子资源 map + visible: boolean; // 是否显示 + readonly: boolean; // 是否只读 + + instantiation?: string; // 虚拟资源可以实例化成实体的话,会带上这个扩展名 + redirect?: IRedirectInfo; // 跳转指向资源 + meta?: any, + fatherInfo?: any; +} diff --git a/extensions/uistate-inspector/@types/packages/preferences/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/preferences/@types/index.d.ts new file mode 100644 index 0000000..8ff1c5c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/preferences/@types/index.d.ts @@ -0,0 +1,54 @@ +export interface PanelInfo { + template?: string; + style?: string; + listeners?: { [key: string]: (...arg: any) => {} }; + methods?: { [key: string]: Function }; + $?: { [key: string]: string }; + ready?(): void; + update?(...args: any[]): void; + beforeClose?(): void; + close?(): void; +} + +export interface PreferencesLaboratory { + label: string; + description?: string; + path: string; +} + +export interface PreferencesProperties { + [key: string]: { + description?: string; + label: string; + render: { + ui: string; + attributes?: { + [key: string]: any; + }; + } + } +} + +export interface PreferencesConfigs { + [key: string]: { + custom?: string; + laboratory?: PreferencesLaboratory[] | null; + properties?: PreferencesProperties | null; + title: string; + version: string; + } +} + +export type PreferencesProtocol = 'default' | 'global' | 'local'; + +export interface ExportPluginConfigs { + [key: string]: { + type?: PreferencesProtocol; + value: any; + }; + '__version__'?: string; +} + +export interface ExportPreferencesConfigs { + [key: string]: ExportPluginConfigs; +} diff --git a/extensions/uistate-inspector/@types/packages/preferences/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/preferences/@types/message.d.ts new file mode 100644 index 0000000..9a5751e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/preferences/@types/message.d.ts @@ -0,0 +1,19 @@ +import { PreferencesProtocol } from './index'; + +export interface message extends EditorMessageMap { + 'open-settings': { + params: [ + string, + ...any[], + ], + result: undefined, + }, + 'query-config': { + params: [ + string, + string, + PreferencesProtocol, + ], + result: any, + } +} diff --git a/extensions/uistate-inspector/@types/packages/preview/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/preview/@types/index.d.ts new file mode 100644 index 0000000..fa8cee5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/preview/@types/index.d.ts @@ -0,0 +1 @@ +export * from './protect/'; diff --git a/extensions/uistate-inspector/@types/packages/program/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/program/@types/message.d.ts new file mode 100644 index 0000000..20b201b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/program/@types/message.d.ts @@ -0,0 +1,21 @@ +import { IProgramInfo } from './public'; + +export interface message extends EditorMessageMap { + "query-program-info": { + params: [ + string, + ], + result: IProgramInfo | null, + }, + "query-programs": { + params: [], + result: Record<string, Record<string, IProgramInfo>> + } + "execute": { + params: [ + string, + Record<string, any>, + ], + result: undefined, + } +} diff --git a/extensions/uistate-inspector/@types/packages/program/@types/public.d.ts b/extensions/uistate-inspector/@types/packages/program/@types/public.d.ts new file mode 100644 index 0000000..e66734b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/program/@types/public.d.ts @@ -0,0 +1,18 @@ +export interface IProgramInfo { + // 应用程序员名称 + label: string; + // 应用程序描述 + description?: string; + // 应用程序的命令行参数菜单的配置数据 + // 参数的 key 是调用时传递参数的 key + arguments?: Record<string, IProgramArgument>; + // 应用程序所在路径 + path: string; + // 应用程序的命令行参数 + commandArgument?: string; +} + +export interface IProgramArgument { + // 参数的描述 + label?: string; +} diff --git a/extensions/uistate-inspector/@types/packages/programming/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/programming/@types/message.d.ts new file mode 100644 index 0000000..7f4b183 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/programming/@types/message.d.ts @@ -0,0 +1,19 @@ +export interface message extends EditorMessageMap { + 'query-shared-settings': { + params: [], + result: { + useDefineForClassFields: boolean; + allowDeclareFields: boolean; + loose: boolean; + guessCommonJsExports: boolean; + exportsConditions: string[]; + importMap?: { + json: { + imports?: Record<string, string>; + scopes?: Record<string, Record<string, string>>; + }; + url: string; + }; + } + }; +} diff --git a/extensions/uistate-inspector/@types/packages/project/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/project/@types/index.d.ts new file mode 100644 index 0000000..8aaf500 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/project/@types/index.d.ts @@ -0,0 +1,49 @@ +export type ProjectProtocol = 'default' | 'project'; + +export interface PanelInfo { + template?: string; + style?: string; + listeners?: { [key: string]: (...arg: any) => {} }; + methods?: { [key: string]: Function }; + $?: { [key: string]: string }; + ready?(): void; + update?(...args: any[]): void; + beforeClose?(): void; + close?(): void; +} + +export interface ProjectConfigs { + [key: string]: { + title: string; + version: string; + tabs: PorjectTabs; + } +} + +export interface PorjectTabs { + [key: stirng]: { + content?: ProjectContent | null; + custom?: string; + label: string; + } +} + +export interface ProjectContent { + [key: string]: { + description?: string; + label: string; + render: { + ui: string; + attributes?: { + [key: string]: any; + }; + } + } +} + +export interface ExportProjectConfigs { + [key: string]: { + '__version__'?: string; + [key: string]: Record<string, any>; + } +} diff --git a/extensions/uistate-inspector/@types/packages/project/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/project/@types/message.d.ts new file mode 100644 index 0000000..70aaa56 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/project/@types/message.d.ts @@ -0,0 +1,19 @@ +import { ProjectProtocol } from './index'; +export interface message extends EditorMessageMap { + 'open-settings': { + params: [ + string, + string, + ...any[], + ], + result: undefined, + }, + 'query-config': { + params: [ + string, + string, + ProjectProtocol, + ], + result: any, + } +} diff --git a/extensions/uistate-inspector/@types/packages/runtime-dev-tools/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/runtime-dev-tools/@types/index.d.ts new file mode 100644 index 0000000..07b0f63 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/runtime-dev-tools/@types/index.d.ts @@ -0,0 +1,2 @@ +/// <reference path='../../../@types/index'/> +export * from '../../../@types/editor'; diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/animation/public.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/animation/public.d.ts new file mode 100644 index 0000000..5c0074a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/animation/public.d.ts @@ -0,0 +1,156 @@ +import { EmbeddedPlayerGroup } from 'cc'; +import { ICurveDumpData } from './private'; + +export type IAnimationType = 'cc.Animation' | 'cc.SkeletalAnimation' | 'cc.animation.AnimationController'; + +export interface IKeyDumpData { + frame: number; + dump: any; // value的dump数据 + inTangent?: number; + inTangentWeight?: number; + outTangent?: number; + outTangentWeight?: number; + interpMode?: number; + broken?: boolean; + tangentWeightMode?: number; + imgUrl?: string; + easingMethod?: number; +} + +export interface IDumpType { + value: string; + extends?: string[]; +} + +export interface IClipInfo { + name: string; + uuid: string | undefined; +} + +// 动画相关操作的返回值结果 +export interface IAniResultBase { + state: 'success' | 'failure'; + result: any | null; + reason?: string; +} + +export interface IAniEditInfo extends IAniResultBase { + result: null | { + root: string; + node?: any; + aniComp?: IAnimationType; + clipsMenu?: IClipInfo[]; + defaultClip?: string; + } +} + +export interface IAnimationEditData { + root: string; + curEditClip: AnimationClip | null; +} + +export interface IPropCurveDumpData { + nodePath: string; + // 原始的 keyframe 数据 + keyframes: IKeyDumpData[]; + displayName: string; + key: string; + type?: IDumpType; + preExtrap: number; + postExtrap: number; + isCurveSupport: boolean; // 是否支持贝塞尔曲线编辑 +} + +export interface IAnimCopyKeySrcInfo { + curvesDump: IPropCurveDumpData[]; +} + +export interface IAnimCopyNodeSrcInfo { + curvesDump: IPropCurveDumpData[]; +} + +export interface IAnimCopyNodeDstInfo { + nodePath: string; +} + +interface IEventDump { + frame: number; + func: string; + params: string[]; +} + +interface IEventDump { + frame: number; + func: string; + params: string[]; +} + +export interface IPlayableInfo { + type: 'animation-clip' | 'particle-system'; + clip?: string; + path?: string; +} + +export interface IEmbeddedPlayers { + begin: number; + end: number; + reconciledSpeed: boolean; + playable?: IPlayableInfo; + group: string; + displayName?: string; +} + +export interface AnimationClipPlayerInfo extends IPlayableInfo { + clip: string; + path: string; +} + +export interface ParticleSystemPlayerInfo extends IPlayableInfo { + path: string; +} + +export interface EditorAnimationClipDump { + name: string; + duration: number; + sample: number; + speed: number; + wrapMode: number; + + curves: ICurveDumpData[]; + events: IEventDump[]; + embeddedPlayers: IEmbeddedPlayers[]; + time: number; + isLock: boolean; + embeddedPlayerGroups: EmbeddedPlayerGroup[]; +} + +export interface EditorEmbeddedPlayer extends IEmbeddedPlayers { + _embeddedPlayer: any; +} + +export interface IAnimCopyEmbeddedPlayersSrcInfo { + embeddedPlayersDump: IEmbeddedPlayers[]; +} + +export interface IAnimCopyEventSrcInfo { + eventsDump: IEventDump[]; +} + +export interface IAnimCopyPropSrcInfo { + curvesDump: IPropCurveDumpData[]; +} + +export interface IAnimCopyPropDstInfo { + nodePath: string; + propKeys?: string[]; +} + +export interface IAnimCopyKeyDstInfo { + nodePath: string; + propKeys?: string[]; + startFrame: number; +} + +export interface IAnimCopyEventDstInfo { + startFrame: number; +} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/assets.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/assets.d.ts new file mode 100644 index 0000000..e33cf29 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/assets.d.ts @@ -0,0 +1,12 @@ +declare class Assets { + assetMap: { + readonly scene: any; + readonly texture: any; + readonly 'sprite-frame': any; + }; + getCtor(importer: string): any; + getImporter(ctor: any): "scene" | "texture" | "sprite-frame" | "material" | "particle" | "image" | "json" | "text" | ""; +} +declare const _default: Assets; +export default _default; +//# sourceMappingURL=assets.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/assets.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/assets.d.ts.map new file mode 100644 index 0000000..09fde01 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/assets.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../source/script/3d/assets.ts"],"names":[],"mappings":"AAEA,cAAM,MAAM;IACD,QAAQ;;;;MAYb;IAEK,OAAO,CAAC,QAAQ,EAAE,MAAM;IAiBxB,WAAW,CAAC,IAAI,EAAE,GAAG;CAsB/B;;AAED,wBAA4B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/animation-scene-facade.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/animation-scene-facade.d.ts new file mode 100644 index 0000000..c17cad7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/animation-scene-facade.d.ts @@ -0,0 +1,45 @@ +import { IAnimOperation, CreateNodeOptions, RemoveNodeOptions, SetPropertyOptions, RemoveArrayOptions, CreateComponentOptions, RemoveComponentOptions } from '../../../../@types/public'; +import GeneralSceneFacade from './general-scene-facade'; +import { Node, Component } from 'cc'; +import { IAniResultBase, IChangeNodeOptions } from '../../../../@types/private'; +declare class AnimationSceneFacade extends GeneralSceneFacade { + init(): void; + initEventListener(): void; + enter(opts: any): Promise<void>; + exit(): Promise<void>; + openScene(uuid: string, clipUuid?: string): Promise<boolean>; + closeScene(): Promise<boolean>; + queryCurrentAnimationState(): any; + queryCurrentAnimationInfo(): any; + queryAnimationRootNode(uuid: string): string; + queryAnimationRootInfo(uuid: string): any; + queryAnimationClipDump(nodeUuid: string, clipUuid: string): any; + queryAnimationProperties(uuid: string): any; + queryAnimationClipsInfo(nodeUuid: string): any; + queryAnimationClipCurrentTime(clipUuid: string): number; + queryAnimationPropValueAtFrame(clipUuid: string, nodePath: string, propKey: string, frame: number): any; + recordAnimation(uuid: string, active: boolean, clipUuid?: string): Promise<boolean>; + changeAnimationRootNode(uuid: string, clipUuid: string): Promise<boolean>; + setCurEditTime(time: number): Promise<boolean>; + changeClipState(operate: 'play' | 'stop' | 'resume' | 'pause', clipUuid: string): Promise<boolean>; + setEditClip(clipUuid: string): Promise<boolean>; + saveClip(): Promise<boolean>; + applyAnimationOperation(operationList: IAnimOperation[]): Promise<IAniResultBase>; + queryAnimationNodeEditInfo(uuid: string): import("../../../../@types/public").IAniEditInfo; + createNode(options: CreateNodeOptions): Promise<void>; + removeNode(options: RemoveNodeOptions): Promise<void>; + setNodeProperty(options: SetPropertyOptions): Promise<boolean>; + private isOperationOnAnimationClip; + removeNodeArrayElement(options: RemoveArrayOptions): Promise<boolean>; + onNodeChanged(node: Node, opts: IChangeNodeOptions): void; + createComponent(options: CreateComponentOptions): Promise<void>; + removeComponent(options: RemoveComponentOptions): Promise<void>; + onComponentAdded(comp: Component): void; + selectNode(uuid: string): void; + queryCurrentSceneUuid(): string; + previewMaterial(uuid: string, material: any): Promise<void>; + querySceneDirty(): Promise<boolean>; + saveScene(asNew: boolean): Promise<any>; +} +export default AnimationSceneFacade; +//# sourceMappingURL=animation-scene-facade.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/animation-scene-facade.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/animation-scene-facade.d.ts.map new file mode 100644 index 0000000..aeca0f3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/animation-scene-facade.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"animation-scene-facade.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/facade/animation-scene-facade.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AAKxD,OAAO,EAAkD,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhF,cAAM,oBAAqB,SAAQ,kBAAkB;IAC1C,IAAI;IAoBJ,iBAAiB;IAKX,KAAK,CAAC,IAAI,EAAE,GAAG;IAUf,IAAI;IAKJ,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAMzC,UAAU;IAIhB,0BAA0B,IAAI,GAAG;IAGjC,yBAAyB,IAAI,GAAG;IAGhC,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAG5C,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAGzC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG;IAG/D,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAG3C,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;IAG9C,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAGvD,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG;IAGjG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAGnF,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAGzE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAG9C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAGlG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAG/C,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAG5B,uBAAuB,CAAC,aAAa,EAAE,cAAc,EAAE;IAG7D,0BAA0B,CAAC,IAAI,EAAE,MAAM;IAMjC,UAAU,CAAC,OAAO,EAAE,iBAAiB;IAGrC,UAAU,CAAC,OAAO,EAAE,iBAAiB;IAGrC,eAAe,CAAC,OAAO,EAAE,kBAAkB;IAmDxD,OAAO,CAAC,0BAA0B;IAcrB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB;IAexD,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB;IAQ5C,eAAe,CAAC,OAAO,EAAE,sBAAsB;IAK/C,eAAe,CAAC,OAAO,EAAE,sBAAsB;IAKrD,gBAAgB,CAAC,IAAI,EAAE,SAAS;IAOhC,UAAU,CAAC,IAAI,EAAE,MAAM;IAqBvB,qBAAqB;IAKf,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAM3C,eAAe;IAIf,SAAS,CAAC,KAAK,EAAE,OAAO;CAIxC;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/general-scene-facade.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/general-scene-facade.d.ts new file mode 100644 index 0000000..5b7f49c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/general-scene-facade.d.ts @@ -0,0 +1,288 @@ +/// <reference path="../../../../../../../resources/3d/engine/bin/.declarations/cc.d.ts" /> +/// <reference path="../../public/gizmos/utils/engine/3d.d.ts" /> +/// <reference path="../../public/gizmos/3d/gizmo-manager.d.ts" /> +/// <reference path="../manager/asset/asset-watcher.d.ts" /> +import { CreateComponentOptions, CreateNodeOptions, CutNodeOptions, ExecuteComponentMethodOptions, ExecuteSceneScriptMethodOptions, IAnimOperation, MoveArrayOptions, PasteNodeOptions, QueryClassesOptions, RemoveArrayOptions, RemoveComponentOptions, RemoveNodeOptions, SetPropertyOptions } from '../../../../@types/public'; +import { IAniResultBase, IAssetMeta, IChangeNodeOptions, IOptionBase } from '../../../../@types/private'; +import { ISceneFacadeState, SceneModeType } from './scene-facade-state-interface'; +import SceneProxy from '../manager/scene/proxy/scene-proxy'; +import { Component, ISizeLike, Node, Quat, Vec3 } from 'cc'; +import UndoManagerBase from '../manager/history/undo-manager-base'; +import { ISceneEvents } from '../manager/scene-events-interface'; +import LightProbeEditModeListener from '../../public/gizmos/3d/elements/listener/light-probe-edit-mode-listener'; +import { TransformToolDataCoordinateType, TransformToolDataPivotType, TransformToolDataToolNameType } from '../../public/gizmos/utils/transform-tool-data'; +import { IAssetInfo } from '../../../../../builder/@types/protect'; +export declare class GeneralSceneFacade implements ISceneFacadeState, LightProbeEditModeListener { + protected _sceneMgr: import("../manager/scene/scene-manager").default; + protected _cameraMgr: import("../manager/camera").Camera; + protected _nodeMgr: import("../manager/node").NodeManager; + protected _compMgr: import("../manager/component").CompManager; + protected _assetMgr: import("../manager/asset").AssetManager; + protected _gizmoMgr: import("../../public/gizmos/3d/gizmo-manager").GizmoManager; + protected _materialPreviewMgr: import("../manager/material-preview").MaterialPreview; + protected _miniPreviewMgr: import("../manager/mini-preview").MiniPreview; + protected _scriptMgr: import("../manager/scripts").ScriptManager; + protected _previewMgr: import("../manager/preview").PreviewManager; + protected _animationMgr: import("../manager/animation").AnimationManager; + protected _selectionMgr: import("../manager/selection").SceneSelection; + protected _effectMgr: import("../manager/effects").EffectManager; + protected _terrainMgr: import("../manager/terrain").TerrainManager; + protected _prefabMgr: import("../manager/prefab").PrefabManager; + protected _undoMgr: UndoManagerBase; + protected _engineMgr: import("../manager/engine").EngineManager; + protected _pluginMgr: import("../manager/plugin").PluginManager; + protected _uiMgr: import("../manager/ui").UIManager; + protected _particleMgr: import("../manager/particle").ParticleManager; + protected _lodMgr: import("../manager/lod").LODManager; + protected _modelPreviewMgr: import("../manager/model-preview").ModelPreview; + protected _meshPreviewMgr: import("../manager/mesh-preview").MeshPreview; + protected _physics2DMgr: import("../manager/physics-2d").Physics2DManager; + protected _particle2DMgr: import("../manager/particle-2d").Particle2DManager; + protected _sceneProxy: SceneProxy; + fromState?: ISceneFacadeState; + isHold: boolean; + modeName: SceneModeType; + closeSceneWhenExit: boolean; + private _stagingCameraInfo; + protected _sceneEventListener: ISceneEvents[]; + private _lightProbeEditModeListener; + private _lightProbeEditMode; + set lightProbeEditMode(value: boolean); + get lightProbeEditMode(): boolean; + private _lightProbeBoundingBoxEditMode; + set lightProbeBoundingBoxEditMode(value: boolean); + get lightProbeBoundingBoxEditMode(): boolean; + init(): void; + initEventListener(): void; + registerLightProbeEditModeListener(listener: LightProbeEditModeListener): void; + enter(opts: any): Promise<void>; + protected resetUndoData(): void; + exit(): Promise<void>; + setCloseSceneWhenExit(): void; + checkToClose(): Promise<boolean>; + closeSceneState(): Promise<boolean>; + stagingSceneState(): Promise<boolean>; + fireCloseEvent(): void; + openScene(uuid: string): Promise<boolean>; + closeScene(): Promise<boolean>; + saveScene(asNew: boolean): Promise<any>; + dumpSceneState(): any; + patchSceneState(): Promise<boolean>; + restoreSceneState(dump?: any): Promise<boolean>; + softReloadScene(json?: any): Promise<boolean>; + reloadScene(): Promise<boolean>; + queryNodeTree(uuid: string): Promise<any>; + queryNodesByAssetUuid(uuid: string): Promise<void>; + querySceneSerializedData(): Promise<string>; + querySceneDirty(): Promise<boolean>; + queryClasses(options?: QueryClassesOptions): Promise<{ + name: string; + }[]>; + queryComponents(): Promise<{ + name: any; + cid: any; + path: any; + assetUuid: any; + }[]>; + queryComponentHasScript(name: string): Promise<boolean>; + queryLayerBuiltin(): Promise<{ + name: string; + value: any; + }[]>; + querySortingLayerBuiltin(): Promise<readonly import("cc").__private._cocos_sorting_sorting_layers__SortingItem[]>; + /** + * 查询当前正在编辑的模式名字 + */ + queryMode(): SceneModeType; + queryCurrentSceneUuid(): string; + dispatchEvents(eventName: keyof ISceneEvents, ...args: any[any]): void; + onSceneOpened(scene: any): void; + onSceneReload(scene: any): void; + onSceneClosed(scene: any): void; + onResize(opts: ISizeLike): void; + queryNodeDump(uuid: string): Promise<any>; + queryComponentFunctionOfNode(uuid: string): Promise<any>; + previewSetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + cancelPreviewSetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + setNodeProperty(options: SetPropertyOptions): Promise<boolean>; + resetNode(uuid: string): Promise<boolean>; + resetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + updateNodePropertyFromNull(options: SetPropertyOptions): Promise<boolean>; + setNodeAndChildrenLayer(options: SetPropertyOptions): Promise<void>; + moveNodeArrayElement(options: MoveArrayOptions): Promise<boolean>; + removeNodeArrayElement(options: RemoveArrayOptions): Promise<boolean>; + generateNodeAvailableName(name: string, parentUuid?: string): Promise<string>; + selectAllNodes(): void; + copyNode(uuids: string | string[]): string[]; + duplicateNode(uuids: string | string[]): string[]; + pasteNode(options: PasteNodeOptions): Promise<string[]>; + setNodeParent(options: CutNodeOptions): Promise<string[]>; + createNode(options: CreateNodeOptions): Promise<any>; + removeNode(options: RemoveNodeOptions): Promise<void>; + changeNodeLock(uuids: string | string[], locked: Boolean, loop: Boolean): Promise<void>; + restorePrefab(uuid: string, assetUuid: string): Promise<boolean>; + onNodeChanged(node: Node, opts?: IChangeNodeOptions): void; + onAddNode(node: Node): void; + onRemoveNode(node: Node): void; + onNodeAdded(node: Node, opts?: IOptionBase): void; + onNodeRemoved(node: Node, opts: IOptionBase): void; + queryComponent(uuid: string): Promise<any>; + createComponent(options: CreateComponentOptions): void; + resetComponent(uuid: string): Promise<void>; + removeComponent(options: RemoveComponentOptions): Promise<void>; + executeComponentMethod(options: ExecuteComponentMethodOptions): Promise<boolean>; + executeSceneScriptMethod(options: ExecuteSceneScriptMethodOptions): Promise<any>; + onAddComponent(comp: Component, opts?: IOptionBase): void; + onRemoveComponent(comp: Component, opts?: IOptionBase): void; + onComponentAdded(comp: Component, opts?: IOptionBase): void; + onComponentRemoved(comp: Component, opts?: IOptionBase): void; + snapshot(command?: any): void; + abortSnapshot(): void; + undo(): Promise<void>; + redo(): Promise<void>; + recordNode(node: Node, enable?: boolean): void; + queryAllEffects(): Promise<any>; + queryMaterial(uuid: string): Promise<any>; + queryEffect(effectName: string): Promise<any>; + queryRenderPipeline(uuid: string): Promise<any>; + changeRenderPipeline(dump: any): Promise<any>; + applyRenderPipeline(uuid: string): Promise<void>; + previewMaterial(uuid: string, material: any, opts?: { + emit?: boolean; + }): Promise<void>; + applyMaterial(uuid: string, materialDump: any): Promise<void>; + changePhysicsMaterial(dump: any): Promise<any>; + applyPhysicsMaterial(uuid: string): Promise<void>; + changeAnimationGraphVariant(dump: any): Promise<any>; + applyAnimationGraphVariant(uuid: string): Promise<void>; + changeAnimationMask(dump: any): Promise<any>; + applyAnimationMask(uuid: string): Promise<void>; + applyRenderTexture(uuid: string, userData: any): Promise<void>; + queryPhysicsMaterial(uuid: string): Promise<any>; + queryAnimationGraphVariant(uuid: string): Promise<any>; + queryAnimationMask(uuid: string): Promise<any>; + queryCreatableAssetTypes(): string[]; + assetChange(uuid: string, info: IAssetInfo, meta: IAssetMeta): Promise<void>; + assetDelete(uuid: string, info: any): void; + assetRefresh(uuid: string): void; + gizmoRefreshConfig(): Promise<void>; + queryGizmoToolName(): Promise<string>; + queryGizmoPivot(): Promise<string>; + queryGizmoCoordinate(): Promise<string>; + queryIs2D(): Promise<boolean>; + queryIsIconGizmo3D(): boolean; + queryIconGizmoSize(): number; + updateInnerTetrahedron(): void; + setTransformToolName(name: TransformToolDataToolNameType): Promise<void>; + setPivot(name: TransformToolDataPivotType): Promise<void>; + setCoordinate(type: TransformToolDataCoordinateType): Promise<void>; + setIs2D(value: boolean): Promise<void>; + setIconGizmo3D(is3D: boolean): Promise<void>; + setIconGizmoSize(size: number): Promise<void>; + focus(uuid?: string[] | null, position?: Vec3, rotation?: Quat, viewCenter?: Vec3, immediate?: boolean): void; + alignNodeToSceneView(uuids: string[]): void; + queryIsGridVisible(): boolean; + setGridVisible(visible: boolean): void; + alignWithView(): void; + alignViewWithNode(): void; + setGridLineColor(color: number[]): void; + getCameraProperty(): any; + setCameraProperty(opts: any): void; + getCameraWheelSpeed(): number; + setCameraWheelSpeed(speed: number): void; + getCameraWanderSpeed(): number; + setCameraWanderSpeed(speed: number): void; + zoomSceneViewUp(): void; + zoomSceneViewDown(): void; + resetSceneViewZoom(): void; + queryCurrentAnimationState(): any; + queryCurrentAnimationInfo(): any; + queryAnimationRootNode(uuid: string): string; + queryAnimationRootInfo(uuid: string): any; + queryAnimationClipDump(nodeUuid: string, clipUuid: string): any; + queryAnimationProperties(uuid: string): any; + queryAnimationClipsInfo(nodeUuid: string): any; + queryAnimationClipCurrentTime(clipUuid: string): number; + queryAnimationPropValueAtFrame(clipUuid: string, nodePath: string, propKey: string, frame: number): any; + recordAnimation(uuid: string, active: boolean, clipUuid?: string): Promise<boolean>; + changeAnimationRootNode(uuid: string, clipUuid: string): Promise<boolean>; + setCurEditTime(time: number): Promise<boolean>; + changeClipState(operate: string, clipUuid: string): Promise<boolean>; + setEditClip(clipUuid: string): Promise<boolean>; + saveClip(): Promise<boolean>; + applyAnimationOperation(operationList: IAnimOperation[]): Promise<IAniResultBase>; + queryAnimationNodeEditInfo(uuid: string): import("../../../../@types/public").IAniEditInfo; + queryScriptName(uuid: string): Promise<any>; + queryScriptCid(uuid: string): Promise<any>; + loadScript(uuid: string): Promise<void>; + removeScript(info: any): Promise<void>; + scriptChange(info: any): Promise<void>; + _selectNode(uuid: string): void; + _unselectNode(uuid: string): void; + querySelection(): string[]; + isSelectNode(uuid: string): boolean; + selectNode(uuid: string): void; + unselectNode(uuid: string): void; + clearSelection(): void; + registerEffects(uuids: string[]): void; + removeEffects(uuids: string[]): void; + updateEffect(uuid: string): void; + onRemoveTerrain(uuid: string, info: any): void; + createPrefab(uuid: string, url: string): any; + getPrefabData(uuid: string): any; + linkPrefab(nodeUuid: string, assetUuid: string): any; + unlinkPrefab(nodeUuid: string, removeNested: boolean): any; + applyPrefab(nodeUuid: string): Promise<boolean>; + distributeSelectionUI(type: string): void; + alignSelectionUI(type: string): void; + queryParticlePlayInfo(uuid: string): { + speed: number; + time: string; + particle: number; + isPlaying: boolean; + } | null; + setParticlePlaySpeed(uuid: string, speed: number): void; + /** + * 播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + playParticle(): void; + /** + * 重新开始播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + restartParticle(): void; + /** + * 暂停选中的粒子 + * @param uuid 粒子组件的 uuid + */ + pauseParticle(): void; + /** + * 停止播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + stopParticle(): void; + applyCurrentCameraSize(uuid: Readonly<string>): number | null; + insertLOD(lODGroupUUID: string, ...args: Parameters<import('cc').LODGroup['insertLOD']>): void; + eraseLOD(lODGroupUUID: string, ...args: Parameters<import('cc').LODGroup['eraseLOD']>): void; + updatePhysicsGroup(): Promise<void>; + onEngineUpdate(): void; + regeneratePolygon2DPoints(uuid: string): void; + exportParticlePlist(uuid: string): Promise<any>; + duplicateCurrentSelectedProbes(): void; + removeCurrentSelectedProbes(): void; + toggleLightProbeEditMode(mode: boolean | undefined): boolean; + queryLightProbeEditMode(): boolean; + toggleLightProbeBoundingBoxEditMode(mode: boolean | undefined): boolean; + queryLightProbeBoundingBoxEditMode(): boolean; + lightProbeInfoChanged(): void; + /** + * _lightProbeEditModeListener的注册在 + * @see registerLightProbeEditModeListener + * @param mode + */ + lightProbeEditModeChanged(mode: boolean): void; + boundingBoxEditModeChanged(mode: boolean): void; +} +export default GeneralSceneFacade; +//# sourceMappingURL=general-scene-facade.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/general-scene-facade.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/general-scene-facade.d.ts.map new file mode 100644 index 0000000..0b917fe --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/general-scene-facade.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"general-scene-facade.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/facade/general-scene-facade.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/prefab-scene-facade.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/prefab-scene-facade.d.ts new file mode 100644 index 0000000..ae449d7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/prefab-scene-facade.d.ts @@ -0,0 +1,18 @@ +import { CreateNodeOptions, PasteNodeOptions, SetPropertyOptions, RemoveNodeOptions } from '../../../../@types/public'; +import GeneralSceneFacade from './general-scene-facade'; +declare class PrefabSceneFacade extends GeneralSceneFacade { + init(): void; + enter(opts: any): Promise<void>; + exit(): Promise<void>; + openScene(uuid: string): Promise<boolean>; + setNodeProperty(options: SetPropertyOptions): Promise<boolean>; + createNode(options: CreateNodeOptions): Promise<any>; + pasteNode(options: PasteNodeOptions): Promise<string[]>; + removeNode(options: RemoveNodeOptions): Promise<void>; + createPrefab(uuid: string, url: string): any; + unlinkPrefab(nodeUuid: string, removeNested: boolean): any; + querySceneDirty(): Promise<boolean>; + saveScene(asNew: boolean): Promise<any>; +} +export default PrefabSceneFacade; +//# sourceMappingURL=prefab-scene-facade.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/prefab-scene-facade.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/prefab-scene-facade.d.ts.map new file mode 100644 index 0000000..79b4bc3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/prefab-scene-facade.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"prefab-scene-facade.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/facade/prefab-scene-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AAMxD,cAAM,iBAAkB,SAAQ,kBAAkB;IACvC,IAAI;IAQE,KAAK,CAAC,IAAI,EAAE,GAAG;IAoCf,IAAI;IAKJ,SAAS,CAAC,IAAI,EAAE,MAAM;IAUtB,eAAe,CAAC,OAAO,EAAE,kBAAkB;IAa3C,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAYpD,SAAS,CAAC,OAAO,EAAE,gBAAgB;IAqBnC,UAAU,CAAC,OAAO,EAAE,iBAAiB;IAc3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG;IAS5C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,GAAG;IAIpD,eAAe;IAIf,SAAS,CAAC,KAAK,EAAE,OAAO;CAIxC;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/preview-scene-facade.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/preview-scene-facade.d.ts new file mode 100644 index 0000000..e242283 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/preview-scene-facade.d.ts @@ -0,0 +1,29 @@ +import GeneralSceneFacade from './general-scene-facade'; +import { ISceneEvents } from '../manager/scene-events-interface'; +import PreviewPlay from '../manager/preview-play'; +import { Node, Component } from 'cc'; +import { IChangeNodeOptions, IOptionBase } from '../../../../@types/private'; +declare class PreviewSceneFacade extends GeneralSceneFacade { + protected _previewPlay: import("../manager/preview-play").PreviewPlay; + private _isEnter; + init(): void; + enter(opts: any): Promise<void>; + exit(): Promise<void>; + enterGameview(sceneJson?: string): Promise<void>; + callPreviewPlayMethod<T extends keyof typeof PreviewPlay>(method: T, ...args: Parameters<typeof PreviewPlay[T]>): Promise<any>; + redirectInput(): void; + private registerOperation; + private isInputRedirected; + dispatchEvents(eventName: keyof ISceneEvents, ...args: any[any]): void; + dispatchEventsOnly(eventName: keyof ISceneEvents, ...args: any[any]): void; + onSceneOpened(scene: any): void; + onNodeChanged(node: Node, opts: IChangeNodeOptions): void; + onAddNode(node: Node): void; + onRemoveNode(node: Node): void; + onNodeAdded(node: Node, opts?: IOptionBase): void; + onNodeRemoved(node: Node, opts: IOptionBase): void; + onComponentAdded(comp: Component, opts?: IOptionBase): void; + saveScene(asNew: boolean): Promise<boolean>; +} +export default PreviewSceneFacade; +//# sourceMappingURL=preview-scene-facade.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/preview-scene-facade.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/preview-scene-facade.d.ts.map new file mode 100644 index 0000000..6fee6da --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/preview-scene-facade.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"preview-scene-facade.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/facade/preview-scene-facade.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAgB,IAAI,EAAU,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAiB5E,cAAM,kBAAmB,SAAQ,kBAAkB;IAC/C,SAAS,CAAC,YAAY,gDAAe;IACrC,OAAO,CAAC,QAAQ,CAAS;IAClB,IAAI;IASE,KAAK,CAAC,IAAI,EAAE,GAAG;IAYf,IAAI;IAOJ,aAAa,CAAC,SAAS,SAAK;IAK5B,qBAAqB,CAAC,CAAC,SAAS,MAAM,OAAO,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IAIrH,aAAa;IAUpB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,iBAAiB;IAKlB,cAAc,CAAC,SAAS,EAAE,MAAM,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;IAW/D,kBAAkB,CAAC,SAAS,EAAE,MAAM,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;IAYnE,aAAa,CAAC,KAAK,EAAE,GAAG;IAIxB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB;IAWlD,SAAS,CAAC,IAAI,EAAE,IAAI;IASpB,YAAY,CAAC,IAAI,EAAE,IAAI;IAOvB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,WAAgB;IAO9C,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW;IAU3C,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAE,WAAgB;IAalD,SAAS,CAAC,KAAK,EAAE,OAAO;CAGxC;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-fsm.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-fsm.d.ts new file mode 100644 index 0000000..539f671 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-fsm.d.ts @@ -0,0 +1,24 @@ +import { ISceneFacadeState } from './scene-facade-state-interface'; +import GeneralSceneFacade from './general-scene-facade'; +import AnimationSceneFacade from './animation-scene-facade'; +import PrefabSceneFacade from './prefab-scene-facade'; +import PreviewSceneFacade from './preview-scene-facade'; +import FiniteStateMachine from '../utils/state-machine/finite-state-machine'; +declare class SceneFacadeFSM extends FiniteStateMachine<ISceneFacadeState> { + generalSceneFacade: GeneralSceneFacade; + animationSceneFacade: AnimationSceneFacade; + prefabSceneFacade: PrefabSceneFacade; + previewSceneFacade: PreviewSceneFacade; + start(): void; + toGeneral(opts?: any): Promise<boolean>; + toAnimation(opts?: any): Promise<boolean>; + toPrefab(opts?: any): Promise<boolean>; + toPreview(opts?: any): Promise<boolean>; + dumpAllScenes(): Promise<any>[]; + restoreAllScenes(dump: any[]): void; + closeScene(): Promise<boolean>; + closeSceneToGeneral(): Promise<false | undefined>; +} +declare function createSceneFacadeFSM(): SceneFacadeFSM; +export { createSceneFacadeFSM, SceneFacadeFSM }; +//# sourceMappingURL=scene-facade-fsm.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-fsm.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-fsm.d.ts.map new file mode 100644 index 0000000..96c5bcd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-fsm.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-facade-fsm.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/facade/scene-facade-fsm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,gCAAgC,CAAC;AAClF,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,oBAAoB,MAAM,0BAA0B,CAAC;AAC5D,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,kBAAkB,MAAM,6CAA6C,CAAC;AAiB7E,cAAM,cAAe,SAAQ,kBAAkB,CAAC,iBAAiB,CAAC;IACvD,kBAAkB,qBAAiB;IACnC,oBAAoB,uBAAmB;IACvC,iBAAiB,oBAAgB;IACjC,kBAAkB,qBAAiB;IACnC,KAAK;IAQC,SAAS,CAAC,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,WAAW,CAAC,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7C,QAAQ,CAAC,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAO1C,SAAS,CAAC,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD,aAAa;IAMb,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE;IAMtB,UAAU;IAwBV,mBAAmB;CAOnC;AAED,iBAAS,oBAAoB,IAAI,cAAc,CAoF9C;AAED,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-manager.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-manager.d.ts new file mode 100644 index 0000000..c57677d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-manager.d.ts @@ -0,0 +1,318 @@ +/// <reference types="node" /> +import { SetPropertyOptions, MoveArrayOptions, RemoveArrayOptions, CutNodeOptions, PasteNodeOptions, CreateNodeOptions, RemoveNodeOptions, CreateComponentOptions, RemoveComponentOptions, ExecuteComponentMethodOptions, IAnimOperation, ExecuteSceneScriptMethodOptions, UnitTestInfo, QueryClassesOptions } from '../../../../@types/public'; +import { IChangeNodeOptions } from '../../../../@types/private'; +import ISceneFacade from '../../../../@types/scene-facade-interface'; +import cameraMgr from '../manager/camera'; +import nodeMgr from '../manager/node'; +import compMgr from '../manager/component'; +import gizmoMgr from '../manager/gizmos'; +import assetMgr from '../manager/asset'; +import prefabMgr from '../manager/prefab'; +import selectionMgr from '../manager/selection'; +import pluginMgr from '../manager/plugin'; +import type PreviewPlay from '../manager/preview-play'; +import terrainMgr from '../manager/terrain'; +import { engineManager as engineMgr } from '../manager/engine'; +import operationMgr from '../../public/operation'; +import shortcutMgr from '../manager/shortcut'; +import { Node, Component, Vec3, Quat } from 'cc'; +import sceneMgr from '../manager/scene'; +import previewPlay from '../manager/preview-play'; +import scriptMgr from '../manager/scripts'; +import effectMgr from '../manager/effects'; +import animationMgr from '../manager/animation'; +import DumpEncode from '../../utils/dump/encode'; +import DumpDecode from '../../utils/dump/decode'; +import DumpUtils from '../../utils/dump/utils'; +import * as cc from 'cc'; +import { previewMgr } from '../manager/preview'; +declare class SceneFacadeManager implements ISceneFacade { + private _projectType; + private _highQuality; + private _facadeFSM; + init(): Promise<void>; + changeProjectMode(type: '3d' | '2d'): void; + changeHighQuality(bool: boolean): void; + onNativeConfigChange(value: string): Promise<void>; + initManager(): Promise<void>; + initEventListener(): void; + /** + * 退出命令,如果是场景模式,则返回 true + * 其他模式,则执行退出模式操作,并返回 false + */ + quitEditorCommand(): boolean; + openScene(uuid: string): Promise<boolean>; + private clear; + beforeClose(): Promise<boolean>; + closeScene(): Promise<boolean>; + dumpAllScenes(): Promise<any>; + onSceneOpened(scene: any): void; + onSceneReload(scene: any): void; + onSceneClosed(scene: any): void; + onSceneSaved(scene: any): void; + restoreAllScenes(dump: any[]): Promise<void>; + saveScene(asNew?: boolean): Promise<boolean>; + softReloadScene(json?: any): Promise<boolean>; + reloadScene(): Promise<boolean>; + queryNodeTree(uuid: string): Promise<any>; + queryNodesByAssetUuid(uuid: string): Promise<string[]>; + queryNodesMissAsset(): string[]; + querySceneSerializedData(): Promise<string>; + querySceneDirty(): Promise<any>; + queryClasses(options?: QueryClassesOptions): Promise<any>; + queryComponents(): Promise<any>; + queryComponentHasScript(name: string): Promise<boolean>; + queryLayerBuiltin(): Promise<any>; + querySortingLayerBuiltin(): Promise<any>; + queryMode(): string; + queryCurrentSceneUuid(): string; + onResize(opts: cc.ISizeLike): void; + queryNodeDump(uuid: string): Promise<any>; + setNodeProperty(options: SetPropertyOptions): Promise<boolean>; + resetNode(uuid: string): Promise<boolean>; + resetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + previewSetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + cancelPreviewSetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + updateNodePropertyFromNull(options: SetPropertyOptions): Promise<boolean>; + setNodeAndChildrenLayer(options: SetPropertyOptions): void; + moveNodeArrayElement(options: MoveArrayOptions): void; + removeNodeArrayElement(options: RemoveArrayOptions): Promise<boolean>; + generateNodeAvailableName(name: string, parentUuid?: string): Promise<string>; + selectAllNodes(): void; + copyNode(uuids: string | string[]): string[]; + duplicateNode(uuids: string | string[]): string[]; + duplicateCurrentSelectedProbes(): void; + removeCurrentSelectedProbes(): void; + lightProbeInfoChanged(): void; + cutNode(uuids: string | string[]): void; + pasteNode(options: PasteNodeOptions): Promise<string[]>; + setNodeParent(options: CutNodeOptions): Promise<string[]>; + createNode(options: CreateNodeOptions): Promise<string>; + removeNode(options: RemoveNodeOptions): void; + changeNodeLock(uuid: string, locked: boolean, loop: boolean): Promise<void>; + restorePrefab(uuid: string, assetUuid: string): Promise<boolean>; + onNodeBeforeChanged(node: Node): void; + onNodeChanged(node: Node, opts: IChangeNodeOptions): void; + onBeforeNodeAdded(node: Node): void; + onAddNode(node: Node): void; + onRemoveNode(node: Node): void; + onNodeAdded(node: Node, opts?: any): void; + onNodeRemoved(node: Node, opts?: any): void; + queryComponent(uuid: string): Promise<boolean>; + queryComponentFunctionOfNode(uuid: string): Promise<any>; + createComponent(options: CreateComponentOptions): void; + resetComponent(uuid: string): void; + removeComponent(options: RemoveComponentOptions): void; + executeComponentMethod(options: ExecuteComponentMethodOptions): Promise<any>; + executeSceneScriptMethod(options: ExecuteSceneScriptMethodOptions): Promise<any>; + onAddComponent(comp: Component): void; + onRemoveComponent(comp: Component): void; + onComponentAdded(comp: Component, opts?: any): void; + onComponentRemoved(comp: Component, opts?: any): void; + snapshot(command?: any): Promise<void>; + abortSnapshot(): Promise<void>; + undo(): Promise<void>; + redo(): Promise<void>; + /** + * @param node + * @param enable + */ + recordNode(node: Node, enable?: boolean): void; + changeTitle(): Promise<void>; + queryAllEffects(): Promise<any>; + queryMaterial(uuid: string): Promise<any>; + queryEffect(effectName: string): Promise<any>; + queryRenderPipeline(uuid: string): Promise<any>; + previewMaterial(uuid: string, material: any, opts?: { + emit?: boolean; + }): void; + applyMaterial(uuid: string, materialDump: any): void; + changePhysicsMaterial(dump: any): Promise<any>; + applyPhysicsMaterial(uuid: string): Promise<void>; + changeAnimationGraphVariant(dump: any): Promise<any>; + applyAnimationGraphVariant(uuid: string): Promise<void>; + changeAnimationMask(dump: any): Promise<any>; + applyAnimationMask(uuid: string): Promise<void>; + applyRenderTexture(uuid: string, userData: any): Promise<void>; + changeRenderPipeline(dump: any): Promise<any>; + applyRenderPipeline(uuid: string, renderPipelineDump: any): Promise<void>; + queryPhysicsMaterial(uuid: string): any; + queryAnimationGraphVariant(uuid: string): any; + queryAnimationMask(uuid: string): any; + queryCreatableAssetTypes(): any; + assetChange(uuid: string, info?: any, meta?: any): Promise<void>; + assetDelete(uuid: string, info: any): void; + assetRefresh(uuid: string): void; + releaseAsset(asset: string): void; + gizmoRefreshConfig(): Promise<void>; + queryGizmoToolName(): Promise<string>; + queryGizmoPivot(): Promise<string>; + queryGizmoCoordinate(): Promise<string>; + queryIs2D(): Promise<boolean>; + queryIsIconGizmo3D(): boolean; + queryIconGizmoSize(): number; + updateInnerTetrahedron(): void; + setTransformToolName(name: string): void; + setPivot(name: string): void; + setCoordinate(type: string): void; + setIs2D(value: boolean): void; + setIconGizmo3D(is3D: boolean): void; + setIconGizmoSize(size: number): void; + queryTransformSnapConfigs(): import("../../public/gizmos/utils/transform-tool-data").ISnapConfigData; + setTransformSnapConfigs(name: string, value: any): void; + queryRectSnappingConfigs(): number | boolean | import("../../public/gizmos/utils/rect-transform-snapping").IRectSnapConfigData; + setRectSnappingConfigs(name: any, value: any): void; + focus(uuid?: string[] | null, position?: Vec3, rotation?: Quat, viewCenter?: Vec3, immediate?: boolean): void; + alignNodeToSceneView(uuids: string[]): void; + queryIsGridVisible(): boolean; + setGridVisible(visible: boolean): void; + alignWithView(): void; + alignViewWithNode(): void; + setGridLineColor(color: number[]): void; + getCameraProperty(): any; + setCameraProperty(opts: any): void; + getCameraWheelSpeed(): number; + setCameraWheelSpeed(speed: number): void; + getCameraWanderSpeed(): number; + setCameraWanderSpeed(speed: number): void; + setCameraEnableAcceleration(enable: boolean): void; + getCameraEnableAcceleration(): boolean; + zoomSceneViewUp(): void; + zoomSceneViewDown(): void; + resetSceneViewZoom(): void; + queryCurrentAnimationState(): any; + queryCurrentAnimationInfo(): any; + queryAnimationRootNode(uuid: string): string; + queryAnimationRootInfo(uuid: string): any; + queryAnimationClipDump(nodeUuid: string, clipUuid: string): any; + queryAnimationProperties(uuid: string): any; + queryAnimationClipsInfo(nodeUuid: string): any; + queryAnimationClipCurrentTime(clipUuid: string): number; + queryAnimationPropValueAtFrame(clipUuid: string, nodePath: string, propKey: string, frame: number): any; + recordAnimation(uuid: string, active: boolean, clipUuid?: string): Promise<boolean>; + changeAnimationRootNode(uuid: string, clipUuid: string): Promise<boolean>; + setCurEditTime(time: number): Promise<boolean>; + changeClipState(operate: string, clipUuid: string): Promise<boolean>; + setEditClip(clipUuid: string): Promise<boolean>; + saveClip(): Promise<boolean>; + applyAnimationOperation(operationList: IAnimOperation[]): Promise<import("../../../../@types/public").IAniResultBase>; + queryAnimationNodeEditInfo(uuid: string): IAniEditInfo; + queryEnumListWithPath(path: string): readonly cc.__private._cocos_core_value_types_enum__Enum.Enumerator<any>[] | null; + protected reloadAfterScriptChanged(): void; + queryScriptName(uuid: string): Promise<any>; + queryScriptCid(uuid: string): Promise<any>; + loadScript(uuid: string): Promise<void>; + removeScript(info: any): Promise<void>; + scriptChange(info: any): Promise<void>; + investigatePackerDriver(): Promise<void>; + _selectNode(uuid: string): void; + _unselectNode(uuid: string): void; + querySelection(): string[]; + isSelectNode(uuid: string): boolean; + selectNode(uuid: string): void; + unselectNode(uuid: string): void; + clearSelection(): void; + registerEffects(uuids: string[]): void; + removeEffects(uuids: string[]): void; + updateEffect(uuid: string): void; + onRemoveTerrain(uuid: string, info: any): void; + createPrefab(uuid: string, url: string): any; + getPrefabData(uuid: string): any; + linkPrefab(nodeUuid: string, assetUuid: string): any; + unlinkPrefab(nodeUuid: string, removeNested: boolean): any; + applyPrefab(nodeUuid: string): Promise<boolean>; + applyRemovedComponent(nodeUUID: string, fileID: string): Promise<void>; + revertRemovedComponent(nodeUUID: string, fileID: string): Promise<void>; + distributeSelectionUI(type: string): void; + alignSelectionUI(type: string): void; + queryParticlePlayInfo(uuid: string): any; + setParticlePlaySpeed(uuid: string, speed: number): void; + /** + * 播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + playParticle(): void; + /** + * 重新开始播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + restartParticle(): void; + /** + * 暂停选中的粒子 + * @param uuid 粒子组件的 uuid + */ + pauseParticle(): void; + /** + * 停止播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + stopParticle(): void; + applyCurrentCameraSize(uuid: Readonly<string>): number | null; + insertLOD(lODGroupUUID: string, ...args: Parameters<import('cc').LODGroup['insertLOD']>): void; + eraseLOD(lODGroupUUID: string, ...args: Parameters<import('cc').LODGroup['eraseLOD']>): void; + changePreviewPlayState(state: boolean, sceneJson?: string): Promise<void>; + callPreviewPlayMethod<T extends keyof typeof PreviewPlay>(method: T, ...args: Parameters<typeof PreviewPlay[T]>): Promise<any>; + updatePhysicsGroup(): void; + onEngineUpdate(): void; + switchGraphicalTools(bool: boolean): void; + changeTargetResolution(deviceName: string): Promise<void>; + regeneratePolygon2DPoints(uuid: string): void; + exportParticlePlist(uuid: string): Promise<any>; + unitTest(testInfo: UnitTestInfo): Promise<boolean | undefined>; + setSceneLightOn(enable: boolean): void; + querySceneLightOn(): boolean; + changeSceneViewVisible(visible: boolean): void; + queryPreviewData(previewName: string, info: any): Promise<any>; + callPreviewFunction(previewName: string, funcName: string, args: any[]): Promise<any>; + queryThumbnail(uuids: string[], types?: string[]): Promise<string[]>; + getCurrentFacade(): import("./scene-facade-state-interface").ISceneFacadeState; + /** + * @description debug view + * @param key + * @param value + * */ + changeDebugOption(key: string, value: any): Promise<void>; + unregisterPreview(): void; + registerPreview(): void; + forceUpdatePlugin(): void; + syncAfterExitEditorPreview(): Promise<void>; + private resetLightProbeEditMode; + toggleLightProbeEditMode(mode: boolean): boolean; + queryLightProbeEditMode(): boolean; + toggleLightProbeBoundingBoxEditMode(mode: boolean): boolean; + queryLightProbeBoundingBoxEditMode(): boolean; +} +export { SceneFacadeManager }; +declare global { + export namespace cce { + let Camera: typeof cameraMgr; + let Animation: typeof animationMgr; + let Scene: typeof sceneMgr; + let Node: typeof nodeMgr; + let Script: typeof scriptMgr; + let Operation: typeof operationMgr; + let Gizmo: typeof gizmoMgr; + let Asset: typeof assetMgr; + let PreviewPlay: typeof previewPlay; + let Prefab: typeof prefabMgr; + let Effect: typeof effectMgr; + let Selection: typeof selectionMgr; + let Shortcut: typeof shortcutMgr; + let Preview: typeof previewMgr; + let Component: typeof compMgr; + let Terrain: typeof terrainMgr; + let Plugin: typeof pluginMgr; + let Engine: typeof engineMgr; + let NeedAnimState: typeof import('../manager/engine')['NeedAnimState']; + let ModelPreview: typeof previewMgr.modelPreview; + let MotionPreview: typeof previewMgr.motionPreview; + let TransitionPreview: typeof previewMgr.transitionPreview; + let ThumbnailManager: typeof import('../manager/thumbnail/index')['default']; + namespace Dump { + let encode: typeof DumpEncode; + let decode: typeof DumpDecode; + let utils: typeof DumpUtils; + } + } +} +//# sourceMappingURL=scene-facade-manager.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-manager.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-manager.d.ts.map new file mode 100644 index 0000000..4327e05 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-manager.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-facade-manager.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/facade/scene-facade-manager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-interface.d.ts new file mode 100644 index 0000000..86deeea --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-interface.d.ts @@ -0,0 +1,24 @@ +import ISceneFacade from '../../../../@types/scene-facade-interface'; +import IState from '../utils/state-machine/state-interface'; +declare enum SceneModeType { + General = "general", + Prefab = "prefab", + Animation = "animation", + Preview = "preview", + Unset = "" +} +interface ISceneFacadeState extends ISceneFacade, IState { + modeName: string; + isHold: boolean; + closeSceneWhenExit: boolean; + checkToClose(): Promise<boolean>; + setCloseSceneWhenExit(): void; + closeSceneState(): Promise<boolean>; + stagingSceneState(): Promise<boolean>; + restoreSceneState(dump?: any): Promise<boolean>; + patchSceneState(): Promise<boolean>; + dumpSceneState(): Promise<any>; + fireCloseEvent(): void; +} +export { ISceneFacadeState, SceneModeType }; +//# sourceMappingURL=scene-facade-state-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-interface.d.ts.map new file mode 100644 index 0000000..5e13f7f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-facade-state-interface.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/facade/scene-facade-state-interface.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2CAA2C,CAAC;AACrE,OAAO,MAAM,MAAM,wCAAwC,CAAC;AAC5D,aAAK,aAAa;IACd,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,KAAK,KAAK;CACb;AAED,UAAU,iBAAkB,SAAQ,YAAY,EAAE,MAAM;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,qBAAqB,IAAI,IAAI,CAAC;IAC9B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,cAAc,IAAI,IAAI,CAAC;CAC1B;AAED,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-transition.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-transition.d.ts new file mode 100644 index 0000000..a297855 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-transition.d.ts @@ -0,0 +1,22 @@ +import { ISceneFacadeState } from './scene-facade-state-interface'; +import { Transition } from '../utils/state-machine/transition'; +declare class ToAnimationTransition<TState extends ISceneFacadeState> extends Transition<TState> { + constructor(from: TState, to: TState, testConditionFunc?: Function | null); + testCondition(): Promise<boolean>; + Complete(): Promise<void>; +} +declare class ToGeneralTransition<TState extends ISceneFacadeState> extends Transition<TState> { + constructor(from: TState, to: TState, testConditionFunc?: Function | null); + testCondition(): Promise<boolean>; +} +declare class ToPreviewTransition<TState extends ISceneFacadeState> extends Transition<TState> { + constructor(from: TState, to: TState, testConditionFunc?: Function | null); + Complete(): Promise<void>; +} +declare class ToPrefabTransition<TState extends ISceneFacadeState> extends Transition<TState> { + constructor(from: TState, to: TState, testConditionFunc?: Function | null); + testCondition(): Promise<boolean>; + Complete(): Promise<void>; +} +export { ToAnimationTransition, ToGeneralTransition, ToPrefabTransition, ToPreviewTransition }; +//# sourceMappingURL=scene-facade-state-transition.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-transition.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-transition.d.ts.map new file mode 100644 index 0000000..fdfdd30 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/facade/scene-facade-state-transition.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-facade-state-transition.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/facade/scene-facade-state-transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,cAAM,qBAAqB,CAAC,MAAM,SAAS,iBAAiB,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;gBACxE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAE,QAAQ,GAAG,IAAW;IAIlE,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAUjC,QAAQ;CAQxB;AAED,cAAM,mBAAmB,CAAC,MAAM,SAAS,iBAAiB,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;gBACtE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAE,QAAQ,GAAG,IAAW;IAIlE,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;CAOjD;AAED,cAAM,mBAAmB,CAAC,MAAM,SAAS,iBAAiB,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;gBACtE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAE,QAAQ,GAAG,IAAW;IAQlE,QAAQ;CAQxB;AAED,cAAM,kBAAkB,CAAC,MAAM,SAAS,iBAAiB,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;gBACrE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAE,QAAQ,GAAG,IAAW;IAIlE,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAajC,QAAQ;CAcxB;AAED,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/base.d.ts new file mode 100644 index 0000000..850f7b8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/base.d.ts @@ -0,0 +1,51 @@ +import * as animationApi from 'cc/editor/new-gen-anim'; +import { InteractivePreview } from '../preview/Interactive-preview'; +import { Scene, Node } from 'cc'; +interface previewVariableParam { + name: string; + value: any; +} +export declare enum PlayState { + STOP = 0, + PLAYING = 1, + PAUSE = 2 +} +export declare enum PreviewState { + NO_ERROR = 0, + NO_ANIMATION_GRAPH = 1, + NO_MODEL = 2, + NO_TRANSITION_SOURCE_MOTION = 3, + NO_TRANSITION_DESTINATION_MOTION = 4, + ILLEGAL_MOTION = 5, + ILLEGAL_TRANSITION = 6 +} +export declare abstract class AnimationGraphPreviewBase<T extends animationApi.TransitionPreviewer | animationApi.MotionPreviewer> extends InteractivePreview { + active: boolean; + PreviewState: typeof PreviewState; + private model; + private light; + private updateIntervalId; + private playTime; + private playFPS; + init(registerName: string, queryName: string): void; + reset(): void; + hide(): void; + createNodes(scene: Scene): void; + hasModel(): boolean; + setModel(modelUuid: string): Promise<void>; + play(): void; + pause(): void; + stop(): void; + setTime(time: number): void; + setVariables(animationGraph: animationApi.AnimationGraph): void; + updateVariable(variableParams: previewVariableParam[]): void; + removeVariable(name: string): void; + update(): void; + protected playState: PlayState; + protected previewer: T; + protected abstract createPreviewer(root: Node): T; + protected abstract getLightName(): string; + protected abstract getUpdateMessageName(): string; +} +export {}; +//# sourceMappingURL=base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/base.d.ts.map new file mode 100644 index 0000000..e6a4f51 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation-graph-preview/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,IAAI,EAA0E,MAAM,IAAI,CAAC;AAGzG,UAAU,oBAAoB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;CACd;AAED,oBAAY,SAAS;IACjB,IAAI,IAAI;IACR,OAAO,IAAI;IACX,KAAK,IAAI;CACZ;AAED,oBAAY,YAAY;IACpB,QAAQ,IAAA;IACR,kBAAkB,IAAA;IAClB,QAAQ,IAAA;IACR,2BAA2B,IAAA;IAC3B,gCAAgC,IAAA;IAChC,cAAc,IAAA;IACd,kBAAkB,IAAA;CACrB;AAED,8BAAsB,yBAAyB,CAAC,CAAC,SAAS,YAAY,CAAC,mBAAmB,GAAG,YAAY,CAAC,eAAe,CAAE,SAAQ,kBAAkB;IAC1I,MAAM,UAAS;IACf,YAAY,sBAAgB;IAEnC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,KAAK,CAAyB;IAEtC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAAM;IAEd,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI5C,KAAK;IAaL,IAAI;IAMJ,WAAW,CAAC,KAAK,EAAE,KAAK;IAMxB,QAAQ;IAIF,QAAQ,CAAC,SAAS,EAAE,MAAM;IAgChC,IAAI;IAgBJ,KAAK;IAML,IAAI;IAOJ,OAAO,CAAC,IAAI,EAAE,MAAM;IAK3B,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,cAAc;IAQxD,cAAc,CAAC,cAAc,EAAE,oBAAoB,EAAE;IAQrD,cAAc,CAAC,IAAI,EAAE,MAAM;IAIpB,MAAM;IAYb,SAAS,CAAC,SAAS,YAAkB;IAErC,UAAkB,SAAS,EAAE,CAAC,CAAC;IAE/B,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;IAEjD,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,MAAM;IAEzC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,MAAM;CACpD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/motion.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/motion.d.ts new file mode 100644 index 0000000..ab2d761 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/motion.d.ts @@ -0,0 +1,15 @@ +import * as animationApi from 'cc/editor/new-gen-anim'; +import { Node } from 'cc'; +import { AnimationGraphPreviewBase, PreviewState } from './base'; +declare type Motion = NonNullable<animationApi.MotionState['motion']>; +declare class MotionPreview extends AnimationGraphPreviewBase<animationApi.MotionPreviewer> { + motion: Motion | null; + hide(): void; + show(motion: Motion | null, animationGraph: animationApi.AnimationGraph | null): PreviewState.NO_ERROR | PreviewState.NO_ANIMATION_GRAPH | PreviewState.NO_MODEL | PreviewState.ILLEGAL_MOTION; + setProp(): void; + protected createPreviewer(root: Node): animationApi.MotionPreviewer; + protected getLightName(): string; + protected getUpdateMessageName(): string; +} +export { MotionPreview, PreviewState }; +//# sourceMappingURL=motion.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/motion.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/motion.d.ts.map new file mode 100644 index 0000000..a3a72fe --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/motion.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation-graph-preview/motion.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE5E,aAAK,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE9D,cAAM,aAAc,SAAQ,yBAAyB,CAAC,YAAY,CAAC,eAAe,CAAC;IACxE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE7B,IAAI;IAKJ,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,cAAc,GAAG,IAAI;IA+BrF,OAAO;IAIP,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI;IAIpC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,oBAAoB,IAAI,MAAM;CAG3C;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/transition.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/transition.d.ts new file mode 100644 index 0000000..c459b0f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/transition.d.ts @@ -0,0 +1,14 @@ +import * as animationApi from 'cc/editor/new-gen-anim'; +import { Node } from 'cc'; +import { AnimationGraphPreviewBase, PreviewState } from './base'; +declare class TransitionPreview extends AnimationGraphPreviewBase<animationApi.TransitionPreviewer> { + transition: animationApi.AnimationTransition | null; + hide(): void; + show(transition: animationApi.Transition, animationGraph: animationApi.AnimationGraph | null): PreviewState.NO_ERROR | PreviewState.NO_ANIMATION_GRAPH | PreviewState.NO_MODEL | PreviewState.NO_TRANSITION_SOURCE_MOTION | PreviewState.NO_TRANSITION_DESTINATION_MOTION | PreviewState.ILLEGAL_TRANSITION; + setProp(): void; + protected createPreviewer(root: Node): animationApi.TransitionPreviewer; + protected getLightName(): string; + protected getUpdateMessageName(): string; +} +export { TransitionPreview }; +//# sourceMappingURL=transition.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/transition.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/transition.d.ts.map new file mode 100644 index 0000000..6274df4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation-graph-preview/transition.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation-graph-preview/transition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE5E,cAAM,iBAAkB,SAAQ,yBAAyB,CAAC,YAAY,CAAC,mBAAmB,CAAC;IAChF,UAAU,EAAE,YAAY,CAAC,mBAAmB,GAAG,IAAI,CAAQ;IAE3D,IAAI;IAKX,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,cAAc,GAAG,IAAI;IA2D5F,OAAO;IAcP,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI;IAIpC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,oBAAoB,IAAI,MAAM;CAG3C;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-clip.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-clip.d.ts new file mode 100644 index 0000000..a24a0ac --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-clip.d.ts @@ -0,0 +1,283 @@ +import { IAnimCopyNodeSrcInfo, IAnimCopyNodeDstInfo, IAnimCopyPropSrcInfo, IAnimCopyPropDstInfo, IAnimCopyKeySrcInfo, IAnimCopyKeyDstInfo, IAnimCopyEventSrcInfo, IAnimCopyEventDstInfo, IEmbeddedPlayers, EditorAnimationClipDump } from '../../../../../@types/private'; +import { animation, EmbeddedPlayerGroup, AnimationClip, AnimationState, Node } from 'cc'; +import EditorAnimationCurve from './editor-animation-curve'; +import EditorAnimationCombinedCurve from './editor-animation-combined-curve'; +import { IAnimationClipData, ICurveInfo, IPropDumpData } from './type-defines'; +import EditorAnimationCurveBase from './editor-animation-curve-base'; +/** + * 编辑器使用的AnimationClip,对引擎的AnimationClip数据进行一层封装,方便编辑 + */ +declare class EditorAnimationClip { + private _rootNode; + private _clipUuid; + private _animComp; + private _animState; + private _editorSharedClipData; + private _initPropDataMap; + private _createdCurveMap; + private _editorCurves; + private _editEmbeddedPlayerMap; + constructor(node: Node, clipUuid: string, state: AnimationState); + refreshData(node: Node, clipUuid: string): void; + init(): void; + get rootNode(): Node; + generateClipData(clip: AnimationClip): IAnimationClipData; + createCombinedAndPartsAnimCurve(clipData: IAnimationClipData, curveInfo: ICurveInfo, track: animation.VectorTrack | animation.ColorTrack | animation.SizeTrack): void; + addInitPropDataMap(nodePath: string, animableProps: IPropDumpData[]): void; + getInitPropData(nodePath: string, propKey: string): IPropDumpData | null | undefined; + getCreatedCurve(nodePath: string, propKey: string): EditorAnimationCurveBase | null | undefined; + addEditorCurve(editorCurve: EditorAnimationCurveBase): void; + addToCreatedCurveMap(editorCurve: EditorAnimationCurveBase): void; + rebuildCreatedCurveMap(): void; + getDumpData(): Promise<EditorAnimationClipDump | null>; + /** + * 重新计算clip的总时长 + */ + recalculateDuration(): void; + /** + * 将编辑曲线数据应用到clip中 + */ + applyEditorCurvesToClip(): Promise<void>; + /** + * 将编辑的通知数据应用到clip中 + */ + applyEditorEmbeddedPlayersToClip(): Promise<void>; + private updateEditorEmbeddedPlayers; + private _ensureEditorExtras; + private _getRealKeyframeData; + protected createTrack(editorCurve: EditorAnimationCombinedCurve | EditorAnimationCurve, sample: number): animation.VectorTrack | animation.RealTrack | animation.QuatTrack | animation.ColorTrack | animation.SizeTrack | animation.ObjectTrack<unknown> | null; + /** + * 更新曲线数据到运行时 + */ + updateCurveData(): Promise<void>; + /** + * 更新事件数据 + */ + updateEventData(): void; + /** + * 更改动画的 sample 值 + * @param {Number} sample 动画的帧率 + */ + changeSample(sample: number): Promise<boolean>; + /** + * 更改动画的 speed 值 + * @param speed + */ + changeSpeed(speed: number): Promise<boolean>; + /** + * 更改动画的播放模式 + * @param {Number} mode 动画的播放模式 + */ + changeWrapMode(mode: number): Promise<boolean>; + /** + * 删除动画的节点数据 + * @param {String} nodePath 被清除的节点路径 + */ + removeNode(nodePath: string | undefined): Promise<boolean>; + /** + * 更改一个节点上某个动画的节点数据到另一个节点上 + * @param {String} srcPath 待转移的节点路径 + * @param {String} dstPath 目标的节点路径 + */ + changeNodeDataPath(srcPath: string | undefined, dstPath: string | undefined): Promise<boolean>; + /** + * + * @param srcInfo 源数据相关信息 + * @param dstInfo 目标相关信息 + */ + copyNode(srcInfo: IAnimCopyNodeSrcInfo, dstInfo: IAnimCopyNodeDstInfo): Promise<boolean>; + /** + * + * @param srcInfo 源数据相关信息 + * @param dstInfo 目标相关信息 + */ + copyProp(srcInfo: IAnimCopyPropSrcInfo, dstInfo: IAnimCopyPropDstInfo): Promise<boolean>; + /** + * + * @param srcInfo 源数据相关信息 + * @param dstInfo 目标相关信息 + */ + copyKey(srcInfo: IAnimCopyKeySrcInfo, dstInfo: IAnimCopyKeyDstInfo): Promise<boolean>; + /** + * + * @param srcInfo 源数据相关信息 + * @param dstInfo 目标相关信息 + */ + copyEvent(srcInfo: IAnimCopyEventSrcInfo, dstInfo: IAnimCopyEventDstInfo): boolean; + /** + * + * @param srcNodePath 源节点路径 + * @param srcPropKey 源属性标识 + * @param dstNodePath 目标节点路径 + * @param dstPropKey 目标属性标识 + */ + copyPropTo(srcNodePath: string, srcPropKey: string, dstNodePath: string, dstPropKey: string): Promise<boolean>; + /** + * 新增一条属性轨道 + * @param {String} nodePath 节点路径 + * @param {String} propKey 属性的标识(包含组件名字和属性查找路径) + */ + createProp(nodePath: string, propKey: string): Promise<boolean>; + /** + * 删除一条属性轨道 + * @param {String} nodePath 节点路径 + * @param {String} propKey 属性的标识(包含组件名字和属性查找路径) + */ + removeProp(nodePath: string, propKey: string): Promise<boolean>; + /** + * 创建一个关键帧 + * @param {String} nodePath 节点路径 + * @param {String} propKey 属性的标识(包含组件名字和属性查找路径) + * @param {number} frame 关键帧位置 + * @param {Object} customData 特殊数据来源,比如拖入时间轴的spriteFrame + */ + createKey(nodePath: string, propKey: string, frame: number | undefined, customData: any): Promise<boolean>; + /** + * 移动关键帧(可以每个帧移动不同距离) + * @param {string} nodePath 节点路径 + * @param {string} propKey 属性的标识(包含组件名字和属性查找路径) + * @param {Array} frames 要移动的关键帧数组 + * @param {Array} offsets 移动的距离数组,如果为数组,则可以设置每个帧的移动距离,如果为一个数则表示移动相同距离 + */ + moveKeys(nodePath: string, propKey: string, frames: number[], offsets: number | number[]): Promise<boolean>; + /** + * 删除关键帧 + * @param {string} nodePath 节点路径 + * @param {string} propKey 属性的标识(包含组件名字和属性查找路径) + * @param {number} frames 关键帧位置数组 + */ + removeKey(nodePath: string, propKey: string, frames: number[]): Promise<boolean>; + /** + * 更新关键帧 + * @param {String} nodePath 节点路径 + * @param {String} propKey 属性的标识(包含组件名字和属性查找路径) + * @param {number} frames 关键帧位置数组 + */ + updateKey(nodePath: string, propKey: string, frames: number[]): Promise<boolean>; + /** + * 复制关键帧数据到另一个关键帧上,如果选择了多个复制帧,则在目标帧后顺序粘贴 + * @param {String} nodePath 节点路径 + * @param {String} propKey 属性的标识(包含组件名字和属性查找路径) + * @param {Array} srcFrames 复制的关键帧数组 + * @param {number} dstFrame 目标关键帧 + */ + copyKeysTo(nodePath: string, propKey: string, srcFrames: number[], dstFrame: number): Promise<boolean>; + /** + * 均匀的平铺关键帧 + * @param {String} nodePath 节点路径 + * @param {String} propKey 属性的标识(包含组件名字和属性查找路径) + * @param {Array} frames 待调整的关键帧数组 + * @param {number} spacingFrames 间隔帧数 + */ + spacingKeys(nodePath: string, propKey: string, frames: number[], spacingFrames: number): Promise<boolean>; + /** + * 清空关键帧数据,但不删除Track + * @param {String} nodePath 节点路径 + * @param {String} propKey 属性的标识(包含组件名字和属性查找路径) + */ + clearKeys(nodePath: string, propKey: string): Promise<boolean>; + /** + * 插入事件关键帧 + * @param {number} frame 关键帧所在的位置 + * @param {string} funcName 事件回调函数的名字 + * @param {array} params 参数数组 + */ + addEvent(frame: number, funcName: string, params: string[]): boolean | null; + private _getEditClip; + /** + * 添加嵌入播放器分组 + * @param groupInfo + * @returns + */ + addEmbeddedPlayerGroup(groupInfo: EmbeddedPlayerGroup): boolean; + /** + * 添加嵌入播放器分组及分组下的所有数据 + * @param groupKey + * @returns + */ + removeEmbeddedPlayerGroup(groupKey: string): Promise<boolean>; + /** + * 添加嵌入播放器分组及分组下的所有数据 + * @param groupKey + * @returns + */ + _clearEmbeddedPlayerGroup(groupKey: string): boolean; + /** + * 添加嵌入播放器分组及分组下的所有数据 + * @param groupKey + * @returns + */ + clearEmbeddedPlayerGroup(groupKey: string): Promise<boolean>; + /** + * 添加嵌入播放器 + * @param EmbeddedPlayerDump + * @returns boolean + */ + addEmbeddedPlayer(EmbeddedPlayerDump: IEmbeddedPlayers): Promise<boolean>; + private _addEmbeddedPlayer; + /** + * 删除某个嵌入播放器 + * @param EmbeddedPlayerDump + * @returns + */ + deleteEmbeddedPlayer(EmbeddedPlayerDump: IEmbeddedPlayers): Promise<boolean>; + /** + * 清空嵌入播放器数据 + * @param nodePath + */ + clearEmbeddedPlayer(nodePath: string): Promise<void>; + _deleteEmbeddedPlayer(EmbeddedPlayerDump: IEmbeddedPlayers): boolean; + /** + * 更新某个嵌入播放器 + * @param rawEmbeddedPlayer + * @param newEmbeddedPlayer + * @returns + */ + updateEmbeddedPlayer(rawEmbeddedPlayer: IEmbeddedPlayers, newEmbeddedPlayer: IEmbeddedPlayers): Promise<boolean>; + /** + * 删除事件关键帧,内部使用,不直接更新到clips中 + * @param {object} frames 事件帧所在位置数组 + */ + private _deleteEvent; + /** + * 删除事件关键帧 + * @param {object} frames 事件帧所在位置数组 + */ + deleteEvent(frames: number[]): boolean; + /** + * 更新事件关键帧 + * @param {number} frames 关键帧所在的位置数组 + * @param {object} events 事件帧数据 + */ + updateEvent(frames: number[], events: any[]): boolean; + /** + * 移动事件关键帧 + * @param {Array} frames 要移动的关键帧数组 + * @param {number} offset 偏移帧数 + */ + moveEvents(frames: number[], offset: number): boolean; + /** + * 拷贝事件关键帧 + * @param {Array} srcFrames 要复制的关键帧数组 + * @param {number} dstFrame 目标帧位置 + */ + copyEventsTo(srcFrames: number[], dstFrame: number): boolean; + /** + * 修改某个关键帧的曲线数据 + * @param {string} nodePath 节点路径 + * @param {string} propKey 属性的标识(包含组件名字和属性查找路径) + * @param {number} frame 帧数 + * @param {*} data 曲线描述,可能是字符串和数组 + */ + modifyCurveOfKey(nodePath: string, propKey: string, frame: number, data: any): Promise<boolean>; + /** + * 取得轨迹上某个关键帧的值 + * @param {String} nodePath 节点路径 + * @param {String} propKey 属性的标识(包含组件名字和属性查找路径) + * @param frame 帧数 + */ + getPropValueAtFrame(nodePath: string, propKey: string, frame: number): Promise<any>; + private _getAnimState; +} +export default EditorAnimationClip; +//# sourceMappingURL=editor-animation-clip.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-clip.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-clip.d.ts.map new file mode 100644 index 0000000..b04fe1c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-clip.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"editor-animation-clip.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation/editor-animation-clip.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-combined-curve.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-combined-curve.d.ts new file mode 100644 index 0000000..6e97805 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-combined-curve.d.ts @@ -0,0 +1,53 @@ +import { IDumpType } from '../../../../../@types/private'; +import { animation, Node } from 'cc'; +import EditorAnimationCurve from './editor-animation-curve'; +import EditorAnimationCurveBase from './editor-animation-curve-base'; +import { IAnimationClipData, ICurveInfo, IPropCustomData } from './type-defines'; +/** + * 用于带分量的曲线类型,如Vec3,Color等。它并不产生对应的clip中的数据,只是起到一个显示和操作的中转作用, + * 它把分量曲线的信息综合起来显示,并把对它的操作数据转发到分量曲线上。 + */ +declare class EditorAnimationCombinedCurve extends EditorAnimationCurveBase { + get maxPartNumber(): number; + set maxPartNumber(value: number); + canMerge: boolean; + private _partEditorAnimCurves; + private _maxPartNumber; + get curveInfo(): ICurveInfo; + set curveInfo(value: ICurveInfo); + constructor(node: Node, clipData: IAnimationClipData); + updateType(type?: IDumpType): void; + getDumpData(): Promise<{ + nodePath: string; + keyframes: import("../../../../../@types/private").IKeyDumpData[]; + displayName: string; + key: string; + type: IDumpType | undefined; + isCurveSupport: boolean; + }>; + getClipSample(): number; + getClipDuration(): number; + changeNodePath(path: string): void; + initFromTrack(curveInfo: ICurveInfo, track: animation.VectorTrack | animation.ColorTrack | animation.SizeTrack): void; + updateCurveData(): Promise<void>; + separateDataIntoParts(): void; + addPartEditorAnimCurve(partCurve: EditorAnimationCurve): void; + getPartEditorAnimCurves(): EditorAnimationCurve[]; + iteratorPartAnimCurves(callBack: (partCurve: EditorAnimationCurve, part: string) => void): Promise<void>; + hasKey(frame: number): boolean; + createKey(frame: number | undefined, customData: IPropCustomData): Promise<boolean>; + moveKeys(frames: number[], offsets: number[]): Promise<boolean>; + removeKey(frames: number[]): Promise<boolean>; + updateKey(frames: number[]): Promise<boolean>; + copyKeysTo(srcFrames: number[], dstFrame: number): Promise<boolean>; + spacingKeys(frames: number[], spacingFrames: number): Promise<boolean>; + clearKeys(): Promise<boolean>; + modifyCurveOfKey(frame: number, data: any): Promise<boolean>; + /** + * 取得某个关键帧的值 + * @param frame + */ + getPropValueAtFrame(frame: number): Promise<import("../../../../../@types/public").IProperty | null>; +} +export default EditorAnimationCombinedCurve; +//# sourceMappingURL=editor-animation-combined-curve.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-combined-curve.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-combined-curve.d.ts.map new file mode 100644 index 0000000..7f2bbc6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-combined-curve.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"editor-animation-combined-curve.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation/editor-animation-combined-curve.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAiB,IAAI,EAAgC,MAAM,IAAI,CAAC;AAClF,OAAO,oBAAoB,MAAM,0BAA0B,CAAC;AAC5D,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,eAAe,EAAa,MAAM,gBAAgB,CAAC;AAW5F;;;GAGG;AACH,cAAM,4BAA6B,SAAQ,wBAAwB;IAC/D,IAAI,aAAa,WAEhB;IAED,IAAI,aAAa,CAAC,KAAK,QAAA,EAEtB;IACM,QAAQ,UAAQ;IAEvB,OAAO,CAAC,qBAAqB,CAA8B;IAE3D,OAAO,CAAC,cAAc,CAAK;IAG3B,IAAI,SAAS,IAIQ,UAAU,CAF9B;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,UAAU,EAG9B;gBAEW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB;IAM7C,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS;IASrB,WAAW;;;;;;;;IAmBjB,aAAa;IAIb,eAAe;IAIf,cAAc,CAAC,IAAI,EAAE,MAAM;IA0B3B,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,GAAC,SAAS,CAAC,UAAU,GAAC,SAAS,CAAC,SAAS;IA8EpG,eAAe;IAmErB,qBAAqB;IAsErB,sBAAsB,CAAC,SAAS,EAAE,oBAAoB;IAOtD,uBAAuB;IAIjB,sBAAsB,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI;IAU9F,MAAM,CAAC,KAAK,EAAE,MAAM;IAWd,SAAS,CAAC,KAAK,oBAAI,EAAE,UAAU,EAAE,eAAe;IAkBhD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;IAoB5C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE;IAe1B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE;IAgB1B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM;IAehD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM;IAenD,SAAS;IAYT,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IActD;;;OAGG;IACU,mBAAmB,CAAC,KAAK,EAAE,MAAM;CAsDjD;AAED,eAAe,4BAA4B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve-base.d.ts new file mode 100644 index 0000000..8f69b3c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve-base.d.ts @@ -0,0 +1,49 @@ +import { ExtrapolationMode, Node, ObjectCurve, QuatCurve, RealCurve } from 'cc'; +import { IAnimationClipData, ICurveDumpData, ICurveInfo, IKeyframe, IPropCustomData, IPropData } from './type-defines'; +declare abstract class EditorAnimationCurveBase { + protected _node: Node; + protected _clipData: IAnimationClipData; + protected _curveInfo: ICurveInfo; + protected _keyframeData: IKeyframe[]; + protected _isDirty: boolean; + protected _preExtrap: ExtrapolationMode; + protected _postExtrap: ExtrapolationMode; + set node(node: Node); + get dirty(): boolean; + set dirty(value: boolean); + get curveInfo(): ICurveInfo; + set curveInfo(value: ICurveInfo); + get keyframeData(): IKeyframe[]; + set keyframeData(value: IKeyframe[]); + get nodePath(): string; + get propKey(): string; + get propData(): IPropData; + get preExtrap(): ExtrapolationMode; + set preExtrap(value: ExtrapolationMode); + get postExtrap(): ExtrapolationMode; + set postExtrap(value: ExtrapolationMode); + getClipSample(): number; + getClipDuration(): number; + initFromCurve(curveInfo: ICurveInfo, curve: RealCurve | QuatCurve | ObjectCurve<unknown>): void; + /** + * 取得某个关键帧的值 + * @param frame + */ + abstract getPropValueAtFrame(frame: number): Promise<any>; + decodeDump(dump: ICurveDumpData): Promise<void>; + abstract getDumpData(): Promise<ICurveDumpData>; + abstract changeNodePath(path: string): void; + autoSetTangents(): void; + calculateCurveTangent(preTime: number, preValue: any, currTime: number, currValue: any, nextTime: number, nextValue: any): number | undefined; + abstract hasKey(frame: number): any; + abstract createKey(frame: number, customData?: IPropCustomData): Promise<boolean>; + abstract moveKeys(frames: number[], offsets: number[]): Promise<boolean>; + abstract removeKey(frames: number[]): Promise<boolean>; + abstract updateKey(frames: number[]): Promise<boolean>; + abstract copyKeysTo(srcFrames: number[], dstFrame: number): Promise<boolean>; + abstract spacingKeys(frames: number[], spacingFrames: number): Promise<boolean>; + abstract clearKeys(): Promise<boolean>; + abstract modifyCurveOfKey(frame: number, data: any): Promise<boolean>; +} +export default EditorAnimationCurveBase; +//# sourceMappingURL=editor-animation-curve-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve-base.d.ts.map new file mode 100644 index 0000000..c2cf805 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"editor-animation-curve-base.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation/editor-animation-curve-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAmC,SAAS,EAAkE,MAAM,IAAI,CAAC;AACvO,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAe,MAAM,gBAAgB,CAAC;AAGpI,uBAAe,wBAAwB;IACnC,SAAS,CAAC,KAAK,EAAG,IAAI,CAAC;IACvB,SAAS,CAAC,SAAS,EAAG,kBAAkB,CAAC;IACzC,SAAS,CAAC,UAAU,EAAG,UAAU,CAAC;IAClC,SAAS,CAAC,aAAa,EAAE,SAAS,EAAE,CAAM;IAC1C,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAA2B;IAClE,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAA2B;IAEnE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAElB;IAED,IAAI,KAAK,YAER;IAED,IAAI,KAAK,CAAC,KAAK,SAAA,EAEd;IAED,IAAI,SAAS,IAIQ,UAAU,CAF9B;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,UAAU,EAE9B;IAED,IAAI,YAAY,gBAEf;IAED,IAAI,YAAY,CAAC,KAAK,aAAA,EAErB;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,OAAO,WAEV;IAED,IAAI,QAAQ,IAAI,SAAS,CAQxB;IAED,IAAW,SAAS,IAAI,iBAAiB,CAExC;IACD,IAAW,SAAS,CAAC,KAAK,EAAE,iBAAiB,EAE5C;IAED,IAAW,UAAU,IAAI,iBAAiB,CAEzC;IACD,IAAW,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAE7C;IAEM,aAAa;IAIb,eAAe;IAIf,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAC,SAAS,GAAC,WAAW,CAAC,OAAO,CAAC;IAyD3F;;;OAGG;aACa,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAEnD,UAAU,CAAC,IAAI,EAAE,cAAc;aAQ5B,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;aAEtC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3C,eAAe;IAmEtB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;aAaxG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG;aAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;aACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;aAC/D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;aAC7C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;aAC7C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;aACnE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;aACtE,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;aAC7B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAC/E;AAED,eAAe,wBAAwB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve.d.ts new file mode 100644 index 0000000..d21e305 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve.d.ts @@ -0,0 +1,81 @@ +import { IPropCurveDumpData } from '../../../../../@types/private'; +import { animation, Node } from 'cc'; +import EditorAnimationCurveBase from './editor-animation-curve-base'; +import { IAnimationClipData, IPropCustomData, IKeyframe, ICurveData } from './type-defines'; +import EditorAnimationCombinedCurve from './editor-animation-combined-curve'; +declare class EditorAnimationCurve extends EditorAnimationCurveBase { + private _parentCurve; + get parentCurve(): EditorAnimationCombinedCurve | null; + set parentCurve(value: EditorAnimationCombinedCurve | null); + get isPartCurve(): EditorAnimationCombinedCurve | null; + get partName(): string | undefined; + get targetPaths(): animation.TrackPath; + get combinedPropKey(): string; + get combinedCurveKeyData(): null; + get combinedDisplayName(): string; + get displayName(): string; + isActive: boolean; + constructor(node: Node, clipData: IAnimationClipData); + getDumpData(): Promise<IPropCurveDumpData>; + getCompName(): string | undefined; + getPropName(): string; + changeNodePath(path: string): void; + queryKeyIndex(frame: number): number; + queryKeyframe(frame: number): IKeyframe | null; + getValidKeys(frames: number[]): number[] | null; + hasKey(frame: number): boolean; + /** + * 创建一个关键帧 + * @param {number} frame 关键帧位置 + * @param {Object} customData 特殊数据来源,比如拖入时间轴的spriteFrame + */ + createKey(frame?: number, customData?: IPropCustomData): Promise<boolean>; + /** + * 移动关键帧(可以每个帧移动不同距离) + * @param {Array} frames 要移动的关键帧数组 + * @param {Array} offsets 移动的距离数组 + */ + moveKeys(frames: number[], offsets: number[]): Promise<boolean>; + /** + * 删除关键帧 + * @param {number} frames 关键帧位置数组 + */ + removeKey(frames: number[]): Promise<boolean>; + /** + * 更新关键帧 + * @param {number} frames 关键帧位置数组 + */ + updateKey(frames: number[]): Promise<boolean>; + /** + * 复制关键帧数据到另一个关键帧上,如果选择了多个复制帧,则在目标帧后顺序粘贴 + * @param {Array} srcFrames 复制的关键帧数组 + * @param {number} dstFrame 目标关键帧 + */ + copyKeysTo(srcFrames: number[], dstFrame: number): Promise<boolean>; + /** + * 均匀的平铺关键帧 + * @param {Array} frames 待调整的关键帧数组 + * @param {number} spacingFrames 间隔帧数 + */ + spacingKeys(frames: number[], spacingFrames: number): Promise<boolean>; + /** + * 清空关键帧数据,但不删除Track + */ + clearKeys(): Promise<boolean>; + /** + * 修改某个关键帧的曲线数据 + * @param {String} nodePath 节点路径 + * @param {Object} propKey 属性的标识(包含组件名字和属性查找路径) + * @param {number} frame key.frame 是实际的时间,需要传入帧数 + * @param {ICurveData} data 插值曲线的相关数据 + */ + modifyCurveOfKey(frame: number, data: ICurveData): Promise<boolean>; + getCurveDuration(): number; + /** + * 取得某个关键帧的值 + * @param frame + */ + getPropValueAtFrame(frame: number): Promise<import("../../../../../@types/public").IProperty | null>; +} +export default EditorAnimationCurve; +//# sourceMappingURL=editor-animation-curve.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve.d.ts.map new file mode 100644 index 0000000..cd998a1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/editor-animation-curve.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"editor-animation-curve.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation/editor-animation-curve.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,kBAAkB,EACrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAM,IAAI,EAAkJ,MAAM,IAAI,CAAC;AACzL,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,4BAA4B,MAAM,mCAAmC,CAAC;AAG7E,cAAM,oBAAqB,SAAQ,wBAAwB;IACvD,OAAO,CAAC,YAAY,CAA2C;IAE/D,IAAI,WAAW,IAIQ,4BAA4B,GAAC,IAAI,CAFvD;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,4BAA4B,GAAC,IAAI,EAEvD;IAED,IAAI,WAAW,wCAEd;IAED,IAAI,QAAQ,uBAEX;IAED,IAAI,WAAW,wBAEd;IAED,IAAI,eAAe,WAIlB;IAED,IAAI,oBAAoB,SAEvB;IAED,IAAI,mBAAmB,WAItB;IAED,IAAI,WAAW,WAgBd;IAEM,QAAQ,UAAQ;gBAEX,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB;IAMvC,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAiBhD,WAAW;IAIX,WAAW;IAIX,cAAc,CAAC,IAAI,EAAE,MAAM;IA6B3B,aAAa,CAAC,KAAK,EAAE,MAAM;IAe3B,aAAa,CAAC,KAAK,EAAE,MAAM;IAe3B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE;IAkB7B,MAAM,CAAC,KAAK,EAAE,MAAM;IAI3B;;;;OAIG;IACU,SAAS,CAAC,KAAK,SAAI,EAAE,UAAU,CAAC,EAAE,eAAe;IA+C9D;;;;OAIG;IACU,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;IAwEzD;;;OAGG;IACU,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE;IAcvC;;;OAGG;IACU,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE;IAiBvC;;;;OAIG;IACU,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM;IAgB7D;;;;OAIG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM;IAwBhE;;OAEG;IACU,SAAS;IAKtB;;;;;;OAMG;IACU,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAWtD,gBAAgB;IAmBvB;;;OAGG;IACU,mBAAmB,CAAC,KAAK,EAAE,MAAM;CAyEjD;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/index.d.ts new file mode 100644 index 0000000..3e94dde --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/index.d.ts @@ -0,0 +1,230 @@ +/// <reference types="node" /> +import { IChangeNodeOptions, IAnimOperation, EditorAnimationClipDump, IAniResultBase, IAniEditInfo } from '../../../../../@types/private'; +import { AnimationClip, Node, AnimationState } from 'cc'; +import { EventEmitter } from 'events'; +import { IAnimData } from './type-defines'; +import { ISceneEvents } from '../scene-events-interface'; +declare enum PlayState { + STOP = 0, + PLAYING = 1, + PAUSE = 2 +} +export declare class AnimationManager extends EventEmitter implements ISceneEvents { + get curEditClipUuid(): string; + _lastSaveClipDump: EditorAnimationClipDump | null; + private _curEditRootNodeUuid; + private _curEditClipUuid; + private _curEditAnimClip; + private _curEditTime; + private _animUpdateInterval; + private _isDirty; + private _isInEdit; + private _curDefaultClip; + private _isUseBakedAnimation; + private _animationStateMap; + private _eventTarget; + private set curEditTime(value); + get curEditRootNodeUuid(): string; + set curEditRootNodeUuid(value: string); + set curDefaultClip(clip: AnimationClip | null); + constructor(); + init(): void; + setCurDefaultClipByUuid(uuid: string): void; + /** + * 打开/关闭某个节点的动画记录模式 + * @param {string} uuid 节点的 uuid + * @param {boolean} active 打开或关闭 + * @param {string} clipUuid 动画 uuid + */ + record(uuid: string, active: boolean, clipUuid?: string): Promise<boolean>; + storeData(): void; + restoreData(): void; + private _registerAnimStateEvents; + private _unregisterAnimStateEVents; + isDirty(): boolean; + saveCheck(state?: AnimationState | null): Promise<boolean>; + /** + * 动画编辑的一些数据初始化,包含初始化 state 事件绑定,状态重置等 TODO 命名有待优化 + * @param nodeUuid + * @param clipUuid + * @returns + */ + private registerAndFireEvents; + changeAnimNode(nodeUuid: string, clipUuid: string): Promise<boolean>; + save(): Promise<boolean>; + saveClip(clipUuid: string): Promise<boolean>; + isSkeletonClip(clipUuid: string | undefined): boolean; + needLock(nodeUuid: string, clipUuid: string): boolean; + /** + * 获取当前编辑动画数据 + */ + getEditAnimationInfo(): { + rootid: string; + clipid: string; + }; + getSerializedEditClip(): string | object | null; + /** + * 查询某个节点可以编辑的动画信息 + * @uuid 节点 uuid + */ + queryAnimationNodeEditInfo(uuid: string): IAniEditInfo; + /** + * 查询当前正在编辑动画的所有动画剪辑信息 + */ + queryRecordAniClips(): (AnimationClip | null)[] | undefined; + private queryRecordAniData; + private queryRecordAnimState; + queryRecordAnimData(): IAnimData; + queryAnimationClip(clipUuid: string, nodeUuid: string): AnimationClip | null | undefined; + /** + * 查询一个节点的动画数据 + * @param {*} uuid + */ + private queryNodeAnimationData; + private queryAnimComp; + queryAnimState(animClip: AnimationClip, useCache?: boolean): AnimationState | null | undefined; + /** + * 查询节点的所有clip信息 + * @param {string} nodeUuid Node的uuid + */ + queryAnimClipsInfo(nodeUuid: string): { + clipsMenu: import("../../../../../@types/private").IClipInfo[]; + defaultClip: string | undefined; + } | null; + /** + * 查询当前的播放状态 + */ + queryPlayState(): PlayState; + /** + * 设置当前编辑的Clip + * @param {*} clipUuid Clip的uuid + */ + setEditClip(clipUuid: string | undefined): Promise<boolean>; + /** + * 设置当前编辑的关键帧时间点 + * @param {number} time 时间 + */ + setCurEditTime(time: number): boolean; + changePlayState(newState: PlayState): void; + /** + * 播放一个节点上的指定动画 + * @param {string} clipUuid 需要播放的动画的uuid + */ + play(clipUuid: string): boolean; + /** + * 暂停一个节点上正在播放的动画 + */ + pause(): boolean; + /** + * 恢复一个节点上被暂停的动画 + */ + resume(): boolean; + /** + * 停止一个节点上所有动画 + */ + stop(): boolean; + /** + * 查询一个动画的 dump 数据,用于界面的显示 + * @param {string} nodeUuid 节点的uuid + * @param {string} clipUuid clip的uuid + */ + queryAnimationClipDump(nodeUuid: string, clipUuid: string): Promise<false | EditorAnimationClipDump | null>; + /** + * 用于undo,redo的dump数据 + * + * @param nodeUuid 节点uuid + * @param clipUuid clip的uuid + */ + dumpClip(nodeUuid: string, clipUuid: string): EditorAnimationClipDump | null; + /** + * 根据一个动画的 dump 数据,还原clip数据 + * @param {string} nodeUuid 节点的uuid + * @param {string} clipUuid clip的uuid + * @param {object} dumpData dump数据 + */ + restoreFromDump(nodeUuid: string, clipUuid: string, dumpData: any): boolean | Promise<boolean>; + /** + * 查询一个节点上可以编辑动画的祖先(目前唯一与动画组件绑定的接口,其他都是可选项) + * 如果上行查询的节点树上,没有任何一个带有动画的节点,则返回 null + * @param {string} uuid 节点的uuid + */ + queryAnimationRoot(uuid: string): string; + /** + * 查询可以编辑动画根节点的相关数据 + * 如果上行查询的节点树上,没有任何一个带有动画的节点,则返回 null + * @param {string} uuid 节点的uuid + */ + queryAnimationRootInfo(uuid: string): Promise<{ + root: string; + nodeTreeDump: any; + clipsMenu?: undefined; + defaultClip?: undefined; + clipDump?: undefined; + time?: undefined; + state?: undefined; + } | { + root: string; + nodeTreeDump: any; + clipsMenu: import("../../../../../@types/private").IClipInfo[]; + defaultClip: string | undefined; + clipDump: boolean | EditorAnimationClipDump | null; + time: number; + state: PlayState; + }>; + /** + * 查询一个节点上,可以编辑动画的属性数组 + * @param {string} uuid 节点的uuid + */ + queryProperties(uuid: string): any[]; + /** + * 查询播放的clip的当前所在时间 + * @param {*} clipUuid clip的uuid + */ + queryPlayingClipTime(clipUuid?: string | null): number; + /** + * 查询当前属性轨道在某一帧的值 + * @param {string} clipUuid clip的uuid + * @param {string} nodePath node的路径 + * @param {string} propKey 属性的key + * @param {number} frame 关键帧值 + */ + getPropValueAtFrame(clipUuid: string, nodePath: string, propKey: string, frame: number): Promise<any>; + /** + * 查询某个动画节点上所有属性在某一帧的值 + * @param clipUuid + * @param nodeUuid + * @param frame + */ + getAllPropValueAtFrame(clipUuid: string, nodePath: string, properties: string[], frame: number): Promise<any>; + /** + * 动画操作组合 + * @param operationList 操作的组合数组 + */ + operation(operationList: IAnimOperation[]): Promise<IAniResultBase>; + /** + * 监听节点变化 + * + * @param {Node} node 节点 + * @param propPath 属性路径,例如:_components.0.top + */ + onNodeChanged(node: Node, opts?: IChangeNodeOptions): Promise<void>; + private _onAnimPlay; + private _onAnimPause; + private _onAnimResume; + private _onAnimStopped; + private _onAnimPlayEnd; + update(): void; + onAssetDeleted(uuid: string): void; + onAssetRefreshed(uuid: string): void; + /** + * 移除某个 animationState 并做事件监听的移除以及组件销毁 + * @param clipUuid + * @returns + */ + private removeAnimationState; + private clearAnimationState; + onSceneOpened(scene: any): void; +} +declare const _default: AnimationManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/index.d.ts.map new file mode 100644 index 0000000..0588a8a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/type-defines.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/type-defines.d.ts new file mode 100644 index 0000000..927ab95 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/type-defines.d.ts @@ -0,0 +1,100 @@ +import { IDumpType, IKeyDumpData } from '../../../../../@types/private'; +import { animation, AnimationClip, Animation, Node, RealInterpolationMode, TangentWeightMode, RealKeyframeValue } from 'cc'; +declare type IValueProxyFactory = animation.IValueProxyFactory; +declare type CompressedEasingMethods = Record<number, any>; +declare type TargetModifier = animation.TargetPath; +interface IPropData { + combinedType?: IDumpType; + type?: IDumpType; + targetPaths?: animation.TrackPath; + valueAdapter?: IValueProxyFactory; + commonTarget?: any; +} +interface IPropDumpData { + key?: string; + category?: string; + type?: IDumpType; + displayName?: string; + name?: string; + comp?: string; + propData?: IPropData; + menuName?: string; +} +interface ICurveDumpData extends IPropDumpData { + nodePath: string; + keyframes: IKeyDumpData[] | null; + parentPropKey?: string; + partKeys?: string[]; +} +interface IEventDumpData { + frame: number; + func: string; + params: string[]; +} +interface IDumpClip { + name: string; + duration: number; + sample: number; + speed: number; + wrapMode: number; + curves: ICurveDumpData[]; + events: IEventDumpData[]; +} +interface IAnimData { + node?: Node; + animComp?: Animation | animation.AnimationController; + clips?: (AnimationClip | null)[]; + defaultClip: AnimationClip | null; +} +interface ISharedClipData { + sample: number; + duration: number; +} +interface IAnimationClipData { + sharedData: ISharedClipData; +} +interface ICurveData { + inTangent?: number; + inTangentWeight?: number; + outTangent?: number; + outTangentWeight?: number; + interpMode?: RealInterpolationMode; + tangentWeightMode?: TangentWeightMode; + tangentMode?: TangentMode; + easingMethod?: RealKeyframeValue['easingMethod']; + broken?: boolean; +} +interface IPropCustomData extends ICurveData { + newValue?: any; +} +interface IKeyframe extends ICurveData { + frame: number; + value: any; +} +interface ICurveInfo { + nodePath: string; + propKey: string; + combinedType?: IDumpType; + type?: IDumpType; + targetPaths: animation.TrackPath; + valueAdapter?: IValueProxyFactory; + displayName: string; + propName: string; + compName?: string; + partName?: string; + commonTarget?: any; +} +interface IPassDumpData { + name: string; + type: IDumpType; + passIndex: number; + uniformAdapter: animation.UniformProxyFactory; +} +declare enum TangentMode { + AUTO = 0, + USER = 1, + BREAK = 2, + NONE = 3 +} +export { IPropData, IPropDumpData, ICurveDumpData, IPassDumpData, IAnimData, IDumpClip, TargetModifier, IValueProxyFactory, IAnimationClipData, IPropCustomData, CompressedEasingMethods, IKeyframe, ISharedClipData, ICurveInfo, ICurveData, TangentMode, }; +//# sourceMappingURL=type-defines.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/type-defines.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/type-defines.d.ts.map new file mode 100644 index 0000000..03042ff --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/type-defines.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"type-defines.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation/type-defines.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,YAAY,EACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAkB,IAAI,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAE5I,aAAK,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;AACvD,aAAK,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnD,aAAK,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC;AAE3C,UAAU,SAAS;IACf,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,CAAC;CACtB;AAED,UAAU,aAAa;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,cAAe,SAAQ,aAAa;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,UAAU,cAAc;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,UAAU,SAAS;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,UAAU,SAAS;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,mBAAmB,CAAC;IACrD,KAAK,CAAC,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;IACjC,WAAW,EAAE,aAAa,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,eAAe;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,kBAAkB;IACxB,UAAU,EAAE,eAAe,CAAC;CAC/B;AAED,UAAU,UAAU;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,eAAgB,SAAQ,UAAU;IACxC,QAAQ,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,UAAU,SAAU,SAAQ,UAAU;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;CACd;AAED,UAAU,UAAU;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;CACtB;AAED,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,SAAS,CAAC,mBAAmB,CAAC;CACjD;AAED,aAAK,WAAW;IACZ,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,IAAI,IAAI;CACX;AAED,OAAO,EACH,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,SAAS,EACT,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,GACd,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/uniform-handler.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/uniform-handler.d.ts new file mode 100644 index 0000000..5a2624f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/uniform-handler.d.ts @@ -0,0 +1,30 @@ +import { IDumpType } from '../../../../../@types/private'; +import { animation, Material } from 'cc'; +import { IPassDumpData, IPropData } from './type-defines'; +declare class UniformHandler { + isUniformCurve(valueAdapter?: animation.IValueProxyFactory): boolean; + getValueToArrayIndexMapByType(type?: string): any; + getArrayIndexToValuePartMapByType(type?: string): any; + getUniformNameData(passIndex: number, uniformName: string): { + key: string; + displayName: string; + }; + /** + * 获得一个Uniform的dump数据 + * @param {*} pass + * @param {*} uniformName + */ + getDumpTypeOfUniform(pass: any, uniformName: string): IDumpType; + getUniformDumpData(material: Material, valueAdapter: animation.UniformProxyFactory): { + displayName: string; + key: string; + type: IDumpType | undefined; + }; + getAnimablePropsFromMaterial(material: Material): IPassDumpData[] | null; + getDefaultValue(type: string): unknown; + getCurrentValue(material: Material, valueAdapter: animation.UniformProxyFactory, propData: IPropData): Promise<any>; + colorFloatToInt(values: number[]): number[]; +} +declare const uniformHandler: UniformHandler; +export { uniformHandler }; +//# sourceMappingURL=uniform-handler.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/uniform-handler.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/uniform-handler.d.ts.map new file mode 100644 index 0000000..ceff6af --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/uniform-handler.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uniform-handler.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation/uniform-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAwC,QAAQ,EAAuB,MAAM,IAAI,CAAC;AAIpG,OAAO,EAAc,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoDtE,cAAM,cAAc;IACT,cAAc,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,kBAAkB;IAQ1D,6BAA6B,CAAC,IAAI,CAAC,EAAE,MAAM;IAQ3C,iCAAiC,CAAC,IAAI,CAAC,EAAE,MAAM;IAO/C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;;;;IAOhE;;;;OAIG;IACI,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM;IAqBnD,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,mBAAmB;;;;;IAgBlF,4BAA4B,CAAC,QAAQ,EAAE,QAAQ;IA6B/C,eAAe,CAAC,IAAI,EAAE,MAAM;IAsBtB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,mBAAmB,EAAE,QAAQ,EAAE,SAAS;IAsC1G,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE;CAQ1C;AAED,QAAA,MAAM,cAAc,gBAAuB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/utils.d.ts new file mode 100644 index 0000000..9438f9a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/utils.d.ts @@ -0,0 +1,121 @@ +import { IDumpType, IKeyDumpData, IPlayableInfo, IEmbeddedPlayers, IClipInfo } from '../../../../../@types/private'; +import { animation, AnimationClip, Component, Node, AnimationState } from 'cc'; +import { IAnimData, ICurveInfo, IPropCustomData, IPropData, IPropDumpData, IKeyframe, ICurveData } from './type-defines'; +import { EmbeddedPlayable } from 'cc/editor/embedded-player'; +declare const allowModifyCurveType: string[]; +declare function isHierarchyPath(path: any): boolean; +declare class AnimationUtil { + cloneCCClass(ccKlassObj: any): unknown; + getNodePathFromAnimRoot(rootNode: Node, node: Node): string | null; + getCustomModifierData(modifier: any): any; + decodeClipsMenu(clips: (AnimationClip | null)[]): IClipInfo[]; + /** + * 获得属性的一些dump数据 + * @param propOwnerObject 属性所属于的Object + * @param propObject 属性,由于有数组的关系,所以propObject不一定等于propOwnerObject[propName] + * @param propName 属性名字 + * @param valueAdapter 属性的适配器 + */ + getPropDumpData(propOwnerObject: any, propObject: any, propName: string, valueAdapter: animation.IValueProxyFactory | undefined): IPropDumpData; + dumpKeyframeData(keyframeData: IKeyframe[]): IKeyDumpData[]; + getKeyframeDataFromDump(dumpKeys: IKeyDumpData[]): Promise<IKeyframe[]>; + getPartsOfType(type?: string): any; + createPropertyCurve(curveInfo: ICurveInfo, keys: number[][], sample: number, keyframeData: IKeyframe[]): any; + getNodePath(targetPaths: animation.TrackPath, commonTarget?: any): string; + generateHierarchyPath(nodePath: string): animation.TrackPath | null; + /** + * 从路径数组中解析中属性所需的各种信息 + * @param modifiers 路径数组 + * @param rootNode 动画根节点 + */ + getPropInfo(modifiers: animation.TrackPath, rootNode?: Node): { + nodePath: string; + propPath: string; + propKey: string; + compName: string | undefined; + propName: string; + displayName: string; + propObject: any; + propOwnerObject: Node | undefined; + }; + getCurveInfoByTrack(node: Node, track: animation.Track): ICurveInfo; + getTypeByTrack(track: animation.Track): IDumpType; + copyClip(dstClip: AnimationClip, srcClip: AnimationClip): void; + /** + * 查询当前动画的事件数组 + * @param {object} clip clip 数据 + */ + queryEvents(clip: AnimationClip): AnimationClip.IEvent[] | null; + isObject(propObject: any): boolean; + private isExcludeType; + /** + * + * @param {*} compTypeName 组件类型名 + * @param {*} propName 属性名 + * @param {*} propType 属性类型 + * @param {*} propObject 属性值、Object + * @param {*} propModifiers 属性路径 + * @param {*} parentTypes 一层层下来的类型集合,防止循环引用导致的死循环 + */ + handleAnimableProp(compTypeName: string, propName: string, propType: string, propObject: any, propModifiers: animation.TrackPath, parentTypes: string[]): IPropDumpData[]; + generatePropDumpData(compTypeName: string, propName: string, propModifiers: animation.TrackPath): IPropDumpData; + handlePrimitiveProp(compTypeName: string, propName: string, propType: string, propModifiers: animation.TrackPath): IPropDumpData; + handleObjectProp(compTypeName: string, propName: string, propType: string, propObject: any, propModifiers: animation.TrackPath, parentTypes: string[]): IPropDumpData[] | null; + handleArrayProp(compTypeName: string, propName: string, propType: string, propObject: any, propModifiers: animation.TrackPath, parentTypes: string[]): IPropDumpData[]; + getCCClassAnimablePropType(object: any, prop: string): any; + /** + * 从一个属性获得可以用于制作动画的数据 + * @param {*} comp + * @param {*} property + */ + getAnimablePropsFromProperty(comp: Component, property: string): IPropDumpData[] | null; + /** + * 从 component 内获取可以用于动画制作的属性列表 + * @param {*} component + */ + getAnimablePropsFromComponent(component: Component): IPropDumpData[]; + /** + * 从一个 node 内获取出可以用于动画制作的属性列表 + * @param {*} node + * @param {*} isChild + */ + getAnimableProperties(node: Node, isChild: boolean): IPropDumpData[] | null; + getClipName(clipUuid: string, clips: (AnimationClip | null)[]): null; + /** + * 查询一个节点的动画数据 + * @param {*} uuid + * @param {*} clipUuid + */ + queryNodeAnimationData(uuid?: string | Node, clipUuid?: string): IAnimData; + getDefaultValue(type?: string): unknown; + /** + * 从轨道信息和自定义信息中获取一个数值 + * @param {*} node + * @param {*} clipData + * @param {*} propData + * @param {*} customData + */ + getValueFrom(node: Node, propData: IPropData, customData?: IPropCustomData | null): Promise<any>; + /** + * 加载一个json格式的clip, hack了asset-library的loadJson + * @param uuid clip的uuid + * @param json clip的json内容 + * @param callback 回调函数 + */ + loadJsonWithUuid(uuid: string, json: any, callback: (error: any, asset: any) => void): void; + copyCurveData(srcData: ICurveData, dstData: ICurveData): void; + isNumber(obj: any): boolean; + getTrackTypeBy(typeName: string): "color" | "size" | "vec2" | "vec3" | "vec4" | null; + /** + * 类型是否支持曲线编辑 + * @param type + * @returns + */ + isTypeSupportCurve(type: string | undefined): boolean; + calcEmbeddedPlayerKey(EmbeddedPlayerDump: IEmbeddedPlayers): string; + initAninState(state: AnimationState, node: Node): void; + getPlayableInfo(playable: EmbeddedPlayable | undefined): IPlayableInfo | null; +} +declare const utils: AnimationUtil; +export { utils, isHierarchyPath, allowModifyCurveType }; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/utils.d.ts.map new file mode 100644 index 0000000..b6c26b6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/animation/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/animation/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-graph-variant.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-graph-variant.d.ts new file mode 100644 index 0000000..8f2fe3a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-graph-variant.d.ts @@ -0,0 +1,14 @@ +import EditComponentAsset from './edit-component-asset'; +declare class EditAnimationGraphVariant extends EditComponentAsset { + overrides: Record<string, string>; + invalidEntries: Record<string, string>; + resetOverrides(): void; + entryOverrides(): Record<string, string>; + cacheComponent(component: any): void; + encodeComponent(): any; + updateComponent(dump: any): Promise<any>; + applyComponent(): Promise<any>; +} +declare const _default: EditAnimationGraphVariant; +export default _default; +//# sourceMappingURL=animation-graph-variant.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-graph-variant.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-graph-variant.d.ts.map new file mode 100644 index 0000000..a9e6e2f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-graph-variant.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"animation-graph-variant.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/animation-graph-variant.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AAIxD,cAAM,yBAA0B,SAAQ,kBAAkB;IACtD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAEvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE5C,cAAc;IAyBd,cAAc;IAWd,cAAc,CAAC,SAAS,EAAE,GAAG;IAK7B,eAAe;IAUT,eAAe,CAAC,IAAI,EAAE,GAAG;IAoBzB,cAAc;CAoBvB;;AAED,wBAA+C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-mask.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-mask.d.ts new file mode 100644 index 0000000..ec27508 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-mask.d.ts @@ -0,0 +1,11 @@ +import EditComponentAsset from './edit-component-asset'; +declare class EditAnimationMask extends EditComponentAsset { + importSkeleton(prefabUuid: string): Promise<any>; + /** + * 清空现有节点 + */ + clearNodes(): any; +} +declare const _default: EditAnimationMask; +export default _default; +//# sourceMappingURL=animation-mask.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-mask.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-mask.d.ts.map new file mode 100644 index 0000000..41dd54c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/animation-mask.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"animation-mask.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/animation-mask.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AAIxD,cAAM,iBAAkB,SAAQ,kBAAkB;IACxC,cAAc,CAAC,UAAU,EAAE,MAAM;IA2BvC;;OAEG;IACH,UAAU;CAKb;;AAED,wBAAuC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/asset-watcher.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/asset-watcher.d.ts new file mode 100644 index 0000000..93b6a71 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/asset-watcher.d.ts @@ -0,0 +1,29 @@ +import { Asset } from 'cc'; +import { CallbacksInvoker } from '../../../utils/callbacks-invoker'; +declare module 'cc' { + interface AssetManager { + assetListener: CallbacksInvoker; + } +} +declare class AssetUpdater { + lockNum: number; + timer: any; + lock(): void; + unlock(): void; + private update; + queue: Map<string, Asset | null>; + add(uuid: string, asset: Asset | null): void; + remove(uuid: string): void; +} +declare class AssetWatcherManager { + updater: AssetUpdater; + initHandle(obj: any): void; + startWatch(obj: any): void; + stopWatch(obj: any): void; + protected isTextureCubeSubImageAsset(uuid: string): boolean; + onAssetChanged(uuid: string): Promise<void>; + onAssetDeleted(uuid: string, url: any): void; +} +declare const assetWatcherManager: AssetWatcherManager; +export { assetWatcherManager }; +//# sourceMappingURL=asset-watcher.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/asset-watcher.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/asset-watcher.d.ts.map new file mode 100644 index 0000000..e6fc33b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/asset-watcher.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"asset-watcher.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/asset-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqF,MAAM,IAAI,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAUpE,OAAO,QAAQ,IAAI,CAAC;IAChB,UAAiB,YAAY;QACzB,aAAa,EAAE,gBAAgB,CAAC;KACnC;CAEJ;AAkYD,cAAM,YAAY;IAEd,OAAO,SAAK;IACZ,KAAK,EAAE,GAAG,CAAQ;IAElB,IAAI;IAIJ,MAAM;IASN,OAAO,CAAC,MAAM;IAcd,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,CAAa;IAE7C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAGrC,MAAM,CAAC,IAAI,EAAE,MAAM;CAItB;AAED,cAAM,mBAAmB;IACrB,OAAO,EAAE,YAAY,CAAsB;IAEpC,UAAU,CAAC,GAAG,EAAE,GAAG;IAUnB,UAAU,CAAC,GAAG,EAAE,GAAG;IAcnB,SAAS,CAAC,GAAG,EAAE,GAAG;IASzB,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM;IAQpC,cAAc,CAAC,IAAI,EAAE,MAAM;IAgDjC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG;CAS/C;AAED,QAAA,MAAM,mBAAmB,qBAA4B,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/edit-component-asset.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/edit-component-asset.d.ts new file mode 100644 index 0000000..cf1717a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/edit-component-asset.d.ts @@ -0,0 +1,34 @@ +declare class EditComponentAsset { + component: any; + /** + * 修改属性 + * @param prop 属性 + * @param name 属性名称 + */ + modifyProp(prop: any, name: string): void; + /** + * 序列化出 inspector 面板可用的数据 + * @param component 组件 + */ + encodeComponent(component: any): any; + /** + * 缓存当前编辑的组件 + * @param component 组件 + */ + cacheComponent(component: any): void; + /** + * 获取当前组件 + */ + getComponent(): any; + /** + * inspector 面板发起修改后在这里更新数据 + * 这里不用 import dumpDecode from '../../../../utils/dump/decode'; 方法 + * 是因为 node dump 数据是基于不可变类型设计的 + * 而 asset dump 数据存在可变类型,想要还原数据必须对 dumpDecode 进行改造 + * 为避免影响到 node dump 相关机制,暂时独立出来下面的 setValue 机制 + * @param dump 数据 + */ + updateComponent(dump: any): Promise<any>; +} +export default EditComponentAsset; +//# sourceMappingURL=edit-component-asset.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/edit-component-asset.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/edit-component-asset.d.ts.map new file mode 100644 index 0000000..4ffd47e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/edit-component-asset.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"edit-component-asset.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/edit-component-asset.ts"],"names":[],"mappings":"AAOA,cAAM,kBAAkB;IACpB,SAAS,EAAE,GAAG,CAAQ;IAEtB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;IAYlC;;;OAGG;IACH,eAAe,CAAC,SAAS,EAAE,GAAG;IA6B9B;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,GAAG;IAI7B;;OAEG;IACH,YAAY;IAIZ;;;;;;;OAOG;IACG,eAAe,CAAC,IAAI,EAAE,GAAG;CA8GlC;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/index.d.ts new file mode 100644 index 0000000..01e1990 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/index.d.ts @@ -0,0 +1,153 @@ +/// <reference types="node" /> +import { Node, Component } from 'cc'; +import { EventEmitter } from 'events'; +import { ISceneEvents } from '../scene-events-interface'; +import { AssetInfo, IAssetMeta, IDragEvent } from '../../../../../../../builtin/scene/@types/private'; +export declare class AssetManager extends EventEmitter implements ISceneEvents { + init(): void; + onScriptExecutedEnd(): void; + removeAllAssetListeners(): void; + onSceneOpened(): void; + onNodeChanged(node: Node): void; + onComponentAdded(comp: Component): void; + onComponentRemoved(comp: Component): void; + /** + * 返回包含所有 Effect 的对象 + * @returns {{}} + */ + queryAllEffects(): Record<string, any>; + /** + * 根据 effectName 为 inspector 构建指定 Effect 数据 + * @param {string} effectName + * @returns {{props: any[], defines: any[]}} + */ + queryEffect(effectName: string): {}; + /** + * 传入 material 的 uuid,返回具体的 material 数据 + * @param {*} uuid + * @param {*} name + */ + queryMaterial(uuid: string): Promise<{ + effect: any; + technique: any; + data: { + name: string | undefined; + passes: { + switch: { + name: string | undefined; + value: boolean; + }; + propertyIndex: { + value: number; + }; + props: any[]; + defines: any[]; + states: import("../../../../../@types/public").IProperty; + }[]; + }[]; + } | null>; + /** + * 传入一个发出的 material 数据以及对应的 uuid + * 将所有的数据应用到 uuid 对应的的 material 资源上 + * @param {*} uuid + * @param {*} data + */ + applyMaterial(uuid: string, data: any): Promise<void>; + /** + * 传入一个发出的 material 数据以及对应的 uuid + * 将所有的数据应用到 uuid 对应的 material 运行时数据上 + * @param {*} uuid + * @param {*} data + */ + previewMaterial(uuid: string, data: any, opts?: { + emit?: boolean; + }): Promise<void>; + /** + * 传入 physics-material 的 uuid,返回具体的 physics-material 数据 + * @param {*} uuid + */ + queryPhysicsMaterial(uuid: string): Promise<any>; + /** + * 传入 animation-graph-variant 的 uuid,返回具体的 physics-material 数据 + * @param {*} uuid + */ + queryAnimationGraphVariant(uuid: string): Promise<any>; + /** + * 传入 animation-mask 的 uuid,返回具体的 animation-mask 数据 + * @param {*} uuid + */ + queryAnimationMask(uuid: string): Promise<any>; + /** + * 修改 physics-material + * @param {*} dump 正在 inspector 编辑的数据对象 + */ + changePhysicsMaterial(dump: any): Promise<any>; + /** + * 保存 physics-material + * @param {*} uuid + * @param {*} dump 正在 inspector 编辑的数据对象 + */ + applyPhysicsMaterial(uuid: string): Promise<void>; + /** + * 修改 animation-graph-variant + * @param {*} dump 正在 inspector 编辑的数据对象 + */ + changeAnimationGraphVariant(dump: any): Promise<any>; + /** + * 保存 animation-graph-variant + * @param {*} uuid + */ + applyAnimationGraphVariant(uuid: string): Promise<void>; + /** + * 修改 animation-mask + * @param {*} dump 正在 inspector 编辑的数据对象 + */ + changeAnimationMask(args: any): Promise<any>; + /** + * 保存 animation-mask + * @param {*} uuid + * @param {*} dump 正在 inspector 编辑的数据对象 + */ + applyAnimationMask(uuid: string): Promise<void>; + /** + * 保存 render-texture + * @param {*} uuid + * @param {*} userData meta 文件里的数据 + */ + applyRenderTexture(uuid: string, userData: any): Promise<void>; + onAssetChanged(uuid: string, assetInfo: AssetInfo, meta: IAssetMeta): void; + onAssetDeleted(uuid: string, info: AssetInfo): void; + /** + * 获取依赖的资源 + * @param uuid 资源uuid + * @param processedAssets 已经处理过的资源,防止死循环 + */ + private getAllReferenceAssets; + releaseAsset(assetUUID: string): void; + canDrop(type: string): boolean; + onDragOver(event: IDragEvent): void; + onDrop(event: IDragEvent): Promise<void>; + /** + * 传入 RenderPipeline 的 uuid + * 返回具体的数据 + */ + queryRenderPipeline(uuid: string): Promise<{ + name: string; + type: any; + value: any; + visible: boolean; + readonly: boolean; + optionalTypes: any; + } | null>; + changeRenderPipeline(dump: any): Promise<any>; + /** + * 传入一个发出的 render-pipeline 数据以及对应的 uuid + * 将所有的数据应用到 uuid 对应的的 .rpp 资源上 + * @param {*} uuid + * @param {*} dump {name, value} + */ + applyRenderPipeline(uuid: string): Promise<void>; +} +declare const _default: AssetManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/index.d.ts.map new file mode 100644 index 0000000..cb10f1a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAgB,IAAI,EAAE,SAAS,EAAiE,MAAM,IAAI,CAAC;AAElH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AActC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mDAAmD,CAAC;AAgBtG,qBAAa,YAAa,SAAQ,YAAa,YAAW,YAAY;IAC3D,IAAI;IAOX,mBAAmB;IAUnB,uBAAuB;IAIhB,aAAa;IAoBb,aAAa,CAAC,IAAI,EAAE,IAAI;IAOxB,gBAAgB,CAAC,IAAI,EAAE,SAAS;IAIhC,kBAAkB,CAAC,IAAI,EAAE,SAAS;IAIzC;;;OAGG;IACH,eAAe;IAIf;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM;IAI9B;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;IAIhC;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAK3C;;;;;OAKG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAC;IAItE;;;OAGG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM;IAkBvC;;;OAGG;IACG,0BAA0B,CAAC,IAAI,EAAE,MAAM;IAkB7C;;;OAGG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM;IAkBrC;;;OAGG;IACG,qBAAqB,CAAC,IAAI,EAAE,GAAG;IAIrC;;;;OAIG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM;IAQvC;;;OAGG;IACG,2BAA2B,CAAC,IAAI,EAAE,GAAG;IAI3C;;;OAGG;IACG,0BAA0B,CAAC,IAAI,EAAE,MAAM;IAY7C;;;OAGG;IACG,mBAAmB,CAAC,IAAI,EAAE,GAAG;IAUnC;;;;OAIG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM;IAQrC;;;;OAIG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAoBpD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU;IAKnE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IAK5C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA2BtB,YAAY,CAAC,SAAS,EAAE,MAAM;IAkBrC,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,UAAU,CAAC,KAAK,EAAE,UAAU;IA0CtB,MAAM,CAAC,KAAK,EAAE,UAAU;IA4H9B;;;OAGG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM;;;;;;;;IAiBhC,oBAAoB,CAAC,IAAI,EAAE,GAAG;IAIpC;;;;;OAKG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM;CASzC;;AAED,wBAAkC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/material.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/material.d.ts new file mode 100644 index 0000000..c8dc275 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/material.d.ts @@ -0,0 +1,80 @@ +import { EffectAsset } from 'cc'; +declare class MaterialAsset { + /** + * 返回包含所有 Effect 的对象 + * @returns {{}} + */ + queryAllEffects(): Record<string, any>; + /** + * 根据 effectName 为 inspector 构建指定 Effect 数据 + * @param {string} effectName + * @returns {{props: any[], defines: any[]}} + */ + queryEffect(effectName: string): {}; + /** + * 传入一个 EffectAsset 对象,将其整理成一个二维数组 + * 第一层: technique + * 第二层: pass + * @param {*} effect + */ + encodeEffect(effect: EffectAsset): { + name: string | undefined; + passes: { + switch: { + name: string | undefined; + value: boolean; + }; + propertyIndex: { + /** + * pass.propertyIndex 有可能是 undefined + * 当为 undefined 时,表示与当前 pass index 一致 + */ + value: number; + }; + props: any[]; + defines: any[]; + states: import("../../../../../@types/public").IProperty; + }[]; + }[]; + decodeMaterial(dump: any): Promise<string | object>; + /** + * 传入 material 的 uuid,返回具体的 material 数据 + * @param {*} uuid + * @param {*} name + */ + queryMaterial(uuid: string): Promise<{ + effect: any; + technique: any; + data: { + name: string | undefined; + passes: { + switch: { + name: string | undefined; + value: boolean; + }; + propertyIndex: { + /** + * pass.propertyIndex 有可能是 undefined + * 当为 undefined 时,表示与当前 pass index 一致 + */ + value: number; + }; + props: any[]; + defines: any[]; + states: import("../../../../../@types/public").IProperty; + }[]; + }[]; + } | null>; + /** + * 传入一个发出的 material 数据以及对应的 uuid + * 将所有的数据应用到 uuid 对应的 material 运行时数据上 + * @param {*} uuid + * @param {*} data + */ + previewMaterial(uuid: string, data: any, opts?: { + emit?: boolean; + }): Promise<void>; +} +declare const _default: MaterialAsset; +export default _default; +//# sourceMappingURL=material.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/material.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/material.d.ts.map new file mode 100644 index 0000000..04fec9c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/material.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/material.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqD,WAAW,EAAiD,MAAM,IAAI,CAAC;AA0cnI,cAAM,aAAa;IACf;;;OAGG;IACH,eAAe;IAmBf;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM;IAQ9B;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,WAAW;;;;;;;;gBA4HZ;;;mBAGG;;;;;;;;IAkBjB,cAAc,CAAC,IAAI,EAAE,GAAG;IA6H9B;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;oBAvJZ;;;uBAGG;;;;;;;;;IA4PvB;;;;;OAKG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CA2C3E;;AAED,wBAAmC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/physics-material.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/physics-material.d.ts new file mode 100644 index 0000000..b92c655 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/physics-material.d.ts @@ -0,0 +1,6 @@ +import EditComponentAsset from './edit-component-asset'; +declare class EditPhysicsMaterial extends EditComponentAsset { +} +declare const _default: EditPhysicsMaterial; +export default _default; +//# sourceMappingURL=physics-material.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/physics-material.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/physics-material.d.ts.map new file mode 100644 index 0000000..22d5dd9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/physics-material.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"physics-material.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/physics-material.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AAExD,cAAM,mBAAoB,SAAQ,kBAAkB;CAEnD;;AAED,wBAAyC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/render-pipeline.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/render-pipeline.d.ts new file mode 100644 index 0000000..bffe4e1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/render-pipeline.d.ts @@ -0,0 +1,38 @@ +import EditComponentAsset from './edit-component-asset'; +declare class EditRenderPipeline extends EditComponentAsset { + changeTypes: { + _flows: { + componentKey: string; + optionalTypes: never[]; + }; + _stages: { + componentKey: string; + optionalTypes: never[]; + }; + }; + /** + * 根据名称找到类 + * @param type + * type = 'pipeline' 返回 render pipeline script; + * type = 'flow' 返回 render flow script; + * type = 'stage' 返回 render stage script; + */ + queryComponents(type?: string | undefined): any; + /** + * 将修改后的 pipeline 数据应用到当前的运行时数据上 + */ + preview(): void; + modifyProp(prop: any, name?: string): void; + encodeComponent(component: any): { + name: string; + type: any; + value: any; + visible: boolean; + readonly: boolean; + optionalTypes: any; + }; + updateComponent(dump: any): Promise<any>; +} +declare const _default: EditRenderPipeline; +export default _default; +//# sourceMappingURL=render-pipeline.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/render-pipeline.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/render-pipeline.d.ts.map new file mode 100644 index 0000000..ef3010f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/render-pipeline.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/render-pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AAKxD,cAAM,kBAAmB,SAAQ,kBAAkB;IAC/C,WAAW;;;;;;;;;MAST;IAEF;;;;;;OAMG;IACI,eAAe,CAAC,IAAI,GAAE,MAAM,GAAG,SAAqB;IAoB3D;;OAEG;IACH,OAAO;IAUP,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM;IAiCnC,eAAe,CAAC,SAAS,EAAE,GAAG;;;;;;;;IAaxB,eAAe,CAAC,IAAI,EAAE,GAAG;CAWlC;;AAED,wBAAwC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/utils.d.ts new file mode 100644 index 0000000..79841ca --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/utils.d.ts @@ -0,0 +1,7 @@ +declare class AssetUtil { + get GFXToValueTypeMap(): any; + getDefaultValue(type: string, data?: any): any; +} +declare const _default: AssetUtil; +export default _default; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/utils.d.ts.map new file mode 100644 index 0000000..0983e6a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/asset/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/asset/utils.ts"],"names":[],"mappings":"AA4BA,cAAM,SAAS;IACX,IAAI,iBAAiB,QAEpB;IAED,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;CAgF3C;;AAED,wBAA+B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/camera-controller-2d.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/camera-controller-2d.d.ts new file mode 100644 index 0000000..e61479c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/camera-controller-2d.d.ts @@ -0,0 +1,61 @@ +import { ISceneKeyboardEvent, ISceneMouseEvent } from '../../../../../../@types/private'; +import CameraControllerBase from '../camera-controller-base'; +import Grid from '../grid'; +import { Camera, Vec3, Size, Color, Quat, ISizeLike } from 'cc'; +declare class CameraController2D extends CameraControllerBase { + private _size; + private _modeFSM; + private _idleMode; + private _panMode; + private _lineColor; + private _grid; + private _ruler; + isMoving(): boolean; + /** 2d 下滚轮的速度,这个速度会由用户配置 */ + protected _wheelSpeed: number; + protected _near: number; + protected _far: number; + get lineColor(): Color; + set lineColor(value: Color); + get grid(): Grid; + init(camera: Camera): void; + private _initMode; + _initRuler(): void; + updateRuler(): void; + _initGrid(): void; + updateGrid(): void; + set active(value: boolean); + _adjustToCenter(margin: number, contentBounds?: Size | null, immediate?: boolean): void; + adjustCamera(immediate?: boolean): void; + _updateGridData(positions: number[], colors: number[], lineColor: Color, lineEnd: number): void; + _updateOrthoHeight(scale: number): void; + focus(nodeUuids: string[] | null, position?: Vec3, rotation?: Quat, viewCenter?: Vec3, immediate?: boolean): void; + smoothScale(curScale: number, delta: number): number; + /** + * @method fitSize + * @param {number} srcWidth + * @param {number} srcHeight + * @param {number} destWidth + * @param {number} destHeight + * @return {number[]} - [width, height] + */ + fitSize(srcWidth: number, srcHeight: number, destWidth: number, destHeight: number): number[]; + getSizeScale(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): number; + scale(delta: number, offsetX: number, offsetY: number): void; + onMouseDown(event: ISceneMouseEvent): boolean; + onMouseMove(event: ISceneMouseEvent): boolean; + onMouseUp(event: ISceneMouseEvent): boolean; + onMouseWheel(event: ISceneMouseEvent): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + onUpdate(deltaTime: number): void; + onDesignResolutionChange(): void; + onResize(size?: ISizeLike): void; + refresh(): void; + zoomTo(scale: number, x?: number, y?: number): void; + zoomUp(): void; + zoomDown(): void; + zoomReset(): void; +} +export { CameraController2D }; +//# sourceMappingURL=camera-controller-2d.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/camera-controller-2d.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/camera-controller-2d.d.ts.map new file mode 100644 index 0000000..84a69f5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/camera-controller-2d.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"camera-controller-2d.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/camera/2d/camera-controller-2d.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,mBAAmB,EACnB,gBAAgB,EACnB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAG7D,OAAO,IAAI,MAAM,SAAS,CAAC;AAI3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAQ,IAAI,EAA0B,SAAS,EAA2B,MAAM,IAAI,CAAC;AAqBvH,cAAM,kBAAmB,SAAQ,oBAAoB;IACjD,OAAO,CAAC,KAAK,CAAa;IAE1B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAU;IACjB,QAAQ,IAAI,OAAO;IAG1B,2BAA2B;IAC3B,SAAS,CAAC,WAAW,SAAK;IAC1B,SAAS,CAAC,KAAK,SAAK;IACpB,SAAS,CAAC,IAAI,SAAS;IAEvB,IAAW,SAAS,IAIQ,KAAK,CAFhC;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,KAAK,EAEhC;IAED,IAAW,IAAI,SAEd;IAED,IAAI,CAAC,MAAM,EAAE,MAAM;IAWnB,OAAO,CAAC,SAAS;IAajB,UAAU;IAWV,WAAW;IAIX,SAAS;IAeT,UAAU;IAiBV,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAmBxB;IAED,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAE,IAAI,GAAG,IAAW,EAAE,SAAS,UAAQ;IA0CpF,YAAY,CAAC,SAAS,UAAO;IAqB7B,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IA2CxF,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAIhC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,UAAQ;IAuCxG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO3C;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IA0BlF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAQrF,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAarD,WAAW,CAAC,KAAK,EAAE,gBAAgB;IAUnC,WAAW,CAAC,KAAK,EAAE,gBAAgB;IAInC,SAAS,CAAC,KAAK,EAAE,gBAAgB;IASjC,YAAY,CAAC,KAAK,EAAE,gBAAgB;IAIpC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAUpC,OAAO,CAAC,KAAK,EAAE,mBAAmB;IAWlC,QAAQ,CAAC,SAAS,EAAE,MAAM;IAE1B,wBAAwB;IAIxB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS;IAUzB,OAAO;IAKP,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;IAc5C,MAAM;IASN,QAAQ;IASR,SAAS;CAGZ;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/idle-mode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/idle-mode.d.ts new file mode 100644 index 0000000..6be51ee --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/idle-mode.d.ts @@ -0,0 +1,7 @@ +import { ModeBase } from './mode-base'; +declare class IdleMode extends ModeBase { + enter(): Promise<void>; + exit(): Promise<void>; +} +export { IdleMode }; +//# sourceMappingURL=idle-mode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/idle-mode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/idle-mode.d.ts.map new file mode 100644 index 0000000..c83c1bf --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/idle-mode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"idle-mode.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/2d/mode/idle-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,cAAM,QAAS,SAAQ,QAAQ;IACd,KAAK;IAIL,IAAI;CACpB;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/mode-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/mode-base.d.ts new file mode 100644 index 0000000..691c1ce --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/mode-base.d.ts @@ -0,0 +1,23 @@ +import { ISceneMouseEvent, ISceneKeyboardEvent } from '../../../../../../../@types/private'; +import { IOperationMode } from '../../operation-mode-interface'; +import { CameraController2D } from '../camera-controller-2d'; +import { Quat, Vec3 } from 'cc'; +import { CameraMoveMode } from '../../utils'; +declare class ModeBase implements IOperationMode { + _cameraCtrl: CameraController2D; + modeName: CameraMoveMode; + protected _curRot: Quat; + protected _curPos: Vec3; + constructor(cameraCtrl: CameraController2D, modeName: CameraMoveMode); + enter(): Promise<void>; + exit(): Promise<void>; + onMouseDown(event: ISceneMouseEvent): boolean; + onMouseMove(event: ISceneMouseEvent): boolean; + onMouseUp(event: ISceneMouseEvent): boolean; + onMouseWheel(event: ISceneMouseEvent): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + onUpdate(deltaTime: number): void; +} +export { ModeBase }; +//# sourceMappingURL=mode-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/mode-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/mode-base.d.ts.map new file mode 100644 index 0000000..432cf84 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/mode-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mode-base.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/2d/mode/mode-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAM,QAAS,YAAW,cAAc;IACpC,WAAW,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IAEhC,SAAS,CAAC,OAAO,OAAc;IAC/B,SAAS,CAAC,OAAO,OAAc;gBACnB,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,cAAc;IAKvD,KAAK;IAEL,IAAI;IAEjB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAC7C,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAC7C,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAC3C,YAAY,CAAC,KAAK,EAAE,gBAAgB;IAEpC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IACpC,OAAO,CAAC,KAAK,EAAE,mBAAmB;IAElC,QAAQ,CAAC,SAAS,EAAE,MAAM;CAC7B;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/pan-mode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/pan-mode.d.ts new file mode 100644 index 0000000..b8cad0c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/pan-mode.d.ts @@ -0,0 +1,10 @@ +import { ISceneMouseEvent } from '../../../../../../../@types/private'; +import { ModeBase } from './mode-base'; +declare class PanMode extends ModeBase { + private _panningSpeed; + enter(): Promise<void>; + exit(): Promise<void>; + onMouseMove(event: ISceneMouseEvent): boolean; +} +export { PanMode }; +//# sourceMappingURL=pan-mode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/pan-mode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/pan-mode.d.ts.map new file mode 100644 index 0000000..4f0eb57 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/mode/pan-mode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pan-mode.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/2d/mode/pan-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EACnB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,cAAM,OAAQ,SAAQ,QAAQ;IAC1B,OAAO,CAAC,aAAa,CAAO;IAEf,KAAK;IAKL,IAAI;IAIjB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;CAShD;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/ruler-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/ruler-interface.d.ts new file mode 100644 index 0000000..14b8f16 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/ruler-interface.d.ts @@ -0,0 +1,9 @@ +import Grid from '../grid'; +interface IRuler { + show(isShow: boolean): void; + init(): void; + updateTicks(grid: Grid): void; + resize(width: number, height: number): void; +} +export { IRuler }; +//# sourceMappingURL=ruler-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/ruler-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/ruler-interface.d.ts.map new file mode 100644 index 0000000..84ca2aa --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/ruler-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ruler-interface.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/camera/2d/ruler-interface.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,UAAU,MAAM;IACZ,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,IAAI,CAAC;IACb,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/web/ruler.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/web/ruler.d.ts new file mode 100644 index 0000000..15c6e7d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/web/ruler.d.ts @@ -0,0 +1,18 @@ +import Grid from '../../grid'; +import { IRuler } from '../ruler-interface'; +declare class Ruler implements IRuler { + hRulerCanvas: HTMLCanvasElement; + vRulerCanvas: HTMLCanvasElement; + hRulerCtx: CanvasRenderingContext2D; + vRulerCtx: CanvasRenderingContext2D; + rulerLen: number; + isShow: boolean; + init(): void; + show(isShow: boolean): void; + updateTicks(grid: Grid): void; + valueToPixelH(x: number, grid: Grid): number; + valueToPixelV(y: number, grid: Grid): any; + resize(width: number, height: number): void; +} +export { Ruler }; +//# sourceMappingURL=ruler.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/web/ruler.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/web/ruler.d.ts.map new file mode 100644 index 0000000..1ad5f0b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/2d/web/ruler.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ruler.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/2d/web/ruler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,cAAM,KAAM,YAAW,MAAM;IACzB,YAAY,EAAG,iBAAiB,CAAC;IACjC,YAAY,EAAG,iBAAiB,CAAC;IACjC,SAAS,EAAG,wBAAwB,CAAC;IACrC,SAAS,EAAG,wBAAwB,CAAC;IACrC,QAAQ,SAAK;IACN,MAAM,UAAS;IAEf,IAAI;IAgBJ,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI3B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAsCpC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAInC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAKnC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAM9C;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/camera-controller-3d.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/camera-controller-3d.d.ts new file mode 100644 index 0000000..46a1e5f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/camera-controller-3d.d.ts @@ -0,0 +1,109 @@ +import { ISceneMouseEvent, ISceneKeyboardEvent } from '../../../../../../@types/private'; +import CameraControllerBase from '../camera-controller-base'; +import LinearTicks from '../grid/linear-ticks'; +import { CameraMoveMode } from '../utils'; +import { Camera, Color, Quat, Vec3 } from 'cc'; +declare enum ModeCommand { + ToIdle = "toIdle", + ToPan = "toPan", + ToOrbit = "toOrbit", + ToWander = "toWander" +} +export interface ICameraController3DEvent { + 'projection-changed': (projectType: Camera.ProjectionType) => void; + 'mode': (cameraMoveMode: CameraMoveMode) => void; + 'camera-move-mode': (cameraMoveMode: CameraMoveMode) => void; +} +declare class CameraController3D extends CameraControllerBase { + on<E extends keyof ICameraController3DEvent>(event: E, callback: ICameraController3DEvent[E]): this; + once<E extends keyof ICameraController3DEvent>(event: E, callback: ICameraController3DEvent[E]): this; + emit<E extends keyof ICameraController3DEvent>(event: E, ...parameters: Parameters<ICameraController3DEvent[E]>): boolean; + private v3a; + private v3b; + private v3c; + private v3d; + /** 3d 下滚轮的速度,这个速度会由用户配置 */ + protected _wheelSpeed: number; + protected _near: number; + protected _far: number; + /** 在投影为 ortho 时对滚轮数值乘上这个系数 */ + protected readonly _orthoScale = 0.1; + /** scalar 的最小值 */ + protected readonly _minScalar = 0.1; + private homePos; + private homeRot; + private _sceneViewCenter; + viewDist: number; + private forward; + private _curRot; + private _curEye; + private _lineColor; + private _modeFSM; + private _idleMode; + private _orbitMode; + private _panMode; + private _wanderMode; + isMoving(): boolean; + view?: number; + hTicks?: LinearTicks; + vTicks?: LinearTicks; + shiftKey?: boolean; + altKey?: boolean; + get lineColor(): Color; + set lineColor(value: Color); + get sceneViewCenter(): Vec3; + set sceneViewCenter(value: Vec3); + get wanderSpeed(): number; + set wanderSpeed(value: number); + get enableAcceleration(): boolean; + set enableAcceleration(value: boolean); + init(camera: Camera): void; + private _initMode; + private _initLinearTick; + set active(value: boolean); + changeMode(modeCommand: ModeCommand): void; + /** + * 还原数据 + */ + reset(): void; + /** + * 根据传入的视线长度来更新当前场景视图的中心点 + * @param {*} viewDist + */ + updateViewCenterByDist(viewDist: number): void; + /** + * 缩放 + * @param {*} delta + */ + scale(delta: number): void; + smoothScale(delta: number): number; + lastFocusNodeUUID: string[]; + /** + * 焦点转向某个节点 + * 如果传入 nodes,则转向这些节点 + * 如果未传入 nodes,则转向场景中心 + * @param {*} nodes + */ + focus(nodeUuids?: string[] | null, position?: Vec3, rotation?: Quat, viewCenter?: Vec3, immediate?: boolean): void; + alignNodeToSceneView(nodeUuids: string[]): void; + alignSceneViewToNode(nodeUuids: string[]): void; + onMouseDown(event: ISceneMouseEvent): boolean; + onMouseMove(event: ISceneMouseEvent): boolean; + onMouseUp(event: ISceneMouseEvent): boolean; + onMouseWheel(event: ISceneMouseEvent): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + onUpdate(deltaTime: number): void; + _updateGridData(positions: number[], colors: number[], lineColor: Color, lineEnd?: number | null): void; + updateGrid(): void; + refresh(): void; + rotateCameraToDir(dir: Vec3, rotateByViewDist: boolean): void; + getDepthSize(): number; + calcCameraPosInOrtho(): Vec3; + isOrtho(): boolean; + setOrthoHeight(newOrthoHeight: number): void; + changeProjection(): void; + onResize(): void; +} +export { CameraController3D }; +//# sourceMappingURL=camera-controller-3d.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/camera-controller-3d.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/camera-controller-3d.d.ts.map new file mode 100644 index 0000000..a9984e0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/camera-controller-3d.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"camera-controller-3d.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/camera/3d/camera-controller-3d.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/idle-mode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/idle-mode.d.ts new file mode 100644 index 0000000..6be51ee --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/idle-mode.d.ts @@ -0,0 +1,7 @@ +import { ModeBase } from './mode-base'; +declare class IdleMode extends ModeBase { + enter(): Promise<void>; + exit(): Promise<void>; +} +export { IdleMode }; +//# sourceMappingURL=idle-mode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/idle-mode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/idle-mode.d.ts.map new file mode 100644 index 0000000..a36c760 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/idle-mode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"idle-mode.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/3d/mode/idle-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,cAAM,QAAS,SAAQ,QAAQ;IACd,KAAK;IAIL,IAAI;CACpB;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/mode-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/mode-base.d.ts new file mode 100644 index 0000000..bfde3e6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/mode-base.d.ts @@ -0,0 +1,23 @@ +import { ISceneMouseEvent, ISceneKeyboardEvent } from '../../../../../../../@types/private'; +import { IOperationMode } from '../../operation-mode-interface'; +import { CameraController3D } from '../camera-controller-3d'; +import { Quat, Vec3 } from 'cc'; +import { CameraMoveMode } from '../../utils'; +declare class ModeBase implements IOperationMode { + _cameraCtrl: CameraController3D; + modeName: CameraMoveMode; + protected _curRot: Quat; + protected _curPos: Vec3; + constructor(cameraCtrl: CameraController3D, modeName: CameraMoveMode); + enter(): Promise<void>; + exit(): Promise<void>; + onMouseDown(event: ISceneMouseEvent): boolean; + onMouseMove(event: ISceneMouseEvent): boolean; + onMouseUp(event: ISceneMouseEvent): boolean; + onMouseWheel(event: ISceneMouseEvent): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + onUpdate(deltaTime: number): void; +} +export { ModeBase }; +//# sourceMappingURL=mode-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/mode-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/mode-base.d.ts.map new file mode 100644 index 0000000..aed2862 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/mode-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mode-base.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/3d/mode/mode-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAM,QAAS,YAAW,cAAc;IACpC,WAAW,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IAEhC,SAAS,CAAC,OAAO,OAAc;IAC/B,SAAS,CAAC,OAAO,OAAc;gBACnB,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,cAAc;IAKvD,KAAK;IAEL,IAAI;IAEjB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAC7C,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAC7C,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAC3C,YAAY,CAAC,KAAK,EAAE,gBAAgB;IAEpC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IACpC,OAAO,CAAC,KAAK,EAAE,mBAAmB;IAElC,QAAQ,CAAC,SAAS,EAAE,MAAM;CAC7B;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/orbit-mode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/orbit-mode.d.ts new file mode 100644 index 0000000..4fb195a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/orbit-mode.d.ts @@ -0,0 +1,12 @@ +import { ISceneMouseEvent } from '../../../../../../../@types/private'; +import { ModeBase } from './mode-base'; +declare class OrbitMode extends ModeBase { + private _rotateSpeed; + enter(): Promise<void>; + exit(): Promise<void>; + onMouseDown(event: ISceneMouseEvent): boolean; + onMouseMove(event: ISceneMouseEvent): boolean; + onMouseUp(event: ISceneMouseEvent): boolean; +} +export { OrbitMode }; +//# sourceMappingURL=orbit-mode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/orbit-mode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/orbit-mode.d.ts.map new file mode 100644 index 0000000..f5a95c0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/orbit-mode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"orbit-mode.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/3d/mode/orbit-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EACnB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,cAAM,SAAU,SAAQ,QAAQ;IAC5B,OAAO,CAAC,YAAY,CAAS;IAChB,KAAK;IAUL,IAAI;IAIjB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAI7C,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IA8B7C,SAAS,CAAC,KAAK,EAAE,gBAAgB;CAGpC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/pan-mode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/pan-mode.d.ts new file mode 100644 index 0000000..2aa6665 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/pan-mode.d.ts @@ -0,0 +1,12 @@ +import { ISceneMouseEvent } from '../../../../../../../@types/private'; +import { ModeBase } from './mode-base'; +declare class PanMode extends ModeBase { + private _right; + private _up; + private _panningSpeed; + enter(): Promise<void>; + exit(): Promise<void>; + onMouseMove(event: ISceneMouseEvent): boolean; +} +export { PanMode }; +//# sourceMappingURL=pan-mode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/pan-mode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/pan-mode.d.ts.map new file mode 100644 index 0000000..218a6a6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/pan-mode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pan-mode.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/3d/mode/pan-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EACnB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AASvC,cAAM,OAAQ,SAAQ,QAAQ;IAC1B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,aAAa,CAAO;IAEf,KAAK;IAYL,IAAI;IAKjB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;CAoBhD;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/wander-mode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/wander-mode.d.ts new file mode 100644 index 0000000..8d50418 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/wander-mode.d.ts @@ -0,0 +1,32 @@ +import { ISceneMouseEvent, ISceneKeyboardEvent } from '../../../../../../../@types/private'; +import { ModeBase } from './mode-base'; +declare class WanderMode extends ModeBase { + private _curMouseDX; + private _curMouseDY; + private _rotateSpeed; + private _movingSpeedShiftScale; + private _damping; + private _wanderSpeed; + private _flyAcceleration; + private _shiftKey; + private _velocity; + private _wanderKeyDown; + private _destPos; + private _destRot; + private _wanderSpeedTarget; + private _wanderAnim; + private _enableAcceleration; + get wanderSpeed(): number; + set wanderSpeed(value: number); + get enableAcceleration(): boolean; + set enableAcceleration(value: boolean); + enter(): Promise<void>; + exit(): Promise<void>; + onMouseMove(event: ISceneMouseEvent): boolean; + onMouseWheel(event: ISceneMouseEvent): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + onUpdate(deltaTime: number): void; +} +export { WanderMode }; +//# sourceMappingURL=wander-mode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/wander-mode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/wander-mode.d.ts.map new file mode 100644 index 0000000..d828ac3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/3d/mode/wander-mode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"wander-mode.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/3d/manager/camera/3d/mode/wander-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAevC,cAAM,UAAW,SAAQ,QAAQ;IAC7B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,sBAAsB,CAAM;IACpC,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,IAAW,WAAW,IAIQ,MAAM,CAFnC;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAEnC;IAED,IAAW,kBAAkB,YAE5B;IACD,IAAW,kBAAkB,CAAC,KAAK,SAAA,EAElC;IAEY,KAAK;IAeL,IAAI;IAQjB,WAAW,CAAC,KAAK,EAAE,gBAAgB;IAMnC,YAAY,CAAC,KAAK,EAAE,gBAAgB;IACpC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IA8BpC,OAAO,CAAC,KAAK,EAAE,mBAAmB;IA0ClC,QAAQ,CAAC,SAAS,EAAE,MAAM;CA2C7B;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/animate-value.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/animate-value.d.ts new file mode 100644 index 0000000..fdd13a1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/animate-value.d.ts @@ -0,0 +1,28 @@ +import { Vec3 } from 'cc'; +declare class AnimateValueBase<T> { + _start: T; + _target: T; + _speed: number; + defaultSpeed: number; + _isAnimating: boolean; + _lerpPos: number; + constructor(value: Readonly<T>); + get start(): T; + get target(): T; + set target(value: T); + get lerpPos(): number; + get value(): T; + set value(inValue: T); + get isAnimating(): boolean; + protected startAnimating(inStart: T, inTarget: T, animSpeed?: number): void; + protected stopAnimating(inValue: T): void; + update(dt: number): void; + protected getValue(): T; +} +export declare class AnimVec3 extends AnimateValueBase<Vec3> { + private _value; + constructor(value: Readonly<Vec3>); + protected getValue(): Vec3; +} +export {}; +//# sourceMappingURL=animate-value.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/animate-value.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/animate-value.d.ts.map new file mode 100644 index 0000000..31f475a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/animate-value.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"animate-value.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/camera/animate-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,IAAI,CAAC;AAGhC,cAAM,gBAAgB,CAAC,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,SAAK;IACJ,YAAY,SAAK;IACxB,YAAY,UAAS;IACrB,QAAQ,SAAK;gBAED,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAK9B,IAAW,KAAK,MAEf;IAED,IAAW,MAAM,IAIQ,CAAC,CAFzB;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,CAAC,EAIzB;IAED,IAAW,OAAO,WAIjB;IAED,IAAW,KAAK,MAMf;IAED,IAAW,KAAK,CAAC,OAAO,GAAA,EAEvB;IAED,IAAW,WAAW,YAErB;IAED,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,GAAE,MAA0B;IASvF,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAO3B,MAAM,CAAC,EAAE,EAAE,MAAM;IAYxB,SAAS,CAAC,QAAQ,IAAI,CAAC;CAG1B;AAED,qBAAa,QAAS,SAAQ,gBAAgB,CAAC,IAAI,CAAC;IAChD,OAAO,CAAC,MAAM,CAAoB;gBAEf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IAIxC,SAAS,CAAC,QAAQ,IAAI,IAAI;CAI7B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/camera-controller-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/camera-controller-base.d.ts new file mode 100644 index 0000000..a05496c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/camera-controller-base.d.ts @@ -0,0 +1,49 @@ +/// <reference types="node" /> +import { Node, Camera, Vec3, Quat, MeshRenderer, ISizeLike } from 'cc'; +import { EventEmitter } from 'events'; +import { CameraMoveMode } from './utils'; +declare abstract class CameraControllerBase extends EventEmitter { + protected _camera: Camera; + protected camera_move_mode: CameraMoveMode; + protected _gridMeshComp: MeshRenderer; + protected _gridNode: Node; + node: Node; + protected _isGridVisible: boolean; + protected _near: number; + protected _far: number; + protected _wheelSpeed: number; + /** 所有滚轮事件将会乘上这个系数 */ + protected _wheelBaseScale: number; + get near(): number; + set near(value: number); + get far(): number; + set far(value: number); + get wheelSpeed(): number; + set wheelSpeed(value: number); + init(camera: Camera): void; + focus(nodes: string[], position?: Vec3, rotation?: Quat, viewCenter?: Vec3, immediate?: boolean): void; + alignNodeToSceneView(nodes: string[]): void; + alignSceneViewToNode(nodes: string[]): void; + abstract isMoving(): boolean; + onMouseDown(event: any): void; + onMouseMove(event: any): void; + onMouseUp(event: any): void; + onMouseWheel(event: any): void; + onKeyDown(event: any): void; + onKeyUp(event: any): void; + onResize(size: ISizeLike): void; + onUpdate(deltaTime: number): void; + onDesignResolutionChange(): void; + refresh(): void; + updateGrid(): void; + showGrid(visible: boolean): void; + set isGridVisible(value: boolean); + get isGridVisible(): boolean; + rotateCameraToDir(dir: Vec3, rotateByViewDist: boolean): void; + changeProjection(): void; + zoomUp(): void; + zoomDown(): void; + zoomReset(): void; +} +export default CameraControllerBase; +//# sourceMappingURL=camera-controller-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/camera-controller-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/camera-controller-base.d.ts.map new file mode 100644 index 0000000..f527128 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/camera-controller-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"camera-controller-base.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/camera/camera-controller-base.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,uBAAe,oBAAqB,SAAQ,YAAY;IACpD,SAAS,CAAC,OAAO,EAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,gBAAgB,iBAAuB;IAEjD,SAAS,CAAC,aAAa,EAAG,YAAY,CAAC;IACvC,SAAS,CAAC,SAAS,EAAG,IAAI,CAAC;IACpB,IAAI,EAAG,IAAI,CAAC;IAEnB,SAAS,CAAC,cAAc,UAAQ;IAGhC,SAAS,CAAC,KAAK,SAAO;IACtB,SAAS,CAAC,IAAI,SAAS;IAGvB,SAAS,CAAC,WAAW,SAAK;IAC1B,qBAAqB;IACrB,SAAS,CAAC,eAAe,SAAU;IACnC,IAAW,IAAI,IAAI,MAAM,CAExB;IACD,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAE5B;IAED,IAAW,GAAG,IAAI,MAAM,CAEvB;IACD,IAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAE3B;IAED,IAAW,UAAU,IAIQ,MAAM,CAFlC;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,MAAM,EAElC;IAED,IAAI,CAAC,MAAM,EAAE,MAAM;IAKnB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,UAAQ;IAE7F,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE;IACpC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE;IACpC,QAAQ,CAAC,QAAQ,IAAI,OAAO;IAC5B,WAAW,CAAC,KAAK,EAAE,GAAG;IAEtB,WAAW,CAAC,KAAK,EAAE,GAAG;IAEtB,SAAS,CAAC,KAAK,EAAE,GAAG;IAEpB,YAAY,CAAC,KAAK,EAAE,GAAG;IAEvB,SAAS,CAAC,KAAK,EAAE,GAAG;IAEpB,OAAO,CAAC,KAAK,EAAE,GAAG;IAElB,QAAQ,CAAC,IAAI,EAAE,SAAS;IAExB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAE1B,wBAAwB;IAExB,OAAO;IAEP,UAAU;IAEV,QAAQ,CAAC,OAAO,EAAE,OAAO;IAWzB,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAG/B;IAED,IAAI,aAAa,IALQ,OAAO,CAO/B;IAED,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO;IACtD,gBAAgB;IAEhB,MAAM;IACN,QAAQ;IACR,SAAS;CACZ;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/editor-camera-components.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/editor-camera-components.d.ts new file mode 100644 index 0000000..7277510 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/editor-camera-components.d.ts @@ -0,0 +1,29 @@ +import { Camera, Color, gfx, Rect } from 'cc'; +export default class EditorCameraComponent extends Camera { + private _uiEditorGizmoCamera; + set projection(val: number); + get projection(): number; + set fov(val: number); + get fov(): number; + set orthoHeight(val: number); + get orthoHeight(): number; + set near(val: number); + get near(): number; + set far(val: number); + get far(): number; + set clearColor(val: Color); + get clearColor(): Color; + set clearDepth(val: number); + get clearDepth(): number; + set clearStencil(val: number); + get clearStencil(): number; + set clearFlags(val: gfx.ClearFlags); + set rect(val: Rect); + set screenScale(val: number); + onLoad(): void; + onEnable(): void; + onDisable(): void; + onDestroy(): void; + _createCamera(): void; +} +//# sourceMappingURL=editor-camera-components.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/editor-camera-components.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/editor-camera-components.d.ts.map new file mode 100644 index 0000000..16a70b9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/editor-camera-components.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"editor-camera-components.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/camera/editor-camera-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAU,IAAI,EAAY,MAAM,IAAI,CAAC;AAIhE,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,MAAM;IACrD,OAAO,CAAC,oBAAoB,CAAsC;IAClE,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,EAKzB;IAED,IAAI,UAAU,IAPM,MAAM,CASzB;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAKlB;IAED,IAAI,GAAG,IAPM,MAAM,CASlB;IAED,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAM1B;IAED,IAAI,WAAW,IARM,MAAM,CAU1B;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAKnB;IAED,IAAI,IAAI,IAPM,MAAM,CASnB;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAKlB;IAED,IAAI,GAAG,IAPM,MAAM,CASlB;IAED,IAAI,UAAU,CAAC,GAAG,EAAE,KAAK,EAKxB;IAED,IAAI,UAAU,IAPM,KAAK,CASxB;IAED,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,EAKzB;IAED,IAAI,UAAU,IAPM,MAAM,CASzB;IAED,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,EAK3B;IAED,IAAI,YAAY,IAPM,MAAM,CAS3B;IAED,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,EAKjC;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAKjB;IAED,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAK1B;IAEM,MAAM;IASN,QAAQ;IAUR,SAAS;IAQT,SAAS;IAUT,aAAa;CAoCvB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/index.d.ts new file mode 100644 index 0000000..5f476dd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/index.d.ts @@ -0,0 +1,42 @@ +import LinearTicks from './linear-ticks'; +declare class Grid { + private _canvasWidth; + private _canvasHeight; + hTicks: LinearTicks | null; + xAxisScale: number; + xAxisOffset: number; + xAnchor: number; + vTicks: LinearTicks | null; + yAxisScale: number; + yAxisOffset: number; + yAnchor: number; + private _xAnchorOffset; + private _yAnchorOffset; + pixelToValueH: Function | null; + valueToPixelH: Function | null; + pixelToValueV: Function | null; + valueToPixelV: Function | null; + xDirection: number; + yDirection: number; + xMinRange: number | null; + xMaxRange: number | null; + yMinRange: number | null; + yMaxRange: number | null; + constructor(canvasWidth: number, canvasHeight: number); + setAnchor(x: number, y: number): void; + setScaleH(lods: number[], minScale: number, maxScale: number): void; + setMappingH(minValue: number, maxValue: number, pixelRange: number): void; + setScaleV(lods: number[], minScale: number, maxScale: number): void; + setMappingV(minValue: number, maxValue: number, pixelRange: number): void; + pan(deltaPixelX: number, deltaPixelY: number): void; + panX(deltaPixelX: number): void; + panY(deltaPixelY: number): void; + xAxisScaleAt(pixelX: number, scale: number): void; + yAxisScaleAt(pixelY: number, scale: number): void; + xAxisSync(x: number, scaleX: number): void; + yAxisSync(y: number, scaleY: number): void; + resize(w: number, h: number): void; + updateRange(): void; +} +export default Grid; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/index.d.ts.map new file mode 100644 index 0000000..1712e2b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/camera/grid/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAoBzC,cAAM,IAAI;IACN,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAEnB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;IAClC,UAAU,SAAO;IACjB,WAAW,SAAO;IAClB,OAAO,SAAO;IAEd,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;IAClC,UAAU,SAAO;IACjB,WAAW,SAAO;IAClB,OAAO,SAAO;IAErB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAE3B,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACtC,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACtC,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACtC,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAE/B,UAAU,SAAK;IACf,UAAU,SAAK;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAE3B,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAKrD,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAK9B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAc5D,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAuBlE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAa5D,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAuBlE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAK5C,IAAI,CAAC,WAAW,EAAE,MAAM;IAoCxB,IAAI,CAAC,WAAW,EAAE,MAAM;IAoCxB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO1C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO1C,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKnC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKnC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAiB3B,WAAW;CAad;AAED,eAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/linear-ticks.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/linear-ticks.d.ts new file mode 100644 index 0000000..f28882a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/linear-ticks.d.ts @@ -0,0 +1,35 @@ +declare class LinearTicks { + ticks: number[]; + tickLods: number[]; + tickRatios: number[]; + minScale: number; + maxScale: number; + minValueScale: number; + maxValueScale: number; + minValue: number; + maxValue: number; + pixelRange: number; + minSpacing: number; + maxSpacing: number; + minTickLevel: number; + maxTickLevel: number; + constructor(); + initTicks(lods: number[], min: number, max: number): this; + spacing(min: number, max: number): this; + /** + * 根据参数调整当前的刻度等级 + * @param {*} minValue 传入起始值 + * @param {*} maxValue 传入结束值 + * @param {*} range 传入所显示的范围 + */ + range(minValue: number, maxValue: number, range: number): this; + /** + * 获取某个缩放等级下所有刻度值 + * @param {*} level 等级 + * @param {*} excludeHigherLevel 是否排除更高等级 + */ + ticksAtLevel(level: number, excludeHigherLevel: boolean): number[]; + levelForStep(step: number): number; +} +export default LinearTicks; +//# sourceMappingURL=linear-ticks.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/linear-ticks.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/linear-ticks.d.ts.map new file mode 100644 index 0000000..1a735fb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/grid/linear-ticks.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"linear-ticks.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/camera/grid/linear-ticks.ts"],"names":[],"mappings":"AAIA,cAAM,WAAW;IACN,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,UAAU,EAAE,MAAM,EAAE,CAAM;IAE1B,QAAQ,SAAO;IACf,QAAQ,SAAU;IAElB,aAAa,SAAO;IACpB,aAAa,SAAO;IAEpB,QAAQ,SAAQ;IAChB,QAAQ,SAAO;IAEf,UAAU,SAAO;IAEjB,UAAU,SAAM;IAChB,UAAU,SAAM;IAEhB,YAAY,SAAK;IACjB,YAAY,SAAK;;IAGxB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAsDlD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAOhC;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IA6BvD;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO;IAiBvD,YAAY,CAAC,IAAI,EAAE,MAAM;CAU5B;AAED,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/index.d.ts new file mode 100644 index 0000000..40915ca --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/index.d.ts @@ -0,0 +1,122 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +import { CameraMoveMode } from './utils'; +import { Color, Quat, Vec3, renderer, ISizeLike } from 'cc'; +import { CameraController2D } from './2d/camera-controller-2d'; +import { CameraController3D } from './3d/camera-controller-3d'; +import { ISceneEvents } from '../scene-events-interface'; +import EditorCameraComponent from './editor-camera-components'; +/** + * 摄像机管理器 + * + * 编辑器视角与实际游戏视角是不同的,所以需要单独管理编辑器摄像机。 + * 编辑器模式下,游戏内的其他摄像机需要关闭(现阶段是在引擎内 hack 实现)。 + */ +export declare class Camera extends EventEmitter implements ISceneEvents { + get controller2D(): CameraController2D; + get controller3D(): CameraController3D; + /** + * 返回当前的控制器 + */ + get controller(): CameraController2D | CameraController3D; + /** + * 设置是否使用 2D 模式显示 + */ + set is2D(value: boolean); + private _controller2D; + private _controller3D; + private _controller; + private _camera; + get is2D(): boolean; + get camera(): EditorCameraComponent; + protected bindOperation(): void; + /** + * 初始化摄像机并挂到场景中 + */ + init(): void; + initFromConfig(): Promise<void>; + onSceneOpened(scene: any): void; + onSceneClosed(scene: any): Promise<void>; + getCurCameraInfo(): { + position: { + x: number; + y: number; + z: number; + }; + rotation: { + x: number; + y: number; + z: number; + w: number; + }; + viewCenter: { + x: number; + y: number; + z: number; + }; + }; + /** + * 设置是否使用显示网格 + */ + setGridVisible(value: boolean): void; + isGridVisible(): boolean; + setGridLineColor(color: number[]): void; + getCameraFov(): number | undefined; + getCameraFar(): number; + getCameraNear(): number; + getCameraColor(): Color | undefined; + getCameraISO(): renderer.scene.CameraISO; + setCameraISO(value: renderer.scene.CameraISO): void; + setCameraAperture(value: renderer.scene.CameraAperture): void; + getCameraAperture(value: renderer.scene.CameraAperture): renderer.scene.CameraAperture; + getCameraShutter(value: renderer.scene.CameraShutter): renderer.scene.CameraShutter; + setCameraShutter(value: renderer.scene.CameraShutter): void; + getWheelSpeed(): number; + setWheelSpeed(value: number): void; + getWanderSpeed(): number; + setWanderSpeed(value: number): void; + getEnableAcceleration(): boolean; + setEnableAcceleration(value: boolean): void; + colorToArray(color?: Color): number[]; + arrayToColor(colorArray: number[]): any; + getCameraProperty(): any; + setCameraProperty(options: any): void; + /** + * 焦点转向某个节点 + * 如果传入 nodes,责转向这些节点 + * 如果未传入 nodes,责转向指定的位置场景中心 + * @param {*} nodes + */ + focus(nodes?: string[] | null, position?: Vec3, rotation?: Quat, viewCenter?: Vec3, immediate?: boolean): void; + rotateCameraToDir(dir: Vec3, rotateByViewDist: boolean): void; + changeProjection(): void; + /** + * 还原 camera 到某个位置 + */ + reset(position: Vec3, rotation: Quat): void; + alignNodeToSceneView(nodes: string[]): void; + alignSceneViewToNode(nodes: string[]): void; + onMouseDown(event: any): boolean; + onMouseMove(event: any): boolean; + onMouseUp(event: any): boolean; + onMouseWheel(event: any): void; + onKeyDown(event: any): void; + onKeyUp(event: any): void; + /** + * 漫游模式下 + * 需要不停更新自身的位置数据 + */ + onUpdate(deltaTime: number): void; + onDesignResolutionChange(): void; + onResize(size: ISizeLike): Promise<void>; + refresh(): void; + zoomUp(): void; + zoomDown(): void; + zoomReset(): void; + getCamera(): renderer.scene.Camera; + onControl3DModeChanged(mode: CameraMoveMode): void; + setRulerVisible(visible: boolean): void; +} +declare const _default: Camera; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/index.d.ts.map new file mode 100644 index 0000000..cfd3fe0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/camera/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/listener.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/listener.d.ts new file mode 100644 index 0000000..dc6f699 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/listener.d.ts @@ -0,0 +1,8 @@ +import { Camera } from '.'; +/** + * 将摄像机操作绑定到摄像机管理器上 + * @param {*} camera + */ +declare function bind(camera: Camera): void; +export default bind; +//# sourceMappingURL=listener.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/listener.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/listener.d.ts.map new file mode 100644 index 0000000..9b20155 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/listener.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/camera/listener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAI3B;;;GAGG;AACH,iBAAS,IAAI,CAAC,MAAM,EAAE,MAAM,QA2C3B;AAED,eAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/operation-mode-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/operation-mode-interface.d.ts new file mode 100644 index 0000000..474a6d3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/operation-mode-interface.d.ts @@ -0,0 +1,13 @@ +import { ISceneMouseEvent, ISceneKeyboardEvent } from '../../../../../@types/private'; +import IState from '../../utils/state-machine/state-interface'; +interface IOperationMode extends IState { + onMouseDown(event: ISceneMouseEvent): boolean; + onMouseMove(event: ISceneMouseEvent): boolean; + onMouseUp(event: ISceneMouseEvent): boolean; + onMouseWheel(event: ISceneMouseEvent): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + onUpdate(deltaTime: number): void; +} +export { IOperationMode }; +//# sourceMappingURL=operation-mode-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/operation-mode-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/operation-mode-interface.d.ts.map new file mode 100644 index 0000000..ba3f78d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/operation-mode-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"operation-mode-interface.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/camera/operation-mode-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,MAAM,MAAM,2CAA2C,CAAC;AAE/D,UAAU,cAAe,SAAQ,MAAM;IACnC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAC9C,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAC9C,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAC5C,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/tween.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/tween.d.ts new file mode 100644 index 0000000..677c864 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/tween.d.ts @@ -0,0 +1,51 @@ +import { Quat, Vec3 } from 'cc'; +declare class PositionAnimation { + target: Vec3; + func: Function | null; + start: Vec3; + end: Vec3; + travel: number; + time: number; + constructor(start: Vec3, end: Vec3, time: number); + _step(time: number): boolean; + step(func: Function | null): void; +} +declare class RotationAnimation { + target: Quat; + func: Function | null; + start: Quat; + end: Quat; + travel: number; + time: number; + constructor(start: Quat, end: Quat, time: number); + _step(time: number): boolean; + step(func: Function | null): void; +} +declare class NumberAnimation { + target: number; + func: Function | null; + start: number; + end: number; + travel: number; + time: number; + constructor(start: number, end: number, time: number); + _step(time: number): boolean; + step(func: Function | null): void; +} +/** + * 将 target 属性,从 start 渐变到 end + * @param {*} start + * @param {*} end + * @param {*} time + */ +declare function tweenPosition(start: Vec3, end: Vec3, time?: number): PositionAnimation; +/** + * 将 target 属性,从 start 渐变到 end + * @param {*} start + * @param {*} end + * @param {*} time + */ +declare function tweenRotation(start: Quat, end: Quat, time: number): RotationAnimation; +declare function tweenNumber(start: number, end: number, time: number): NumberAnimation; +export { tweenPosition, tweenRotation, tweenNumber }; +//# sourceMappingURL=tween.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/tween.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/tween.d.ts.map new file mode 100644 index 0000000..32b4e82 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/tween.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/camera/tween.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AA2ChC,cAAM,iBAAiB;IACZ,MAAM,EAAE,IAAI,CAAW;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAE7B,KAAK,EAAE,IAAI,CAAc;IACzB,GAAG,EAAE,IAAI,CAAc;IAEvB,MAAM,SAAK;IACX,IAAI,SAAK;gBAEJ,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;IAMzC,KAAK,CAAC,IAAI,EAAE,MAAM;IAQlB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAGpC;AAED,cAAM,iBAAiB;IACZ,MAAM,EAAE,IAAI,CAAa;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAE7B,KAAK,OAAc;IACnB,GAAG,OAAc;IAEjB,MAAM,SAAK;IACX,IAAI,SAAK;gBACJ,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;IAMzC,KAAK,CAAC,IAAI,EAAE,MAAM;IAQlB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAGpC;AAED,cAAM,eAAe;IACV,MAAM,SAAK;IACX,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAE7B,KAAK,SAAK;IACV,GAAG,SAAK;IAER,MAAM,SAAK;IACX,IAAI,SAAK;gBAEJ,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAW7C,KAAK,CAAC,IAAI,EAAE,MAAM;IAQlB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAGpC;AAED;;;;;GAKG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,SAAM,qBAKxD;AAED;;;;;GAKG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,qBAK1D;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAK5D;AAMD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/utils.d.ts new file mode 100644 index 0000000..4b33802 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/utils.d.ts @@ -0,0 +1,84 @@ +import { Color, MeshRenderer, Node, Component } from 'cc'; +import EditorCameraComponent from './editor-camera-components'; +interface CreateHTMLOptions { + rootID: string; + innerHTML: string; + imgInfos?: { + src: string; + selector: string; + }[]; +} +declare class Utils { + protected $cameraMoveInfo: HTMLDivElement; + protected $snapInfoEN: HTMLImageElement; + protected $snapInfoZH: HTMLImageElement; + protected $snapInfoRoot: HTMLDivElement; + protected _createHtml(options: Omit<CreateHTMLOptions, 'imgInfos'>): { + root: HTMLDivElement; + }; + protected _createHtml(options: Required<CreateHTMLOptions>): { + imgs: HTMLImageElement[]; + root: HTMLDivElement; + }; + constructor(); + protected updateSnapInfoUI(): void; + showSnapTip(): void; + hideSnapTip(): void; + /** 展示场景漫游的提示 */ + showCameraMoveTip(): void; + /** 隐藏场景漫游的提示 */ + hideCameraMoveTip(): void; + updateVBAttr(comp: MeshRenderer | null, attr: string, data: number[]): void; + updateIB(comp: MeshRenderer | null, data: number[]): void; + /** + * 绘制线条 + * @param {*} width + * @param {*} length + * @param {*} segw + * @param {*} segl + */ + grid(width: number, length: number, segw: number, segl: number): { + positions: number[]; + uvs: number[]; + indices: number[]; + minPos: any; + maxPos: any; + }; + /** + * 创建网格 + * @param {*} w + * @param {*} l + */ + createStrokeGrid(w: number, l: number): any; + createGrid(effectName: string): any; + /** + * 创建相机 + * @param {*} color + */ + createCamera(color: Color): EditorCameraComponent; + /** + * 查询带有 light 的节点列表 + * @param {*} excludes 排除的节点数组 + */ + queryLightNodes(excludes: Node[]): Node[]; + /** + * 检查场景内是否有可以使用的光源 + * @param {*} nodes + */ + isSceneHasActiveLight(nodes: Node[]): boolean; + /** + * 查询指定component列表 + * @param {*} compName + */ + queryComponent(compName: string): Component[]; +} +declare enum CameraMoveMode { + IDLE = 0, + ORBIT = 1, + PAN = 2, + ZOOM = 3, + WANDER = 4 +} +declare const CameraUtils: Utils; +export { CameraMoveMode, CameraUtils }; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/utils.d.ts.map new file mode 100644 index 0000000..0bed1d2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/camera/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/camera/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAO,YAAY,EAAE,IAAI,EAAgC,SAAS,EAAE,MAAM,IAAI,CAAC;AAC7F,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAS/D,UAAU,iBAAiB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,EAAE,CAAA;CAC/C;AAED,cAAM,KAAK;IAEP,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACxC,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACxC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC;IACxC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG;QACjE,IAAI,EAAE,cAAc,CAAA;KACvB;IACD,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG;QACzD,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACzB,IAAI,EAAE,cAAc,CAAA;KACvB;;IA+ED,SAAS,CAAC,gBAAgB;IAW1B,WAAW;IAIX,WAAW;IAGX,gBAAgB;IAChB,iBAAiB;IAGjB,gBAAgB;IAChB,iBAAiB;IAIV,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAqCpE,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IA0BzD;;;;;;OAMG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;;IAsDrE;;;;OAIG;IACI,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAgBrC,UAAU,CAAC,UAAU,EAAE,MAAM;IAsDpC;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,KAAK;IAahC;;;OAGG;IACI,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE;IAiBvC;;;OAGG;IACI,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE;IAyB1C;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM;CAgBzC;AAED,aAAK,cAAc;IACf,IAAI,IAAI;IACR,KAAK,IAAI;IACT,GAAG,IAAI;IACP,IAAI,IAAI;IACR,MAAM,IAAI;CACb;AAED,QAAA,MAAM,WAAW,OAAc,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/index.d.ts new file mode 100644 index 0000000..6747d02 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/index.d.ts @@ -0,0 +1,98 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +import { Component } from 'cc'; +import { IProperty } from '../../../../../@types/public'; +export declare class CompManager extends EventEmitter { + init(): void; + _onCompAdded?: (uuid: string, component: Component) => void; + _onCompRemoved?: (uuid: string, component: Component) => void; + /** + * 注册引擎Component管理相关事件的监听 + */ + registerCompMgrEvents(): void; + /** + * 反注册引擎Component管理相关事件的监听 + */ + unregisterCompMgrEvents(): void; + /** + * 清空当前管理的节点 + */ + clear(): void; + /** + * 添加到组件缓存 + * @param {String} uuid + * @param {cc.Component} component + */ + add(uuid: string, component: Component): void; + /** + * 移除组件缓存 + * @param {String} uuid + * @param {cc.Component} component + */ + remove(uuid: string, component: Component): void; + /** + * 查询一个组件的实例 + * @param {*} uuid + * @returns {cc.Component} + */ + query(uuid: string): Component | null; + query<T extends Component>(uuid: string): T | null; + /** + * 获取所有在用的组件 + */ + queryAll(): { + [index: string]: any; + }; + /** + * 获取所有回收站里的组件 + */ + queryAllRecycle(): { + [index: string]: any; + }; + /** + * 在回收站中查询一个组件的实例 + * @param {*} uuid + * @returns {cc.Component} + */ + queryRecycle(uuid: string): any; + /** + * 从回收站中还原一个组件 + * @param {*} uuid + */ + recycle(uuid: string): void; + /** + * 在编辑器中删除一个component + * @param {*} component 组件 + */ + removeComponent(component: Component): boolean; + /** + * 在编辑器中重置 component + * @param {*} component 组件 + */ + resetComponent(component: any): Promise<boolean>; + /** + * 查询一个组件,并返回该节点的 dump 数据 + * 如果组件不存在,则返回 null + * @param {String} uuid + */ + queryDump(uuid: string): any; + /** + * 调用Component身上的方法 + * @param {*} uuid + * @param {*} name + * @param {*} args + */ + executeComponentMethod(uuid: string, name: string, args: any): Promise<any>; + /** + * 设置一个组件的属性,暂时不用 + * @param {*} uuid + * @param {*} path + * @param {*} key + * @param {*} dump + */ + setProperty(uuid: string, path: string, dump: IProperty): Promise<boolean>; + onComponentAddedFromEditor(component: Component): void; +} +declare const _default: CompManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/index.d.ts.map new file mode 100644 index 0000000..db18e8c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/component/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,EAAQ,SAAS,EAAiB,MAAM,IAAI,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,qBAAa,WAAY,SAAQ,YAAY;IACzC,IAAI;IAGJ,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9D;;OAEG;IACH,qBAAqB;IAOrB;;OAEG;IACH,uBAAuB;IASvB;;OAEG;IACH,KAAK;IAIL;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAQtC;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAQzC;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IACrC,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAKlD;;OAEG;IACH,QAAQ;;;IAIR;;OAEG;IACH,eAAe;;;IAIf;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB;;;OAGG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS;IAkBpC;;;OAGG;IACG,cAAc,CAAC,SAAS,EAAE,GAAG;IA4CnC;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM;IAQtB;;;;;OAKG;IACG,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAuBlE;;;;;;OAMG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAczE,0BAA0B,CAAC,SAAS,EAAE,SAAS;CAYzD;;AACD,wBAAiC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/utils.d.ts new file mode 100644 index 0000000..be27f5c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/utils.d.ts @@ -0,0 +1,22 @@ +import { Node, SphereCollider, BoxCollider, PolygonCollider2D, MeshCollider, CapsuleCollider, CylinderCollider, TerrainCollider, ConeCollider, Camera } from 'cc'; +declare class ComponentUtils { + /** + * 添加组件对应的内部处理方法 + */ + addComponentMap: { + SphereCollider(component: SphereCollider, node: Node): void; + BoxCollider(component: BoxCollider, node: Node): void; + ConeCollider(component: ConeCollider, node: Node): void; + CylinderCollider(component: CylinderCollider, node: Node): void; + CapsuleCollider(component: CapsuleCollider, node: Node): void; + MeshCollider(component: MeshCollider, node: Node): void; + TerrainCollider(component: TerrainCollider, node: Node): void; + BoxCollider2D(component: any, node: Node): void; + CircleCollider2D(component: any, node: Node): void; + PolygonCollider2D(component: PolygonCollider2D, node: Node): void; + Camera(component: Camera, node: Node): void; + }; +} +declare const _default: ComponentUtils; +export default _default; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/utils.d.ts.map new file mode 100644 index 0000000..8281f85 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/component/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/component/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,EAGJ,cAAc,EACd,WAAW,EAGX,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EAEf,YAAY,EAEZ,MAAM,EAET,MAAM,IAAI,CAAC;AAwCZ,cAAM,cAAc;IAChB;;OAEG;IACH,eAAe;kCACe,cAAc,QAAQ,IAAI;+BAY7B,WAAW,QAAQ,IAAI;gCAetB,YAAY,QAAQ,IAAI;oCAmBpB,gBAAgB,QAAQ,IAAI;mCAmB7B,eAAe,QAAQ,IAAI;gCAiB9B,YAAY,QAAQ,IAAI;mCAUrB,eAAe,QAAQ,IAAI;iCAU7B,GAAG,QAAQ,IAAI;oCAaZ,GAAG,QAAQ,IAAI;qCAYd,iBAAiB,QAAQ,IAAI;0BAIxC,MAAM,QAAQ,IAAI;MAatC;CACL;;AAED,wBAAoC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/effects.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/effects.d.ts new file mode 100644 index 0000000..6ac727d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/effects.d.ts @@ -0,0 +1,28 @@ +export declare class EffectManager { + private _uuidSet; + init(): Promise<void>; + /** + * 传入一个 effect uuid 数组,将这些 effect 注册到管理器内 + * @param uuids 注册一个 effect 数组 + */ + registerEffects(uuids: string[]): void; + /** + * 注册一个 effect + * @param uuid 注册一个 effect + */ + registerEffect(uuid: string): Promise<void>; + /** + * 将一个已经注册的 effect 移除 + * @param uuid 删除的 effect 资源 uuid + */ + removeEffect(uuid: string): boolean; + /** + * 移除一个 uuids 列表 + * @param uuids 删除的所有 effect 的 uuids + */ + removeEffects(uuids: string[]): void; + updateEffect(uuid: string): void; +} +declare const _default: EffectManager; +export default _default; +//# sourceMappingURL=effects.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/effects.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/effects.d.ts.map new file mode 100644 index 0000000..902428c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/effects.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/effects.ts"],"names":[],"mappings":"AAMA,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAa;IAEvB,IAAI;IAQV;;;OAGG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;IAMtC;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM;IAclC;;;OAGG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM;IAchC;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;IAM7B,YAAY,CAAC,IAAI,EAAE,MAAM;CAInC;;AAED,wBAAmC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/geometry_renderer.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/geometry_renderer.d.ts new file mode 100644 index 0000000..1736537 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/geometry_renderer.d.ts @@ -0,0 +1,18 @@ +/** + * 对引擎geometry_renderer的封装; + * 添加接口和引擎一致 + * 由于每帧都需要渲染,所以这个类主要是一个数据收集,在每帧渲染时,flush数据给引擎 + */ +export declare const methods: readonly ["addDashedLine", "addTriangle", "addQuad", "addBoundingBox", "addCross", "addFrustum", "addCapsule", "addCylinder", "addCone", "addCircle", "addArc", "addPolygon", "addDisc", "addSector", "addSphere", "addTorus", "addOctahedron", "addBezier", "addMesh", "addIndexedMesh"]; +declare class GeometryRenderer { + private _renderer; + private _dataMap; + constructor(); + get renderer(): any; + set renderer(renderer: any); + flush(): void; + removeData(method: string): void; + removeDataAll(): void; +} +export { GeometryRenderer }; +//# sourceMappingURL=geometry_renderer.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/geometry_renderer.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/geometry_renderer.d.ts.map new file mode 100644 index 0000000..db807dd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/geometry_renderer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"geometry_renderer.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/engine/geometry_renderer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,OAAO,2RAqBV,CAAC;AAEX,cAAM,gBAAgB;IAClB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAkB;;IAmBlC,IAAI,QAAQ,IAIW,GAAG,CAFzB;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAEzB;IAGD,KAAK;IAeL,UAAU,CAAC,MAAM,EAAE,MAAM;IAKzB,aAAa;CAMhB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/index.d.ts new file mode 100644 index 0000000..a36138a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/index.d.ts @@ -0,0 +1,55 @@ +import { Node, Component, GeometryRenderer as CCGeometryRenderer } from 'cc'; +import { ISceneEvents } from '../scene-events-interface'; +import { IChangeNodeOptions } from '../../../../../@types/private'; +import { GeometryRenderer } from './geometry_renderer'; +import { EventEmitter } from '../../../utils/event-emitter'; +declare enum NeedAnimState { + CAMERA_ORBIT = 0, + CAMERA_PAN = 1, + CAMERA_WANDER = 2, + ANIMATION_MODE = 3, + PARTICLE_SYSTEM_MODE = 4, + TERRAIN_SYSTEM_MODE = 5, + GAME_VIEW_MODE = 6 +} +/** + * 引擎管理器,用于引擎相关操作 + */ +export declare class EngineManager extends EventEmitter implements ISceneEvents { + private _requestId; + private _maxDeltaTimeInEM; + private _stateRecord; + private _shouldRepaintInEM; + private _tickInEM; + private _tickedFrameInEM; + private _paused; + private _bindTick; + private geometryRenderer; + private _sceneTick; + init(): Promise<void>; + setTimeout(callback: any, time: number): any; + clearTimeout(id: any): void; + onSceneViewVisible(visible: boolean): void; + onSceneOpened(scene: any): void; + onComponentAdded(comp: Component): void; + onComponentRemoved(comp: Component): void; + onNodeChanged(node: Node, opts: IChangeNodeOptions): void; + repaintInEditMode(): void; + setFrameRate(fps: number): void; + startTick(): void; + stopTick(): void; + tickInEditMode(deltaTime: number): void; + getGeometryRenderer(): (GeometryRenderer & Pick<CCGeometryRenderer, "addDashedLine" | "addTriangle" | "addQuad" | "addBoundingBox" | "addCross" | "addFrustum" | "addCapsule" | "addCylinder" | "addCone" | "addCircle" | "addArc" | "addPolygon" | "addDisc" | "addSector" | "addSphere" | "addTorus" | "addOctahedron" | "addBezier" | "addMesh" | "addIndexedMesh">) | null; + enterState(state: NeedAnimState): void; + exitState(state: NeedAnimState): void; + resume(): void; + pause(): void; + checkToSetAnimState(nodes: Node[]): void; + private _tick; + private _updateTickState; + private _isTickAllowed; + emitUpdate(): void; +} +declare const engineManager: EngineManager; +export { engineManager, NeedAnimState }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/index.d.ts.map new file mode 100644 index 0000000..9f9f82c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/engine/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,SAAS,EAA6C,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAExH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,EAAE,gBAAgB,EAA8B,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,aAAK,aAAa;IACd,YAAY,IAAA;IACZ,UAAU,IAAA;IACV,aAAa,IAAA;IACb,cAAc,IAAA;IACd,oBAAoB,IAAA;IACpB,mBAAmB,IAAA;IACnB,cAAc,IAAA;CACjB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAa,YAAW,YAAY;IACnE,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,gBAAgB,CAA4F;IACpH,OAAO,CAAC,UAAU,CAAS;IACd,IAAI;IAQV,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;IAStC,YAAY,CAAC,EAAE,EAAE,GAAG;IAK3B,kBAAkB,CAAC,OAAO,EAAE,OAAO;IAK5B,aAAa,CAAC,KAAK,EAAE,GAAG;IAIxB,gBAAgB,CAAC,IAAI,EAAE,SAAS;IAOhC,kBAAkB,CAAC,IAAI,EAAE,SAAS;IAOlC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB;IAclD,iBAAiB;IASjB,YAAY,CAAC,GAAG,EAAE,MAAM;IAIxB,SAAS;IAMT,QAAQ;IAOR,cAAc,CAAC,SAAS,EAAE,MAAM;IAWhC,mBAAmB;IAInB,UAAU,CAAC,KAAK,EAAE,aAAa;IAS/B,SAAS,CAAC,KAAK,EAAE,aAAa;IAU9B,MAAM;IAKN,KAAK;IAKL,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE;IA+BxC,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;IAIf,UAAU;CAKpB;AAED,QAAA,MAAM,aAAa,eAAsB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/time.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/time.d.ts new file mode 100644 index 0000000..763d17f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/time.d.ts @@ -0,0 +1,67 @@ +/** + * !#en The interface to get time information from Fireball. + * + * See [Time](/en/scripting/time/) + * !#zh Time 模块用于获得游戏里的时间和帧率相关信息。直接使用 cc.Time.*** 访问即可。 + * + * 请参考教程[计时和帧率](/zh/scripting/time/) + * + * @class Time + * @static + */ +declare class Time { + /** + * The time at the beginning of this frame. This is the time in seconds since the start of the game. + * @property time + * @type {number} + * @readOnly + */ + time: number; + /** + * The time at the beginning of this frame. This is the real time in seconds since the start of the game. + * + * `Time.realTime` not affected by time scale, and also keeps increasing while the player is paused in editor or in the background. + * @property realTime + * @type {number} + * @readOnly + */ + realTime: number; + /** + * The time in seconds it took to complete the last frame. Use this property to make your game frame rate independent. + * @property deltaTime + * @type {number} + * @readOnly + */ + deltaTime: number; + /** + * The total number of frames that have passed. + * @property frameCount + * @type {number} + * @readOnly + */ + frameCount: number; + /** + * The maximum time a frame can take. + * @property maxDeltaTime + * @type {number} + * @readOnly + */ + maxDeltaTime: number; + /** + * @method _update + * @param {number} timestamp + * @param {Boolean} [paused=false] if true, only realTime will be updated + * @param {number} [maxDeltaTime=Time.maxDeltaTime] + * @private + */ + update(timestamp: number, paused: boolean, maxDeltaTime: number): void; + /** + * @method _restart + * @param {number} timestamp + * @private + */ + restart(timestamp: number): void; +} +declare const _default: Time; +export default _default; +//# sourceMappingURL=time.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/time.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/time.d.ts.map new file mode 100644 index 0000000..1460462 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/engine/time.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/engine/time.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,cAAM,IAAI;IACN;;;;;OAKG;IACI,IAAI,SAAK;IAEhB;;;;;;;OAOG;IACI,QAAQ,SAAK;IAEpB;;;;;OAKG;IACI,SAAS,SAAK;IAErB;;;;;OAKG;IACI,UAAU,SAAK;IAEtB;;;;;OAKG;IACI,YAAY,SAAa;IAEhC;;;;;;OAMG;IACI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM;IAkBtE;;;;OAIG;IACI,OAAO,CAAC,SAAS,EAAE,MAAM;CAOnC;;AAED,wBAA0B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/gizmos.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/gizmos.d.ts new file mode 100644 index 0000000..1e085ac --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/gizmos.d.ts @@ -0,0 +1,3 @@ +import gizmo from '../../public/gizmos'; +export default gizmo; +//# sourceMappingURL=gizmos.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/gizmos.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/gizmos.d.ts.map new file mode 100644 index 0000000..5cce14b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/gizmos.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmos.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/gizmos.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAoBxC,eAAe,KAAK,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/animation.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/animation.d.ts new file mode 100644 index 0000000..b5a2e65 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/animation.d.ts @@ -0,0 +1,30 @@ +import UndoManagerBase from './undo-manager-base'; +/** + * 动画编辑模式,按需发起 cce.History.snapshot(command?) 指令 + */ +declare class AnimationUndo extends UndoManagerBase { + nodeUuid: string; + clipUuid: string; + clipDump: any; + hasChanged: boolean; + constructor(); + getUndoData(): { + nodeUuid: string; + clipUuid: string; + clipDump: any; + }; + getRedoData(): { + nodeUuid: string; + clipUuid: string; + clipDump: any; + }; + updateCache(): void; + snapshot(command?: any): false | undefined; + changed(): void; + undo(): Promise<void>; + redo(): Promise<void>; + reset(nodeUuid: string, clipUuid: string): void; +} +declare const animationUndo: AnimationUndo; +export default animationUndo; +//# sourceMappingURL=animation.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/animation.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/animation.d.ts.map new file mode 100644 index 0000000..62fa62d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/animation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/history/animation.ts"],"names":[],"mappings":"AAGA,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAGlD;;GAEG;AACH,cAAM,aAAc,SAAQ,eAAe;IACvC,QAAQ,SAAM;IACd,QAAQ,SAAM;IACd,QAAQ,EAAE,GAAG,CAAQ;IAErB,UAAU,UAAS;;IAMnB,WAAW;;;;;IAQX,WAAW;;;;;IAKX,WAAW;IAIX,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG;IAyBtB,OAAO;IAID,IAAI;IAQJ,IAAI;IAQV,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAY3C;AAED,QAAA,MAAM,aAAa,eAAsB,CAAC;AAc1C,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/icommand.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/icommand.d.ts new file mode 100644 index 0000000..02891f4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/icommand.d.ts @@ -0,0 +1,5 @@ +export interface ICommand { + undo(): Promise<void>; + redo(): Promise<void>; +} +//# sourceMappingURL=icommand.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/icommand.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/icommand.d.ts.map new file mode 100644 index 0000000..12a4c5f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/icommand.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"icommand.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/history/icommand.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/prefab.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/prefab.d.ts new file mode 100644 index 0000000..5200014 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/prefab.d.ts @@ -0,0 +1,4 @@ +import { SceneUndoManager } from './scene'; +declare const prefabUndoManager: SceneUndoManager; +export default prefabUndoManager; +//# sourceMappingURL=prefab.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/prefab.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/prefab.d.ts.map new file mode 100644 index 0000000..b372ea5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/prefab.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"prefab.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/history/prefab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,QAAA,MAAM,iBAAiB,kBAAyB,CAAC;AAGjD,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/preview.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/preview.d.ts new file mode 100644 index 0000000..dd70b0f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/preview.d.ts @@ -0,0 +1,4 @@ +import { SceneUndoManager } from './scene'; +declare const previewUndoManager: SceneUndoManager; +export default previewUndoManager; +//# sourceMappingURL=preview.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/preview.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/preview.d.ts.map new file mode 100644 index 0000000..59dad1b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/preview.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/history/preview.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,QAAA,MAAM,kBAAkB,kBAAyB,CAAC;AAElD,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/scene.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/scene.d.ts new file mode 100644 index 0000000..ce79408 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/scene.d.ts @@ -0,0 +1,50 @@ +import UndoManagerBase from './undo-manager-base'; +import SnapshotCommand from './snapshot-command'; +import { ICommand } from './icommand'; +interface SceneInfo { + uuid: string; + animationMode: boolean; +} +export declare class SceneUndoManager extends UndoManagerBase { + name: string; + private _lightProbeEditMode; + private _lightProbeUndoArray; + set undoArray(value: ICommand[]); + get undoArray(): ICommand[]; + cacheDump: any; + scene: SceneInfo; + records: string[]; + constructor(); + getUndoData(uuids?: string[]): any; + getRedoData(uuids?: string[]): any; + updateCache(uuids?: string[]): void; + /** + * 取消记录 + */ + abort(): void; + record(node: any): void; + /** + * 目前的问题: + * 1.snapshot依赖this.records,单独调用snapshot没有任何意义 + * 2.调用snapshot时,场景只要有变化,就会生成一个Command,但这个command不一定能完全对应用户的操作 + * 就导致实际可以undo的队列和用户的操作队列可能是不匹配的(完全取决于业务调用snapshot的时机是否正确) + * 而且在undo/redo的时候如果record不为空也会snapshot,就是为了在snapshot没有生成Command的时候补救,非常不利于维护 + * 期望: + * 场景提供修改接口,外部业务不用考虑snapshot,只负责调用修改接口 + * 场景在修改完数据后调用一次snapshot,确保每次snapshot都能和用户操作一一对应 + * */ + snapshot(command?: any): boolean; + undo(): Promise<void>; + redo(): Promise<void>; + reset(uuids: string[], scene: any): void; + lightProbeEditModeChanged(mode: boolean): void; + save(): void; + isDirty(): boolean; +} +declare const sceneUndoManager: SceneUndoManager; +export declare class SceneUndoCommand extends SnapshotCommand { + manager: SceneUndoManager | null; + excute(data: any): Promise<void>; +} +export default sceneUndoManager; +//# sourceMappingURL=scene.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/scene.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/scene.d.ts.map new file mode 100644 index 0000000..77d2ee9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/scene.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/history/scene.ts"],"names":[],"mappings":"AAKA,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,UAAU,SAAS;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,gBAAiB,SAAQ,eAAe;IACjD,IAAI,SAAW;IACf,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,oBAAoB,CAAkB;IAE9C,IAAI,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAM9B;IAED,IAAI,SAAS,IAAI,QAAQ,EAAE,CAM1B;IAGD,SAAS,EAAE,GAAG,CAAM;IAGpB,KAAK,EAAE,SAAS,CAAoC;IAGpD,OAAO,EAAE,MAAM,EAAE,CAAM;;IAMvB,WAAW,CAAC,KAAK,GAAE,MAAM,EAAiB;IAQ1C,WAAW,CAAC,KAAK,GAAE,MAAM,EAAiB;IAM1C,WAAW,CAAC,KAAK,GAAE,MAAM,EAAO;IAchC;;OAEG;IACH,KAAK;IAIL,MAAM,CAAC,IAAI,EAAE,GAAG;IAMhB;;;;;;;;;SASK;IACL,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG;IA4BhB,IAAI;IASJ,IAAI;IASV,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG;IAwBjC,yBAAyB,CAAC,IAAI,EAAE,OAAO;IA0BvC,IAAI;IAIJ,OAAO,IAAI,OAAO;CAGrB;AAED,QAAA,MAAM,gBAAgB,kBAAyB,CAAC;AAEhD,qBAAa,gBAAiB,SAAQ,eAAe;IACjD,OAAO,EAAE,gBAAgB,GAAC,IAAI,CAAQ;IAEhC,MAAM,CAAC,IAAI,EAAE,GAAG;CAsEzB;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/snapshot-command.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/snapshot-command.d.ts new file mode 100644 index 0000000..24b16cb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/snapshot-command.d.ts @@ -0,0 +1,11 @@ +import { ICommand } from './icommand'; +declare class SnapshotCommand implements ICommand { + undoData: any; + redoData: any; + constructor(undoData: any, redoData: any); + undo(): Promise<void>; + redo(): Promise<void>; + excute(data: any): Promise<void>; +} +export default SnapshotCommand; +//# sourceMappingURL=snapshot-command.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/snapshot-command.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/snapshot-command.d.ts.map new file mode 100644 index 0000000..4aa41ea --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/snapshot-command.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"snapshot-command.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/history/snapshot-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,cAAM,eAAgB,YAAW,QAAQ;IACrC,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;gBAEF,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;IAKlC,IAAI;IAGJ,IAAI;IAIJ,MAAM,CAAC,IAAI,EAAE,GAAG;CACzB;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/undo-manager-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/undo-manager-base.d.ts new file mode 100644 index 0000000..f07705c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/undo-manager-base.d.ts @@ -0,0 +1,26 @@ +import { ICommand } from './icommand'; +import { ISceneEvents } from '../scene-events-interface'; +import LightProbeEditModeListener from '../../../public/gizmos/3d/elements/listener/light-probe-edit-mode-listener'; +export declare class UndoManagerBase implements ISceneEvents, LightProbeEditModeListener { + private _undoArray; + get undoArray(): ICommand[]; + set undoArray(value: ICommand[]); + redoArray: ICommand[]; + undoSizeWhenSave: number; + constructor(); + push(command: ICommand): void; + undo(): Promise<void>; + redo(): Promise<void>; + rebase(): void; + reset(uuids: string | string[], scene: any): void; + snapshot(command?: any): void; + abort(): void; + record(node?: any): void; + changed(): void; + save(): void; + isDirty(): boolean; + onSceneOpened(scene: any): void; + lightProbeEditModeChanged(mode: boolean): void; +} +export default UndoManagerBase; +//# sourceMappingURL=undo-manager-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/undo-manager-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/undo-manager-base.d.ts.map new file mode 100644 index 0000000..4c59cf0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/history/undo-manager-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"undo-manager-base.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/history/undo-manager-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,0BAA0B,MAAM,4EAA4E,CAAC;AAEpH,qBAAa,eAAgB,YAAW,YAAY,EAAE,0BAA0B;IAE5E,OAAO,CAAC,UAAU,CAAkB;IACpC,IAAW,SAAS,IAAI,QAAQ,EAAE,CAEjC;IACD,IAAW,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAErC;IACD,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,gBAAgB,SAAK;;IAGrB,IAAI,CAAC,OAAO,EAAE,QAAQ;IAShB,IAAI;IAQJ,IAAI;IAQV,MAAM;IAKN,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG;IACtB,KAAK;IACL,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG;IACjB,OAAO;IAGP,IAAI;IAIJ,OAAO,IAAI,OAAO;IAGX,aAAa,CAAC,KAAK,EAAE,GAAG;IAI/B,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;CAEjD;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/index.d.ts new file mode 100644 index 0000000..ddc7f79 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/index.d.ts @@ -0,0 +1,3 @@ +declare const ipc: any; +export default ipc; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/index.d.ts.map new file mode 100644 index 0000000..693e17e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/ipc/index.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,GAAG,KAAiF,CAAC;AAC3F,eAAe,GAAG,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/ipc.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/ipc.d.ts new file mode 100644 index 0000000..f405036 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/ipc.d.ts @@ -0,0 +1,12 @@ +import ipc from './webview'; +export declare type CustomWebIPC = { + startup: () => void; + clearQueue: () => void; +} & typeof ipc; +declare const customIpc: CustomWebIPC; +/** + * 启动 ipc 模块 + */ +export declare function startup(): void; +export default customIpc; +//# sourceMappingURL=ipc.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/ipc.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/ipc.d.ts.map new file mode 100644 index 0000000..4a1e281 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/ipc.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/ipc/web/ipc.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,WAAW,CAAC;AAE5B,oBAAY,YAAY,GAAG;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;CAC1B,GAAG,OAAO,GAAG,CAAC;AAMf,QAAA,MAAM,SAAS,EAAE,YAAkB,CAAC;AAqBpC;;GAEG;AACH,wBAAgB,OAAO,SAItB;AAsID,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/webview.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/webview.d.ts new file mode 100644 index 0000000..db01067 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/webview.d.ts @@ -0,0 +1,18 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +import { DataStorage } from '../../../../public/ipc/utils'; +declare class WebviewIpc extends EventEmitter { + _events: Record<string, Function>; + private _storage; + get storage(): DataStorage; + /** + * 场景进程发消息给渲染进程 + * @param message 消息名字 + * @param args 消息参数列表 + */ + send(message: string, ...args: any[]): Promise<unknown>; + request(message: string, ...args: any[]): Promise<any>; +} +declare const ipc: WebviewIpc; +export default ipc; +//# sourceMappingURL=webview.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/webview.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/webview.d.ts.map new file mode 100644 index 0000000..f8b6dd3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ipc/web/webview.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/ipc/web/webview.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAA0B,WAAW,EAAY,MAAM,8BAA8B,CAAC;AAM7F,cAAM,UAAW,SAAQ,YAAY;IAC1B,OAAO,EAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAqB;IACrC,IAAW,OAAO,gBAEjB;IAED;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAuBpC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CAGzD;AAED,QAAA,MAAM,GAAG,YAAmB,CAAC;AAC7B,eAAe,GAAG,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/lod.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/lod.d.ts new file mode 100644 index 0000000..26ad7fa --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/lod.d.ts @@ -0,0 +1,40 @@ +import { Component, LODGroup, MeshRenderer, Node } from 'cc'; +import { IChangeNodeOptions, IOptionBase } from '../../../../@types/private'; +import { ISceneEvents } from './scene-events-interface'; +export declare class LODManager implements ISceneEvents { + private readonly _selectedUUIDs; + private _selectedMeshRendererSet; + private _selectedLODSet; + _onSelect?: (uuid: string, uuids: string[]) => void; + _onUnselect?: (uuid: string, uuids: string[]) => void; + onResize?(opts: any): void; + onSceneOpened?(scene: any): void; + onSceneReload?(scene: any): void; + onSceneClosed?(scene: any): void; + onNodeChanged?(node: Node, opts: IChangeNodeOptions): void; + onAddNode?(node: Node): void; + onRemoveNode?(node: Node): void; + onNodeAdded?(node: Node, opts: IOptionBase): void; + onNodeRemoved?(node: Node, opts: IOptionBase): void; + onAddComponent?(comp: Component): void; + onRemoveComponent?(comp: Component): void; + onComponentAdded?(comp: Component, opts?: IOptionBase): void; + onComponentRemoved?(comp: Component, opts?: IOptionBase): void; + onAssetDeleted?(uuid: string, info?: any): void; + onAssetChanged?(uuid: string, info?: any, meta?: any): void; + /** 使用当前摄像机中的屏占比 */ + applyCurrentCameraSize(uuid: Readonly<string>): number | null; + onSelect(uuid: string, uuids: ReadonlyArray<string>): void; + onUnselect(uuid: string, uuids: ReadonlyArray<string>): void; + onSelectMeshRenderer(meshRenderer: MeshRenderer): void; + onUnselectMeshRenderer(meshRenderer: MeshRenderer): void; + onSelectLOD(lod: LODGroup): void; + onUnselectLOD(lod: LODGroup): void; + updateAllLODGroupLockedVisibility(): void; + insertLOD(lODGroupUUID: string, ...args: Parameters<LODGroup['insertLOD']>): void; + eraseLOD(lODGroupUUID: string, ...args: Parameters<LODGroup['eraseLOD']>): void; + init(): void; +} +declare const _default: LODManager; +export default _default; +//# sourceMappingURL=lod.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/lod.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/lod.d.ts.map new file mode 100644 index 0000000..1873477 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/lod.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"lod.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/lod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAY,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAW,MAAM,IAAI,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAMxD,qBAAa,UAAW,YAAW,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,wBAAwB,CAAgC;IAChE,OAAO,CAAC,eAAe,CAA4B;IACnD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAEtD,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAG1B,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAGhC,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAC1D,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAC5B,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAC/B,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IACjD,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAGnD,cAAc,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IACtC,iBAAiB,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IACzC,gBAAgB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI;IAG5D,kBAAkB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI;IAG9D,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAE3D,mBAAmB;IACnB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;IAQ7D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;IAwBnD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;IA0BrD,oBAAoB,CAAC,YAAY,EAAE,YAAY;IAK/C,sBAAsB,CAAC,YAAY,EAAE,YAAY;IAMjD,WAAW,CAAC,GAAG,EAAE,QAAQ;IAKzB,aAAa,CAAC,GAAG,EAAE,QAAQ;IAO3B,iCAAiC;IAYjC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAO1E,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAOjE,IAAI;CAOd;;AAED,wBAAgC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/material-preview/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/material-preview/index.d.ts new file mode 100644 index 0000000..b5daff4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/material-preview/index.d.ts @@ -0,0 +1,24 @@ +import { Material, Scene } from 'cc'; +import { InteractivePreview } from '../preview/Interactive-preview'; +declare class MaterialPreview extends InteractivePreview { + private lightComp; + private modelComp; + private primitive; + private material; + private dummyUniformBuffer; + private dummyStorageTexture; + private dummySampleTexture; + private dummySampler; + private dummyStorageBuffer; + private uniformBuffer; + private storageBuffer; + init(registerName: string, queryName: string): void; + createNodes(scene: Scene): void; + setMaterial(material: Material | null): void; + updateDs(): void; + setPrimitive(primitive: string): void; + setLightEnable(enable: boolean): void; + onMouseDown(event: any): void; +} +export { MaterialPreview }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/material-preview/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/material-preview/index.d.ts.map new file mode 100644 index 0000000..29b3af6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/material-preview/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/material-preview/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,QAAQ,EAUR,KAAK,EAER,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AA8DpE,cAAM,eAAgB,SAAQ,kBAAkB;IAC5C,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAAyB;IAEzC,OAAO,CAAC,kBAAkB,CAAc;IAExC,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAc;IAE5B,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAkC5C,WAAW,CAAC,KAAK,EAAE,KAAK;IAYxB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAoCrC,QAAQ;IAsCR,YAAY,CAAC,SAAS,EAAE,MAAM;IAY9B,cAAc,CAAC,MAAM,EAAE,OAAO;IAM9B,WAAW,CAAC,KAAK,EAAE,GAAG;CAMhC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mesh-preview/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mesh-preview/index.d.ts new file mode 100644 index 0000000..9d14c5e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mesh-preview/index.d.ts @@ -0,0 +1,32 @@ +import { gfx, Scene, IVec3Like } from 'cc'; +import { InteractivePreview } from '../preview/Interactive-preview'; +interface IModelInfo { + vertices: number; + polygons: number; + uvs: number[]; + minPosition?: IVec3Like; + maxPosition?: IVec3Like; +} +declare class MeshPreview extends InteractivePreview { + private lightComp; + private _modelComp; + private _modelNode; + private _modelInfo; + private _defaultMat; + init(registerName: string, queryName: string): void; + createNodes(scene: Scene): void; + setMesh(uuid: string): Promise<IModelInfo | null>; + getModelUVs(uuid: string): Promise<{ + name: gfx.AttributeName; + buffer: any; + format: { + count: number; + }; + index: Uint8Array | Uint16Array | Uint32Array | null; + }[] | null>; + getModelInfo(): IModelInfo; + setLightEnable(enable: boolean): void; + onMouseDown(event: any): void; +} +export { MeshPreview }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mesh-preview/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mesh-preview/index.d.ts.map new file mode 100644 index 0000000..fea9b07 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mesh-preview/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/mesh-preview/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAIH,GAAG,EAOH,KAAK,EAKL,SAAS,EACZ,MAAM,IAAI,CAAC;AAKZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AASpE,UAAU,UAAU;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AA+ED,cAAM,WAAY,SAAQ,kBAAkB;IACxC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,UAAU,CAAqD;IACvE,OAAO,CAAC,WAAW,CAAY;IAExB,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI5C,WAAW,CAAC,KAAK,EAAE,KAAK;IAclB,OAAO,CAAC,IAAI,EAAE,MAAM;IA6BpB,WAAW,CAAC,IAAI,EAAE,MAAM;;;;;;;;IA8B9B,YAAY;IAIZ,cAAc,CAAC,MAAM,EAAE,OAAO;IAM9B,WAAW,CAAC,KAAK,EAAE,GAAG;CAKhC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/message.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/message.d.ts new file mode 100644 index 0000000..8d6d999 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/message.d.ts @@ -0,0 +1,9 @@ +declare class MessageManager { + private _timerUtil; + broadcast(name: string, ...msg: any[]): void; + IpcSend(name: string, ...msg: any[]): void; + broadcastChangeNodeMsg(uuid: string): void; +} +declare const messageManager: MessageManager; +export { messageManager }; +//# sourceMappingURL=message.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/message.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/message.d.ts.map new file mode 100644 index 0000000..9548a28 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/message.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/message.ts"],"names":[],"mappings":"AAEA,cAAM,cAAc;IAChB,OAAO,CAAC,UAAU,CAA8B;IAEzC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE;IAKrC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE;IAKnC,sBAAsB,CAAC,IAAI,EAAE,MAAM;CAO7C;AAED,QAAA,MAAM,cAAc,gBAAuB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/apply.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/apply.d.ts new file mode 100644 index 0000000..a654896 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/apply.d.ts @@ -0,0 +1,5 @@ +import { renderer } from 'cc'; +export declare function applyCamera(cameraComponent: any, camera?: renderer.scene.Camera | null): renderer.scene.Camera | null; +export declare function attachToScene(node: any, camera: any): void; +export declare function detachFromScene(camera: any): void; +//# sourceMappingURL=apply.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/apply.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/apply.d.ts.map new file mode 100644 index 0000000..ce150f9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/apply.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/mini-preview/apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAY9B,wBAAgB,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,GAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,IAAW,gCAuB5F;AAGD,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QASnD;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,QAI1C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/index.d.ts new file mode 100644 index 0000000..1f79181 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/index.d.ts @@ -0,0 +1,24 @@ +import { ISceneEvents } from '../scene-events-interface'; +import { CameraComponent, Node } from 'cc'; +import { PreviewBase } from '../preview/preview-base'; +export declare class MiniPreview extends PreviewBase implements ISceneEvents { + previewNodes: any; + scene: any; + renderScene: any; + currNode: any; + _previewInfo: any; + init(registerName: string, queryName: string): void; + onResize(): void; + setAspect(srcCamCom: any, tarCam: any): void; + onNodeChanged(node: Node): void; + onNodeRemoved(node: Node): void; + handleSelect(uuid: string): void; + handleUnselect(uuid: string): void; + onComponentRemoved(comp: CameraComponent): void; + private clearByComponent; + removePreviewNode(srcCamera: CameraComponent): void; + createPreviewNode(srcCamera: CameraComponent): any; + setPreviewInfo(): void; + getPreviewInfo(): any; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/index.d.ts.map new file mode 100644 index 0000000..bb9a8d2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/mini-preview/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAU,eAAe,EAAa,IAAI,EAAY,MAAM,IAAI,CAAC;AAKxE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,qBAAa,WAAY,SAAQ,WAAY,YAAW,YAAY;IAChE,YAAY,EAAE,GAAG,CAAM;IAEvB,KAAK,EAAE,GAAG,CAAQ;IAClB,WAAW,EAAE,GAAG,CAAQ;IAExB,QAAQ,EAAE,GAAG,CAAQ;IACrB,YAAY,EAAE,GAAG,CAAC;IAEX,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAiC5C,QAAQ;IAIf,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAS9B,aAAa,CAAC,IAAI,EAAE,IAAI;IAoBxB,aAAa,CAAC,IAAI,EAAE,IAAI;IAO/B,YAAY,CAAC,IAAI,EAAE,MAAM;IAWzB,cAAc,CAAC,IAAI,EAAE,MAAM;IAMpB,kBAAkB,CAAC,IAAI,EAAE,eAAe;IAM/C,OAAO,CAAC,gBAAgB;IAcxB,iBAAiB,CAAC,SAAS,EAAE,eAAe;IAgB5C,iBAAiB,CAAC,SAAS,EAAE,eAAe;IAuCrC,cAAc;IAKd,cAAc;CAGxB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/private.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/private.d.ts.map new file mode 100644 index 0000000..7ad9fd0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/mini-preview/private.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/mini-preview/private.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,EAAE,MAAM,IAAI,CAAC;AAqBpC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMpD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/model-preview/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/model-preview/index.d.ts new file mode 100644 index 0000000..ea72ecc --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/model-preview/index.d.ts @@ -0,0 +1,89 @@ +import { Scene } from 'cc'; +import { InteractivePreview } from '../preview/Interactive-preview'; +interface IModelInfo { + vertices: number; + polygons: number; +} +declare enum PlayState { + STOP = 0, + PLAYING = 1, + PAUSE = 2 +} +declare class ModelPreview extends InteractivePreview { + private lightComp; + private _modelNode; + private _modelInfo; + private _modelUUID?; + private _curEditClipUuid; + private _curEditClipRawClipIndex; + private _curEditTime; + private _needRecallPlay; + private _animationStateMap; + private _eventTarget; + private _curPlaybackRange; + private _animUpdateInterval; + private _curPlayState; + private _fps; + init(registerName: string, queryName: string): void; + createNodes(scene: Scene): void; + onSceneViewVisible(visible: boolean): void; + setModel(uuid: string): Promise<unknown>; + getModelInfo(): IModelInfo; + setLightEnable(enable: boolean): void; + onMouseDown(event: any): void; + hide(): void; + executeAnimationOperation(funcName: string, args?: any[]): Promise<void>; + private _registerAnimStateEvents; + private _unregisterAnimStateEVents; + setEditClip(clipUUID: string, rawClipIndex: number): void; + private getAnimationState; + private addUpdateListener; + private initAnimation; + update(): Promise<void>; + /** + * 播放一个节点上的指定动画 + * @param {string} clipUUID 需要播放的动画的uuid + */ + play(clipUUID?: string): Promise<boolean>; + /** + * 停止一个节点上所有动画 + */ + stop(): Promise<boolean>; + /** + * 暂停一个节点上正在播放的动画 + */ + pause(): Promise<boolean>; + /** + * 恢复一个节点上被暂停的动画 + */ + resume(): Promise<boolean>; + private _onAnimPlay; + private _onAnimPause; + private _onAnimResume; + private _onAnimStopped; + private _onAnimPlayEnd; + changePlayState(newState: PlayState): void; + /** + * 查询播放的clip的当前所在时间 + * @param {*} clipUuid clip的uuid + */ + queryPlayingClipTime(clipUUID?: string | null): Promise<number>; + /** + * 设置当前编辑的关键帧时间点 + * @param {number} time 时间 + */ + setCurEditTime(time: number): Promise<boolean>; + /** + * 设置播放区间 + * @param start 起始位置 + * @param end 终止位置 + */ + setPlaybackRange(start: number, end: number): Promise<boolean>; + clearUpdateListener(): void; + setClipConfig(config: { + wrapMode: number; + speed: number; + }): Promise<boolean>; +} +export { ModelPreview }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/model-preview/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/model-preview/index.d.ts.map new file mode 100644 index 0000000..ded4eab --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/model-preview/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/model-preview/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAYH,KAAK,EAUR,MAAM,IAAI,CAAC;AAUZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIpE,UAAU,UAAU;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,aAAK,SAAS;IACV,IAAI,IAAI;IACR,OAAO,IAAI;IACX,KAAK,IAAI;CACZ;AA4CD,cAAM,YAAa,SAAQ,kBAAkB;IACzC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,UAAU,CAAC,CAAS;IAG5B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,kBAAkB,CAAkE;IAC5F,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,iBAAiB,CAAkD;IAE3E,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,IAAI,CAAM;IAEX,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM5C,WAAW,CAAC,KAAK,EAAE,KAAK;IAM/B,kBAAkB,CAAC,OAAO,EAAE,OAAO;IAItB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAuC3B,YAAY;IAIZ,cAAc,CAAC,MAAM,EAAE,OAAO;IAM9B,WAAW,CAAC,KAAK,EAAE,GAAG;IAOtB,IAAI;IAKE,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,GAAG,EAAO;IAazE,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,0BAA0B;IAU3B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;YAW3C,iBAAiB;IAwD/B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,aAAa;IAsBR,MAAM;IAOnB;;;OAGG;IACU,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM;IAoBnC;;OAEG;IACU,IAAI;IAyBjB;;OAEG;IACU,KAAK;IAYlB;;OAEG;IACU,MAAM;IAenB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;YAKP,cAAc;YASd,cAAc;IAOrB,eAAe,CAAC,QAAQ,EAAE,SAAS;IAK1C;;;OAGG;IACU,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAY1D;;;OAGG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM;IAkCxC;;;;OAIG;IACU,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAmBjD,mBAAmB;IAQb,aAAa,CAAC,MAAM,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;CAgBvE;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/index.d.ts new file mode 100644 index 0000000..bba4bf0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/index.d.ts @@ -0,0 +1,282 @@ +import { IProperty, CreateNodeOptions } from '../../../../../@types/public'; +import EventEmitter from '../../../public/EventEmitter'; +import { Node, Component } from 'cc'; +import { ISceneEvents } from '../scene-events-interface'; +/** + * 节点管理器 + * + * Events: + * node.on('before-change', (node) => {}); + * node.on('before-add', (node) => {}); + * node.on('before-remove', (node) => {}); + * node.on('change', (node) => {}); + * node.on('add', (node) => {}); + * node.on('remove', (node) => {}); + */ +export declare class NodeManager extends EventEmitter implements ISceneEvents { + _onNodeAdded?: (...args: any[]) => void; + _onNodeChanged?: (...args: any[]) => void; + _onNodeRemoved?: (...args: any[]) => void; + _onTransformChanged?: (...args: any[]) => void; + _onSizeChanged?: (...args: any[]) => void; + _onAnchorChanged?: (...args: any[]) => void; + _onParentChanged?: (...args: any[]) => void; + _onLightProbeChanged?: (...args: any[]) => void; + private _timerUtil; + private _previewPropertysCache; + get creatableAssetTypes(): string[]; + init(): void; + /** + * 传入一个场景,将内部的节点全部缓存 + * @param {*} scene + */ + initWithScene(scene: any): void; + onSceneOpened(scene: any): void; + onSceneClosed(): void; + /** + * 注册引擎Node管理相关事件的监听 + */ + registerNodeMgrEvents(): void; + /** + * 反注册引擎Node管理相关事件的监听 + */ + unregisterNodeMgrEvents(): void; + /** + * 监听引擎发出的node事件 + * @param {*} node + */ + registerEventListeners(node: Node): void; + /** + * 取消监听引擎发出的node事件 + * @param {*} node + */ + unregisterEventListeners(node: Node): void; + onNodeTransformChanged(node: Node, transformBit: any): void; + onNodeSizeChanged(node: Node): void; + onNodeAnchorChanged(node: Node): void; + /** + * 监听引擎中节点 node.setParent(parent) 所发出来的事件 + * @param {*} parent + * @param {*} child + */ + onNodeParentChanged(parent: Node, child: Node): void; + /** + * 监听light-probe changed事件 + */ + onLightProbeChanged(node: Node): void; + /** + * 清空当前管理的节点 + */ + clear(): void; + /** + * 添加一个节点到管理器内 + * @param {*} node + */ + add(uuid: string, node: Node): void; + /** + * 一个节点被修改,由EditorExtends.Node.emit('change')触发 + * @param uuid + * @param node + */ + change(uuid: string, node: Node): void; + /** + * 从管理器内移除一个指定的节点 + * @param {*} node + */ + remove(uuid: string, node: Node): void; + /** + * 查询一个节点的实例 + * @param {*} uuid + * @return {cc.Node} + */ + query(uuid: string | undefined): Node | null; + /** + * 查询受管理的所有节点的 uuid 数组 + */ + queryUuids(): string[]; + /** + * 查询一个节点,并返回该节点的 dump 数据 + * 如果节点已被删除 parent = null,则返回 null + * @param {String} uuid + */ + queryDump(uuid: string): any; + /** + * 查询一个节点,并返回该节点的 dump 数据 + * 不论节点是否被删除 + * @param {String} uuid + */ + queryDumpAtAll(uuid: string): any; + /** + * 查询当前场景的节点树信息 + * @param uuid asset uuid + */ + queryNodesByAssetUuid(uuid: string): string[]; + /** + * 获取丢失资源的节点 + * @param + * @returns uuids[] 节点数组 + */ + queryNodesMissAsset(): string[]; + /** + * 预览设置属性后的效果,不进入undo堆栈 + * @param uuid + * @param path + * @param dump + * @returns + */ + previewSetNodeProperty(uuid: string, path: string, dump: IProperty): Promise<boolean>; + cancelPreviewSetNodeProperty(uuid: string, path: string): Promise<boolean>; + /** + * 设置一个节点的属性 + * @param {*} uuid + * @param {*} path + * @param {*} key + * @param {*} record 是否记录到undo堆栈上 + * @param {*} dump + */ + setProperty(uuid: string, path: string, dump: IProperty, record?: boolean): Promise<boolean>; + /** + * 设置属性的默认值 + * @param {*} uuid + * @param {*} path + * @param {*} type + */ + resetProperty(uuid: string, path: string): Promise<boolean>; + /** + * 将一个属性其现存值与定义类型值不匹配,或者为 null 默认值,改为一个可编辑的值 + * @param {*} uuid + * @param {*} path + */ + updatePropertyFromNull(uuid: string, path: string): Promise<boolean>; + /** + * 重置节点属性 position rotation scale + * @param {*} uuid + */ + resetNode(uuid: string): Promise<boolean>; + /** + * 设置某个节点连同它的子集的 layer 属性值 + * @param {*} uuid + * @param {*} dump + */ + setNodeAndChildrenLayer(uuid: string, dump: any): Promise<void>; + /** + * 调整一个数组类型的数据内某个 item 的位置 + * @param uuid 要被移动的节点或组件 + * @param path 数组的搜索路径 + * @param target 现在的索引位置 + * @param offset 偏移量 + */ + moveArrayElement(uuid: string, path: string, target: number, offset: number): boolean; + /** + * 删除一个数组元素 + * @param uuid 节点的 uuid + * @param path 元素所在数组的搜索路径 + * @param index 目标 item 原来的索引 + */ + removeArrayElement(uuid: string, path: string, index: number): boolean; + /** + * 创建一个组件并挂载到指定的 entity 上 + * @param uuid entity 的 uuid + * @param component 组件的 cid + */ + createComponent(uuid: string | string[], component: string): boolean; + /** + * 重置组件 + * @param uuid component 的 uuid + */ + resetComponent(uuid: string): Promise<boolean>; + /** + * 移除一个 entity 上的指定组件 + * @param uuid component 的 uuid + */ + removeComponent(uuid: string): boolean; + /** + * 复制节点的动作,给下一步粘贴(创建)节点准备数据 + * @param {*} uuids 单个 string 或 array + */ + copyNode(uuids: string | string[]): string[]; + /** + * 复制节点自身 + * 一般来自 ctrl + d 快捷键 + * @param uuids + */ + duplicateNode(uuids: string | string[]): string[]; + /** + * 粘贴被复制的节点 + * @param target + * @param uuids + * @param keepWorldTransform + */ + pasteNode(target: string | null | undefined, uuids: string | string[], keepWorldTransform?: boolean): string[]; + /** + * 挂载节点,如拖入和剪切 + * @param parent + * @param uuids + * @param keepWorldTransform + */ + setParent(parent: string, uuids: string | string[], keepWorldTransform?: boolean): string[]; + /** + * 实时获取新节点在一个父节点下的有效名称 + * 规则是 Node 同名时为 Node-001 + * @param name 名称 + * @param parentUuid 父节点 uuid + */ + generateAvailableName(name: string, parentUuid?: string): string; + /** + * 创建一个新节点 + * @param uuid + * @param name + * @param stashUuid + * @param keepWorldTransform + */ + createNode(uuid: string | null | undefined, name: any, stashUuid: string | null, keepWorldTransform?: boolean): string | null | undefined; + /** + * 确保节点有 UITransform 组件 + * 目前只需保障在创建空节点的时候检查任意上级是否为 canvas + */ + ensureUITransformComponent(node: Node): void; + restorePrefab(uuid: string, assetUuid: string): Promise<boolean>; + /** + * 从一个资源创建对应的节点 + * @param {*} parentUuid + * @param {*} assetUuid + * @param {*} options { type: 资源类型, position: 位置坐标(vector3), name: 新的名字, canvasRequired?: true 是否需要有 cc.Canvas 父级 } + */ + createNodeFromAsset(parentUuid: string | undefined | null, assetUuid: string, options: CreateNodeOptions): Promise<any>; + private _walkNode; + /** + * 删除节点 + * @param {*} uuids + * @param {*} keepWorldTransform + */ + removeNode(uuids: string | string[], keepWorldTransform?: boolean): void; + /** + * 锁定一个节点不让其在场景中被选中 + * @param uuids 节点uuid + * @param locked true | false + * @param loop true | false 是否循环子孙级节点设置 + */ + changeNodeLock(uuids: string | string[], locked: Boolean, loop: Boolean): void; + /** + * 查询节点上所有组件上可运行的方法名 + * @param {*} uuid + */ + queryComponentFunctionOfNode(uuid: string): any; + /** + * 过滤根节点 + * 过滤子父包含的关系,只留下彼此独立的父节点 uuid + * @param uuids + */ + canRemoveOrCopy(uuids: string[]): string[]; + /** + * 获取创建节点时所在的父节点 + * @param uuid 父节点 + */ + getNewNodeParent(uuid: string | null | undefined): any; + changeNodeUUID(oldUUID: string | undefined, newUUID: string | undefined): void; + addComponentAt(node: Node, comp: Component, index: number): boolean; + checkComponentsCollision(node: Node): void; +} +declare const _default: NodeManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/index.d.ts.map new file mode 100644 index 0000000..c410ad6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/node/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/utils.d.ts new file mode 100644 index 0000000..1266b77 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/utils.d.ts @@ -0,0 +1,33 @@ +import { Node, Scene } from 'cc'; +/** + * 爬取节点上的数据 + * @param node 节点 + * @param uuid2node 保存的变量 + */ +export declare function walkChild(node: Node, uuid2node: any): void; +/** + * 爬取 engine 内打开的场景的节点数据 + * @param {*} scene 场景 + * @param {*} uuid2node 保存的变量 + */ +export declare function walk(scene: any, uuid2node: any): void; +/** + * 获取有效的 ui Canvas 的节点,向上和向下找 + * @param node 节点 + */ +export declare function getUICanvasNode(node: Node, prefabLimitRoot?: boolean): Node | null; +/** + * 获取有效的有 UITransform 组件的父节点,只向上找 + * @param node 节点 + */ +export declare function getUITransformParentNode(node: Node): Node | null; +export declare function hasOneKindOfComponent(node: Node | Scene, kind: any): boolean; +/** + * 生成一个 node-001 格式的可用节点名称 + * @param name 被检查的名称 + * @param parent 父级节点 + * @returns {string} path 可用名称的文件路径 + */ +export declare function getNodeName(name: string, parent: Node): string; +export declare function visitNode(node: Node, visitor: (node: Node, isChild: boolean) => void | boolean, isChild?: boolean): void; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/utils.d.ts.map new file mode 100644 index 0000000..df5c1c4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/node/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/node/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAgC,KAAK,EAAE,MAAM,IAAI,CAAC;AAC/D;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAMnD;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QAE9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,UAAO,GAAG,IAAI,GAAG,IAAI,CA4C/E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAoChE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,WAUlE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,UAoBrD;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,EAAE,OAAO,UAAQ,QAS/G"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/operation.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/operation.d.ts new file mode 100644 index 0000000..a020ee1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/operation.d.ts @@ -0,0 +1,3 @@ +import operation from '../../public/operation'; +export default operation; +//# sourceMappingURL=operation.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/operation.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/operation.d.ts.map new file mode 100644 index 0000000..99c9843 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/operation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/operation.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle-2d/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle-2d/index.d.ts new file mode 100644 index 0000000..0b6b91a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle-2d/index.d.ts @@ -0,0 +1,7 @@ +export declare class Particle2DManager { + exportParticlePlist(compId: any): Promise<any>; + _applyPlistData(data: any, target: any): any; +} +declare const _default: Particle2DManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle-2d/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle-2d/index.d.ts.map new file mode 100644 index 0000000..30454f0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle-2d/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/particle-2d/index.ts"],"names":[],"mappings":"AAIA,qBAAa,iBAAiB;IACpB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA0CpD,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;CAqGzC;;AAED,wBAAuC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle.d.ts new file mode 100644 index 0000000..2fd1943 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle.d.ts @@ -0,0 +1,75 @@ +import { Node, ParticleSystemComponent, Component } from 'cc'; +import { ISceneEvents } from './scene-events-interface'; +import { IChangeNodeOptions, IOptionBase } from '../../../../@types/private'; +import { SceneModeType } from '../facade/scene-facade-state-interface'; +export declare class ParticleManager implements ISceneEvents { + private _currentMode?; + get currentMode(): SceneModeType; + set currentMode(mode: SceneModeType); + private readonly stoppedParticleSet; + private _selectedUUIDs; + private _onSelect; + private _onUnselect; + onResize?(opts: any): void; + onSceneOpened?(scene: any): void; + onSceneReload?(scene: any): void; + onSceneClosed?(scene: any): void; + onNodeChanged?(node: Node, opts: IChangeNodeOptions): void; + onAddNode?(node: Node): void; + onRemoveNode?(node: Node): void; + onNodeAdded?(node: Node, opts: IOptionBase): void; + onNodeRemoved?(node: Node, opts: IOptionBase): void; + onAddComponent?(comp: Component): void; + onRemoveComponent?(comp: Component): void; + onComponentAdded?(comp: Component, opts?: IOptionBase): void; + onComponentRemoved?(comp: Component, opts?: IOptionBase): void; + onAssetDeleted?(uuid: string, info?: any): void; + onAssetChanged?(uuid: string, info?: any, meta?: any): void; + onSelect(uuid: string, uuids: string[]): void; + onUnselect(uuid: string, uuids: string[]): void; + onEnterGeneralMode(): void; + onExitGeneralMode(): void; + onEnterAnimationMode(): void; + onExitAnimationMode(): void; + onEnterPrefabMode(): void; + onExitPrefabMode(): void; + init(): void; + /** + * 请求粒子系统运行时的数据 + * @param uuid 粒子组件的 uuid + */ + queryPlayInfo(uuid: string): { + speed: number; + time: string; + particle: number; + isPlaying: boolean; + } | null; + /** + * 设置粒子的运行速度 + * @param uuid 组件的 uuid + * @param speed 粒子组件的运行速度 + */ + setPlaySpeed(uuid: string, speed: number): void; + /** + * 这个播放的行为会将递归找当前选中节点的父节点,直到找到非包含粒子组件的节点为止,将找到的父节点一起播放 + */ + play(): void; + /** + * 这个停止的行为会将递归找当前选中节点父节点,直到找到非包含粒子组件的节点为止,将找到的父节点一起停止 + * @param uuid 节点的 uuid + */ + stop(): void; + /** + * 这个暂停的行为会将递归找当前选中的节点的父节点,直到找到非包含粒子组件的节点为止,将找到的父节点一起暂停 + * @param uuid + */ + pause(): void; + restart(): void; + /** + * 这个方法根据当前选中的粒子组件返回了所有应当响应的的粒子系统组件 + */ + getSelectedParticleSystemComponents(): ParticleSystemComponent[]; +} +declare const _default: ParticleManager; +export default _default; +//# sourceMappingURL=particle.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle.d.ts.map new file mode 100644 index 0000000..67544c0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/particle.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"particle.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/particle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,qBAAa,eAAgB,YAAW,YAAY;IAChD,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,IAAI,WAAW,IAAI,aAAa,CAE/B;IACD,IAAI,WAAW,CAAC,IAAI,EAAE,aAAa,EA+BlC;IACD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmD;IACtF,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,WAAW,CAA8C;IACjE,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAG1B,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAGhC,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAC1D,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAC5B,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAC/B,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IACjD,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAGnD,cAAc,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IACtC,iBAAiB,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IACzC,gBAAgB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI;IAK5D,kBAAkB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI;IAG9D,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IActC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAUxC,kBAAkB;IAMlB,iBAAiB;IAcjB,oBAAoB;IAQpB,mBAAmB;IACnB,iBAAiB;IAIjB,gBAAgB;IAKT,IAAI;IASX;;;OAGG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM;;;;;;IAajC;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAiB/C;;OAEG;IACI,IAAI;IAQX;;;OAGG;IACI,IAAI;IAQX;;;OAGG;IACI,KAAK;IAQL,OAAO;IAWd;;OAEG;IACI,mCAAmC,IAAI,uBAAuB,EAAE;CA+B1E;;AAED,wBAAqC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/index.d.ts new file mode 100644 index 0000000..f76bc9c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/index.d.ts @@ -0,0 +1,12 @@ +import { Node, PolygonCollider2D } from 'cc'; +export declare class Physics2DManager { + getContourPoints(node: Node, opts?: { + threshold: number; + loop: boolean; + }, cb?: Function): Promise<any>; + resetPoints(comp: PolygonCollider2D): void; + resetPointsByUuid(uuid: string): void; +} +declare const _default: Physics2DManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/index.d.ts.map new file mode 100644 index 0000000..37669f5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/physics-2d/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,IAAI,EAA0B,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAmB5G,qBAAa,gBAAgB;IAGnB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI;;;KAA+B,EAAE,EAAE,CAAC,EAAE,QAAQ;IAoErF,WAAW,CAAC,IAAI,EAAE,iBAAiB;IAcnC,iBAAiB,CAAC,IAAI,EAAE,MAAM;CAQjC;;AAED,wBAAsC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/marching-squares.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/marching-squares.d.ts new file mode 100644 index 0000000..1780cc5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/marching-squares.d.ts @@ -0,0 +1,13 @@ +export const NONE: number; +export const UP: number; +export const LEFT: number; +export const DOWN: number; +export const RIGHT: number; +export function getBlobOutlinePoints(data: any, width: any, height: any, loop: any): any[]; +export function getFirstNonTransparentPixelTopDown(): { + x: number; + y: number; +} | null; +export function walkPerimeter(startX: any, startY: any): any[]; +export function step(x: any, y: any, data: any): void; +//# sourceMappingURL=marching-squares.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/marching-squares.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/marching-squares.d.ts.map new file mode 100644 index 0000000..f42684a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/marching-squares.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"marching-squares.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/physics-2d/marching-squares.js"],"names":[],"mappings":";;;;;AAqBA,2FAmBC;AAED;;;SAeC;AAED,+DAsDC;AAMD,sDA4FC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/rdp.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/rdp.d.ts new file mode 100644 index 0000000..49d3c49 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/rdp.d.ts @@ -0,0 +1,3 @@ +export = RDP; +declare function RDP(points: any, epsilon: any): any; +//# sourceMappingURL=rdp.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/rdp.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/rdp.d.ts.map new file mode 100644 index 0000000..1d6ab9c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/physics-2d/rdp.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"rdp.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/physics-2d/rdp.js"],"names":[],"mappings":";AAkBA,qDA4BC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/plugin.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/plugin.d.ts new file mode 100644 index 0000000..af257ee --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/plugin.d.ts @@ -0,0 +1,39 @@ +import { ExecuteSceneScriptMethodOptions, ContributionDropItem } from '../../../../@types/public'; +import { Node } from 'cc'; +import { ISceneEvents } from './scene-events-interface'; +export declare class PluginManager implements ISceneEvents { + init(): Promise<void>; + onNodeChanged(node: Node): void; + /** + * 和外部的 plugin 交互 + * @param type 发送到的窗口类型 + * @param info + */ + sendToFloatWindow(type: string, info: any): void; + /** + * 强制更新一次 toolbar + */ + forceUpdateToolbar(): void; + /** + * 强制更新一次 float window + */ + forceUpdateFloatWindow(): void; + forceUpdatePlugin(): void; + /** + * 执行一个场景脚本 + * @param options + */ + executeSceneScript(options: ExecuteSceneScriptMethodOptions): Promise<any>; + /** + * 获取一个放置类型的处理方法 + * @param type + */ + getDropHandle(type: string): { + name: string; + item: ContributionDropItem; + } | null; + getScriptModuleMap(): any; +} +declare const _default: PluginManager; +export default _default; +//# sourceMappingURL=plugin.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/plugin.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/plugin.d.ts.map new file mode 100644 index 0000000..59ec8e7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/plugin.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,+BAA+B,EAC/B,oBAAoB,EAEvB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAa,IAAI,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAoBxD,qBAAa,aAAc,YAAW,YAAY;IACjC,IAAI;IAwDV,aAAa,CAAC,IAAI,EAAE,IAAI;IA6B/B;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAIhD;;OAEG;IACI,kBAAkB;IAIzB;;OAEG;IACI,sBAAsB;IAItB,iBAAiB;IAIxB;;;OAGG;IACU,kBAAkB,CAAC,OAAO,EAAE,+BAA+B;IAUxE;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,oBAAoB,CAAC;KAC9B,GAAG,IAAI;IAYR,kBAAkB;CAGrB;;AAoDD,wBAAmC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/component.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/component.d.ts new file mode 100644 index 0000000..7e38126 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/component.d.ts @@ -0,0 +1,47 @@ +import { Scene, Component, Node, Prefab } from 'cc'; +import { IOptionBase } from '../../../../../@types/private'; +declare type CompPrefabInfo = Prefab._utils.CompPrefabInfo; +declare const CompPrefabInfo: typeof Prefab._utils.CompPrefabInfo; +interface IComponentPrefabData { + prefabInfo: CompPrefabInfo | null; +} +/** + * Component 相关的操作 + */ +declare class ComponentOperation { + isRevertingRemovedComponents: boolean; + isRemovingMountedComponents: boolean; + private compMap; + cacheComp(comp: Component): void; + getCachedComp(uuid: string): Component; + clearCompCache(): void; + onAddComponent(comp: Component): void; + onComponentAdded(comp: Component, opts: IOptionBase): void; + onRemoveComponentInGeneralMode(comp: Component, rootNode: Node | Scene | null): void; + private onPrefabComponentRemoved; + onComponentRemovedInGeneralMode(comp: Component, rootNode: Node | Scene | null): void; + /** + * 将PrefabInstance上删除的组件应用到PrefabAsset中 + * @param nodeUUID 节点的uuid + * @param fileID component的fileID + */ + private doApplyRemovedComponent; + /** + * undo ApplyRemovedComponent 操作 + * @param IRemovedComponentInfo 移除的component信息 + */ + private undoApplyRemovedComponent; + applyRemovedComponent(nodeUUID: string, fileID: string): Promise<void>; + cloneComponentToNode(node: Node, clonedComp: Component): Promise<void>; + /** + * 撤销 removedComponent,会将PrefabAsset中的Component还原到当前节点上 + * @param nodeUUID node的UUID + * @param fileID component的fileID + */ + revertRemovedComponent(nodeUUID: string, fileID: string): Promise<void>; + updateMountedComponents(node: Node): null | undefined; + applyMountedComponents(node: Node): Map<string[], IComponentPrefabData> | undefined; +} +declare const componentOperation: ComponentOperation; +export { componentOperation, IComponentPrefabData }; +//# sourceMappingURL=component.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/component.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/component.d.ts.map new file mode 100644 index 0000000..9ec60bd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/prefab/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAmD,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAMrG,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,aAAK,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;AACnD,QAAA,MAAM,cAAc,qCAA+B,CAAC;AAEpD,UAAU,oBAAoB;IAC1B,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;CACrC;AA2BD;;GAEG;AACH,cAAM,kBAAkB;IACb,4BAA4B,UAAS;IACrC,2BAA2B,UAAS;IAC3C,OAAO,CAAC,OAAO,CAAqC;IAE7C,SAAS,CAAC,IAAI,EAAE,SAAS;IAIzB,aAAa,CAAC,IAAI,EAAE,MAAM;IAI1B,cAAc;IAId,cAAc,CAAC,IAAI,EAAE,SAAS;IAY9B,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW;IAenD,8BAA8B,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI;IAiBpF,OAAO,CAAC,wBAAwB;IAmCzB,+BAA+B,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI;IAQrF;;;;OAIG;YACW,uBAAuB;IA6FrC;;;OAGG;YACW,yBAAyB;IA+D1B,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAStD,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS;IAwBnE;;;;OAIG;IACU,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA4C7D,uBAAuB,CAAC,IAAI,EAAE,IAAI;IAsFlC,sBAAsB,CAAC,IAAI,EAAE,IAAI;CAiG3C;AAED,QAAA,MAAM,kBAAkB,oBAA2B,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/index.d.ts new file mode 100644 index 0000000..e2582cb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/index.d.ts @@ -0,0 +1,86 @@ +import { Node, Component, Scene } from 'cc'; +import { ISceneEvents } from '../scene-events-interface'; +import { IChangeNodeOptions, IOptionBase } from '../../../../../@types/private'; +export declare class PrefabManager implements ISceneEvents { + private _softReloadTimer; + private _utils; + init(): void; + onSceneOpened(scene: any): void; + onNodeRemoved(node: Node): void; + onNodeChangedInGeneralMode(node: Node, opts: IChangeNodeOptions, root: Node | Scene | null): void; + onAddNode(node: Node): void; + onNodeAdded(node: Node, opts: IOptionBase): void; + removePrefabInfoFromNode(node: Node, removeNested?: boolean): void; + checkToRemoveTargetOverride(source: Node | Component, root: Node | Scene | null): void; + /** + * 从一个节点生成一个PrefabAsset + * @param nodeUUID + */ + createPrefabAssetFromNode(nodeUUID: string, url: string): Promise<string | null | undefined>; + /** + * 将一个 node 与一个 prefab 关联到一起 + * @param {*} nodeUuid 也支持 node 对象,会做为prefab的根节点 + * @param {*} assetUuid 关联的资源 + */ + linkNodeWithPrefabAsset(nodeUUID: string | Node, assetUuid: string | any): Promise<void>; + /** + * 从一个节点生成 prefab数据 + * 返回序列化数据 + * @param {*} nodeUUID + */ + generatePrefabDataFromNode(nodeUUID: string | Node): string | null; + /** + * 还原一个PrefabInstance的数据为它所关联的PrefabAsset + * @param nodeUUID node + */ + revertPrefab(nodeUUID: Node | string): Promise<boolean>; + /** + * 解除PrefabInstance对PrefabAsset的关联 + * @param nodeUUID 节点或节点的UUID + * @param removeNested 是否递归的解除子节点PrefabInstance + */ + unWrapPrefabInstance(nodeUUID: string | Node, removeNested?: boolean): void; + unWrapPrefabInstanceInPrefabMode(nodeUUID: string | Node, removeNested?: boolean): void; + /** + * 将一个PrefabInstance的数据应用到对应的Asset资源上 + * @param nodeUUID uuid + */ + applyPrefab(nodeUUID: string): Promise<boolean>; + onAddComponent(comp: Component): void; + onComponentAdded(comp: Component, opts: IOptionBase): void; + onRemoveComponentInGeneralMode(comp: Component, rootNode: Node | Scene | null): void; + onComponentRemovedInGeneralMode(comp: Component, rootNode: Node | Scene | null): void; + revertRemovedComponent(nodeUUID: string, fileID: string): Promise<void>; + applyRemovedComponent(nodeUUID: string, fileID: string): Promise<void>; + onAssetChanged(uuid: string, info: any, meta: any): Promise<void>; + onAssetDeleted(uuid: string): Promise<void>; + /** + * 将一个节点恢复到关联的 prefab 的状态 + * @param {*} nodeUuid + */ + revert(nodeUuid: string): void; + /** + * 将一个节点的修改,应用到关联的 prefab 上 + * @param {*} nodeUuid + */ + sync(nodeUuid: string): void; + createNodeFromPrefabAsset(asset: any): Node | null; + filterChildOfAssetOfPrefabInstance(uuids: string | string[], operationTips: string): string[]; + filterPartOfPrefabAsset(uuids: string | string[], operationTips: string): string[]; + filterChildOfPrefabAssetWhenRemoveNode(uuids: string | string[]): string[]; + filterChildOfPrefabAssetWhenSetParent(uuids: string | string[]): string[]; + canModifySibling(uuid: string, target: number, offset: number): boolean; + filterPartOfPrefabAssetWhenCreateComponent(uuids: string | string[]): string[]; + filterPartOfPrefabAssetWhenRemoveComponent(uuids: string | string[]): string[]; + /** + * 暴力遍历root所有属性,找到rule返回true的路径 + * 比如找Scene节点的路径,rule = (obj)=> return obj.globals + * @param root 根节点 + * @param rule 判断函数 + * @returns + */ + findPathWithRule(root: Node, rule: Function): string[]; +} +declare const _default: PrefabManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/index.d.ts.map new file mode 100644 index 0000000..1fa21ad --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/prefab/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/node.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/node.d.ts new file mode 100644 index 0000000..4a843e2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/node.d.ts @@ -0,0 +1,117 @@ +import { Component, Node, Prefab, Scene } from 'cc'; +import { IChangeNodeOptions, IOptionBase } from '../../../../../@types/private'; +declare type PrefabInfo = Prefab._utils.PrefabInfo; +declare const PrefabInfo: typeof Prefab._utils.PrefabInfo; +declare type PrefabInstance = Prefab._utils.PrefabInstance; +interface IDiffPropertyInfo { + pathKeys: string[]; + value: any; +} +interface INodePrefabData { + prefabInfo: PrefabInfo | null; +} +declare class NodeOperation { + assetToNodesMap: Map<string, Node[]>; + isRemovingMountedChildren: boolean; + private _timerUtil; + onSceneOpened(scene: any): void; + onNodeRemoved(node: Node): void; + private checkToAddOverrides; + onNodeChangedInGeneralMode(node: Node, opts: IChangeNodeOptions, root: Node | Scene | null): void; + onAddNode(node: Node): void; + onNodeAdded(node: Node, opts: IOptionBase): void; + /** + * 当一个组件需要引用到别的PrefabInstance中的 + * @param target 要检查的组件 + * @param diffInfo 差异数据 + * @param root 根节点 + * @returns + */ + checkToAddTargetOverride(target: Component, diffInfo: IDiffPropertyInfo, root: Node | null): boolean; + private checkToAddPropertyOverrides; + private isInTargetOverrides; + private isInPropertyOverrides; + /** + * 对比得到两个ccClass的差异数据 + * @param curTarget 对比的对象 + * @param comparedTarget 被比较的对象 + * @param propPathKeys 当前对象的属性路径数组 + * @param isModifiedFunc 用于判断属性是否被修改的方法 + * @returns + */ + private getDiffPropertyInfos; + private handleDiffPropertyInfos; + /** + * 直接通过修改节点路径来判断添加targetOverride信息 + * @param node 修改的节点 + * @param pathKeys 属性键值路径 + */ + private addTargetOverrideWithModifyPath; + private checkToAddPrefabAssetMap; + /** + * 判断是否是需要保留的PropertyOverride + * @param propOverride Prefab实例 + * @param prefabRootFileId prefab根节点的FileId + */ + isReservedPropertyOverrides(propOverride: Prefab._utils.PropertyOverrideInfo, prefabRootFileId: string): boolean; + /** + * 移除实例的PropertyOverrides,保留一些一般不需要和PrefabAsset自动同步的覆盖 + * @param prefabInstance Prefab实例 + * @param prefabRootFileId prefab根节点的FileId + */ + removeModifiedPropertyOverrides(prefabInstance: PrefabInstance, prefabRootFileId: string): void; + applyMountedChildren(node: Node): Map<string[], INodePrefabData> | undefined; + applyPropertyOverrides(node: Node): void; + applyTargetOverrides(node: Node): Prefab._utils.TargetOverrideInfo[]; + applyRemovedComponents(node: Node): null | undefined; + protected waitForSceneLoaded(): Promise<boolean>; + /** + * 将一个PrefabInstance的数据应用到对应的Asset资源上 + * @param nodeUUID uuid + */ + applyPrefab(nodeUUID: string): Promise<boolean>; + private doApplyPrefab; + private undoApplyPrefab; + updateChildrenData(node: Node): void; + private isCircularRefPrefabInstance; + canBeMadeToPrefabAsset(node: Node): boolean; + /** + * 从一个节点生成一个PrefabAsset + * @param nodeUUID + */ + createPrefabAssetFromNode(nodeUUID: string, url: string): Promise<string | null | undefined>; + /** + * 将一个 node 与一个 prefab 关联到一起 + * @param {*} nodeUuid 也支持 node 对象,会做为prefab的根节点 + * @param {*} assetUuid 关联的资源 + */ + linkNodeWithPrefabAsset(nodeUUID: string | Node, assetUuid: string | any): Promise<boolean | undefined>; + /** + * 把嵌套预制体的propertOverrides信息更新到新的预制体实例上 + * @param prefabNode 待同步的预制体节点 + * @param root 带有所有预制体实例信息的根节点 + */ + syncPropertyOverrides(prefabNode: Node, rootNode: Node): void; + syncPrefabInfo(assetNode: Node, dstNode: Node, rootNode: Node): void; + createReservedPropertyOverrides(node: Node): void; + revertPropertyOverrideOfTarget(node: Node, opts: IChangeNodeOptions): boolean; + revertPropertyOverride(propOverride: Prefab._utils.PropertyOverrideInfo, curNodeTargetMap: any, assetTargetMap: any): boolean; + /** + * 还原一个PrefabInstance的数据为它所关联的PrefabAsset + * @param nodeUUID node + */ + revertPrefab(nodeUUID: Node | string): Promise<boolean>; + removePrefabInfoFromNode(node: Node, removeNested?: boolean): void; + removePrefabInfoFromInstanceNode(node: Node, removeNested?: boolean): void; + removePrefabInstanceAndChangeRoot(node: Node, rootNode: Node, removeNested?: boolean): void; + /** + * 解除PrefabInstance对PrefabAsset的关联 + * @param nodeUUID 节点或节点的UUID + * @param removeNested 是否递归的解除子节点PrefabInstance + */ + unWrapPrefabInstance(nodeUUID: string | Node, removeNested?: boolean): void; + unWrapPrefabInstanceInPrefabMode(nodeUUID: string | Node, removeNested?: boolean): void; +} +declare const nodeOperation: NodeOperation; +export { nodeOperation, INodePrefabData }; +//# sourceMappingURL=node.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/node.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/node.d.ts.map new file mode 100644 index 0000000..1af2099 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/node.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/prefab/node.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/utils.d.ts new file mode 100644 index 0000000..8f17251 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/utils.d.ts @@ -0,0 +1,143 @@ +import { Component, Node, Prefab, Scene } from 'cc'; +declare type PrefabInfo = Prefab._utils.PrefabInfo; +declare const PrefabInfo: typeof Prefab._utils.PrefabInfo; +declare type PrefabInstance = Prefab._utils.PrefabInstance; +declare const PrefabInstance: typeof Prefab._utils.PrefabInstance; +declare type PropertyOverrideInfo = Prefab._utils.PropertyOverrideInfo; +declare const PropertyOverrideInfo: typeof Prefab._utils.PropertyOverrideInfo; +declare type TargetOverrideInfo = Prefab._utils.TargetOverrideInfo; +declare const TargetOverrideInfo: typeof Prefab._utils.TargetOverrideInfo; +declare enum PrefabState { + NotAPrefab = 0, + PrefabChild = 1, + PrefabInstance = 2, + PrefabLostAsset = 3 +} +declare class PrefabUtil { + static PrefabState: typeof PrefabState; + private assetTargetMapCache; + private prefabAssetNodeInstanceMap; + getPrefab(node: Node): PrefabInfo | null; + fireBeforeChangeMsg(node: Node): void; + fireChangeMsg(node: Node | Scene, opts?: any): void; + getPrefabAssetNodeInstance(prefabInfo: PrefabInfo): Node | undefined; + clearCache(): void; + removePrefabAssetNodeInstanceCache(prefabInfo: PrefabInfo): void; + getTargetMap(node: Node, useCache?: boolean): {} | undefined; + private generateTargetMap; + getPropertyOverrideLocationInfo(node: Node, pathKeys: string[]): { + outMostPrefabInstanceNode: Node; + targetPath: string[]; + relativePathKeys: string[]; + target: Node; + } | null; + private oldGetDumpableNode; + getPrefabForSerialize(node: Node, quiet?: boolean | undefined): any; + addPrefabInfo(node: Node, rootNode: Node, prefab: Prefab | undefined): any; + walkNode(node: Node, handle: (node: Node, isChild: boolean) => boolean | void, isChild?: boolean): void; + addPrefabInfoToComponent(comp: Component): void; + generatePrefabDumpableNode(node: Node, prefab: Prefab): any; + /** + * 从一个节点生成 prefab数据 + * 返回序列化数据 + * @param {*} nodeUUID + */ + generatePrefabDataFromNode(nodeUUID: string | Node): string | null; + removeMountedRootInfo(node: Node): void; + generateUUID(): string; + createPrefabInstance(): Prefab._utils.PrefabInstance; + createPrefabInfo(fileId: string): Prefab._utils.PrefabInfo; + cloneInstanceWithNewFileId(instance: PrefabInstance): Prefab._utils.PrefabInstance; + getPrefabInstanceRoot(node: Node): Node | null; + isSameSourceTargetOverride(targetOverride: TargetOverrideInfo, source: Component | Node, sourceLocalID: string[] | undefined, propPath: string[]): boolean; + getSourceData(source: Component): { + sourceTarget: Node | Component; + sourceLocalID: string[] | undefined; + } | null; + removeTargetOverrideBySource(prefabInfo: PrefabInfo | undefined, source: Node | Component): boolean; + removeTargetOverride(prefabInfo: PrefabInfo | undefined | null, source: Component, propPath: string[]): boolean; + isInTargetOverrides(targetOverrides: TargetOverrideInfo[], source: Component, propPath: string[]): boolean; + getTargetOverride(prefabInfo: PrefabInfo, source: Component, propPath: string[]): Prefab._utils.TargetOverrideInfo | null; + getPropertyOverridesOfTarget(prefabInstance: PrefabInstance, localID: string[]): Prefab._utils.PropertyOverrideInfo[]; + isInPropertyOverrides(propPath: string[], propertyOverrides: PropertyOverrideInfo[]): boolean; + getPropertyOverride(prefabInstance: PrefabInstance, localID: string[], propPath: string[]): Prefab._utils.PropertyOverrideInfo; + removePropertyOverride(prefabInstance: PrefabInstance, localID: string[], propPath: string[]): void; + findPrefabInstanceMountedChildren(prefabInstance: PrefabInstance, localID: string[]): Prefab._utils.MountedChildrenInfo | null; + createMountedChildrenInfo(localID: string[]): Prefab._utils.MountedChildrenInfo; + getPrefabInstanceMountedChildren(prefabInstance: PrefabInstance, localID: string[]): Prefab._utils.MountedChildrenInfo; + getPrefabInstanceMountedComponents(prefabInstance: PrefabInstance, localID: string[]): Prefab._utils.MountedComponentsInfo; + addRemovedComponent(prefabInstance: PrefabInstance, localID: string[]): void; + deleteRemovedComponent(prefabInstance: PrefabInstance, localID: string[]): void; + /** + * whether the node is child of a prefab + * @param node node + */ + isChildOfPrefabInstance(node: Node): boolean; + isPrefabInstanceRoot(node: Node): boolean; + isChildOfPrefabAsset(node: Node): boolean; + isPartOfPrefabAsset(node: Node): boolean; + /** + * whether the node is part of a prefab, + * root of prefab is also part of prefab + * @param node node + */ + isPartOfPrefabInstance(node: Node): boolean; + isPartOfAssetInPrefabInstance(node: Node): boolean; + /** + * 需要考虑很多种嵌套情况,需要注意mountedChild上又挂其它prefab的问题 + * 1. prefabA->node... + * 2. prefabA->moutedNode->prefabB->node + * 3. prefabA->moutedPrefabB->node + * 4. prefabA->moutedPrefabB->prefabC->node + * 5. prefabA->prefabB->node + * @param node + * @returns + */ + getOutMostPrefabInstanceInfo(node: Node): { + outMostPrefabInstanceNode: Node | null; + targetPath: string[]; + }; + isSceneNode(node: Node): boolean; + getPrefabStateInfo(node: Node): { + state: PrefabState; + isUnwrappable: boolean; + isRevertable: boolean; + isApplicable: boolean; + isAddedChild: boolean; + assetUuid: string; + }; + getMountedRoot(nodeOrComp: Node | Component): Node | undefined; + setMountedRoot(nodeOrComp: Node | Component, mountedRoot: Node | undefined): void; + private isMountedChildOf; + isMountedComponent(component: Component): boolean; + getRemovedComponents(node: Node): Component[]; + checkToRemoveTargetOverride(source: Node | Component, root: Node | Scene | null): void; + findOutmostPrefabInstanceNodes(node: Node, instanceRoots: Node[]): void; + gatherPrefabInstanceRoots(rootNode: Node | Scene): void; + isSubAsset(uuid: string): boolean; + removePrefabInfo(node: Node): void; + checkMountedRootData(node: Node, recursively: boolean): void; + removePrefabInstanceRoots(rootNode: Node | Scene): void; + checkTargetOverridesData(node: Node | Scene): void; + /** + * 判断节点是否是最外一层的PrefabInstance的Mounted节点 + * mountedChild的普通子节点也需要判断 + * @param node + * @returns + */ + isOutmostPrefabInstanceMountedChildren(node: Node): boolean; + /** + * 脚本属性不存在时,或者预制体内的子节点/组件丢失时,要移除数据 + * @param root + */ + removeInvalidTargetOverrides(root: Node): void; + /** + * 清除预制体中,嵌套预制体的propertOverrides对非预制体子节点的引用 + * @param root 预制体根节点 + * @return {nestedPrefabInstanceRoots:{illegalReference}} + */ + removeInvalidPropertyOverrideReference(root: Node): Map<any, any>; +} +declare const prefabUtils: PrefabUtil; +export { prefabUtils, PrefabState }; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/utils.d.ts.map new file mode 100644 index 0000000..4e85739 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/prefab/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/prefab/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview-play/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview-play/index.d.ts new file mode 100644 index 0000000..d894a7a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview-play/index.d.ts @@ -0,0 +1,62 @@ +import EventEmitter from '../../../public/EventEmitter'; +export declare class PreviewPlay extends EventEmitter { + private _currSceneData; + private _state; + private _fps; + private _onSceneLaunch; + private _onSceneBeforeLaunch; + private _onDirectorEndFrame; + private _windowKeys; + private _scene; + private _updateInspectorHandler; + private _sceneLightOn; + private _isNative; + startSceneJson: any; + private _rotate; + constructor(); + getGameScene(sceneJson?: string): Promise<unknown>; + beforeLaunch(): void; + /** + * 旋转屏幕 + * @param rotate true横屏false竖屏,默认竖屏 + */ + rotateScene(rotate: boolean): void; + setResolution(width: number, height: number): void; + showState(show: boolean): void; + setFps(fps: number): void; + isPause(): boolean; + firstResume: boolean; + pause(isPause: boolean): void; + /** + * 步进 + */ + step(): Promise<void>; + /** + * 进入gameview + * @param sceneJson:当前场景的json + */ + start(sceneJson?: string): Promise<void>; + /** + * 退出gameview + */ + stop(): Promise<void>; + hideEditorCamera(): void; + showEditorCamera(): void; + setPlatform(platform: string): void; + onSceneLaunch(scene: any): void; + onSceneBeforeLaunch(scene: any): void; + onDirectorEndFrame(): void; + /** + * 选中节点时,由于不是所有改动都会触发node-change,比如node.active + * 这样会导致inspector界面没有准确更新数据, + * 添加一个定时器,定时触发消息更新inspector + */ + private _updateInspector; + private _recordGlobal; + private _resetGlobal; + private _registerEvent; + private _unregisterEvent; +} +declare const preview: PreviewPlay; +export default preview; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview-play/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview-play/index.d.ts.map new file mode 100644 index 0000000..53cf6a2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview-play/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/preview-play/index.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAaxD,qBAAa,WAAY,SAAQ,YAAY;IACzC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAS;IACnB,cAAc,EAAE,GAAG,CAAC;IAC3B,OAAO,CAAC,OAAO,CAAS;;IASlB,YAAY,CAAC,SAAS,SAAK;IAwBjC,YAAY;IAIZ;;;OAGG;IACI,WAAW,CAAC,MAAM,EAAE,OAAO;IAM3B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK3C,SAAS,CAAC,IAAI,EAAE,OAAO;IAMvB,MAAM,CAAC,GAAG,EAAE,MAAM;IAUlB,OAAO,IAAI,OAAO;IAIzB,WAAW,UAAQ;IACZ,KAAK,CAAC,OAAO,EAAE,OAAO;IA0B7B;;OAEG;IACU,IAAI;IAMjB;;;OAGG;IACG,KAAK,CAAC,SAAS,SAAK;IA2D1B;;OAEG;IACU,IAAI;IAwBjB,gBAAgB;IAmChB,gBAAgB;IAiBhB,WAAW,CAAC,QAAQ,EAAE,MAAM;IAKrB,aAAa,CAAC,KAAK,EAAE,GAAG;IAUxB,mBAAmB,CAAC,KAAK,EAAE,GAAG;IAS9B,kBAAkB;IAOzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,gBAAgB;CAM3B;AACD,QAAA,MAAM,OAAO,aAAoB,CAAC;AAClC,eAAe,OAAO,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/Interactive-preview.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/Interactive-preview.d.ts new file mode 100644 index 0000000..01b9f0a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/Interactive-preview.d.ts @@ -0,0 +1,27 @@ +import { Camera, geometry, Node, Quat, renderer, Scene, Vec3 } from 'cc'; +import { PreviewBase } from './preview-base'; +/** + * 可交互的Preview窗口基类,可以在窗口中方便的预览场景中的元素 + */ +declare class InteractivePreview extends PreviewBase { + protected scene: Scene; + protected cameraComp: Camera; + protected camera: renderer.scene.Camera | any; + protected _isMouseDown: boolean; + protected _viewDist: number; + protected orbitRotateSpeed: number; + protected _curCameraRot: Quat; + protected _viewCenter: Vec3; + createNodes(scene: Scene): void; + init(registerName: string, queryName: string): void; + protected autoPerfectCameraViewOnModel(model: Node): void; + protected perfectCameraView(boundary: geometry.AABB | null | undefined): void; + protected getFitDistance(boundary: geometry.AABB | null | undefined): number; + onMouseDown(event: any): void; + onMouseMove(event: any): void; + onMouseUp(event: any): void; + protected move(dx: number, dy: number): void; + hide(): void; +} +export { InteractivePreview }; +//# sourceMappingURL=Interactive-preview.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/Interactive-preview.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/Interactive-preview.d.ts.map new file mode 100644 index 0000000..17a5e0b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/Interactive-preview.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Interactive-preview.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/preview/Interactive-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C;;GAEG;AACH,cAAM,kBAAmB,SAAQ,WAAW;IACxC,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC;IACxB,SAAS,CAAC,UAAU,EAAG,MAAM,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAC9C,SAAS,CAAC,YAAY,UAAS;IAC/B,SAAS,CAAC,SAAS,SAAM;IACzB,SAAS,CAAC,gBAAgB,SAAQ;IAClC,SAAS,CAAC,aAAa,OAAc;IACrC,SAAS,CAAC,WAAW,OAAc;IAE5B,WAAW,CAAC,KAAK,EAAE,KAAK;IAGxB,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IA0BnD,SAAS,CAAC,4BAA4B,CAAC,KAAK,EAAE,IAAI;IAIlD,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAC,IAAI,GAAC,SAAS;IAclE,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAC,IAAI,GAAC,SAAS;IAkBxD,WAAW,CAAC,KAAK,EAAE,GAAG;IAMtB,WAAW,CAAC,KAAK,EAAE,GAAG;IAItB,SAAS,CAAC,KAAK,EAAE,GAAG;IAI3B,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAqB9B,IAAI;CAGd;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/buffer.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/buffer.d.ts new file mode 100644 index 0000000..1c275c6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/buffer.d.ts @@ -0,0 +1,44 @@ +import { EventEmitter } from '../../../utils/event-emitter'; +import { gfx } from 'cc'; +export interface IWindowInfo { + index: number; + uuid: string; + name: string; + window?: any; +} +declare class PreviewBuffer extends EventEmitter { + private _name; + device: any; + width: number; + height: number; + data: Uint8Array; + renderScene: any; + scene: any; + windows: any; + window: null; + regions: gfx.BufferTextureCopy[]; + renderData: any; + queue: any[]; + lock: boolean; + _registerName?: string; + constructor(registerName: string, name: string, scene?: any); + resize(width: number, height: number, window?: any): void; + /** + * WARNING: DO'NOT USE IT BEFORE DRAW!!! + */ + clear(): void; + createWindow(uuid?: string | null): void; + removeWindow(uuid: string): void; + onLoadScene(scene: any): void; + switchCameras(camera: any, currWindow: any): void; + needInvertGFXApi: gfx.API[]; + copyFrameBuffer(window?: any): any; + static indexOfRGBA: number[]; + static indexOfBGRA: number[]; + formatBuffer(buffer: Uint8Array, needInvert: boolean, conversionBGRA: boolean): Uint8Array; + getImageDataInQueue(width: number, height: number, event: any): void; + step(): Promise<void>; + getImageData(width: number, height: number): Promise<any>; +} +export default PreviewBuffer; +//# sourceMappingURL=buffer.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/buffer.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/buffer.d.ts.map new file mode 100644 index 0000000..a0581cb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/buffer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/preview/buffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAqC,GAAG,EAAY,MAAM,IAAI,CAAC;AAMtE,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,cAAM,aAAc,SAAQ,YAAY;IACpC,OAAO,CAAC,KAAK,CAAS;IACtB,MAAM,MAA2B;IACjC,KAAK,SAAiD;IACtD,MAAM,SAAkD;IACxD,IAAI,aAAgD;IACpD,WAAW,EAAE,GAAG,CAAQ;IACxB,KAAK,EAAE,GAAG,CAAQ;IAClB,OAAO,EAAE,GAAG,CAAM;IAClB,MAAM,OAAQ;IAEd,OAAO,0BAAiC;IACxC,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,UAAS;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;gBACX,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,GAAU;IAsB1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,GAAU;IAa/D;;OAEG;IACI,KAAK;IAQZ,YAAY,CAAC,IAAI,GAAE,MAAM,GAAG,IAAW;IAsBvC,YAAY,CAAC,IAAI,EAAE,MAAM;IAQzB,WAAW,CAAC,KAAK,EAAE,GAAG;IAatB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;IASnC,gBAAgB,YAKrB;IAEF,eAAe,CAAC,MAAM,GAAE,GAAU;IAmBlC,MAAM,CAAC,WAAW,WAAgB;IAClC,MAAM,CAAC,WAAW,WAAgB;IAClC,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO;IAqC7E,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAYvD,IAAI;IAiBJ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CA4CnD;AACD,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/index.d.ts new file mode 100644 index 0000000..82737a7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/index.d.ts @@ -0,0 +1,30 @@ +import { MaterialPreview } from '../material-preview'; +import { MeshPreview } from '../mesh-preview'; +import { MiniPreview } from '../mini-preview'; +import { ModelPreview } from '../model-preview'; +import { SkeletonPreview } from '../skeleton-preview'; +import { MotionPreview } from '../animation-graph-preview/motion'; +import { TransitionPreview } from '../animation-graph-preview/transition'; +import { PreviewBase } from './preview-base'; +export declare class PreviewManager { + _previewMgrMap: Map<string, PreviewBase>; + scenePreview: import("./scene-preview").ScenePreview; + materialPreview: MaterialPreview; + miniPreview: MiniPreview; + modelPreview: ModelPreview; + meshPreview: MeshPreview; + skeletonPreview: SkeletonPreview; + motionPreview: MotionPreview; + transitionPreview: TransitionPreview; + _electronIPC: any; + init(): void; + private initPreview; + queryPreviewData(previewName: string, info: any): Promise<any>; + callPreviewFunction(previewName: string, funcName: string, ...args: any[]): Promise<any>; + unregisterPreview(): void; + registerPreview(): void; + private _register; +} +declare const previewMgr: PreviewManager; +export { previewMgr }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/index.d.ts.map new file mode 100644 index 0000000..6766e8d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/preview/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,qBAAa,cAAc;IACvB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAkC;IAC1E,YAAY,yCAAgB;IAC5B,eAAe,kBAAyB;IACxC,WAAW,cAAqB;IAChC,YAAY,eAAsB;IAClC,WAAW,cAAqB;IAChC,eAAe,kBAAyB;IACxC,aAAa,gBAAuB;IACpC,iBAAiB,oBAA2B;IAC5C,YAAY,EAAE,GAAG,CAAQ;IAElB,IAAI;YAcG,WAAW;IAUZ,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAS/C,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAY/E,iBAAiB;IAKjB,eAAe;IAKtB,OAAO,CAAC,SAAS;CAUpB;AAED,QAAA,MAAM,UAAU,gBAAuB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/preview-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/preview-base.d.ts new file mode 100644 index 0000000..2de2053 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/preview-base.d.ts @@ -0,0 +1,10 @@ +import PreviewBuffer from './buffer'; +declare class PreviewBase { + protected previewBuffer: PreviewBuffer; + queryPreviewData(info: any): Promise<any>; + queryPreviewDataQueue(info: any, event: any): void; + clearPreviewBuffer(): void; + init(registerName: string, queryName: string): void; +} +export { PreviewBase }; +//# sourceMappingURL=preview-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/preview-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/preview-base.d.ts.map new file mode 100644 index 0000000..89fcb79 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/preview-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"preview-base.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/preview/preview-base.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,UAAU,CAAC;AAErC,cAAM,WAAW;IACb,SAAS,CAAC,aAAa,EAAG,aAAa,CAAC;IAC3B,gBAAgB,CAAC,IAAI,EAAE,GAAG;IAKhC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAGlD,kBAAkB;IAIX,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CACtD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/scene-preview/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/scene-preview/index.d.ts new file mode 100644 index 0000000..31c1c20 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/scene-preview/index.d.ts @@ -0,0 +1,18 @@ +import { CameraComponent } from 'cc'; +import { ISceneEvents } from '../../scene-events-interface'; +import { PreviewBase } from '../preview-base'; +/** + * Scene Preview is **DETACH SCENE CAMERA** + * > don't use it preview Scene + */ +export declare class ScenePreview extends PreviewBase implements ISceneEvents { + device: any; + width: number; + height: number; + init(registerName: string, queryName: string): void; + onComponentAdded(comp: CameraComponent): void; + detachSceneCameras(): void; +} +declare const scenePreview: ScenePreview; +export { scenePreview }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/scene-preview/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/scene-preview/index.d.ts.map new file mode 100644 index 0000000..3c9289a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/preview/scene-preview/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/preview/scene-preview/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,eAAe,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;;GAGG;AACH,qBAAa,YAAa,SAAQ,WAAY,YAAW,YAAY;IACjE,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,SAAK;IACV,MAAM,SAAK;IAEJ,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAS5C,gBAAgB,CAAC,IAAI,EAAE,eAAe;IAY7C,kBAAkB;CA8BrB;AACD,QAAA,MAAM,YAAY,cAAqB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-events-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-events-interface.d.ts new file mode 100644 index 0000000..c47aac0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-events-interface.d.ts @@ -0,0 +1,21 @@ +import { IChangeNodeOptions, IOptionBase } from '../../../../@types/private'; +import { Node, Component, ISizeLike } from 'cc'; +interface ISceneEvents { + onResize?(opts: ISizeLike): void; + onSceneOpened?(scene: any): void; + onSceneReload?(scene: any): void; + onSceneClosed?(scene: any): void; + onNodeChanged?(node: Node, opts: IChangeNodeOptions): void; + onAddNode?(node: Node): void; + onRemoveNode?(node: Node): void; + onNodeAdded?(node: Node, opts: IOptionBase): void; + onNodeRemoved?(node: Node, opts: IOptionBase): void; + onAddComponent?(comp: Component): void; + onRemoveComponent?(comp: Component): void; + onComponentAdded?(comp: Component, opts?: IOptionBase): void; + onComponentRemoved?(comp: Component, opts?: IOptionBase): void; + onAssetDeleted?(uuid: string, info?: any): void; + onAssetChanged?(uuid: string, info?: any, meta?: any): void; +} +export { ISceneEvents }; +//# sourceMappingURL=scene-events-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-events-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-events-interface.d.ts.map new file mode 100644 index 0000000..1237be9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-events-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-events-interface.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/scene-events-interface.ts"],"names":[],"mappings":"AACA,OAAO,EACH,kBAAkB,EAAE,WAAW,EAClC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,UAAU,YAAY;IAElB,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAGjC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAGjC,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC3D,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAClD,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAGpD,cAAc,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1C,gBAAgB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7D,kBAAkB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAG/D,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC/D;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/index.d.ts new file mode 100644 index 0000000..a15ae60 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/index.d.ts @@ -0,0 +1,24 @@ +import { Component } from 'cc'; +import { ISceneEvents } from '../scene-events-interface'; +import EventEmitter from '../../../public/EventEmitter'; +/** + * 场景视图管理器 + */ +export declare class SceneViewManager extends EventEmitter implements ISceneEvents { + private _sceneViewLight; + private _isVisible; + constructor(); + private _makeSureDirectionLightActiveBeforeProjectScene; + get isVisible(): boolean; + set isVisible(value: boolean); + init(): void; + setSceneLightOn(enable: boolean): void; + querySceneLightOn(): boolean; + onSceneOpened(scene: any): void; + onComponentAdded(comp: Component): void; + onComponentRemoved(comp: Component): void; + onIsSceneLightOn(isEnable: boolean): void; +} +declare const sceneViewManager: SceneViewManager; +export { sceneViewManager }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/index.d.ts.map new file mode 100644 index 0000000..1a0c568 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/scene-view/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkD,MAAM,IAAI,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAExD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,YAAY;IACtE,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,UAAU,CAAS;;IAW3B,OAAO,CAAC,+CAA+C;IAWvD,IAAW,SAAS,YAEnB;IAED,IAAW,SAAS,CAAC,KAAK,SAAA,EAGzB;IAEM,IAAI;IAOJ,eAAe,CAAC,MAAM,EAAE,OAAO;IAM/B,iBAAiB;IAIjB,aAAa,CAAC,KAAK,EAAE,GAAG;IAIxB,gBAAgB,CAAC,IAAI,EAAE,SAAS;IAIhC,kBAAkB,CAAC,IAAI,EAAE,SAAS;IAIlC,gBAAgB,CAAC,QAAQ,EAAE,OAAO;CAU5C;AAED,QAAA,MAAM,gBAAgB,kBAAyB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/light-manager.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/light-manager.d.ts new file mode 100644 index 0000000..8b24a28 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/light-manager.d.ts @@ -0,0 +1,16 @@ +import { Component, LightComponent } from 'cc'; +/** + * 场景的灯光管理器 + */ +declare class LightManager { + private _lights; + onSceneOpened(scene: any): void; + onComponentAdded(comp: Component): void; + onComponentRemoved(comp: Component): void; + disableSceneLights(): void; + enableSceneLights(): void; + overrideLightCompFunc(comp: LightComponent): void; +} +declare const lightManager: LightManager; +export { lightManager }; +//# sourceMappingURL=light-manager.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/light-manager.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/light-manager.d.ts.map new file mode 100644 index 0000000..bbdb858 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/light-manager.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"light-manager.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/scene-view/light-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAK/C;;GAEG;AACH,cAAM,YAAY;IACd,OAAO,CAAC,OAAO,CAAwB;IAEhC,aAAa,CAAC,KAAK,EAAE,GAAG;IAcxB,gBAAgB,CAAC,IAAI,EAAE,SAAS;IAShC,kBAAkB,CAAC,IAAI,EAAE,SAAS;IAOlC,kBAAkB;IAMlB,iBAAiB;IAQjB,qBAAqB,CAAC,IAAI,EAAE,cAAc;CAepD;AAED,QAAA,MAAM,YAAY,cAAqB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/scene-view-data.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/scene-view-data.d.ts new file mode 100644 index 0000000..f4b7535 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/scene-view-data.d.ts @@ -0,0 +1,22 @@ +declare const EventEmitter: any; +interface IResolutionData { + width: number; + height: number; +} +/** + * 场景视图相关数据配置 + */ +declare class SceneViewData extends EventEmitter { + private _targetResolution; + private _targetAspect; + targetDeviceName: string; + private _isSceneLightOn; + get targetResolution(): IResolutionData; + set targetResolution(value: IResolutionData); + get targetAspect(): number; + get isSceneLightOn(): boolean; + set isSceneLightOn(value: boolean); +} +declare const sceneViewData: SceneViewData; +export { SceneViewData, sceneViewData, IResolutionData }; +//# sourceMappingURL=scene-view-data.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/scene-view-data.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/scene-view-data.d.ts.map new file mode 100644 index 0000000..50998fa --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene-view/scene-view-data.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-view-data.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/scene-view/scene-view-data.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,YAAY,KAAoB,CAAC;AAEvC,UAAU,eAAe;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,cAAM,aAAc,SAAQ,YAAY;IACpC,OAAO,CAAC,iBAAiB,CAAgD;IACzE,OAAO,CAAC,aAAa,CAAK;IACnB,gBAAgB,SAAM;IAE7B,OAAO,CAAC,eAAe,CAAQ;IAE/B,IAAI,gBAAgB,IAIQ,eAAe,CAF1C;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAK1C;IAED,IAAI,YAAY,WAEf;IAED,IAAW,cAAc,YAExB;IACD,IAAW,cAAc,CAAC,KAAK,SAAA,EAI9B;CACJ;AAED,QAAA,MAAM,aAAa,eAAsB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/index.d.ts new file mode 100644 index 0000000..3cb1437 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/index.d.ts @@ -0,0 +1,4 @@ +import SceneManager from './scene-manager'; +declare const sceneManager: SceneManager; +export default sceneManager; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/index.d.ts.map new file mode 100644 index 0000000..3370ec9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/scene/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,QAAA,MAAM,YAAY,cAAqB,CAAC;AACxC,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/animation-scene-proxy.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/animation-scene-proxy.d.ts new file mode 100644 index 0000000..5d8187d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/animation-scene-proxy.d.ts @@ -0,0 +1,57 @@ +/// <reference path="../../../../../../../../../resources/3d/engine/bin/.declarations/cc.d.ts" /> +/// <reference path="../../../../public/gizmos/utils/engine/3d.d.ts" /> +/// <reference path="../../../../public/gizmos/3d/gizmo-manager.d.ts" /> +/// <reference path="../../asset/asset-watcher.d.ts" /> +/// <reference types="cc" /> +import SceneProxy from './scene-proxy'; +declare class AnimationSceneProxy extends SceneProxy { + root: string; + rootNodeDump: any; + materialsDump: any; + duplicateMatUuids: string[]; + get name(): string; + constructor(manager: any, sceneFacade: any); + /** + * 获得属性类型,如果是不可添加动画的属性,也返回null + * @param {*} object + * @param {*} prop + */ + getType(object: any, prop: any): any; + /** + * 打开动画编辑模式 + * @param {String} uuid 动画节点的 uuid + */ + open(uuid: string): Promise<boolean>; + checkClose(): Promise<boolean>; + /** + * 关闭动画编辑模式 + */ + close(): Promise<boolean>; + /** + * 重新加载动画编辑模式 + */ + reload(): Promise<boolean>; + /** + * 重新软加载动画编辑模式,在自定义脚本更新时会调用 + */ + softReload(): Promise<boolean>; + /** + * 获取当前正在编辑的资源的序列化数据 + */ + serialize(): string | object | null; + /** + * 查询当前场景的 dirty 标记状态 + */ + queryDirty(): Promise<boolean>; + /** + * 保存 clip 数据 + */ + save(): Promise<boolean>; + /** + * 将缓存的动画数据,传递给上一个编辑模式, 将当前动画模式中修改的数据写回到上一个模式中 + */ + patch(): Promise<boolean>; + getRootNode(): import("cc").Scene | null; +} +export default AnimationSceneProxy; +//# sourceMappingURL=animation-scene-proxy.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/animation-scene-proxy.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/animation-scene-proxy.d.ts.map new file mode 100644 index 0000000..626e6e1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/animation-scene-proxy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"animation-scene-proxy.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/scene/proxy/animation-scene-proxy.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,UAAU,MAAM,eAAe,CAAC;AAUvC,cAAM,mBAAoB,SAAQ,UAAU;IACjC,IAAI,SAAM;IACV,YAAY,EAAE,GAAG,CAAQ;IACzB,aAAa,EAAE,GAAG,CAAQ;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAExC,IAAI,IAAI,WAEP;gBAEW,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;IAc1C;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAc9B;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBpC,UAAU;IAIhB;;OAEG;IACG,KAAK;IAsBX;;OAEG;IACG,MAAM;IAaZ;;OAEG;IACG,UAAU;IA+ChB;;OAEG;IACH,SAAS;IAIT;;OAEG;IACG,UAAU;IAIhB;;OAEG;IACG,IAAI;IAYV;;OAEG;IACG,KAAK;IAqCX,WAAW;CAGd;AAED,eAAe,mBAAmB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/gameview-scene-proxy.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/gameview-scene-proxy.d.ts new file mode 100644 index 0000000..dc3cae6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/gameview-scene-proxy.d.ts @@ -0,0 +1,42 @@ +import SceneProxy from './scene-proxy'; +import { Node } from 'cc'; +declare class GameviewSceneProxy extends SceneProxy { + get name(): string; + /** + * 打开 gameview 编辑模式 + * + * @param {string} uuid prefab 资源的 id + * @returns {boolean} 是否打开成功 + */ + open(uuid: string): Promise<boolean>; + /** + * @returns {boolean} 是否关闭场景 + */ + close(): Promise<boolean>; + /** + * + * @returns {boolean} 是否刷新场景 + */ + reload(): Promise<boolean>; + /** + * 软刷新场景 + * + * @returns {boolean} 是否刷新成功 + */ + softReload(json?: any): Promise<boolean>; + /** + * + * @param {object} mode 即将打开的模式 + * @returns {boolean} 是否缓存成功 + */ + staging(): Promise<boolean>; + /** + * + * @returns {boolean} 是否还原成功 + */ + restore(dump?: any): Promise<boolean>; + queryCurrentSceneUuid(): any; + getRootNode(): Node; +} +export default GameviewSceneProxy; +//# sourceMappingURL=gameview-scene-proxy.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/gameview-scene-proxy.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/gameview-scene-proxy.d.ts.map new file mode 100644 index 0000000..a18a7c3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/gameview-scene-proxy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gameview-scene-proxy.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/scene/proxy/gameview-scene-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,eAAe,CAAC;AAGvC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAI1B,cAAM,kBAAmB,SAAQ,UAAU;IAEvC,IAAI,IAAI,WAEP;IAED;;;;;OAKG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM;IAIvB;;OAEG;IACG,KAAK;IAKX;;;OAGG;IACG,MAAM;IAIZ;;;;OAIG;IACG,UAAU,CAAC,IAAI,GAAE,GAAU;IAkBjC;;;;OAIG;IACG,OAAO;IAKb;;;OAGG;IACG,OAAO,CAAC,IAAI,GAAE,GAAe;IAInC,qBAAqB;IAKrB,WAAW;CAGd;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/general-scene-proxy.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/general-scene-proxy.d.ts new file mode 100644 index 0000000..326eb31 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/general-scene-proxy.d.ts @@ -0,0 +1,76 @@ +import SceneProxy from './scene-proxy'; +import { Node } from 'cc'; +declare class GeneralSceneProxy extends SceneProxy { + current: string; + lastSaveData: null; + private _sceneJustSaved; + get name(): string; + /** + * 打开一个场景资源 + * + * @param {*} uuid 场景的 uuid + */ + open(uuid: string): Promise<boolean>; + /** + * 打开一个场景资源 + * @param uuid 场景的 uuid + * @param closePreviousScene 是否需要关闭前一个场景 + */ + _open(uuid: string, closePreviousScene?: boolean): Promise<boolean>; + _loadScene(uuid: string, json?: any): Promise<boolean>; + _loadEmptyScene(): Promise<boolean>; + _afterLoadScene(): Promise<void>; + checkClose(): Promise<boolean>; + /** + * 关闭正在编辑的场景 + * + * @returns {boolean} 是否关闭场景 + */ + close(): Promise<boolean>; + /** + * 刷新当前场景并且放弃所有修改 + * + * @returns {boolean} 是否刷新场景 + */ + reload(): Promise<boolean>; + /** + * 软刷新场景 + * + * @returns {boolean} 是否刷新场景 + */ + softReload(json?: any): Promise<boolean>; + /** + * 序列化当前正在编辑的场景 + * + * @returns {string} 场景序列化之后的字符串 + */ + serialize(): any; + /** + * 保存场景 + * @param asNew 是否另存场景 + * @param open 保存后是否打开新场景 + */ + save(asNew?: boolean, open?: boolean): Promise<string | undefined>; + /** + * 缓存当前正在编辑的场景 + * + * @param {object} mode 即将打开的模式 + * @returns {boolean} 是否缓存成功 + */ + staging(): Promise<boolean>; + /** + * 还原当前正在编辑的场景 + * + */ + restore(dump: any): Promise<boolean>; + /** + * 查询当前场景的 dirty 标记状态 + * + * @returns {boolean} 是否被修改 + */ + queryDirty(): Promise<any>; + queryCurrentSceneUuid(): string; + getRootNode(): Node | null; +} +export default GeneralSceneProxy; +//# sourceMappingURL=general-scene-proxy.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/general-scene-proxy.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/general-scene-proxy.d.ts.map new file mode 100644 index 0000000..a97afc0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/general-scene-proxy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"general-scene-proxy.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/scene/proxy/general-scene-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,eAAe,CAAC;AAIvC,OAAO,EAAqB,IAAI,EAAE,MAAM,IAAI,CAAC;AAO7C,cAAM,iBAAkB,SAAQ,UAAU;IAE/B,OAAO,SAAM;IAEb,YAAY,OAAQ;IAE3B,OAAO,CAAC,eAAe,CAAS;IAEhC,IAAI,IAAI,WAEP;IAED;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB1C;;;;OAIG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAqDhE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBtD,eAAe;IA6Bf,eAAe;IAYf,UAAU;IA8BhB;;;;OAIG;IACG,KAAK;IAuBX;;;;OAIG;IACG,MAAM;IAiBZ;;;;OAIG;IACG,UAAU,CAAC,IAAI,GAAE,GAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IA6CpD;;;;OAIG;IACH,SAAS;IAqBT;;;;OAIG;IACG,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,UAAO;IA2EvC;;;;;OAKG;IACG,OAAO;IASb;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,GAAG;IA6BvB;;;;OAIG;IACG,UAAU;IAIhB,qBAAqB;IAIrB,WAAW;CAGd;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/prefab-scene-proxy.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/prefab-scene-proxy.d.ts new file mode 100644 index 0000000..dc80308 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/prefab-scene-proxy.d.ts @@ -0,0 +1,71 @@ +import SceneProxy from './scene-proxy'; +import { Node } from 'cc'; +declare class PrefabSceneProxy extends SceneProxy { + current?: string; + node: string; + lastSaveData: string | Object | null; + private _prefabJustSaved; + get name(): string; + /** + * 打开 Prefab 编辑模式 + * + * @param {string} uuid prefab 资源的 id + * @returns {boolean} 是否打开成功 + */ + open(uuid: string): Promise<boolean>; + _loadPrefabByData(uuid: string, prefab: any): Promise<boolean>; + _sceneWrapCanvasNode(scene: any): Promise<any>; + checkClose(): Promise<boolean>; + /** + * 关闭正在编辑的场景 + * + * @returns {boolean} 是否关闭场景 + */ + close(): Promise<boolean>; + /** + * 刷新当前场景并且放弃所有修改 + * + * @returns {boolean} 是否刷新场景 + */ + reload(): Promise<boolean>; + private generateSceneAsset; + /** + * 软刷新场景 + * + * @returns {boolean} 是否刷新成功 + */ + softReload(json?: any): Promise<boolean>; + /** + * 序列化当前正在编辑的场景 + * + * @returns {string} prefab 序列化之后的数据 + */ + serialize(): string | object; + /** + * 保存 prefab 数据 + */ + save(asNew?: boolean): Promise<boolean | undefined>; + /** + * 缓存当前正在编辑的Prefab + * + * @param {object} mode 即将打开的模式 + * @returns {boolean} 是否缓存成功 + */ + staging(): Promise<boolean>; + /** + * 还原当前正在编辑的Prefab + * + * @returns {boolean} 是否还原成功 + */ + restore(dump?: any): Promise<boolean>; + /** + * 查询当前场景的 dirty 标记状态 + * + * @returns {boolean} 是否被修改 + */ + queryDirty(): Promise<any>; + queryCurrentSceneUuid(): string; + getRootNode(): Node; +} +export default PrefabSceneProxy; +//# sourceMappingURL=prefab-scene-proxy.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/prefab-scene-proxy.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/prefab-scene-proxy.d.ts.map new file mode 100644 index 0000000..90f7014 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/prefab-scene-proxy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"prefab-scene-proxy.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/scene/proxy/prefab-scene-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAkD,IAAI,EAA6B,MAAM,IAAI,CAAC;AASrG,cAAM,gBAAiB,SAAQ,UAAU;IAE9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,SAAM;IAEV,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAQ;IAEnD,OAAO,CAAC,gBAAgB,CAAS;IAEjC,IAAI,IAAI,WAEP;IAED;;;;;OAKG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM;IA6BjB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IA8C3C,oBAAoB,CAAC,KAAK,EAAE,GAAG;IA+B/B,UAAU;IAsBhB;;;;OAIG;IACG,KAAK;IAqBX;;;;OAIG;IACG,MAAM;IAgBZ,OAAO,CAAC,kBAAkB;IAS1B;;;;OAIG;IACG,UAAU,CAAC,IAAI,GAAE,GAAU;IAkDjC;;;;OAIG;IACH,SAAS;IAgDT;;OAEG;IACG,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO;IAiD1B;;;;;OAKG;IACG,OAAO;IAYb;;;;OAIG;IACG,OAAO,CAAC,IAAI,GAAE,GAAe;IAoCnC;;;;OAIG;IACG,UAAU;IAIhB,qBAAqB;IAIrB,WAAW;CAGd;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/scene-proxy.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/scene-proxy.d.ts new file mode 100644 index 0000000..c261365 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/scene-proxy.d.ts @@ -0,0 +1,83 @@ +import { Node, Scene } from 'cc'; +import SceneManager from '../scene-manager'; +import { SceneModeType } from '../../../facade/scene-facade-state-interface'; +declare type UUIDMap = Map<string, string | UUIDMap>; +declare class SceneProxy { + protected _sceneMgr: SceneManager; + protected _sceneFacade: any; + isOpen: boolean; + protected _staging: any; + rootUuid: string; + protected _isSoftReloading: boolean; + protected _needOneMoreReload: boolean; + protected _PrefabUUIDMap: Map<string, UUIDMap>; + constructor(sceneMgr: SceneManager, sceneFacade: any); + /** + * 打开资源 + * + * @param {*} uuid : prefab 或 scene + */ + open(uuid: string): Promise<boolean>; + checkClose(): Promise<boolean>; + /** + * 关闭编辑模式 + */ + close(): Promise<boolean>; + /** + * 重新加载编辑模式 + */ + reload(): Promise<boolean>; + /** + * 重新软加载编辑模式 + */ + softReload(json?: any): Promise<boolean>; + /** + * 获取当前正在编辑的资源的序列化数据 + */ + serialize(): any; + /** + * 查询是否被修改 + * + * @returns {boolean} 是否被修改 + */ + queryDirty(): Promise<boolean>; + /** + * 保存编辑模式正在编辑的东西 + */ + save(asNew?: boolean): Promise<any>; + /** + * 缓存编辑模式数据 + * + */ + staging(): Promise<boolean>; + /** + * 还原编辑模式数据 + */ + restore(dump?: any): Promise<boolean>; + /** + * 退出编辑模式之后,还原了上一个编辑模式数据 + * 有时候需要在上一个编辑模式上保留一些数据 + * 这个方法的作用就是在上一个编辑模式上打补丁 + */ + patch(): Promise<boolean>; + sendModeChangeMsg(modeName: SceneModeType): void; + queryCurrentSceneUuid(): string; + getRootNode(): Node | Scene | null; + generatePrefabUUIDMap(node: Node, uuidMap: UUIDMap): void; + /** + * 由于动态加载Prefab会导致节点的uuid发生变化,为了保证编辑过程中节点的uuid不变 + * 在softReload之前会存储prefab节点的uuid,以便之后还原 + * @param scene 场景数据 + */ + storePrefabUUID(scene: Scene): Map<any, any>; + applyPrefabUUID(node: Node, uuidMap: UUIDMap | undefined): void; + /** + * 恢复Prefab的uuid + * @param scene 场景数据 + */ + restorePrefabUUID(scene: Scene, prefabUUIDMap: UUIDMap): void; + storeScenePrefabUUID(): void; + restoreScenePrefabUUID(): void; +} +export default SceneProxy; +//# sourceMappingURL=scene-proxy.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/scene-proxy.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/scene-proxy.d.ts.map new file mode 100644 index 0000000..66cb518 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/proxy/scene-proxy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-proxy.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/scene/proxy/scene-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AACjC,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAE7E,aAAK,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAC,OAAO,CAAC,CAAC;AAE3C,cAAM,UAAU;IACZ,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC;IAClC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC;IAErB,MAAM,UAAS;IACtB,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAQ;IACxB,QAAQ,SAAM;IACrB,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,kBAAkB,UAAS;IAGrC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;gBAE/C,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG;IAKpD;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC;;OAEG;IACG,UAAU,CAAC,IAAI,GAAE,GAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD;;OAEG;IACH,SAAS,IAAI,GAAG;IAIhB;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;OAEG;IACG,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;OAEG;IACG,OAAO,CAAC,IAAI,GAAE,GAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAKhD,qBAAqB;IAIrB,WAAW,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;IAIlC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAwBlD;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,KAAK;IAU5B,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAC,SAAS;IA0BtD;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO;IAO/C,oBAAoB;IAQpB,sBAAsB;CAOhC;AAED,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-cache.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-cache.d.ts new file mode 100644 index 0000000..16d1fde --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-cache.d.ts @@ -0,0 +1,25 @@ +declare class SceneCacheManager { + private useSceneCache; + init(): Promise<void>; + /** + * 检查指定 uuid 场景的最新(比现有保存资源更新)缓存数据,有则返回 json 数据 + * @param uuid + * @returns + */ + private queryLatestCache; + /** + * 加载指定 uuid 的可用缓存场景数据 + * @param uuid + * @returns + */ + loadCacheScene(uuid?: string): Promise<boolean>; + /** + * 查询指定 uuid 的上一次缓存信息 + */ + private queryLastCacheInfo; + private clearSceneCache; +} +export declare const sceneCacheManager: SceneCacheManager; +export declare function formatTime(time: string): string; +export {}; +//# sourceMappingURL=scene-cache.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-cache.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-cache.d.ts.map new file mode 100644 index 0000000..ca7b0d2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-cache.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-cache.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/scene/scene-cache.ts"],"names":[],"mappings":"AAGA,cAAM,iBAAiB;IACnB,OAAO,CAAC,aAAa,CAAQ;IACvB,IAAI;IAQV;;;;OAIG;YACW,gBAAgB;IA+B9B;;;;OAIG;IACG,cAAc,CAAC,IAAI,SAAK;IAiB9B;;OAEG;YACW,kBAAkB;IAgBhC,OAAO,CAAC,eAAe;CAG1B;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC;AAGzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,UAEtC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-manager.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-manager.d.ts new file mode 100644 index 0000000..5a7c7ba --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-manager.d.ts @@ -0,0 +1,93 @@ +/// <reference path="../../../../../../../../resources/3d/engine/bin/.declarations/cc.d.ts" /> +/// <reference path="../../../public/gizmos/utils/engine/3d.d.ts" /> +/// <reference path="../../../public/gizmos/3d/gizmo-manager.d.ts" /> +/// <reference path="../asset/asset-watcher.d.ts" /> +import { QueryClassesOptions } from '../../../../../@types/public'; +import EventEmitter from '../../../public/EventEmitter'; +import { Node, Scene } from 'cc'; +import { SceneModeType } from '../../facade/scene-facade-state-interface'; +export interface ISceneManagerEventMap { + open: (scene: Scene) => void; + close: (scene?: Scene) => void; + save: (scene: Scene) => void; + reload: (scene: Scene) => void; + 'soft-reload': (success: boolean) => void; + 'animation-start': (uuid: string) => void; + 'animation-end': () => void; + 'mode-change': (mode: SceneModeType) => void; +} +/** + * 场景管理器 + */ +declare class SceneManager extends EventEmitter { + rootNode: Node | null; + ignore: boolean; + modes: any; + constructor(); + /** + * 查询节点数的信息 + * 传入 uuid 则以这个 uuid 指向的节点为根 + * 不传入则从场景开始 + * + * @param {string} uuid 从一个节点开始查询树形结构 + * @returns {Promise<string>} 序列化后的字符串 + */ + queryNodeTree(uuid?: string): any; + /** + * 查询引擎内所有的类 + * + * @returns {Array} 查询引擎内所有的类 + */ + queryClasses(options?: QueryClassesOptions): { + name: string; + }[]; + /** + * 查询当前的组件列表 + * + * @returns {Array} 查询所有组件的列表 + */ + queryComponents(): Promise<{ + name: any; + cid: any; + path: any; + assetUuid: any; + }[]>; + /** + * 查询引擎组件列表是否含有指定类名的脚本 + * + * @param {string} name 脚本的类名 Class + * @returns {Boolean} 存在 true, 不存在 false + */ + queryComponentHasScript(name: string): boolean; + /** + * 查询引擎内 Layer 的内置项 + */ + queryLayerBuiltin(): { + name: string; + value: any; + }[]; + /** + * 查询引擎内 SortingLayer 的内置项 + */ + querySortingLayerBuiltin(): readonly import("cc").__private._cocos_sorting_sorting_layers__SortingItem[]; + /** + * 发送场景打开事件 + * @param scene 当前打开的场景 + * @param uuid 场景的uuid,在prefab模式下是prefabAsset的uuid + * @param rootNode 根节点,在普通模式下是场景节点,在Prefab模式下是Prefab的根节点 + */ + sendSceneOpenMsg(scene: Scene, uuid: string | undefined, rootNode: Node): void; + /** + * 发送场景关闭事件 + * @param scene 关闭的场景 + */ + sendSceneCloseMsg(scene: Scene): void; + on<T extends keyof ISceneManagerEventMap>(event: T, listener: ISceneManagerEventMap[T]): this; + once<T extends keyof ISceneManagerEventMap>(event: T, listener: ISceneManagerEventMap[T]): this; + emit<T extends keyof ISceneManagerEventMap>(event: T, ...args: Parameters<ISceneManagerEventMap[T]>): boolean; + removeAllListeners<T extends keyof ISceneManagerEventMap>(event?: T): this; + removeListener<T extends keyof ISceneManagerEventMap>(event: T, listener: ISceneManagerEventMap[T]): this; + addListener<T extends keyof ISceneManagerEventMap>(event: T, listener: ISceneManagerEventMap[T]): this; +} +export default SceneManager; +//# sourceMappingURL=scene-manager.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-manager.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-manager.d.ts.map new file mode 100644 index 0000000..6fc7955 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/scene-manager.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-manager.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/scene/scene-manager.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,IAAI,EAAU,KAAK,EAAiB,MAAM,IAAI,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD;AACD;;GAEG;AACH,cAAM,YAAa,SAAQ,YAAY;IAC5B,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;;IAMX;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM;IA+D3B;;;;OAIG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB;;;IAgC1C;;;;OAIG;IACG,eAAe;;;;;;IA+BrB;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAKpC;;OAEG;IACH,iBAAiB;;;;IAWjB;;OAEG;IACH,wBAAwB;IAIxB;;;;;OAKG;IACI,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,IAAI;IAS9E;;;OAGG;IACI,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAKrC,EAAE,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;IAG7F,IAAI,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;IAG/F,IAAI,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAG7G,kBAAkB,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAG1E,cAAc,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;IAGzG,WAAW,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;CAIzG;AAED,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/utils.d.ts new file mode 100644 index 0000000..9811eb0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/utils.d.ts @@ -0,0 +1,41 @@ +import { Node } from 'cc'; +declare class SceneUtil { + timer: any; + /** + * 通过一个 uuid 加载对应的场景 + */ + loadSceneByUuid(uuid: string): Promise<void>; + /** + * 从一个场景节点加载场景 + */ + loadSceneByNode(scene: any): Promise<void>; + /** + * 从一个序列化后的 json 内加载场景 + */ + loadSceneByJson(json: any): Promise<void>; + /** + * 加载一个 prefab 成为场景 + */ + loadPrefab(uuid: string): Promise<unknown>; + /** + * 从一个序列化后的 json 内加载场景 + */ + loadPrefabByJson(json: any): Promise<unknown>; + /** + * 卸载一个 prefab 资源,以及引用它的资源 + * 重要:去掉资源的缓存 + * 避免重复打开对象已被销毁的报错 + * 避免 prefab 资源在需要重新序列化的时候被锁定 + */ + unloadPrefab(uuid: string): void; + /** + * 递归所有节点 + * + * @param {cc.Node} node 节点 + * @param {Function} func 处理函数 + */ + recursiveNode(node: Node, func: Function): void; +} +declare const _default: SceneUtil; +export default _default; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/utils.d.ts.map new file mode 100644 index 0000000..9c02345 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scene/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/scene/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,IAAI,EAAqB,MAAM,IAAI,CAAC;AAE3E,cAAM,SAAS;IAEX,KAAK,EAAE,GAAG,CAAC;IAEX;;OAEG;IACU,eAAe,CAAC,IAAI,EAAE,MAAM;IA+CzC;;OAEG;IACU,eAAe,CAAC,KAAK,EAAE,GAAG;IA4BvC;;OAEG;IACU,eAAe,CAAC,IAAI,EAAE,GAAG;IAwCtC;;OAEG;IACU,UAAU,CAAC,IAAI,EAAE,MAAM;IAgBpC;;OAEG;IACU,gBAAgB,CAAC,IAAI,EAAE,GAAG;IAgBvC;;;;;OAKG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM;IAOhC;;;;;OAKG;IACI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;CAIlD;;AAED,wBAA+B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scripts.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scripts.d.ts new file mode 100644 index 0000000..a46bc3d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scripts.d.ts @@ -0,0 +1,40 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +export declare class ScriptManager extends EventEmitter { + /** + * 当脚本刷新并执行完成时触发。 + */ + readonly EXECUTION_FINISHED = "execution-finished"; + private _executor; + private _suspendPromise; + private _asyncIteration; + constructor(); + /** + * 挂起脚本管理器直到 `condition` 结束,才会进行下一次执行。 + * @param condition + */ + suspend(condition: Promise<void>): void; + init(): Promise<void>; + investigatePackerDriver(): Promise<void>; + /** + * 传入一个 uuid 返回这个 uuid 对应的脚本组件名字 + * @param uuid + */ + queryScriptName(uuid: string): Promise<string | null>; + /** + * 传入一个 uuid 返回这个 uuid 对应的脚本的 cid + * @param uuid + */ + queryScriptCid(uuid: string): Promise<string | null>; + _loadScripts(): Promise<void>; + loadScript(uuid: string): Promise<void>; + removeScript(_asset: any): Promise<void>; + scriptChange(_asset: any): Promise<void>; + private _executeAsync; + private _execute; + private _loadPluginScripts; + private _handleImportException; +} +declare const _default: ScriptManager; +export default _default; +//# sourceMappingURL=scripts.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scripts.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scripts.d.ts.map new file mode 100644 index 0000000..8228895 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/scripts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/scripts.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA8EtC,qBAAa,aAAc,SAAQ,YAAY;IAC3C;;OAEG;IACH,SAAgB,kBAAkB,wBAAwB;IAE1D,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,eAAe,CAA8B;IAErD,OAAO,CAAC,eAAe,CAA6B;;IAUpD;;;OAGG;IACI,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;IAIjC,IAAI;IA+DJ,uBAAuB;IAI7B;;;OAGG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM;IAUlC;;;OAGG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM;IAU3B,YAAY;IAEZ,UAAU,CAAC,IAAI,EAAE,MAAM;IAEvB,YAAY,CAAC,MAAM,EAAE,GAAG;IAExB,YAAY,CAAC,MAAM,EAAE,GAAG;IAE9B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,QAAQ;YAkBF,kBAAkB;IA4BhC,OAAO,CAAC,sBAAsB;CAGjC;;AAED,wBAAmC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/selection.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/selection.d.ts new file mode 100644 index 0000000..0f227d0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/selection.d.ts @@ -0,0 +1,22 @@ +import { EventEmitter } from '../../utils/event-emitter'; +import { ISceneKeyboardEvent, ISceneMouseEvent } from '../../../../@types/private'; +export declare class SceneSelection extends EventEmitter { + protected _hover: string | undefined; + protected _isMouseDown: boolean; + protected onMouseDown(event: ISceneMouseEvent): boolean; + protected onMouseUp(event: ISceneMouseEvent): boolean; + protected onKeyDown(event: ISceneKeyboardEvent): boolean; + init(): void; + isSelect(uuid: string): boolean; + query(): string[]; + select(uuid: string): void; + unselect(uuid: string): void; + clear(): void; + reset(): void; + notice(): void; + _select(uuid: string): void; + _unselect(uuid: string): void; +} +declare const _default: SceneSelection; +export default _default; +//# sourceMappingURL=selection.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/selection.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/selection.d.ts.map new file mode 100644 index 0000000..fbfc144 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/selection.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/manager/selection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAgBnF,qBAAa,cAAe,SAAQ,YAAY;IAC5C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,SAAS,CAAC,YAAY,UAAS;IAC/B,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAIvD,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAIrD,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAOjD,IAAI;IAiEJ,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIrB,KAAK;IAIL,MAAM,CAAC,IAAI,EAAE,MAAM;IAInB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIrB,KAAK;IAIL,KAAK;IAIL,MAAM;IAIN,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,SAAS,CAAC,IAAI,EAAE,MAAM;CAGhC;;AAED,wBAAoC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/shortcut/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/shortcut/index.d.ts new file mode 100644 index 0000000..6027483 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/shortcut/index.d.ts @@ -0,0 +1,18 @@ +import EventEmitter from '../../../public/EventEmitter'; +import { ISceneKeyboardEvent } from '../../../../../@types/private'; +declare class Shortcut extends EventEmitter { + /** + * 快捷键配置 + * 左边是键盘事件 event.key.toLowerCase + * 右边是可阅读的事件指令 + * 注意:这份配置开放给用户,需要注意: + * ctrl alt shift 有先后顺序 + * Command 和 Control 同为 ctrl + */ + private shortcuts; + constructor(); + onKeyDown(event: ISceneKeyboardEvent): void; +} +declare const _default: Shortcut; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/shortcut/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/shortcut/index.d.ts.map new file mode 100644 index 0000000..8a42a23 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/shortcut/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/shortcut/index.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,cAAM,QAAS,SAAQ,YAAY;IAC/B;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS,CAaf;;IAOK,SAAS,CAAC,KAAK,EAAE,mBAAmB;CA6B9C;;AAED,wBAA8B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/skeleton-preview/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/skeleton-preview/index.d.ts new file mode 100644 index 0000000..d10b842 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/skeleton-preview/index.d.ts @@ -0,0 +1,16 @@ +import { Scene } from 'cc'; +import { InteractivePreview } from '../preview/Interactive-preview'; +declare class SkeletonPreview extends InteractivePreview { + private lightComp; + private _modelNode; + private _jointMap; + init(registerName: string, queryName: string): void; + createNodes(scene: Scene): void; + setSkeleton(uuid: string): Promise<{ + jointCount: number; + } | null>; + setLightEnable(enable: boolean): void; + onMouseDown(event: any): void; +} +export { SkeletonPreview }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/skeleton-preview/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/skeleton-preview/index.d.ts.map new file mode 100644 index 0000000..4f3e330 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/skeleton-preview/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/skeleton-preview/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAUH,KAAK,EAGR,MAAM,IAAI,CAAC;AAMZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAkBpE,cAAM,eAAgB,SAAQ,kBAAkB;IAC5C,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,SAAS,CAAoC;IAE9C,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI5C,WAAW,CAAC,KAAK,EAAE,KAAK;IAMlB,WAAW,CAAC,IAAI,EAAE,MAAM;;;IAwF9B,cAAc,CAAC,MAAM,EAAE,OAAO;IAM9B,WAAW,CAAC,KAAK,EAAE,GAAG;CAKhC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/adapter-util.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/adapter-util.d.ts new file mode 100644 index 0000000..265fc84 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/adapter-util.d.ts @@ -0,0 +1,12 @@ +/** + * web-adapter provides an fake web env for native engine; + * it is conflict with electron web env,so we need to override electron web env. + * @param webAdapterPath file path + */ +export declare function importWebAdapter(webAdapterPath: string): void; +export interface EngineAddon { + initEngine(width: number, height: number): void; + tick(): void; +} +export declare function importNativeEngine(enginePath: string): Promise<EngineAddon>; +//# sourceMappingURL=adapter-util.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/adapter-util.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/adapter-util.d.ts.map new file mode 100644 index 0000000..ebe91e4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/adapter-util.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"adapter-util.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/startup/engine/adapter-util.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,QAEtD;AAGD,MAAM,WAAW,WAAW;IACxB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,IAAI,IAAI,IAAI,CAAC;CAChB;AAGD,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAKjF"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/index.d.ts new file mode 100644 index 0000000..f6063fd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/index.d.ts @@ -0,0 +1,30 @@ +import { InitInfo } from '..'; +export declare class EngineStartup { + loadNativeEngine(): Promise<void>; + /** + * 将引擎文件 require 到当前进程 + */ + requireEngine(): Promise<void>; + /** + * 打开引擎(运行引擎) + * 目前 config 是项目设置中 引擎配置 的相关参数, + * 有 { path, project, renderPipeline, version } + */ + openEngine(config?: Partial<InitInfo>): Promise<void>; + /** + * 启动引擎前的引擎配置修改 + */ + configureStartup(): Promise<void>; + /** + * 引擎启动之后配置引擎运行的某些参数 + */ + configureEngine(): void; + /** + * * 已无入口触发,deprecated 功能被 ../manager/effects.ts 接管 + * 引擎启动前加载现在所有的 effects + */ + loadEffect(): Promise<void>; +} +declare const engineStartup: EngineStartup; +export default engineStartup; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/index.d.ts.map new file mode 100644 index 0000000..85aaae1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/engine/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../source/script/3d/manager/startup/engine/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AA0C9B,qBAAa,aAAa;IAChB,gBAAgB;IAgCtB;;OAEG;IACU,aAAa;IAsB1B;;;;OAIG;IACU,UAAU,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAM;IA+EtD;;OAEG;IACU,gBAAgB;IAI7B;;OAEG;IACI,eAAe;IAGtB;;;OAGG;IACU,UAAU;CAS1B;AACD,QAAA,MAAM,aAAa,eAAsB,CAAC;AAC1C,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/index.d.ts new file mode 100644 index 0000000..af81cf2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/index.d.ts @@ -0,0 +1,66 @@ +import { EngineInfo } from '../../../../../../engine/@types'; +import { IGameConfig, Node } from 'cc'; +export interface InitInfo extends EngineInfo { + project: string; + renderPipeline?: string; + overrideSettings?: Partial<IGameConfig['overrideSettings']>; +} +declare class StartupManager { + requireEngine(): Promise<void>; + configEngine(info: Partial<InitInfo>, renderPipeline: string, layers: { + name: string; + value: number; + }[], sortingLayers: { + id: number; + name: string; + value: number; + }[]): Promise<void>; + /** + * 启动引擎 + */ + initEngine(info: InitInfo, renderPipeline: string, layers: { + name: string; + value: number; + }[], sortingLayers: { + id: number; + name: string; + value: number; + }[]): Promise<void>; + /** + * 设置设计分辨率 + * @param {*} width + * @param {*} height + */ + initDesignResolution(width: number, height: number): Promise<void>; + /** + * 设置自定义层 + * @param {*} layers + */ + initCustomLayer(layers: { + name: string; + value: number; + }[]): Promise<void>; + /** + * 设置自定义 sorting-layer + */ + initSortingLayer(layers: { + id: number; + name: string; + value: number; + }[]): Promise<void>; + /** + * 启动各个管理器 + */ + initManager(info: InitInfo): Promise<void>; +} +declare const _default: StartupManager; +export default _default; +declare global { + export namespace cce { + let project: string; + let SceneFacadeManager: InstanceType<typeof import('../../facade/scene-facade-manager')['SceneFacadeManager']>; + let foregroundNode: Node; + let backgroundNode: Node; + } +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/index.d.ts.map new file mode 100644 index 0000000..ea76891 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/startup/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAY,MAAM,IAAI,CAAC;AAsBjD,MAAM,WAAW,QAAS,SAAQ,UAAU;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;CAC/D;AAED,cAAM,cAAc;IACH,aAAa;IAoBb,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,aAAa,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;IAkDlL;;OAEG;IACU,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,aAAa,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;IAOvK;;;;OAIG;IACU,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAgB/D;;;OAGG;IACU,eAAe,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;IAetE;;OAEG;IACU,gBAAgB,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;IAWnF;;OAEG;IACU,WAAW,CAAC,IAAI,EAAE,QAAQ;CA4D1C;;AAED,wBAAoC;AAMpC,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,WAAW,GAAG,CAAC;QACV,IAAI,OAAO,EAAE,MAAM,CAAC;QACpB,IAAI,kBAAkB,EAAE,YAAY,CAAC,cAAc,mCAAmC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC/G,IAAI,cAAc,EAAE,IAAI,CAAC;QACzB,IAAI,cAAc,EAAE,IAAI,CAAC;KACnC;CAEJ"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/log.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/log.d.ts new file mode 100644 index 0000000..9b6ad56 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/log.d.ts @@ -0,0 +1,8 @@ +declare class Logger { + changePrefix(str: string): void; + setLevel(level: number): void; + init(): void; +} +declare const _default: Logger; +export default _default; +//# sourceMappingURL=log.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/log.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/log.d.ts.map new file mode 100644 index 0000000..851134c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/log.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/startup/log.ts"],"names":[],"mappings":"AAgBA,cAAM,MAAM;IAER,YAAY,CAAC,GAAG,EAAE,MAAM;IAIxB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAIf,IAAI;CAMd;;AAED,wBAA4B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/overwrite.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/overwrite.d.ts new file mode 100644 index 0000000..509b16f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/overwrite.d.ts @@ -0,0 +1,14 @@ +declare class OverWrite { + /** + * 重写引擎的 assetLibrary 部分方法 + * 目的是让引擎的资源加载走编辑器的流程 + */ + assetLibrary(): void; + /** + * 编辑器内重写 loader 内的方法 + */ + loader(): void; +} +declare const _default: OverWrite; +export default _default; +//# sourceMappingURL=overwrite.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/overwrite.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/overwrite.d.ts.map new file mode 100644 index 0000000..de70451 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/startup/overwrite.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"overwrite.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/startup/overwrite.ts"],"names":[],"mappings":"AAKA,cAAM,SAAS;IACX;;;OAGG;IACI,YAAY;IAInB;;OAEG;IACI,MAAM;CAGhB;;AAED,wBAA+B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/terrain/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/terrain/index.d.ts new file mode 100644 index 0000000..464e70a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/terrain/index.d.ts @@ -0,0 +1,52 @@ +import EventEmitter from '../../../public/EventEmitter'; +export declare class TerrainManager extends EventEmitter { + editedComponents: any; + selectedComponents: any; + get name(): string; + init(): void; + /** + * 显示编辑器小窗口 + */ + select(nodeUuid: string): void; + unselect(nodeUuid: string): void; + set isTerrainChange(val: boolean); + get isTerrainChange(): boolean; + onSculpt(node: any): void; + /** + * 关闭正在编辑的场景 + * 统一返回参数,与 saveAsset 一致 + * 0 :Save + * 1 : Don't Save + * 2 : Cancel + */ + close(): Promise<number>; + /** + * 统一对外的是否保存的对话框 + * @param file 地形资源文件路径 + * @param isClose 是否来自关闭地形编辑时的被动保存询问 + * dialogCode 主要收集是否有 Cancel 的情况 + */ + saveAssetDialog(file?: string, isClose?: boolean): Promise<number>; + /** + * 保存数据到地形资源 + * 0 :Save + * 1 : Don't Save + * 2 : Cancel + * + */ + saveAsset(isClose: boolean | undefined, component: any): Promise<number>; + /** + * 序列化当前正在编辑的地形 + */ + serialize(component: any): any; + /** + * 地形资源被删除 + * @param uuid + * @param info + */ + onRemoveTerrain(uuid: string, info: any): void; + addAssetToComp(assetUuid: string): Promise<void>; +} +declare const _default: TerrainManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/terrain/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/terrain/index.d.ts.map new file mode 100644 index 0000000..ec20c72 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/terrain/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/terrain/index.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAMxD,qBAAa,cAAe,SAAQ,YAAY;IAErC,gBAAgB,EAAE,GAAG,CAAM;IAG3B,kBAAkB,EAAE,GAAG,CAAM;IAEpC,IAAI,IAAI,WAEP;IAED,IAAI;IAUJ;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM;IAqBvB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IA0BzB,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,EAI/B;IAED,IAAI,eAAe,IANM,OAAO,CAiB/B;IAED,QAAQ,CAAC,IAAI,EAAE,GAAG;IAIlB;;;;;;OAMG;IACG,KAAK;IAWX;;;;;OAKG;IACG,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IA4DtD;;;;;;OAMG;IACG,SAAS,CAAC,OAAO,qBAAQ,EAAE,SAAS,EAAE,GAAG;IAuC/C;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,GAAG;IAMxB;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAUjC,cAAc,CAAC,SAAS,EAAE,MAAM;CAsBzC;;AAcD,wBAAoC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/index.d.ts new file mode 100644 index 0000000..920c9fe --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/index.d.ts @@ -0,0 +1,34 @@ +import { IThumbnailGenerator } from './thumbnail-generator-interface'; +declare class ThumbnailManager { + private _generator; + private _projectCacheMap; + constructor(); + register(type: any, parser: IThumbnailGenerator): void; + unRegister(type: any): void; + /** + * 将uuid转换为缓存路径 + * temp/asset-db目录下的资源会自动更新,放在这里就不用操心资源要不要删掉 + * @param uuid + * @param info query-asset-info的结果 + * @returns + */ + uuidToPath(uuid: string, info?: { + url: string; + } | null): Promise<string>; + queryThumbnailSingle(uuid: string, type?: any): Promise<string>; + /** + * 获取缩略图路径 + * @param uuids uuid数组 + * @param type asset-info中的type字段,数组,和uuids一一对应; + * @returns + */ + queryThumbnail(uuids: string[], type?: string[]): Promise<string[]>; + delete(uuid: string, info: any): Promise<void>; + init(): void; + assetChange(uuid: string, info: any, meta: any): void; + assetDelete(uuid: string, info: any): Promise<void>; + private generateAll; +} +declare const _default: ThumbnailManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/index.d.ts.map new file mode 100644 index 0000000..6ef9b0c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/thumbnail/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAKtE,cAAM,gBAAgB;IAClB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,gBAAgB,CAAsB;;IAKvC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,mBAAmB;IAO/C,UAAU,CAAC,IAAI,EAAE,GAAG;IAM3B;;;;;;OAMG;IACU,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAc9E,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAehF;;;;;OAKG;IACU,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BvE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAWpC,IAAI;IAWJ,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAQxC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;YASlC,WAAW;CA8B5B;;AAED,wBAAsC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/mesh-thumbnail-generator.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/mesh-thumbnail-generator.d.ts new file mode 100644 index 0000000..cfb8bb7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/mesh-thumbnail-generator.d.ts @@ -0,0 +1,12 @@ +import { BaseThumbnailGenerator } from './thumbnail-generator-interface'; +declare class MeshThumbnailGenerator extends BaseThumbnailGenerator { + private _mesh; + private _queue; + private _queueLock; + constructor(); + getThumbnail(uuid: string, path: string): Promise<string>; + private step; + private generate; +} +export default MeshThumbnailGenerator; +//# sourceMappingURL=mesh-thumbnail-generator.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/mesh-thumbnail-generator.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/mesh-thumbnail-generator.d.ts.map new file mode 100644 index 0000000..6850ad1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/mesh-thumbnail-generator.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mesh-thumbnail-generator.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/thumbnail/mesh-thumbnail-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAyQzE,cAAM,sBAAuB,SAAQ,sBAAsB;IACvD,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAS;;IAQ3B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzD,OAAO,CAAC,IAAI;YAuBE,QAAQ;CAYzB;AAED,eAAe,sBAAsB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/thumbnail-generator-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/thumbnail-generator-interface.d.ts new file mode 100644 index 0000000..e3c5415 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/thumbnail-generator-interface.d.ts @@ -0,0 +1,15 @@ +interface IThumbnailGenerator { + width: number; + height: number; + getThumbnail(uuid: string, path?: string | undefined): Promise<string>; + setSize(width: number, height: number): void; +} +declare class BaseThumbnailGenerator implements IThumbnailGenerator { + width: number; + height: number; + constructor(); + getThumbnail(uuid: string, path: string | undefined): Promise<string>; + setSize(width: number, height: number): void; +} +export { IThumbnailGenerator, BaseThumbnailGenerator }; +//# sourceMappingURL=thumbnail-generator-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/thumbnail-generator-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/thumbnail-generator-interface.d.ts.map new file mode 100644 index 0000000..36ee6e9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/thumbnail/thumbnail-generator-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"thumbnail-generator-interface.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/thumbnail/thumbnail-generator-interface.ts"],"names":[],"mappings":"AACA,UAAU,mBAAmB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,cAAM,sBAAuB,YAAW,mBAAmB;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;;IAMf,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAInE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAI/C;AAED,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ui/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ui/index.d.ts new file mode 100644 index 0000000..40cdbe6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ui/index.d.ts @@ -0,0 +1,7 @@ +export declare class UIManager { + alignSelection(type: string): void; + distributeSelection(type: string): void; +} +declare const _default: UIManager; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ui/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ui/index.d.ts.map new file mode 100644 index 0000000..bc13112 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/ui/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/ui/index.ts"],"names":[],"mappings":"AAeA,qBAAa,SAAS;IACX,cAAc,CAAC,IAAI,EAAE,MAAM;IAqF3B,mBAAmB,CAAC,IAAI,EAAE,MAAM;CAsG1C;;AAED,wBAA+B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/index.d.ts new file mode 100644 index 0000000..e939e6e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/index.d.ts @@ -0,0 +1,10 @@ +import { UnitTestInfo } from '../../../../../@types/public'; +import { SceneFacadeManager } from '../../facade/scene-facade-manager'; +declare class UnitTestManager { + private _unitTestMap; + constructor(); + test(sceneFacadeMgr: SceneFacadeManager, opts: UnitTestInfo): Promise<boolean | undefined>; +} +declare const unitTestMgr: UnitTestManager; +export { unitTestMgr }; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/index.d.ts.map new file mode 100644 index 0000000..7cf29bc --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/unit-test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAKvE,cAAM,eAAe;IACjB,OAAO,CAAC,YAAY,CAAwD;;IAM/D,IAAI,CAAC,cAAc,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY;CAO3E;AAED,QAAA,MAAM,WAAW,iBAAwB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/nested-prefab-test.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/nested-prefab-test.d.ts new file mode 100644 index 0000000..49b8c69 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/nested-prefab-test.d.ts @@ -0,0 +1,8 @@ +import { SceneFacadeManager } from '../../facade/scene-facade-manager'; +import { IUnitTest } from './unit-test-interface'; +declare class NestedPrefabTest implements IUnitTest { + test(sceneFacadeMgr: SceneFacadeManager): Promise<boolean>; +} +declare const nestedPrefabTest: NestedPrefabTest; +export { nestedPrefabTest }; +//# sourceMappingURL=nested-prefab-test.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/nested-prefab-test.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/nested-prefab-test.d.ts.map new file mode 100644 index 0000000..539d8ae --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/nested-prefab-test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"nested-prefab-test.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/unit-test/nested-prefab-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAgBlD,cAAM,gBAAiB,YAAW,SAAS;IAC1B,IAAI,CAAC,cAAc,EAAE,kBAAkB;CA6avD;AAED,QAAA,MAAM,gBAAgB,kBAAyB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/target-override-test.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/target-override-test.d.ts new file mode 100644 index 0000000..adfec75 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/target-override-test.d.ts @@ -0,0 +1,8 @@ +import { SceneFacadeManager } from '../../facade/scene-facade-manager'; +import { IUnitTest } from './unit-test-interface'; +declare class TargetOverrideTest implements IUnitTest { + test(sceneFacadeMgr: SceneFacadeManager): Promise<boolean>; +} +declare const targetOverrideTest: TargetOverrideTest; +export { targetOverrideTest }; +//# sourceMappingURL=target-override-test.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/target-override-test.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/target-override-test.d.ts.map new file mode 100644 index 0000000..d36fc72 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/target-override-test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"target-override-test.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/unit-test/target-override-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AA+BlD,cAAM,kBAAmB,YAAW,SAAS;IAC5B,IAAI,CAAC,cAAc,EAAE,kBAAkB;CA4hBvD;AAED,QAAA,MAAM,kBAAkB,oBAA2B,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/unit-test-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/unit-test-interface.d.ts new file mode 100644 index 0000000..2b28c92 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/unit-test-interface.d.ts @@ -0,0 +1,6 @@ +import { SceneFacadeManager } from '../../facade/scene-facade-manager'; +interface IUnitTest { + test(facadeMgr: SceneFacadeManager): Promise<boolean>; +} +export { IUnitTest }; +//# sourceMappingURL=unit-test-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/unit-test-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/unit-test-interface.d.ts.map new file mode 100644 index 0000000..1146ac5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/unit-test/unit-test-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"unit-test-interface.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/unit-test/unit-test-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,UAAU,SAAS;IACf,IAAI,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/index.d.ts new file mode 100644 index 0000000..90f70b6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/index.d.ts @@ -0,0 +1,59 @@ +import { Material, Node } from 'cc'; +import { ISceneEvents } from '../scene-events-interface'; +/** + * 线框开启的模式: + * + * NONE -关闭线框,只显示模型 + * + * LINE -模型只显示线框 + * + * BLEND -线框与模型混合 + * + */ +declare enum WireframeMode { + NONE = 0, + LINE = 1, + BLEND = 2 +} +/** + * 线框管理类 + */ +export declare class ModelWireframe implements ISceneEvents { + currMode: WireframeMode; + color: number[]; + private scene; + private primitiveIndex; + private extrude; + material: Material | undefined; + private handleColor; + private blockCount; + init(): Promise<void>; + initEventListener(): void; + onSceneOpened(scene: any): void; + onSceneReload(scene: any): void; + private _nodeChildrenAdd; + private _nodeChildrenActive; + onNodeAdded(node: Node, opts: any): void; + onNodeRemoved(node: Node): void; + onNodeChanged(node: Node, opts: any): void; + private _change; + applyStorage(mode?: WireframeMode, color?: number[]): void; + private _onLoadScene; + private _traverse; + private _generateWireframeVB; + private _generateWireframeIB; + applyScene(mode?: any, color?: number[]): void; + setColor(color?: number[]): void; + setMode(mode?: WireframeMode): void; + private _getTerrainAttrs; + private _generateMesh; + private _getWireframeInChild; + private _onHierarchyChanged; + generateWireframe(comp: any): void; + private _create; + open(uuid: string, mode?: WireframeMode, color?: number[]): void; + close(uuid: string): void; +} +declare const modelWireframe: ModelWireframe; +export default modelWireframe; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/index.d.ts.map new file mode 100644 index 0000000..a90bab9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/wireframe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,QAAQ,EAaR,IAAI,EACP,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD;;;;;;;;;GASG;AACH,aAAK,aAAa;IACd,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACZ;AAuED;;GAEG;AACH,qBAAa,cAAe,YAAW,YAAY;IACxC,QAAQ,EAAE,aAAa,CAAsB;IAC7C,KAAK,WAAwB;IACpC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,OAAO,CAAS;IACjB,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,UAAU,CAAW;IAEhB,IAAI;IAkBV,iBAAiB;IAMjB,aAAa,CAAC,KAAK,EAAE,GAAG;IAIxB,aAAa,CAAC,KAAK,EAAE,GAAG;IAI/B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,mBAAmB;IAmBpB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG;IAIjC,aAAa,CAAC,IAAI,EAAE,IAAI;IAIxB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG;IAQ1C,OAAO,CAAC,OAAO;IA0Cf,YAAY,CAAC,IAAI,GAAE,aAAkC,EAAE,KAAK,WAAuB;YAKrE,YAAY;IAK1B,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,oBAAoB;IAY5B,UAAU,CAAC,IAAI,GAAE,GAAwB,EAAE,KAAK,WAAuB;IAavE,QAAQ,CAAC,KAAK,WAAuB;IAOrC,OAAO,CAAC,IAAI,GAAE,aAAkC;IAKhD,OAAO,CAAC,gBAAgB;IAyDxB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,mBAAmB;IAWpB,iBAAiB,CAAC,IAAI,EAAE,GAAG;IAkClC,OAAO,CAAC,OAAO;IAqDf,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkC,EAAE,KAAK,WAAuB;IAWzF,KAAK,CAAC,IAAI,EAAE,MAAM;CAGrB;AAED,QAAA,MAAM,cAAc,gBAAuB,CAAC;AAC5C,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/wireframe.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/wireframe.d.ts new file mode 100644 index 0000000..806bbdd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/wireframe.d.ts @@ -0,0 +1,7 @@ +declare class WireframeNode extends cc.Node { + private _isWireframeNode; + constructor(name: string); + get isWireframeNode(): boolean; +} +export default WireframeNode; +//# sourceMappingURL=wireframe.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/wireframe.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/wireframe.d.ts.map new file mode 100644 index 0000000..b808991 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/manager/wireframe/wireframe.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"wireframe.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/manager/wireframe/wireframe.ts"],"names":[],"mappings":"AAIA,cAAM,aAAc,SAAQ,EAAE,CAAC,IAAI;IAC/B,OAAO,CAAC,gBAAgB,CAAQ;gBAEpB,IAAI,EAAE,MAAM;IAKxB,IAAI,eAAe,YAElB;CACJ;AACD,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/editor-preview.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/editor-preview.d.ts new file mode 100644 index 0000000..7340ffc --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/editor-preview.d.ts @@ -0,0 +1,13 @@ +/** + * 编辑器预览时,加载编辑器代码等操作 + */ +declare class EditorPreview { + engineInfo: any; + start(): Promise<void>; + private _startEngine; + private _startEditor; + private _startPreview; +} +declare const _default: EditorPreview; +export default _default; +//# sourceMappingURL=editor-preview.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/editor-preview.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/editor-preview.d.ts.map new file mode 100644 index 0000000..8a72ef1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/editor-preview.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"editor-preview.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/preload/preview/editor-preview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,cAAM,aAAa;IACf,UAAU,EAAE,GAAG,CAAC;IACH,KAAK;YAMJ,YAAY;YAwBZ,YAAY;YAYZ,aAAa;CAG9B;;AAED,wBAAmC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/preload.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/preload.d.ts new file mode 100644 index 0000000..0edfb2b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/preload.d.ts @@ -0,0 +1,11 @@ +import type { CustomWebIPC } from '../../manager/ipc/web/ipc'; +declare function check(): void; +export { check }; +declare global { + export namespace cce { + let Ipc: CustomWebIPC; + let Startup: typeof import('../../manager/startup')['default']; + let EditorPreview: typeof import('./editor-preview')['default']; + } +} +//# sourceMappingURL=preload.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/preload.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/preload.d.ts.map new file mode 100644 index 0000000..a330f80 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/preview/preload.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/preload/preview/preload.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAgB9D,iBAAS,KAAK,SASb;AA+FD,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,WAAW,GAAG,CAAC;QACV,IAAI,GAAG,EAAE,YAAY,CAAC;QACtB,IAAI,OAAO,EAAE,cAAc,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,aAAa,EAAE,cAAc,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC;KAC1E;CACJ"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/web/preload.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/web/preload.d.ts new file mode 100644 index 0000000..4f4a2b8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/web/preload.d.ts @@ -0,0 +1,6 @@ +declare function check(): void; +declare global { + export let AppModulePath: string; +} +export { check }; +//# sourceMappingURL=preload.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/web/preload.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/web/preload.d.ts.map new file mode 100644 index 0000000..db7c5bb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/preload/web/preload.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/preload/web/preload.ts"],"names":[],"mappings":"AAiBA,iBAAS,KAAK,SASb;AAED,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,IAAI,aAAa,EAAE,MAAM,CAAC;CACpC;AAyDD,OAAO,EAAE,KAAK,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/dump/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/dump/index.d.ts new file mode 100644 index 0000000..cf34d23 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/dump/index.d.ts @@ -0,0 +1,56 @@ +import { Node, Component } from 'cc'; +declare class DumpUtil { + /** + * 生成一个 node 的 dump 数据 + * @param {*} node + */ + dumpNode(node: Node): any; + dumpComponent(comp: Component): any; + /** + * 恢复一个 dump 数据到 property + * @param node + * @param path + * @param dump + */ + restoreProperty(node: Node | Component, path: string, dump: any): Promise<any>; + /** + * 恢复一个 dump 数据到 property + * @param node + * @param path + */ + resetProperty(node: Node | Component, path: string): Promise<any>; + /** + * 将一个属性其现存值与定义类型值不匹配,或者为 null 默认值,改为一个可编辑的值 + * @param node + * @param path + */ + updatePropertyFromNull(node: Node | Component, path: string): Promise<any>; + /** + * 还原一个节点的全部属性 + * @param {*} node + * @param {*} dump + */ + restoreNode(node: Node, dump: any): Promise<any>; + /** + * 解析节点的访问路径 + * @param path + * @returns + */ + parsingPath(path: string, data: any): { + search: string; + key: string; + }; + /** + * encodeObject + */ + encodeObject(object: any, attributes: any, owner?: any, objectKey?: string, isTemplate?: boolean): import("../../../../../@types/public").IProperty; + /** + * 获取类型的默认dump数据 + * @param type + * @returns + */ + getDefaultValue(type: string | undefined): any; +} +declare const _default: DumpUtil; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/dump/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/dump/index.d.ts.map new file mode 100644 index 0000000..d0db39f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/dump/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/utils/dump/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAM,MAAM,IAAI,CAAC;AAKzC,cAAM,QAAQ;IACV;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI;IAQnB,aAAa,CAAC,IAAI,EAAE,SAAS;IAO7B;;;;;OAKG;IACG,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAIrE;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM;IAIxD;;;;OAIG;IACG,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM;IAIjE;;;;OAIG;IACG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG;IAIvC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;IAInC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,GAAE,GAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO;IAItG;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG;CAWjD;;AAED,wBAA8B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/get-component-function-of-node.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/get-component-function-of-node.d.ts new file mode 100644 index 0000000..e59ca16 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/get-component-function-of-node.d.ts @@ -0,0 +1,4 @@ +import { Node } from 'cc'; +declare const _default: (node: Node) => any; +export default _default; +//# sourceMappingURL=get-component-function-of-node.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/get-component-function-of-node.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/get-component-function-of-node.d.ts.map new file mode 100644 index 0000000..2a99ba7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/get-component-function-of-node.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"get-component-function-of-node.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/utils/get-component-function-of-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA0B,MAAM,IAAI,CAAC;+BAyD5B,IAAI;AAA1B,wBAOE"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/is-child-class.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/is-child-class.d.ts new file mode 100644 index 0000000..022d09f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/is-child-class.d.ts @@ -0,0 +1,3 @@ +declare const _default: (subClass: any, ...superClasses: any) => any; +export default _default; +//# sourceMappingURL=is-child-class.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/is-child-class.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/is-child-class.d.ts.map new file mode 100644 index 0000000..b7b9f36 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/is-child-class.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"is-child-class.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/utils/is-child-class.ts"],"names":[],"mappings":"mCAA0B,GAAG,mBAAmB,GAAG;AAAnD,wBAEE"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/finite-state-machine.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/finite-state-machine.d.ts new file mode 100644 index 0000000..a65ba7a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/finite-state-machine.d.ts @@ -0,0 +1,14 @@ +import IState from './state-interface'; +import { Transition } from './transition'; +declare class FiniteStateMachine<TState extends IState> { + currentState: TState; + private _states; + private _transitions; + constructor(states: TState[]); + addTransition(from: TState, to: TState, command: string, transition?: Transition<TState>): FiniteStateMachine<TState>; + addTransition(from: TState, to: TState, command: string, condition: Function): FiniteStateMachine<TState>; + Begin(firstState: TState): this; + issueCommand(command: string, opts?: any): Promise<boolean>; +} +export default FiniteStateMachine; +//# sourceMappingURL=finite-state-machine.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/finite-state-machine.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/finite-state-machine.d.ts.map new file mode 100644 index 0000000..3870d81 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/finite-state-machine.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"finite-state-machine.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/utils/state-machine/finite-state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,UAAU,EAA0B,MAAM,cAAc,CAAC;AAClE,cAAM,kBAAkB,CAAC,MAAM,SAAS,MAAM;IACnC,YAAY,EAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,YAAY,CAA+C;gBAEvD,MAAM,EAAE,MAAM,EAAE;IAarB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACrH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAqBzG,KAAK,CAAC,UAAU,EAAE,MAAM;IAclB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAmB/E;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/state-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/state-interface.d.ts new file mode 100644 index 0000000..df3e3b3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/state-interface.d.ts @@ -0,0 +1,7 @@ +interface IState { + fromState?: IState; + enter(opts: any): Promise<void>; + exit(): Promise<void>; +} +export default IState; +//# sourceMappingURL=state-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/state-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/state-interface.d.ts.map new file mode 100644 index 0000000..e529454 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/state-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"state-interface.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/utils/state-machine/state-interface.ts"],"names":[],"mappings":"AAAA,UAAU,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/transition.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/transition.d.ts new file mode 100644 index 0000000..f08c136 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/transition.d.ts @@ -0,0 +1,14 @@ +import IState from './state-interface'; +declare class Transition<TState extends IState> { + fromState: TState; + toState: TState; + testConditionFunc: Function | null; + constructor(from: TState, to: TState, testConditionFunc?: Function | null); + testCondition(opts?: any): Promise<boolean>; + Complete(): Promise<void>; +} +declare class DefaultStateTransition<TState extends IState> extends Transition<TState> { + constructor(from: TState, to: TState, testConditionFunc?: Function | null); +} +export { Transition, DefaultStateTransition }; +//# sourceMappingURL=transition.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/transition.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/transition.d.ts.map new file mode 100644 index 0000000..2e5f20e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/state-machine/transition.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../../../../source/script/3d/utils/state-machine/transition.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,cAAM,UAAU,CAAC,MAAM,SAAS,MAAM;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB,EAAE,QAAQ,GAAG,IAAI,CAAC;gBAE9B,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAE,QAAQ,GAAG,IAAW;IAMlE,aAAa,CAAC,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C,QAAQ;CAGxB;AAED,cAAM,sBAAsB,CAAC,MAAM,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;gBAC9D,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAE,QAAQ,GAAG,IAAW;CAGlF;AAED,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/timer-util.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/timer-util.d.ts new file mode 100644 index 0000000..5f1ce54 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/timer-util.d.ts @@ -0,0 +1,20 @@ +declare class TimerUtil { + private _timeInterval; + constructor(timeInterval?: number); + private _callWaitingMap; + /** + * 限制一个方法在一定时间内的调用次数 + * @param key 这个方法的一个唯一标识 + * @param func 方法 + * @param args 参数 + */ + callFunctionLimit(key: string, func: Function, ...args: any[]): void; + clear(): void; + static setMainProcessTimeout(callback: any, time: number): any; + static clearMainProcessTimeout(id: any): void; + static setMainProcessInterval(callback: any, time: number): any; + static clearMainProcessInterval(id: any): void; + static clearTimerAndInterval(): void; +} +export { TimerUtil }; +//# sourceMappingURL=timer-util.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/timer-util.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/timer-util.d.ts.map new file mode 100644 index 0000000..4151d32 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/timer-util.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"timer-util.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/utils/timer-util.ts"],"names":[],"mappings":"AAcA,cAAM,SAAS;IACX,OAAO,CAAC,aAAa,CAAO;gBAChB,YAAY,CAAC,EAAE,MAAM;IAGjC,OAAO,CAAC,eAAe,CAA8D;IAErF;;;;;OAKG;IACI,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAuC7D,KAAK;WAOE,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;WAKjD,uBAAuB,CAAC,EAAE,EAAE,GAAG;WAI/B,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;WAMlD,wBAAwB,CAAC,EAAE,EAAE,GAAG;WAQhC,qBAAqB;CAMtC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/types.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/types.d.ts new file mode 100644 index 0000000..a455fab --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/types.d.ts @@ -0,0 +1,31 @@ +declare const types: { + 'cc.Vec2': { + properties: string[]; + }; + 'cc.Vec3': { + properties: string[]; + }; + 'cc.Size': { + properties: string[]; + }; + 'cc.Color': { + properties: string[]; + }; +}; +/** + * 获取一个对象的类型 + * @param {*} obj + */ +declare function getTypeId(obj: any): string; +/** + * 获取一个对象上的继承链 + * @param {*} klass + */ +declare function getInheritanceChain(klass: any): string[]; +/** + * 获取一个数据的默认值 + * @param {*} defaultVal + */ +declare function getDefault(defaultVal: any): any; +export { types, getTypeId, getInheritanceChain, getDefault }; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/types.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/types.d.ts.map new file mode 100644 index 0000000..c5bc146 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/3d/utils/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../source/script/3d/utils/types.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,KAAK;;;;;;;;;;;;;CAaV,CAAC;AAEF;;;GAGG;AACH,iBAAS,SAAS,CAAC,GAAG,EAAE,GAAG,UAK1B;AAED;;;GAGG;AACH,iBAAS,mBAAmB,CAAC,KAAK,EAAE,GAAG,YAMtC;AAED;;;GAGG;AACH,iBAAS,UAAU,CAAC,UAAU,EAAE,GAAG,OAUlC;AAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/EventEmitter.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/EventEmitter.d.ts new file mode 100644 index 0000000..eb54fe7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/EventEmitter.d.ts @@ -0,0 +1,7 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +declare class EventManager extends EventEmitter { + emit(event: string | symbol, ...args: any[]): boolean; +} +export default EventManager; +//# sourceMappingURL=EventEmitter.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/EventEmitter.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/EventEmitter.d.ts.map new file mode 100644 index 0000000..b60dfd4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/EventEmitter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../../../source/script/public/EventEmitter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,cAAM,YAAa,SAAQ,YAAY;IACnC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;CAQxD;AAED,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/event-enum.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/event-enum.d.ts new file mode 100644 index 0000000..2c7518b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/event-enum.d.ts @@ -0,0 +1,28 @@ +declare enum NodeEventType { + TRANSFORM_CHANGED = "transform-changed", + SIZE_CHANGED = "size-changed", + ANCHOR_CHANGED = "anchor-changed", + CHILD_ADDED = "child-added", + CHILD_REMOVED = "child-removed", + PARENT_CHANGED = "parent-changed", + CHILD_CHANGED = "child-changed", + COMPONENT_CHANGED = "component-changed", + ACTIVE_IN_HIERARCHY_CHANGE = "active-in-hierarchy-changed", + NOTIFY_NODE_CHANGED = "notify-node-changed", + PREFAB_INFO_CHANGED = "prefab-info-changed", + LIGHT_PROBE_CHANGED = "light-probe-changed" +} +declare enum NodeOperationType { + SET_PROPERTY = "set-property", + MOVE_ARRAY_ELEMENT = "move-array-element", + REMOVE_ARRAY_ELEMENT = "remove-array-element", + CREATE_COMPONENT = "create-component", + RESET_COMPONENT = "reset-component" +} +declare enum EventSourceType { + EDITOR = "editor", + UNDO = "undo", + ENGINE = "engine" +} +export { NodeEventType, NodeOperationType, EventSourceType }; +//# sourceMappingURL=event-enum.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/event-enum.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/event-enum.d.ts.map new file mode 100644 index 0000000..c14679f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/event-enum.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"event-enum.d.ts","sourceRoot":"","sources":["../../../source/script/public/event-enum.ts"],"names":[],"mappings":"AAAA,aAAK,aAAa;IACd,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,0BAA0B,gCAAgC;IAC1D,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;CAC9C;AAED,aAAK,iBAAiB;IAClB,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;CACtC;AAED,aAAK,eAAe;IAChB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;CACpB;AAED,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/cce.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/cce.d.ts new file mode 100644 index 0000000..c93c914 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/cce.d.ts @@ -0,0 +1,23 @@ +import GizmoManager from './gizmo-manager'; +declare class gizmoExport { + init(): void; +} +declare const _default: gizmoExport; +export default _default; +declare global { + export namespace cce { + namespace gizmos { + const ControllerBase: typeof import('./elements/controller/controller-base')['default']; + const PositionController: typeof import('./elements/controller/position-controller')['default']; + const BoxController: typeof import('./elements/controller/box-controller')['default']; + const ControllerUtils: typeof import('./elements/utils/controller-utils')['default']; + const GizmoDefines: typeof import('./gizmo-defines')['default']; + const Gizmo: typeof import('./elements/gizmo-base')['default']; + const TransformGizmo: typeof import('./elements/transform/transform-gizmo')['default']; + const EngineUtils: typeof import('../utils/engine/3d')['default']; + const Utils: typeof import('../utils/3d')['default']; + const transformTool: typeof GizmoManager.transformTool; + } + } +} +//# sourceMappingURL=cce.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/cce.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/cce.d.ts.map new file mode 100644 index 0000000..1e95efd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/cce.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cce.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/3d/cce.ts"],"names":[],"mappings":"AASA,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,cAAM,WAAW;IACb,IAAI;CAgBP;;AAED,wBAAiC;AAEjC,OAAO,CAAC,MAAM,CAAA;IACV,MAAM,WAAW,GAAG,CAAC;QACjB,UAAiB,MAAM,CAAC;YACb,MAAM,cAAc,EAAE,cAAc,uCAAuC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxF,MAAM,kBAAkB,EAAE,cAAc,2CAA2C,CAAC,CAAC,SAAS,CAAC,CAAC;YAChG,MAAM,aAAa,EAAE,cAAc,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtF,MAAM,eAAe,EAAE,cAAc,mCAAmC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrF,MAAM,YAAY,EAAE,cAAc,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC;YAChE,MAAM,KAAK,EAAE,cAAc,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,cAAc,EAAE,cAAc,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC;YACvF,MAAM,WAAW,EAAE,cAAc,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC;YAClE,MAAM,KAAK,EAAE,cAAc,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,aAAa,EAAE,OAAO,YAAY,CAAC,aAAa,CAAC;SACjE;KACJ;CACJ"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/camera-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/camera-component-gizmo.d.ts new file mode 100644 index 0000000..28699c5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/camera-component-gizmo.d.ts @@ -0,0 +1,28 @@ +import Gizmo from '../gizmo-base'; +declare class CameraComponentGizmo extends Gizmo { + private _fov; + private _near; + private _far; + private _aspect; + private _farHalfWidth; + private _farHalfHeight; + private _projection; + private _fovAxis; + private _controller; + private _onTargetResolutionChanged; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; + onTargetResolutionChanged(): void; +} +export default CameraComponentGizmo; +//# sourceMappingURL=camera-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/camera-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/camera-component-gizmo.d.ts.map new file mode 100644 index 0000000..d07e811 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/camera-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"camera-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/camera-component-gizmo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,eAAe,CAAC;AASlC,cAAM,oBAAqB,SAAQ,KAAK;IAEpC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAA4B;IAE5C,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,0BAA0B,CAAY;IAE9C,IAAI;IAMJ,MAAM;IAMN,MAAM;IAKN,gBAAgB;IAShB,qBAAqB;IA2BrB,qBAAqB;IAIrB,mBAAmB;IAEnB,wBAAwB;IA0DxB,yBAAyB;IAUzB,oBAAoB;IA2BpB,cAAc;IAId,aAAa;IAIb,yBAAyB;CAI5B;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/canvas-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/canvas-gizmo.d.ts new file mode 100644 index 0000000..6389f25 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/canvas-gizmo.d.ts @@ -0,0 +1,19 @@ +import GizmoBase from '../gizmo-base'; +import { RectangleController } from '../controller/rectangle-controller'; +declare class CanvasGizmo extends GizmoBase { + protected _controller: RectangleController; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateControllerData(): void; + updateControllerTransform(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default CanvasGizmo; +//# sourceMappingURL=canvas-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/canvas-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/canvas-gizmo.d.ts.map new file mode 100644 index 0000000..ab02142 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/canvas-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"canvas-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/canvas-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAQzE,cAAM,WAAY,SAAQ,SAAS;IAC/B,SAAS,CAAC,WAAW,EAAG,mBAAmB,CAAC;IAE5C,IAAI;IAIJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAQhB,qBAAqB;IAErB,qBAAqB;IAErB,mBAAmB;IAOnB,oBAAoB;IAgBpB,yBAAyB;IAczB,gBAAgB;IAKhB,cAAc;IAId,aAAa;CAIhB;AAED,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.d.ts new file mode 100644 index 0000000..fd998ff --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.d.ts @@ -0,0 +1,29 @@ +import GizmoBase from '../../../gizmo-base'; +import { Vec3, Vec2 } from 'cc'; +import { ISceneKeyboardEvent } from '../../../../../../../../../@types/private'; +declare class BoxCollider2DGizmo extends GizmoBase { + private _controller; + private _size; + private _offset; + private _anchor; + private _altKey; + private _propPath; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + handleAreaMove(delta: Vec3): void; + modifyPosDeltaWithAnchor(type: any, posDelta: Vec3, sizeDelta: Vec2, anchor: Vec2, keepCenter: boolean): void; + handleTargetSize(type: any, delta: Vec3, keepCenter: boolean): void; + updateControllerData(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default BoxCollider2DGizmo; +//# sourceMappingURL=box-collider-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.d.ts.map new file mode 100644 index 0000000..a3c9d08 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"box-collider-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/2d/box-collider-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAG5C,OAAO,EAAuB,IAAI,EAAQ,IAAI,EAAQ,MAAM,IAAI,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAWhF,cAAM,kBAAmB,SAAQ,SAAS;IACtC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,IAAI;IAIJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAYhB,qBAAqB;IAMrB,qBAAqB;IAcrB,mBAAmB;IAInB,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAIpC,OAAO,CAAC,KAAK,EAAE,mBAAmB;IAIlC,cAAc,CAAC,KAAK,EAAE,IAAI;IAoB1B,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO;IA8BtG,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO;IA6C5D,oBAAoB;IA+BpB,gBAAgB;IAIhB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.d.ts new file mode 100644 index 0000000..e413a56 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.d.ts @@ -0,0 +1,26 @@ +import GizmoBase from '../../../gizmo-base'; +import { Vec3 } from 'cc'; +declare class CircleCollider2DGizmo extends GizmoBase { + private _controller; + private _radius; + private _offset; + private _propRadiusPath; + private _propOffsetPath; + private _curHandleType; + private _maxScale; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + handleAreaMove(delta: Vec3): void; + handleRadius(deltaRadius: number): void; + updateControllerData(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default CircleCollider2DGizmo; +//# sourceMappingURL=circle-collider-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.d.ts.map new file mode 100644 index 0000000..278a9a9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"circle-collider-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/2d/circle-collider-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAQ,IAAI,EAAgC,MAAM,IAAI,CAAC;AAc9D,cAAM,qBAAsB,SAAQ,SAAS;IACzC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,SAAS,CAAK;IACtB,IAAI;IAIJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAYhB,qBAAqB;IASrB,qBAAqB;IAerB,mBAAmB;IAQnB,cAAc,CAAC,KAAK,EAAE,IAAI;IAoB1B,YAAY,CAAC,WAAW,EAAE,MAAM;IAOhC,oBAAoB;IAgCpB,gBAAgB;IAIhB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,qBAAqB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.d.ts new file mode 100644 index 0000000..364c539 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.d.ts @@ -0,0 +1,44 @@ +import GizmoBase from '../../../gizmo-base'; +import { Vec3 } from 'cc'; +import { IPolygonHandleData } from '../../../controller/polygon-controller'; +import { IControlMouseEvent } from '../../../../../../../../script/public/gizmos/defines'; +import { ISceneKeyboardEvent } from '../../../../../../../../../@types/private'; +declare class PolygonCollider2DGizmo extends GizmoBase { + private _controller; + private _leftDeleteLine; + private _rightDeleteLine; + private _offset; + private _ctrlKey; + private _metaKey; + private _propPath; + private _3dPoints; + private _points; + private _curHoverInHandleType; + private _curHoverInElemIndex; + private _isDeletePointKeyDown; + get isDeletePointKeyDown(): boolean; + set isDeletePointKeyDown(value: boolean); + get curHoverInHandleType(): string; + set curHoverInHandleType(value: string); + highlightDeleteLine(active: boolean): void; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(event: IControlMouseEvent): void; + onControllerMouseUp(): void; + onControllerHoverIn(event: IControlMouseEvent): void; + onControllerHoverOut(event: IControlMouseEvent): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + worldToLocalPos(out: Vec3, inPos: Vec3): void; + handleAreaMove(delta: Vec3): void; + handlePoints(handleMoveData: IPolygonHandleData): void; + updateControllerData(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default PolygonCollider2DGizmo; +//# sourceMappingURL=polygon-collider-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.d.ts.map new file mode 100644 index 0000000..066a7b9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"polygon-collider-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/2d/polygon-collider-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAQ,IAAI,EAAwC,MAAM,IAAI,CAAC;AACtE,OAAO,EAAqB,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAE1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAYhF,cAAM,sBAAuB,SAAQ,SAAS;IAC1C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,qBAAqB,CAAS;IAEtC,IAAW,oBAAoB,IAIQ,OAAO,CAF7C;IAED,IAAW,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAc7C;IAED,IAAW,oBAAoB,IAIQ,MAAM,CAF5C;IAED,IAAW,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAuB5C;IAED,mBAAmB,CAAC,MAAM,EAAE,OAAO;IA6BnC,IAAI;IAIJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAuBhB,qBAAqB;IA6CrB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB;IAgB/C,mBAAmB;IAInB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB;IAY7C,oBAAoB,CAAC,KAAK,EAAE,kBAAkB;IAkB9C,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAMpC,OAAO,CAAC,KAAK,EAAE,mBAAmB;IAMlC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI;IAStC,cAAc,CAAC,KAAK,EAAE,IAAI;IAmB1B,YAAY,CAAC,cAAc,EAAE,kBAAkB;IA8B/C,oBAAoB;IAsCpB,gBAAgB;IAIhB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,sBAAsB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.d.ts new file mode 100644 index 0000000..6f07872 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.d.ts @@ -0,0 +1,21 @@ +import Gizmo from '../../gizmo-base'; +declare class BoxColliderComponentGizmo extends Gizmo { + private _size; + private _scale; + private _controller; + private _propPath; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default BoxColliderComponentGizmo; +//# sourceMappingURL=box-collider-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.d.ts.map new file mode 100644 index 0000000..11c9786 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"box-collider-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/box-collider-component-gizmo.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AAOrC,cAAM,yBAA0B,SAAQ,KAAK;IACzC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,IAAI;IAKJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAahB,qBAAqB;IAWrB,qBAAqB;IAIrB,mBAAmB;IAInB,wBAAwB;IAgBxB,yBAAyB;IAIzB,oBAAoB;IA2BpB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,yBAAyB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.d.ts new file mode 100644 index 0000000..dfceb47 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.d.ts @@ -0,0 +1,23 @@ +import Gizmo from '../../gizmo-base'; +declare class CapsuleColliderComponentGizmo extends Gizmo { + private _maxScale; + private _radius; + private _height; + private _controller; + private _propPath; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; + private getMaxScale; +} +export default CapsuleColliderComponentGizmo; +//# sourceMappingURL=capsule-collider-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.d.ts.map new file mode 100644 index 0000000..7d44aa3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"capsule-collider-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/capsule-collider-component-gizmo.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AAIrC,cAAM,6BAA8B,SAAQ,KAAK;IAC7C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,SAAS,CAAuB;IAEjC,IAAI;IAKJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAahB,qBAAqB;IAarB,qBAAqB;IAIrB,mBAAmB;IAInB,wBAAwB;IAkBxB,yBAAyB;IAIzB,oBAAoB;IA4BpB,cAAc;IAId,aAAa;IAIpB,OAAO,CAAC,WAAW;CAKtB;AAED,eAAe,6BAA6B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.d.ts new file mode 100644 index 0000000..d4b0527 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.d.ts @@ -0,0 +1,23 @@ +import Gizmo from '../../gizmo-base'; +declare class ConeColliderComponentGizmo extends Gizmo { + private _maxScale; + private _radius; + private _height; + private _controller; + private _propPath; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; + private getMaxScale; +} +export default ConeColliderComponentGizmo; +//# sourceMappingURL=cone-collider-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.d.ts.map new file mode 100644 index 0000000..941129a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cone-collider-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/cone-collider-component-gizmo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AAKrC,cAAM,0BAA2B,SAAQ,KAAK;IAC1C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAAuB;IAEjC,IAAI;IAKJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAahB,qBAAqB;IAarB,qBAAqB;IAIrB,mBAAmB;IAInB,wBAAwB;IAkBxB,yBAAyB;IAIzB,oBAAoB;IA4BpB,cAAc;IAId,aAAa;IAIpB,OAAO,CAAC,WAAW;CAKtB;AAED,eAAe,0BAA0B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.d.ts new file mode 100644 index 0000000..e4f9159 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.d.ts @@ -0,0 +1,23 @@ +import Gizmo from '../../gizmo-base'; +declare class CylinderColliderComponentGizmo extends Gizmo { + private _maxScale; + private _radius; + private _height; + private _controller; + private _propPath; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; + private getMaxScale; +} +export default CylinderColliderComponentGizmo; +//# sourceMappingURL=cylinder-collider-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.d.ts.map new file mode 100644 index 0000000..ec9fa73 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cylinder-collider-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/cylinder-collider-component-gizmo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AAKrC,cAAM,8BAA+B,SAAQ,KAAK;IAC9C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,SAAS,CAAuB;IAEjC,IAAI;IAKJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAahB,qBAAqB;IAarB,qBAAqB;IAIrB,mBAAmB;IAInB,wBAAwB;IAkBxB,yBAAyB;IAIzB,oBAAoB;IA4BpB,cAAc;IAId,aAAa;IAIpB,OAAO,CAAC,WAAW;CAItB;AAED,eAAe,8BAA8B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.d.ts new file mode 100644 index 0000000..b7a0fde --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.d.ts @@ -0,0 +1,18 @@ +import { Mesh } from 'cc'; +import GizmoBase from '../../gizmo-base'; +declare class MeshColliderGizmo extends GizmoBase { + private _controller; + init(): void; + onShow(): void; + onHide(): void; + updateControllerData(): void; + calcMeshData(mesh: Mesh): { + points: number[]; + indices: number[]; + }; + private _generateWireframeData; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default MeshColliderGizmo; +//# sourceMappingURL=mesh-collider-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.d.ts.map new file mode 100644 index 0000000..ff14c2b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mesh-collider-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/mesh-collider-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,IAAI,EAA4B,MAAM,IAAI,CAAC;AAEzD,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAMzC,cAAM,iBAAkB,SAAQ,SAAS;IACrC,OAAO,CAAC,WAAW,CAAkB;IAErC,IAAI;IAIJ,MAAM;IAIN,MAAM;IAIN,oBAAoB;IAwCpB,YAAY,CAAC,IAAI,EAAE,IAAI;;;;IAwBvB,OAAO,CAAC,sBAAsB;IA8C9B,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.d.ts new file mode 100644 index 0000000..de987fa --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.d.ts @@ -0,0 +1,12 @@ +import GizmoBase from '../../gizmo-base'; +declare class PlaneColliderGizmo extends GizmoBase { + private _controller; + init(): void; + onShow(): void; + onHide(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default PlaneColliderGizmo; +//# sourceMappingURL=plane-collider-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.d.ts.map new file mode 100644 index 0000000..51c7628 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"plane-collider-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/plane-collider-gizmo.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAMzC,cAAM,kBAAmB,SAAQ,SAAS;IACtC,OAAO,CAAC,WAAW,CAAmB;IACtC,IAAI;IAIJ,MAAM;IAKN,MAAM;IAIN,oBAAoB;IAsBpB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.d.ts new file mode 100644 index 0000000..ffc9a18 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.d.ts @@ -0,0 +1,20 @@ +import { SimplexCollider } from 'cc'; +import GizmoBase from '../../gizmo-base'; +import PointController from '../../controller/point-controller'; +import LineController from '../../controller/line-controller'; +import TriangleController from '../../controller/triangle-controller'; +import TetrahedronController from '../../controller/tetrahedron-cotroller'; +declare class SimplexColliderGizmo extends GizmoBase { + private _shapeControllers; + private _activeController; + init(): void; + createControllerByShape(shape: SimplexCollider.ESimplexType): LineController | PointController | TriangleController | TetrahedronController | null; + getControllerByShape(shape: SimplexCollider.ESimplexType): any; + onShow(): void; + onHide(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default SimplexColliderGizmo; +//# sourceMappingURL=simplex-collider-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.d.ts.map new file mode 100644 index 0000000..7e1169a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"simplex-collider-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/simplex-collider-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,eAAe,EAAQ,MAAM,IAAI,CAAC;AACvE,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAChE,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,kBAAkB,MAAM,sCAAsC,CAAC;AACtE,OAAO,qBAAqB,MAAM,wCAAwC,CAAC;AAS3E,cAAM,oBAAqB,SAAQ,SAAS;IACxC,OAAO,CAAC,iBAAiB,CAAW;IACpC,OAAO,CAAC,iBAAiB,CAAsF;IAC/G,IAAI;IAIJ,uBAAuB,CAAC,KAAK,EAAE,eAAe,CAAC,YAAY;IA2B3D,oBAAoB,CAAC,KAAK,EAAE,eAAe,CAAC,YAAY;IAUxD,MAAM;IAIN,MAAM;IAMN,oBAAoB;IAiDpB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.d.ts new file mode 100644 index 0000000..a3742f2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.d.ts @@ -0,0 +1,23 @@ +import Gizmo from '../../gizmo-base'; +import { Vec3 } from 'cc'; +declare class SphereColliderComponentGizmo extends Gizmo { + private _radius; + private _maxScale; + private _controller; + private _propPath; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + getMaxScale(inScale: Vec3): number; + updateDataFromController(): void; + updateControllerData(): void; + updateControllerTransform(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default SphereColliderComponentGizmo; +//# sourceMappingURL=sphere-collider-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.d.ts.map new file mode 100644 index 0000000..20eab39 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"sphere-collider-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/colliders/sphere-collider-component-gizmo.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAwB,MAAM,IAAI,CAAC;AAIhD,cAAM,4BAA6B,SAAQ,KAAK;IAC5C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,SAAS,CAAuB;IACxC,IAAI;IAKJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAYhB,qBAAqB;IAYrB,qBAAqB;IAIrB,mBAAmB;IAInB,WAAW,CAAC,OAAO,EAAE,IAAI;IAMzB,wBAAwB;IAiBxB,oBAAoB;IA2BpB,yBAAyB;IAIzB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,4BAA4B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.d.ts new file mode 100644 index 0000000..43270ed --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.d.ts @@ -0,0 +1,5 @@ +import Joint2DGizmo from './joint-2d-gizmo'; +declare class SpringJoint2DGizmo extends Joint2DGizmo { +} +export default SpringJoint2DGizmo; +//# sourceMappingURL=Spring-joint-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.d.ts.map new file mode 100644 index 0000000..3bb184a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Spring-joint-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/joint/2d/Spring-joint-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,cAAM,kBAAmB,SAAQ,YAAY;CAC5C;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.d.ts new file mode 100644 index 0000000..c2ee726 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.d.ts @@ -0,0 +1,9 @@ +import Joint2DGizmo from './joint-2d-gizmo'; +declare class DistanceJoint2DGizmo extends Joint2DGizmo { + private _lineController; + createController(): void; + onHide(): void; + updateAnchorControllerData(): void; +} +export default DistanceJoint2DGizmo; +//# sourceMappingURL=distance-joint-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.d.ts.map new file mode 100644 index 0000000..30fb14d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"distance-joint-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/joint/2d/distance-joint-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAe5C,cAAM,oBAAqB,SAAQ,YAAY;IAC3C,OAAO,CAAC,eAAe,CAAkB;IAEzC,gBAAgB;IAShB,MAAM;IAKN,0BAA0B;CAoB7B;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.d.ts new file mode 100644 index 0000000..5827f0a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.d.ts @@ -0,0 +1,5 @@ +import Joint2DGizmo from './joint-2d-gizmo'; +declare class FixedJoint2DGizmo extends Joint2DGizmo { +} +export default FixedJoint2DGizmo; +//# sourceMappingURL=fixed-joint-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.d.ts.map new file mode 100644 index 0000000..aec8594 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fixed-joint-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/joint/2d/fixed-joint-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,cAAM,iBAAkB,SAAQ,YAAY;CAC3C;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.d.ts new file mode 100644 index 0000000..a1fface --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.d.ts @@ -0,0 +1,5 @@ +import Joint2DGizmo from './joint-2d-gizmo'; +declare class HingeJoint2DGizmo extends Joint2DGizmo { +} +export default HingeJoint2DGizmo; +//# sourceMappingURL=hinge-joint-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.d.ts.map new file mode 100644 index 0000000..ed4ab0c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"hinge-joint-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/joint/2d/hinge-joint-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,cAAM,iBAAkB,SAAQ,YAAY;CAC3C;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.d.ts new file mode 100644 index 0000000..29ac429 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.d.ts @@ -0,0 +1,27 @@ +import { Joint2DController } from '../../../controller/joint-2d-controller'; +import GizmoBase from '../../../gizmo-base'; +import { Color, Vec2 } from 'cc'; +declare class Joint2DGizmo extends GizmoBase { + protected _anchorController: Joint2DController; + protected _connectedAnchorController: Joint2DController; + protected _anchor: Vec2; + protected _connectedAnchor: Vec2; + protected _propPath: string | null; + protected _anchorColor: Color; + protected _connectedAnchorColor: Color; + init(): void; + createController(): void; + onShow(): void; + onHide(): void; + onAnchorControllerMouseDown(): void; + onAnchorControllerMouseMove(): void; + onAnchorControllerMouseUp(): void; + onConnectedAnchorControllerMouseDown(): void; + onConnectedAnchorControllerMouseMove(): void; + updateControllerData(): void; + updateAnchorControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default Joint2DGizmo; +//# sourceMappingURL=joint-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.d.ts.map new file mode 100644 index 0000000..bd1738d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"joint-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/joint/2d/joint-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAc,IAAI,EAAiB,MAAM,IAAI,CAAC;AAY5D,cAAM,YAAa,SAAQ,SAAS;IAChC,SAAS,CAAC,iBAAiB,EAAG,iBAAiB,CAAC;IAChD,SAAS,CAAC,0BAA0B,EAAG,iBAAiB,CAAC;IACzD,SAAS,CAAC,OAAO,EAAE,IAAI,CAAc;IACrC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAc;IAC9C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1C,SAAS,CAAC,YAAY,QAA2B;IACjD,SAAS,CAAC,qBAAqB,QAA2B;IAC1D,IAAI;IAIJ,gBAAgB;IAqBhB,MAAM;IAKN,MAAM;IAKN,2BAA2B;IAK3B,2BAA2B;IAqB3B,yBAAyB;IAIzB,oCAAoC;IASpC,oCAAoC;IAsBpC,oBAAoB;IAOpB,0BAA0B;IA8B1B,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.d.ts new file mode 100644 index 0000000..d107e27 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.d.ts @@ -0,0 +1,5 @@ +import Joint2DGizmo from './joint-2d-gizmo'; +declare class RelativeJoint2DGizmo extends Joint2DGizmo { +} +export default RelativeJoint2DGizmo; +//# sourceMappingURL=relative-joint-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.d.ts.map new file mode 100644 index 0000000..6891f7a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"relative-joint-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/joint/2d/relative-joint-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,cAAM,oBAAqB,SAAQ,YAAY;CAC9C;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.d.ts new file mode 100644 index 0000000..4a04525 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.d.ts @@ -0,0 +1,5 @@ +import Joint2DGizmo from './joint-2d-gizmo'; +declare class SliderJoint2DGizmo extends Joint2DGizmo { +} +export default SliderJoint2DGizmo; +//# sourceMappingURL=slider-joint-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.d.ts.map new file mode 100644 index 0000000..468ec50 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"slider-joint-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/joint/2d/slider-joint-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,cAAM,kBAAmB,SAAQ,YAAY;CAC5C;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.d.ts new file mode 100644 index 0000000..437d501 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.d.ts @@ -0,0 +1,5 @@ +import Joint2DGizmo from './joint-2d-gizmo'; +declare class WheelJoint2DGizmo extends Joint2DGizmo { +} +export default WheelJoint2DGizmo; +//# sourceMappingURL=wheel-joint-2d-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.d.ts.map new file mode 100644 index 0000000..d0675e4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"wheel-joint-2d-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../../source/script/public/gizmos/3d/elements/components/joint/2d/wheel-joint-2d-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,cAAM,iBAAkB,SAAQ,YAAY;CAC3C;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light-component-gizmo.d.ts new file mode 100644 index 0000000..28d17e8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light-component-gizmo.d.ts @@ -0,0 +1,29 @@ +import Gizmo from '../gizmo-base'; +declare class LightComponentGizmo extends Gizmo { + private Direction; + private Sphere; + private Spot; + private _curLightType; + private _sphereLightRange; + private _spotAngle; + private _spotLightHeight; + private _lightGizmoColor; + private _lightCtrlHoverColor; + private _activeController; + private _lightController; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateDataFromController(): void; + updateControllerTransform(): void; + getConeRadius(angle: number, height: number): number; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default LightComponentGizmo; +//# sourceMappingURL=light-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light-component-gizmo.d.ts.map new file mode 100644 index 0000000..a8ff5a8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"light-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/light-component-gizmo.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,eAAe,CAAC;AAOlC,cAAM,mBAAoB,SAAQ,KAAK;IACnC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,aAAa,CAAkB;IAEvC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,oBAAoB,CAA+B;IAE3D,OAAO,CAAC,iBAAiB,CAAuF;IAChH,OAAO,CAAC,gBAAgB,CAAa;IAErC,IAAI;IAKJ,MAAM;IAIN,MAAM;IAIN,gBAAgB;IA8BhB,qBAAqB;IAoBrB,qBAAqB;IAIrB,mBAAmB;IAEnB,wBAAwB;IAkDxB,yBAAyB;IAazB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM3C,oBAAoB;IAsCpB,cAAc;IAId,aAAa;CAGhB;AACD,eAAe,mBAAmB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.d.ts new file mode 100644 index 0000000..b88ef95 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.d.ts @@ -0,0 +1,20 @@ +import Gizmo from '../../gizmo-base'; +declare class DirectionalLightComponentGizmo extends Gizmo { + private _lightGizmoColor; + private _controller; + private _frustumCtrl; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default DirectionalLightComponentGizmo; +//# sourceMappingURL=directional-light-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.d.ts.map new file mode 100644 index 0000000..ea6da3a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"directional-light-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/light/directional-light-component-gizmo.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AAKrC,cAAM,8BAA+B,SAAQ,KAAK;IAC9C,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,YAAY,CAAkC;IACtD,IAAI;IAKJ,MAAM;IAMN,MAAM;IAKN,gBAAgB;IAQhB,qBAAqB;IAMrB,qBAAqB;IAIrB,mBAAmB;IAEnB,wBAAwB;IAQxB,yBAAyB;IAYzB,oBAAoB;IA4BpB,cAAc;IAId,aAAa;CAGhB;AACD,eAAe,8BAA8B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/light-probe-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/light-probe-gizmo.d.ts new file mode 100644 index 0000000..2f60180 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/light-probe-gizmo.d.ts @@ -0,0 +1,57 @@ +/// <reference types="node" /> +import GizmoBase from '../../gizmo-base'; +import LightProbeController, { TargetDelegate } from '../../controller/light-probe-controller'; +import { LightProbeGroup, Node } from 'cc'; +import GizmoOperationEventListener from '../../listener/gizmo-operation-event-listener'; +import LightProbeEditModeListener from '../../listener/light-probe-edit-mode-listener'; +import { IChangeNodeOptions, ISceneMouseEvent } from '../../../../../../../../@types/private'; +import '../../../../utils/set-util'; +import LightProbeBoundingBoxController from '../../controller/light-probe-bounding-box-controller'; +import { IControlMouseEvent } from '../../../../defines'; +import SimpleSet from '../../../../utils/set-util'; +export default class LightProbeGizmo extends GizmoBase implements TargetDelegate<LightProbeGroup>, LightProbeEditModeListener, GizmoOperationEventListener { + shouldRegisterGizmoOperationEvent: boolean; + _controller: LightProbeController; + _originTarget?: LightProbeGroup; + _boundingBoxController: LightProbeBoundingBoxController; + _minPosPath: string | null; + _maxPosPath: string | null; + _lightProbeRoot?: Node; + _boundingBoxRoot?: Node; + set target(value: LightProbeGroup); + get target(): LightProbeGroup; + _isInited: boolean; + protected init(): void; + createController(gizmoRoot: Node): void; + protected onShow(): void; + protected onHide(): void; + onNodeChanged(event: IChangeNodeOptions): void; + private checkIconGizmoStats; + static debounceUpdateController: NodeJS.Timeout | null; + static debounceUpdateLines: NodeJS.Timeout | null; + private afterPositionGizmoSetPositions; + _checkShouldSkipUpdateLightProbeController(event?: IChangeNodeOptions): boolean; + protected onTargetUpdate(): void; + onBBControllerMouseDown(event: IControlMouseEvent): void; + onBBControllerMouseMove(event: IControlMouseEvent): void; + onBBControllerMouseUp(event: IControlMouseEvent): void; + updateNodeTransformInfo(node: Node): void; + get currentTransformTool(): any; + updateCurrentTransformToolVisible(mode: boolean): void; + lightProbeEditModeChanged(mode: boolean): void; + lightProbeInfoChanged(): void; + boundingBoxEditModeChanged(mode: boolean): void; + checkCurrentTargetPointingSelf(): boolean; + duplicateCurrentSelectedProbes(): SimpleSet<Node>; + deleteCurrentSelectedProbes(): SimpleSet<Node>; + select(nodes: SimpleSet<Node>): void; + selectAll(): void; + unselect(nodes: SimpleSet<Node>): void; + unselectAll(): void; + onNotGizmoMouseDown(event: ISceneMouseEvent): void; + onNotGizmoMouseMove(event: ISceneMouseEvent): void; + onNotGizmoMouseUp(event: ISceneMouseEvent): void; + shouldEmitNodes(): SimpleSet<string>; + currentSelectedNodes(): SimpleSet<Node>; +} +//# sourceMappingURL=light-probe-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/light-probe-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/light-probe-gizmo.d.ts.map new file mode 100644 index 0000000..1ad1bab --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/light-probe-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"light-probe-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/light/light-probe-gizmo.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,oBAAoB,EAAE,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,IAAI,EAAmB,MAAM,IAAI,CAAC;AAC5D,OAAO,2BAA2B,MAAM,+CAA+C,CAAC;AACxF,OAAO,0BAA0B,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAuB,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AACnH,OAAO,4BAA4B,CAAC;AACpC,OAAO,+BAA+B,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAGnD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAU,YAAW,cAAc,CAAC,eAAe,CAAC,EAAE,0BAA0B,EAAE,2BAA2B;IAC/I,iCAAiC,UAAQ;IAEhD,WAAW,EAAG,oBAAoB,CAAC;IACnC,aAAa,CAAC,EAAE,eAAe,CAAC;IAGhC,sBAAsB,EAAG,+BAA+B,CAAC;IACzD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,gBAAgB,CAAC,EAAE,IAAI,CAAC;IAExB,IAAI,MAAM,CAAC,KAAK,EAAE,eAAe,EAEhC;IAED,IAAI,MAAM,IAAI,eAAe,CAE5B;IACD,SAAS,UAAS;IAClB,SAAS,CAAC,IAAI;IAOd,gBAAgB,CAAC,SAAS,EAAE,IAAI;IAahC,SAAS,CAAC,MAAM;IAQhB,SAAS,CAAC,MAAM;IAMT,aAAa,CAAC,KAAK,EAAE,kBAAkB;IAa9C,OAAO,CAAC,mBAAmB;IAQ3B,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IAC9D,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IACzD,OAAO,CAAC,8BAA8B;IAa/B,0CAA0C,CAAC,KAAK,CAAC,EAAE,kBAAkB;IA4D5E,SAAS,CAAC,cAAc;IAYxB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB;IASjD,uBAAuB,CAAC,KAAK,EAAE,kBAAkB;IAOjD,qBAAqB,CAAC,KAAK,EAAE,kBAAkB;IAK/C,uBAAuB,CAAC,IAAI,EAAE,IAAI;IAelC,IAAI,oBAAoB,IAAI,GAAG,CAE9B;IAED,iCAAiC,CAAC,IAAI,EAAE,OAAO;IAQ/C,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAO9C,qBAAqB;IAKrB,0BAA0B,CAAC,IAAI,EAAE,OAAO;IASxC,8BAA8B,IAAI,OAAO;IAOzC,8BAA8B,IAAI,SAAS,CAAC,IAAI,CAAC;IAIjD,2BAA2B,IAAI,SAAS,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI;IAIpC,SAAS,IAAI,IAAI;IAIjB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;IAI/B,WAAW,IAAI,IAAI;IAInB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAIlD,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAIlD,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAIhD,eAAe,IAAI,SAAS,CAAC,MAAM,CAAC;IAIpC,oBAAoB,IAAI,SAAS,CAAC,IAAI,CAAC;CAG1C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.d.ts new file mode 100644 index 0000000..6102c03 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.d.ts @@ -0,0 +1,25 @@ +import Gizmo from '../../gizmo-base'; +declare class SphereLightComponentGizmo extends Gizmo { + private _lightGizmoColor; + private _lightCtrlHoverColor; + private _range; + private _glowSize; + private _controller; + private _sizeSphereCtrl; + private _propPath; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default SphereLightComponentGizmo; +//# sourceMappingURL=sphere-light-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.d.ts.map new file mode 100644 index 0000000..f49011b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"sphere-light-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/light/sphere-light-component-gizmo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AASrC,cAAM,yBAA0B,SAAQ,KAAK;IACzC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,oBAAoB,CAA+B;IAE3D,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAO;IAExB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,eAAe,CAAsC;IAE7D,OAAO,CAAC,SAAS,CAAuB;IAExC,IAAI;IAKJ,MAAM;IAMN,MAAM;IAKN,gBAAgB;IAwBhB,qBAAqB;IASrB,qBAAqB;IAIrB,mBAAmB;IAInB,wBAAwB;IAgBxB,yBAAyB;IAYzB,oBAAoB;IA6BpB,gBAAgB;IAKhB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,yBAAyB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.d.ts new file mode 100644 index 0000000..73008bb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.d.ts @@ -0,0 +1,31 @@ +import Gizmo from '../../gizmo-base'; +declare class SpotLightComponentGizmo extends Gizmo { + private _lightGizmoColor; + private _lightCtrlHoverColor; + private _range; + private _angle; + private _baseSize; + private _glowSize; + private _controller; + private _sizeSphereCtrl; + private _rangePropPath; + private _anglePropPath; + private _rangeChanged; + private _angleChanged; + private _coneTopPos; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + getConeRadius(angle: number, height: number): number; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default SpotLightComponentGizmo; +//# sourceMappingURL=spot-light-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.d.ts.map new file mode 100644 index 0000000..158dda1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"spot-light-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/light/spot-light-component-gizmo.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AAQrC,cAAM,uBAAwB,SAAQ,KAAK;IACvC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,oBAAoB,CAA+B;IAE3D,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,SAAS,CAAO;IAExB,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,eAAe,CAAiC;IAExD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAAuB;IAE7C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,WAAW,CAAc;IAEjC,IAAI;IAKJ,MAAM;IAMN,MAAM;IAKN,gBAAgB;IAuBhB,qBAAqB;IAerB,qBAAqB;IAIrB,mBAAmB;IASnB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM3C,wBAAwB;IAmDxB,yBAAyB;IAWzB,oBAAoB;IA8BpB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,uBAAuB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/lod-group-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/lod-group-gizmo.d.ts new file mode 100644 index 0000000..9786dab --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/lod-group-gizmo.d.ts @@ -0,0 +1,20 @@ +import GizmoBase from '../gizmo-base'; +import LODController from '../controller/lod-controller'; +declare class LODGroupGizmo extends GizmoBase { + protected _controller: LODController; + init(): void; + onEditorCameraMoved(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateControllerData(): void; + updateControllerTransform(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default LODGroupGizmo; +//# sourceMappingURL=lod-group-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/lod-group-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/lod-group-gizmo.d.ts.map new file mode 100644 index 0000000..3934fb2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/lod-group-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"lod-group-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/lod-group-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AAKtC,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAKzD,cAAM,aAAc,SAAQ,SAAS;IACjC,SAAS,CAAC,WAAW,EAAG,aAAa,CAAC;IACtC,IAAI;IAIJ,mBAAmB;IAGnB,MAAM;IAMN,MAAM;IAKN,gBAAgB;IAQhB,qBAAqB;IAErB,qBAAqB;IAErB,mBAAmB;IAOnB,oBAAoB;IAgBpB,yBAAyB;IAczB,gBAAgB;IAMhB,cAAc;IAId,aAAa;CAKhB;AAED,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/model-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/model-component-gizmo.d.ts new file mode 100644 index 0000000..b7455bd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/model-component-gizmo.d.ts @@ -0,0 +1,18 @@ +import { MeshRenderer } from 'cc'; +import Gizmo from '../gizmo-base'; +import LightProbeTetrahedronController from '../controller/light-probe-tetrahedron-controller'; +import { TargetDelegate } from '../controller/light-probe-controller'; +declare class ModelComponentGizmo extends Gizmo implements TargetDelegate<MeshRenderer> { + private _controller; + tetrahedronController: LightProbeTetrahedronController | null; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default ModelComponentGizmo; +//# sourceMappingURL=model-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/model-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/model-component-gizmo.d.ts.map new file mode 100644 index 0000000..4b85687 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/model-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"model-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/model-component-gizmo.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,YAAY,EAAE,MAAM,IAAI,CAAC;AAI9C,OAAO,KAAK,MAAM,eAAe,CAAC;AAClC,OAAO,+BAA+B,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAMtE,cAAM,mBAAoB,SAAQ,KAAM,YAAW,cAAc,CAAC,YAAY,CAAC;IAC3E,OAAO,CAAC,WAAW,CAA8B;IACjD,qBAAqB,EAAE,+BAA+B,GAAG,IAAI,CAAQ;IAErE,IAAI;IAKJ,MAAM;IAMN,MAAM;IAKN,gBAAgB;IAOhB,yBAAyB;IAIzB,oBAAoB;IA8BpB,cAAc;IAKd,aAAa;CAIhB;AAED,eAAe,mBAAmB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/particle-system-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/particle-system-component-gizmo.d.ts new file mode 100644 index 0000000..e14ef5e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/particle-system-component-gizmo.d.ts @@ -0,0 +1,56 @@ +import { ParticleSystem, Vec3 } from 'cc'; +import BoxController from '../controller/box-controller'; +import CircleController from '../controller/circle-controller'; +import HemisphereController from '../controller/hemisphere-controller'; +import ConeController from '../controller/particlesystem-cone-controller'; +import SphereController from '../controller/sphere-controller'; +import Gizmo from '../gizmo-base'; +declare class ParticleSystemComponentGizmo extends Gizmo { + private _curEmitterShape; + private _shapeControllers; + private _PSGizmoColor; + private _activeController; + private _pSGizmoRoot; + private _boundingBoxController; + private _scale; + private _size; + private _radius; + private _arc; + private _coneHeight; + private _coneAngle; + private _bottomRadius; + private _bbHalfSize; + init(): void; + createController(): void; + onShow(): void; + onHide(): void; + createControllerByShape(shape: any): BoxController | CircleController | HemisphereController | ConeController | SphereController | null; + getControllerByShape(shape: any): any; + getConeData(psComp: ParticleSystem): { + topRadius: number; + height: number; + bottomRadius: number; + coneAngle: number; + }; + modifyConeData(psComp: ParticleSystem, deltaTopRadius: number, deltaHeight: number, deltaBottomRadius: number): void; + setCurveRangeInitValue(curve: any, value: any): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + getScaledDeltaRadius(deltaRadius: number, controlDir: Vec3, scale: Vec3): number; + updateDataFromController(): void; + updateControllerTransform(): void; + getConeRadius(angle: number, height: number): number; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; + updateDataFromBBController(): void; + updateBBControllerData(): void; + onBBControllerMouseDown(): void; + onBBControllerMouseMove(): void; + onBBControllerMouseUp(): void; + showBoundingBox(isShow: boolean): void; + isShowBoundingBox(): any; +} +export default ParticleSystemComponentGizmo; +//# sourceMappingURL=particle-system-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/particle-system-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/particle-system-component-gizmo.d.ts.map new file mode 100644 index 0000000..5d8e805 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/particle-system-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"particle-system-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/particle-system-component-gizmo.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,cAAc,EAAQ,IAAI,EAAE,MAAM,IAAI,CAAC;AAIvE,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AACvE,OAAO,cAAc,MAAM,8CAA8C,CAAC;AAC1E,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,MAAM,eAAe,CAAC;AA+BlC,cAAM,4BAA6B,SAAQ,KAAK;IAC5C,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,iBAAiB,CAAW;IACpC,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,iBAAiB,CAA4G;IACrI,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,sBAAsB,CAA4B;IAG1D,OAAO,CAAC,MAAM,CAAW;IAGzB,OAAO,CAAC,KAAK,CAAW;IAGxB,OAAO,CAAC,OAAO,CAAK;IAGpB,OAAO,CAAC,IAAI,CAAK;IAGjB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAG1B,OAAO,CAAC,WAAW,CAAc;IAEjC,IAAI;IAKJ,gBAAgB;IAUhB,MAAM;IAIN,MAAM;IAKN,uBAAuB,CAAC,KAAK,EAAE,GAAG;IAsClC,oBAAoB,CAAC,KAAK,EAAE,GAAG;IAY/B,WAAW,CAAC,MAAM,EAAE,cAAc;;;;;;IAqBlC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAgC7G,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAyB7C,qBAAqB;IAkCrB,qBAAqB;IAIrB,mBAAmB;IAInB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI;IAYvE,wBAAwB;IAmExB,yBAAyB;IA2BzB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM3C,oBAAoB;IAwDpB,cAAc;IAId,aAAa;IAIb,0BAA0B;IAiB1B,sBAAsB;IAetB,uBAAuB;IAWvB,uBAAuB;IAIvB,qBAAqB;IAId,eAAe,CAAC,MAAM,EAAE,OAAO;IAS/B,iBAAiB;CAG3B;AAED,eAAe,4BAA4B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/reflection-probe-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/reflection-probe-gizmo.d.ts new file mode 100644 index 0000000..bc11b7d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/reflection-probe-gizmo.d.ts @@ -0,0 +1,31 @@ +import { Material, IMaterialInfo } from 'cc'; +import { IControlMouseEvent } from '../../../defines'; +import Gizmo from '../gizmo-base'; +declare class ReflectionProbeGizmo extends Gizmo { + static readonly SPHERE_NODE_NAME = "Reflection Probe Sphere"; + static readonly PLANE_NODE_NAME = "Reflection Probe Plane"; + private static _PLANE_PREFAB; + private static _SPHERE_PREFAB; + private _controller; + private _bbHalfSize; + private _sphereMeshRenderer; + private _planeMeshRenderer; + private _sphere; + private _plane; + onBBControllerMouseDown(event: IControlMouseEvent): void; + onBBControllerMouseMove(event: IControlMouseEvent): void; + onBBControllerMouseUp(event: IControlMouseEvent): void; + init(): void; + onShow(): void; + generateMaterial(options?: IMaterialInfo): Material; + onHide(): void; + createController(): void; + private loadSphere; + private loadPlane; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default ReflectionProbeGizmo; +//# sourceMappingURL=reflection-probe-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/reflection-probe-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/reflection-probe-gizmo.d.ts.map new file mode 100644 index 0000000..a0b0fc0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/reflection-probe-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"reflection-probe-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/reflection-probe-gizmo.ts"],"names":[],"mappings":"AACA,OAAO,EAAkI,QAAQ,EAAU,aAAa,EAAmB,MAAM,IAAI,CAAC;AACtM,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,MAAM,eAAe,CAAC;AAIlC,cAAM,oBAAqB,SAAQ,KAAK;IACpC,gBAAuB,gBAAgB,6BAA6B;IACpE,gBAAuB,eAAe,4BAA4B;IAClE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAoB;IAChD,OAAO,CAAC,MAAM,CAAC,cAAc,CAAoB;IACjD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAmB;IAEjC,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAQxD,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAkBxD,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAItD,IAAI;IAIJ,MAAM;IAiBN,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,QAAQ;IAOnD,MAAM;IAaN,gBAAgB;IAwChB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,SAAS;IAajB,yBAAyB;IAIzB,oBAAoB;IAmCpB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/skinning-model-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/skinning-model-component-gizmo.d.ts new file mode 100644 index 0000000..c4980a2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/skinning-model-component-gizmo.d.ts @@ -0,0 +1,17 @@ +import Gizmo from '../gizmo-base'; +import LightProbeTetrahedronController from '../controller/light-probe-tetrahedron-controller'; +declare class SkinningModelComponentGizmo extends Gizmo { + private _controller; + tetrahedronController: LightProbeTetrahedronController | null; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; + onUpdate(): void; +} +export default SkinningModelComponentGizmo; +//# sourceMappingURL=skinning-model-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/skinning-model-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/skinning-model-component-gizmo.d.ts.map new file mode 100644 index 0000000..4d2801a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/skinning-model-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"skinning-model-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/skinning-model-component-gizmo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,eAAe,CAAC;AAElC,OAAO,+BAA+B,MAAM,kDAAkD,CAAC;AAG/F,cAAM,2BAA4B,SAAQ,KAAK;IAC3C,OAAO,CAAC,WAAW,CAA8B;IACjD,qBAAqB,EAAE,+BAA+B,GAAG,IAAI,CAAQ;IAErE,IAAI;IAKJ,MAAM;IAMN,MAAM;IAKN,gBAAgB;IAOhB,yBAAyB;IAIzB,oBAAoB;IAiDpB,cAAc;IAKd,aAAa;IAKb,QAAQ;CAIX;AAED,eAAe,2BAA2B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-brush.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-brush.d.ts new file mode 100644 index 0000000..3521fbd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-brush.d.ts @@ -0,0 +1,62 @@ +import { Vec3, Material, Terrain, Texture2D, Vec2 } from 'cc'; +export declare enum TerrainBrushType { + CIRCLE = 0, + IMAGE = 1, + _MAX = 2 +} +export declare class TerrainEdModifierKeyState { + siftPressed: boolean; +} +export declare class TerrainBrush { + material: Material | null; + position: Vec3; + radius: number; + strength: number; + _setHeight: number; + _rotation: number; + get rotation(): number; + getDelta(x: number, z: number): number; + getBound(bbmin: Vec2, bbmax: Vec2): void; + update(terrain: Terrain, pos: Vec3): void; +} +export declare class TerrainBrushData { + bmin: number[]; + bmax: number[]; + width(): number; + height(): number; +} +export declare enum eTerrainCircleBrushType { + Linear = 0, + Smooth = 1, + Spherical = 2, + Tip = 3 +} +export declare class TerrainCircleBrush extends TerrainBrush { + protected type: eTerrainCircleBrushType; + protected falloff: number; + constructor(); + setType(type: eTerrainCircleBrushType): void; + getType(): eTerrainCircleBrushType; + _updateMaterial(): void; + _getTypeDefine(): any; + static _calculateFalloff_Linear(Distance: number, Radius: number, Falloff: number): number; + static _calculateFalloff_Spherical(Distance: number, Radius: number, Falloff: number): number; + static _calculateFalloff_Smooth(Distance: number, Radius: number, Falloff: number): number; + static _calculateFalloff_Tip(Distance: number, Radius: number, Falloff: number): number; + getDelta(x: number, z: number): number; + update(terrain: Terrain, pos: Vec3): void; +} +export declare class TerrainImageBrush extends TerrainBrush { + private _image; + private _pixelData; + constructor(); + set image(value: Texture2D | null); + get image(): Texture2D | null; + static getColor(pixels: number[], w: number, h: number, u: number, v: number): number; + static sampleImage(pixels: number[], w: number, h: number, u: number, v: number): number; + sample(u: number, v: number): number; + getDelta(x: number, z: number): number; + getBound(bbmin: Vec2, bbmax: Vec2): void; + update(terrain: Terrain, pos: Vec3): void; +} +//# sourceMappingURL=terrain-brush.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-brush.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-brush.d.ts.map new file mode 100644 index 0000000..7056433 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-brush.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-brush.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-brush.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAoC,IAAI,EAAE,MAAM,IAAI,CAAC;AAEtG,oBAAY,gBAAgB;IACxB,MAAM,IAAA;IACN,KAAK,IAAA;IACL,IAAI,IAAA;CACP;AAGD,qBAAa,yBAAyB;IAC3B,WAAW,UAAS;CAC9B;AAGD,qBAAa,YAAY;IACd,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACjC,QAAQ,OAAqB;IAC7B,MAAM,SAAK;IACX,QAAQ,SAAK;IACb,UAAU,SAAK;IACf,SAAS,SAAK;IAErB,IAAW,QAAQ,WAElB;IAEM,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAI7B,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI;IAYjC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;CAG5C;AAGD,qBAAa,gBAAgB;IAClB,IAAI,EAAE,MAAM,EAAE,CAAU;IACxB,IAAI,EAAE,MAAM,EAAE,CAAU;IAExB,KAAK;IAIL,MAAM;CAGhB;AAGD,oBAAY,uBAAuB;IAC/B,MAAM,IAAA;IACN,MAAM,IAAA;IACN,SAAS,IAAA;IACT,GAAG,IAAA;CACN;AAGD,qBAAa,kBAAmB,SAAQ,YAAY;IAChD,SAAS,CAAC,IAAI,EAAE,uBAAuB,CAAkC;IACzE,SAAS,CAAC,OAAO,SAAO;;IAQjB,OAAO,CAAC,IAAI,EAAE,uBAAuB;IAQrC,OAAO;IAIP,eAAe;IAWf,cAAc,IAAI,GAAG;WAcd,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;WAW1E,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;WAM7E,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;WAa1E,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAa9E,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IA0B7B,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;CAwC5C;AAGD,qBAAa,iBAAkB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,UAAU,CAAuB;;IAczC,IAAW,KAAK,CAAC,KAAK,EAAE,SAAS,GAAC,IAAI,EAyDrC;IAED,IAAW,KAAK,IA3DQ,SAAS,GAAC,IAAI,CA6DrC;WAEa,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;WAMrE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAsB/E,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAQ3B,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IA4B7B,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI;IAqDjC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;CAgD5C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.d.ts new file mode 100644 index 0000000..5eaf265 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.d.ts @@ -0,0 +1,7 @@ +/** + * @category terrain + */ +import { TerrainEditorMode } from './terrain-editor-mode'; +export declare class TerrainEditorManage extends TerrainEditorMode { +} +//# sourceMappingURL=terrain-editor-manage.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.d.ts.map new file mode 100644 index 0000000..6b7cbd1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-editor-manage.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-editor-manage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI1D,qBAAa,mBAAoB,SAAQ,iBAAiB;CAAG"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.d.ts new file mode 100644 index 0000000..ce63cc7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.d.ts @@ -0,0 +1,16 @@ +import { Terrain } from 'cc'; +export declare enum eTerrainEditorMode { + MANAGE = 0, + SCULPT = 1, + PAINT = 2, + SELECT = 3 +} +export declare class TerrainEditorMode { + protected _gizmo?: any; + constructor(gizmo: any); + get gizmo(): any; + onUpdate(terrain: Terrain, dtime: number, isShiftDown: boolean): void; + onActivate(): void; + onDeactivate(): void; +} +//# sourceMappingURL=terrain-editor-mode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.d.ts.map new file mode 100644 index 0000000..ee6e3f8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-editor-mode.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-editor-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,oBAAY,kBAAkB;IAC1B,MAAM,IAAA;IACN,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;CACT;AAED,qBAAa,iBAAiB;IAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;gBACX,KAAK,EAAE,GAAG;IAItB,IAAI,KAAK,QAER;IAEM,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;IAC9D,UAAU;IACV,YAAY;CACtB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.d.ts new file mode 100644 index 0000000..0e89a67 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.d.ts @@ -0,0 +1,24 @@ +import { Vec3, Terrain, Texture2D } from 'cc'; +import { TerrainBrush, TerrainBrushType } from './terrain-brush'; +import { TerrainEditorMode } from './terrain-editor-mode'; +import { TerrainWeightUndoRedo } from './terrain-operation'; +export declare class TerrainEditorPaint extends TerrainEditorMode { + _brushes: TerrainBrush[]; + _undo: TerrainWeightUndoRedo | null; + _currentLayer: number; + _currentBrush: TerrainBrush; + constructor(gizmo: any); + setCurrentBrush(type: TerrainBrushType): void; + getCurrentBrush(): TerrainBrush; + getBrush(type: TerrainBrushType): TerrainBrush; + setBrushImage(tex: Texture2D | null): void; + setCurrentLayer(layer: number): void; + getCurrentLayer(): number; + onUpdate(terrain: Terrain, dtime: number): void; + onUpdateBrushPosition(terrain: Terrain, pos: Vec3): void; + onMouseDown(terrain: Terrain): void; + onMouseUp(): void; + onDeactivate(): void; + private _updateWeight; +} +//# sourceMappingURL=terrain-editor-paint.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.d.ts.map new file mode 100644 index 0000000..7c6ef1e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-editor-paint.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-editor-paint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,OAAO,EAAuC,SAAS,EAAE,MAAM,IAAI,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAyC,MAAM,iBAAiB,CAAC;AAExG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAA0B,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGpF,qBAAa,kBAAmB,SAAQ,iBAAiB;IAC9C,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAQ;IAC3C,aAAa,SAAM;IACnB,aAAa,EAAE,YAAY,CAAC;gBAEvB,KAAK,EAAE,GAAG;IAiBf,eAAe,CAAC,IAAI,EAAE,gBAAgB;IAgBtC,eAAe;IAIf,QAAQ,CAAC,IAAI,EAAE,gBAAgB;IAI/B,aAAa,CAAC,GAAG,EAAE,SAAS,GAAC,IAAI;IAajC,eAAe,CAAC,KAAK,EAAE,MAAM;IAI7B,eAAe;IAIf,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAQxC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;IA6BjD,WAAW,CAAC,OAAO,EAAE,OAAO;IAS5B,SAAS;IAQT,YAAY;IAOnB,OAAO,CAAC,aAAa;CAoGxB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.d.ts new file mode 100644 index 0000000..2860cea --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.d.ts @@ -0,0 +1,31 @@ +import { Terrain } from 'cc'; +import { TerrainEdModifierKeyState } from './terrain-brush'; +export declare enum eTerrainTerrainEditorSculptToolMode { + SCULPT = 0, + SMOOTH = 1, + FLATTEN = 2, + SET_HEIGHT = 3 +} +export declare class TerrainEditorSculptTool { + start(terrain: Terrain, x: number, y: number): void; + apply(terrain: Terrain, x: number, y: number, h: number, delta: number, modifiers: TerrainEdModifierKeyState): number; +} +export declare class TerrainEditorSculptTool_Sculpt extends TerrainEditorSculptTool { + _concave: boolean; + constructor(concave: boolean); + apply(terrain: Terrain, x: number, y: number, h: number, delta: number, modifiers: TerrainEdModifierKeyState): number; +} +export declare class TerrainEditorSculptTool_Smooth extends TerrainEditorSculptTool { + apply(terrain: Terrain, x: number, y: number, h: number, delta: number, modifiers: TerrainEdModifierKeyState): number; +} +export declare class TerrainEditorSculptTool_Flatten extends TerrainEditorSculptTool { + _height: number; + start(terrain: Terrain, x: number, y: number): void; + apply(terrain: Terrain, x: number, y: number, h: number, delta: number, modifiers: TerrainEdModifierKeyState): number; +} +export declare class TerrainEditorSculptTool_SetHeight extends TerrainEditorSculptTool_Flatten { + constructor(height: number); + start(terrain: Terrain, x: number, y: number): void; + apply(terrain: Terrain, x: number, y: number, h: number, delta: number, modifiers: TerrainEdModifierKeyState): number; +} +//# sourceMappingURL=terrain-editor-sculpt-tools.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.d.ts.map new file mode 100644 index 0000000..ed5ea1f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-editor-sculpt-tools.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,oBAAY,mCAAmC;IAC3C,MAAM,IAAA;IACN,MAAM,IAAA;IACN,OAAO,IAAA;IACP,UAAU,IAAA;CACb;AAED,qBAAa,uBAAuB;IAChC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAG5C,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB;CAG/G;AAED,qBAAa,8BAA+B,SAAQ,uBAAuB;IAChE,QAAQ,UAAS;gBAEZ,OAAO,EAAE,OAAO;IAK5B,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB;CAa/G;AAED,qBAAa,8BAA+B,SAAQ,uBAAuB;IACvE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB;CAK/G;AAED,qBAAa,+BAAgC,SAAQ,uBAAuB;IACjE,OAAO,SAAK;IAEnB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAI5C,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB;CAQ/G;AAED,qBAAa,iCAAkC,SAAQ,+BAA+B;gBACtE,MAAM,EAAE,MAAM;IAK1B,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAG5C,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB;CAQ/G"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.d.ts new file mode 100644 index 0000000..93d811e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.d.ts @@ -0,0 +1,22 @@ +import { Vec3, Terrain, Texture2D } from 'cc'; +import { TerrainBrushType, TerrainBrush, TerrainEdModifierKeyState } from './terrain-brush'; +import { TerrainEditorMode } from './terrain-editor-mode'; +import { TerrainHeightUndoRedo } from './terrain-operation'; +export declare class TerrainEditorSculpt extends TerrainEditorMode { + _brushes: TerrainBrush[]; + _undo: TerrainHeightUndoRedo | null; + _currentBrush: TerrainBrush; + private _currentTool; + constructor(gizmo: any); + setCurrentBrush(type: TerrainBrushType): void; + getCurrentBrush(): TerrainBrush; + getBrush(type: TerrainBrushType): TerrainBrush; + setBrushImage(tex: Texture2D | null): void; + setSculptBrushRotation(rotate: number): void; + onUpdate(terrain: Terrain, dtime: number, isShiftDown: boolean): void; + onUpdateBrushPosition(terrain: Terrain, pos: Vec3): void; + onMouseDown(terrain: Terrain): void; + onMouseUp(): void; + _updateHeight(terrain: any, dtime: number, modifiers: TerrainEdModifierKeyState): void; +} +//# sourceMappingURL=terrain-editor-sculpt.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.d.ts.map new file mode 100644 index 0000000..e1ac466 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-editor-sculpt.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-editor-sculpt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,OAAO,EAAuC,SAAS,EAAQ,MAAM,IAAI,CAAC;AAE/F,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAyC,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACnI,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAA0B,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGpF,qBAAa,mBAAoB,SAAQ,iBAAiB;IAC/C,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAQ;IAC3C,aAAa,EAAE,YAAY,CAAC;IACnC,OAAO,CAAC,YAAY,CAAsC;gBAE9C,KAAK,EAAE,GAAG;IAiBf,eAAe,CAAC,IAAI,EAAE,gBAAgB;IActC,eAAe;IAIf,QAAQ,CAAC,IAAI,EAAE,gBAAgB;IAI/B,aAAa,CAAC,GAAG,EAAE,SAAS,GAAC,IAAI;IAajC,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAKrC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;IAU9D,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;IAgCjD,WAAW,CAAC,OAAO,EAAE,OAAO;IAwC5B,SAAS;IAMT,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB;CAwDzF"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-select.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-select.d.ts new file mode 100644 index 0000000..00a8548 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-select.d.ts @@ -0,0 +1,29 @@ +/** + * @category terrain + */ +import { TerrainEditorMode } from './terrain-editor-mode'; +import { Terrain, TerrainBlock, Camera, Texture2D } from 'cc'; +export declare class TerrainEditorWeightMapData { + data: Uint8Array; + width: number; + height: number; +} +export declare class TerrainEditorSelect extends TerrainEditorMode { + private _selectMaterial; + private _selectBlock; + private _weightMap; + private _weightData; + private _layerList; + constructor(gizmo: any); + setSelectBlock(block: TerrainBlock | null): void; + getSelectBlock(): TerrainBlock | null; + getCurrentBlockIndex(): number[] | null; + getCurrentWeightMap(): Texture2D | null; + getCurrentWeightData(): TerrainEditorWeightMapData | null; + getCurrentLayerList(): (Texture2D | null)[]; + onDeactivate(): void; + onMouseDown(terrain: Terrain, cam: Camera, x: number, y: number): void; + private _pickTerrainBlock; + private _updateBlockSelectMaterial; +} +//# sourceMappingURL=terrain-editor-select.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-select.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-select.d.ts.map new file mode 100644 index 0000000..56678c1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor-select.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-editor-select.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-editor-select.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAEH,OAAO,EACP,YAAY,EACZ,MAAM,EAIN,SAAS,EAIZ,MAAM,IAAI,CAAC;AAEZ,qBAAa,0BAA0B;IAC5B,IAAI,EAAE,UAAU,CAAoB;IACpC,KAAK,SAAK;IACV,MAAM,SAAK;CACrB;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;IACtD,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,UAAU,CAA+B;gBAErC,KAAK,EAAE,GAAG;IAYf,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAqEzC,cAAc;IAKd,oBAAoB;IASpB,mBAAmB;IAKnB,oBAAoB;IAKpB,mBAAmB;IAInB,YAAY;IAIZ,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAiBtE,OAAO,CAAC,iBAAiB;IAoEzB,OAAO,CAAC,0BAA0B;CAGrC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor.d.ts new file mode 100644 index 0000000..07b0cff --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor.d.ts @@ -0,0 +1,27 @@ +import { eTerrainEditorMode, TerrainEditorMode } from './terrain-editor-mode'; +import { Terrain, Camera } from 'cc'; +import TerrainGizmo from './terrain-gizmo'; +export declare class TerrainEditor { + static Instance: TerrainEditor; + private _terrain; + private _modes; + private _currentMode; + private _cameraComp; + isChanged: boolean; + private _gizmo?; + constructor(cameraComp: Camera, gizmo: TerrainGizmo); + setEditTerrain(t: Terrain | null): void; + getEditTerrain(): Terrain | null; + setMode(mode: eTerrainEditorMode): void; + clearBrush(): void; + getMode(mode: eTerrainEditorMode): TerrainEditorMode; + getCurrentMode(): TerrainEditorMode | null; + getCurrentModeType(): eTerrainEditorMode; + setCurrentLayer(id: number): void; + getCurrentLayer(): number; + update(dtime: number, isShiftDown: boolean): void; + onMouseDown(x: number, y: number): void; + onMouseUp(x?: number, y?: number): void; + onMouseMove(x: number, y: number): void; +} +//# sourceMappingURL=terrain-editor.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor.d.ts.map new file mode 100644 index 0000000..616d00a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-editor.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-editor.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-editor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI9E,OAAO,EAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAM3C,qBAAa,aAAa;IACtB,OAAc,QAAQ,EAAE,aAAa,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,MAAM,CAA2B;IAEzC,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAAuB;IACnC,SAAS,UAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAe;gBAClB,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY;IAa5C,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAIhC,cAAc;IAId,OAAO,CAAC,IAAI,EAAE,kBAAkB;IAgBhC,UAAU;IASV,OAAO,CAAC,IAAI,EAAE,kBAAkB;IAIhC,cAAc;IAId,kBAAkB;IAclB,eAAe,CAAC,EAAE,EAAE,MAAM;IAM1B,eAAe;IAMf,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;IAQ1C,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAuBhC,SAAS,CAAC,CAAC,SAAI,EAAE,CAAC,SAAI;IAgBtB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAqC1C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-gizmo.d.ts new file mode 100644 index 0000000..9e57c7b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-gizmo.d.ts @@ -0,0 +1,74 @@ +import Gizmo from '../../gizmo-base'; +import { eTerrainEditorMode } from './terrain-editor-mode'; +import { ISceneKeyboardEvent } from '../../../../../../../../@types/private'; +import { IControlMouseEvent } from '../../../../defines'; +interface IBrush { + radius: number; + strength: number; + _setHeight: number; +} +interface ITerrainInfo { + tileSize: number; + weightMapSize: number; + lightMapSize: number; + blockCount: number; +} +declare class TerrainGizmo extends Gizmo { + private _editor; + private _controller; + private _isEditorInit; + private _isShiftDown; + private _isConcave; + private _isSmooth; + private _isFlatten; + private _isSetHeight; + init(): void; + get isConcave(): boolean; + get isSmooth(): boolean; + get isFlatten(): boolean; + get isSetHeight(): boolean; + applySmooth(value: boolean): void; + get isTerrainChange(): boolean; + set isTerrainChange(isChange: boolean); + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(event: IControlMouseEvent): void; + reportRushModeAndPaintModeUsedCount(): void; + onControllerMouseMove(event: IControlMouseEvent): void; + onControllerMouseUp(event: IControlMouseEvent | null): void; + onControllerHoverOut(): void; + updateControllerData(): void; + initEditor(): void; + addLayerByUuid(uuid: string): Promise<unknown>; + setSculptBrush(uuid: string): Promise<unknown>; + setSculptBrushRotation(rotate: number): Promise<void>; + setPaintBrush(uuid: string): Promise<unknown>; + setLayerValue(index: number, uuid: string, extVal: any): Promise<unknown>; + removeLayerByIndex(index: number): void; + setCurrentEditLayer(index: number): void; + getLayers(): (Object | null)[]; + getCurrentEditLayer(): number; + setCurrentEditMode(mode: eTerrainEditorMode, option?: any): void; + queryTerrainInfo(): ITerrainInfo | null; + changeTerrainInfo(info: any): void; + queryBrushOfMode(mode: any): IBrush | null; + setBrushOfMode(mode: any, brushSetting: any): void; + getBlockInfo(): { + index: { + x: any; + y: any; + }; + weight: any; + layers: any; + }; + protected alignQuadShape(): void; + onTargetUpdate(): void; + onNodeChanged(): void; + onKeyDown(event: ISceneKeyboardEvent): void; + onKeyUp(event: ISceneKeyboardEvent): void; + onUpdate(deltaTime: number): void; + onCameraControlModeChanged(mode: number): void; +} +export default TerrainGizmo; +//# sourceMappingURL=terrain-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-gizmo.d.ts.map new file mode 100644 index 0000000..49456c5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-gizmo.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAMzD,UAAU,MAAM;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,cAAM,YAAa,SAAQ,KAAK;IAC5B,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,WAAW,CAAkC;IAErD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,IAAI;IAMJ,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAEM,WAAW,CAAC,KAAK,EAAE,OAAO;IAIjC,IAAI,eAAe,IAGW,OAAO,CADpC;IACD,IAAI,eAAe,CAAC,QAAQ,EAAE,OAAO,EAIpC;IACD,MAAM;IAMN,MAAM;IASN,gBAAgB;IAUhB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB;IAW/C,mCAAmC;IAgDnC,qBAAqB,CAAC,KAAK,EAAE,kBAAkB;IAO/C,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAepD,oBAAoB;IAOpB,oBAAoB;IAepB,UAAU;IAUJ,cAAc,CAAC,IAAI,EAAE,MAAM;IAsD3B,cAAc,CAAC,IAAI,EAAE,MAAM;IAwB3B,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAKrC,aAAa,CAAC,IAAI,EAAE,MAAM;IAwB1B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IA4D5D,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAUhC,mBAAmB,CAAC,KAAK,EAAE,MAAM;IAMjC,SAAS;IAqBT,mBAAmB;IAInB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,GAAG;IAiBzD,gBAAgB;IAehB,iBAAiB,CAAC,IAAI,EAAE,GAAG;IAa3B,gBAAgB,CAAC,IAAI,EAAE,GAAG;IAc1B,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG;IAqB3C,YAAY;;;;;;;;IA8BZ,SAAS,CAAC,cAAc;IAOxB,cAAc;IAMd,aAAa;IAMb,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAKpC,OAAO,CAAC,KAAK,EAAE,mBAAmB;IAMlC,QAAQ,CAAC,SAAS,EAAE,MAAM;IAQ1B,0BAA0B,CAAC,IAAI,EAAE,MAAM;CAW1C;AAED,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-operation.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-operation.d.ts new file mode 100644 index 0000000..3df83e9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-operation.d.ts @@ -0,0 +1,65 @@ +import { Vec4, Terrain, TerrainBlock } from 'cc'; +export declare class TerrainHeightData { + x: number; + y: number; + value: number; +} +export declare class TerrainHeightOperation { + protected _terrain?: Terrain; + constructor(terrain: Terrain); + set terrain(terrain: Terrain); + get terrain(): Terrain; + static addChangeList(changelist: TerrainBlock[], block: TerrainBlock): void; + data: TerrainHeightData[]; + push(x: number, y: number, value: number): void; + apply(): void; +} +export declare class TerrainHeightUndoRedo extends TerrainHeightOperation { + redoOperations: TerrainHeightOperation[]; + undo(): void; + redo(): void; +} +export declare class TerrainWeightData { + x: number; + y: number; + value: Vec4; +} +export declare class TerrainLayerOperation { + protected _terrain?: Terrain; + protected _layers: []; + constructor(terrain: Terrain); + set terrain(terrain: Terrain); + get terrain(): Terrain; + setLayers(): void; + apply(): void; +} +export declare class TerrainLayerUndoRedo extends TerrainLayerOperation { + redoOperations: TerrainLayerOperation[]; + undo(): void; + redo(): void; +} +export declare class TerrainWeightOperation { + protected _terrain?: Terrain; + constructor(terrain: Terrain); + set terrain(terrain: Terrain); + get terrain(): Terrain; + static addChangeList(changelist: TerrainBlock[], block: TerrainBlock): void; + data: TerrainWeightData[]; + push(x: number, y: number, value: Vec4): void; + apply(): void; +} +export declare class TerrainBlockLayerData { + block: TerrainBlock; + layers: number[]; + constructor(block: TerrainBlock, layers: number[]); +} +export declare class TerrainWeightUndoRedo extends TerrainWeightOperation { + undoBlockLayers: TerrainBlockLayerData[]; + redoBlockLayers: TerrainBlockLayerData[]; + redoOperations: TerrainWeightOperation[]; + undo(): void; + redo(): void; + pushBlock(block: TerrainBlock, undoLayers: number[], redoLayers: number[]): void; + apply(): void; +} +//# sourceMappingURL=terrain-operation.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-operation.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-operation.d.ts.map new file mode 100644 index 0000000..b735e35 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/terrain/terrain-operation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-operation.d.ts","sourceRoot":"","sources":["../../../../../../../../source/script/public/gizmos/3d/elements/components/terrain/terrain-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAQ,OAAO,EAAE,YAAY,EAAgB,MAAM,IAAI,CAAC;AAE3E,qBAAa,iBAAiB;IACnB,CAAC,SAAK;IACN,CAAC,SAAK;IACN,KAAK,SAAK;CACpB;AAED,qBAAa,sBAAsB;IAC/B,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAEjB,OAAO,EAAE,OAAO;IAI5B,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAE3B;IAED,IAAI,OAAO,IAJU,OAAO,CAM3B;WAEa,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY;IAUpE,IAAI,EAAE,iBAAiB,EAAE,CAAkC;IAE3D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAcxC,KAAK;CAuDf;AAGD,qBAAa,qBAAsB,SAAQ,sBAAsB;IACtD,cAAc,EAAE,sBAAsB,EAAE,CAAM;IAErD,IAAI;IAIJ,IAAI;CAKP;AAGD,qBAAa,iBAAiB;IACnB,CAAC,SAAK;IACN,CAAC,SAAK;IACN,KAAK,EAAE,IAAI,CAAc;CACnC;AAED,qBAAa,qBAAqB;IAC9B,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,EAAE,CAAM;gBACf,OAAO,EAAE,OAAO;IAI5B,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAE3B;IAED,IAAI,OAAO,IAJU,OAAO,CAM3B;IAED,SAAS;IAQF,KAAK;CAKf;AAED,qBAAa,oBAAqB,SAAQ,qBAAqB;IACpD,cAAc,EAAE,qBAAqB,EAAE,CAAM;IACpD,IAAI;IAIJ,IAAI;CAKP;AAED,qBAAa,sBAAsB;IAC/B,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAEjB,OAAO,EAAE,OAAO;IAI5B,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAE3B;IAED,IAAI,OAAO,IAJU,OAAO,CAM3B;WAEa,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY;IAUpE,IAAI,EAAE,iBAAiB,EAAE,CAAkC;IAE3D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;IActC,KAAK;CAiCf;AAED,qBAAa,qBAAqB;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAoB;gBAE/B,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;CAQpD;AAED,qBAAa,qBAAsB,SAAQ,sBAAsB;IACtD,eAAe,EAAE,qBAAqB,EAAE,CAAsC;IAC9E,eAAe,EAAE,qBAAqB,EAAE,CAAsC;IAE9E,cAAc,EAAE,sBAAsB,EAAE,CAAM;IAErD,IAAI;IAIJ,IAAI;IAiBG,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;IAwBzE,KAAK;CAiBf"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/ui-transform-component-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/ui-transform-component-gizmo.d.ts new file mode 100644 index 0000000..b19ce76 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/ui-transform-component-gizmo.d.ts @@ -0,0 +1,20 @@ +import Gizmo from '../gizmo-base'; +declare class UITransformComponentGizmo extends Gizmo { + private _controller; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + onGizmoKeyDown(event: any): void; + onGizmoKeyUp(event: any): void; + updateControllerTransform(): void; + updateControllerData(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default UITransformComponentGizmo; +//# sourceMappingURL=ui-transform-component-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/ui-transform-component-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/ui-transform-component-gizmo.d.ts.map new file mode 100644 index 0000000..3d99c71 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/ui-transform-component-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ui-transform-component-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/ui-transform-component-gizmo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,eAAe,CAAC;AAMlC,cAAM,yBAA0B,SAAQ,KAAK;IACzC,OAAO,CAAC,WAAW,CAAoC;IACvD,IAAI;IAIJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAShB,qBAAqB;IAErB,qBAAqB;IAErB,mBAAmB;IAEnB,cAAc,CAAC,KAAK,EAAE,GAAG;IAEzB,YAAY,CAAC,KAAK,EAAE,GAAG;IAEvB,yBAAyB;IAiBzB,oBAAoB;IAkBpB,gBAAgB;IAKhB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,yBAAyB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/video-player-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/video-player-gizmo.d.ts new file mode 100644 index 0000000..748bb0f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/video-player-gizmo.d.ts @@ -0,0 +1,27 @@ +import GizmoBase from '../gizmo-base'; +import ImageController from '../controller/image-controller'; +import { Texture2D } from 'cc'; +declare class VideoPlayerGizmo extends GizmoBase { + protected _controller: ImageController; + protected _videoElem: HTMLVideoElement | null; + protected _canvasElem: HTMLCanvasElement | null; + protected _canvas2D: CanvasRenderingContext2D | null; + protected _image: any; + protected _tex2D: Texture2D; + protected _curUrl: string; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateControllerData(): void; + onVideoLoaded(): void; + updateControllerTransform(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default VideoPlayerGizmo; +//# sourceMappingURL=video-player-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/video-player-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/video-player-gizmo.d.ts.map new file mode 100644 index 0000000..92ed1d9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/video-player-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"video-player-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/video-player-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAA2B,SAAS,EAAE,MAAM,IAAI,CAAC;AAQxD,cAAM,gBAAiB,SAAQ,SAAS;IACpC,SAAS,CAAC,WAAW,EAAG,eAAe,CAAC;IACxC,SAAS,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAmC;IAChF,SAAS,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAoC;IACnF,SAAS,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAQ;IAE5D,SAAS,CAAC,MAAM,MAAwB;IACxC,SAAS,CAAC,MAAM,YAAmB;IACnC,SAAS,CAAC,OAAO,SAAM;IAEvB,IAAI;IAkBJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAQhB,qBAAqB;IAErB,qBAAqB;IAErB,mBAAmB;IAOnB,oBAAoB;IAyCpB,aAAa;IAoCb,yBAAyB;IAczB,gBAAgB;IAKhB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/webview-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/webview-gizmo.d.ts new file mode 100644 index 0000000..7a89a01 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/webview-gizmo.d.ts @@ -0,0 +1,24 @@ +import GizmoBase from '../gizmo-base'; +import ImageController from '../controller/image-controller'; +import { RectangleController } from '../controller/rectangle-controller'; +declare class WebviewGizmo extends GizmoBase { + protected _controller: ImageController; + protected _rectController: RectangleController; + init(): void; + onShow(): void; + onHide(): void; + onDestroy(): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + syncImageControllerData(): void; + syncRectControllerData(): void; + updateControllerData(): void; + updateControllerTransform(): void; + updateController(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default WebviewGizmo; +//# sourceMappingURL=webview-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/webview-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/webview-gizmo.d.ts.map new file mode 100644 index 0000000..2b781e9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/components/webview-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"webview-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/components/webview-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AASzE,cAAM,YAAa,SAAQ,SAAS;IAChC,SAAS,CAAC,WAAW,EAAG,eAAe,CAAC;IACxC,SAAS,CAAC,eAAe,EAAG,mBAAmB,CAAC;IAEhD,IAAI;IAIJ,MAAM;IAMN,MAAM;IAKN,SAAS;IAIT,gBAAgB;IAWhB,qBAAqB;IAErB,qBAAqB;IAErB,mBAAmB;IAOnB,uBAAuB;IAoBvB,sBAAsB;IActB,oBAAoB;IAgBpB,yBAAyB;IAmBzB,gBAAgB;IAKhB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/box-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/box-controller.d.ts new file mode 100644 index 0000000..fde14b5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/box-controller.d.ts @@ -0,0 +1,31 @@ +import EditableController from './editable-controller'; +import { Node, Vec3, Color } from 'cc'; +import { IControlMouseEvent } from '../../../defines'; +declare class BoxController extends EditableController { + private _center; + private _size; + private _deltaSize; + private _wireframeBoxNode; + private _wireframeBoxMeshRenderer; + private _cubeNode; + private _cubeNodeMR; + private _mouseDeltaPos; + private _curDistScalar; + constructor(rootNode: Node); + setColor(color: Color): void; + setOpacity(opacity: number): void; + _updateEditHandle(axisName: string): void; + initShape(): void; + updateSize(center: Readonly<Vec3>, size: Vec3): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(): void; + getDeltaSize(): Vec3; + showEditHandles(): void; + hideEditHandles(): void; +} +export default BoxController; +//# sourceMappingURL=box-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/box-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/box-controller.d.ts.map new file mode 100644 index 0000000..24558cf --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/box-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"box-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/box-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAIvD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAA8B,MAAM,IAAI,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAkBtD,cAAM,aAAc,SAAQ,kBAAkB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;gBAEf,QAAQ,EAAE,IAAI;IAQ1B,QAAQ,CAAC,KAAK,EAAE,KAAK;IAQrB,UAAU,CAAC,OAAO,EAAE,MAAM;IAM1B,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAgBlC,SAAS;IAwBT,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAiB7C,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAWrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAuBrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAOnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAItC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAInC,UAAU;IAIV,YAAY;IAGZ,eAAe;IAIf,eAAe;CAKlB;AAED,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/capsule-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/capsule-controller.d.ts new file mode 100644 index 0000000..cf6a39f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/capsule-controller.d.ts @@ -0,0 +1,47 @@ +import EditableController from './editable-controller'; +import { IControlMouseEvent } from '../../../defines'; +import { Color, Node, Vec3, EAxisDirection } from 'cc'; +declare class CapsuleController extends EditableController { + get radius(): number; + set radius(value: number); + get height(): number; + set height(value: number); + get direction(): EAxisDirection; + set direction(value: EAxisDirection); + private _oriDir; + private _direction; + private _center; + private _radius; + private _height; + private _halfHeight; + private _deltaRadius; + private _deltaHeight; + private _mouseDeltaPos; + private _curDistScalar; + private _upperCapMC; + private _lowerCapMC; + private _sideLineMC; + private _upperCapNode; + private _lowerCapNode; + private _sideLineNode; + private _up; + private _right; + private _forward; + private _directionAxis; + constructor(rootNode: Node); + setColor(color: Color): void; + _updateEditHandle(axisName: string): void; + initShape(): void; + updateSize(center: Vec3, radius: number, height: number): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaRadius(): number; + getDeltaHeight(): number; + private getUpperCapData; + private getLowerCapData; + private getSideLinesData; +} +export default CapsuleController; +//# sourceMappingURL=capsule-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/capsule-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/capsule-controller.d.ts.map new file mode 100644 index 0000000..27b640f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/capsule-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"capsule-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/capsule-controller.ts"],"names":[],"mappings":"AAIA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAQ,IAAI,EAAQ,cAAc,EAAE,MAAM,IAAI,CAAC;AAcjF,cAAM,iBAAkB,SAAQ,kBAAkB;IAC9C,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IACD,IAAI,SAAS,mBAEZ;IACD,IAAI,SAAS,CAAC,KAAK,gBAAA,EAElB;IACD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAqB;IAE1C,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAqE;gBAE/E,QAAQ,EAAE,IAAI;IAQnB,QAAQ,CAAC,KAAK,EAAE,KAAK;IAgBrB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IA2BlC,SAAS;IA2BT,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA6BvD,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAWrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAwBrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,cAAc;IAId,cAAc;IAIrB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,gBAAgB;CA+B3B;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/circle-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/circle-controller.d.ts new file mode 100644 index 0000000..5970d74 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/circle-controller.d.ts @@ -0,0 +1,31 @@ +import EditableController from './editable-controller'; +import { Node, Vec3, Color } from 'cc'; +import { IControlMouseEvent } from '../../../defines'; +declare class CircleController extends EditableController { + private _oriDir; + private _center; + private _radius; + private _arc; + private _deltaRadius; + private _circleNode; + private _circleFromDir; + private _circleMR; + private _mouseDeltaPos; + private _curDistScalar; + private _controlDir; + constructor(rootNode: Node); + get radius(): number; + set radius(value: number); + setColor(color: Color): void; + _updateEditHandle(axisName: string): void; + initShape(): void; + updateSize(center: Vec3, radius: number, arc: number): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaRadius(): number; + getControlDir(): Vec3; +} +export default CircleController; +//# sourceMappingURL=circle-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/circle-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/circle-controller.d.ts.map new file mode 100644 index 0000000..76a4d08 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/circle-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"circle-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/circle-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAsB,MAAM,IAAI,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAQtD,cAAM,gBAAiB,SAAQ,kBAAkB;IAC7C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,SAAS,CAA6B;IAE9C,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAoB;gBAE3B,QAAQ,EAAE,IAAI;IAa1B,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,QAAQ,CAAC,KAAK,EAAE,KAAK;IAQrB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAclC,SAAS;IAaT,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAuBpD,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAWrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAkBrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cone-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cone-controller.d.ts new file mode 100644 index 0000000..0865d02 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cone-controller.d.ts @@ -0,0 +1,42 @@ +import EditableController from './editable-controller'; +import { IControlMouseEvent } from '../../../defines'; +import { Vec3, Node, Color, EAxisDirection } from 'cc'; +declare class ConeController extends EditableController { + private _oriDir; + private _center; + private _radius; + private _height; + private _halfHeight; + private _deltaRadius; + private _deltaHeight; + private _circleFromDir; + private _sideLineMR; + private _lowerCapMR; + private _sideLineNode; + private _lowerCapNode; + private _mouseDeltaPos; + private _curDistScalar; + private _directionAxis; + private _direction; + get radius(): number; + set radius(value: number); + get height(): number; + set height(value: number); + get direction(): EAxisDirection; + set direction(value: EAxisDirection); + constructor(rootNode: Node); + setColor(color: Color): void; + _updateEditHandle(axisName: string): void; + initShape(): void; + getSideLinesData(center: Vec3, radius: number, height: number): import("../../../defines").IMeshPrimitive; + getLowerCapData(center: Vec3, radius: number, height: number): any; + updateSize(center: Vec3, radius: number, height: number): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaRadius(): number; + getDeltaHeight(): number; +} +export default ConeController; +//# sourceMappingURL=cone-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cone-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cone-controller.d.ts.map new file mode 100644 index 0000000..8ed044f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cone-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cone-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/cone-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAQ,IAAI,EAAE,KAAK,EAAgB,cAAc,EAAQ,MAAM,IAAI,CAAC;AAejF,cAAM,cAAe,SAAQ,kBAAkB;IAC3C,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,cAAc,CAAqE;IAC3F,OAAO,CAAC,UAAU,CAAyC;IAE3D,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,IAAI,SAAS,mBAA8B;IAC3C,IAAI,SAAS,CAAC,KAAK,gBAAA,EAElB;gBAEW,QAAQ,EAAE,IAAI;IAc1B,QAAQ,CAAC,KAAK,EAAE,KAAK;IASrB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IA2BlC,SAAS;IAmBT,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA+B7D,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA0B5D,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAuBvD,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAWrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAuBrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,cAAc;IAId,cAAc;CAGjB;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/controller-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/controller-base.d.ts new file mode 100644 index 0000000..496aba4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/controller-base.d.ts @@ -0,0 +1,107 @@ +import { Color, Node, Quat, Vec2, Vec3 } from 'cc'; +import { IControlMouseEvent, IHandleData } from '../../../defines'; +declare class ControllerBase { + get is2D(): boolean; + get scale2D(): number; + get updated(): boolean; + get visible(): boolean | undefined; + shape: Node | null; + /** 如果 controller 锁死将不再响应拖拽 */ + isLock: boolean; + onControllerMouseDown?(event: IControlMouseEvent): void; + onControllerMouseMove?(event: IControlMouseEvent): void; + onControllerMouseUp?(event: IControlMouseEvent): void; + onControllerHoverIn?(event: IControlMouseEvent): void; + onControllerHoverOut?(event: IControlMouseEvent): void; + get isMouseDown(): boolean; + protected _updated: boolean; + protected _scale: Vec3; + protected _localRot: Quat; + protected _localPos: Vec3; + protected _rootNode: Node | null; + protected _baseDist: number; + protected _handleDataMap: { + [key: string]: IHandleData; + }; + protected _twoPI: number; + protected _halfPI: number; + protected _degreeToRadianFactor: number; + protected _eventsRegistered: boolean; + protected _isMouseDown: boolean; + protected _color: Color; + protected _lockSize: boolean; + private _onDimensionChanged; + private _onScale2DChanged; + private _onCameraProjectionChanged; + private _onCameraFovChanged; + private _onCameraOrthoHeightChanged; + private _mouseDownFuncs; + private _mouseMoveFuncs; + private _mouseUpFuncs; + private _mouseLeaveFuncs; + private _hoverInFuncs; + private _hoverOutFuncs; + constructor(rootNode: Node); + set lockSize(value: boolean); + /** + * 更改控制器所依附的根节点 + * @param rootNode + */ + setRoot(rootNode: Node): void; + createShapeNode(name: string): void; + registerEvents(): void; + unregisterEvents(): void; + registerCameraMovedEvent(): void; + unregisterCameraMoveEvent(): void; + registerCameraFovChangedEvent(): void; + registerOrthoHeightChangedEvent(): void; + unregisterCameraFovChangedEvent(): void; + unregisterOrthoHeightChangedEvent(): void; + onEditorCameraMoved(): void; + initHandle(node: Node, handleName: string): IHandleData; + removeHandle(handleName: string): void; + setHandleColor(handleName: string, color: Color, opacity?: number): void; + resetHandleColor(): void; + registerMouseEvents(node: Node, controlName: string): void; + unregisterMouseEvent(node: Node, controlName: string): void; + setPosition(value: Readonly<Vec3>): void; + getPosition(out?: Vec3): Vec3; + getWorldPosition(out?: Vec3): Vec3; + getWorldPositionForNode(source?: Node | null, out?: Vec3): Vec3; + setRotation(value: Readonly<Quat>): void; + getRotation(out?: Quat): Quat; + getScale(): Vec3; + setScale(value: Vec3): void; + updateController(): void; + getCameraDistScalar(pos: Vec3): number; + protected getDistScalarInOrtho(): number; + protected isCameraInOrtho(): boolean; + getDistScalar(node?: Node): number; + adjustControllerSize(): void; + needRender(node: Node): boolean; + getRendererNodes(node: Node): Node[]; + getRayDetectNodes(node: Node): Node[]; + localToWorldPosition(localPos: Vec3): any; + localToWorldDir(localDir: Vec3): Vec3; + worldPosToScreenPos(worldPos: Vec3): Vec3; + getScreenPos(localPos: Vec3): Vec3; + getAlignAxisMoveDistance(axisWorldDir: Vec3, deltaPos: Vec2): number; + getPositionOnPanPlane(hitPos: Vec3, x: number, y: number, panPlane: Node): boolean; + show(): void; + hide(): void; + onCameraFovChanged?: (fov: number) => void; + onDimensionChanged(): void; + onScale2DChanged(): void; + onCameraProjectionChanged(projection: number): void; + onCameraOrthoHeightChanged(): void; + protected onMouseDown?(event: IControlMouseEvent): void; + protected onMouseMove?(event: IControlMouseEvent): void; + protected onMouseUp?(event: IControlMouseEvent): void; + protected onMouseLeave?(event: IControlMouseEvent): void; + protected onHoverIn?(event: IControlMouseEvent): void; + protected onHoverOut?(event: IControlMouseEvent): void; + protected onShow?(): void; + protected onHide?(): void; +} +export default ControllerBase; +//# sourceMappingURL=controller-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/controller-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/controller-base.d.ts.map new file mode 100644 index 0000000..55a3a82 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/controller-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"controller-base.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/controller-base.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAenE,cAAM,cAAc;IAChB,IAAI,IAAI,YAEP;IAED,IAAI,OAAO,WAEV;IAED,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,wBAEV;IACM,KAAK,EAAE,IAAI,GAAG,IAAI,CAAQ;IACjC,8BAA8B;IACvB,MAAM,UAAS;IAEf,qBAAqB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACvD,qBAAqB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACvD,mBAAmB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACrD,mBAAmB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACrD,oBAAoB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAC7D,IAAW,WAAW,YAErB;IACD,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,MAAM,EAAE,IAAI,CAAqB;IAC3C,SAAS,CAAC,SAAS,EAAE,IAAI,CAAc;IACvC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAc;IACvC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IACxC,SAAS,CAAC,SAAS,SAAO;IAC1B,SAAS,CAAC,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAM;IAC9D,SAAS,CAAC,MAAM,SAAe;IAC/B,SAAS,CAAC,OAAO,SAAe;IAChC,SAAS,CAAC,qBAAqB,SAAiB;IAChD,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,YAAY,UAAS;IAC/B,SAAS,CAAC,MAAM,EAAE,KAAK,CAAe;IACtC,SAAS,CAAC,SAAS,UAAS;IAE5B,OAAO,CAAC,mBAAmB,CAAyB;IACpD,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,0BAA0B,CAAyB;IAC3D,OAAO,CAAC,mBAAmB,CAAwC;IACnE,OAAO,CAAC,2BAA2B,CAAyB;IAE5D,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,aAAa,CAAsD;IAC3E,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,OAAO,CAAC,aAAa,CAAsD;IAC3E,OAAO,CAAC,cAAc,CAAsD;gBAEhE,QAAQ,EAAE,IAAI;IAI1B,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IAED;;;OAGG;IACI,OAAO,CAAC,QAAQ,EAAE,IAAI;IAOtB,eAAe,CAAC,IAAI,EAAE,MAAM;IAK5B,cAAc;IAiBd,gBAAgB;IAmBhB,wBAAwB;IAIxB,yBAAyB;IAIzB,6BAA6B;IAM7B,+BAA+B;IAK/B,+BAA+B;IAK/B,iCAAiC;IAMjC,mBAAmB;IAInB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM;IA2BzC,YAAY,CAAC,UAAU,EAAE,MAAM;IAW/B,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM;IAcjE,gBAAgB;IAkBhB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM;IAyEnD,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM;IASpD,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IAMjC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI;IAStB,gBAAgB,CAAC,GAAG,CAAC,EAAE,IAAI;IAI3B,uBAAuB,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI;IAQxD,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IAKjC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI;IAQtB,QAAQ;IAGR,QAAQ,CAAC,KAAK,EAAE,IAAI;IAKpB,gBAAgB;IAIhB,mBAAmB,CAAC,GAAG,EAAE,IAAI;IAQpC,SAAS,CAAC,oBAAoB;IAU9B,SAAS,CAAC,eAAe;IAIlB,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI;IAczB,oBAAoB;IAWpB,UAAU,CAAC,IAAI,EAAE,IAAI;IASrB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE;IAepC,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE;IAcrC,oBAAoB,CAAC,QAAQ,EAAE,IAAI;IAUnC,eAAe,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAUrC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAQzC,YAAY,CAAC,QAAQ,EAAE,IAAI;IAI3B,wBAAwB,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IAWlE,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI;IAYjE,IAAI;IAUJ,IAAI;IAYJ,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,kBAAkB;IAQlB,gBAAgB;IAMhB,yBAAyB,CAAC,UAAU,EAAE,MAAM;IAK5C,0BAA0B;IAMjC,SAAS,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACvD,SAAS,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACvD,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACrD,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACxD,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACrD,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IACtD,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI;IACzB,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI;CAC5B;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cylinder-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cylinder-controller.d.ts new file mode 100644 index 0000000..bc7aa5a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cylinder-controller.d.ts @@ -0,0 +1,47 @@ +import EditableController from './editable-controller'; +import { IControlMouseEvent } from '../../../defines'; +import { Color, Node, Vec3, EAxisDirection } from 'cc'; +declare class CylinderController extends EditableController { + get radius(): number; + set radius(value: number); + get height(): number; + set height(value: number); + get direction(): EAxisDirection; + set direction(value: EAxisDirection); + private _oriDir; + private _direction; + private _center; + private _radius; + private _height; + private _halfHeight; + private _deltaRadius; + private _deltaHeight; + private _mouseDeltaPos; + private _curDistScalar; + private _upperCapMC; + private _lowerCapMC; + private _sideLineMC; + private _upperCapNode; + private _lowerCapNode; + private _sideLineNode; + private _up; + private _right; + private _forward; + private _directionAxis; + constructor(rootNode: Node); + setColor(color: Color): void; + _updateEditHandle(axisName: string): void; + initShape(): void; + updateSize(center: Vec3, radius: number, height: number): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaRadius(): number; + getDeltaHeight(): number; + private getUpperCapData; + private getLowerCapData; + private getSideLinesData; +} +export default CylinderController; +//# sourceMappingURL=cylinder-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cylinder-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cylinder-controller.d.ts.map new file mode 100644 index 0000000..7e6efcb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/cylinder-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cylinder-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/cylinder-controller.ts"],"names":[],"mappings":"AAIA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAQ,IAAI,EAAQ,cAAc,EAAE,MAAM,IAAI,CAAC;AAajF,cAAM,kBAAmB,SAAQ,kBAAkB;IAE/C,IAAI,MAAM,WAA2B;IACrC,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,IAAI,MAAM,WAA2B;IACrC,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IACD,IAAI,SAAS,mBAA8B;IAC3C,IAAI,SAAS,CAAC,KAAK,gBAAA,EAElB;IACD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAA4B;IAE/C,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAmB;IAExC,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAqE;gBAE/E,QAAQ,EAAE,IAAI;IAQnB,QAAQ,CAAC,KAAK,EAAE,KAAK;IAgBrB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IA2BlC,SAAS;IA2BT,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA6BvD,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAWrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAyBrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAOnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,cAAc;IAId,cAAc;IAIrB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,gBAAgB;CA8B3B;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/direction-light-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/direction-light-controller.d.ts new file mode 100644 index 0000000..ad0885b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/direction-light-controller.d.ts @@ -0,0 +1,10 @@ +import ControllerBase from './controller-base'; +import { Node, Color } from 'cc'; +declare class DirectionLightController extends ControllerBase { + protected _lightDirNode: Node | null; + constructor(rootNode: Node); + setColor(color: Color): void; + initShape(): void; +} +export default DirectionLightController; +//# sourceMappingURL=direction-light-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/direction-light-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/direction-light-controller.d.ts.map new file mode 100644 index 0000000..0f11ada --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/direction-light-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"direction-light-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/direction-light-controller.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAQ,MAAM,IAAI,CAAC;AAKvC,cAAM,wBAAyB,SAAQ,cAAc;IACjD,SAAS,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAQ;gBAEhC,QAAQ,EAAE,IAAI;IAO1B,QAAQ,CAAC,KAAK,EAAE,KAAK;IAKrB,SAAS;CAWZ;AAED,eAAe,wBAAwB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/disc-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/disc-controller.d.ts new file mode 100644 index 0000000..9e0ae10 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/disc-controller.d.ts @@ -0,0 +1,57 @@ +import EditableController from './editable-controller'; +import { Node, Vec3, Color } from 'cc'; +import { IControlMouseEvent } from '../../../defines'; +declare enum DiscHandleType { + None = "none", + Left = "neg_x", + Right = "x", + Top = "y", + Bottom = "neg_y", + Area = "area" +} +declare class DiscController extends EditableController { + static DiscHandleType: typeof DiscHandleType; + private _oriDir; + private _center; + private _radius; + private _arc; + private _deltaRadius; + private _deltaPos; + private _circleNode; + private _circleFromDir; + private _circleMR; + private _panPlane; + private _areaNode; + private _areaMR; + private _areaColor; + private _areaOpacity; + private _mouseDeltaPos; + private _mouseDownOnPlanePos; + private _curDistScalar; + private _controlDir; + private _curHandleType; + constructor(rootNode: Node); + get radius(): number; + set radius(value: number); + setColor(color: Color): void; + setAreaColor(color: Color): void; + setAreaOpacity(opacity: number): void; + showEditHandles(): void; + hideEditHandles(): void; + isBorder(axisName: string): boolean; + initShape(): void; + onInitEditHandles(): void; + _updateEditHandle(axisName: string): void; + updateSize(center: Readonly<Vec3>, radius: number, arc?: number): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaRadius(): number; + getControlDir(): Vec3; + getDeltaPos(): Vec3; + getCurHandleType(): string; +} +export default DiscController; +//# sourceMappingURL=disc-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/disc-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/disc-controller.d.ts.map new file mode 100644 index 0000000..2930e60 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/disc-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"disc-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/disc-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAsB,MAAM,IAAI,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AActD,aAAK,cAAc;IACf,IAAI,SAAS;IACb,IAAI,UAAU;IACd,KAAK,MAAM;IACX,GAAG,MAAM;IACT,MAAM,UAAU;IAChB,IAAI,SAAS;CAChB;AAED,cAAM,cAAe,SAAQ,kBAAkB;IAC3C,OAAc,cAAc,wBAAkB;IAC9C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAA+B;gBAEzC,QAAQ,EAAE,IAAI;IAa1B,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,QAAQ,CAAC,KAAK,EAAE,KAAK;IAQrB,YAAY,CAAC,KAAK,EAAE,KAAK;IAOzB,cAAc,CAAC,OAAO,EAAE,MAAM;IAO9B,eAAe;IAOf,eAAe;IAOf,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAazB,SAAS;IAaT,iBAAiB;IAqBjB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAiBlC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAM;IA0B5D,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAqBrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAiCrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IASnC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAgBnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,cAAc;IAId,aAAa;IAKb,WAAW;IAIX,gBAAgB;CAGnB;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/editable-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/editable-controller.d.ts new file mode 100644 index 0000000..752fc23 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/editable-controller.d.ts @@ -0,0 +1,44 @@ +import ControllerBase from './controller-base'; +import { IControlMouseEvent } from '../../../defines'; +import { Node, Vec3, Color, Quat } from 'cc'; +declare class EditableController extends ControllerBase { + protected _editable: boolean; + protected _edit: boolean; + protected _editHandlesShape: Node | null; + protected _defaultEditHandleSize: number; + protected _hoverColor: Color; + protected _editHandleScales: { + [key: string]: number; + }; + protected _editHandleColor: Color; + protected _editHandleKeys: string[]; + onInitEditHandles?(): void; + constructor(rootNode: Node); + get editable(): boolean; + set editable(value: boolean); + get edit(): boolean; + set edit(value: boolean); + get hoverColor(): Color; + set hoverColor(value: Color); + createEditHandleShape(): void; + setRoot(rootNode: Node): void; + setEditHandlesColor(color: Color): void; + showEditHandles(): void; + hideEditHandles(): void; + createEditHandle(handleName: string, color: Color): import("../../../defines").IHandleData; + initEditHandles(): void; + _updateEditHandle(handleName: string): void; + updateEditHandles(): void; + checkEdit(): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(event: IControlMouseEvent): void; + onEditorCameraMoved(): void; + adjustControllerSize(): void; + adjustEditHandlesSize(): void; + setPosition(value: Readonly<Vec3>): void; + setRotation(value: Readonly<Quat>): void; + onShow(): void; + onHide(): void; +} +export default EditableController; +//# sourceMappingURL=editable-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/editable-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/editable-controller.d.ts.map new file mode 100644 index 0000000..4f19547 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/editable-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"editable-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/editable-controller.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAQ7C,cAAM,kBAAmB,SAAQ,cAAc;IAC3C,SAAS,CAAC,SAAS,UAAS;IAC5B,SAAS,CAAC,KAAK,UAAS;IACxB,SAAS,CAAC,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAQ;IAChD,SAAS,CAAC,sBAAsB,SAAK;IACrC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAe;IAC3C,SAAS,CAAC,iBAAiB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAC5D,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAe;IAChD,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAElC,iBAAiB,CAAC,IAAI,IAAI;gBAErB,QAAQ,EAAE,IAAI;IAM1B,IAAI,QAAQ,YAEX;IACD,IAAI,QAAQ,CAAC,KAAK,SAAA,EAEjB;IAED,IAAI,IAAI,YAEP;IACD,IAAI,IAAI,CAAC,KAAK,SAAA,EAUb;IAED,IAAI,UAAU,UAEb;IACD,IAAI,UAAU,CAAC,KAAK,OAAA,EAEnB;IAED,qBAAqB;IAWrB,OAAO,CAAC,QAAQ,EAAE,IAAI;IAOtB,mBAAmB,CAAC,KAAK,EAAE,KAAK;IAqBhC,eAAe;IAMf,eAAe;IAMf,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAWjD,eAAe;IAYf,iBAAiB,CAAC,UAAU,EAAE,MAAM;IAEpC,iBAAiB;IAMjB,SAAS;IAQT,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAInC,UAAU,CAAC,KAAK,EAAE,kBAAkB;IAIpC,mBAAmB;IAInB,oBAAoB;IAKpB,qBAAqB;IAsBrB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IAQjC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IAOjC,MAAM;IAON,MAAM;CAMT;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/frustum-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/frustum-controller.d.ts new file mode 100644 index 0000000..2fad8b9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/frustum-controller.d.ts @@ -0,0 +1,37 @@ +import EditableController from './editable-controller'; +import { IControlMouseEvent } from '../../../defines'; +import { Node } from 'cc'; +declare class FrustumController extends EditableController { + private _aspect; + private _near; + private _far; + private _cameraProjection; + private _fov; + private _fovAxis; + private _orthoHeight; + private _oriDir; + private _deltaWidth; + private _deltaHeight; + private _deltaDistance; + private _mouseDeltaPos; + private _curDistScalar; + private _frustumNode; + private _frustumMeshRenderer; + constructor(rootNode: Node); + getFarClipSize(isOrtho: boolean, orthoHeight: number, fov: number, aspect: number, far: number, fovAxis: number): { + farHalfHeight: number; + farHalfWidth: number; + }; + _updateEditHandle(axisName: string): void; + initShape(): void; + updateSize(camProj: number, orthoHeight: number, fov: number, aspect: number, near: number, far: number, fovAxis: number): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaWidth(): number; + getDeltaHeight(): number; + getDeltaDistance(): number; +} +export default FrustumController; +//# sourceMappingURL=frustum-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/frustum-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/frustum-controller.d.ts.map new file mode 100644 index 0000000..11b7066 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/frustum-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"frustum-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/frustum-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,IAAI,EAA4B,MAAM,IAAI,CAAC;AAUpD,cAAM,iBAAkB,SAAQ,kBAAkB;IAC9C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,iBAAiB,CAAK;IAG9B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,QAAQ,CAA4B;IAE5C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,OAAO,CAA4B;IAE3C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,QAAQ,EAAE,IAAI;IAe1B,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;IAoB/G,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IA6BlC,SAAS;IAmBT,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IA4BxH,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAcrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAsBrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,aAAa;IAIb,cAAc;IAId,gBAAgB;CAGnB;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/hemisphere-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/hemisphere-controller.d.ts new file mode 100644 index 0000000..1fe26ff --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/hemisphere-controller.d.ts @@ -0,0 +1,29 @@ +import EditableController from './editable-controller'; +import { IControlMouseEvent } from '../../../defines'; +import { Node, Vec3, MeshRenderer, Color } from 'cc'; +declare class SphereController extends EditableController { + private _center; + private _radius; + private _deltaRadius; + private _circleDataMap; + private _mouseDeltaPos; + private _curDistScalar; + private _controlDir; + constructor(rootNode: Node); + get radius(): number; + set radius(value: number); + setColor(color: Color): void; + createCircleByAxis(axisName: string, fromAxisName: string, color: Color): void; + _updateEditHandle(axisName: string): void; + initShape(): void; + updateSize(center: Vec3, radius: number): void; + updateArcMesh(model: MeshRenderer, center: Vec3, normal: Vec3, from: Vec3, radian: number, radius: number): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaRadius(): number; + getControlDir(): Vec3; +} +export default SphereController; +//# sourceMappingURL=hemisphere-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/hemisphere-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/hemisphere-controller.d.ts.map new file mode 100644 index 0000000..963da98 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/hemisphere-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"hemisphere-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/hemisphere-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAQ,KAAK,EAAE,MAAM,IAAI,CAAC;AAQ3D,cAAM,gBAAiB,SAAQ,kBAAkB;IAC7C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAoB;gBAE3B,QAAQ,EAAE,IAAI;IAc1B,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,QAAQ,CAAC,KAAK,EAAE,KAAK;IASrB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAiBvE,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAYlC,SAAS;IAYT,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAsBvC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOzG,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAUrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAerC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/icon-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/icon-controller.d.ts new file mode 100644 index 0000000..b315b34 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/icon-controller.d.ts @@ -0,0 +1,18 @@ +import { Color, Node } from 'cc'; +import QuadController from './quad-controller'; +declare class IconController extends QuadController { + private _is3DIcon; + constructor(rootNode: Node, opts?: any); + setTexture(texture: any): void; + setTextureByUuid(uuid: string): void; + setColor(color: Color): void; + set is3DIcon(value: boolean); + getDistScalar(): number; + resetShapeScale(): void; + onShow(): void; + onHide(): void; + onEditorCameraMoved(): void; + adjustControllerSize(): void; +} +export default IconController; +//# sourceMappingURL=icon-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/icon-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/icon-controller.d.ts.map new file mode 100644 index 0000000..1865905 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/icon-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"icon-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/icon-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,EAAE,IAAI,EAAQ,MAAM,IAAI,CAAC;AACrD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAS/C,cAAM,cAAe,SAAQ,cAAc;IACvC,OAAO,CAAC,SAAS,CAAS;gBACd,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG;IAQtC,UAAU,CAAC,OAAO,EAAE,GAAG;IAIvB,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAStB,QAAQ,CAAC,KAAK,EAAE,KAAK;IAI5B,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAQ1B;IAED,aAAa;IAUb,eAAe;IAIf,MAAM;IAUN,MAAM;IAQN,mBAAmB;IAmBnB,oBAAoB;CAOvB;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/image-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/image-controller.d.ts new file mode 100644 index 0000000..d77e813 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/image-controller.d.ts @@ -0,0 +1,15 @@ +import ControllerBase from './controller-base'; +import { Vec3, Vec2, Node, Texture2D } from 'cc'; +declare class ImageController extends ControllerBase { + private _center; + private _size; + private _imageNode; + private _imageMR; + constructor(rootNode: Node, opts?: any); + initShape(opts?: any): void; + setTexture(texture: Texture2D | null): void; + setTextureByUuid(uuid: string): void; + updateSize(center: Vec3, size: Vec2): void; +} +export default ImageController; +//# sourceMappingURL=image-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/image-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/image-controller.d.ts.map new file mode 100644 index 0000000..5d36a12 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/image-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"image-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/image-controller.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAgB,IAAI,EAAS,SAAS,EAAgB,MAAM,IAAI,CAAC;AAYpF,cAAM,eAAgB,SAAQ,cAAc;IACxC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG;IAKtC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG;IAQpB,UAAU,CAAC,OAAO,EAAE,SAAS,GAAE,IAAI;IAInC,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAS7B,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAOtC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/joint-2d-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/joint-2d-controller.d.ts new file mode 100644 index 0000000..0f38711 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/joint-2d-controller.d.ts @@ -0,0 +1,39 @@ +import { Color, Node, Vec3 } from 'cc'; +import EditableController from './editable-controller'; +import { IControlMouseEvent } from '../../../defines'; +declare enum Joint2DControllerType { + Revolute = 0, + Distance = 1, + Fixed = 2, + Hinge = 3, + Slider = 4, + Spring = 5, + Wheel = 6 +} +declare class Joint2DController extends EditableController { + private _lineNode; + private _lineMR; + private _anchor; + private _panPlane; + private _mouseDownOnPlanePos; + private _deltaPos; + private _type; + private _center; + constructor(root: Node, type?: Joint2DControllerType); + setColor(color: Color): void; + createEditHandle(handleName: string, color: Color): import("../../../defines").IHandleData; + createHeadNode(pos: Vec3, name: string, color: Color): Node; + createLineNode(startPos: Vec3, endPos: Vec3, name: string, color: Color): Node; + initShape(): void; + _updateEditHandle(handleName: string): void; + updatePosition(center: Vec3, anchor: Vec3): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(event: IControlMouseEvent): void; + getDeltaPos(): Vec3; +} +export { Joint2DController, Joint2DControllerType }; +//# sourceMappingURL=joint-2d-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/joint-2d-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/joint-2d-controller.d.ts.map new file mode 100644 index 0000000..8dde477 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/joint-2d-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"joint-2d-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/joint-2d-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAQ,IAAI,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAgBtD,aAAK,qBAAqB;IACtB,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,KAAK,IAAA;IACL,KAAK,IAAA;IACL,MAAM,IAAA;IACN,MAAM,IAAA;IACN,KAAK,IAAA;CACR;AAED,cAAM,iBAAkB,SAAQ,kBAAkB;IAC9C,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,KAAK,CAAyD;IACtE,OAAO,CAAC,OAAO,CAAc;gBAEjB,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,qBAAqB;IAa7C,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAWjD,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAgBpD,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAQvE,SAAS;IAgBT,iBAAiB,CAAC,UAAU,EAAE,MAAM;IASpC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IAkBzC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAiBrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAiBrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAQnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAItC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAOnC,UAAU,CAAC,KAAK,EAAE,kBAAkB;IAOpC,WAAW;CAId;AAED,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.d.ts new file mode 100644 index 0000000..cf2d3e4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.d.ts @@ -0,0 +1,31 @@ +import { LightProbeGroup, Node, Vec3 } from 'cc'; +import { IControlMouseEvent } from '../../../defines'; +import LightProbeEditModeListener from '../listener/light-probe-edit-mode-listener'; +import BoxController from './box-controller'; +import { TargetDelegate } from './light-probe-controller'; +export default class LightProbeBoundingBoxController extends BoxController implements LightProbeEditModeListener { + targetDelegate: TargetDelegate<LightProbeGroup>; + _editable: boolean; + private _boundingBoxScale; + private _minPos; + private _maxPos; + private _editMode; + get editMode(): boolean; + private _positionNode; + private _positionGizmo; + private _gizmoEventListenerIndex; + private _positionMouseDown; + constructor(rootNode: Node, targetDelegate: TargetDelegate<LightProbeGroup>); + initPositionGizmo(): void; + updateController(): void; + updatePositionGizmo(): void; + onMouseDown(event: IControlMouseEvent): void; + updateDataFromBBController(event: IControlMouseEvent): void; + onShow(): void; + onHide(): void; + getBoundingBoxCenter(): Vec3; + setBoundingBoxCenter(center: Vec3): void; + lightProbeEditModeChanged(mode: boolean): void; + boundingBoxEditModeChanged(mode: boolean): void; +} +//# sourceMappingURL=light-probe-bounding-box-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.d.ts.map new file mode 100644 index 0000000..6402a9a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"light-probe-bounding-box-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/light-probe-bounding-box-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,eAAe,EACf,IAAI,EAEJ,IAAI,EAEP,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,0BAA0B,MAAM,4CAA4C,CAAC;AACpF,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAa1D,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,aAAc,YAAW,0BAA0B;IAmBjG,cAAc,EAAE,cAAc,CAAC,eAAe,CAAC;IAlB1D,SAAS,UAAQ;IAEjB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAoB;IAEnC,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,OAAO,CAAC,aAAa,CAAsD;IAC3E,OAAO,CAAC,cAAc,CAA0D;IAChF,OAAO,CAAC,wBAAwB,CAAM;IACtC,OAAO,CAAC,kBAAkB,CAAS;gBAG/B,QAAQ,EAAE,IAAI,EACP,cAAc,EAAE,cAAc,CAAC,eAAe,CAAC;IAQ1D,iBAAiB;IAQjB,gBAAgB;IAShB,mBAAmB;IAYnB,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAOrC,0BAA0B,CAAC,KAAK,EAAE,kBAAkB;IAcpD,MAAM;IAwCN,MAAM;IASN,oBAAoB,IAAI,IAAI;IAI5B,oBAAoB,CAAC,MAAM,EAAE,IAAI;IAQjC,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK9C,0BAA0B,CAAC,IAAI,EAAE,OAAO;CAU3C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-controller.d.ts new file mode 100644 index 0000000..27f330c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-controller.d.ts @@ -0,0 +1,117 @@ +/// <reference types="node" /> +import ControllerBase from './controller-base'; +import { Color, LightProbeGroup, Node, Vec3 } from 'cc'; +import PositionGizmo from '../transform/position-gizmo'; +import { IControlMouseEvent } from '../../../defines'; +import GizmoEventListener from '../listener/gizmo-event-listener'; +import LightProbeEditModeListener from '../listener/light-probe-edit-mode-listener'; +import GizmoOperationEventListener from '../listener/gizmo-operation-event-listener'; +import { ISceneMouseEvent } from '../../../../../../../@types/private'; +import SimpleSet from '../../../utils/set-util'; +import type LightProbeGizmo from '../components/light/light-probe-gizmo'; +export declare type NodeProbe = { + node: Node; + probe: Vec3; +}; +export default class LightProbeController extends ControllerBase implements LightProbeEditModeListener, GizmoOperationEventListener { + targetDelegate: TargetDelegate<LightProbeGroup>; + gizmo: LightProbeGizmo; + static ProbeColor: Color; + static SelectedProbeColor: Color; + static WireFrameColor: Color; + static ConvexColor: Readonly<Color>; + static Count: number; + static get Name(): string; + protected _lockSize: boolean; + private _isInitialized; + private _probePool; + private _currentProbes; + private _currentSelectedProbeNames; + private _probeSphere; + private _reuseAbleMesh?; + private _reuseAbleMaterial; + private _shouldDiffOnNextUpdate; + private _editMode; + private _lightProbeInfo; + static _gizmoEventListener: LightProbeGizmoMouseEventListener; + static _gizmoEventListenerIndex: string; + static globalNodeCurrentProbes: Map<string, NodeProbe>; + static LightProbeSphereName: string; + static TetrahedronNode: Node; + static OuterCell: Node; + static _positionNode: Node; + static positionGizmo: PositionGizmo; + get currentProbesArray(): { + key: string; + nodeProbe: NodeProbe; + }[]; + get currentProbeNames(): Set<string>; + get probeSphere(): Node; + constructor(rootNode: Node, targetDelegate: TargetDelegate<LightProbeGroup>, gizmo: LightProbeGizmo); + initShape(): void; + tempAdjustSizeV3: Vec3; + delta: number; + adjustControllerSize(): void; + static debounceUpdate: NodeJS.Timeout | null; + updateController(): void; + updateProbes(): void; + updateLines(updateInfo?: boolean): void; + updateWireframe(): Set<string>; + updateConvex(indicesString?: Set<string>): number[]; + updateLightProbeInfo(): void; + createProbeNode(probe: Vec3): Node; + updateProbesColor(): void; + static tempColor: Color; + static meshColorUniformName: string; + /** + * fast set mesh 'mainColor' + */ + fastSetMeshColor(node: Node, c: Color, nodeProbe: NodeProbe): void; + updateLinesNode(node: Node, position: Vec3, vertices: Vec3[], indices: number[], color?: Color): void; + static TetrahedronLines: number[]; + static OuterCellLines: number[]; + releaseProbeNodes(nodeProbes: NodeProbe[]): void; + updateNodeTransformInfo(node: Node): void; + protected onShow(): void; + protected onHide(): void; + protected onMouseDown(event: IControlMouseEvent): void; + protected onMouseMove(event: IControlMouseEvent): void; + protected onMouseUp(event: IControlMouseEvent): void; + get currentSelectedProbes(): NodeProbe[]; + protected changePositionTarget(target: Node[]): void; + selectProbe(names: Iterable<string>): void; + unselectProbe(names: Iterable<string>): void; + private clearCurrentSelectedProbe; + private updatePositionGizmo; + lightProbeEditModeChanged(mode: boolean): void; + boundingBoxEditModeChanged(mode: boolean): void; + duplicateCurrentSelectedProbes(): SimpleSet<Node>; + deleteCurrentSelectedProbes(): SimpleSet<Node>; + clearLayer(node: Node): void; + restoreLayer(node: Node): void; + clearProbeNodesLayer(): void; + restoreProbeNodesLayer(): void; + diff(): NodeProbe[]; + onNotGizmoMouseDown(event: ISceneMouseEvent): void; + onNotGizmoMouseMove(event: ISceneMouseEvent): void; + onNotGizmoMouseUp(event: ISceneMouseEvent): void; + shouldEmitNodes(): SimpleSet<string>; + select(nodes: SimpleSet<Node>): void; + selectAll(): void; + unselect(nodes: SimpleSet<Node>): void; + unselectAll(): void; + currentSelectedNodes(): SimpleSet<Node>; + lightProbeInfoChanged(): void; + hideAllChildren(): void; +} +export interface TargetDelegate<T> { + get target(): T; +} +declare class LightProbeGizmoMouseEventListener implements GizmoEventListener { + controller: LightProbeController; + constructor(controller: LightProbeController); + onControllerMouseMove(event: IControlMouseEvent): void; + onControllerMouseUp(event: IControlMouseEvent): void; +} +export {}; +//# sourceMappingURL=light-probe-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-controller.d.ts.map new file mode 100644 index 0000000..baf1a49 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"light-probe-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/light-probe-controller.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.d.ts new file mode 100644 index 0000000..f61a2ae --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.d.ts @@ -0,0 +1,28 @@ +import ControllerBase from './controller-base'; +import { Color, MeshRenderer, Node } from 'cc'; +import { TargetDelegate } from './light-probe-controller'; +export default class LightProbeTetrahedronController extends ControllerBase { + targetDelegate: TargetDelegate<MeshRenderer>; + static Count: number; + static get Name(): string; + static ProbeColor: Color; + static LineColor: Color; + protected _lockSize: boolean; + private _isInitialized; + private _probeSphere; + private _innerTetrahedron; + private _probeSphereNodes; + private _currentTetrahedronIndex; + private _probeSHData; + constructor(rootNode: Node, targetDelegate: TargetDelegate<MeshRenderer>); + initShape(): void; + private initProbeSphere; + show(): void; + updateController(): void; + updateInnerTetrahedron(tetrahedronIndex: number): void; + clearLayer(node: Node): void; + getProbesData(): void; + getTetrahedronIndex(): number; + adjustControllerSize(): void; +} +//# sourceMappingURL=light-probe-tetrahedron-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.d.ts.map new file mode 100644 index 0000000..110a137 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"light-probe-tetrahedron-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/light-probe-tetrahedron-controller.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EACH,KAAK,EAIL,YAAY,EAGZ,IAAI,EAOP,MAAM,IAAI,CAAC;AACZ,OAA6B,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQhF,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,cAAc;IAuB5D,cAAc,EAAE,cAAc,CAAC,YAAY,CAAC;IAtBvD,MAAM,CAAC,KAAK,SAAK;IAEjB,MAAM,KAAK,IAAI,IAAI,MAAM,CAExB;IAED,MAAM,CAAC,UAAU,QAAuB;IACxC,MAAM,CAAC,SAAS,QAAuB;IAGvC,SAAS,CAAC,SAAS,UAAQ;IAG3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAqD;IACzE,OAAO,CAAC,iBAAiB,CAA0D;IACnF,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,YAAY,CAA0C;gBAG1D,QAAQ,EAAE,IAAI,EACP,cAAc,EAAE,cAAc,CAAC,YAAY,CAAC;IAOvD,SAAS;IAaT,OAAO,CAAC,eAAe;IA8BvB,IAAI;IAMJ,gBAAgB;IAShB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM;IA+D/C,UAAU,CAAC,IAAI,EAAE,IAAI;IAKrB,aAAa;IAIb,mBAAmB,IAAI,MAAM;IAY7B,oBAAoB;CAYvB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/line-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/line-controller.d.ts new file mode 100644 index 0000000..1410ff2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/line-controller.d.ts @@ -0,0 +1,14 @@ +import ControllerBase from './controller-base'; +import { Color, Node, Vec3 } from 'cc'; +declare class LineController extends ControllerBase { + private _lineNode; + private _lineMR; + constructor(rootNode: Node); + initShape(): void; + setColor(color: Color): void; + setOpacity(opacity: number): void; + createLineNode(startPos: Vec3, endPos: Vec3, name: string, color: Color): Node; + updateData(startPos: Vec3, endPos: Vec3): void; +} +export default LineController; +//# sourceMappingURL=line-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/line-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/line-controller.d.ts.map new file mode 100644 index 0000000..86e6adf --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/line-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"line-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/line-controller.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAcrD,cAAM,cAAe,SAAQ,cAAc;IACvC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAA6B;gBAEhC,QAAQ,EAAE,IAAI;IAK1B,SAAS;IAMT,QAAQ,CAAC,KAAK,EAAE,KAAK;IAKrB,UAAU,CAAC,OAAO,EAAE,MAAM;IAI1B,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAQvE,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;CAK1C;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lines-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lines-controller.d.ts new file mode 100644 index 0000000..64977df --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lines-controller.d.ts @@ -0,0 +1,15 @@ +import ControllerBase from './controller-base'; +import { Color, Node, Vec3 } from 'cc'; +declare class LinesController extends ControllerBase { + private _linesNode; + private _linesMR; + private _dashed; + constructor(rootNode: Node, opts?: any); + initShape(opts?: any): void; + setColor(color: Color): void; + setOpacity(opacity: number): void; + updateData(vertices: Vec3[], indices: number[]): void; + clearData(): void; +} +export default LinesController; +//# sourceMappingURL=lines-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lines-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lines-controller.d.ts.map new file mode 100644 index 0000000..97c7b26 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lines-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"lines-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/lines-controller.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAarD,cAAM,eAAgB,SAAQ,cAAc;IACxC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAE,GAAQ;IAK1C,SAAS,CAAC,IAAI,GAAE,GAAQ;IAcxB,QAAQ,CAAC,KAAK,EAAE,KAAK;IAKrB,UAAU,CAAC,OAAO,EAAE,MAAM;IAI1B,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;IAqB9C,SAAS;CAIZ;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lod-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lod-controller.d.ts new file mode 100644 index 0000000..a4cf11c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lod-controller.d.ts @@ -0,0 +1,19 @@ +import { Color, LabelComponent, Material, Size, Sprite, UITransform, Vec2, Vec3 } from 'cc'; +import { RectangleController } from './rectangle-controller'; +export default class LODController extends RectangleController { + static readonly BACKGROUND_CONTENT_SIZE: Size; + static readonly BACKGROUND_COLOR: Color; + static readonly FONT_COLOR: Color; + static readonly FONT_SIZE = 80; + static readonly LINE_HEIGHT = 80; + label: LabelComponent; + labelUITransform: UITransform; + sprite: Sprite; + spriteUITransform: UITransform; + spriteMaterial: Material; + setString(str: string): void; + initShape(): void; + updateSize(center: Readonly<Vec3>, size: Vec2): void; + adjustControllerSize(): void; +} +//# sourceMappingURL=lod-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lod-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lod-controller.d.ts.map new file mode 100644 index 0000000..b8e9e84 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/lod-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"lod-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/lod-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAS,cAAc,EAAE,QAAQ,EAAQ,IAAI,EAAE,MAAM,EAAe,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAEpI,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,mBAAmB;IAC1D,MAAM,CAAC,QAAQ,CAAC,uBAAuB,OAAqC;IAC5E,MAAM,CAAC,QAAQ,CAAC,gBAAgB,QAAiC;IACjE,MAAM,CAAC,QAAQ,CAAC,UAAU,QAAiC;IAC3D,MAAM,CAAC,QAAQ,CAAC,SAAS,MAAM;IAC/B,MAAM,CAAC,QAAQ,CAAC,WAAW,MAAM;IAEjC,KAAK,EAAG,cAAc,CAAC;IACvB,gBAAgB,EAAG,WAAW,CAAC;IAC/B,MAAM,EAAG,MAAM,CAAC;IAChB,iBAAiB,EAAG,WAAW,CAAC;IAChC,cAAc,EAAG,QAAQ,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE,MAAM;IAGrB,SAAS;IAkCT,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAS7C,oBAAoB;CAavB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/mesh-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/mesh-controller.d.ts new file mode 100644 index 0000000..3b5598a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/mesh-controller.d.ts @@ -0,0 +1,11 @@ +import { Node } from 'cc'; +import ControllerBase from './controller-base'; +declare class MeshController extends ControllerBase { + private _linesNode; + private _linesMR; + constructor(rootNode: Node); + initShape(): void; + updateData(points: number[], indices: number[]): void; +} +export default MeshController; +//# sourceMappingURL=mesh-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/mesh-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/mesh-controller.d.ts.map new file mode 100644 index 0000000..871154c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/mesh-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mesh-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/mesh-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAQ,MAAM,IAAI,CAAC;AAErD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAU/C,cAAM,cAAe,SAAQ,cAAc;IACvC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,QAAQ,CAA2B;gBAC/B,QAAQ,EAAE,IAAI;IAM1B,SAAS;IAOT,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;CAIjD;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/particlesystem-cone-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/particlesystem-cone-controller.d.ts new file mode 100644 index 0000000..dc7641f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/particlesystem-cone-controller.d.ts @@ -0,0 +1,42 @@ +import EditableController from './editable-controller'; +import { IControlMouseEvent } from '../../../defines'; +import { Node, Vec3, Color } from 'cc'; +declare class ParticleSystemConeController extends EditableController { + private _oriDir; + private _center; + private _radius; + private _height; + private _bottomRadius; + private _deltaRadius; + private _deltaHeight; + private _deltaBottomRadius; + private _coneLineNode; + private _circleNode; + private _bottomCircleNode; + private _circleFromDir; + private _coneLineMR; + private _circleMR; + private _bottomCircleMR; + private _mouseDeltaPos; + private _curDistScalar; + private _axisDir; + constructor(rootNode: Node); + get radius(): number; + set radius(value: number); + get height(): number; + set height(value: number); + setColor(color: Color): void; + _updateEditHandle(axisName: string): void; + initShape(): void; + getConeLineData(): import("../../../defines").IMeshPrimitive; + updateSize(center: Vec3, radius: number, height: number, bottomRadius: number): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaRadius(): number; + getDeltaHeight(): number; + getDeltaBottomRadius(): number; +} +export default ParticleSystemConeController; +//# sourceMappingURL=particlesystem-cone-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/particlesystem-cone-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/particlesystem-cone-controller.d.ts.map new file mode 100644 index 0000000..5f46f32 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/particlesystem-cone-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"particlesystem-cone-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/particlesystem-cone-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAsB,KAAK,EAAE,MAAM,IAAI,CAAC;AAK3D,cAAM,4BAA6B,SAAQ,kBAAkB;IACzD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,aAAa,CAAO;IAC5B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,EAAE,IAAI;IAsB1B,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,QAAQ,CAAC,KAAK,EAAE,KAAK;IAUrB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAsBlC,SAAS;IAmCT,eAAe;IA+Bf,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAkC7E,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAYrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAwBrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,cAAc;IAId,cAAc;IAId,oBAAoB;CAGvB;AAED,eAAe,4BAA4B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/plane-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/plane-controller.d.ts new file mode 100644 index 0000000..470cd32 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/plane-controller.d.ts @@ -0,0 +1,11 @@ +import { Node, Vec3 } from 'cc'; +import ControllerBase from './controller-base'; +declare class PlaneController extends ControllerBase { + private _planeNode; + private _arrowNode; + constructor(rootNode: Node); + initShape(): void; + updateData(center: Vec3, normal: Vec3): void; +} +export default PlaneController; +//# sourceMappingURL=plane-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/plane-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/plane-controller.d.ts.map new file mode 100644 index 0000000..8936851 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/plane-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"plane-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/plane-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAQ,IAAI,EAAE,MAAM,IAAI,CAAC;AAE7C,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAU/C,cAAM,eAAgB,SAAQ,cAAc;IACxC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,UAAU,CAAmB;gBACzB,QAAQ,EAAE,IAAI;IAQ1B,SAAS;IAWT,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;CAUxC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/point-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/point-controller.d.ts new file mode 100644 index 0000000..a8034ba --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/point-controller.d.ts @@ -0,0 +1,11 @@ +import { Color, Node, Vec3 } from 'cc'; +import ControllerBase from './controller-base'; +declare class PointController extends ControllerBase { + private _pointNode; + constructor(rootNode: Node); + setColor(color: Color): void; + initShape(): void; + updateData(pos: Vec3): void; +} +export default PointController; +//# sourceMappingURL=point-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/point-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/point-controller.d.ts.map new file mode 100644 index 0000000..0de4633 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/point-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"point-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/point-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAEvC,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAQ/C,cAAM,eAAgB,SAAQ,cAAc;IACxC,OAAO,CAAC,UAAU,CAAmB;gBACzB,QAAQ,EAAE,IAAI;IAM1B,QAAQ,CAAC,KAAK,EAAE,KAAK;IAKrB,SAAS;IAMT,UAAU,CAAC,GAAG,EAAE,IAAI;CAGvB;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/polygon-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/polygon-controller.d.ts new file mode 100644 index 0000000..889b069 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/polygon-controller.d.ts @@ -0,0 +1,51 @@ +import { Node, Vec3, Color } from 'cc'; +import { IControlMouseEvent, IHandleData } from '../../../defines'; +import EditableController from './editable-controller'; +declare enum PolygonHandleType { + None = "none", + Point = "point", + Line = "line", + Area = "area" +} +interface IPolygonHandleData { + type: string; + deltaPos?: Vec3; + index: number; + hitPos?: Vec3; +} +declare class PolygonController extends EditableController { + static PolygonHandleType: typeof PolygonHandleType; + private _panPlane; + private _points; + private _mouseDownOnPlanePos; + private _curHandleData; + private _lineGroup; + private _pointsHandleData; + private _linesHandleData; + private _hitPoint; + private _areaNode; + private _areaMR; + private _areaOpacity; + get points(): Vec3[]; + constructor(rootNode: Node); + initShape(): void; + onInitEditHandles(): void; + showEditHandles(): void; + hideEditHandles(): void; + createPolygonAreaHandle(): void; + setColor(color: Color): void; + updateData(points: Vec3[]): void; + resetEditHandlesFromPoints(points: Vec3[]): void; + createLineHandle(startPos: Vec3, endPos: Vec3, index: number): IHandleData; + _updateLinesHandle(): void; + _updateEditHandle(handleName: string): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(event: IControlMouseEvent): void; + getHitPoint(): Vec3 | null; + getHandleData(): IPolygonHandleData; +} +export { PolygonController, IPolygonHandleData }; +//# sourceMappingURL=polygon-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/polygon-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/polygon-controller.d.ts.map new file mode 100644 index 0000000..db5a43d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/polygon-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"polygon-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/polygon-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAA0B,MAAM,IAAI,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAmBvD,aAAK,iBAAiB;IAClB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED,UAAU,kBAAkB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,IAAI,CAAC;CACjB;AAQD,cAAM,iBAAkB,SAAQ,kBAAkB;IAC9C,OAAc,iBAAiB,2BAAqB;IACpD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,cAAc,CAAyF;IAC/G,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAAM;IAE1B,IAAW,MAAM,WAEhB;gBAEW,QAAQ,EAAE,IAAI;IAO1B,SAAS;IAOT,iBAAiB;IAajB,eAAe;IAOf,eAAe;IAOf,uBAAuB;IAYvB,QAAQ,CAAC,KAAK,EAAE,KAAK;IASrB,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;IAIzB,0BAA0B,CAAC,MAAM,EAAE,IAAI,EAAE;IA6EzC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;IAM5D,kBAAkB;IAWlB,iBAAiB,CAAC,UAAU,EAAE,MAAM;IAgBpC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IA8BrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IA+BrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAcnC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAwBnC,UAAU,CAAC,KAAK,EAAE,kBAAkB;IAOpC,WAAW;IAIX,aAAa;CAGhB;AAED,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/position-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/position-controller.d.ts new file mode 100644 index 0000000..e9f10c0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/position-controller.d.ts @@ -0,0 +1,43 @@ +import ControllerBase from './controller-base'; +import { IControlMouseEvent } from '../../../defines'; +import { Vec3, Node, Color, Vec2 } from 'cc'; +declare class PositionController extends ControllerBase { + private _deltaPosition; + private _mouseDownPos; + private _ctrlPlaneGroup; + private _mouseDownAxis; + private _curDistScalar; + private _dragPanPlane; + private _isInPanDrag; + private _mouseDownOnPlanePos; + private _snapDragPlane; + static readonly baseArrowHeadHeight = 12.5; + static readonly baseArrowHeadRadius = 5; + static readonly baseArrowBodyHeight = 70; + static readonly planeWidth = 12.5; + static readonly scale2D: Vec3; + static readonly scale3D: Vec3; + constructor(rootNode: Node); + onCameraFovChanged: (fov: number) => void; + onDimensionChanged(): void; + createAxis(axisName: string, color: Color, rotation: Vec3): void; + createControlPlane(axisName: string, color: Color, rotation: Vec3): void; + createSnapPlane(): void; + initShape(): void; + getDeltaPosition(): Vec3; + onMouseDown(event: IControlMouseEvent): void; + getPanPlane(axisName: string): Node | null | undefined; + getAlignAxisDeltaPosition(axisName: string, curMouseDeltaPos: Vec2): any; + getPositionOnPanPlane(hitPos: Vec3, x: number, y: number, panPlane: Node): boolean; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(): void; + onShow(): void; + onHide(): void; + isSnaping(): boolean; + updateSnapUI(active: boolean): void; +} +export default PositionController; +//# sourceMappingURL=position-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/position-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/position-controller.d.ts.map new file mode 100644 index 0000000..c684094 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/position-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"position-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/position-controller.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAgC,MAAM,IAAI,CAAC;AAa3E,cAAM,kBAAmB,SAAQ,cAAc;IAC3C,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,cAAc,CAAqB;IAC3C,MAAM,CAAC,QAAQ,CAAC,mBAAmB,QAAQ;IAC3C,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAM;IACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,QAAQ;IAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,OAAqB;IAC5C,MAAM,CAAC,QAAQ,CAAC,OAAO,OAAqB;gBAChC,QAAQ,EAAE,IAAI;IAOnB,kBAAkB,QAAS,MAAM,UAMtC;IAEF,kBAAkB;IAKlB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI;IASzD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI;IA6BjE,eAAe;IAQf,SAAS;IAgCT,gBAAgB;IAIhB,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAmCrC,WAAW,CAAC,QAAQ,EAAE,MAAM;IAgC5B,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI;IASlE,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI;IAexE,WAAW,CAAC,KAAK,EAAE,kBAAkB;IA4CrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAkBnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAItC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAInC,UAAU;IAIV,MAAM;IAgBN,MAAM;IAIN,SAAS,IAAI,OAAO;IAIpB,YAAY,CAAC,MAAM,EAAE,OAAO;CAkB/B;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/quad-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/quad-controller.d.ts new file mode 100644 index 0000000..deedf90 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/quad-controller.d.ts @@ -0,0 +1,25 @@ +import ControllerBase from './controller-base'; +import { IControlMouseEvent } from '../../../defines'; +import { Node, Color } from 'cc'; +declare class QuadController extends ControllerBase { + protected _quadNode: Node | null; + private _defaultSize; + private _size; + private _hoverColor; + constructor(rootNode: Node, opts?: any); + get hoverColor(): Color; + set hoverColor(value: Color); + initShape(opts?: any): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(): void; + onEditorCameraMoved(): void; + onShow(): void; + onHide(): void; + updateSize(size: number): void; + setMaterialProperty(name: string, value: any): void; +} +export default QuadController; +//# sourceMappingURL=quad-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/quad-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/quad-controller.d.ts.map new file mode 100644 index 0000000..a736c11 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/quad-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"quad-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/quad-controller.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAQ,MAAM,IAAI,CAAC;AAKvC,cAAM,cAAe,SAAQ,cAAc;IACvC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IACxC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,WAAW,CAAsB;gBAE7B,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG;IAStC,IAAI,UAAU,UAEb;IACD,IAAI,UAAU,CAAC,KAAK,OAAA,EAEnB;IAED,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG;IAgBpB,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAMrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAMrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAEnC,UAAU;IAEV,mBAAmB;IAQnB,MAAM;IASN,MAAM;IAON,UAAU,CAAC,IAAI,EAAE,MAAM;IAMvB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;CAG/C;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rectangle-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rectangle-controller.d.ts new file mode 100644 index 0000000..e989a05 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rectangle-controller.d.ts @@ -0,0 +1,64 @@ +import EditableController from './editable-controller'; +import { Node, Vec3, Vec2, Color } from 'cc'; +import { IRectangleControllerOption, IControlMouseEvent } from '../../../defines'; +declare enum RectHandleType { + None = "none", + TopLeft = "tl", + TopRight = "tr", + BottomLeft = "bl", + BottomRight = "br", + Left = "neg_x", + Right = "x", + Top = "y", + Bottom = "neg_y", + Area = "area", + Anchor = "anchor" +} +declare type AxisDir = { + x?: Vec3; + y?: Vec3; +} & Partial<Record<RectHandleType, Vec3>>; +declare class RectangleController extends EditableController { + static RectHandleType: typeof RectHandleType; + anchorLocked: boolean; + contentSizeLocked: boolean; + private _center; + protected _size: Vec2; + private _deltaSize; + private _curHandleType; + private _rectNode; + private _panPlane; + private _areaNode; + private _areaMR; + private _rectMR; + private _mouseDownOnPlanePos; + private _areaColor; + private _areaOpacity; + private _axisDir; + constructor(rootNode: Node, opts?: IRectangleControllerOption); + setColor(color: Color): void; + setOpacity(opacity: number): void; + setAreaColor(color: Color): void; + setAreaOpacity(opacity: number): void; + isBorder(axisName: string): boolean; + isCorner(axisName: string): boolean; + isAreaOrAnchor(handleName: string): boolean; + onInitEditHandles(): void; + showEditHandles(): void; + hideEditHandles(): void; + _updateEditHandle(axisName: keyof AxisDir): void; + initShape(): void; + updateSize(center: Readonly<Vec3>, size: Vec2): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(): void; + onHide(): void; + getDeltaSize(): Vec3; + getCurHandleType(): RectHandleType; + reset(): void; +} +export { RectangleController, RectHandleType }; +//# sourceMappingURL=rectangle-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rectangle-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rectangle-controller.d.ts.map new file mode 100644 index 0000000..3fb1e1d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rectangle-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"rectangle-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/rectangle-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAsB,MAAM,IAAI,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAkBlF,aAAK,cAAc;IACf,IAAI,SAAS;IACb,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,UAAU,OAAO;IACjB,WAAW,OAAO;IAElB,IAAI,UAAU;IACd,KAAK,MAAM;IACX,GAAG,MAAM;IACT,MAAM,UAAU;IAEhB,IAAI,SAAS;IACb,MAAM,WAAW;CACpB;AAED,aAAK,OAAO,GAAG;IACX,CAAC,CAAC,EAAE,IAAI,CAAC;IACT,CAAC,CAAC,EAAE,IAAI,CAAA;CACX,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AAE1C,cAAM,mBAAoB,SAAQ,kBAAkB;IAChD,OAAc,cAAc,wBAAkB;IACvC,YAAY,UAAS;IACrB,iBAAiB,UAAS;IAEjC,OAAO,CAAC,OAAO,CAAoB;IACnC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAsB;IAC3C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAe;gBAEnB,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAE,0BAA+B;IAuBjE,QAAQ,CAAC,KAAK,EAAE,KAAK;IAOrB,UAAU,CAAC,OAAO,EAAE,MAAM;IAM1B,YAAY,CAAC,KAAK,EAAE,KAAK;IAOzB,cAAc,CAAC,OAAO,EAAE,MAAM;IAO9B,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAazB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAazB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAG3C,iBAAiB;IAqBjB,eAAe;IAOf,eAAe;IAOf,iBAAiB,CAAC,QAAQ,EAAE,MAAM,OAAO;IAoBzC,SAAS;IAQT,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAyB7C,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAkBrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAmDrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAQnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAMtC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAgBnC,UAAU;IAIV,MAAM;IAQN,YAAY;IAKZ,gBAAgB;IAGhB,KAAK;CAKR;AAED,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rotation-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rotation-controller.d.ts new file mode 100644 index 0000000..b92b8be --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rotation-controller.d.ts @@ -0,0 +1,56 @@ +import ControllerBase from './controller-base'; +import { IControlMouseEvent } from '../../../defines'; +import { Node, Quat, Vec3, Color } from 'cc'; +declare class RotationController extends ControllerBase { + private _deltaRotation; + private _rotFactor; + private _baseRadius; + private _tubeRadius; + private _circleBorderNode; + private _circleBorderMR; + private _cutoffNode; + private _cutoffMR; + private _indicator; + private _mouseDownRot; + private _mouseDeltaPos; + private _indicatorStartDir; + private _rotateAlignDir; + private _transformAxisDir; + private _axisDir; + private _deltaAngle; + private _handleAxisDir; + private _graduationNode; + private _graduationMR; + get transformAxisDir(): Vec3; + get indicatorStartDir(): Vec3; + constructor(rootNode: Node); + createRotationShape(axisName: string, torusRot: Vec3, arrowRot: Vec3, arcFromDir: Vec3, arcRadian: number, color: Color): void; + createGraduationShape(parent: Node, color?: Color): void; + updateGraduation(normal: Vec3, fromDir: Vec3, graduationInterval: number): void; + setGraduation(graduationInterval: number): void; + showGraduation(): void; + hideGraduation(): void; + initShape(): void; + isHitOnAxisArrow(hitNode: Node, axisName: string): boolean; + isInCutoffBack(axisName: string, x: number, y: number): boolean; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + /** + * 重置所有 handle 的节点的可见性 + */ + protected resetAllHandelNodes(): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(): void; + setNodesOpacity(nodes: Node[], opacity: number): void; + getDeltaRotation(): Quat; + getDeltaAngle(): number; + getHandleAxisDir(): Vec3; + onShow(): void; + onHide(): void; + updateRotationIndicator(normal: Vec3, fromDir: Vec3, radian: number): void; + adjustControllerSize(): void; +} +export default RotationController; +//# sourceMappingURL=rotation-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rotation-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rotation-controller.d.ts.map new file mode 100644 index 0000000..b2508f5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/rotation-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"rotation-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/rotation-controller.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAItD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAA4B,MAAM,IAAI,CAAC;AAyBvE,cAAM,kBAAmB,SAAQ,cAAc;IAC3C,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,aAAa,CAA6B;IAElD,IAAW,gBAAgB,IAAI,IAAI,CAElC;IAED,IAAW,iBAAiB,IAAI,IAAI,CAEnC;gBAEW,QAAQ,EAAE,IAAI;IAU1B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IA6CvH,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK;IAQjD,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM;IAsCjE,aAAa,CAAC,kBAAkB,EAAE,MAAM;IAKxC,cAAc;IAMd,cAAc;IAMrB,SAAS;IAmET,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM;IAchD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAmBrD,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAkErC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAwCrC;;OAEG;IACH,SAAS,CAAC,mBAAmB;IAgB7B,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAkBnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAItC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAcnC,UAAU;IAQV,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM;IAM9C,gBAAgB;IAIhB,aAAa;IAIb,gBAAgB;IAIhB,MAAM;IAwBN,MAAM;IASC,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAa1E,oBAAoB;CA8CvB;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/scale-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/scale-controller.d.ts new file mode 100644 index 0000000..3222ae7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/scale-controller.d.ts @@ -0,0 +1,37 @@ +import ControllerBase from './controller-base'; +import { IControlMouseEvent } from '../../../defines'; +import { Node, Vec3, Color, Vec2 } from 'cc'; +declare class ScaleController extends ControllerBase { + private _deltaScale; + private _scaleFactor; + static readonly _baseCubeSize = 12.5; + static readonly _baseAxisLength = 70; + static readonly scale2D: Vec3; + static readonly scale3D: Vec3; + private _axisSliderNodes; + private _mouseDeltaPos; + private _cubeDragValue; + private _moveAxisName; + private _axisDirMap; + get scaleFactor(): number; + get moveAxisName(): string; + constructor(rootNode: Node); + onCameraFovChanged: (fov: number) => void; + onDimensionChanged(): void; + createAxis(axisName: string, color: Color, rotation: Vec3): void; + initShape(): void; + onAxisSliderMove(axisName: string, deltaDist: number): void; + getAlignAxisDeltaScale(axisName: string, curMouseDeltaPos: Vec2): any; + getAllAxisDeltaScale(axisName: string, moveDelta: Vec2): any; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(): void; + getDeltaScale(): Vec3; + onShow(): void; + onHide(): void; +} +export default ScaleController; +//# sourceMappingURL=scale-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/scale-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/scale-controller.d.ts.map new file mode 100644 index 0000000..073d76a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/scale-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scale-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/scale-controller.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAQ,MAAM,IAAI,CAAC;AAQnD,cAAM,eAAgB,SAAQ,cAAc;IACxC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAO;IAC3B,MAAM,CAAC,QAAQ,CAAC,aAAa,QAAQ;IACrC,MAAM,CAAC,QAAQ,CAAC,eAAe,MAAM;IACrC,MAAM,CAAC,QAAQ,CAAC,OAAO,OAAqB;IAC5C,MAAM,CAAC,QAAQ,CAAC,OAAO,OAAqB;IAC5C,OAAO,CAAC,gBAAgB,CAAW;IACnC,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,WAAW,CAA6B;IAEhD,IAAW,WAAW,WAErB;IAED,IAAW,YAAY,WAEtB;gBAEW,QAAQ,EAAE,IAAI;IAWnB,kBAAkB,QAAS,MAAM,UAMtC;IAEF,kBAAkB;IAIlB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI;IAgBzD,SAAS;IAkBF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAkB3D,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI;IAc/D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI;IA2BtD,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAerC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IA4BrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAUnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAItC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAInC,UAAU;IAIV,aAAa;IAIb,MAAM;IAaN,MAAM;CAGT;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/sphere-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/sphere-controller.d.ts new file mode 100644 index 0000000..1688259 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/sphere-controller.d.ts @@ -0,0 +1,34 @@ +import EditableController from './editable-controller'; +import { IControlMouseEvent } from '../../../defines'; +import { Node, Vec3, Color, MeshRenderer } from 'cc'; +declare class SphereController extends EditableController { + private _center; + private _radius; + private _deltaRadius; + private _circleDataMap; + private _borderCircle; + private _borderCircelMR; + private _mouseDeltaPos; + private _curDistScalar; + private _controlDir; + constructor(rootNode: Node); + get radius(): number; + set radius(value: number); + setColor(color: Color): void; + createCircleByAxis(axisName: string, fromAxisName: string, color: Color): void; + createBorderCircle(): void; + _updateEditHandle(axisName: string): void; + initShape(): void; + updateSize(center: Vec3, radius: number): void; + updateShape(): void; + updateArcMesh(model: MeshRenderer, center: Vec3, normal: Vec3, from: Vec3, radian: number, radius: number): void; + onEditorCameraMoved(): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onMouseLeave(event: IControlMouseEvent): void; + getDeltaRadius(): number; + getControlDir(): Vec3; +} +export default SphereController; +//# sourceMappingURL=sphere-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/sphere-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/sphere-controller.d.ts.map new file mode 100644 index 0000000..562f8a6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/sphere-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"sphere-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/sphere-controller.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,IAAI,EAAQ,IAAI,EAAE,KAAK,EAAE,YAAY,EAAc,MAAM,IAAI,CAAC;AAavE,cAAM,gBAAiB,SAAQ,kBAAkB;IAC7C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAoB;gBAE3B,QAAQ,EAAE,IAAI;IAU1B,IAAI,MAAM,WAET;IACD,IAAI,MAAM,CAAC,KAAK,QAAA,EAEf;IAED,QAAQ,CAAC,KAAK,EAAE,KAAK;IAgBrB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAoBvE,kBAAkB;IAOlB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAalC,SAAS;IAeT,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAWvC,WAAW;IA8EX,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMzG,mBAAmB;IAKnB,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAUrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAerC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,YAAY,CAAC,KAAK,EAAE,kBAAkB;IAKtC,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/terrain-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/terrain-controller.d.ts new file mode 100644 index 0000000..d039257 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/terrain-controller.d.ts @@ -0,0 +1,20 @@ +import ControllerBase from './controller-base'; +import { IControlMouseEvent } from '../../../defines'; +import { Node } from 'cc'; +declare class TerrainController extends ControllerBase { + private _quadNode; + private _quadMR; + private _size; + constructor(rootNode: Node, opts?: any); + initShape(opts: any): void; + onMouseDown(event: IControlMouseEvent): void; + onMouseMove(event: IControlMouseEvent): void; + onMouseUp(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(event: IControlMouseEvent): void; + onShow(): void; + onHide(): void; + updateSize(width: number, height: number): void; +} +export default TerrainController; +//# sourceMappingURL=terrain-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/terrain-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/terrain-controller.d.ts.map new file mode 100644 index 0000000..85226eb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/terrain-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terrain-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/terrain-controller.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,IAAI,EAAgB,MAAM,IAAI,CAAC;AAOxC,cAAM,iBAAkB,SAAQ,cAAc;IAC1C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAAM;gBACP,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAE,GAAQ;IAK1C,SAAS,CAAC,IAAI,EAAE,GAAG;IAYnB,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAMrC,WAAW,CAAC,KAAK,EAAE,kBAAkB;IAMrC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAMnC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAEnC,UAAU,CAAC,KAAK,EAAE,kBAAkB;IAMpC,MAAM;IAON,MAAM;IAON,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQ3C;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/tetrahedron-cotroller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/tetrahedron-cotroller.d.ts new file mode 100644 index 0000000..d4182d0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/tetrahedron-cotroller.d.ts @@ -0,0 +1,13 @@ +import { Node, Vec3, Color } from 'cc'; +import ControllerBase from './controller-base'; +declare class TetrahedronController extends ControllerBase { + private _edgesNode; + private _edgesMR; + private _indices; + constructor(rootNode: Node); + setColor(color: Color): void; + initShape(): void; + updateData(v0: Vec3, v1: Vec3, v2: Vec3, v3: Vec3): void; +} +export default TetrahedronController; +//# sourceMappingURL=tetrahedron-cotroller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/tetrahedron-cotroller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/tetrahedron-cotroller.d.ts.map new file mode 100644 index 0000000..29dac65 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/tetrahedron-cotroller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tetrahedron-cotroller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/tetrahedron-cotroller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAGrD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAK/C,cAAM,qBAAsB,SAAQ,cAAc;IAC9C,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAkD;gBAEtD,QAAQ,EAAE,IAAI;IAKnB,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,SAAS;IAQT,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI;CAIpD;AAED,eAAe,qBAAqB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/triangle-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/triangle-controller.d.ts new file mode 100644 index 0000000..e87512f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/triangle-controller.d.ts @@ -0,0 +1,14 @@ +import { Node, Vec3, Color } from 'cc'; +import ControllerBase from './controller-base'; +declare class TriangleController extends ControllerBase { + private _edgesNode; + private _edgesMR; + private _indices; + constructor(rootNode: Node); + setColor(color: Color): void; + initShape(): void; + updateData(v0: Vec3, v1: Vec3, v2: Vec3): void; + getDistScalar(): number; +} +export default TriangleController; +//# sourceMappingURL=triangle-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/triangle-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/triangle-controller.d.ts.map new file mode 100644 index 0000000..ff8718e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/triangle-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"triangle-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/triangle-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAGrD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAK/C,cAAM,kBAAmB,SAAQ,cAAc;IAC3C,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,QAAQ,EAAE,IAAI;IAKnB,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,SAAS;IAQT,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI;IAMvC,aAAa;CAGhB;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/world-axis-controller.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/world-axis-controller.d.ts new file mode 100644 index 0000000..213f1f0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/world-axis-controller.d.ts @@ -0,0 +1,23 @@ +import ControllerBase from './controller-base'; +import { Node, Vec3, Camera, Color, Texture2D } from 'cc'; +import { IControlMouseEvent } from '../../../defines'; +declare class WorldAxisController extends ControllerBase { + private _defaultSize; + private _sceneGizmoCamera; + private _cameraOffset; + private _viewDist; + private _textNodeMap; + constructor(rootNode: Node, sceneGizmoCamera: Camera); + createAxis(axisName: string, color: Color, rotation: Vec3): void; + initShape(): void; + setTexture(node: Node, texture: Texture2D | null): void; + setTextureByUuid(node: Node, uuid: string): void; + createAxisText(axis: string, uuid: string, color: Color): void; + onMouseUp(event: IControlMouseEvent): void; + onHoverIn(event: IControlMouseEvent): void; + onHoverOut(): void; + onEditorCameraMoved(): void; + onCameraProjectionChanged(projection: number): void; +} +export default WorldAxisController; +//# sourceMappingURL=world-axis-controller.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/world-axis-controller.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/world-axis-controller.d.ts.map new file mode 100644 index 0000000..4e8c1c6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/controller/world-axis-controller.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"world-axis-controller.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/controller/world-axis-controller.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAQ,SAAS,EAAgB,MAAM,IAAI,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAkBtD,cAAM,mBAAoB,SAAQ,cAAc;IAC5C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,YAAY,CAA8C;gBAEtD,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM;IAOpD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI;IAmBzD,SAAS;IAiCT,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAIhD,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;IASzC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAUvD,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAgBnC,SAAS,CAAC,KAAK,EAAE,kBAAkB;IAInC,UAAU;IAIV,mBAAmB;IA4CZ,yBAAyB,CAAC,UAAU,EAAE,MAAM;CAiBtD;AAED,eAAe,mBAAmB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/gizmo-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/gizmo-base.d.ts new file mode 100644 index 0000000..19d8bb7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/gizmo-base.d.ts @@ -0,0 +1,59 @@ +import { Node } from 'cc'; +import { IChangeNodeOptions, ISceneKeyboardEvent } from '../../../../../../@types/private'; +declare class GizmoBase { + protected _hovering: boolean; + protected _selecting: boolean; + protected _editing: boolean; + protected _isInited: boolean; + protected _hidden: boolean; + protected _target: any; + protected _rootNode: any; + protected _isControlBegin: boolean; + protected _recorded: boolean; + protected onTargetUpdate?(): void; + protected init?(): void; + protected onShow?(): void; + protected onHide?(): void; + onUpdate?(deltaTime: number): void; + onDestroy?(): void; + onNodeChanged?(event: IChangeNodeOptions): void; + onKeyDown?(event: ISceneKeyboardEvent): void; + onKeyUp?(event: ISceneKeyboardEvent): void; + onCameraControlModeChanged?(mode: number): void; + shouldRegisterGizmoOperationEvent: boolean; + isNodeLocked(node: Node): boolean; + constructor(target: any); + get target(): any; + get hidden(): boolean; + set target(value: any); + layer(): string; + getGizmoRoot(): any; + onControlBegin(propPath: string | null): void; + onControlUpdate(propPath: string | null): void; + onControlEnd(propPath: string | null): void; + recordChanges(): void; + commitChanges(): void; + _checkLockStatus(): number; + targetValid(): any; + visible(): boolean; + hide(): void; + destroy(): void; + show(): void; + update(deltaTime: number): void; + get node(): any; + get nodes(): any[]; + get topNodes(): Node[]; + get selecting(): boolean; + set selecting(value: boolean); + get editing(): boolean; + set editing(value: boolean); + get hovering(): boolean; + set hovering(value: boolean); + getCompPropPath(propName: string): string | null; + protected onComponentChanged(node: Node): void; + onEditorCameraMoved(): void; + registerCameraMovedEvent(): void; + unregisterCameraMoveEvent(): void; +} +export default GizmoBase; +//# sourceMappingURL=gizmo-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/gizmo-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/gizmo-base.d.ts.map new file mode 100644 index 0000000..b98e520 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/gizmo-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-base.d.ts","sourceRoot":"","sources":["../../../../../../source/script/public/gizmos/3d/elements/gizmo-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAI1B,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAK3F,cAAM,SAAS;IACX,SAAS,CAAC,SAAS,UAAS;IAC5B,SAAS,CAAC,UAAU,UAAS;IAC7B,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,SAAS,UAAS;IAC5B,SAAS,CAAC,OAAO,UAAQ;IACzB,SAAS,CAAC,OAAO,EAAE,GAAG,CAAQ;IAC9B,SAAS,CAAC,SAAS,EAAE,GAAG,CAAQ;IAChC,SAAS,CAAC,eAAe,UAAS;IAClC,SAAS,CAAC,SAAS,UAAS;IAC5B,SAAS,CAAC,cAAc,CAAC,IAAI,IAAI;IACjC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI;IACvB,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI;IACzB,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI;IAClB,QAAQ,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAClC,SAAS,CAAC,IAAI,IAAI;IAClB,aAAa,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAC/C,SAAS,CAAC,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAC5C,OAAO,CAAC,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAC1C,0BAA0B,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC/C,iCAAiC,UAAS;IAEjD,YAAY,CAAC,IAAI,EAAE,IAAI;gBAIX,MAAM,EAAE,GAAG;IAIvB,IAAI,MAAM,QAET;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAGD,IAAI,MAAM,CAAC,KAAK,KAAA,EAYf;IAGD,KAAK;IAIL,YAAY;IAQZ,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAStC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMvC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IASpC,aAAa;IAQb,aAAa;IAWb,gBAAgB;IAIhB,WAAW;IASX,OAAO;IAKP,IAAI;IAYJ,OAAO;IASP,IAAI;IAmBJ,MAAM,CAAC,SAAS,EAAE,MAAM;IAMxB,IAAI,IAAI,QAaP;IAED,IAAI,KAAK,UAqBR;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAgBrB;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,SAAS,CAAC,KAAK,SAAA,EAElB;IAED,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,CAAC,KAAK,SAAA,EAEhB;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,QAAQ,CAAC,KAAK,SAAA,EAEjB;IAED,eAAe,CAAC,QAAQ,EAAE,MAAM;IAWhC,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAIhC,mBAAmB;IAEnB,wBAAwB;IAIxB,yBAAyB;CAGnC;AAED,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.d.ts new file mode 100644 index 0000000..026a67d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.d.ts @@ -0,0 +1,6 @@ +import IconGizmoBase from './icon-gizmo-base'; +declare class CameraIconGizmo extends IconGizmoBase { + createController(): void; +} +export default CameraIconGizmo; +//# sourceMappingURL=camera-icon-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.d.ts.map new file mode 100644 index 0000000..e96f0ac --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"camera-icon-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/icon-gizmo/camera-icon-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,cAAM,eAAgB,SAAQ,aAAa;IACvC,gBAAgB;CAInB;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.d.ts new file mode 100644 index 0000000..c7725a2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.d.ts @@ -0,0 +1,6 @@ +import IconGizmoBase from './icon-gizmo-base'; +declare class DirectionalLightIconGizmo extends IconGizmoBase { + createController(): void; +} +export default DirectionalLightIconGizmo; +//# sourceMappingURL=directional-light-icon-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.d.ts.map new file mode 100644 index 0000000..ead2e55 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"directional-light-icon-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/icon-gizmo/directional-light-icon-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,cAAM,yBAA0B,SAAQ,aAAa;IACjD,gBAAgB;CAInB;AAED,eAAe,yBAAyB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.d.ts new file mode 100644 index 0000000..f86dbe8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.d.ts @@ -0,0 +1,29 @@ +import GizmoBase from '../gizmo-base'; +import IconController from '../controller/icon-controller'; +import { IChangeNodeOptions } from '../../../../../../../@types/private'; +declare class IconGizmoBase extends GizmoBase { + protected _controller: IconController | null; + private _isIconGizmoVisible; + /** + * 用于控制选中某节点时是否隐藏icon + * 目前仅有light-probe-icon用到 + */ + disableOnSelected: boolean; + init(): void; + onShow(): void; + onHide(): void; + checkVisible(): boolean; + setIconGizmoVisible(visible: boolean): void; + setIconGizmo3D(value: boolean): void; + setIconGizmoSize(size: number): void; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(): void; + updateController(): void; + updateControllerTransform(): void; + onTargetUpdate(): void; + onNodeChanged(event: IChangeNodeOptions): void; +} +export default IconGizmoBase; +//# sourceMappingURL=icon-gizmo-base.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.d.ts.map new file mode 100644 index 0000000..4d34b62 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"icon-gizmo-base.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/icon-gizmo/icon-gizmo-base.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAK3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAMzE,cAAM,aAAc,SAAQ,SAAS;IACjC,SAAS,CAAC,WAAW,EAAE,cAAc,GAAC,IAAI,CAAQ;IAClD,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;;OAGG;IACI,iBAAiB,UAAS;IAEjC,IAAI;IAIJ,MAAM;IAON,MAAM;IAIN,YAAY;IASZ,mBAAmB,CAAC,OAAO,EAAE,OAAO;IAUpC,cAAc,CAAC,KAAK,EAAE,OAAO;IAW7B,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAI7B,gBAAgB;IAchB,qBAAqB;IAErB,qBAAqB;IAErB,mBAAmB;IAOnB,gBAAgB;IAIhB,yBAAyB;IAczB,cAAc;IAId,aAAa,CAAC,KAAK,EAAE,kBAAkB;CAG1C;AAED,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.d.ts new file mode 100644 index 0000000..be0c098 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.d.ts @@ -0,0 +1,6 @@ +import IconGizmoBase from './icon-gizmo-base'; +export default class LightProbeIconGizmo extends IconGizmoBase { + disableOnSelected: boolean; + createController(): void; +} +//# sourceMappingURL=light-probe-icon-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.d.ts.map new file mode 100644 index 0000000..5a7049b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"light-probe-icon-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/icon-gizmo/light-probe-icon-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,aAAa;IAC1D,iBAAiB,UAAQ;IAEzB,gBAAgB;CAInB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.d.ts new file mode 100644 index 0000000..b21a0a8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.d.ts @@ -0,0 +1,6 @@ +import IconGizmoBase from './icon-gizmo-base'; +declare class ParticleSystemIconGizmo extends IconGizmoBase { + createController(): void; +} +export default ParticleSystemIconGizmo; +//# sourceMappingURL=particle-system-icon-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.d.ts.map new file mode 100644 index 0000000..2e03dbd --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"particle-system-icon-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/icon-gizmo/particle-system-icon-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,cAAM,uBAAwB,SAAQ,aAAa;IAC/C,gBAAgB;CAInB;AAED,eAAe,uBAAuB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.d.ts new file mode 100644 index 0000000..34a175f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.d.ts @@ -0,0 +1,8 @@ +import IconGizmoBase from './icon-gizmo-base'; +declare class ReflectionProbeIconGizmo extends IconGizmoBase { + createController(): void; + updateController(): void; + show(): void; +} +export default ReflectionProbeIconGizmo; +//# sourceMappingURL=reflection-probe-icon-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.d.ts.map new file mode 100644 index 0000000..cf3ec19 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"reflection-probe-icon-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/icon-gizmo/reflection-probe-icon-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,cAAM,wBAAyB,SAAQ,aAAa;IAChD,gBAAgB;IAIhB,gBAAgB;IAMhB,IAAI;CAOP;AAED,eAAe,wBAAwB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.d.ts new file mode 100644 index 0000000..8ca5663 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.d.ts @@ -0,0 +1,7 @@ +import IconGizmoBase from './icon-gizmo-base'; +declare class SphereLightIconGizmo extends IconGizmoBase { + createController(): void; + updateController(): void; +} +export default SphereLightIconGizmo; +//# sourceMappingURL=sphere-light-icon-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.d.ts.map new file mode 100644 index 0000000..d1a4e7a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"sphere-light-icon-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/icon-gizmo/sphere-light-icon-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,cAAM,oBAAqB,SAAQ,aAAa;IAC5C,gBAAgB;IAOhB,gBAAgB;CAkBnB;AAED,eAAe,oBAAoB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.d.ts new file mode 100644 index 0000000..d9fda34 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.d.ts @@ -0,0 +1,7 @@ +import IconGizmoBase from './icon-gizmo-base'; +declare class SpotLightIconGizmo extends IconGizmoBase { + createController(): void; + updateController(): void; +} +export default SpotLightIconGizmo; +//# sourceMappingURL=spot-light-icon-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.d.ts.map new file mode 100644 index 0000000..78c210b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"spot-light-icon-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/icon-gizmo/spot-light-icon-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,cAAM,kBAAmB,SAAQ,aAAa;IAC1C,gBAAgB;IAKhB,gBAAgB;CAkBnB;AAED,eAAe,kBAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-event-listener.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-event-listener.d.ts new file mode 100644 index 0000000..be4afb8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-event-listener.d.ts @@ -0,0 +1,9 @@ +import { IControlMouseEvent } from '../../../defines'; +export default interface GizmoEventListener { + onControllerMouseDown?(event: IControlMouseEvent): void; + onControllerMouseMove?(event: IControlMouseEvent): void; + onControllerMouseUp?(event: IControlMouseEvent): void; + onControllerHoverIn?(event: IControlMouseEvent): void; + onControllerHoverOut?(event: IControlMouseEvent): void; +} +//# sourceMappingURL=gizmo-event-listener.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-event-listener.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-event-listener.d.ts.map new file mode 100644 index 0000000..c33dd6c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-event-listener.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-event-listener.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/listener/gizmo-event-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,CAAC,OAAO,WAAW,kBAAkB;IACvC,qBAAqB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxD,qBAAqB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxD,mBAAmB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtD,mBAAmB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtD,oBAAoB,CAAC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC1D"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.d.ts new file mode 100644 index 0000000..0368556 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.d.ts @@ -0,0 +1,20 @@ +import { Node } from 'cc'; +import { ISceneMouseEvent } from '../../../../../../../@types/private'; +import SimpleSet from '../../../utils/set-util'; +export default interface GizmoOperationEventListener { + /** + * @return Set<string> all nodes uuid + */ + shouldEmitNodes(): SimpleSet<string>; + select(nodes: SimpleSet<Node>): void; + selectAll(): void; + unselect(nodes: SimpleSet<Node>): void; + unselectAll(): void; + currentSelectedNodes(): SimpleSet<Node>; + duplicateCurrentSelectedProbes(): SimpleSet<Node>; + deleteCurrentSelectedProbes(): SimpleSet<Node>; + onNotGizmoMouseDown(event: ISceneMouseEvent): void; + onNotGizmoMouseUp(event: ISceneMouseEvent): void; + onNotGizmoMouseMove(event: ISceneMouseEvent): void; +} +//# sourceMappingURL=gizmo-operation-event-listener.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.d.ts.map new file mode 100644 index 0000000..660bcf8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-operation-event-listener.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/listener/gizmo-operation-event-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAEhD,MAAM,CAAC,OAAO,WAAW,2BAA2B;IAChD;;OAEG;IACH,eAAe,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,SAAS,IAAI,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,WAAW,IAAI,IAAI,CAAC;IACpB,oBAAoB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,8BAA8B,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;IACjD,2BAA2B,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnD,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjD,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.d.ts new file mode 100644 index 0000000..8df2b92 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.d.ts @@ -0,0 +1,6 @@ +export default interface LightProbeEditModeListener { + lightProbeEditModeChanged(mode: boolean): void; + lightProbeInfoChanged?(): void; + boundingBoxEditModeChanged?(mode: boolean): void; +} +//# sourceMappingURL=light-probe-edit-mode-listener.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.d.ts.map new file mode 100644 index 0000000..95f594a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"light-probe-edit-mode-listener.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/listener/light-probe-edit-mode-listener.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,WAAW,0BAA0B;IAC/C,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9C,qBAAqB,CAAC,IAAI,IAAI,CAAA;IAC9B,0BAA0B,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CACnD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/scene-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/scene-gizmo.d.ts new file mode 100644 index 0000000..307a483 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/scene-gizmo.d.ts @@ -0,0 +1,16 @@ +import Gizmo from './gizmo-base'; +declare class SceneGizmo extends Gizmo { + private _controller; + private _octreeBoundingBox; + private _octreeBBSize; + init(): void; + onShow(): void; + onHide(): void; + createController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + onTargetUpdate(): void; + onNodeChanged(): void; +} +export default SceneGizmo; +//# sourceMappingURL=scene-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/scene-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/scene-gizmo.d.ts.map new file mode 100644 index 0000000..9ccc997 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/scene-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scene-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../source/script/public/gizmos/3d/elements/scene-gizmo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,cAAc,CAAC;AAKjC,cAAM,UAAW,SAAQ,KAAK;IAC1B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,aAAa,CAAoB;IACzC,IAAI;IAKJ,MAAM;IAKN,MAAM;IAIN,gBAAgB;IAMhB,yBAAyB;IAIzB,oBAAoB;IAoBpB,cAAc;IAId,aAAa;CAGhB;AAED,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/position-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/position-gizmo.d.ts new file mode 100644 index 0000000..e9ae78d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/position-gizmo.d.ts @@ -0,0 +1,83 @@ +import { IVec3Like, Node, physics, Vec3 } from 'cc'; +import { ISceneKeyboardEvent, ISceneMouseEvent } from '../../../../../../../@types/private'; +import { IRaycastResult } from '../../../../../utils/raycast'; +import { IControlMouseEvent } from '../../../defines'; +import PositionController from '../controller/position-controller'; +import GizmoEventListener from '../listener/gizmo-event-listener'; +import TransformGizmo from './transform-gizmo'; +declare class PositionGizmo extends TransformGizmo { + protected _controller: PositionController | null; + private readonly _nodesWorldPosList; + private _snapMode; + private _snapMouseDown; + private _handler; + private _event; + private _mouseDown; + /** 顶点吸附时选中的顶点,相对于节点的位置 */ + private _nodeToSnapVertex; + private _gizmoMouseEventListeners; + getFirstLockNode(): Node | undefined; + isNodeLocked(node: Node): boolean; + init(): void; + layer(): string; + createController(): void; + get controller(): PositionController | null; + set controller(val: PositionController | null); + addMouseEventListener(listener: GizmoEventListener): string; + removeMouseEventListener(id: string): void; + onControllerMouseDown(event: IControlMouseEvent): void; + onControllerMouseMove(event: IControlMouseEvent): void; + onControllerMouseUp(event: IControlMouseEvent): void; + onGizmoKeyDown(event: ISceneKeyboardEvent): boolean; + onGizmoKeyUp(event: ISceneKeyboardEvent): boolean; + checkSnap(deltaPos: Vec3, snapStep: IVec3Like): void; + updateDataFromController(event: IControlMouseEvent): void; + updateControllerTransform(force?: boolean): void; + /** + * + * @param event + * @returns 返回false打断传递 + */ + onArrowDown(event: ISceneKeyboardEvent): boolean; + onArrowUp(event: ISceneKeyboardEvent): boolean; + onSurfaceSnapDown(event: ISceneKeyboardEvent): boolean; + onSurfaceSnapUp(event: ISceneKeyboardEvent): boolean; + onVertexSnapDown(event: ISceneKeyboardEvent): boolean; + onVertexSnapUp(event: ISceneKeyboardEvent): boolean; + updateSnapUI(isSnaping: boolean): void; + /** + * 计算吸附模式下的实际偏移值 + * @param pos 节点待添加的偏移量 + * @param event + */ + updateSnapPosition(pos: Vec3, event: IControlMouseEvent): void; + /** + * 顶点吸附模式下,左键没按下时,鼠标移动可以修改想要拖动的顶点 + * @param event + */ + updateVertexPos(event: ISceneMouseEvent): void; + onVertexSnapMove(event: ISceneMouseEvent): boolean; + /** + * 修改gizmo的位置 + * @param pos 新的位置 + */ + setGizmoPosition(pos: Vec3): void; + /** + * 计算吸附到目标点需要的delta + * @param out 输出结果 + * @param snapWorldPos 目标节点的世界坐标 + */ + calculateDeltaPos(out: Vec3, snapWorldPos: Vec3): void; + /** + * 获取非target中的节点(吸附时需要排除自身) + * @param resultNodes 射线检测结果,有两种1.无处理的结果 2.整理成nodeArray + * @param isNodeArray 是否时node Array + * @returns result resultnodes中符合条件的元素 + */ + getNodeExcludeTarget(resultNodes: Node[]): Node | null; + getNodeExcludeTarget(resultNodes: IRaycastResult[]): IRaycastResult | null; + getNodeExcludeTarget(resultNodes: physics.PhysicsRayResult[]): physics.PhysicsRayResult | null; + drawHitPoint(hitPoint: Vec3): void; +} +export default PositionGizmo; +//# sourceMappingURL=position-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/position-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/position-gizmo.d.ts.map new file mode 100644 index 0000000..c5df548 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/position-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"position-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/transform/position-gizmo.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rect-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rect-gizmo.d.ts new file mode 100644 index 0000000..e3d1b13 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rect-gizmo.d.ts @@ -0,0 +1,57 @@ +import { Color, Node, Vec2, Vec3 } from 'cc'; +import { ISceneKeyboardEvent } from '../../../../../../../@types/private'; +import { IControlMouseEvent } from '../../../defines'; +import { SnapGuidelineGroup } from '../../../utils/rect-transform-snapping'; +import LinesController from '../controller/lines-controller'; +import { RectangleController, RectHandleType as HandleType } from '../controller/rectangle-controller'; +import TransformGizmo from './transform-gizmo'; +declare class RectGizmo extends TransformGizmo { + protected _controller: RectangleController; + private _worldPosList; + private _localPosList; + private _sizeList; + private _anchorList; + private _rectList; + private _validTarget; + private _tempRect; + private _editRect; + private _altKey; + private _snapDistVec2; + private _nodeSnapLinesCtrl; + private _canvasSnapLinesCtrl; + private _equalSpacingLinesCtrl; + private _shiftKey; + init(): void; + layer(): string; + isNodeAnchorLocked(node: Node): boolean; + isNodeContentSizeLocked(node: Node): boolean; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(): void; + onControllerMouseUp(event: IControlMouseEvent): void; + onGizmoKeyDown(event: ISceneKeyboardEvent): boolean; + onGizmoKeyUp(event: ISceneKeyboardEvent): boolean; + handleAreaMove(delta: Vec3): void; + handleAnchorMove(delta: Vec3): void; + getSizePoint(type: HandleType): any; + modifyPosDeltaWithAnchor(type: any, posDelta: Vec3, sizeDelta: Vec2, anchor: Vec2, keepCenter: boolean): void; + formatSizeDelta(type: HandleType, sizeDelta: Vec2): void; + handleOneTargetSize(type: HandleType, delta: Vec3, keepCenter: boolean, keepScale: boolean): void; + handleMultiTargetSize(type: HandleType, delta: Vec3, keepCenter: boolean): void; + getBounds(flipX: boolean, flipY: boolean, nodes: Node[]): Vec2[]; + updateDataFromController(): void; + updateControllerTransform(): void; + updateControllerData(): void; + drawNodeGuidelineGroup(guidelineGroup: SnapGuidelineGroup): void; + drawNodeSnappingGuideline(): void; + clearNodeSnappingGuideline(): void; + getDrawLineVertices(guidelineGroup: SnapGuidelineGroup): Vec3[] | null; + drawGuidelineGroup(guidelineGroup: SnapGuidelineGroup, linesCtrl: LinesController, color?: Readonly<Color>): void; + drawGuidelines(linesCtrl: LinesController, drawLineVertices: Vec3[], color?: Readonly<Color>): void; + drawCanvasSnappingGuideline(): void; + clearCanvasSnappingGuideline(): void; + drawEqualSpacingGuideline(): void; + clearEqualSpacingGuideline(): void; +} +export default RectGizmo; +//# sourceMappingURL=rect-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rect-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rect-gizmo.d.ts.map new file mode 100644 index 0000000..6c81859 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rect-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"rect-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/transform/rect-gizmo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,EAA2B,IAAI,EAAiC,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAK/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAyB,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAEnG,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACvG,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAe/C,cAAM,SAAU,SAAQ,cAAc;IAClC,SAAS,CAAC,WAAW,EAAG,mBAAmB,CAAC;IAC5C,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,kBAAkB,CAAmB;IAC7C,OAAO,CAAC,oBAAoB,CAAmB;IAC/C,OAAO,CAAC,sBAAsB,CAAmB;IACjD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI;IAKJ,KAAK;IAIL,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAO7B,uBAAuB,CAAC,IAAI,EAAE,IAAI;IAMlC,gBAAgB;IAkBhB,qBAAqB;IA8CrB,qBAAqB;IAIrB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB;IA8B7C,cAAc,CAAC,KAAK,EAAE,mBAAmB;IAMzC,YAAY,CAAC,KAAK,EAAE,mBAAmB;IAavC,cAAc,CAAC,KAAK,EAAE,IAAI;IAuC1B,gBAAgB,CAAC,KAAK,EAAE,IAAI;IA+B5B,YAAY,CAAC,IAAI,EAAE,UAAU;IA0B7B,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO;IA+BtG,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI;IAcjD,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;IA2E1F,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO;IAmDxE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;IA2CvD,wBAAwB;IAwBxB,yBAAyB;IAIzB,oBAAoB;IA+CpB,sBAAsB,CAAC,cAAc,EAAE,kBAAkB;IAqDzD,yBAAyB;IAQzB,0BAA0B;IAI1B,mBAAmB,CAAC,cAAc,EAAE,kBAAkB;IAoBtD,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,kBAAY;IAyBpG,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,KAAK,kBAAY;IAStF,2BAA2B;IAmB3B,4BAA4B;IAI5B,yBAAyB;IAqCzB,0BAA0B;CAG7B;AAED,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rotation-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rotation-gizmo.d.ts new file mode 100644 index 0000000..bbe7699 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rotation-gizmo.d.ts @@ -0,0 +1,33 @@ +import { Node, Vec3, Quat } from 'cc'; +import TransformGizmo from './transform-gizmo'; +import { IControlMouseEvent } from '../../../defines'; +import { ISceneKeyboardEvent } from '../../../../../../../@types/private'; +declare class RotationGizmo extends TransformGizmo { + private _rotList; + private _offsetList; + private _center; + private _rotating; + private _keydownDelta; + private _curDeltaAngle; + private _curDeltaRotation; + isNodeLocked(node: Node): boolean; + init(): void; + layer(): string; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(event: any): void; + onControllerMouseUp(): void; + onGizmoKeyDown(event: ISceneKeyboardEvent): boolean; + onGizmoKeyUp(event: ISceneKeyboardEvent): boolean; + updateDataFromController(event: IControlMouseEvent): void; + getLocalRotFromWorldRot(node: Node, worldRot: Quat, localRot: Quat): Quat; + repeat(t: number, l: number): number; + setNodeWorldRotation3D(node: Node, worldRot: Quat): void; + checkSnap(deltaRotation: Quat, deltaAngle: number, axisDir: Vec3, snapStep: number): Quat; + updateDataFromController3D(event: IControlMouseEvent): void; + updateDataFromController2D(event: IControlMouseEvent): void; + updateRotationByZDeltaAngle(zDeltaAngle: number): void; + updateControllerTransform(): void; +} +export default RotationGizmo; +//# sourceMappingURL=rotation-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rotation-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rotation-gizmo.d.ts.map new file mode 100644 index 0000000..dbd42f5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/rotation-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"rotation-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/transform/rotation-gizmo.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAkB,MAAM,IAAI,CAAC;AACtD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAqB1E,cAAM,aAAc,SAAQ,cAAc;IACtC,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,YAAY,CAAC,IAAI,EAAE,IAAI;IAOvB,IAAI;IAIJ,KAAK;IAIL,gBAAgB;IAUhB,qBAAqB;IAkCrB,qBAAqB,CAAC,KAAK,EAAE,GAAG;IAIhC,mBAAmB;IAoBnB,cAAc,CAAC,KAAK,EAAE,mBAAmB;IAyCzC,YAAY,CAAC,KAAK,EAAE,mBAAmB;IA2BvC,wBAAwB,CAAC,KAAK,EAAE,kBAAkB;IAIlD,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IAWlE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAI3B,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IAqBjD,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQzF,0BAA0B,CAAC,KAAK,EAAE,kBAAkB;IAwDpD,0BAA0B,CAAC,KAAK,EAAE,kBAAkB;IAapD,2BAA2B,CAAC,WAAW,EAAE,MAAM;IAiC/C,yBAAyB;CAsC5B;AAED,eAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/scale-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/scale-gizmo.d.ts new file mode 100644 index 0000000..4a8407d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/scale-gizmo.d.ts @@ -0,0 +1,24 @@ +import TransformGizmo from './transform-gizmo'; +import { Node, Vec3 } from 'cc'; +import { IControlMouseEvent } from '../../../defines'; +import { ISceneKeyboardEvent } from '../../../../../../../@types/private'; +declare class ScaleGizmo extends TransformGizmo { + private _localScaleList; + private _offsetList; + private _center; + isNodeLocked(node: Node): boolean; + init(): void; + layer(): string; + createController(): void; + onControllerMouseDown(): void; + onControllerMouseMove(event: IControlMouseEvent): void; + onControllerMouseUp(): void; + onGizmoKeyDown(event: ISceneKeyboardEvent): boolean; + onGizmoKeyUp(event: ISceneKeyboardEvent): boolean; + setScaleWithPrecision(node: Node, newScale: Vec3, precision: number): void; + checkSnap(scaleDelta: Vec3, snapStep: number): void; + updateDataFromController(event: IControlMouseEvent): void; + updateControllerTransform(): void; +} +export default ScaleGizmo; +//# sourceMappingURL=scale-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/scale-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/scale-gizmo.d.ts.map new file mode 100644 index 0000000..2a586b8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/scale-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scale-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/transform/scale-gizmo.ts"],"names":[],"mappings":"AAMA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAkB,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E,cAAM,UAAW,SAAQ,cAAc;IACnC,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAoB;IAEnC,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAMjC,IAAI;IAIJ,KAAK;IAIL,gBAAgB;IAQhB,qBAAqB;IA0BrB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB;IAI/C,mBAAmB;IAMnB,cAAc,CAAC,KAAK,EAAE,mBAAmB;IAsCzC,YAAY,CAAC,KAAK,EAAE,mBAAmB;IAgBvC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM;IAKnE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM;IA0B5C,wBAAwB,CAAC,KAAK,EAAE,kBAAkB;IAkClD,yBAAyB;CAoB5B;AAED,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/transform-gizmo.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/transform-gizmo.d.ts new file mode 100644 index 0000000..1db408b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/transform-gizmo.d.ts @@ -0,0 +1,31 @@ +import Gizmo from '../gizmo-base'; +import ControllerBase from '../controller/controller-base'; +import { Node } from 'cc'; +import { IControlMouseEvent } from '../../../defines'; +import { ISceneKeyboardEvent } from '../../../../../../../@types/private'; +declare class TransformGizmo extends Gizmo { + protected _controller: ControllerBase | null; + protected updateControllerTransform?(): void; + constructor(target: any); + onShow(): void; + onHide(): void; + onTargetUpdate(): void; + onNodeChanged(): void; + protected broadcastNodeChangeMessage(node: Node): void; + getSnappedValue(inNumber: number, snapStep: number): number; + isControlKeyPressed(event: IControlMouseEvent): boolean; + /** + * 默认行为是 controller 被按下就打断 + * @param event + * @returns + */ + onGizmoKeyDown(event: ISceneKeyboardEvent): boolean; + /** + * 默认行为是 controller 被按下就打断 + * @param event + * @returns + */ + onGizmoKeyUp(event: ISceneKeyboardEvent): boolean; +} +export default TransformGizmo; +//# sourceMappingURL=transform-gizmo.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/transform-gizmo.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/transform-gizmo.d.ts.map new file mode 100644 index 0000000..10ab823 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/transform/transform-gizmo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"transform-gizmo.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/transform/transform-gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAC;AAElC,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,cAAM,cAAe,SAAQ,KAAK;IAC9B,SAAS,CAAC,WAAW,EAAE,cAAc,GAAG,IAAI,CAAQ;IACpD,SAAS,CAAC,yBAAyB,CAAC,IAAI,IAAI;gBAChC,MAAM,EAAE,GAAG;IAIvB,MAAM;IASN,MAAM;IAMN,cAAc;IAMd,aAAa;IAOb,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI;IAI/C,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI3D,mBAAmB,CAAC,KAAK,EAAE,kBAAkB;IAI7C;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAOnD;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;CAMpD;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape-collider.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape-collider.d.ts new file mode 100644 index 0000000..be6f118 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape-collider.d.ts @@ -0,0 +1,7 @@ +import { Component } from 'cc'; +export declare class ControllerShapeCollider extends Component { + isDetectMesh: boolean; + isRender: boolean; + onLoad(): void; +} +//# sourceMappingURL=controller-shape-collider.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape-collider.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape-collider.d.ts.map new file mode 100644 index 0000000..4f27a09 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape-collider.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"controller-shape-collider.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/utils/controller-shape-collider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,IAAI,CAAC;AAG3C,qBACa,uBAAwB,SAAQ,SAAS;IAE3C,YAAY,UAAQ;IAGpB,QAAQ,UAAQ;IAEhB,MAAM;CAChB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape.d.ts new file mode 100644 index 0000000..d91141b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape.d.ts @@ -0,0 +1,151 @@ +import { gfx, IVec3Like, Quat, Vec3 } from 'cc'; +import { IMeshPrimitive } from '../../../defines'; +declare class ControllerShape { + calcCylinderData(radiusTop?: number, radiusBottom?: number, height?: number, opts?: any): { + positions: any[]; + normals: any[]; + uvs: any[]; + indices: any[]; + minPos: Vec3; + maxPos: Vec3; + }; + calcConeData(radius: number, height: number, opts?: any): { + positions: any[]; + normals: any[]; + uvs: any[]; + indices: any[]; + minPos: Vec3; + maxPos: Vec3; + }; + calcQuadData(center: Readonly<Vec3>, width: number, height: number, normal?: Readonly<Vec3>, needBoundingBox?: boolean): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + minPos: Vec3 | undefined; + maxPos: Vec3 | undefined; + uvs: any[]; + doubleSided: boolean; + }; + lineWithBoundingBox(length: number, size?: number): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + minPos: Vec3; + maxPos: Vec3; + primitiveType: gfx.PrimitiveMode; + }; + calcCubeData(width: number, height: number, length: number, center?: IVec3Like, opts?: any): { + positions: Vec3[]; + indices: number[]; + normals: Vec3[]; + minPos: Vec3; + maxPos: Vec3; + }; + torus(radius: number, tube: number, opts?: any): { + positions: Vec3[]; + indices: number[]; + normals: Vec3[]; + uvs: any[]; + minPos: Vec3; + maxPos: Vec3; + }; + calcArcPoints(center: Readonly<Vec3>, normal: Readonly<Vec3>, fromDir: Readonly<Vec3>, radian: number, radius: number, segments?: number): Vec3[]; + getBiNormalByNormal(normal: Readonly<Vec3>): Vec3; + calcCirclePoints(center: Readonly<Vec3>, normal: Readonly<Vec3>, radius: number, segments?: number): Vec3[]; + calcDiscPoints(center: Readonly<Vec3>, normal: Readonly<Vec3>, radius: number, segments?: number): Readonly<Vec3>[]; + calcSectorPoints(center: Readonly<Vec3>, normal: Readonly<Vec3>, fromDir: Readonly<Vec3>, radian: number, radius: number, segments: number): Readonly<Vec3>[]; + indicesFanToList(fanIndices: number[]): any[]; + calcSectorData(center: Readonly<Vec3>, normal: Readonly<Vec3>, fromDir: Readonly<Vec3>, radian: number, radius: number, segments: number): { + positions: Readonly<Vec3>[]; + normals: any[]; + indices: any[]; + primitiveType: gfx.PrimitiveMode; + }; + arcDirectionLine(center: Vec3, normal: Vec3, fromDir: Vec3, radian: number, radius: number, length: number, segments: number): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + primitiveType: gfx.PrimitiveMode; + }; + calcBoxPoints(center: Vec3, size: Vec3): Vec3[]; + wireframeBox(center: Vec3, size: Vec3): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + primitiveType: gfx.PrimitiveMode; + }; + calcFrustum(isOrtho: boolean, orthoHeight: number, fov: number, aspect: number, near: number, far: number, isFOVY: boolean): { + positions: Vec3[]; + indices: number[]; + normals: any[]; + primitiveType: gfx.PrimitiveMode; + }; + calcRectanglePoints: (center: Readonly<Vec3>, rotation: Readonly<Quat>, size: any) => { + vertices: Vec3[]; + indices: number[]; + }; + calcRectangleData(center: Readonly<Vec3>, rotation: Readonly<Quat>, size: any): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + primitiveType: gfx.PrimitiveMode; + }; + calcSphereData: (center: Readonly<Vec3>, radius?: number, opts?: any) => IMeshPrimitive; + calcArcData(center: Readonly<Vec3>, normal: Readonly<Vec3>, fromDir: Readonly<Vec3>, radian: number, radius: number, segments?: number): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + primitiveType: gfx.PrimitiveMode; + }; + calcCircleData(center: Readonly<Vec3>, normal: Readonly<Vec3>, radius: number, segments?: number): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + primitiveType: gfx.PrimitiveMode; + }; + calcLinesData(vertices: Vec3[], indices: number[], needBoundingBoxData?: boolean): IMeshPrimitive; + calcDiscData(center: Readonly<Vec3>, normal: Readonly<Vec3>, radius: number, segments?: number): { + positions: Readonly<Vec3>[]; + normals: any[]; + indices: any[]; + primitiveType: gfx.PrimitiveMode; + minPos: Vec3; + maxPos: Vec3; + }; + calcLineData(startPos: Vec3, endPos: Vec3): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + minPos: Vec3; + maxPos: Vec3; + primitiveType: gfx.PrimitiveMode; + }; + calcPolygonData(points: Vec3[], indices?: number[]): { + positions: Vec3[]; + normals: any[]; + indices: number[]; + minPos: Vec3; + maxPos: Vec3; + primitiveType: gfx.PrimitiveMode; + }; + /** + * calculate the data of octahedron + * https://en.wikipedia.org/wiki/Octahedron + * @param lowerPoint The lower apex's position. + * @param upperPoint The upper apex's position. + * @param width The width of the polygonal base, ie. its length in x axis. + * @param length The length of the polygonal base, ie. its length in z axis. + * @param ratio The height ratio of the downside pyramid. Usually in interval [0, 1]. + */ + calcOctahedronData(lowerPoint: IVec3Like, upperPoint: IVec3Like, width: number, length: number, ratio?: number): { + primitiveType: gfx.PrimitiveMode; + positions: Vec3[]; + normals: Vec3[]; + indices: number[]; + minPos: Vec3; + maxPos: Vec3; + }; +} +declare const _default: ControllerShape; +export default _default; +//# sourceMappingURL=controller-shape.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape.d.ts.map new file mode 100644 index 0000000..48a4df4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-shape.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"controller-shape.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/utils/controller-shape.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-utils.d.ts new file mode 100644 index 0000000..fab80cc --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-utils.d.ts @@ -0,0 +1,43 @@ +import { Color, IVec3, Material, Node, Quat, Vec3 } from 'cc'; +import { IMeshPrimitive, IAddMeshToNodeOption, IAddQuadToNodeOptions, IAddLineToNodeOptions } from '../../../defines'; +declare enum AxisName { + x = "x", + y = "y", + z = "z", + neg_x = "neg_x", + neg_y = "neg_y", + neg_z = "neg_z" +} +declare class ControllerUtils { + static AxisName: typeof AxisName; + static axisDirectionMap: { + [key: string]: Vec3; + }; + static arrow(headHeight: number, headRadius: number, bodyHeight: number, color: Color, opts?: Partial<IAddLineToNodeOptions>): Node; + static quad(center: Readonly<Vec3>, width: number, height: number, normal?: Readonly<Vec3>, color?: Color, opts?: Partial<IAddQuadToNodeOptions>): Node; + static borderPlane(width: number, height: number, color: Color, opacity: number): Node; + static circle(center: Vec3, normal: Vec3, radius: number, color: Color): Node; + static torus(radius: number, tube: number, opts: any, color: Color): Node; + static cube(width: number, height: number, depth: number, color: Color, center?: IVec3, opts?: Partial<IAddMeshToNodeOption>): Node; + static scaleSlider(headWidth: number, bodyHeight: number, color: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static getCameraDistanceFactor(pos: Vec3, camera: Node): number; + static lineTo(startPos: Vec3, endPos: Vec3, color?: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static disc(center: Readonly<Vec3>, normal: Readonly<Vec3>, radius: number, color?: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static sector(center: Vec3, normal: Vec3, fromDir: Vec3, radian: number, radius: number, color?: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static arc(center: Vec3, normal: Vec3, fromDir: Vec3, radian: number, radius: number, color?: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static arcDirectionLine(center: Vec3, normal: Vec3, fromDir: Vec3, radian: number, radius: number, length: number, segments: number, color?: Color): Node; + static lines(vertices: Vec3[], indices: number[], color?: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static wireframeBox(center: Vec3, size: Vec3, color: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static frustum(isOrtho: boolean, orthoHeight: number, fov: number, aspect: number, near: number, far: number, color: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static rectangle(center: Vec3, rotation: Readonly<Quat>, size: any, color: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static angle(from: Vec3, to: Vec3): number; + static sphere(center: Vec3, radius: number, color: Color, opts?: Partial<IAddMeshToNodeOption>, reuseMaterial?: Material): Node; + static octahedron(lowerPoint: Vec3, upperPoint: Vec3, width: number, length: number, ratio: number | undefined, color: Color, opts?: Partial<IAddMeshToNodeOption>): Node; + static createShapeByData(shapeData: IMeshPrimitive, color: Color, opts?: Partial<IAddMeshToNodeOption>, reuseMaterial?: Material): Node; + static create3DNode(name?: string): Node; + static drawLines(node: Node, vertices: Vec3[], indices: number[], color?: Color): void; + static findMinPosition(positions: Vec3[]): Vec3; + static findMaxPosition(positions: Vec3[]): Vec3; +} +export default ControllerUtils; +//# sourceMappingURL=controller-utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-utils.d.ts.map new file mode 100644 index 0000000..da11d3f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/elements/utils/controller-utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"controller-utils.d.ts","sourceRoot":"","sources":["../../../../../../../source/script/public/gizmos/3d/elements/utils/controller-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-defines.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-defines.d.ts new file mode 100644 index 0000000..0f1bfbb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-defines.d.ts @@ -0,0 +1,18 @@ +import PositionGizmo from './elements/transform/position-gizmo'; +import RotationGizmo from './elements/transform/rotation-gizmo'; +import ScaleGizmo from './elements/transform/scale-gizmo'; +import RectGizmo from './elements/transform/rect-gizmo'; +import SceneGizmo from './elements/scene-gizmo'; +import GizmoBase from './elements/gizmo-base'; +declare const GizmoDefines: { + 'cc.Scene': typeof SceneGizmo; + position: typeof PositionGizmo; + rotation: typeof RotationGizmo; + scale: typeof ScaleGizmo; + rect: typeof RectGizmo; + components: Record<string, typeof GizmoBase>; + iconGizmo: Record<string, typeof GizmoBase>; + persistentGizmo: Record<string, typeof GizmoBase>; +}; +export default GizmoDefines; +//# sourceMappingURL=gizmo-defines.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-defines.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-defines.d.ts.map new file mode 100644 index 0000000..2899d41 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-defines.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-defines.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/3d/gizmo-defines.ts"],"names":[],"mappings":"AA4CA,OAAO,aAAa,MAAM,qCAAqC,CAAC;AAChE,OAAO,aAAa,MAAM,qCAAqC,CAAC;AAChE,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,SAAS,MAAM,iCAAiC,CAAC;AAkCxD,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAO9C,QAAA,MAAM,YAAY,EAAE;IAChB,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,QAAQ,EAAE,OAAO,aAAa,CAAC;IAC/B,QAAQ,EAAE,OAAO,aAAa,CAAC;IAC/B,KAAK,EAAE,OAAO,UAAU,CAAC;IACzB,IAAI,EAAE,OAAO,SAAS,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAC;IAC5C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAC;CAUrD,CAAC;AAqEF,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-manager.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-manager.d.ts new file mode 100644 index 0000000..557cef1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-manager.d.ts @@ -0,0 +1,169 @@ +/// <reference types="node" /> +import { IChangeNodeOptions } from '../../../../../@types/private'; +import { EventEmitter } from 'events'; +import { Component, LightProbeGroup, Node, Scene, Canvas } from 'cc'; +import { TransformToolData, SnapConfigs, TransformToolDataToolNameType, TransformToolDataCoordinateType, TransformToolDataPivotType } from '../utils/transform-tool-data'; +import GizmoBase from './elements/gizmo-base'; +import { ISceneEvents } from '../../../3d/manager/scene-events-interface'; +import IconGizmoBase from './elements/icon-gizmo/icon-gizmo-base'; +import { IRectSnapConfigData } from '../utils/rect-transform-snapping'; +import LightProbeEditModeListener from './elements/listener/light-probe-edit-mode-listener'; +import TransformGizmo from './elements/transform/transform-gizmo'; +import LightProbeGizmo from './elements/components/light/light-probe-gizmo'; +import { NodeProbe } from './elements/controller/light-probe-controller'; +declare module 'cc' { + interface Node { + gizmo: GizmoBase | null; + iconGizmo: IconGizmoBase | null; + persistentGizmo: GizmoBase | null; + noNeedCommitChanges?: boolean; + } + interface Component { + gizmo: GizmoBase | null; + iconGizmo: IconGizmoBase | null; + persistentGizmo: GizmoBase | null; + } +} +export declare class GizmoManager extends EventEmitter implements ISceneEvents, LightProbeEditModeListener { + static readonly GIZMO_CANVAS_NODE_NAME = "Gizmo Canvas Node"; + transformToolData: TransformToolData; + private rootCanvas?; + private rootCanvasNode?; + private _isIconGizmoVisible; + private _worldAxisController; + private _sceneGizmoCamera; + private gizmoRootNode; + private _gizmoToolMap; + private _selection; + private _gizmosPool; + private _iconGizmoPool; + private _persistentGizmoPool; + private _transformTool; + /** + * 存放探针编辑模式变化的监听器 + * 需要监听的gizmo需要自身实现下面接口 + * 其它监听器需要从数组头部插入 + * @see LightProbeEditModeListener + * 注册方式位于 + * @see registerLightProbeEditModeListener + */ + _lightProbeEditModeListener: LightProbeEditModeListener[]; + private _lightProbeEditMode; + private _lightProbeBoundingBoxEditMode; + queryToolName(): TransformToolDataToolNameType; + setTransformToolName(name: TransformToolDataToolNameType): void; + queryCoordinate(): TransformToolDataCoordinateType; + setCoordinate(name: TransformToolDataCoordinateType): void; + queryPivot(): TransformToolDataPivotType; + setPivot(name: TransformToolDataPivotType): void; + queryIs2D(): boolean; + setIs2D(value: boolean): void; + isIconGizmoVisible(): boolean; + setIconGizmoVisible(value: boolean): void; + isIconGizmo3D(): boolean; + setIconGizmo3D(value: boolean): void; + queryIconGizmoSize(): number; + setIconGizmoSize(size: number): void; + queryTransformSnapConfigs(): import("../utils/transform-tool-data").ISnapConfigData; + setTransformSnapConfigs(name: keyof (SnapConfigs), value: any): void; + queryRectSnappingConfigs(name?: keyof (IRectSnapConfigData)): number | boolean | IRectSnapConfigData; + setRectSnappingConfigs(name: keyof (IRectSnapConfigData), value: any): void; + init(): void; + initFromConfig(): Promise<void>; + saveRectSnapConfigs(): void; + createSceneGizmo(): void; + setSceneGizmoCameraRect(): void; + onSceneOpened(): void; + onSceneClosed(): void; + initNodeGizmo(): void; + get transformTool(): TransformGizmo | null; + get transformToolName(): TransformToolDataToolNameType; + set transformToolName(toolName: TransformToolDataToolNameType); + get coordinate(): TransformToolDataCoordinateType; + set coordinate(value: TransformToolDataCoordinateType); + get pivot(): TransformToolDataPivotType; + set pivot(value: TransformToolDataPivotType); + lockGizmoTool(value: boolean): void; + isGizmoToolLocked(): boolean; + getGizmoToolByName(toolName: 'position' | 'rotation' | 'scale' | 'rect'): any; + destroyGizmoInPool(pool: any): void; + clearAllGizmos(): void; + createGizmoFromPool(pool: any, name: string, gizmoDef: any, target?: any): any; + createGizmo(name: string, gizmoDef: any, target?: any): GizmoBase; + destroyGizmo(gizmo: GizmoBase): void; + hideGizmo(gizmo: GizmoBase | null | undefined): void; + hideComponentGizmo(comp: Component): void; + createIconGizmo(name: string, gizmoDef: any, target?: any): IconGizmoBase; + createPersistentGizmo(name: string, gizmoDef: any, target?: any): GizmoBase; + showAllGizmoOfNode(node: Node, recursive?: boolean): void; + showNodeGizmoOfNode(node: Node): void; + showComponentGizmo(component: Component): void; + showComponentIconGizmo(component: Component): void; + showComponentPersistentGizmo(component: Component): void; + showComponentIconGizmoOfNode(node: Node): void; + showComponentPersistentGizmoOfNode(node: Node): void; + showAllComponentsGizmoOfNode(node: Node): void; + removeAllGizmoOfNode(node: Node, recursive?: boolean): void; + removeNodeGizmoOfNode(node: Node): void; + removeComponentGizmo(component: Component): void; + removeComponentIconGizmo(component: Component): void; + removeComponentPersistentGizmo(component: Component): void; + removeComponentsGizmoOfNode(node: Node): void; + removeComponentsIconGizmoOfNode(node: Node): void; + removeAllComponentsGizmoOfNode(node: Node): void; + showSceneNodeGizmo(node: Scene, show: boolean): void; + showSelectionRegion(left: number, right: number, top: number, bottom: number): void; + hideSelectionRegion(): void; + onComponentEnable(id: string): void; + onComponentDisable(id: string): void; + /** + * + * @param {*} node + * @param {*} states + */ + updateGizmosState(node: Node, states: any): void; + /** + * 选中节点 + * @param {*} newId + * @param {*} ids + */ + select(newId: string, ids: string[]): void; + /** + * 取消选中 + * @param {*} ids + */ + unselect(ids: string[]): void; + check(nodes: Node[]): Node[]; + edit(nodes: Node[]): void; + onMouseLeave(): void; + callAllGizmoFuncOfNode<T extends keyof GizmoBase>(node: Node, funcName: keyof GizmoBase, ...params: Parameters<GizmoBase[T]>): boolean; + notifyNodeChanged(node: Node, recursive: boolean): void; + onNodeChanged(node: Node, opts: IChangeNodeOptions): void; + onNodeAdded(node: Node): void; + onNodeRemoved(node: Node): void; + onComponentAdded(comp: Component): void; + onComponentRemoved(comp: Component): void; + onResize(): void; + onUpdate(deltaTime: number): void; + saveGizmosInfos(): void; + onEditorCameraProjectionChanged(projection: number): void; + private onCameraControlModeChanged; + get2DCanvas(): Canvas; + registerLightProbeEditModeListener(listener: LightProbeEditModeListener): void; + /** + * 调用方在GeneralSceneManager的changeLightProbeEditMode方法中调用 + * @param mode + */ + lightProbeEditModeChanged(mode: boolean): void; + get globalSelectProbes(): NodeProbe[]; + walkAllLightProbeGizmoListener(callback: (e: LightProbeGizmo) => void, lightProbeGroup: LightProbeGroup): void; + updateLightProbeInnerTetrahedron(): void; + lightProbeInfoChanged(): void; + boundingBoxEditModeChanged(mode: boolean): void; + duplicateCurrentSelectedProbes(): void; + removeCurrentSelectedProbes(): void; + selectAllLightProbes(): void; +} +declare const _default: GizmoManager; +export default _default; +//# sourceMappingURL=gizmo-manager.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-manager.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-manager.d.ts.map new file mode 100644 index 0000000..bf637a4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-manager.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-manager.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/3d/gizmo-manager.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAiB,SAAS,EAAsB,eAAe,EAAE,IAAI,EAAE,KAAK,EAAQ,MAAM,EAAE,MAAM,IAAI,CAAC;AAK9G,OAAO,EACH,iBAAiB,EAEjB,WAAW,EACX,6BAA6B,EAC7B,+BAA+B,EAC/B,0BAA0B,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAI9C,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,aAAa,MAAM,uCAAuC,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAyB,MAAM,kCAAkC,CAAC;AAE9F,OAAO,0BAA0B,MAAM,oDAAoD,CAAC;AAG5F,OAAO,cAAc,MAAM,sCAAsC,CAAC;AAClE,OAAO,eAAe,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AAQzE,OAAO,QAAQ,IAAI,CAAC;IAChB,UAAiB,IAAI;QACjB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;QAChC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC;QAClC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAChC;IAED,UAAiB,SAAS;QACtB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;QAChC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC;KACrC;CAEJ;AA4CD,qBAAa,YAAa,SAAQ,YAAa,YAAW,YAAY,EAAE,0BAA0B;IAC9F,gBAAuB,sBAAsB,uBAAuB;IAE7D,iBAAiB,EAAE,iBAAiB,CAAqB;IAChE,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAO;IAC9B,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,aAAa,CAAqB;IAG1C,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,oBAAoB,CAAW;IAEvC,OAAO,CAAC,cAAc,CAA+B;IAErD;;;;;;;OAOG;IACI,2BAA2B,EAAE,0BAA0B,EAAE,CAAoB;IACpF,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,8BAA8B,CAAS;IAExC,aAAa;IAIb,oBAAoB,CAAC,IAAI,EAAE,6BAA6B;IAOxD,eAAe;IAIf,aAAa,CAAC,IAAI,EAAE,+BAA+B;IAOnD,UAAU;IAIV,QAAQ,CAAC,IAAI,EAAE,0BAA0B;IAOzC,SAAS;IAIT,OAAO,CAAC,KAAK,EAAE,OAAO;IAetB,kBAAkB;IAIlB,mBAAmB,CAAC,KAAK,EAAE,OAAO;IAiBlC,aAAa;IAIb,cAAc,CAAC,KAAK,EAAE,OAAO;IAqB7B,kBAAkB;IAIlB,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAqB7B,yBAAyB;IAIzB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG;IAI7D,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAS3D,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,GAAG;IAKpE,IAAI;IA+BE,cAAc;IAoBpB,mBAAmB;IAMnB,gBAAgB;IAoBhB,uBAAuB;IAYvB,aAAa;IAuBb,aAAa;IAIb,aAAa;IAYpB,IAAI,aAAa,0BAEhB;IAED,IAAI,iBAAiB,kCAEpB;IAED,IAAI,iBAAiB,CAAC,QAAQ,+BAAA,EAe7B;IAED,IAAI,UAAU,oCAEb;IAED,IAAI,UAAU,CAAC,KAAK,iCAAA,EAMnB;IAED,IAAI,KAAK,+BAER;IAED,IAAI,KAAK,CAAC,KAAK,4BAAA,EAMd;IAEM,aAAa,CAAC,KAAK,EAAE,OAAO;IAI5B,iBAAiB;IAIjB,kBAAkB,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM;IAgBvE,kBAAkB,CAAC,IAAI,EAAE,GAAG;IAU5B,cAAc;IAMd,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAE,GAAU;IA2C9E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAE,GAAU;IAK3D,YAAY,CAAC,KAAK,EAAE,SAAS;IAe7B,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS;IAM7C,kBAAkB,CAAC,IAAI,EAAE,SAAS;IAOlC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAE,GAAU;IAI/D,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAE,GAAU;IAIrE,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,UAAQ;IAehD,mBAAmB,CAAC,IAAI,EAAE,IAAI;IA2B9B,kBAAkB,CAAC,SAAS,EAAE,SAAS;IAgBvC,sBAAsB,CAAC,SAAS,EAAE,SAAS;IAoB3C,4BAA4B,CAAC,SAAS,EAAE,SAAS;IAgBjD,4BAA4B,CAAC,IAAI,EAAE,IAAI;IAevC,kCAAkC,CAAC,IAAI,EAAE,IAAI;IAe7C,4BAA4B,CAAC,IAAI,EAAE,IAAI;IAmBvC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,UAAQ;IAelD,qBAAqB,CAAC,IAAI,EAAE,IAAI;IAahC,oBAAoB,CAAC,SAAS,EAAE,SAAS;IASzC,wBAAwB,CAAC,SAAS,EAAE,SAAS;IAS7C,8BAA8B,CAAC,SAAS,EAAE,SAAS;IAQnD,2BAA2B,CAAC,IAAI,EAAE,IAAI;IAMtC,+BAA+B,CAAC,IAAI,EAAE,IAAI;IAM1C,8BAA8B,CAAC,IAAI,EAAE,IAAI;IASzC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO;IA6B7C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA6B5E,mBAAmB;IAKnB,iBAAiB,CAAC,EAAE,EAAE,MAAM;IAW5B,kBAAkB,CAAC,EAAE,EAAE,MAAM;IAYpC;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG;IAwBhD;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;IAkC1C;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE;IA6CtB,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;IAanB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;IA0BlB,YAAY;IAIZ,sBAAsB,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,EAAE,GAAG,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IActI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO;IAuBhD,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB;IAyFlD,WAAW,CAAC,IAAI,EAAE,IAAI;IAatB,aAAa,CAAC,IAAI,EAAE,IAAI;IAMxB,gBAAgB,CAAC,IAAI,EAAE,SAAS;IAUhC,kBAAkB,CAAC,IAAI,EAAE,SAAS;IAQlC,QAAQ;IAIR,QAAQ,CAAC,SAAS,EAAE,MAAM;IAqB1B,eAAe;IAOf,+BAA+B,CAAC,UAAU,EAAE,MAAM;IAIzD,OAAO,CAAC,0BAA0B;IAe3B,WAAW,IAAI,MAAM;IAYrB,kCAAkC,CAAC,QAAQ,EAAE,0BAA0B;IAI9E;;;OAGG;IACI,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIrD,IAAI,kBAAkB,gBASrB;IACM,8BAA8B,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,EAAE,eAAe,EAAE,eAAe;IAUvG,gCAAgC;IAQhC,qBAAqB;IAIrB,0BAA0B,CAAC,IAAI,EAAE,OAAO;IAKxC,8BAA8B;IAI9B,2BAA2B;IAI3B,oBAAoB;CAG9B;;AAuDD,wBAAkC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-operation.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-operation.d.ts new file mode 100644 index 0000000..18620d2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-operation.d.ts @@ -0,0 +1,58 @@ +import { ISceneKeyboardEvent, ISceneMouseEvent } from '../../../../../@types/private'; +import GizmoOperationEventListener from './elements/listener/gizmo-operation-event-listener'; +import LightProbeEditModeListener from './elements/listener/light-probe-edit-mode-listener'; +declare class GizmoOperation implements LightProbeEditModeListener { + private _regionSelecting; + private _hoverinGizmo; + private _curSelectGizmo; + private _gizmoMouseDownEvent; + private _noGizmoMouseDownEvent; + private _regionSelectMode; + /** + * alt || shift || ctrl || meta 之中的按键是否按下 + */ + private _anyKeyDown; + private _gizmoOperationEventListeners; + private _gizmoSelection; + private raycastGizmos; + private _emitEventToNode; + private _onNotGizmoMouseDown; + private _onNotGizmoMouseUp; + private _onNotGizmoMouseMove; + /** + * + * @param event 鼠标事件 + * @returns false表示不再继续传播 + */ + private _onGizmoMouseDown; + private _onGizmoMouseUp; + private _onGizmoMouseMove; + private _select; + private _regionSelectNode; + private _selectGizmo; + private _regionSelectGizmo; + init(gizmoMgr: any): void; + /** + * 点击时主要分为点中gizmo和没点中的逻辑 + * @param event + * @returns + */ + onMouseDown(event: ISceneMouseEvent): boolean | void; + onMouseUp(event: ISceneMouseEvent): boolean | void; + onMouseMove(event: ISceneMouseEvent): false | undefined; + onMouseWheel(): void; + clear(): void; + onMouseLeave(): void; + onKeyDown(event: ISceneKeyboardEvent): boolean; + onKeyUp(event: ISceneKeyboardEvent): boolean; + registerGizmoOperationEventListener(listener: GizmoOperationEventListener): void; + lightProbeEditModeChanged(mode: boolean): void; + boundingBoxEditModeChanged(mode: boolean): void; + selectAllLightProbes(): void; + unselectAllLightProbes(): void; + duplicateCurrentSelectedProbes(): void; + removeCurrentSelectedProbes(): void; +} +declare const _default: GizmoOperation; +export default _default; +//# sourceMappingURL=gizmo-operation.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-operation.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-operation.d.ts.map new file mode 100644 index 0000000..c81b99d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/3d/gizmo-operation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-operation.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/3d/gizmo-operation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAUtF,OAAO,2BAA2B,MAAM,oDAAoD,CAAC;AAC7F,OAAO,0BAA0B,MAAM,oDAAoD,CAAC;AA4B5F,cAAM,cAAe,YAAW,0BAA0B;IACtD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,iBAAiB,CAAyB;IAClD;;OAEG;IACH,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,6BAA6B,CAAqC;IAC1E,OAAO,CAAC,eAAe,CAA0D;IAEjF,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,oBAAoB;IAuB5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,OAAO;IA8Df,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,kBAAkB;IAQnB,IAAI,CAAC,QAAQ,EAAE,GAAG;IAWzB;;;;OAIG;IACI,WAAW,CAAC,KAAK,EAAE,gBAAgB;IAiBnC,SAAS,CAAC,KAAK,EAAE,gBAAgB;IAqBjC,WAAW,CAAC,KAAK,EAAE,gBAAgB;IAiEnC,YAAY;IAIZ,KAAK;IAOL,YAAY;IAQZ,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAgBpC,OAAO,CAAC,KAAK,EAAE,mBAAmB;IAalC,mCAAmC,CAAC,QAAQ,EAAE,2BAA2B;IAIhF,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAU9C,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAU/C,oBAAoB;IAYpB,sBAAsB;IAUf,8BAA8B;IAY9B,2BAA2B;CAUrC;;AAED,wBAAoC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/defines.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/defines.d.ts new file mode 100644 index 0000000..61978c3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/defines.d.ts @@ -0,0 +1,99 @@ +import { Vec3, Vec2, primitives, Node, Color, MeshRenderer, IVec3Like } from 'cc'; +export interface IMeshPrimitive { + primitiveType?: number; + positions: Readonly<IVec3Like>[]; + normals?: Vec3[]; + uvs?: Vec2[]; + indices?: number[]; + minPos?: Vec3; + maxPos?: Vec3; + boundingRadius?: number; + doubleSided?: boolean; +} +export declare class DynamicMeshPrimitive implements IMeshPrimitive { + boundingRadius?: number; + doubleSided?: boolean; + indices?: number[]; + maxPos?: Vec3; + minPos?: Vec3; + normals?: Vec3[]; + positions: Readonly<IVec3Like>[]; + primitiveType?: number; + uvs?: Vec2[]; + constructor(primitive: IMeshPrimitive); + transformToDynamicGeometry(): primitives.IDynamicGeometry; +} +export interface ICreateMeshOption { + dashed?: boolean; +} +export interface IMaterialOption { + /** 使用的effect名字 */ + effectName?: string; + /** 剔除类型 */ + cullMode?: number; + /** 图元类型 */ + primitive?: number; + /** 渲染优先级 */ + priority?: number; + /** 透明度值 */ + alpha?: number; + /** 使用第几个technique */ + technique?: number; + /** 使用无光照的technique */ + unlit?: boolean; + /** 使用带贴图的technique */ + texture?: boolean; + /** 使用纯颜色的 technique */ + pureColor?: boolean; + /** 使用不进行深度测试的technique */ + noDepthTestForLines?: boolean; + /** 使用深度测试的technique */ + depthTestForTriangles?: boolean; + /** 使用虚线 */ + dashed?: boolean; + /** 使用球谐渲染 */ + useLightProbe?: boolean; +} +export interface IAddMeshToNodeOption extends IMaterialOption { + forwardPipeline?: boolean; + /** 节点名称 */ + name?: string; + instancing?: boolean; +} +export interface IAddQuadToNodeOptions extends IAddMeshToNodeOption { + needBoundingBox?: boolean; +} +export interface IAddLineToNodeOptions extends IAddMeshToNodeOption { + bodyBBSize?: number; +} +export interface IRectangleControllerOption { + needAnchor?: boolean; +} +export interface IControlMouseEvent { + x: number; + y: number; + altKey: boolean; + metaKey: boolean; + ctrlKey: boolean; + shiftKey: boolean; + moveDeltaX: number; + moveDeltaY: number; + hitPoint: Vec3; + node: Node; + handleName: string; + customData?: any; +} +export interface IHandleData { + name: string; + topNode: Node; + rendererNodes: Node[]; + oriColors: Color[]; + oriOpacitys: number[]; + normalTorusNode?: Node | null; + indicatorCircle?: Node | null; + arrowNode?: Node | null; + normalTorusMR?: MeshRenderer; + panPlane?: Node; + customData?: any; +} +//# sourceMappingURL=defines.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/defines.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/defines.d.ts.map new file mode 100644 index 0000000..46973f4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/defines.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"defines.d.ts","sourceRoot":"","sources":["../../../../source/script/public/gizmos/defines.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/gizmo-config.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/gizmo-config.d.ts new file mode 100644 index 0000000..5fa6e68 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/gizmo-config.d.ts @@ -0,0 +1,6 @@ +declare class GizmoConfig { + static isIconGizmo3D: boolean; + static iconGizmoSize: number; +} +export default GizmoConfig; +//# sourceMappingURL=gizmo-config.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/gizmo-config.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/gizmo-config.d.ts.map new file mode 100644 index 0000000..c7a7661 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/gizmo-config.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-config.d.ts","sourceRoot":"","sources":["../../../../source/script/public/gizmos/gizmo-config.ts"],"names":[],"mappings":"AACA,cAAM,WAAW;IACb,OAAc,aAAa,UAAS;IACpC,OAAc,aAAa,SAAK;CACnC;AACD,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/index.d.ts new file mode 100644 index 0000000..e1c5f16 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/index.d.ts @@ -0,0 +1,3 @@ +import gizmo from './3d/gizmo-manager'; +export default gizmo; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/index.d.ts.map new file mode 100644 index 0000000..de91491 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/script/public/gizmos/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAEvC,eAAe,KAAK,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/2d.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/2d.d.ts new file mode 100644 index 0000000..cb42fc4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/2d.d.ts @@ -0,0 +1,18 @@ +import UtilsInterface from './utils-interface'; +export declare class Utils2D extends UtilsInterface { + constructor(); + requestPointerLock(): void; + exitPointerLock(): void; + emitNodeMessage(message: string, ...params: any[]): void; + broadcastMessage(message: any, ...params: any[]): void; + onNodeChanged(node: any, ...params: any[]): void; + getGizmoRoot(): any; + repaintEngine(): void; + recordChanges(nodes: { + forEach: (arg0: (node: any) => void) => void; + }): void; + commitChanges(nodes: any): void; +} +declare const _default: Utils2D; +export default _default; +//# sourceMappingURL=2d.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/2d.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/2d.d.ts.map new file mode 100644 index 0000000..6139a48 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/2d.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"2d.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/2d.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAK/C,qBAAa,OAAQ,SAAQ,cAAc;;IAKvC,kBAAkB;IAGlB,eAAe;IAGf,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;IACjD,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;IAC/C,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;IACzC,YAAY;IAGZ,aAAa;IAMb,aAAa,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAA;KAAE;IAMrE,aAAa,CAAC,KAAK,EAAE,GAAG;CAI3B;;AAED,wBAA6B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/3d.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/3d.d.ts new file mode 100644 index 0000000..589d82c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/3d.d.ts @@ -0,0 +1,23 @@ +/// <reference path="../../../../../../../../resources/3d/engine/bin/.declarations/cc.d.ts" /> +/// <reference path="engine/3d.d.ts" /> +/// <reference path="../3d/gizmo-manager.d.ts" /> +/// <reference path="../../../3d/manager/asset/asset-watcher.d.ts" /> +/// <reference types="cc" /> +import UtilsInterface from './utils-interface'; +export declare class Utils3D extends UtilsInterface { + constructor(); + requestPointerLock(): void; + exitPointerLock(): void; + emitNodeMessage(message: string, ...params: any[]): void; + broadcastMessage(message: string, ...params: any[]): void; + onNodeChanged(node: any, ...param: any[]): void; + getGizmoRoot(): import("cc").Node | null; + repaintEngine(): void; + recordChanges(nodes: any[]): void; + commitChanges(nodes: any[]): void; + select(uuid: string): void; + changePointer(type: string): void; +} +declare const _default: Utils3D; +export default _default; +//# sourceMappingURL=3d.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/3d.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/3d.d.ts.map new file mode 100644 index 0000000..6eb93f0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/3d.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"3d.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/3d.ts"],"names":[],"mappings":";;;;;AACA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAK/C,qBAAa,OAAQ,SAAQ,cAAc;;IAMvC,kBAAkB;IAIlB,eAAe;IAIf,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;IAIjD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;IAIlD,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE;IAIxC,YAAY;IAIZ,aAAa;IAIb,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE;IAO1B,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE;IAQ1B,MAAM,CAAC,IAAI,EAAE,MAAM;IAKnB,aAAa,CAAC,IAAI,EAAE,MAAM;CAG7B;;AAED,wBAA6B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/2d.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/2d.d.ts new file mode 100644 index 0000000..4d97451 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/2d.d.ts @@ -0,0 +1,39 @@ +/// <reference path="../../../../../../../../../resources/3d/engine/bin/.declarations/cc.d.ts" /> +/// <reference path="3d.d.ts" /> +/// <reference path="../../3d/gizmo-manager.d.ts" /> +/// <reference path="../../../../3d/manager/asset/asset-watcher.d.ts" /> +import EngineInterface from './engine-interface'; +import { Node } from 'cc'; +export declare class Engine2D implements EngineInterface { + raycast(scene: any, camera: any, layer: any, x: number, y: number): void; + setMaterialProperty(node: any, propName: string, value: any): void; + updateBoundingBox(meshComp: any, minPos: any, maxPos: any): void; + gfx: any; + CullMode: any; + AttributeName: any; + PrimitiveMode: any; + LightType: any; + ProjectionType: any; + constructor(); + create3DNode(name: string): Node; + createMesh(primitive: any): any; + addMeshToNode(node: any, mesh: any, opts?: any): void; + setMeshColor(node: any, c: any): void; + getMeshColor(node: any): any; + setNodeOpacity(node: any, opacity: number): void; + getNodeOpacity(node: any): any; + getRaycastResults(rootNode: any, x: number, y: number): any; + getModel(node: any): any; + updateVBAttr(mesh: any, attr: any, data: any): void; + updateIB(mesh: any, data: any): void; + getBoundingBox(component: any): import("../../../../utils/aabb").default | null; + getRootBoneNode(component: any): any; + getRootBindPose(component: any): import("cc").math.Mat4 | null; + getCameraData(component: any): any; + setCameraData(component: any, cameraData: any): void; + getLightData(component: any): any; + setLightData(component: any, lightData: any): void; +} +declare const _default: Engine2D; +export default _default; +//# sourceMappingURL=2d.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/2d.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/2d.d.ts.map new file mode 100644 index 0000000..963da2f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/2d.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"2d.d.ts","sourceRoot":"","sources":["../../../../../../source/script/public/gizmos/utils/engine/2d.ts"],"names":[],"mappings":";;;;AAAA,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAIjD,OAAO,EAAoD,IAAI,EAAE,MAAM,IAAI,CAAC;AAmB5E,qBAAa,QAAS,YAAW,eAAe;IAC5C,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAGjE,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAGlE,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;IAGzD,GAAG,EAAE,GAAG,CAAQ;IAChB,QAAQ,EAAE,GAAG,CAAQ;IACrB,aAAa,EAAE,GAAG,CAAQ;IAC1B,aAAa,EAAE,GAAG,CAAQ;IAC1B,SAAS,EAAE,GAAG,CAAQ;IACtB,cAAc,EAAE,GAAG,CAAQ;;IAiClC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhC,UAAU,CAAC,SAAS,EAAE,GAAG;IAyBzB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ;IAqClD,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAO9B,YAAY,CAAC,IAAI,EAAE,GAAG;IAItB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAOzC,cAAc,CAAC,IAAI,EAAE,GAAG;IAIxB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IA6BrD,QAAQ,CAAC,IAAI,EAAE,GAAG;IAIlB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAI5C,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAI7B,cAAc,CAAC,SAAS,EAAE,GAAG;IAe7B,eAAe,CAAC,SAAS,EAAE,GAAG;IAe9B,eAAe,CAAC,SAAS,EAAE,GAAG;IAe9B,aAAa,CAAC,SAAS,EAAE,GAAG;IA4B5B,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;IAkB7C,YAAY,CAAC,SAAS,EAAE,GAAG;IAiB3B,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;CAc9C;;AAED,wBAA8B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/3d.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/3d.d.ts new file mode 100644 index 0000000..f1e78db --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/3d.d.ts @@ -0,0 +1,67 @@ +declare module 'cc' { + interface Node { + modelComp?: ModelComponent; + modelColor?: Color; + } + interface RenderingSubMesh { + iBuffer?: ArrayBuffer; + vBuffer?: ArrayBuffer; + } +} +import { Camera, Color, Component, geometry, gfx, IVec3Like, Light, math, MeshRenderer, ModelComponent, Node, primitives, Material, Mesh, Layers, physics } from 'cc'; +import { IAddMeshToNodeOption, ICreateMeshOption, IMeshPrimitive, DynamicMeshPrimitive } from '../../defines'; +import EngineInterface from './engine-interface'; +export declare enum HighlightFace { + NONE = 0, + UP = 1, + DOWN = 2, + LEFT = 3, + RIGHT = 4, + FRONT = 5, + BACK = 6 +} +export declare class Engine3D implements EngineInterface { + static instance: Engine3D; + static createInstance(): Engine3D; + readonly panPlaneLayer: Readonly<Layers.Enum>; + readonly CullMode: Readonly<typeof gfx.CullMode>; + readonly AttributeName: Readonly<typeof gfx.AttributeName>; + readonly PrimitiveMode: Readonly<typeof gfx.PrimitiveMode>; + readonly LightType: Readonly<typeof Light.Type>; + readonly ProjectionType: Readonly<typeof Camera.ProjectionType>; + readonly FOVAxis: Readonly<typeof Camera.FOVAxis>; + protected constructor(); + create3DNode(name?: string): Node; + createMesh(primitive: IMeshPrimitive, opts?: ICreateMeshOption): Mesh; + transformToDynamicGeometry(primitive: IMeshPrimitive): primitives.IDynamicGeometry; + createDynamicMesh(primitive: DynamicMeshPrimitive, opts: (primitives.ICreateDynamicMeshOptions & ICreateMeshOption)): Mesh; + updateDynamicMesh(meshRenderer: MeshRenderer, subIndex: number, primitive: DynamicMeshPrimitive): void; + addMeshToNode(node: Node, mesh: any, opts?: IAddMeshToNodeOption, reuseMaterial?: Material): void; + setMeshSHCoefficients(node: Node, coefficients: Float32Array): void; + setMeshColor(node: Node, c: Color): void; + getMeshColor(node: Node): Color | undefined; + setNodeOpacity(node: Node, opacity: number): void; + getNodeOpacity(node: Node): number; + setMaterialProperty(node: Node, propName: string, value: any): void; + getRaycastResults(rootNode: Node, x: number, y: number, distance?: number, excludeMask?: number): any; + getRaycastResultsByNodes(nodes: Node[], x: number, y: number, distance: number | undefined, forSnap: boolean, excludeMask?: number): any; + raycast(scene: any, camera: any, layer: any, x: number, y: number, distance?: number, excludeMask?: number): any; + raycastAllColliders(camera: any, x: number, y: number): physics.PhysicsRayResult[] & { + ray?: geometry.Ray; + }; + getModel(node: Node): MeshRenderer | null; + updatePositions(comp: MeshRenderer, data: IVec3Like[]): void; + updateVBAttr(comp: MeshRenderer, attr: string, data: number[]): void; + updateIB(comp: MeshRenderer, data: number[]): void; + updateBoundingBox(meshComp: MeshRenderer, minPos?: math.Vec3, maxPos?: math.Vec3): void; + getBoundingBox(component: Component): import("../../../../utils/aabb").default | geometry.AABB | null; + getRootBoneNode(component: any): Node | null; + getRootBindPose(component: any): math.Mat4 | null; + getCameraData(component: Camera): any; + setCameraData(component: any, cameraData: any): void; + getLightData(component: any): any; + setLightData(component: any, lightData: any): void; +} +declare const _default: Engine3D; +export default _default; +//# sourceMappingURL=3d.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/3d.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/3d.d.ts.map new file mode 100644 index 0000000..928a40b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/3d.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"3d.d.ts","sourceRoot":"","sources":["../../../../../../source/script/public/gizmos/utils/engine/3d.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/engine-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/engine-interface.d.ts new file mode 100644 index 0000000..d293ca8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/engine-interface.d.ts @@ -0,0 +1,30 @@ +import { Node } from 'cc'; +interface EngineInterface { + create3DNode(name: string): Node; + createMesh(primitive: any): void; + addMeshToNode(node: any, mesh: any, opts: any, reuseMaterial?: any): void; + setMeshColor(node: any, c: any): void; + getMeshColor(node: any): any; + setNodeOpacity(node: any, opacity: number): void; + getNodeOpacity(node: any): number; + setMaterialProperty(node: any, propName: string, value: any): void; + getRaycastResults(rootNode: any, x: number, y: number): any; + raycast(scene: any, camera: any, layer: any, x: number, y: number): any; + getModel(node: any): any; + updateVBAttr(mesh: any, attr: any, data: any): void; + updateIB(mesh: any, data: any): void; + updateBoundingBox(meshComp: any, minPos: any, maxPos: any): void; + /** + * 获得模型相关组件的包围盒 + * @param {*} component: any + */ + getBoundingBox(component: any): any; + getRootBoneNode(component: any): any; + getRootBindPose(component: any): any; + getCameraData(component: any): any; + setCameraData(component: any, cameraData: any): void; + getLightData(component: any): any; + setLightData(component: any, lightData: any): void; +} +export default EngineInterface; +//# sourceMappingURL=engine-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/engine-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/engine-interface.d.ts.map new file mode 100644 index 0000000..0a5d11f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/engine-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"engine-interface.d.ts","sourceRoot":"","sources":["../../../../../../source/script/public/gizmos/utils/engine/engine-interface.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG1B,UAAU,eAAe;IACrB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;IAEjC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE1E,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACtC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAE7B,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC;IAElC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAEnE,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5D,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAExE,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAEzB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAErC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAEjE;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC;IAEpC,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC;IAErC,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC;IAErC,aAAa,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC;IACnC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC;IAErD,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC;IAElC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;CACtD;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/index.d.ts new file mode 100644 index 0000000..11da4b6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/index.d.ts @@ -0,0 +1,3 @@ +import EngineUtils from './3d'; +export default EngineUtils; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/index.d.ts.map new file mode 100644 index 0000000..1facd83 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/engine/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../source/script/public/gizmos/utils/engine/index.ts"],"names":[],"mappings":"AAIA,OAAO,WAAW,MAAM,MAAM,CAAC;AAC/B,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/external.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/external.d.ts new file mode 100644 index 0000000..cc4b676 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/external.d.ts @@ -0,0 +1,14 @@ +import EditorMath from '../../../utils/math'; +import aabb from '../../../utils/aabb'; +declare class External { + NodeUtils: import("../../../utils/node").NodeUtils; + EditorMath: typeof EditorMath; + EditorCamera: import("../../../3d/manager/camera").Camera; + GeometryUtils: { + aabb: typeof aabb; + calculateNormals: any; + }; +} +declare const external: External; +export default external; +//# sourceMappingURL=external.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/external.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/external.d.ts.map new file mode 100644 index 0000000..5686c31 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/external.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/external.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,OAAO,IAAI,MAAM,qBAAqB,CAAC;AAGvC,cAAM,QAAQ;IACH,SAAS,0CAAa;IACtB,UAAU,oBAAc;IACxB,YAAY,8CAAgB;IAC5B,aAAa;;;MAGlB;CACL;AAED,QAAA,MAAM,QAAQ,UAAiB,CAAC;AAEhC,eAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/index.d.ts new file mode 100644 index 0000000..a33d418 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/index.d.ts @@ -0,0 +1,3 @@ +import Utils from './3d'; +export default Utils; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/index.d.ts.map new file mode 100644 index 0000000..b625b20 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,CAAC;AACzB,eAAe,KAAK,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/misc.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/misc.d.ts new file mode 100644 index 0000000..338c828 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/misc.d.ts @@ -0,0 +1,10 @@ +import { Node, Vec3 } from 'cc'; +declare class GizmosUtils { + getCenter(nodes: any): any; + getCenterWorldPos(nodes: any[]): any; + getCenterWorldPos3D(nodes: Node[]): Vec3; + static LimitLerp(a: number, b: number, t: number, tMin: number, tMax: number): number; + getMaxCompInVec3(inVec3: Vec3): number; +} +export default GizmosUtils; +//# sourceMappingURL=misc.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/misc.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/misc.d.ts.map new file mode 100644 index 0000000..990dee9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/misc.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/misc.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAMhC,cAAM,WAAW;IACb,SAAS,CAAC,KAAK,EAAE,GAAG;IAQpB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE;IAmD9B,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE;WAInB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAM5E,gBAAgB,CAAC,MAAM,EAAE,IAAI;CAGvC;AAED,eAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/rect-transform-snapping.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/rect-transform-snapping.d.ts new file mode 100644 index 0000000..f11dc58 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/rect-transform-snapping.d.ts @@ -0,0 +1,111 @@ +import { Node, Size, Vec2, Vec3 } from 'cc'; +interface IWorldRect { + minPos: Vec3; + maxPos: Vec3; + center: Vec3; + width: number; + height: number; +} +interface IDistanceInfo { + left: IRectDistInfo[]; + right: IRectDistInfo[]; + top: IRectDistInfo[]; + bottom: IRectDistInfo[]; +} +interface IShapeInfo { + worldRect: IWorldRect; + distInfo: IDistanceInfo; +} +interface IRectDistInfo { + minDist: number; + minDistPosA: Vec3; + minDistPosB: Vec3; + axis: string; + targetShapeInfo?: IShapeInfo; +} +interface IRectSnapConfigData { + enableSnapping: boolean; + snapThreshold: number; +} +declare class SnapGuideline { + value: number; + lineVertices: Vec3[]; + axis: keyof (Vec3); + checkNode?: Node; + constructor(value: number, axis: keyof (Vec3), vertices: Vec3[]); +} +declare class SnapGuidelineGroup { + currentGuidelines: SnapGuideline[]; + guidelines: Map<number, SnapGuideline[]>; + clear(): void; + addGuideline(guideline: SnapGuideline): void; + snapToGuidelines(value: number, snapDist: number): number; +} +declare class RectTransformSnapping implements IRectSnapConfigData { + enableSnapping: boolean; + enableGridSnapping: boolean; + snapThreshold: number; + nodeSnapGuidelineGroups: SnapGuidelineGroup[]; + sidesAndMiddle: number[]; + guidelineColor: any; + canvasSnapColor: any; + canvasSnapGuidelineGroups: SnapGuidelineGroup[]; + shapeInfos: IShapeInfo[]; + currentMatchMinDistInfos: IRectDistInfo[]; + gridSpacingX: number; + gridSpacingY: number; + gridColor: any; + gridSnapGuidelineGroups: SnapGuidelineGroup[]; + getPureDataObject(): IRectSnapConfigData; + initFromData(data: IRectSnapConfigData): void; + lerp(from: number, to: number, ratio: number): number; + getWorldRectEx(node: Node): IWorldRect; + snapToGuidelinesOnAxis(guidelineGroups: SnapGuidelineGroup[], value: number, snapDist: number, axis: string): number; + getNodeGuidelinePos(node: Node, axis: keyof (Vec3), side: number): Vec3[]; + getNodeSnapGuidelines(parentNode: Node, node: Node, axis: keyof (Vec3), side: number): SnapGuideline[]; + clearCurrentNodeGuidelines(): void; + snapToNodeGuidelinesOnAxis(value: number, snapDist: number, axis: string): number; + snapPosToNodeGuidelines(worldPos: Vec3, worldSize: Size, snapDist: Vec2): Vec3; + snapSizeToNodeGuidelines(oriSizePos: Vec2, deltaSize: Vec2, snapDist: Vec2): Vec2; + calculateNodeSnapGuidelines(parentNode: Node, node: Node): void; + generateWorldRect(worldPos: Vec3, worldSize: Size): { + minPos: any; + maxPos: any; + center: Vec3; + width: number; + height: number; + }; + checkEqualSpacingOnSide(checkDistInfo: IDistanceInfo, side: keyof (IDistanceInfo), snapValue: number): { + matchDist: number; + matchDeltaDist: number; + sideMinDistShapeInfo: IShapeInfo | undefined; + matchSideDistInfos: IRectDistInfo[]; + } | null | undefined; + checkEqualSpacingOnAxis(distInfo: IDistanceInfo, value: number, axis: keyof (Vec3), snapValue: number): { + newValue: number; + matchDistInfos: IRectDistInfo[]; + matchShapeInfos: (IShapeInfo | undefined)[]; + } | null; + snapPosToEqualSpacing(worldPos: Vec3, worldSize: Size, snapDist: Vec2): Vec3; + calculateSpacingSnapGuidelines(parentNode: Node, node: Node): void; + gatherDistInfo(infoA: IShapeInfo, infoB: IShapeInfo): { + distInfoA: IDistanceInfo; + distInfoB: IDistanceInfo; + }; + concatDistInfo(dstDistInfo: IDistanceInfo, srcDistInfo: IDistanceInfo): void; + gatherShapeInfos(parentNode: Node, node: Node): IShapeInfo[] | null; + generateShapeInfo(worldRect: IWorldRect): IShapeInfo; + getDistInfoOfRect(rectA: IWorldRect, rectB: IWorldRect): IRectDistInfo | null; + calculateGridSnapGuidelines(): void; + clearCurrentGridGuidelines(): void; + snapToGridGuidelinesOnAxis(value: number, snapDist: number, axis: keyof (Vec3)): number; + snapPosToGridSnapGuidelines(worldPos: Vec3, worldSize: Size, snapDist: Vec2): Vec3; + snapSizeToGridGuidelines(oriSizePos: Vec3, deltaSize: Vec3, snapDist: Vec2): Vec3; + calculateCanvasSnapGuidelines(): void; + clearCurrentCanvasGuidelines(): void; + snapToCanvasSnapGuidelinesOnAxis(value: number, snapDist: number, axis: string): number; + snapPosToCanvasSnapGuidelines(worldPos: Vec3, worldSize: Size, snapDist: Vec2): Vec3; +} +declare const rectTransformSnapping: RectTransformSnapping; +export { SnapGuideline, SnapGuidelineGroup, RectTransformSnapping, IRectSnapConfigData, rectTransformSnapping, }; +//# sourceMappingURL=rect-transform-snapping.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/rect-transform-snapping.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/rect-transform-snapping.d.ts.map new file mode 100644 index 0000000..cd614b9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/rect-transform-snapping.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"rect-transform-snapping.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/rect-transform-snapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAe,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAIzD,UAAU,UAAU;IAChB,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,GAAG,EAAE,aAAa,EAAE,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAA;CAC1B;AAED,UAAU,UAAU;IAChB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;CAC3B;AAED,UAAU,aAAa;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,UAAU,mBAAmB;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,cAAM,aAAa;IACf,KAAK,SAAC;IACN,YAAY,EAAE,IAAI,EAAE,CAAM;IAC1B,IAAI,EAAE,MAAK,CAAC,IAAI,CAAC,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;gBAEL,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAKjE;AAED,cAAM,kBAAkB;IACpB,iBAAiB,EAAE,aAAa,EAAE,CAAM;IACxC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAa;IAErD,KAAK;IAIL,YAAY,CAAC,SAAS,EAAE,aAAa;IAWrC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAuBnD;AAED,cAAM,qBAAsB,YAAW,mBAAmB;IACtD,cAAc,UAAQ;IACtB,kBAAkB,UAAQ;IAC1B,aAAa,SAAK;IAElB,uBAAuB,uBAAwD;IAC/E,cAAc,WAAe;IAC7B,cAAc,MAA4B;IAG1C,eAAe,MAA8B;IAC7C,yBAAyB,uBAAwD;IAGjF,UAAU,EAAE,UAAU,EAAE,CAAM;IAC9B,wBAAwB,EAAE,aAAa,EAAE,CAAM;IAG/C,YAAY,SAAO;IACnB,YAAY,SAAO;IACnB,SAAS,MAAiB;IAC1B,uBAAuB,uBAAwD;IAExE,iBAAiB,IAAI,mBAAmB;IAOxC,YAAY,CAAC,IAAI,EAAE,mBAAmB;IAK7C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAI5C,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU;IAetC,sBAAsB,CAAC,eAAe,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAM3G,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM;IA4B/D,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM;IAuCnF,0BAA0B;IAO1B,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAIxE,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IAoBvE,wBAAwB,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IAa1E,2BAA2B,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAwBxD,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI;;;;;;;IAcjD,uBAAuB,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,MAAK,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,MAAM;;;;;;IAwCnG,uBAAuB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM;;;;;IAmDpG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IA8DrE,8BAA8B,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAoB3D,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU;;;;IA8CnD,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa;IAOrE,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IA0B7C,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU;IAYpD,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,GAAC,IAAI;IAwE3E,2BAA2B;IAmB3B,0BAA0B;IAK1B,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAK,CAAC,IAAI,CAAC;IAI7E,2BAA2B,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IAgB3E,wBAAwB,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IAgB1E,6BAA6B;IAwB7B,4BAA4B;IAK5B,gCAAgC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAI9E,6BAA6B,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;CAqBhF;AAED,QAAA,MAAM,qBAAqB,uBAA8B,CAAC;AAE1D,OAAO,EACH,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACxB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/set-util.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/set-util.d.ts new file mode 100644 index 0000000..5909f52 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/set-util.d.ts @@ -0,0 +1,28 @@ +/** + * Examples + * let setA = new Set([1, 2, 3, 4]), + * setB = new Set([2, 3]), + * setC = new Set([3, 4, 5, 6]); + * + * isSuperset(setA, setB); // => true + * union(setA, setC); // => Set [1, 2, 3, 4, 5, 6] + * intersection(setA, setC); // => Set [3, 4] + * symmetricDifference(setA, setC); // => Set [1, 2, 5, 6] + * difference(setA, setC); // => Set [1, 2] + */ +export default class SimpleSet<T> extends Set<T> { + map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): Array<U>; + mapSet<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): SimpleSet<U>; + clone(): SimpleSet<T>; + addAll(items: Iterable<T>): void; + deleteAll(items: Iterable<T>): void; + equals(setB: SimpleSet<T>): boolean; + toArray(): T[]; + union(setB: SimpleSet<T>): SimpleSet<T>; + intersection(setB: SimpleSet<T>): SimpleSet<T>; + symmetricDifference(setB: SimpleSet<T>): SimpleSet<T>; + difference(setB: SimpleSet<T>): SimpleSet<T>; + filter(callbackfn: (value: T, index: T, array: Set<T>) => boolean, thisArg?: any): SimpleSet<T>; +} +export declare function toSet<T>(array: Array<T>): SimpleSet<T>; +//# sourceMappingURL=set-util.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/set-util.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/set-util.d.ts.map new file mode 100644 index 0000000..36464d1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/set-util.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"set-util.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/set-util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IAIvF,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;IAI9F,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;IAIrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAMhC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAMnC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO;IAYnC,OAAO,IAAI,CAAC,EAAE;IAId,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAQvC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAU9C,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAYrD,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAQ5C,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;CASlG;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAEtD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/transform-tool-data.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/transform-tool-data.d.ts new file mode 100644 index 0000000..45399ba --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/transform-tool-data.d.ts @@ -0,0 +1,63 @@ +import { IVec3Like } from 'cc'; +declare const EventEmitter: any; +export interface ISnapConfigData { + position: IVec3Like; + rotation: number; + scale: number; + isPositionSnapEnabled: boolean; + isRotationSnapEnabled: boolean; + isScaleSnapEnabled: boolean; +} +declare class SnapConfigs extends EventEmitter { + private _position; + private _rotation; + private _scale; + private _isPositionSnapEnabled; + private _isRotationSnapEnabled; + private _isScaleSnapEnabled; + get position(): IVec3Like; + set position(value: IVec3Like); + get rotation(): number; + set rotation(value: number); + get scale(): number; + set scale(value: number); + get isPositionSnapEnabled(): boolean; + set isPositionSnapEnabled(value: boolean); + get isRotationSnapEnabled(): boolean; + set isRotationSnapEnabled(value: boolean); + get isScaleSnapEnabled(): boolean; + set isScaleSnapEnabled(value: boolean); + getPureDataObject(): ISnapConfigData; + initFromData(data: ISnapConfigData): void; +} +declare type TransformToolDataToolNameType = 'position' | 'rotation' | 'scale' | 'rect'; +declare type TransformToolDataCoordinateType = 'local' | 'global'; +declare type TransformToolDataPivotType = 'pivot' | 'center'; +declare class TransformToolData extends EventEmitter { + private _toolName; + private _coordinate; + private _pivot; + private _isLocked; + private _is2D; + private _scale2D; + private _snapConfigs; + constructor(); + get toolName(): TransformToolDataToolNameType; + set toolName(value: TransformToolDataToolNameType); + get coordinate(): TransformToolDataCoordinateType; + set coordinate(value: TransformToolDataCoordinateType); + get pivot(): TransformToolDataPivotType; + set pivot(value: TransformToolDataPivotType); + get isLocked(): boolean; + set isLocked(value: boolean); + get is2D(): boolean; + set is2D(value: boolean); + get scale2D(): number; + set scale2D(value: number); + set cameraOrthoHeight(value: number); + get snapConfigs(): SnapConfigs; + set snapConfigs(value: SnapConfigs); +} +declare const transformToolData: TransformToolData; +export { TransformToolData, transformToolData, SnapConfigs, TransformToolDataCoordinateType, TransformToolDataPivotType, TransformToolDataToolNameType }; +//# sourceMappingURL=transform-tool-data.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/transform-tool-data.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/transform-tool-data.d.ts.map new file mode 100644 index 0000000..76959b6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/transform-tool-data.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"transform-tool-data.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/transform-tool-data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAQ,MAAM,IAAI,CAAC;AAErC,QAAA,MAAM,YAAY,KAAoB,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAA;CAC9B;AAED,cAAM,WAAY,SAAQ,YAAY;IAClC,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,mBAAmB,CAAS;IAEpC,IAAW,QAAQ,IAAI,SAAS,CAE/B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,SAAS,EAKnC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAGhC;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAG7B;IAED,IAAW,qBAAqB,YAE/B;IACD,IAAW,qBAAqB,CAAC,KAAK,SAAA,EAGrC;IAED,IAAW,qBAAqB,YAE/B;IACD,IAAW,qBAAqB,CAAC,KAAK,SAAA,EAGrC;IAED,IAAW,kBAAkB,YAE5B;IACD,IAAW,kBAAkB,CAAC,KAAK,SAAA,EAGlC;IAEM,iBAAiB,IAAI,eAAe;IAepC,YAAY,CAAC,IAAI,EAAE,eAAe;CAiB5C;AAED,aAAK,6BAA6B,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAChF,aAAK,+BAA+B,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC1D,aAAK,0BAA0B,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErD,cAAM,iBAAkB,SAAQ,YAAY;IACxC,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAO;IAGvB,OAAO,CAAC,YAAY,CAAkC;;IAMtD,IAAI,QAAQ,kCAEX;IACD,IAAI,QAAQ,CAAC,KAAK,+BAAA,EAKjB;IAED,IAAI,UAAU,oCAEb;IAED,IAAI,UAAU,CAAC,KAAK,iCAAA,EAKnB;IAED,IAAI,KAAK,+BAER;IACD,IAAI,KAAK,CAAC,KAAK,4BAAA,EAKd;IAED,IAAI,QAAQ,YAEX;IACD,IAAI,QAAQ,CAAC,KAAK,SAAA,EAGjB;IAED,IAAI,IAAI,YAEP;IACD,IAAI,IAAI,CAAC,KAAK,SAAA,EAGb;IAED,IAAI,OAAO,WAEV;IACD,IAAI,OAAO,CAAC,KAAK,QAAA,EAGhB;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAElC;IAED,IAAW,WAAW,IAAI,WAAW,CAEpC;IACD,IAAW,WAAW,CAAC,KAAK,EAAE,WAAW,EAExC;CACJ;AAED,QAAA,MAAM,iBAAiB,mBAA0B,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/utils-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/utils-interface.d.ts new file mode 100644 index 0000000..0a0ff02 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/utils-interface.d.ts @@ -0,0 +1,58 @@ +import GizmoUtils from './misc'; +declare class UtilsInterface { + GizmoUtils: GizmoUtils; + baseDist: number; + constructor(); + /** + * 锁定并隐藏鼠标 + */ + requestPointerLock(): void; + /** + * 退出鼠标的锁定 + */ + exitPointerLock(): void; + /** + * 发送消息 + * @param {消息内容} message + * @param {参数} params + */ + emitNodeMessage(message: string, ...params: any[]): void; + /** + * 广播消息 + * @param {消息内容} message + * @param {参数} params + */ + broadcastMessage(message: string, ...params: any[]): void; + /** + * 当Gizmo操作的结点数据改变时 + * @param {节点} node + */ + onNodeChanged(node: string, ...params: any[]): void; + /** + * 获取Gizmo的根节点 + */ + getGizmoRoot(): void; + /** + * 通知引擎立刻刷新,用于2dx中 + */ + repaintEngine(): void; + /** + * 记录结点当前信息 + * @param {节点} nodes + */ + recordChanges(nodes: any[]): void; + /** + * 提交结点变化信息 + * @param {*} nodes + */ + commitChanges(nodes: any[]): void; + clampSize(inSize: any, precision?: number): void; + /** + * 选中某个节点 + * @param {*} uuid + */ + select(uuid: string): void; + changePointer(type: string): void; +} +export default UtilsInterface; +//# sourceMappingURL=utils-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/utils-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/utils-interface.d.ts.map new file mode 100644 index 0000000..e9ad00f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/gizmos/utils/utils-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils-interface.d.ts","sourceRoot":"","sources":["../../../../../source/script/public/gizmos/utils/utils-interface.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,QAAQ,CAAC;AAIhC,cAAM,cAAc;IACT,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,SAAK;;IAMpB;;OAEG;IACH,kBAAkB;IAElB;;OAEG;IACH,eAAe;IAEf;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;IAEjD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;IAElD;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;IAE5C;;OAEG;IACH,YAAY;IAEZ;;OAEG;IACH,aAAa;IAEb;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE;IAE1B;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE;IAE1B,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,SAAI;IAUpC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM;IAEnB,aAAa,CAAC,IAAI,EAAE,MAAM;CAC7B;AAED,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/ipc/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/ipc/utils.d.ts new file mode 100644 index 0000000..0634d55 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/ipc/utils.d.ts @@ -0,0 +1,36 @@ +export interface DataItem { + message: string; + arguments: any[]; + callback: Function; + stack: string; +} +/** + * 数据存储器 + */ +export declare class DataStorage { + private _id; + private _map; + /** + * 添加一个数据 + * @param data + */ + add(data: DataItem): number; + /** + * 移除一个数据 + * @param id + */ + remove(id: number | string): void; + /** + * 查询一个数据 + * @param id + */ + get(id: number | string | undefined): DataItem | null; +} +export declare function encodeArgs(item: any): any; +export declare function decodeArgs(item: any): any; +export interface SendItem { + callback: Function; + stack: string; + timer: any; +} +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/ipc/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/ipc/utils.d.ts.map new file mode 100644 index 0000000..90ee53d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/ipc/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../source/script/public/ipc/utils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,IAAI,CAAkC;IAE9C;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ;IAMlB;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAI1B;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAOtC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,OAoBnC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,OAoBnC;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;CACd"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/operation/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/operation/index.d.ts new file mode 100644 index 0000000..ec15edb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/operation/index.d.ts @@ -0,0 +1,81 @@ +import { ISizeLike } from 'cc'; +import { IDragEvent, ISceneKeyboardEvent, ISceneMouseEvent } from '../../../../@types/private'; +export declare type SceneMouseEvent = 'mousedown' | 'mousemove' | 'mouseup' | 'mousewheel'; +export declare type SceneKeyboardEvent = 'keydown' | 'keyup'; +export declare type SceneDragEvent = 'onDragOver' | 'onDrop'; +export declare type OperationEvent = SceneDragEvent | SceneKeyboardEvent | SceneMouseEvent | 'resize'; +/** + * 所有场景的操作管理 + */ +declare class Operation { + private _events; + constructor(); + /** + * 锁定鼠标 + */ + requestPointerLock(): void; + /** + * 退出锁定鼠标 + */ + exitPointerLock(): void; + /** + * 更改鼠标样式 + * @param {*} type + */ + changePointer(type: string): void; + /** + * 发送 + * @param {*} message + * @param {...any} args + */ + private _emit; + emit(type: SceneKeyboardEvent, arg: ISceneKeyboardEvent): void; + emit(type: SceneMouseEvent, arg: ISceneMouseEvent): void; + emit(type: SceneDragEvent, arg: IDragEvent): void; + emit(type: 'resize', arg: ISizeLike): void; + /** + * 发送鼠标相关事件 + * @param {*} message + * @param {...any} args + */ + private _emitMouseEvent; + /** + * 重写 on 方法 + * @param {String} type + * @param {Function} listener + * @param {Number} priority 数值越大优先级越高 + * @memberof Operation + */ + on(type: SceneKeyboardEvent, listener: (event: ISceneKeyboardEvent) => boolean | void, priority?: number | undefined): this; + on(type: SceneMouseEvent, listener: (event: ISceneMouseEvent) => boolean | void, priority?: number | undefined): this; + on(type: SceneDragEvent, listener: (event: IDragEvent) => boolean | any, priority?: number | undefined): this; + on(type: 'resize', listener: (size: ISizeLike) => any, priority?: number | undefined): this; + /** + * 重写 addListener 方法 + * @param {String} type + * @param {Function} listener + * @param {Number} priority + * @memberof Operation + */ + addListener(type: SceneKeyboardEvent, listener: (event: ISceneKeyboardEvent) => boolean | void, priority?: number | undefined): this; + addListener(type: SceneMouseEvent, listener: (event: ISceneMouseEvent) => boolean | void, priority?: number | undefined): this; + addListener(type: SceneDragEvent, listener: (event: IDragEvent) => boolean | any, priority?: number | undefined): this; + addListener(type: 'resize', listener: (size: ISizeLike) => any, priority?: number | undefined): this; + /** + * 移除监听器 + * @param type + * @param listener + */ + removeListener(type: SceneKeyboardEvent, listener: (event: ISceneKeyboardEvent) => boolean | void): void; + removeListener(type: SceneMouseEvent, listener: (event: ISceneMouseEvent) => boolean | void): void; + removeListener(type: SceneDragEvent, listener: (event: IDragEvent) => boolean | any): void; + removeListener(type: 'resize', listener: (size: ISizeLike) => any): void; +} +declare const _default: Operation; +export default _default; +export declare enum OperationPriority { + Preview = 999, + Gizmo = 99, + Camera = 98 +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/operation/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/operation/index.d.ts.map new file mode 100644 index 0000000..aa3e734 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/operation/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/script/public/operation/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection-logic.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection-logic.d.ts new file mode 100644 index 0000000..2282a49 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection-logic.d.ts @@ -0,0 +1,30 @@ +import '../gizmos/utils/set-util'; +import SimpleSet from '../gizmos/utils/set-util'; +export declare type UUID = string; +export declare type ProcessResult = { + shouldSelects: SimpleSet<UUID>; + shouldUnselects: SimpleSet<UUID>; +}; +/** + * GizmoSelectionLogic的任意修改都必须保证 + * 9.gizmo-selection.spec.js的测试通过 + */ +export default class GizmoSelectionLogic { + /** + * 用于记录被处理过的节点 + */ + buffer: SimpleSet<UUID>; + /** + * 表示本次从鼠标按下到抬起之前,被选中的节点 + */ + selected: SimpleSet<UUID>; + /** + * 表示上一次鼠标抬起后,被选中的节点 + */ + lastSelects: SimpleSet<UUID>; + process(currents: UUID[], metaKey?: boolean): ProcessResult; + select(uuids: SimpleSet<UUID>): void; + clear(): void; + confirm(): void; +} +//# sourceMappingURL=gizmo-selection-logic.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection-logic.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection-logic.d.ts.map new file mode 100644 index 0000000..f48a5aa --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection-logic.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-selection-logic.d.ts","sourceRoot":"","sources":["../../../../source/script/public/selection/gizmo-selection-logic.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAClC,OAAO,SAAS,MAAM,0BAA0B,CAAC;AAEjD,oBAAY,IAAI,GAAG,MAAM,CAAC;AAC1B,oBAAY,aAAa,GAAG;IACxB,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CACpC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC;;OAEG;IACI,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAyB;IAEvD;;OAEG;IACI,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAyB;IAEzD;;OAEG;IACI,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAyB;IAErD,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,UAAQ,GAAG,aAAa;IA6BhE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;IAItB,KAAK;IAML,OAAO;CAIjB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection.d.ts new file mode 100644 index 0000000..48401b0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection.d.ts @@ -0,0 +1,32 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +import GizmoOperationEventListener from '../gizmos/3d/elements/listener/gizmo-operation-event-listener'; +import GizmoSelectionLogic, { UUID } from './gizmo-selection-logic'; +import SimpleSet from '../gizmos/utils/set-util'; +/** + * 用于管理gizmo内部node选中状态的管理器 + * 这是一个简化版的Selection管理器 + * gizmo-node的选中/反选状态不能破坏原来Selection的内部平衡 + * + * Event: + * Selection.on('select_gizmo', (uuids) => { + * // uuid 当前选中的节点 + * // uuids 当前所有被选中的节点数据 + * }); + * Selection.on('unselect_gizmo', (uuids) => { + * // uuid 当前取消选中的节点 + * // uuids 当前所有被选中的节点数据 + * }); + */ +export default class GizmoSelection extends EventEmitter { + private readonly gizmoOperationEventListeners; + logic: GizmoSelectionLogic; + constructor(gizmoOperationEventListeners: GizmoOperationEventListener[]); + processCurrent(currents: UUID[], region?: boolean, metaKey?: boolean): void; + select(uuids: SimpleSet<UUID>): void; + unselect(uuids: SimpleSet<UUID>): void; + clear(): void; + confirm(): void; + unselectAll(): void; +} +//# sourceMappingURL=gizmo-selection.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection.d.ts.map new file mode 100644 index 0000000..1874ae1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/gizmo-selection.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gizmo-selection.d.ts","sourceRoot":"","sources":["../../../../source/script/public/selection/gizmo-selection.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,2BAA2B,MAAM,+DAA+D,CAAC;AACxG,OAAO,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,SAAoB,MAAM,0BAA0B,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,YAAY;IAOhD,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAL1C,KAAK,sBAA6B;gBAKpB,4BAA4B,EAAE,2BAA2B,EAAE;IAKzE,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,UAAO,EAAE,OAAO,UAAQ;IAe/D,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;IAa7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;IAa/B,KAAK;IAIL,OAAO;IAIP,WAAW;CAMrB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/index.d.ts new file mode 100644 index 0000000..66d4b03 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/index.d.ts @@ -0,0 +1,72 @@ +/// <reference types="node" /> +import { EventEmitter } from 'events'; +import UuidArray from './uuid-array'; +/** + * 节点选择管理器 + * + * 因为场景需要根据选中的节点去渲染 gizmo 等物体,所以需要单独管理一套。 + * 理论上应该同 Editor 内的 Selection 扩展管理的 node 数据一致。 + * + * Event: + * Selection.on('select', (uuid, uuids) => { + * // uuid 当前选中的节点 + * // uuids 当前所有被选中的节点数据 + * }); + * Selection.on('unselect', (uuid, uuids) => { + * // uuid 当前取消选中的节点 + * // uuids 当前所有被选中的节点数据 + * }); + */ +declare class Selection extends EventEmitter { + selectUuids: UuidArray; + unselectUuids: UuidArray; + private uuids; + private noticeTimer; + private _hover?; + constructor(); + /** + * 判断节点是否选中 + * @param {*} uuid + */ + isSelect(uuid: string): boolean; + /** + * 查询所有选中的节点 uuids 数组 + */ + query(): string[]; + /** + * 选中某个节点 + * @param {*} uuid + */ + select(uuid: string): void; + /** + * 取消某个节点的选中状态 + * @param {*} uuid + */ + unselect(uuid: string): void; + selectGizmo(uuid: string): void; + unselectGizmo(uuid: string): void; + clearGizmo(): void; + /** + * 取消所有节点的选中状态 + */ + clear(): void; + /** + * 将缓存的队列通知给其他扩展 + */ + notice(): void; + /** + * 通知管理器,该节点已经在编辑器内被选中 + * 这时候不需要发送选中消息给编辑器 + * @param {*} uuid + */ + _select(uuid: string): void; + /** + * 通知管理器,该节点已经在编辑器内被取消选中 + * 这时候不需要发送选中消息给编辑器 + * @param {*} uuid + */ + _unselect(uuid: string): void; +} +declare const _default: Selection; +export default _default; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/index.d.ts.map new file mode 100644 index 0000000..fa8993a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/script/public/selection/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,cAAM,SAAU,SAAQ,YAAY;IACzB,WAAW,EAAE,SAAS,CAAmB;IACzC,aAAa,EAAE,SAAS,CAAmB;IAElD,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,MAAM,CAAC,CAAU;;IAOzB;;;OAGG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B;;OAEG;IACI,KAAK;IAIZ;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM;IAgB1B;;;OAGG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM;IAYrB,WAAW,CAAC,IAAI,EAAE,MAAM;IAOxB,aAAa,CAAC,IAAI,EAAE,MAAM;IAO1B,UAAU;IAMjB;;OAEG;IACI,KAAK;IAYZ;;OAEG;IACI,MAAM;IAWb;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM;IAS3B;;;;OAIG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM;CAQhC;;AAKD,wBAA+B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/uuid-array.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/uuid-array.d.ts new file mode 100644 index 0000000..75b7071 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/uuid-array.d.ts @@ -0,0 +1,13 @@ +declare class UuidArray { + uuids: string[]; + constructor(); + add(uuid: string): boolean; + remove(uuid: string): boolean; + forEach(handler: any): void; + clear(): void; + indexOf(uuid: string): number; + last(): string; + first(): string; +} +export default UuidArray; +//# sourceMappingURL=uuid-array.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/uuid-array.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/uuid-array.d.ts.map new file mode 100644 index 0000000..65b81bf --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/public/selection/uuid-array.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uuid-array.d.ts","sourceRoot":"","sources":["../../../../source/script/public/selection/uuid-array.ts"],"names":[],"mappings":"AAEA,cAAM,SAAS;IACJ,KAAK,EAAE,MAAM,EAAE,CAAM;;IAG5B,GAAG,CAAC,IAAI,EAAE,MAAM;IAShB,MAAM,CAAC,IAAI,EAAE,MAAM;IASnB,OAAO,CAAC,OAAO,EAAE,GAAG;IAIpB,KAAK;IAKL,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,IAAI;IAIJ,KAAK;CAGR;AAED,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/aabb.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/aabb.d.ts new file mode 100644 index 0000000..4359658 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/aabb.d.ts @@ -0,0 +1,130 @@ +import { Mat4, Quat, Vec3 } from 'cc'; +/** + * @zh + * 基础几何 轴对齐包围盒。 + */ +export default class aabb { + /** + * @en + * create a new aabb + * @zh + * 创建一个新的 aabb 实例。 + * @param px - aabb 的原点的 X 坐标。 + * @param py - aabb 的原点的 Y 坐标。 + * @param pz - aabb 的原点的 Z 坐标。 + * @param hw - aabb 宽度的一半。 + * @param hh - aabb 高度的一半。 + * @param hl - aabb 长度的一半。 + * @returns 返回新创建的 aabb 实例。 + */ + static create(px?: number, py?: number, pz?: number, hw?: number, hh?: number, hl?: number): aabb; + /** + * @en + * clone a new aabb + * @zh + * 克隆一个 aabb。 + * @param a - 克隆的目标。 + * @returns 克隆出的 aabb。 + */ + static clone(a: aabb): aabb; + /** + * @en + * copy the values from one aabb to another + * @zh + * 将从一个 aabb 的值复制到另一个 aabb。 + * @param {aabb} out 接受操作的 aabb。 + * @param {aabb} a 被复制的 aabb。 + * @return {aabb} out 接受操作的 aabb。 + */ + static copy(out: aabb, a: aabb): aabb; + /** + * @en + * create a new aabb from two corner points + * @zh + * 从两个点创建一个新的 aabb。 + * @param out - 接受操作的 aabb。 + * @param minPos - aabb 的最小点。 + * @param maxPos - aabb 的最大点。 + * @returns {aabb} out 接受操作的 aabb。 + */ + static fromPoints(out: aabb, minPos: Vec3, maxPos: Vec3): aabb; + /** + * @en + * Set the components of a aabb to the given values + * @zh + * 将 aabb 的属性设置为给定的值。 + * @param {aabb} out 接受操作的 aabb。 + * @param px - aabb 的原点的 X 坐标。 + * @param py - aabb 的原点的 Y 坐标。 + * @param pz - aabb 的原点的 Z 坐标。 + * @param hw - aabb 宽度的一半。 + * @param hh - aabb 高度的一半。 + * @param hl - aabb 长度度的一半。 + * @return {aabb} out 接受操作的 aabb。 + */ + static set(out: aabb, px: number, py: number, pz: number, hw: number, hh: number, hl: number): aabb; + /** + * @zh + * 合并两个 aabb 到 out。 + * @param out 接受操作的 aabb。 + * @param a 输入的 aabb。 + * @param b 输入的 aabb。 + * @returns {aabb} out 接受操作的 aabb。 + */ + static merge(out: aabb, a: aabb, b: aabb): aabb; + /** + * @zh + * 变换一个 aabb 到 out 中。 + * @param out 接受操作的 aabb。 + * @param a 输入的源 aabb。 + * @param matrix 矩阵。 + * @returns {aabb} out 接受操作的 aabb。 + */ + static transform(out: aabb, a: aabb, matrix: Readonly<Mat4>): aabb; + /** + * @zh + * 本地坐标的中心点。 + */ + center: Vec3; + /** + * @zh + * 长宽高的一半。 + */ + halfExtents: Vec3; + constructor(px?: number, py?: number, pz?: number, hw?: number, hh?: number, hl?: number); + /** + * @en + * Get the bounding points of this shape + * @zh + * 获取 aabb 的最小点和最大点。 + * @param {Vec3} minPos 最小点。 + * @param {Vec3} maxPos 最大点。 + */ + getBoundary(minPos: Vec3, maxPos: Vec3): void; + /** + * @en + * Transform this shape + * @zh + * 将 out 根据这个 aabb 的数据进行变换。 + * @param m 变换的矩阵。 + * @param pos 变换的位置部分。 + * @param rot 变换的旋转部分。 + * @param scale 变换的缩放部分。 + * @param out 变换的目标。 + */ + transform(m: Mat4, pos: Vec3 | null, rot: Quat | null, scale: Vec3 | null, out: aabb): void; + /** + * @zh + * 获得克隆。 + * @returns {aabb} + */ + clone(): aabb; + /** + * @zh + * 拷贝对象。 + * @param a 拷贝的目标。 + * @returns {aabb} + */ + copy(a: aabb): aabb; +} +//# sourceMappingURL=aabb.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/aabb.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/aabb.d.ts.map new file mode 100644 index 0000000..bc2c851 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/aabb.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"aabb.d.ts","sourceRoot":"","sources":["../../../source/script/utils/aabb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAuB5C;;;GAGG;AAEH,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB;;;;;;;;;;;;OAYG;WACW,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM;IAIjG;;;;;;;OAOG;WACW,KAAK,CAAC,CAAC,EAAE,IAAI;IAI3B;;;;;;;;OAQG;WACW,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI;IAO5C;;;;;;;;;OASG;WACW,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI;IAMrE;;;;;;;;;;;;;OAaG;WACW,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAM1G;;;;;;;OAOG;WACW,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI;IAUtD;;;;;;;OAOG;WACW,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAMzE;;;OAGG;IACI,MAAM,EAAE,IAAI,CAAC;IAEpB;;;OAGG;IACI,WAAW,EAAE,IAAI,CAAC;gBAEb,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI;IAK1D;;;;;;;OAOG;IACI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IAK7C;;;;;;;;;;OAUG;IACI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI;IAK3F;;;;OAIG;IACI,KAAK,IAAI,IAAI;IAIpB;;;;;OAKG;IACI,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI;CAG7B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/assertion.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/assertion.d.ts new file mode 100644 index 0000000..9e3814b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/assertion.d.ts @@ -0,0 +1,14 @@ +/** + * Asserts that the expression is non-nullable, i.e. is neither `null` nor `undefined`. + * @param expr Testing expression. + * @param message Optional message. + */ +export declare function assertIsNonNullable<T>(expr: T, message?: string): asserts expr is NonNullable<T>; +/** + * Asserts that the expression evaluated to `true`. + * @param expr Testing expression. + * @param message Optional message. + */ +export declare function assertIsTrue(expr: unknown, message?: string): asserts expr; +export declare function assertsArrayIndex<T>(array: T[], index: number): void; +//# sourceMappingURL=assertion.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/assertion.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/assertion.d.ts.map new file mode 100644 index 0000000..bc91c16 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/assertion.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"assertion.d.ts","sourceRoot":"","sources":["../../../source/script/utils/assertion.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAEhG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAM1E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,QAE7D"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/asset.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/asset.d.ts new file mode 100644 index 0000000..f988123 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/asset.d.ts @@ -0,0 +1,9 @@ +import { Asset } from 'cc'; +/** + * 加载指定资源,不使用缓存。 + * @param uuid 资源 UUID。 + * @param type 资源类型,如果指定则判断指定资源是否为目标类型,若验证出错则抛出异常。 + * @returns 指定的资源。 + */ +export declare function loadAssetUncached<TAsset extends Asset = Asset>(uuid: string, type?: new () => TAsset): Promise<TAsset>; +//# sourceMappingURL=asset.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/asset.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/asset.d.ts.map new file mode 100644 index 0000000..e63b7d4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/asset.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../source/script/utils/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,IAAI,CAAC;AAGzC;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,MAAM,mBAa1G"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/callbacks-invoker.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/callbacks-invoker.d.ts new file mode 100644 index 0000000..931d82b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/callbacks-invoker.d.ts @@ -0,0 +1,99 @@ +declare class CallbackInfo { + callback: Function; + target: Object | undefined; + once: boolean; + off: Function | undefined; + set(callback: Function, target?: Object, once?: boolean, off?: Function): void; +} +declare class CallbackList { + callbackInfos: Array<CallbackInfo | null>; + isInvoking: boolean; + containCanceled: boolean; + /** + * @zh + * 从列表中移除与指定目标相同回调函数的事件。 + * @param cb - 指定回调函数 + */ + removeByCallback(cb: Function): void; + /** + * @zh + * 从列表中移除与指定目标相同调用者的事件。 + * @param target - 指定调用者 + */ + removeByTarget(target: Object): void; + /** + * @zh + * 移除指定编号事件。 + * + * @param index - 指定编号。 + */ + cancel(index: number): void; + /** + * @zh + * 注销所有事件。 + */ + cancelAll(): void; + purgeCanceled(): void; + clear(): void; +} +interface ICallbackTable { + [x: string]: CallbackList | undefined; +} +/** + * @zh + * CallbacksInvoker 用来根据 Key 管理事件监听器列表并调用回调方法。 + * @class CallbacksInvoker + */ +export declare class CallbacksInvoker { + protected _callbackTable: ICallbackTable; + /** + * @zh + * 事件添加管理 + * @param key - 一个监听事件类型的字符串。 + * @param callback - 事件分派时将被调用的回调函数。 + * @param arget - 调用回调的目标。可以为空。 + * @param once - 是否只调用一次。 + */ + on(key: string, callback: Function, target?: Object, once?: boolean): void; + /** + * @zh + * 检查指定事件是否已注册回调。 + * + * @param key - 一个监听事件类型的字符串。 + * @param callback - 事件分派时将被调用的回调函数。 + * @param target - 调用回调的目标。 + * @return - 指定事件是否已注册回调。 + */ + hasEventListener(key: string, callback?: Function, target?: Object): boolean; + /** + * @zh + * 移除在特定事件类型中注册的所有回调或在某个目标中注册的所有回调。 + * + * @param keyOrTarget - 要删除的事件键或要删除的目标。 + */ + removeAll(keyOrTarget: string | Object): void; + removeAllListeners(): void; + /** + * @zh + * 删除之前与同类型,回调,目标注册的回调。 + * + * @param key - 一个监听事件类型的字符串。 + * @param callback - 移除指定注册回调。如果没有给,则删除全部同事件类型的监听。 + * @param target - 调用回调的目标。 + */ + off(key: string, callback?: Function, target?: Object): void; + /** + * @zh + * 事件派发 + * + * @param key - 一个监听事件类型的字符串 + * @param p1 - 派发的第一个参数。 + * @param p2 - 派发的第二个参数。 + * @param p3 - 派发的第三个参数。 + * @param p4 - 派发的第四个参数。 + * @param p5 - 派发的第五个参数。 + */ + emit(key: string, ...args: any[]): void; +} +export {}; +//# sourceMappingURL=callbacks-invoker.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/callbacks-invoker.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/callbacks-invoker.d.ts.map new file mode 100644 index 0000000..98fcb91 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/callbacks-invoker.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"callbacks-invoker.d.ts","sourceRoot":"","sources":["../../../source/script/utils/callbacks-invoker.ts"],"names":[],"mappings":"AAUA,cAAM,YAAY;IACP,QAAQ,EAAE,QAAQ,CAAS;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IACvC,IAAI,UAAS;IACb,GAAG,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE1B,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ;CAMjF;AAMD,cAAM,YAAY;IACP,aAAa,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAM;IAC/C,UAAU,UAAS;IACnB,eAAe,UAAS;IAE/B;;;;OAIG;IACI,gBAAgB,CAAC,EAAE,EAAE,QAAQ;IAUpC;;;;OAIG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM;IAWpC;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM;IAS3B;;;OAGG;IACI,SAAS;IAYT,aAAa;IAUb,KAAK;CAMf;AAOD,UAAU,cAAc;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;CACzC;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IACzB,SAAS,CAAC,cAAc,EAAE,cAAc,CAAmB;IAE3D;;;;;;;OAOG;IACI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAU1E;;;;;;;;OAQG;IACI,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM;IA+BzE;;;;;OAKG;IACI,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IA+BtC,kBAAkB;IAKzB;;;;;;;OAOG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM;IAuB5D;;;;;;;;;;OAUG;IACI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAgC1C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/device-adapter.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/device-adapter.d.ts new file mode 100644 index 0000000..6d9500b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/device-adapter.d.ts @@ -0,0 +1,41 @@ +declare class DeviceAdapter { + private _screenWidth; + private _screenHeight; + private _scale; + private _enable; + private _engineWidth; + private _engineHeight; + get screenWidth(): number; + set screenWidth(w: number); + get screenHeight(): number; + set screenHeight(h: number); + get width(): number; + set width(w: number); + get height(): number; + set height(h: number); + get scale(): number; + get enable(): boolean; + set enable(enable: boolean); + private _limitScale; + /** + * 在切换不同设备时计算engine的实际宽高,fullScreen和scale互斥 + * @param width 目标宽度 + * @param height 目标高度 + * @param fit 是否适应窗口(width为宽高比时也使用该参数) + * @param rotate 是否旋转 + * @param scale 缩放比例 + * @returns + */ + fitScreen(width: number, height: number, fit?: boolean, rotate?: boolean, scale?: number): void; + ratioToSize(w: number, h: number): { + width: number; + height: number; + }; + reset(width: number, height: number): void; + get deltaX(): number; + get deltaY(): number; +} +declare const WebAdapter: DeviceAdapter; +declare const NativeAdapter: DeviceAdapter; +export { WebAdapter, NativeAdapter }; +//# sourceMappingURL=device-adapter.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/device-adapter.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/device-adapter.d.ts.map new file mode 100644 index 0000000..173addc --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/device-adapter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"device-adapter.d.ts","sourceRoot":"","sources":["../../../source/script/utils/device-adapter.ts"],"names":[],"mappings":"AAMA,cAAM,aAAa;IAEf,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAE1B,IAAI,WAAW,IAGI,MAAM,CADxB;IACD,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,EAExB;IAED,IAAI,YAAY,IAGI,MAAM,CADzB;IACD,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,EAEzB;IAED,IAAI,KAAK,IAGI,MAAM,CADlB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAElB;IAED,IAAI,MAAM,IAGI,MAAM,CADnB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAEnB;IAED,IAAI,KAAK,WAER;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAEzB;IAED,OAAO,CAAC,WAAW;IAcnB;;;;;;;;OAQG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAQ,EAAE,MAAM,UAAQ,EAAE,KAAK,SAAI;IAmC/E,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;IAmBhC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQ1C,IAAW,MAAM,WAEhB;IACD,IAAW,MAAM,WAEhB;CACJ;AAED,QAAA,MAAM,UAAU,eAAsB,CAAC;AACvC,QAAA,MAAM,aAAa,eAAsB,CAAC;AAM1C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/decode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/decode.d.ts new file mode 100644 index 0000000..767ee29 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/decode.d.ts @@ -0,0 +1,28 @@ +import { Component, Node, Prefab } from 'cc'; +import { INode, IScene, ITargetOverrideInfo } from '../../../../@types/public'; +export declare function decodeMountedRoot(compOrNode: Node | Component, mountedRoot?: string): void; +/** + * 解码一个场景 dump 数据 + * @param dump + * @param scene + */ +export declare function decodeScene(dump: IScene, scene?: any): Promise<void>; +/** + * 解码一个 dump 数据 + * @param dump + * @param node + */ +export declare function decodeNode(dump: INode, node?: Node, excludeComps?: any): Promise<Node | null>; +/** + * 解码一个 dump 补丁到指定的 node 上 + * @param path + * @param dump + * @param node + */ +export declare function decodePatch(path: string, dump: any, node: any): Promise<any>; +export declare function resetProperty(node: any, path: string): void; +export declare function updatePropertyFromNull(node: any, path: string): void; +export declare function decodeTargetOverrides(dumpedTargetOverrides: ITargetOverrideInfo[]): Prefab._utils.TargetOverrideInfo[]; +declare const _default: any; +export default _default; +//# sourceMappingURL=decode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/decode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/decode.d.ts.map new file mode 100644 index 0000000..99e3446 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/decode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/dump/decode.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,SAAS,EAAmB,IAAI,EAAE,MAAM,EAAsB,MAAM,IAAI,CAAC;AAEhG,OAAO,EAAE,KAAK,EAAyB,MAAM,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAqDtG,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,QAgBnF;AA6MD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,iBAsB1D;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,GAAG,wBAoC5E;AAYD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,gBAmKnE;AA+CD,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAkBpD;AAGD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAgB7D;AAED,wBAAgB,qBAAqB,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,sCAwBjF;;AAED,wBAA8B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/dump-defines.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/dump-defines.d.ts new file mode 100644 index 0000000..bdd6909 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/dump-defines.d.ts @@ -0,0 +1,6 @@ +import { DumpInterface } from './types/dump-interface'; +declare const DumpDefines: { + [key: string]: DumpInterface; +}; +export { DumpDefines }; +//# sourceMappingURL=dump-defines.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/dump-defines.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/dump-defines.d.ts.map new file mode 100644 index 0000000..f835c7a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/dump-defines.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dump-defines.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/dump/dump-defines.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAQvD,QAAA,MAAM,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;CAAO,CAAC;AAgBzD,OAAO,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/encode.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/encode.d.ts new file mode 100644 index 0000000..9fbc99e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/encode.d.ts @@ -0,0 +1,27 @@ +import { INode, IScene, IComponent, IProperty } from '../../../../@types/public'; +/** + * 编码一个 node 数据 + * @param node + */ +export declare function encodeNode(node: any): INode; +/** + * 编码一个场景数据 + * @param scene + */ +export declare function encodeScene(scene: any): IScene; +/** + * 编码一个 component + * @param component + */ +export declare function encodeComponent(component: any): IComponent; +/** + * 编码一个对象 + * @param object 编码对象 + * @param attributes 属性描述 + * @param owner 编码对象所属的对象 + * @param objectKey 输出有效信息,当前数据 key,以便问题排查 + */ +export declare function encodeObject(object: any, attributes: any, owner?: any, objectKey?: string, isTemplate?: boolean): IProperty; +declare const _default: any; +export default _default; +//# sourceMappingURL=encode.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/encode.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/encode.d.ts.map new file mode 100644 index 0000000..bf852b2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/encode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/dump/encode.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AAoBtG;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,CAkH3C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAuC9C;AACD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,UAAU,CAmF1D;AAkHD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,GAAE,GAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAmJjI;;AAgDD,wBAA8B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/index.d.ts new file mode 100644 index 0000000..f044172 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/index.d.ts @@ -0,0 +1,18 @@ +import { IProperty } from '../../../../@types/public'; +export declare function get(node: any): any; +export declare function getComponent(comp: any): any; +export declare function set(dump: any, node?: any): Promise<any>; +export declare function patch(path: string, dump: IProperty, node: any): Promise<any>; +/** + * 设置节点在该路径下的默认值 + * @param path 数据路径 + * @param node 节点 + */ +export declare function resetProperty(node: any, path: string): any; +/** + * 将一个属性其现存值与定义类型值不匹配,或者为 null 默认值,改为一个可编辑的值 + * @param path 数据路径 + * @param node 节点 + */ +export declare function updatePropertyFromNull(node: any, path: string): any; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/index.d.ts.map new file mode 100644 index 0000000..264ee9c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/dump/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,wBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,OAK5B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,OAErC;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,gBAK9C;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,gBAanE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,OAEpD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,OAE7D"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/animation-curve-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/animation-curve-dump.d.ts new file mode 100644 index 0000000..4b981a6 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/animation-curve-dump.d.ts @@ -0,0 +1,10 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +import * as cc from 'cc'; +declare class AnimationCurveDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: cc.CurveRange, info: any, dump: any, opts?: any): void; +} +export declare const animationCurveDump: AnimationCurveDump; +export {}; +//# sourceMappingURL=animation-curve-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/animation-curve-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/animation-curve-dump.d.ts.map new file mode 100644 index 0000000..ef28905 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/animation-curve-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"animation-curve-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/animation-curve-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,cAAM,kBAAmB,YAAW,aAAa;IACtC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAItD,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAW7E;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/asset-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/asset-dump.d.ts new file mode 100644 index 0000000..8dd5cd2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/asset-dump.d.ts @@ -0,0 +1,9 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +declare class AssetDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): Promise<void>; +} +export declare const assetDump: AssetDump; +export {}; +//# sourceMappingURL=asset-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/asset-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/asset-dump.d.ts.map new file mode 100644 index 0000000..0653e59 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/asset-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"asset-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/asset-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,cAAM,SAAU,YAAW,aAAa;IAC7B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG;IAUzC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG;CA0DlE;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/component-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/component-dump.d.ts new file mode 100644 index 0000000..7807273 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/component-dump.d.ts @@ -0,0 +1,9 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +declare class ComponentDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): void; +} +export declare const componentDump: ComponentDump; +export {}; +//# sourceMappingURL=component-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/component-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/component-dump.d.ts.map new file mode 100644 index 0000000..9906f0d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/component-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"component-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/component-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,cAAM,aAAc,YAAW,aAAa;IACjC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAMtD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAGnE;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/dump-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/dump-interface.d.ts new file mode 100644 index 0000000..f14dc4b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/dump-interface.d.ts @@ -0,0 +1,6 @@ +import { IProperty } from '../../../../../@types/public'; +export interface DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): void; +} +//# sourceMappingURL=dump-interface.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/dump-interface.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/dump-interface.d.ts.map new file mode 100644 index 0000000..44bc932 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/dump-interface.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dump-interface.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/dump-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACvD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC7D"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/gradient-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/gradient-dump.d.ts new file mode 100644 index 0000000..b4dadda --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/gradient-dump.d.ts @@ -0,0 +1,9 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +declare class GradientDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): void; +} +export declare const gradientDump: GradientDump; +export {}; +//# sourceMappingURL=gradient-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/gradient-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/gradient-dump.d.ts.map new file mode 100644 index 0000000..5344ab5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/gradient-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gradient-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/gradient-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,cAAM,YAAa,YAAW,aAAa;IAChC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAiBtD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CA2BnE;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/node-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/node-dump.d.ts new file mode 100644 index 0000000..f59098d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/node-dump.d.ts @@ -0,0 +1,9 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +declare class NodeDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): void; +} +export declare const nodeDump: NodeDump; +export {}; +//# sourceMappingURL=node-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/node-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/node-dump.d.ts.map new file mode 100644 index 0000000..3a85e4b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/node-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"node-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/node-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,cAAM,QAAS,YAAW,aAAa;IAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAWtD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAanE;AAED,eAAO,MAAM,QAAQ,UAAiB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/number-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/number-dump.d.ts new file mode 100644 index 0000000..8f07d88 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/number-dump.d.ts @@ -0,0 +1,9 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +declare class NumberDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): void; +} +export declare const numberDump: NumberDump; +export {}; +//# sourceMappingURL=number-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/number-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/number-dump.d.ts.map new file mode 100644 index 0000000..7a47387 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/number-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"number-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/number-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,cAAM,UAAW,YAAW,aAAa;IAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAItD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAQnE;AAED,eAAO,MAAM,UAAU,YAAmB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/real-curve-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/real-curve-dump.d.ts new file mode 100644 index 0000000..ce77738 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/real-curve-dump.d.ts @@ -0,0 +1,12 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +import * as cc from 'cc'; +declare class RealCurveDump implements DumpInterface { + encode(object: cc.RealCurve, data: IProperty, opts?: any): void; + decode(data: cc.CurveRange, info: any, dump: any, opts?: any): void; + encodeByObj(curve: cc.RealCurve, opts?: any): any; + decodeByDump(dump: any, curve: cc.RealCurve, opts?: any): cc.RealCurve; +} +export declare const realCurveDump: RealCurveDump; +export {}; +//# sourceMappingURL=real-curve-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/real-curve-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/real-curve-dump.d.ts.map new file mode 100644 index 0000000..a901042 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/real-curve-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"real-curve-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/real-curve-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,cAAM,aAAc,YAAW,aAAa;IAEjC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAU/D,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAQnE,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG;IAgCjD,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,SAAS;CAoBhF;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/string-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/string-dump.d.ts new file mode 100644 index 0000000..1881547 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/string-dump.d.ts @@ -0,0 +1,9 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +declare class StringDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): void; +} +export declare const stringDump: StringDump; +export {}; +//# sourceMappingURL=string-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/string-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/string-dump.d.ts.map new file mode 100644 index 0000000..a5c6fd3 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/string-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"string-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/string-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,cAAM,UAAW,YAAW,aAAa;IAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAItD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAInE;AAED,eAAO,MAAM,UAAU,YAAmB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/typed-array-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/typed-array-dump.d.ts new file mode 100644 index 0000000..22afbef --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/typed-array-dump.d.ts @@ -0,0 +1,9 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +declare class TypedArrayDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): void; +} +export declare const typedArrayDump: TypedArrayDump; +export {}; +//# sourceMappingURL=typed-array-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/typed-array-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/typed-array-dump.d.ts.map new file mode 100644 index 0000000..54051a1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/typed-array-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"typed-array-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/typed-array-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,cAAM,cAAe,YAAW,aAAa;IAClC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IA0DtD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAyDnE;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/value-type-dump.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/value-type-dump.d.ts new file mode 100644 index 0000000..3166b03 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/value-type-dump.d.ts @@ -0,0 +1,9 @@ +import { IProperty } from '../../../../../@types/public'; +import { DumpInterface } from './dump-interface'; +declare class ValueTypeDump implements DumpInterface { + encode(object: any, data: IProperty, opts?: any): void; + decode(data: any, info: any, dump: any, opts?: any): void; +} +export declare const valueTypeDump: ValueTypeDump; +export {}; +//# sourceMappingURL=value-type-dump.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/value-type-dump.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/value-type-dump.d.ts.map new file mode 100644 index 0000000..9c25e1b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/types/value-type-dump.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"value-type-dump.d.ts","sourceRoot":"","sources":["../../../../../source/script/utils/dump/types/value-type-dump.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,cAAM,aAAc,YAAW,aAAa;IACjC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAgBtD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAYnE;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/utils.d.ts new file mode 100644 index 0000000..718bf9c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/utils.d.ts @@ -0,0 +1,25 @@ +export declare function getDefault(attribute: any): any; +export declare function getConstructor(object: any, attribute: any): any; +export declare function getType(ctor: any): any; +/** + * 获取一个类的名字 + * @param ctor + */ +export declare function getTypeName(ctor: any): any; +/** + * 获取一个类的继承链数组 + * @param ctor + */ +export declare function getTypeInheritanceChain(ctor: any): any; +export declare function parsingPath(path: string, data: any): { + search: string; + key: string; +}; +/** + * 返回一个类的属性默认值 + * @param attrs 来自 cc.Class.attr(obj.constructor, key); + */ +export declare function ccClassAttrPropertyDefaultValue(attrs: any): any; +declare const _default: any; +export default _default; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/utils.d.ts.map new file mode 100644 index 0000000..3413eba --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/dump/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/dump/utils.ts"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,CAAC,SAAS,EAAE,GAAG,OAQxC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAUzD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,GAAG,OAKhC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,OAOpC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,OAMhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;EAoBlD;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,GAAG,OA0CzD;;AAED,wBAA8B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/env.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/env.d.ts new file mode 100644 index 0000000..f7960b1 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/env.d.ts @@ -0,0 +1,10 @@ +declare class Env { + private _inited; + private _isNative; + useNativeScene(options?: { + checkAvailable?: boolean; + }): Promise<boolean>; +} +declare const EnvUtil: Env; +export default EnvUtil; +//# sourceMappingURL=env.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/env.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/env.d.ts.map new file mode 100644 index 0000000..dcc9461 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/env.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../source/script/utils/env.ts"],"names":[],"mappings":"AAWA,cAAM,GAAG;IACL,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IACb,cAAc,CAAC,OAAO,CAAC,EAAE;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAC;CAenE;AAED,QAAA,MAAM,OAAO,KAAY,CAAC;AAC1B,eAAe,OAAO,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/event-emitter.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/event-emitter.d.ts new file mode 100644 index 0000000..c43c358 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/event-emitter.d.ts @@ -0,0 +1,9 @@ +declare class EventEmitter { + private _eventListenerMap; + constructor(); + on(event: string, func: Function): void; + off(event: string, func: Function): void; + emit(event: string, ...args: any[]): false | undefined; +} +export { EventEmitter }; +//# sourceMappingURL=event-emitter.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/event-emitter.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/event-emitter.d.ts.map new file mode 100644 index 0000000..3c07885 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/event-emitter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../source/script/utils/event-emitter.ts"],"names":[],"mappings":"AAAA,cAAM,YAAY;IACd,OAAO,CAAC,iBAAiB,CAAsC;;IAKxD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAYhC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAUjC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAU5C;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/enums.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/enums.d.ts new file mode 100644 index 0000000..988ec12 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/enums.d.ts @@ -0,0 +1,21 @@ +/** + * 几何工具模块 + * @category geometry + */ +declare const _default: { + SHAPE_RAY: number; + SHAPE_LINE: number; + SHAPE_SPHERE: number; + SHAPE_AABB: number; + SHAPE_OBB: number; + SHAPE_PLANE: number; + SHAPE_TRIANGLE: number; + SHAPE_FRUSTUM: number; + SHAPE_FRUSTUM_ACCURATE: number; + SHAPE_CAPSULE: number; +}; +/** + * 形状的类型值。 + */ +export default _default; +//# sourceMappingURL=enums.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/enums.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/enums.d.ts.map new file mode 100644 index 0000000..ef43935 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/enums.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/geom-utils/enums.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;AAEH;;GAEG;AACH,wBAWE"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/intersect.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/intersect.d.ts new file mode 100644 index 0000000..02d4206 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/intersect.d.ts @@ -0,0 +1,8 @@ +import { Vec3, geometry } from 'cc'; +declare const intersect: { + ray_triangle: (ray: geometry.Ray, triangle: geometry.Triangle, doubleSided: boolean | undefined, hitPos: Vec3) => number; + ray_aabb: (ray: geometry.Ray, aabb: geometry.AABB) => number; + ray_segment: (ray: geometry.Ray, v0: Vec3, v1: Vec3, precision: number | undefined, hitPos: Vec3) => number; +}; +export default intersect; +//# sourceMappingURL=intersect.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/intersect.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/intersect.d.ts.map new file mode 100644 index 0000000..4d3b8c0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/intersect.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"intersect.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/geom-utils/intersect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAgNpC,QAAA,MAAM,SAAS;6GAtLgE,IAAI;0DA6CxC,MAAM;yCAwCf,IAAI,MAAM,IAAI,yCAAyB,IAAI;CAqG5E,CAAC;AAEF,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/ray.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/ray.d.ts new file mode 100644 index 0000000..1b5e40e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/ray.d.ts @@ -0,0 +1,93 @@ +/** + * @category geometry + */ +import { Vec3 } from 'cc'; +import { IVec3Like } from '../math/type-define'; +/** + * @zh + * 基础几何 射线。 + */ +export default class ray { + /** + * @en + * create a new ray + * @zh + * 创建一条射线。 + * @param {number} ox 起点的 x 部分。 + * @param {number} oy 起点的 y 部分。 + * @param {number} oz 起点的 z 部分。 + * @param {number} dx 方向的 x 部分。 + * @param {number} dy 方向的 y 部分。 + * @param {number} dz 方向的 z 部分。 + * @return {ray} 射线。 + */ + static create(ox?: number, oy?: number, oz?: number, dx?: number, dy?: number, dz?: number): ray; + /** + * @en + * Creates a new ray initialized with values from an existing ray + * @zh + * 从一条射线克隆出一条新的射线。 + * @param {ray} a 克隆的目标。 + * @return {ray} 克隆出的新对象。 + */ + static clone(a: ray): ray; + /** + * @en + * Copy the values from one ray to another + * @zh + * 将从一个 ray 的值复制到另一个 ray。 + * @param {ray} out 接受操作的 ray。 + * @param {ray} a 被复制的 ray。 + * @return {ray} out 接受操作的 ray。 + */ + static copy(out: ray, a: ray): ray; + /** + * @en + * create a ray from two points + * @zh + * 用两个点创建一条射线。 + * @param {ray} out 接受操作的射线。 + * @param {Vec3} origin 射线的起点。 + * @param {Vec3} target 射线上的一点。 + * @return {ray} out 接受操作的射线。 + */ + static fromPoints(out: ray, origin: Vec3, target: Vec3): ray; + /** + * @en + * Set the components of a ray to the given values + * @zh + * 将给定射线的属性设置为给定的值。 + * @param {ray} out 接受操作的射线。 + * @param {number} ox 起点的 x 部分。 + * @param {number} oy 起点的 y 部分。 + * @param {number} oz 起点的 z 部分。 + * @param {number} dx 方向的 x 部分。 + * @param {number} dy 方向的 y 部分。 + * @param {number} dz 方向的 z 部分。 + * @return {ray} out 接受操作的射线。 + */ + static set(out: ray, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number): ray; + /** + * @zh + * 起点。 + */ + o: Vec3; + /** + * @zh + * 方向。 + */ + d: Vec3; + private _type; + /** + * 构造一条射线。 + * @param {number} ox 起点的 x 部分。 + * @param {number} oy 起点的 y 部分。 + * @param {number} oz 起点的 z 部分。 + * @param {number} dx 方向的 x 部分。 + * @param {number} dy 方向的 y 部分。 + * @param {number} dz 方向的 z 部分。 + */ + constructor(ox?: number, oy?: number, oz?: number, dx?: number, dy?: number, dz?: number); + computeHit(out: IVec3Like, distance: number): void; +} +//# sourceMappingURL=ray.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/ray.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/ray.d.ts.map new file mode 100644 index 0000000..c5e1877 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/ray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ray.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/geom-utils/ray.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;GAGG;AAEH,MAAM,CAAC,OAAO,OAAO,GAAG;IACpB;;;;;;;;;;;;OAYG;WACW,MAAM,CAAC,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,GAAG,GAAG;IAIzE;;;;;;;OAOG;WACW,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG;IAIhC;;;;;;;;OAQG;WACW,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG;IAOzC;;;;;;;;;OASG;WACW,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,GAAG;IAMnE;;;;;;;;;;;;;OAaG;WACW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG;IAWxG;;;OAGG;IACI,CAAC,EAAE,IAAI,CAAC;IAEf;;;OAGG;IACI,CAAC,EAAE,IAAI,CAAC;IAEf,OAAO,CAAC,KAAK,CAAS;IAEtB;;;;;;;;OAQG;gBACS,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAI,EAAE,EAAE,SAAK;IAMpD,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;CAIrD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/triangle.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/triangle.d.ts new file mode 100644 index 0000000..7f17b3d --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/triangle.d.ts @@ -0,0 +1,107 @@ +/** + * @category geometry + */ +import { Vec3 } from 'cc'; +/** + * @zh + * 基础几何 三角形。 + */ +export default class triangle { + /** + * @en + * create a new triangle + * @zh + * 创建一个新的 triangle。 + * @param {number} ax a 点的 x 部分。 + * @param {number} ay a 点的 y 部分。 + * @param {number} az a 点的 z 部分。 + * @param {number} bx b 点的 x 部分。 + * @param {number} by b 点的 y 部分。 + * @param {number} bz b 点的 z 部分。 + * @param {number} cx c 点的 x 部分。 + * @param {number} cy c 点的 y 部分。 + * @param {number} cz c 点的 z 部分。 + * @return {triangle} 一个新的 triangle。 + */ + static create(ax?: number, ay?: number, az?: number, bx?: number, by?: number, bz?: number, cx?: number, cy?: number, cz?: number): triangle; + /** + * @en + * clone a new triangle + * @zh + * 克隆一个新的 triangle。 + * @param {triangle} t 克隆的目标。 + * @return {triangle} 克隆出的新对象。 + */ + static clone(t: triangle): triangle; + /** + * @en + * copy the values from one triangle to another + * @zh + * 将一个 triangle 的值复制到另一个 triangle。 + * @param {triangle} out 接受操作的 triangle。 + * @param {triangle} t 被复制的 triangle。 + * @return {triangle} out 接受操作的 triangle。 + */ + static copy(out: triangle, t: triangle): triangle; + /** + * @en + * Create a triangle from three points + * @zh + * 用三个点创建一个 triangle。 + * @param {triangle} out 接受操作的 triangle。 + * @param {Vec3} a a 点。 + * @param {Vec3} b b 点。 + * @param {Vec3} c c 点。 + * @return {triangle} out 接受操作的 triangle。 + */ + static fromPoints(out: triangle, a: Vec3, b: Vec3, c: Vec3): triangle; + /** + * @en + * Set the components of a triangle to the given values + * @zh + * 将给定三角形的属性设置为给定值。 + * @param {triangle} out 给定的三角形。 + * @param {number} ax a 点的 x 部分。 + * @param {number} ay a 点的 y 部分。 + * @param {number} az a 点的 z 部分。 + * @param {number} bx b 点的 x 部分。 + * @param {number} by b 点的 y 部分。 + * @param {number} bz b 点的 z 部分。 + * @param {number} cx c 点的 x 部分。 + * @param {number} cy c 点的 y 部分。 + * @param {number} cz c 点的 z 部分。 + * @return {triangle} + * @function + */ + static set(out: triangle, ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number): triangle; + /** + * @zh + * 点 a。 + */ + a: Vec3; + /** + * @zh + * 点 b。 + */ + b: Vec3; + /** + * @zh + * 点 c。 + */ + c: Vec3; + private _type; + /** + * 构造一个三角形。 + * @param {number} ax a 点的 x 部分。 + * @param {number} ay a 点的 y 部分。 + * @param {number} az a 点的 z 部分。 + * @param {number} bx b 点的 x 部分。 + * @param {number} by b 点的 y 部分。 + * @param {number} bz b 点的 z 部分。 + * @param {number} cx c 点的 x 部分。 + * @param {number} cy c 点的 y 部分。 + * @param {number} cz c 点的 z 部分。 + */ + constructor(ax?: number, ay?: number, az?: number, bx?: number, by?: number, bz?: number, cx?: number, cy?: number, cz?: number); +} +//# sourceMappingURL=triangle.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/triangle.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/triangle.d.ts.map new file mode 100644 index 0000000..89d3f66 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/geom-utils/triangle.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"triangle.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/geom-utils/triangle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG1B;;;GAGG;AAEH,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB;;;;;;;;;;;;;;;OAeG;WACW,MAAM,CAChB,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,GACP,QAAQ;IAIX;;;;;;;OAOG;WACW,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAI1C;;;;;;;;OAQG;WACW,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAQxD;;;;;;;;;;OAUG;WACW,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,QAAQ;IAO5E;;;;;;;;;;;;;;;;;OAiBG;WACW,GAAG,CACb,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACX,QAAQ;IAgBX;;;OAGG;IACI,CAAC,EAAE,IAAI,CAAC;IAEf;;;OAGG;IACI,CAAC,EAAE,IAAI,CAAC;IAEf;;;OAGG;IACI,CAAC,EAAE,IAAI,CAAC;IAEf,OAAO,CAAC,KAAK,CAAS;IAEtB;;;;;;;;;;;OAWG;gBAEC,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI,EACN,EAAE,SAAI;CAOb"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/graphics.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/graphics.d.ts new file mode 100644 index 0000000..e15c41b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/graphics.d.ts @@ -0,0 +1,11 @@ +/// <reference types="node" /> +import { RenderTexture } from 'cc'; +/** + * @engineInternal + * @param rt + * @returns + */ +export declare function readPixels(rt: RenderTexture): Uint8Array | null; +export declare function flipImage(data: Uint8Array | null, width: number, height: number): Uint8Array | null; +export declare function saveDataToImage(data: Buffer, width: number, height: number, sceneName: string, fileName: string): Promise<void>; +//# sourceMappingURL=graphics.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/graphics.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/graphics.d.ts.map new file mode 100644 index 0000000..9338cc5 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/graphics.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../../../source/script/utils/graphics.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAO,MAAM,IAAI,CAAC;AAKxC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI,CA2B/D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAgB/E;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAuBrH"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/index.d.ts new file mode 100644 index 0000000..876ea3f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/index.d.ts @@ -0,0 +1,4 @@ +export declare function promisify(fn: Function): (...args: any[]) => Promise<unknown>; +export declare function isObject(arg: any): boolean; +export declare function isString(arg: any): boolean; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/index.d.ts.map new file mode 100644 index 0000000..51a81db --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/script/utils/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,aACT,GAAG,EAAE,sBAgBjC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,WAEhC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,WAEhC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/ipc/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/ipc/utils.d.ts new file mode 100644 index 0000000..6d3873e --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/ipc/utils.d.ts @@ -0,0 +1,44 @@ +export interface DataItem { + message: string; + arguments: any[]; + callback: Function; + stack: string; +} +/** + * 数据存储器 + */ +export declare class DataStorage { + private _id; + private _map; + /** + * 添加一个数据 + * @param data + */ + add(data: DataItem): number; + /** + * 移除一个数据 + * @param id + */ + remove(id: number | string): void; + /** + * 查询一个数据 + * @param id + */ + get(id: number | string | undefined): DataItem | null; +} +export declare function encodeArgs(item: any): any; +export declare function decodeArgs(item: any): any; +export interface SendItem { + callback: Function; + stack: string; + timer: any; +} +export declare enum IPCChannel { + PreviewSend = "preview:send", + PreviewReply = "preview:reply", + SceneWebSend = "scene-web:send", + SceneWebReply = "scene-web:reply", + NativeSend = "native:send", + NativeReply = "native:reply" +} +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/ipc/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/ipc/utils.d.ts.map new file mode 100644 index 0000000..7404bc7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/ipc/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/ipc/utils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,IAAI,CAAkC;IAE9C;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ;IAMlB;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAI1B;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAOtC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,OAoBnC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,OAoBnC;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;CACd;AAED,oBAAY,UAAU;IAClB,WAAW,iBAAiB;IAC5B,YAAY,kBAAkB;IAC9B,YAAY,mBAAmB;IAC/B,aAAa,oBAAmB;IAChC,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;CAC/B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/lodash.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/lodash.d.ts new file mode 100644 index 0000000..299a1a9 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/lodash.d.ts @@ -0,0 +1,3 @@ +export declare function get(object: any, path: any, value?: any): any; +export declare function set(object: any, path: any, value: any): any; +//# sourceMappingURL=lodash.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/lodash.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/lodash.d.ts.map new file mode 100644 index 0000000..972a016 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/lodash.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"lodash.d.ts","sourceRoot":"","sources":["../../../source/script/utils/lodash.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,OAKtD;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAcrD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/index.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/index.d.ts new file mode 100644 index 0000000..d72a269 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/index.d.ts @@ -0,0 +1,179 @@ +import { Rect, Vec2 } from 'cc'; +import { MVec2 } from './vec2'; +import { MVec3 } from './vec3'; +import { MMat3 } from './mat3'; +import { MMat4 } from './mat4'; +import { MQuat } from './quat'; +/** + * [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math) + */ +declare class EditorMath { + /** + * @property {number} EPSILON + */ + static EPSILON: number; + /** + * @property {number} MACHINE_EPSILON + */ + static MACHINE_EPSILON: number; + /** + * @property {number} TWO_PI - Two Pi + */ + static TWO_PI: number; + /** + * @property {number} HALF_PI - Half Pi + */ + static HALF_PI: number; + /** + * @property {number} D2R - degree to radius + */ + static D2R: number; + /** + * @property {number} R2D - radius to degree + */ + static R2D: number; + static MVec2: MVec2; + static MVec3: MVec3; + static MMat3: MMat3; + static MMat4: MMat4; + static MQuat: MQuat; + /** + * @method deg2rad + * @param {number} degree + * @return {number} radius + * + * degree to radius + */ + static deg2rad(degree: number): number; + /** + * @method rad2deg + * @param {number} radius + * @return {number} degree + * + * Radius to degree + */ + static rad2deg(radius: number): number; + /** + * @method rad180 + * @param {number} radius + * @return {number} clamped radius + * + * Let radius in -pi to pi + */ + static rad180(radius: number): number; + /** + * @method rad360 + * @param {number} radius + * @return {number} clamped radius + * + * Let radius in 0 to 2pi + */ + static rad360(radius: number): number; + /** + * @method deg180 + * @param {number} degree + * @return {number} clamped degree + * + * Let degree in -180 to 180 + */ + static deg180(degree: number): number; + /** + * @method deg360 + * @param {number} degree + * @return {number} clamped degree + * + * Let degree in 0 to 360 + */ + static deg360(degree: number): number; + /** + * @method randomRange + * @param {number} min + * @param {number} max + * @return {number} the random number + * + * Returns a random floating-point number between min (inclusive) and max (exclusive). + */ + static randomRange(min: number, max: number): number; + /** + * @method randomRangeInt + * @param {number} min + * @param {number} max + * @return {number} the random integer + * + * Returns a random integer between min (inclusive) and max (exclusive). + */ + static randomRangeInt(min: number, max: number): number; + /** + * @method clamp + * @param {number} val + * @param {number} min + * @param {number} max + * @return {number} + * + * Clamps a value between a minimum float and maximum float value. + */ + static clamp: typeof _clamp; + /** + * @method clamp01 + * @param {number} val + * @return {number} + * + * Clamps a value between 0 and 1. + */ + static clamp01(val: number): number; + /** + * @method calculateMaxRect + * @param {rect} out + * @param {vec2} p0 + * @param {vec2} p1 + * @param {vec2} p2 + * @param {vec2} p3 + * @return {rect} just the out rect itself + */ + static calculateMaxRect(out: Rect, p0: Vec2, p1: Vec2, p2: Vec2, p3: Vec2): Rect; + /** + * @method lerp + * @param {number} from + * @param {number} to + * @param {number} ratio - the interpolation coefficient + * @return {number} + */ + static lerp(from: number, to: number, ratio: number): number; + /** + * @method numOfDecimals + * + * Get number of decimals for decimal part + */ + static numOfDecimals(val: number): number; + /** + * @method numOfDecimalsF + * + * Get number of decimals for fractional part + */ + static numOfDecimalsF(val: number): number; + /** + * @method toPrecision + */ + static toPrecision(val: number, precision: number): number; + /** + * @method bezier + * @param {number} c0 + * @param {number} c1 + * @param {number} c2 + * @param {number} c3 + * @param {number} t - the ratio + */ + static bezier(c0: number, c1: number, c2: number, c3: number, t: number): number; + /** + * @method solveCubicBezier + * @param {number} c0 + * @param {number} c1 + * @param {number} c2 + * @param {number} c3 + * @param {number} x + */ + static solveCubicBezier(c0: number, c1: number, c2: number, c3: number, x: number): number; +} +export default EditorMath; +declare function _clamp(val: number, min: number, max: number): number; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/index.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/index.d.ts.map new file mode 100644 index 0000000..d229cec --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/math/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AA0B/B;;GAEG;AACH,cAAM,UAAU;IACZ;;OAEG;IACH,OAAc,OAAO,EAAE,MAAM,CAAW;IAExC;;OAEG;IACH,OAAc,eAAe,EAAE,MAAM,CAAmB;IAExD;;OAEG;IACH,OAAc,MAAM,EAAE,MAAM,CAAU;IAEtC;;OAEG;IACH,OAAc,OAAO,EAAE,MAAM,CAAW;IAExC;;OAEG;IACH,OAAc,GAAG,EAAE,MAAM,CAAQ;IAEjC;;OAEG;IACH,OAAc,GAAG,EAAE,MAAM,CAAQ;IAGjC,OAAc,KAAK,EAAE,KAAK,CAAS;IACnC,OAAc,KAAK,EAAE,KAAK,CAAS;IACnC,OAAc,KAAK,EAAE,KAAK,CAAS;IACnC,OAAc,KAAK,EAAE,KAAK,CAAS;IACnC,OAAc,KAAK,EAAE,KAAK,CAAS;IAEnC;;;;;;OAMG;WACW,OAAO,CAAC,MAAM,EAAE,MAAM;IAIpC;;;;;;OAMG;WACW,OAAO,CAAC,MAAM,EAAE,MAAM;IAIpC;;;;;;OAMG;WACW,MAAM,CAAC,MAAM,EAAE,MAAM;IAOnC;;;;;;OAMG;WACW,MAAM,CAAC,MAAM,EAAE,MAAM;IAUnC;;;;;;OAMG;WACW,MAAM,CAAC,MAAM,EAAE,MAAM;IAOnC;;;;;;OAMG;WACW,MAAM,CAAC,MAAM,EAAE,MAAM;IASnC;;;;;;;OAOG;WACW,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIlD;;;;;;;OAOG;WACW,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIrD;;;;;;;;OAQG;IACH,OAAc,KAAK,gBAAU;IAE7B;;;;;;OAMG;WACW,OAAO,CAAC,GAAG,EAAE,MAAM;IAIjC;;;;;;;;OAQG;WACW,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI;IAchF;;;;;;OAMG;WACW,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAI1D;;;;OAIG;WACW,aAAa,CAAC,GAAG,EAAE,MAAM;IAIvC;;;;OAIG;WACW,cAAc,CAAC,GAAG,EAAE,MAAM;IAIxC;;OAEG;WACW,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKxD;;;;;;;OAOG;WAKW,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAK9E;;;;;;;OAOG;WACW,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAW3F;AAED,eAAe,UAAU,CAAC;AAM1B,iBAAS,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAEpD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat3.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat3.d.ts new file mode 100644 index 0000000..eaefa2f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat3.d.ts @@ -0,0 +1,124 @@ +import { IMat3Like, IMat4Like, IQuatLike, IVec2Like, IVec3Like } from './type-define'; +import { Mat3, Vec3 } from 'cc'; +interface IWritableArrayLike<T> { + length: number; + [index: number]: T; +} +export declare class MMat3 { + static IDENTITY: Readonly<Mat3>; + /** + * @zh 获得指定矩阵的拷贝 + */ + static clone<Out extends IMat3Like>(a: Out): Mat3; + /** + * @zh 复制目标矩阵 + */ + static copy<Out extends IMat3Like>(out: Out, a: Out): Out; + /** + * @zh 设置矩阵值 + */ + static set<Out extends IMat3Like>(out: Out, m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number): Out; + /** + * @zh 将目标赋值为单位矩阵 + */ + static identity<Out extends IMat3Like>(out: Out): Out; + /** + * @zh 转置矩阵 + */ + static transpose<Out extends IMat3Like>(out: Out, a: Out): Out; + /** + * @zh 矩阵求逆 + */ + static invert<Out extends IMat3Like>(out: Out, a: Out): Out; + /** + * @zh 矩阵行列式 + */ + static determinant<Out extends IMat3Like>(a: Out): number; + /** + * @zh 矩阵乘法 + */ + static multiply<Out extends IMat3Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 取四阶矩阵的前三阶,与三阶矩阵相乘 + */ + static multiplyMat4<Out extends IMat3Like>(out: Out, a: Out, b: IMat4Like): Out; + /** + * @zh 在给定矩阵变换基础上加入变换 + */ + static transfrom<Out extends IMat3Like, VecLike extends IVec3Like>(out: Out, a: Out, v: VecLike): Out; + /** + * @zh 在给定矩阵变换基础上加入新缩放变换 + */ + static scale<Out extends IMat3Like, VecLike extends IVec3Like>(out: Out, a: Out, v: VecLike): Out; + /** + * @zh 在给定矩阵变换基础上加入新旋转变换 + * @param rad 旋转弧度 + */ + static rotate<Out extends IMat3Like>(out: Out, a: Out, rad: number): Out; + /** + * @zh 取四阶矩阵的前三阶 + */ + static fromMat4<Out extends IMat3Like>(out: Out, a: IMat4Like): Out; + /** + * @zh 根据视口前方向和上方向计算矩阵 + * @param view 视口面向的前方向,必须归一化 + * @param up 视口的上方向,必须归一化,默认为 (0, 1, 0) + */ + static fromViewUp<Out extends IMat3Like>(out: Out, view: Readonly<IVec3Like>, up?: Vec3): Out; + /** + * @zh 计算位移矩阵 + */ + static fromTranslation<Out extends IMat3Like, VecLike extends IVec2Like>(out: Out, v: VecLike): Out; + /** + * @zh 计算缩放矩阵 + */ + static fromScaling<Out extends IMat3Like, VecLike extends IVec2Like>(out: Out, v: VecLike): Out; + /** + * @zh 计算旋转矩阵 + */ + static fromRotation<Out extends IMat3Like>(out: Out, rad: number): Out; + /** + * @zh 根据四元数旋转信息计算矩阵 + */ + static fromQuat<Out extends IMat3Like>(out: Out, q: IQuatLike): Out; + /** + * @zh 计算指定四维矩阵的逆转置三维矩阵 + */ + static inverseTransposeMat4<Out extends IMat3Like>(out: Out, a: IMat4Like): Out | null; + /** + * @zh 矩阵转数组 + * @param ofs 数组内的起始偏移量 + */ + static toArray<Out extends IWritableArrayLike<number>>(out: Out, m: IMat3Like, ofs?: number): Out; + /** + * @zh 数组转矩阵 + * @param ofs 数组起始偏移量 + */ + static fromArray<Out extends IMat3Like>(out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out; + /** + * @zh 逐元素矩阵加法 + */ + static add<Out extends IMat3Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素矩阵减法 + */ + static subtract<Out extends IMat3Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 矩阵标量乘法 + */ + static multiplyScalar<Out extends IMat3Like>(out: Out, a: Out, b: number): Out; + /** + * @zh 逐元素矩阵标量乘加: A + B * scale + */ + static multiplyScalarAndAdd<Out extends IMat3Like>(out: Out, a: Out, b: Out, scale: number): Out; + /** + * @zh 矩阵等价判断 + */ + static strictEquals<Out extends IMat3Like>(a: Out, b: Out): boolean; + /** + * @zh 排除浮点数误差的矩阵近似等价判断 + */ + static equals<Out extends IMat3Like>(a: Out, b: Out, epsilon?: number): boolean; +} +export {}; +//# sourceMappingURL=mat3.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat3.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat3.d.ts.map new file mode 100644 index 0000000..d11fbf7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat3.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mat3.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/math/mat3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat4.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat4.d.ts new file mode 100644 index 0000000..adb550b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat4.d.ts @@ -0,0 +1,209 @@ +import { IMat4Like, IVec3Like, IQuatLike } from './type-define'; +import { Mat4 } from 'cc'; +interface IWritableArrayLike<T> { + length: number; + [index: number]: T; +} +export declare class MMat4 { + static IDENTITY: Readonly<Mat4>; + /** + * @zh 获得指定矩阵的拷贝 + */ + static clone<Out extends IMat4Like>(a: Out): Mat4; + /** + * @zh 复制目标矩阵 + */ + static copy<Out extends IMat4Like>(out: Out, a: Out): Out; + /** + * @zh 设置矩阵值 + */ + static set<Out extends IMat4Like>(out: Out, m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): Out; + /** + * @zh 将目标赋值为单位矩阵 + */ + static identity<Out extends IMat4Like>(out: Out): Out; + /** + * @zh 转置矩阵 + */ + static transpose<Out extends IMat4Like>(out: Out, a: Out): Out; + /** + * @zh 矩阵求逆 + */ + static invert<Out extends IMat4Like>(out: Out, a: Out): Out; + /** + * @zh 矩阵行列式 + */ + static determinant<Out extends IMat4Like>(a: Out): number; + /** + * @zh 矩阵乘法 + */ + static multiply<Out extends IMat4Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 在给定矩阵变换基础上加入变换 + */ + static transform<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, a: Out, v: VecLike): Out; + /** + * @zh 在给定矩阵变换基础上加入新位移变换 + */ + static translate<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, a: Out, v: VecLike): Out; + /** + * @zh 在给定矩阵变换基础上加入新缩放变换 + */ + static scale<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, a: Out, v: VecLike): Out; + /** + * @zh 在给定矩阵变换基础上加入新旋转变换 + * @param rad 旋转角度 + * @param axis 旋转轴 + */ + static rotate<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, a: Out, rad: number, axis: VecLike): Out | null; + /** + * @zh 在给定矩阵变换基础上加入绕 X 轴的旋转变换 + * @param rad 旋转角度 + */ + static rotateX<Out extends IMat4Like>(out: Out, a: Out, rad: number): Out; + /** + * @zh 在给定矩阵变换基础上加入绕 Y 轴的旋转变换 + * @param rad 旋转角度 + */ + static rotateY<Out extends IMat4Like>(out: Out, a: Out, rad: number): Out; + /** + * @zh 在给定矩阵变换基础上加入绕 Z 轴的旋转变换 + * @param rad 旋转角度 + */ + static rotateZ<Out extends IMat4Like>(out: Out, a: Out, rad: number): Out; + /** + * @zh 计算位移矩阵 + */ + static fromTranslation<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, v: VecLike): Out; + /** + * @zh 计算缩放矩阵 + */ + static fromScaling<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, v: VecLike): Out; + /** + * @zh 计算旋转矩阵 + */ + static fromRotation<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, rad: number, axis: VecLike): Out | null; + /** + * @zh 计算绕 X 轴的旋转矩阵 + */ + static fromXRotation<Out extends IMat4Like>(out: Out, rad: number): Out; + /** + * @zh 计算绕 Y 轴的旋转矩阵 + */ + static fromYRotation<Out extends IMat4Like>(out: Out, rad: number): Out; + /** + * @zh 计算绕 Z 轴的旋转矩阵 + */ + static fromZRotation<Out extends IMat4Like>(out: Out, rad: number): Out; + /** + * @zh 根据旋转和位移信息计算矩阵 + */ + static fromRT<Out extends IMat4Like, QuatLike extends IQuatLike, VecLike extends IVec3Like>(out: Out, q: QuatLike, v: VecLike): Out; + /** + * @zh 提取矩阵的位移信息, 默认矩阵中的变换以 S->R->T 的顺序应用 + */ + static getTranslation<Out extends IMat4Like, VecLike extends IVec3Like>(out: VecLike, mat: Out): VecLike; + /** + * @zh 提取矩阵的缩放信息, 默认矩阵中的变换以 S->R->T 的顺序应用 + */ + static getScaling<Out extends IMat4Like, VecLike extends IVec3Like>(out: VecLike, mat: Out): VecLike; + /** + * @zh 提取矩阵的旋转信息, 默认输入矩阵不含有缩放信息,如考虑缩放应使用 `toRTS` 函数。 + */ + static getRotation<Out extends IMat4Like>(out: IQuatLike, mat: Out): IQuatLike; + /** + * @zh 提取旋转、位移、缩放信息, 默认矩阵中的变换以 S->R->T 的顺序应用 + */ + static toRTS<Out extends IMat4Like, VecLike extends IVec3Like>(m: Out, q: IQuatLike, v: VecLike, s: VecLike): void; + /** + * @zh 根据旋转、位移、缩放信息计算矩阵,以 S->R->T 的顺序应用 + */ + static fromRTS<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, q: IQuatLike, v: VecLike, s: VecLike): Out; + /** + * @zh 根据指定的旋转、位移、缩放及变换中心信息计算矩阵,以 S->R->T 的顺序应用 + * @param q 旋转值 + * @param v 位移值 + * @param s 缩放值 + * @param o 指定变换中心 + */ + static fromRTSOrigin<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, q: IQuatLike, v: VecLike, s: VecLike, o: VecLike): Out; + /** + * @zh 根据指定的旋转信息计算矩阵 + */ + static fromQuat<Out extends IMat4Like>(out: Out, q: IQuatLike): Out; + /** + * @zh 根据指定的视锥体信息计算矩阵 + * @param left 左平面距离 + * @param right 右平面距离 + * @param bottom 下平面距离 + * @param top 上平面距离 + * @param near 近平面距离 + * @param far 远平面距离 + */ + static frustum<Out extends IMat4Like>(out: Out, left: number, right: number, bottom: number, top: number, near: number, far: number): Out; + /** + * @zh 计算透视投影矩阵 + * @param fovy 纵向视角高度 + * @param aspect 长宽比 + * @param near 近平面距离 + * @param far 远平面距离 + */ + static perspective<Out extends IMat4Like>(out: Out, fovy: number, aspect: number, near: number, far: number): Out; + /** + * @zh 计算正交投影矩阵 + * @param left 左平面距离 + * @param right 右平面距离 + * @param bottom 下平面距离 + * @param top 上平面距离 + * @param near 近平面距离 + * @param far 远平面距离 + */ + static ortho<Out extends IMat4Like>(out: Out, left: number, right: number, bottom: number, top: number, near: number, far: number): Out; + /** + * @zh 根据视点计算矩阵,注意 `eye - center` 不能为零向量或与 `up` 向量平行 + * @param eye 当前位置 + * @param center 目标视点 + * @param up 视口上方向 + */ + static lookAt<Out extends IMat4Like, VecLike extends IVec3Like>(out: Out, eye: VecLike, center: VecLike, up: VecLike): Out; + /** + * @zh 计算逆转置矩阵 + */ + static inverseTranspose<Out extends IMat4Like>(out: Out, a: Out): Out | null; + /** + * @zh 矩阵转数组 + * @param ofs 数组内的起始偏移量 + */ + static toArray<Out extends IWritableArrayLike<number>>(out: Out, m: IMat4Like, ofs?: number): Out; + /** + * @zh 数组转矩阵 + * @param ofs 数组起始偏移量 + */ + static fromArray<Out extends IMat4Like>(out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out; + /** + * @zh 逐元素矩阵加法 + */ + static add<Out extends IMat4Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素矩阵减法 + */ + static subtract<Out extends IMat4Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 矩阵标量乘法 + */ + static multiplyScalar<Out extends IMat4Like>(out: Out, a: Out, b: number): Out; + /** + * @zh 逐元素矩阵标量乘加: A + B * scale + */ + static multiplyScalarAndAdd<Out extends IMat4Like>(out: Out, a: Out, b: Out, scale: number): Out; + /** + * @zh 矩阵等价判断 + */ + static strictEquals<Out extends IMat4Like>(a: Out, b: Out): boolean; + /** + * @zh 排除浮点数误差的矩阵近似等价判断 + */ + static equals<Out extends IMat4Like>(a: Out, b: Out, epsilon?: number): boolean; +} +export {}; +//# sourceMappingURL=mat4.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat4.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat4.d.ts.map new file mode 100644 index 0000000..f484ad4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/mat4.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mat4.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/math/mat4.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/quat.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/quat.d.ts new file mode 100644 index 0000000..bc0f033 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/quat.d.ts @@ -0,0 +1,179 @@ +import { IQuatLike, IVec3Like } from './type-define'; +import { Quat, Vec3, Mat3 } from 'cc'; +interface IWritableArrayLike<T> { + length: number; + [index: number]: T; +} +export declare class MQuat { + static IDENTITY: Readonly<Quat>; + /** + * @zh 获得指定四元数的拷贝 + */ + static clone<Out extends IQuatLike>(a: Out): Quat; + /** + * @zh 复制目标四元数 + */ + static copy<Out extends IQuatLike, QuatLike extends IQuatLike>(out: Out, a: QuatLike): Out; + /** + * @zh 设置四元数值 + */ + static set<Out extends IQuatLike>(out: Out, x: number, y: number, z: number, w: number): Out; + /** + * @zh 将目标赋值为单位四元数 + */ + static identity<Out extends IQuatLike>(out: Out): Out; + /** + * @zh 设置四元数为两向量间的最短路径旋转,默认两向量都已归一化 + */ + static rotationTo<Out extends IQuatLike, VecLike extends IVec3Like>(out: Out, a: VecLike, b: VecLike): Out; + /** + * @zh 获取四元数的旋转轴和旋转弧度 + * @param outAxis 旋转轴输出 + * @param q 源四元数 + * @return 旋转弧度 + */ + static getAxisAngle<Out extends IQuatLike, VecLike extends IVec3Like>(outAxis: VecLike, q: Out): number; + /** + * @zh 四元数乘法 + */ + static multiply<Out extends IQuatLike, QuatLike_1 extends IQuatLike, QuatLike_2 extends IQuatLike>(out: Out, a: QuatLike_1, b: QuatLike_2): Out; + /** + * @zh 四元数标量乘法 + */ + static multiplyScalar<Out extends IQuatLike>(out: Out, a: Out, b: number): Out; + /** + * @zh 四元数乘加:A + B * scale + */ + static scaleAndAdd<Out extends IQuatLike>(out: Out, a: Out, b: Out, scale: number): Out; + /** + * @zh 绕 X 轴旋转指定四元数 + * @param rad 旋转弧度 + */ + static rotateX<Out extends IQuatLike>(out: Out, a: Out, rad: number): Out; + /** + * @zh 绕 Y 轴旋转指定四元数 + * @param rad 旋转弧度 + */ + static rotateY<Out extends IQuatLike>(out: Out, a: Out, rad: number): Out; + /** + * @zh 绕 Z 轴旋转指定四元数 + * @param rad 旋转弧度 + */ + static rotateZ<Out extends IQuatLike>(out: Out, a: Out, rad: number): Out; + /** + * @zh 绕世界空间下指定轴旋转四元数 + * @param axis 旋转轴,默认已归一化 + * @param rad 旋转弧度 + */ + static rotateAround<Out extends IQuatLike, VecLike extends IVec3Like>(out: Out, rot: Out, axis: VecLike, rad: number): Out; + /** + * @zh 绕本地空间下指定轴旋转四元数 + * @param axis 旋转轴 + * @param rad 旋转弧度 + */ + static rotateAroundLocal<Out extends IQuatLike, VecLike extends IVec3Like>(out: Out, rot: Out, axis: VecLike, rad: number): Out; + /** + * @zh 根据 xyz 分量计算 w 分量,默认已归一化 + */ + static calculateW<Out extends IQuatLike>(out: Out, a: Out): Out; + /** + * @zh 四元数点积(数量积) + */ + static dot<Out extends IQuatLike>(a: Out, b: Out): number; + /** + * @zh 逐元素线性插值: A + t * (B - A) + */ + static lerp<Out extends IQuatLike>(out: Out, a: Out, b: Out, t: number): Out; + /** + * @zh 四元数球面插值 + */ + static slerp<Out extends IQuatLike, QuatLike_1 extends IQuatLike, QuatLike_2 extends IQuatLike>(out: Out, a: QuatLike_1, b: QuatLike_2, t: number): Out; + /** + * @zh 带两个控制点的四元数球面插值 + */ + static sqlerp<Out extends IQuatLike>(out: Out, a: Out, b: Out, c: Out, d: Out, t: number): Out; + /** + * @zh 四元数求逆 + */ + static invert<Out extends IQuatLike, QuatLike extends IQuatLike>(out: Out, a: QuatLike): Out; + /** + * @zh 求共轭四元数,对单位四元数与求逆等价,但更高效 + */ + static conjugate<Out extends IQuatLike>(out: Out, a: Out): Out; + /** + * @zh 求四元数长度 + */ + static len<Out extends IQuatLike>(a: Out): number; + /** + * @zh 求四元数长度平方 + */ + static lengthSqr<Out extends IQuatLike>(a: Out): number; + /** + * @zh 归一化四元数 + */ + static normalize<Out extends IQuatLike>(out: Out, a: Out): Out; + /** + * @zh 根据本地坐标轴朝向计算四元数,默认三向量都已归一化且相互垂直 + */ + static fromAxes<Out extends IQuatLike, VecLike extends IVec3Like>(out: Out, xAxis: VecLike, yAxis: VecLike, zAxis: VecLike): Out; + /** + * @zh 根据视口的前方向和上方向计算四元数 + * @param view 视口面向的前方向,必须归一化 + * @param up 视口的上方向,必须归一化,默认为 (0, 1, 0) + */ + static fromViewUp<Out extends IQuatLike, VecLike extends IVec3Like>(out: Out, view: VecLike, up?: Vec3): Out; + /** + * @zh 根据旋转轴和旋转弧度计算四元数 + */ + static fromAxisAngle<Out extends IQuatLike, VecLike extends IVec3Like>(out: Out, axis: VecLike, rad: number): Out; + /** + * @zh 根据三维矩阵信息计算四元数,默认输入矩阵不含有缩放信息 + */ + static fromMat3<Out extends IQuatLike>(out: Out, m: Mat3): Out; + /** + * @zh 根据欧拉角信息计算四元数,旋转顺序为 YZX + */ + static fromEuler<Out extends IQuatLike>(out: Out, x: number, y: number, z: number): Out; + /** + * @en Set a quaternion from the given euler angle (0, 0, z). + * @zh 根据欧拉角(0, 0, z)计算四元数 + */ + static fromAngleZ<Out extends IQuatLike>(out: Out, z: number): void; + /** + * @zh 返回定义此四元数的坐标系 X 轴向量 + */ + static toAxisX<Out extends IQuatLike, VecLike extends IVec3Like>(out: VecLike, q: Out): VecLike; + /** + * @zh 返回定义此四元数的坐标系 Y 轴向量 + */ + static toAxisY<Out extends IQuatLike, VecLike extends IVec3Like>(out: VecLike, q: Out): VecLike; + /** + * @zh 返回定义此四元数的坐标系 Z 轴向量 + */ + static toAxisZ<Out extends IQuatLike, VecLike extends IVec3Like>(out: VecLike, q: Out): VecLike; + /** + * @zh 根据四元数计算欧拉角,返回角度 x, y 在 [-180, 180] 区间内, z 默认在 [-90, 90] 区间内,旋转顺序为 YZX + * @param outerZ z 取值范围区间改为 [-180, -90] U [90, 180] + */ + static toEuler<Out extends IVec3Like>(out: Out, q: IQuatLike, outerZ?: boolean): Out; + /** + * @zh 四元数转数组 + * @param ofs 数组内的起始偏移量 + */ + static toArray<Out extends IWritableArrayLike<number>>(out: Out, q: IQuatLike, ofs?: number): Out; + /** + * @zh 数组转四元数 + * @param ofs 数组起始偏移量 + */ + static fromArray<Out extends IQuatLike>(out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out; + /** + * @zh 四元数等价判断 + */ + static strictEquals<Out extends IQuatLike>(a: Out, b: Out): boolean; + /** + * @zh 排除浮点数误差的四元数近似等价判断 + */ + static equals<Out extends IQuatLike>(a: Out, b: Out, epsilon?: number): boolean; +} +export {}; +//# sourceMappingURL=quat.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/quat.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/quat.d.ts.map new file mode 100644 index 0000000..679e7d7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/quat.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"quat.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/math/quat.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/type-define.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/type-define.d.ts new file mode 100644 index 0000000..8cdc90c --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/type-define.d.ts @@ -0,0 +1,74 @@ +/** + * @category core/math + */ +/** + * @hidden + */ +export interface IColorLike { + r: number; + g: number; + b: number; + a: number; + _val: number; +} +export interface IMat3Like { + m00: number; + m01: number; + m02: number; + m03: number; + m04: number; + m05: number; + m06: number; + m07: number; + m08: number; +} +export interface IMat4Like { + m00: number; + m01: number; + m02: number; + m03: number; + m04: number; + m05: number; + m06: number; + m07: number; + m08: number; + m09: number; + m10: number; + m11: number; + m12: number; + m13: number; + m14: number; + m15: number; +} +export interface IQuatLike { + x: number; + y: number; + z: number; + w: number; +} +export interface IRectLike { + x: number; + y: number; + width: number; + height: number; +} +export interface ISizeLike { + width: number; + height: number; +} +export interface IVec2Like { + x: number; + y: number; +} +export interface IVec3Like { + x: number; + y: number; + z: number; +} +export interface IVec4Like { + x: number; + y: number; + z: number; + w: number; +} +//# sourceMappingURL=type-define.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/type-define.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/type-define.d.ts.map new file mode 100644 index 0000000..68ab145 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/type-define.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"type-define.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/math/type-define.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CAEhB;AAED,MAAM,WAAW,SAAS;IACtB,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,SAAS;IACtB,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IACnD,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IACnD,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IACnD,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CACtD;AAED,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/utils.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/utils.d.ts new file mode 100644 index 0000000..6a27925 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/utils.d.ts @@ -0,0 +1,135 @@ +/** + * @category core/math + */ +export declare const EPSILON = 0.000001; +/** + * @en Tests whether or not the arguments have approximately the same value, within an absolute<br/> + * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less<br/> + * than or equal to 1.0, and a relative tolerance is used for larger values) + * @zh 在glMatrix的绝对或相对容差范围内,测试参数是否具有近似相同的值。<br/> + * EPSILON(小于等于1.0的值采用绝对公差,大于1.0的值采用相对公差) + * @param a The first number to test. + * @param b The second number to test. + * @return True if the numbers are approximately equal, false otherwise. + */ +export declare function equals(a: number, b: number): boolean; +/** + * @en Tests whether or not the arguments have approximately the same value by given maxDiff<br/> + * @zh 通过给定的最大差异,测试参数是否具有近似相同的值。 + * @param a The first number to test. + * @param b The second number to test. + * @param maxDiff Maximum difference. + * @return True if the numbers are approximately equal, false otherwise. + */ +export declare function approx(a: number, b: number, maxDiff: number): boolean; +/** + * @en Clamps a value between a minimum float and maximum float value.<br/> + * @zh 返回最小浮点数和最大浮点数之间的一个数值。可以使用 clamp 函数将不断变化的数值限制在范围内。 + * @param val + * @param min + * @param max + */ +export declare function clamp(val: number, min: number, max: number): number; +/** + * @en Clamps a value between 0 and 1.<br/> + * @zh 将值限制在0和1之间。 + * @param val + */ +export declare function clamp01(val: number): number; +/** + * @param from + * @param to + * @param ratio - The interpolation coefficient. + */ +export declare function lerp(from: number, to: number, ratio: number): number; +/** + * @en Convert Degree To Radian<br/> + * @zh 把角度换算成弧度。 + * @param {Number} a Angle in Degrees + */ +export declare function toRadian(a: number): number; +/** + * @en Convert Radian To Degree<br/> + * @zh 把弧度换算成角度。 + * @param {Number} a Angle in Radian + */ +export declare function toDegree(a: number): number; +/** + * @method random + */ +export declare const random: () => number; +/** + * @en Returns a floating-point random number between min (inclusive) and max (exclusive).<br/> + * @zh 返回最小(包含)和最大(不包含)之间的浮点随机数。 + * @method randomRange + * @param min + * @param max + * @return The random number. + */ +export declare function randomRange(min: number, max: number): number; +/** + * @en Returns a random integer between min (inclusive) and max (exclusive).<br/> + * @zh 返回最小(包含)和最大(不包含)之间的随机整数。 + * @param min + * @param max + * @return The random integer. + */ +export declare function randomRangeInt(min: number, max: number): number; +/** + * Linear congruential generator using Hull-Dobell Theorem. + * + * @param seed The random seed. + * @return The pseudo random. + */ +export declare function pseudoRandom(seed: number): number; +/** + * Returns a floating-point pseudo-random number between min (inclusive) and max (exclusive). + * + * @param seed + * @param min + * @param max + * @return The random number. + */ +export declare function pseudoRandomRange(seed: number, min: number, max: number): number; +/** + * @en Returns a pseudo-random integer between min (inclusive) and max (exclusive).<br/> + * @zh 返回最小(包含)和最大(不包含)之间的浮点伪随机数。 + * @param seed + * @param min + * @param max + * @return The random integer. + */ +export declare function pseudoRandomRangeInt(seed: number, min: number, max: number): number; +/** + * Returns the next power of two for the value.<br/> + * + * @param val + * @return The the next power of two. + */ +export declare function nextPow2(val: number): number; +/** + * @en Returns float remainder for t / length.<br/> + * @zh 返回t / length的浮点余数。 + * @param t Time start at 0. + * @param length Time of one cycle. + * @return The Time wrapped in the first cycle. + */ +export declare function repeat(t: number, length: number): number; +/** + * Returns time wrapped in ping-pong mode. + * + * @param t Time start at 0. + * @param length Time of one cycle. + * @return The time wrapped in the first cycle. + */ +export declare function pingPong(t: number, length: number): number; +/** + * @en Returns ratio of a value within a given range.<br/> + * @zh 返回给定范围内的值的比率。 + * @param from Start value. + * @param to End value. + * @param value Given value. + * @return The ratio between [from, to]. + */ +export declare function inverseLerp(from: number, to: number, value: number): number; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/utils.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/utils.d.ts.map new file mode 100644 index 0000000..5811a19 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/math/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,WAE1C;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAG3D;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAQ1D;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,UAElC;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAE3D;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,UAEjC;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,UAEjC;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,cAAc,CAAC;AAElC;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAEtD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAGxC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAE1E;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UASnC;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIjD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAElE"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec2.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec2.d.ts new file mode 100644 index 0000000..c9814bb --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec2.d.ts @@ -0,0 +1,154 @@ +import { Vec2, Vec3 } from 'cc'; +import { IMat3Like, IMat4Like, IVec2Like } from './type-define'; +interface IWritableArrayLike<T> { + length: number; + [index: number]: T; +} +export declare class MVec2 { + static ZERO: Readonly<Vec2>; + static ONE: Readonly<Vec2>; + static NEG_ONE: Readonly<Vec2>; + static UNIT_X: Readonly<Vec2>; + static UNIT_Y: Readonly<Vec2>; + /** + * @zh 获得指定向量的拷贝 + */ + static clone<Out extends IVec2Like>(a: Out): Vec2; + /** + * @zh 复制目标向量 + */ + static copy<Out extends IVec2Like>(out: Out, a: Out): Out; + /** + * @zh 设置向量值 + */ + static set<Out extends IVec2Like>(out: Out, x: number, y: number): Out; + /** + * @zh 逐元素向量加法 + */ + static add<Out extends IVec2Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量减法 + */ + static subtract<Out extends IVec2Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量乘法 + */ + static multiply<Out extends IVec2Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量除法 + */ + static divide<Out extends IVec2Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量向上取整 + */ + static ceil<Out extends IVec2Like>(out: Out, a: Out): Out; + /** + * @zh 逐元素向量向下取整 + */ + static floor<Out extends IVec2Like>(out: Out, a: Out): Out; + /** + * @zh 逐元素向量最小值 + */ + static min<Out extends IVec2Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量最大值 + */ + static max<Out extends IVec2Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量四舍五入取整 + */ + static round<Out extends IVec2Like>(out: Out, a: Out): Out; + /** + * @zh 向量标量乘法 + */ + static multiplyScalar<Out extends IVec2Like>(out: Out, a: Out, b: number): Out; + /** + * @zh 逐元素向量乘加: A + B * scale + */ + static scaleAndAdd<Out extends IVec2Like>(out: Out, a: Out, b: Out, scale: number): Out; + /** + * @zh 求两向量的欧氏距离 + */ + static distance<Out extends IVec2Like>(a: Out, b: Out): number; + /** + * @zh 求两向量的欧氏距离平方 + */ + static squaredDistance<Out extends IVec2Like>(a: Out, b: Out): number; + /** + * @zh 求向量长度 + */ + static len<Out extends IVec2Like>(a: Out): number; + /** + * @zh 求向量长度平方 + */ + static lengthSqr<Out extends IVec2Like>(a: Out): number; + /** + * @zh 逐元素向量取负 + */ + static negate<Out extends IVec2Like>(out: Out, a: Out): Out; + /** + * @zh 逐元素向量取倒数,接近 0 时返回 Infinity + */ + static inverse<Out extends IVec2Like>(out: Out, a: Out): Out; + /** + * @zh 逐元素向量取倒数,接近 0 时返回 0 + */ + static inverseSafe<Out extends IVec2Like>(out: Out, a: Out): Out; + /** + * @zh 归一化向量 + */ + static normalize<Out extends IVec2Like, Vec2Like extends IVec2Like>(out: Out, a: Vec2Like): Out; + /** + * @zh 向量点积(数量积) + */ + static dot<Out extends IVec2Like>(a: Out, b: Out): number; + /** + * @zh 向量叉积(向量积),注意二维向量的叉积为与 Z 轴平行的三维向量 + */ + static cross<Out extends IVec2Like>(out: Vec3, a: Out, b: Out): Vec3; + /** + * @zh 逐元素向量线性插值: A + t * (B - A) + */ + static lerp<Out extends IVec2Like>(out: Out, a: Out, b: Out, t: number): Out; + /** + * @zh 生成一个在单位圆上均匀分布的随机向量 + * @param scale 生成的向量长度 + */ + static random<Out extends IVec2Like>(out: Out, scale?: number): Out; + /** + * @zh 向量与三维矩阵乘法,默认向量第三位为 1。 + */ + static transformMat3<Out extends IVec2Like, MatLike extends IMat3Like>(out: Out, a: Out, m: IMat3Like): Out; + /** + * @zh 向量与四维矩阵乘法,默认向量第三位为 0,第四位为 1。 + */ + static transformMat4<Out extends IVec2Like, MatLike extends IMat4Like>(out: Out, a: Out, m: IMat4Like): Out; + /** + * @zh 返回向量的字符串表示 + */ + static str<Out extends IVec2Like>(a: Out): string; + /** + * @zh 向量转数组 + * @param ofs 数组起始偏移量 + */ + static toArray<Out extends IWritableArrayLike<number>>(out: Out, v: IVec2Like, ofs?: number): Out; + /** + * @zh 数组转向量 + * @param ofs 数组起始偏移量 + */ + static fromArray<Out extends IVec2Like>(out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out; + /** + * @zh 向量等价判断 + */ + static strictEquals<Out extends IVec2Like>(a: Out, b: Out): boolean; + /** + * @zh 排除浮点数误差的向量近似等价判断 + */ + static equals<Out extends IVec2Like>(a: Out, b: Out, epsilon?: number): boolean; + /** + * @zh 求两向量夹角弧度 + */ + static angle<Out extends IVec2Like>(a: Out, b: Out): number; +} +export {}; +//# sourceMappingURL=vec2.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec2.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec2.d.ts.map new file mode 100644 index 0000000..41e2658 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec2.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"vec2.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/math/vec2.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec3.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec3.d.ts new file mode 100644 index 0000000..81fa019 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec3.d.ts @@ -0,0 +1,208 @@ +import { Vec3 } from 'cc'; +import { IMat3Like, IMat4Like, IQuatLike, IVec3Like } from './type-define'; +interface IWritableArrayLike<T> { + length: number; + [index: number]: T; +} +export declare class MVec3 { + static UNIT_X: Readonly<Vec3>; + static UNIT_Y: Readonly<Vec3>; + static UNIT_Z: Readonly<Vec3>; + static ZERO: Readonly<Vec3>; + static ONE: Readonly<Vec3>; + static NEG_ONE: Readonly<Vec3>; + /** + * @zh 将目标赋值为零向量 + */ + static zero<Out extends IVec3Like>(out: Out): Out; + /** + * @zh 获得指定向量的拷贝 + */ + static clone<Out extends IVec3Like>(a: Out): Vec3; + /** + * @zh 复制目标向量 + */ + static copy<Out extends IVec3Like, Vec3Like extends IVec3Like>(out: Out, a: Vec3Like): Out; + /** + * @zh 设置向量值 + */ + static set<Out extends IVec3Like>(out: Out, x: number, y: number, z: number): Out; + /** + * @zh 逐元素向量加法 + */ + static add<Out extends IVec3Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量减法 + */ + static subtract<Out extends IVec3Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量乘法 (分量积) + */ + static multiply<Out extends IVec3Like, Vec3Like_1 extends IVec3Like, Vec3Like_2 extends IVec3Like>(out: Out, a: Vec3Like_1, b: Vec3Like_2): Out; + /** + * @zh 逐元素向量除法 + */ + static divide<Out extends IVec3Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量向上取整 + */ + static ceil<Out extends IVec3Like>(out: Out, a: Out): Out; + /** + * @zh 逐元素向量向下取整 + */ + static floor<Out extends IVec3Like>(out: Out, a: Out): Out; + /** + * @zh 逐元素向量最小值 + */ + static min<Out extends IVec3Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量最大值 + */ + static max<Out extends IVec3Like>(out: Out, a: Out, b: Out): Out; + /** + * @zh 逐元素向量四舍五入取整 + */ + static round<Out extends IVec3Like>(out: Out, a: Out): Out; + /** + * @zh 向量标量乘法 + */ + static multiplyScalar<Out extends IVec3Like, Vec3Like extends IVec3Like>(out: Out, a: Vec3Like, b: number): Out; + /** + * @zh 逐元素向量乘加: A + B * scale + */ + static scaleAndAdd<Out extends IVec3Like>(out: Out, a: Out, b: Out, scale: number): Out; + /** + * @zh 求两向量的欧氏距离 + */ + static distance<Out extends IVec3Like>(a: Out, b: Out): number; + /** + * @zh 求两向量的欧氏距离平方 + */ + static squaredDistance<Out extends IVec3Like>(a: Out, b: Out): number; + /** + * @zh 求向量长度 + */ + static len<Out extends IVec3Like>(a: Out): number; + /** + * @zh 求向量长度平方 + */ + static lengthSqr<Out extends IVec3Like>(a: Out): number; + /** + * @zh 逐元素向量取负 + */ + static negate<Out extends IVec3Like>(out: Out, a: Out): Out; + /** + * @zh 逐元素向量取倒数,接近 0 时返回 Infinity + */ + static invert<Out extends IVec3Like>(out: Out, a: Out): Out; + /** + * @zh 逐元素向量取倒数,接近 0 时返回 0 + */ + static invertSafe<Out extends IVec3Like>(out: Out, a: Out): Out; + /** + * @zh 归一化向量 + */ + static normalize<Out extends IVec3Like, Vec3Like extends IVec3Like>(out: Out, a: Vec3Like): Out; + /** + * @zh 向量点积(数量积) + */ + static dot<Out extends IVec3Like>(a: Out, b: Out): number; + /** + * @zh 向量叉积(向量积) + */ + static cross<Out extends IVec3Like>(out: Out, a: Readonly<IVec3Like>, b: Readonly<IVec3Like>): Out; + /** + * @zh 逐元素向量线性插值: A + t * (B - A) + */ + static lerp<Out extends IVec3Like>(out: Out, a: Out, b: Out, t: number): Out; + /** + * @zh 生成一个在单位球体上均匀分布的随机向量 + * @param scale 生成的向量长度 + */ + static random<Out extends IVec3Like>(out: Out, scale?: number): Out; + /** + * @zh 向量与四维矩阵乘法,默认向量第四位为 1。 + */ + static transformMat4<Out extends IVec3Like, Vec3Like extends IVec3Like, MatLike extends IMat4Like>(out: Out, a: Vec3Like, m: MatLike): Out; + /** + * @zh 向量与四维矩阵乘法,默认向量第四位为 0。 + */ + static transformMat4Normal<Out extends IVec3Like, MatLike extends IMat4Like>(out: Out, a: Out, m: MatLike): Out; + /** + * @zh 向量与三维矩阵乘法 + */ + static transformMat3<Out extends IVec3Like, MatLike extends IMat3Like>(out: Out, a: Out, m: MatLike): Out; + /** + * @zh 向量仿射变换 + */ + static transformAffine<Out extends IVec3Like, VecLike extends IVec3Like, MatLike extends IMat4Like>(out: Out, v: VecLike, m: MatLike): Out; + /** + * @zh 向量四元数乘法 + */ + static transformQuat<Out extends IVec3Like, VecLike extends IVec3Like, QuatLike extends IQuatLike>(out: Out, a: VecLike, q: QuatLike): Out; + /** + * @zh 以缩放 -> 旋转 -> 平移顺序变换向量 + */ + static transformRTS<Out extends IVec3Like, VecLike extends IVec3Like, QuatLike extends IQuatLike>(out: Out, a: VecLike, r: QuatLike, t: VecLike, s: VecLike): Out; + /** + * @zh 以平移 -> 旋转 -> 缩放顺序逆变换向量 + */ + static transformInverseRTS<Out extends IVec3Like, VecLike extends IVec3Like, QuatLike extends IQuatLike>(out: Out, a: VecLike, r: QuatLike, t: VecLike, s: VecLike): Out; + /** + * @zh 绕 X 轴旋转向量指定弧度 + * @param v 待旋转向量 + * @param o 旋转中心 + * @param a 旋转弧度 + */ + static rotateX<Out extends IVec3Like>(out: Out, v: Out, o: Out, a: number): Out; + /** + * @zh 绕 Y 轴旋转向量指定弧度 + * @param v 待旋转向量 + * @param o 旋转中心 + * @param a 旋转弧度 + */ + static rotateY<Out extends IVec3Like>(out: Out, v: Out, o: Out, a: number): Out; + /** + * @zh 绕 Z 轴旋转向量指定弧度 + * @param v 待旋转向量 + * @param o 旋转中心 + * @param a 旋转弧度 + */ + static rotateZ<Out extends IVec3Like>(out: Out, v: Out, o: Out, a: number): Out; + /** + * @zh 向量转数组 + * @param ofs 数组起始偏移量 + */ + static toArray<Out extends IWritableArrayLike<number>>(out: Out, v: IVec3Like, ofs?: number): Out; + /** + * @zh 数组转向量 + * @param ofs 数组起始偏移量 + */ + static fromArray<Out extends IVec3Like>(out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out; + /** + * @zh 向量等价判断 + */ + static strictEquals<Out extends IVec3Like>(a: Out, b: Out): boolean; + /** + * @zh 排除浮点数误差的向量近似等价判断 + */ + static equals<Out extends IVec3Like>(a: Out, b: Out, epsilon?: number): boolean; + /** + * @zh 求两向量夹角弧度 + */ + static angle<Out extends IVec3Like>(a: Out, b: Out): number; + /** + * @zh 计算向量在指定平面上的投影 + * @param a 待投影向量 + * @param n 指定平面的法线 + */ + static projectOnPlane<Out extends IVec3Like>(out: Out, a: Out, n: Out): Out; + /** + * @zh 计算向量在指定向量上的投影 + * @param a 待投影向量 + * @param n 目标向量 + */ + static project<Out extends IVec3Like>(out: Out, a: Out, b: Out): Out; +} +export {}; +//# sourceMappingURL=vec3.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec3.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec3.d.ts.map new file mode 100644 index 0000000..35b605b --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/math/vec3.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"vec3.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/math/vec3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/memop/recycle-pool.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/memop/recycle-pool.d.ts new file mode 100644 index 0000000..ab103e2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/memop/recycle-pool.d.ts @@ -0,0 +1,44 @@ +/** + * @category memop + */ +/** + * @zh 循环对象池。 + */ +export declare class RecyclePool<T = any> { + private _fn; + private _count; + private _data; + /** + * 构造函数。 + * @param fn 对象构造函数。 + * @param size 初始大小。 + */ + constructor(fn: () => T, size: number); + /** + * @zh 对象池大小。 + */ + get length(): number; + /** + * @zh 对象池数组。 + */ + get data(): T[]; + /** + * @zh 清空对象池。 + */ + reset(): void; + /** + * @zh 设置对象池大小。 + * @param size 对象池大小。 + */ + resize(size: number): void; + /** + * @zh 从对象池中取出一个对象。 + */ + add(): T; + /** + * @zh 释放对象池中的一个元素。 + * @param idx 释放对象的索引。 + */ + removeAt(idx: number): void; +} +//# sourceMappingURL=recycle-pool.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/memop/recycle-pool.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/memop/recycle-pool.d.ts.map new file mode 100644 index 0000000..e2065ba --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/memop/recycle-pool.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"recycle-pool.d.ts","sourceRoot":"","sources":["../../../../source/script/utils/memop/recycle-pool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC,GAAG,GAAG;IAC5B,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAM;IAEnB;;;;OAIG;gBACS,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM;IASrC;;OAEG;IACH,IAAI,MAAM,WAET;IAED;;OAEG;IACH,IAAI,IAAI,QAEP;IAED;;OAEG;IACI,KAAK;IAIZ;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM;IAQ1B;;OAEG;IACI,GAAG;IAQV;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM;CAW9B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/misc.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/misc.d.ts new file mode 100644 index 0000000..d10b25a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/misc.d.ts @@ -0,0 +1,8 @@ +import { basename, join, relative, extname } from 'path'; +import { promisify } from 'util'; +import { existsSync, readJSONSync, readFileSync, ensureDirSync, writeFileSync, writeJSONSync, mkdirSync, writeFile } from 'fs-extra'; +export { promisify, existsSync, readFileSync, readJSONSync, ensureDirSync, writeJSONSync, mkdirSync, writeFileSync, writeFile }; +export { basename, join, relative, extname }; +export declare function get(object: any, path: any, value?: any): any; +export declare function set(object: any, path: any, value: any): any; +//# sourceMappingURL=misc.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/misc.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/misc.d.ts.map new file mode 100644 index 0000000..66f7c68 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/misc.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../source/script/utils/misc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIzD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAC1D,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EACtD,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EACtD,SAAS,EAAE,CAAC;AAEhB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAE7C,wBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,OAEtD;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAErD"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/node.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/node.d.ts new file mode 100644 index 0000000..9c87f4f --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/node.d.ts @@ -0,0 +1,102 @@ +import { geometry, Mat4, MeshRenderer, Node, Quat, Rect, renderer, Size, UITransform, Vec2, Vec3, Vec4, LightProbeGroup } from 'cc'; +export declare class NodeUtils { + getObbFromRect(mat: Mat4, rect: Rect, out_bl: Vec2, out_tl: Vec2, out_tr: Vec2, out_br: Vec2): Vec2[]; + getWorldBounds(node: Node, size?: Size, out?: Rect): any; + getWorldOrientedBounds(node: Node, size?: Size | null, out_bl?: Vec2 | null, out_tl?: Vec2 | null, out_tr?: Vec2 | null, out_br?: Vec2 | null): Vec3[]; + getObbFromLightProbeGroup(modelComp: LightProbeGroup, mat: Mat4): Vec3[]; + getObbFromUITransform(modelComp: UITransform, mat: Mat4): Vec3[]; + getObbFromMeshRenderer(modelComp: MeshRenderer, mat: Mat4): Vec3[]; + getObbFromBound(aabb: geometry.AABB): Vec3[]; + getScenePosition(node: Node): Vec3; + setScenePosition(node: Node, value: Vec3): void; + getSceneRotation(node: Node): 0 | Quat; + setSceneRotation(node: Node, value: Quat): void; + getWorldPosition(node: Node): Vec3; + setWorldPosition(node: Node, value: Vec3): void; + getWorldRotation(node: Node): Quat; + setWorldRotation(node: Node, value: Quat): void; + getWorldScale(node: Node): Vec3; + /** + * 查找所有 Component, 看是否有任一符合标记的 + * @method _hasFlagInComponents + * @param {Number} flag - 只能包含一个标记, 不能是复合的 mask + * @returns {boolean} + */ + _hasFlagInComponents(node: Node, flag: number): boolean; + /** + * + * @param node + * @param flag + * @returns + */ + hasComponent(node: Node, comps: string[]): boolean; + _destroyForUndo(nodeOrComp: any, recordFunc: Function): void; + getNodePath(node: Node | null): string; + getChildUuids(root: any, insertRoot: any): any[]; + /** + * 从一个 asset 内创建新的节点 + * @param {*} uuid + * @param {*} callback + */ + createNodeFromAsset(uuid: string, callback: Function): Promise<void>; + /** + * 根据 class 创建一个新的节点 + * @param {*} classID + * @param {*} callback + */ + createNodeFromClass(classID: string, callback: Function): void; + makeVec3InPrecision(inVec3: Vec3, precision: number): Vec3; + makeVec2InPrecision(inVec2: Vec2, precision: number): Vec2; + getWorldPosition3D(node: Node, out?: Vec3): Vec3; + setWorldPosition3D(node: Node, value: Vec3, precision?: number): void; + getWorldRotation3D(node: Node, out?: Quat): Quat; + setWorldRotation3D(node: Node, value: Quat): void; + getEulerAngles(node: Node): Readonly<Vec3>; + setEulerAngles(node: Node, value: Vec3): void; + getWorldScale3D(node: Node): Vec3; + limitRange(distance: number): number; + makeVec3InRange(inVec3: Vec3, min: number, max: number): Vec3; + getCenterWorldPos3D(nodes: Node[]): Vec3; + getMaxRangeOfNode(node: Node): number; + getMinRangeOfNodes(nodes: Node[]): number; + getMaxRangeOfNodes(nodes: ReadonlyArray<Node>): number; + /** + * 检测一个节点是否是某个节点的一部分 + * @param testNode 测试节点 + * @param rootNode 根节点 + */ + isPartOfNode(testNode: Node, rootNode: Node): boolean; + isEditorNode(node: Node): boolean; + private _getRangeFromParticleComp; + getRaycastResultNodes(camera: renderer.scene.Camera, x: number, y: number, mask?: number): Node[]; + getRaycastResults(camera: renderer.scene.Camera, x: number, y: number, mask?: number): import("./raycast").IRaycastResult[]; + getRaycastResultsForSnap(camera: renderer.scene.Camera, x: number, y: number, mask?: number): import("./raycast").IRaycastResult[]; + private _collectNodesForRegion; + isNodeInRegion(node: Node, camera: renderer.scene.Camera, left: number, right: number, top: number, bottom: number): boolean; + isModelInRegion(m: renderer.scene.Model, camera: renderer.scene.Camera, left: number, right: number, top: number, bottom: number): boolean; + getRegionNodes(camera: renderer.scene.Camera, left: number, right: number, top: number, bottom: number, mask?: number, shouldFilterForeground?: boolean): Node[]; + /** + * 根据节点和路径得到组件名和属性名 + * @param node + * @param propPath 改数组长度时:__comps__.1.clips.length 和数组元素时 __comps__.1.clips.0 + */ + getNameDataByPropPath(node: Node, propPath: string): { + compName: string; + propName: string; + }; + getBoundaryOfMeshNode(node: Node): geometry.AABB | undefined | null; + getBoundaryOfMeshNodes(nodes: ReadonlyArray<Node>): geometry.AABB | undefined | null; + /** + * 获取鼠标位置指向的node身上的一定距离内的mesh顶点 + * @param node 目标 + * @param camera 场景相机 + * @param mouseX 鼠标x坐标 + * @param mouseY 鼠标y坐标 + * @param distance 小于该距离才认为是鼠标附近的顶点 + * @returns 收集到的顶点列表 + */ + getMeshVertexAroundMouse(node: Node, camera: any, mouseX: number, mouseY: number, distance?: number): Vec4[]; +} +declare const _default: NodeUtils; +export default _default; +//# sourceMappingURL=node.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/node.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/node.d.ts.map new file mode 100644 index 0000000..359d864 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/node.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../source/script/utils/node.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/path.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/path.d.ts new file mode 100644 index 0000000..30454df --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/path.d.ts @@ -0,0 +1,3 @@ +declare const _default: any; +export default _default; +//# sourceMappingURL=path.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/path.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/path.d.ts.map new file mode 100644 index 0000000..4b3e367 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/path.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../source/script/utils/path.ts"],"names":[],"mappings":";AA8mBA,wBAAwC"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/pool.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/pool.d.ts new file mode 100644 index 0000000..9253ad4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/pool.d.ts @@ -0,0 +1,11 @@ +export default class Pool<T> { + private _fn; + private _idx; + private _frees; + constructor(fn: () => T, size: number); + alloc(): T; + free(obj: T): void; + clear(fn: (obj: T) => void): void; + private _expand; +} +//# sourceMappingURL=pool.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/pool.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/pool.d.ts.map new file mode 100644 index 0000000..68f51cf --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/pool.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../source/script/utils/pool.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAM;gBAER,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM;IAU9B,KAAK,IAAI,CAAC;IAaV,IAAI,CAAC,GAAG,EAAE,CAAC;IAKX,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI;IAUjC,OAAO,CAAC,OAAO;CAelB"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/raycast.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/raycast.d.ts new file mode 100644 index 0000000..a1986f4 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/raycast.d.ts @@ -0,0 +1,118 @@ +import { geometry, Node, renderer, Vec3, PhysicsRayResult } from 'cc'; +declare type ray = geometry.Ray; +declare const ray: typeof geometry.Ray; +export interface IRaycastResult { + node: Node; + distance: number; + hitPoint: Vec3; +} +export declare class Raycast { + /** + * @zh + * 获取 raycastAllCanvas 后的检测结果 + */ + get rayResultCanvas(): IRaycastResult[]; + /** + * @zh + * 获取 raycastAllModels 后的检测结果 + */ + get rayResultModels(): IRaycastResult[]; + /** + * @zh + * 获取 raycastAll 后的检测结果 + */ + get rayResultAll(): IRaycastResult[]; + /** + * @zh + * 获取 raycastSingleModel 后的检测结果 + */ + get rayResultSingleModel(): IRaycastResult[]; + /** + * @zh + * 获取collider射线检测结果 + */ + get raycastColliderResults(): PhysicsRayResult[]; + /** + * @en + * Cast a ray into the scene, record all the intersected models and ui2d nodes in the result array + * @param worldRay the testing ray + * @param mask the layer mask to filter the models + * @param distance the max distance , Infinity by default + * @returns boolean , ray is hit or not + * @note getter of this.rayResultAll can get recently result + * @zh + * 传入一条射线检测场景中所有的 3D 模型和 UI2D Node + * @param worldRay 世界射线 + * @param mask mask 用于标记所有要检测的层,默认为 Default | UI2D + * @param distance 射线检测的最大距离, 默认为 Infinity + * @returns boolean , 射线是否有击中 + * @note 通过 this.rayResultAll 可以获取到最近的结果 + */ + raycastAll(renderScene: renderer.RenderScene, worldRay: ray, mask?: number, distance?: number, forSnap?: boolean, excludeMask?: number): boolean; + private narrowPhaseStep; + /** + * @en + * Cast a ray into the scene, record all the intersected models in the result array + * @param worldRay the testing ray + * @param mask the layer mask to filter the models + * @param distance the max distance , Infinity by default + * @returns boolean , ray is hit or not + * @note getter of this.rayResultModels can get recently result + * @zh + * 传入一条射线检测场景中所有的 3D 模型。 + * @param worldRay 世界射线 + * @param mask 用于标记所有要检测的层,默认为 Default + * @param distance 射线检测的最大距离, 默认为 Infinity + * @returns boolean , 射线是否有击中 + * @note 通过 this.rayResultModels 可以获取到最近的结果 + */ + raycastAllModels(renderScene: renderer.RenderScene, worldRay: ray, mask: number | undefined, distance: number | undefined, forSnap: boolean, excludeMask?: number): boolean; + /** + * @en + * Before you raycast the model, make sure the model is not null + * @param worldRay the testing ray + * @param model the testing model + * @param mask the layer mask to filter the models + * @param distance the max distance , Infinity by default + * @returns boolean , ray is hit or not + * @zh + * 传入一条射线和一个 3D 模型进行射线检测。 + * @param worldRay 世界射线 + * @param model 进行检测的模型 + * @param mask 用于标记所有要检测的层,默认为 Default + * @param distance 射线检测的最大距离, 默认为 Infinity + * @param excludeMask 标记要排除的层 + * @returns boolean , 射线是否有击中 + */ + raycastSingleModel(worldRay: ray, model: renderer.scene.Model, mask: number | undefined, distance: number | undefined, forSnap: boolean, excludeMask?: number): boolean; + /** + * @en + * Cast a ray into the scene, detect all canvas and its children + * @param worldRay the testing ray + * @param mask the layer mask to filter all ui2d aabb + * @param distance the max distance , Infinity by default + * @returns boolean , ray is hit or not + * @note getter of this.rayResultCanvas can get recently result + * @zh + * 传入一条射线检测场景中所有的 Canvas 以及 Canvas 下的 Node + * @param worldRay 世界射线 + * @param mask 用于标记所有要检测的层,默认为 UI_2D + * @param distance 射线检测的最大距离, 默认为 Infinity + * @param excludeMask 标记要排除的层 + * @returns boolean , 射线是否有击中 + * @note 通过 this.rayResultCanvas 可以获取到最近的结果 + */ + raycastAllCanvas(worldRay: ray, mask?: number, distance?: number, excludeMask?: number): boolean; + /** + * 射线检测所有colliders + * @param worldRay + * @param mask + * @param distance + */ + raycastAllColliders(worldRay: ray, mask?: number): boolean; + private _raycastUI2DNode; + private _raycastUI2DNodeRecursiveChildren; +} +declare const _default: Raycast; +export default _default; +//# sourceMappingURL=raycast.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/raycast.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/raycast.d.ts.map new file mode 100644 index 0000000..d55e2a8 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/raycast.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"raycast.d.ts","sourceRoot":"","sources":["../../../source/script/utils/raycast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqB,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAiB,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAOxG,aAAK,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;AACxB,QAAA,MAAM,GAAG,qBAAe,CAAC;AAUzB,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;CAClB;AAED,qBAAa,OAAO;IAChB;;;OAGG;IACH,IAAI,eAAe,qBAElB;IAED;;;OAGG;IACH,IAAI,eAAe,qBAElB;IAED;;;OAGG;IACH,IAAI,YAAY,qBAEf;IAED;;;OAGG;IACH,IAAI,oBAAoB,qBAEvB;IAED;;;OAGG;IACH,IAAI,sBAAsB,uBAEzB;IAED;;;;;;;;;;;;;;;OAeG;IACI,UAAU,CACb,WAAW,EAAE,QAAQ,CAAC,WAAW,EACjC,QAAQ,EAAE,GAAG,EACb,IAAI,SAAuE,EAC3E,QAAQ,SAAW,EACnB,OAAO,UAAQ,EACf,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO;IAYV,OAAO,CAAC,eAAe;IA8BvB;;;;;;;;;;;;;;;OAeG;IACI,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,oBAAsB,EAAE,QAAQ,oBAAW,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAwD3K;;;;;;;;;;;;;;;;OAgBG;IACI,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,oBAAsB,EAAE,QAAQ,oBAAW,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAwBvK;;;;;;;;;;;;;;;;OAgBG;IACI,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,SAAoB,EAAE,QAAQ,SAAW,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAgBpH;;;;;OAKG;IACI,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,SAAsB;IAQpE,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,iCAAiC;CAe5C;;AA8KD,wBAA6B"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/window.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/window.d.ts new file mode 100644 index 0000000..3070d13 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/window.d.ts @@ -0,0 +1,7 @@ +import type { ISizeLike } from 'cc'; +/** + * 获取引擎主窗口的宽高 + * @returns + */ +export declare function getMainWindowSize(): ISizeLike; +//# sourceMappingURL=window.d.ts.map \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/window.d.ts.map b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/window.d.ts.map new file mode 100644 index 0000000..b2ce28a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/cce/utils/window.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../source/script/utils/window.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIpC;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,CAS7C"} \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/engine-view.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/engine-view.d.ts new file mode 100644 index 0000000..22dde84 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/engine-view.d.ts @@ -0,0 +1,72 @@ +import type { WebviewTag } from 'electron'; +import ISceneFacade from './scene-facade-interface'; +/** + * 这个是 engine-view 标签的接口 + */ +export interface EngineView { + dirty: boolean; + managerReady: boolean; + + $scene: WebviewTag; + depend: any; + $floatWindow: any; + + // 封装的 webview 通讯模块 + ipc: any; + + info: any; + + /** + * 初始化 + */ + init(): Promise<any>; + + /** + * 调用场景进程里的方法 + * @param methodName + * @param params + * @param forced + * @param timeout + */ + + callSceneMethod<T extends keyof ISceneFacade>(methodName: T, params: Parameters<ISceneFacade[T]>, forced?: boolean, timeout?: boolean): Promise<ReturnType<typeof ISceneFacade[T]>> + + /** + * 执行组件方法 + * @param options + */ + executeComponentMethod(options: { uuid: string, index: number, methodNames: string[] }); + + ////////////// + + attachFloatWindow(name: string, options: FloatWindowOptions) + + detachFloatWindow(name: string) + + attachToolbar(name: string, options: any) + + detachToolbar(name: string) + + attachInfobar(name: string, options: any) + + detachInfobar(name: string) +} +export interface FloatWindowOptions { + type: string; + width: number; + height: number; + top?: number; + bottom?: number; + left?: number; + right?: number; + + dock?: boolean; + + mode?: 'dock' | 'simple'; + + template: string; + ready?: ($window: HTMLDivElement, info: ScenePluginInfo, componentMap: { [type: string]: ScenePluginComponentInfo[] }) => void; + close?: Function; + update?: Function; + send?: Function; +} diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/message.d.ts new file mode 100644 index 0000000..16cef29 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/message.d.ts @@ -0,0 +1,317 @@ +import { + SetPropertyOptions, + MoveArrayOptions, + RemoveArrayOptions, + PasteNodeOptions, + CutNodeOptions, + CreateNodeOptions, + RemoveNodeOptions, + ResetNodeOptions, + ResetComponentOptions, + CreateComponentOptions, + INode, + IComponent, +} from './public'; +export interface queryIsNative { + /** + * @en Whether to check whether the native editor is available, and if not, return only whether the one recorded on the configuration is a native editor + * @zh 是否检查原生编辑器是否可用,如果不检查则只返回配置上记录的是否为原生编辑器 + * @default true + */ + checkAvailable?:boolean; +} +export interface message extends EditorMessageMap { + 'open-scene': { + params: [ + string + ], + result: boolean, + }, + 'save-scene': { + params: [] | [ + boolean + ], + result: boolean, + }, + 'save-as-scene': { + params: [ + boolean + ], + result: boolean, + }, + 'close-scene': { + params: [], + result: boolean, + }, + 'set-property': { + params: [ + SetPropertyOptions, + ], + result: boolean, + }, + + 'reset-property': { + params: [ + SetPropertyOptions, + ], + result: boolean, + }, + 'move-array-element': { + params: [ + MoveArrayOptions, + ], + result: void, + }, + 'remove-array-element': { + params: [ + RemoveArrayOptions, + ], + result: void, + }, + 'copy-node': { + params: [ + string | string[], + ], + result: string[], + }, + 'duplicate-node': { + params: [ + string | string[], + ], + result: string[], + }, + 'paste-node': { + params: [ + PasteNodeOptions, + ], + result: string[], + }, + 'cut-node': { + params: [ + string | string[], + ], + result: void, + }, + 'set-parent': { + params: [ + CutNodeOptions, + ], + result: string[], + }, + 'create-node': { + params: [ + CreateNodeOptions, + ], + result: string[], + }, + 'remove-node': { + params: [ + RemoveNodeOptions, + ], + result: void, + }, + 'reset-node': { + params: [ + ResetNodeOptions, + ], + result: void, + }, + 'reset-component': { + params: [ + ResetComponentOptions, + ], + result: void, + }, + 'restore-prefab': { + params: [ + ResetComponentOptions, + ], + result: void, + }, + 'create-component': { + params: [ + CreateComponentOptions, + ], + result: boolean, + }, + 'remove-component': { + params: [ + RemoveComponentOptions, + ], + result: void, + }, + 'execute-component-method': { + params: [ + ExecuteComponentMethodOptions, + ], + result: any, + }, + 'execute-scene-script': { + params: [] | [ + { + name: string; + method: string; + args: any[]; + } + ], + result: any, + }, + 'snapshot': { + params: [], + result: void, + }, + 'snapshot-abort': { + params: [], + result: void, + }, + 'soft-reload': { + params: [], + result: void, + }, + 'change-gizmo-tool': { + params: [ + string, + ], + result: void, + }, + 'query-gizmo-tool-name': { + params: [], + result: string, + }, + 'change-gizmo-pivot': { + params: [ + string, + ], + result: void, + }, + 'query-gizmo-pivot': { + params: [], + result: string, + }, + 'change-gizmo-coordinate': { + params: [ + string, + ], + result: void, + }, + 'query-gizmo-coordinate': { + params: [], + result: string, + }, + 'change-is2D': { + params: [ + boolean, + ], + result: void, + }, + 'query-is2D': { + params: [], + result: boolean, + }, + 'set-grid-visible': { + params: [ + boolean, + ], + result: void, + }, + 'query-is-grid-visible': { + params: [], + result: boolean, + }, + 'set-icon-gizmo-3d': { + params: [ + boolean, + ], + result: void, + }, + 'query-is-icon-gizmo-3d': { + params: [], + result: boolean, + }, + 'set-icon-gizmo-size': { + params: [ + number, + ], + result: void, + }, + 'query-icon-gizmo-size': { + params: [], + result: number, + }, + 'focus-camera': { + params: [ + string[], + ], + result: void, + }, + 'align-with-view': { + params: [], + result: void, + }, + 'align-view-with-node': { + params: [], + result: void, + }, + + 'query-is-ready': { + params: [], + result: boolean, + }, + 'query-node': { + params: [ + string, + ], + result: INode, + }, + 'query-component': { + params: [ + string, + ], + result: IComponent, + }, + 'query-node-tree': { + params: [] | [ + string + ], + result: INode[], + }, + 'query-nodes-by-asset-uuid': { + params: [ + string, + ], + result: string[], + }, + 'query-dirty': { + params: [], + result: boolean, + }, + 'query-classes': { + params: [], + result: string[], + }, + 'query-components': { + params: [], + result: string[], + }, + 'query-component-has-script': { + params: [ + string, + ], + result: boolean, + }, + 'query-scene-bounds': { + params: [], + result: { + height: number; + width: number; + x: number; + y: number; + }, + } + 'is-native': { + params:[ + queryIsNative + ]|[], + result: boolean, + } +} diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/public.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/public.d.ts new file mode 100644 index 0000000..5dcf5bc --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/public.d.ts @@ -0,0 +1,347 @@ + +// ---- 一些 engine 基础数据 ---- start +interface Vec2 { + x: number; + y: number; +} + +export interface Vec3 { + x: number; + y: number; + z: number; +} + +interface Vec4 { + x: number; + y: number; + z: number; + w: number; +} + +interface Quat { + x: number; + y: number; + z: number; + w: number; +} + +interface Color3 { + r: number; + g: number; + b: number; +} + +interface Color4 { + r: number; + g: number; + b: number; + a: number; +} + +interface Mat3 { + m00: number; + m01: number; + m02: number; + + m03: number; + m04: number; + m05: number; + + m06: number; + m07: number; + m08: number; +} + +interface Mat4 { + m00: number; + m01: number; + m02: number; + m03: number; + + m04: number; + m05: number; + m06: number; + m07: number; + + m08: number; + m09: number; + m10: number; + m11: number; + + m12: number; + m13: number; + m14: number; + m15: number; +} +// ---- 一些 engine 基础数据 ---- end + +// ---- 操作消息的参数定义 --- strart + +// set-property 消息的 options 定义 +export interface SetPropertyOptions { + uuid: string; // 修改属性的对象的 uuid + path: string; // 属性挂载对象的搜索路径 + // key: string; // 属性的 key + dump: IProperty; // 属性 dump 出来的数据 + record?: boolean;// 是否记录undo +} + +// move-array-element 消息的 options 定义 +export interface MoveArrayOptions { + uuid: string; + path: string; + target: number; + offset: number; +} + +// remove-array-element 消息的 options 定义 +export interface RemoveArrayOptions { + uuid: string; + path: string; + index: number; +} + +export interface PasteNodeOptions { + target: string; // 目标节点 + uuids: string | string[]; // 被复制的节点 uuids + keepWorldTransform?: boolean; // 是否保持新节点的世界坐标不变 + pasteAsChild?: boolean; // 是否粘贴成为子节点 +} + +export interface CutNodeOptions { + parent: string; // 父节点 + uuids: string | string[]; // 被移入的节点 uuids + keepWorldTransform?: boolean; // 是否保持新节点的世界坐标不变 +} + +// create-node 消息的 options 定义 +export interface CreateNodeOptions { + parent?: string; + components?: string[]; + + name?: string; + dump?: INode | IScene; // node 初始化应用的数据 + keepWorldTransform?: boolean; // 是否保持新节点的世界坐标不变 + type?: string; // 资源类型 + assetUuid?: string; // asset uuid , type value 格式保持兼容拖动的数据格式,有资源 id,则从资源内创建对应的节点 + canvasRequired?: boolean; // 是否需要有 Canvas + unlinkPrefab?: boolean; // 创建后取消 prefab 状态 + position?: Vec3; // 指定生成的位置 + nameIncrease?: boolean; // 名称自增 xxx001 -> xxx002 + snapshot?: boolean; +} + +export interface ResetNodeOptions { + uuid: string | string[]; +} + +export interface RemoveNodeOptions { + uuid: string | string[]; + keepWorldTransform?: boolean; +} + +export interface CreateComponentOptions { + uuid: string; + component: string; +} + +export interface ResetComponentOptions { + uuid: string; +} + +export interface RemoveComponentOptions { + uuid: string; + component: string; +} + +export interface ExecuteComponentMethodOptions { + uuid: string; + name: string; + args: any[]; +} + +export interface IAnimOperation { + funcName: string; + args: any[]; +} + +export interface ExecuteSceneScriptMethodOptions { + name: string; + method: string; + args: any[]; +} + +export type IPropertyValueType = IProperty | IProperty[] | null | undefined | number | boolean | string | Vec3 | Vec2; + +export interface IPropertyGroupOptions { + id: string // 默认 'default' + name: string, + displayOrder: number, // 默认 Infinity, 排在最后面 + style: string // 默认为 'tab' +} + +export interface IProperty { + value: { [key: string]: IPropertyValueType } | IPropertyValueType; + default?: any; // 默认值 + + // 多选节点之后,这里存储多个数据,用于自行判断多选后的显示效果,无需更新该数据 + values?: ({ [key: string]: IPropertyValueType } | IPropertyValueType)[]; + + cid?: string; + type?: string; + ui?: { name: string, data?: any }; // 是否用指定的 UI 组件,name 是组件的名称 + readonly?: boolean; + visible?: boolean; + name?: string; + + elementTypeData?: IProperty; // 数组里的数据的默认值 dump + + path?: string; // 数据的搜索路径,这个是由使用方填充的 + + isArray?: boolean; + invalid?: boolean; + extends?: string[]; // 继承链 + displayName?: string; // 显示到界面上的名字 + displayOrder?: number; // 显示排序 + help?: string; // 帮助文档的 url 地址 + group?: IPropertyGroupOptions; // tab + tooltip?: string; // 提示文本 + editor?: any; // 组件上定义的编辑器数据 + animatable?: boolean; // 是否可以在动画中编辑 + + // Enum + enumList?: any[]; // enum 类型的 list 选项数组 + + bitmaskList?: any[]; + + // Number + min?: number; // 数值类型的最小值 + max?: number; // 数值类型的最大值 + step?: number; // 数值类型的步进值 + slide?: boolean; // 数组是否显示为滑块 + unit?: string; // 显示的单位 + radian?: boolean; // 标识是否为角度 + + // Label + multiline?: boolean; // 字符串是否允许换行 + // nullable?: boolean; 属性是否允许为空 + + optionalTypes?: string[]; // 对属性是 object 且是可变类型的数据的支持,比如 render-pipeline + + userData?: { [key: string]: any }; // 用户透传的数据 +} + +export interface IRemovedComponentInfo { + name: string; + fileID: string; +} + +export interface INode { + active: IProperty; + locked: IProperty; + name: IProperty; + position: IProperty; + + /** + * 此为 dump 数据,非 node.rotation + * 实际指向 node.eulerAngles + * rotation 为了给用户更友好的文案 + */ + rotation: IProperty; + mobility: IProperty; + + scale: IProperty; + layer: IProperty; + uuid: IProperty; + + children: any[]; + parent: any; + + __comps__: IProperty[]; + __type__: string; + __prefab__?: any; + _prefabInstance?: any; + removedComponents?: IRemovedComponentInfo[]; + mountedRoot?: string; +} + +export interface IComponent extends IProperty { + value: { + enabled: IPropertyValueType; + uuid: IPropertyValueType; + name: IPropertyValueType; + } & Record<string, IPropertyValueType>; + mountedRoot?: string; +} + +export interface IScene { + name: IProperty; + active: IProperty; + locked: IProperty; + _globals: any; + isScene: boolean; + autoReleaseAssets: IProperty; + + uuid: IProperty; + children: any[]; + parent: any; + __type__: string; + targetOverrides?: any; +} + +export interface ITargetOverrideInfo { + source: string; + sourceInfo?: string[]; + propertyPath: string[]; + target: string; + targetInfo?: string[]; +} +// ---- 操作消息的参数定义 --- end + +// ---- 场景插件返回的 info 信息 ---- start +export interface ScenePluginNodeInfo { + uuid: string; + components: ScenePluginComponentInfo[]; +} + +// 场景插件传回的场景信息 +export interface ScenePluginInfo { + // 选中节点列表 + nodes: ScenePluginNodeInfo[]; + + // gizmo 的一些信息 + gizmo: { + is2D: boolean; + }; + // 当前编辑模式数组 + modes: string[]; +} + +// 场景插件传回的组件信息 +export interface ScenePluginComponentInfo { + uuid: string; + enabled: boolean; + type: string; +} + +export interface QueryClassesOptions { + extends?: string | string[]; + excludeSelf?: boolean; +} + +// ---- 场景插件返回的 info 信息 ---- end + +// ---- Contributions ---- start + +export interface ContributionDropItem { + type: string; + message: string; +} + +// ---- Contributions ---- end + +export interface UnitTestInfo { + name: string; +} + +export * from './animation/public'; \ No newline at end of file diff --git a/extensions/uistate-inspector/@types/packages/scene/@types/scene-facade-interface.d.ts b/extensions/uistate-inspector/@types/packages/scene/@types/scene-facade-interface.d.ts new file mode 100644 index 0000000..83588d7 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/scene/@types/scene-facade-interface.d.ts @@ -0,0 +1,825 @@ +import { + SetPropertyOptions, + MoveArrayOptions, + RemoveArrayOptions, + CutNodeOptions, + PasteNodeOptions, + CreateNodeOptions, + RemoveNodeOptions, + CreateComponentOptions, + RemoveComponentOptions, + ExecuteComponentMethodOptions, + IAnimOperation, + ExecuteSceneScriptMethodOptions, + QueryClassesOptions, + IAniResultBase, +} from './public'; + +import { Node, Vec3, Quat } from 'cc'; +import type ParticleManager from '../source/script/3d/manager/particle'; +import { ISceneEvents } from '../source/script/3d/manager/scene-events-interface'; +import { AssetInfo, IAssetMeta } from './private'; +import { IAssetInfo } from '../../builder/@types/protect'; + +interface ISceneFacade extends ISceneEvents { + init(): void; + + ////////// + // node // + ////////// + + /** + * 打开某个场景 + * @param uuid 场景uuid + */ + openScene(uuid: string): Promise<boolean>; + + /** + * 保存当前场景 + */ + saveScene(asNew: boolean): Promise<boolean>; + + closeScene(): Promise<boolean>; + + /** + * 软刷新场景 + */ + softReloadScene(json: any): Promise<boolean>; + + reloadScene(): Promise<boolean>; + + /** + * 查询当前场景的节点树信息 + * @param uuid 节点的唯一标识符 + */ + queryNodeTree(uuid: string): Promise<any>; + + /** + * 查询使用了资源 UUID 的节点 + * @param uuid 资源 asset uuid + */ + queryNodesByAssetUuid(uuid: string): Promise<any>; + + /** + * 查询当前场景的序列化数据 + */ + querySceneSerializedData(): Promise<string>; + + /** + * 查询当前场景是否被修改 + */ + querySceneDirty(): Promise<any>; + + /** + * 查询引擎内所有的类 + */ + queryClasses(options?: QueryClassesOptions): Promise<any>; + + /** + * 查询引擎内所有的组件列表 + */ + queryComponents(): Promise<any>; + + /** + * 查询引擎组件列表是否含有指定类名的脚本 + * @param name 查询脚本的名字 + */ + queryComponentHasScript(name: string): Promise<boolean>; + + /** + * 查询引擎内 Layer 的内置项 + */ + queryLayerBuiltin(): Promise<any>; + + /** + * 查询引擎内 SortingLayer 的内置项 + */ + querySortingLayerBuiltin(): Promise<any>; + + /** + * 查询当前场景的编辑模式 + */ + queryMode(): string; + + /** + * 查询当前场景资源的 uuid + */ + queryCurrentSceneUuid(): string; + + ////////// + // node // + ////////// + + /** + * 查询一个节点的 dump 数据 + * @param uuid 节点的唯一标识符 + */ + queryNodeDump(uuid: string): Promise<any>; + + /** + * 查询一个节点内挂载的所有组件以及对应的函数 + * @param uuid 节点的唯一标识符 + */ + queryComponentFunctionOfNode(uuid: string): Promise<any>; + + /** + * 设置某个元素内的属性 + * @param options + */ + setNodeProperty(options: SetPropertyOptions): Promise<boolean>; + + /** + * 设置某个元素内的某个属性的默认值 + * @param options + */ + resetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + + /** + * 预览设置某个元素内的属性(不会进undo) + * @param options + */ + previewSetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + + /** + * 取消预览设置某个元素内的属性(不会进undo) + * @param options + */ + cancelPreviewSetNodeProperty(options: SetPropertyOptions): Promise<boolean>; + + /** + * 将一个属性从 null 值变为可编辑的值 + * @param options + */ + updateNodePropertyFromNull(options: SetPropertyOptions): Promise<boolean>; + + /** + * 设置某个节点连同它的子集的 layer 属性值 + * @param options + */ + setNodeAndChildrenLayer(options: SetPropertyOptions): void; + + /** + * 移动数组类型 property 内的某个 item 的位置 + * @param options + */ + moveNodeArrayElement(options: MoveArrayOptions): void; + + /** + * 删除数组类型 property 内的某个 item 的位置 + * @param options + */ + removeNodeArrayElement(options: RemoveArrayOptions): Promise<boolean>; + + /** + * 实时获取新节点在一个父节点下的有效名称 + * 规则是 Node 同名时为 Node-001 + * @param name 名称 + * @param parentUuid 父节点 uuid + */ + generateNodeAvailableName(name: string, parentUuid?: string): Promise<string>; + + /** + * 选择场景内所有节点,在不同模式下选不同的节点,比如light-probe-edit-mode开启的情况下,只选light-probe节点 + */ + selectAllNodes(): void; + + /** + * 暂存一个节点的实例化对象 + * 一般用在复制节点的动作,给下一步粘贴(创建)节点准备数据 + * @param uuids 节点uuid + */ + copyNode(uuids: string | string[]): string[]; + + /** + * 复制节点自身 + * ctrl + d + * @param uuids 节点uuid + */ + duplicateNode(uuids: string | string[]): string[]; + + /** + * 粘贴节点 + * @param options 参数 + */ + pasteNode(options: PasteNodeOptions): Promise<string[]>; + + /** + * 挂载节点 + * @param options 参数 + */ + setNodeParent(options: CutNodeOptions): Promise<string[]>; + + /** + * 创建一个新的节点 + * @param options 参数 + */ + createNode(options: CreateNodeOptions): Promise<any>; + + /** + * 重置节点属性 position rotation scale + * @param options 参数 + */ + resetNode(uuid: string): Promise<any>; + + /** + * 删除一个节点 + * @param options 参数 + */ + removeNode(options: RemoveNodeOptions): void; + + /** + * 锁定一个节点不让其在场景中被选中 + * @param uuids 节点uuid + * @param locked true | false + * @param loop true | false 是否循环子孙级节点设置 + */ + changeNodeLock(uuids: string | string[], locked: Boolean, loop: Boolean): void; + + /** + * 从资源数据还原一个 prefab 节点 + * @param uuid 节点uuid + * @param assetUuid 资源uuid + */ + restorePrefab(uuid: string, assetUuid: string): Promise<boolean>; + + /////////////// + // component // + /////////////// + + /** + * 查询一个组件的 dump 数据 + * @param uuid 节点的唯一标识符 + */ + queryComponent(uuid: string): Promise<boolean>; + + /** + * 在某个节点上创建一个组件 + * @param options 参数 + */ + createComponent(options: CreateComponentOptions): void; + + /** + * 重置组件 + * @param uuid 组件 + */ + resetComponent(uuid: string): void; + + /** + * 删除某个节点上的某个组件 + * @param options 参数 + */ + removeComponent(options: RemoveComponentOptions): void; + + /** + * 执行 entity 上指定组件的方法 + * @param options 参数 + */ + executeComponentMethod(options: ExecuteComponentMethodOptions): Promise<boolean>; + + /** + * 执行插件注册的场景脚本方法 + * @param name 插件名字 + * @param method 方法名字 + * @param args 传入的参数 + */ + executeSceneScriptMethod(options: ExecuteSceneScriptMethodOptions): Promise<any>; + + /////////////// + // undo/redo // + /////////////// + + /** + * 保存一次操作记录 + */ + snapshot(command?: any): void; + + /** + * 放弃当前步骤的所有变动记录 + */ + abortSnapshot(): void; + + /** + * 撤销一次操作记录 + */ + undo(): void; + + /** + * 重做一次操作记录 + */ + redo(): void; + + /** + * 记录变动的节点 + * @param node + * @param enable enable = false 是内部 undo redo 产生的变化, 不参与重新记录 + */ + recordNode(node: Node, enable: boolean): void; + + /////////// + // asset // + /////////// + + /** + * 查询所有内置 Effects + */ + queryAllEffects(): Promise<any>; + + /** + * 查询一个 material 的 dump 数据 + * @param uuid material 的唯一标识符 + */ + queryMaterial(uuid: string): Promise<any>; + + /** + * 根据 effecName 构建指定 Effect 的 props 和 defines 属性 + * @param effectName effect 的名字 + */ + queryEffect(effectName: string): Promise<any>; + + /** + * 查询当个 RenderPipeline + * @param uuid 查询的资源的唯一标识符 + */ + queryRenderPipeline(uuid: string): Promise<any>; + + /** + * 材质,实时预览 material 数据 + * @param uuid 材质uuid + * @param material 材质数据 + */ + previewMaterial(uuid: string, material: any, opts?: { emit?: boolean }): void; + + /** + * 应用材质 + * @param uuid 材质uuid + * @param materialDump 材质dump数据 + */ + applyMaterial(uuid: string, materialDump: any): void; + + /** + * 修改 physics-material + * @param dump dump数据 + */ + changePhysicsMaterial(dump: any): Promise<any>; + + /** + * 保存 physics-material + * @param uuid uuid + */ + applyPhysicsMaterial(uuid: string): void; + + /** + * 修改 animation-graph-variant + * @param dump dump数据 + */ + changeAnimationGraphVariant(dump: any): Promise<any>; + + /** + * 保存 animation-graph-variant + * @param uuid uuid + */ + applyAnimationGraphVariant(uuid: string): void; + + /** + * 修改 animation-mask + * @param dump dump数据 + */ + changeAnimationMask(dump: any): Promise<any>; + + /** + * 保存 animation-mask + * @param uuid uuid + */ + applyAnimationMask(uuid: string): void; + + /** + * 保存 render-texture + * @param uuid uuid + * @param dump dump数据 + */ + applyRenderTexture(uuid: string, dump: any): void; + + /** + * 修改了 RenderPipeline 数据 + * @param dump 数据 + */ + changeRenderPipeline(dump: any): Promise<any>; + + /** + * 应用 RenderPipeline 数据 + * @param uuid pipeline uuid + * @param renderPipelineDump RenderPipeline的dump数据 + */ + applyRenderPipeline(uuid: string, renderPipelineDump: any): void; + + /** + * 查询一个 physics-material 的 dump 数据 + * @param uuid 资源的唯一标识符 + */ + queryPhysicsMaterial(uuid: string): any; + + /** + * 查询一个 animation-graph-variant 的 dump 数据 + * @param uuid 资源的唯一标识符 + */ + queryAnimationGraphVariant(uuid: string): any; + + /** + * 查询一个 animation-mask 的 dump 数据 + * @param uuid 资源的唯一标识符 + */ + queryAnimationMask(uuid: string): any; + + /** + * 查询可以被创建为节点的所有资源类型 + */ + queryCreatableAssetTypes(): any; + + assetChange(uuid: string, info: IAssetInfo, meta: IAssetMeta): Promise<void>; + + assetDelete(uuid: string, info?: any): void; + + /** + * 一个资源更新到场景的引用中后发出此消息 + * @param uuid 资源uuid + */ + assetRefresh(uuid: string): void; + + /////////// + // gizmo // + /////////// + + /** + * 刷新gizmo的配置 + */ + gizmoRefreshConfig(): Promise<void>; + + /** + * 查询当前 gizmo 工具的名字 + */ + queryGizmoToolName(): Promise<string>; + + /** + * 查询 gizmo 中心点类型 + */ + queryGizmoPivot(): Promise<string>; + + /** + * 查询 gizmo 坐标类型 + */ + queryGizmoCoordinate(): Promise<string>; + + /** + * 查询 是否处于2D编辑模式 + */ + queryIs2D(): Promise<boolean>; + + /** + * 查询icon gizmo是否为3D + */ + queryIsIconGizmo3D(): boolean; + + /** + * 获取icon gizmo的大小 + */ + queryIconGizmoSize(): number; + + /** + * 立即更新四面体 + */ + updateInnerTetrahedron(): void; + + /** + * 改变Gizmo的操作工具 + * @param name 变换工具名字 + */ + setTransformToolName(name: string): void; + + /** + * 改变基准中心 + * @param name 中心位置名 + */ + setPivot(name: string): void; + + /** + * 设置使用全局或局部坐标系 + * @param type 坐标系类型 + */ + setCoordinate(type: string): void; + + /** + * 是否进入2D编辑模式 + * @param value 是否使用2D + */ + setIs2D(value: boolean): void; + + /** + * 设置icon gizmo是否为3D + * @param is3D 是否为3D icon + */ + setIconGizmo3D(is3D: boolean): void; + + /** + * 设置icon gizmo的大小 + * + * @param size icon大小 + */ + setIconGizmoSize(size: number): void; + + //////////// + // camera // + //////////// + /** + * 聚焦于某个节点 + * @param uuid 节点uuid + */ + focus(uuid: string[] | null, position?: Vec3, rotation?: Quat, viewCenter?: Vec3, immediate?: boolean): void; + + /** + * 将编辑相机数据拷贝到节点上 + * @param uuids 节点数组 + */ + alignNodeToSceneView(uuids: string[]): void; + + /** + * 查询grid是否可见 + */ + queryIsGridVisible(): boolean; + /** + * 设置grid是否可见 + * @param visible 是否可见 + */ + setGridVisible(visible: boolean): void; + + /** + * 将选中的节点与场景相机对齐 + */ + alignWithView(): void; + + /** + * 将场景相机与选中的节点对齐 + */ + alignViewWithNode(): void; + /** + * 设置网格线的颜色 + * @param color 网格线的颜色[255,255,255,255] + */ + setGridLineColor(color: number[]): void; + + getCameraProperty(): any; + setCameraProperty(opts: any): void; + getCameraWheelSpeed(): number; + setCameraWheelSpeed(speed: number): void; + getCameraWanderSpeed(): number; + setCameraWanderSpeed(speed: number): void; + zoomSceneViewUp(): void; + zoomSceneViewDown(): void; + resetSceneViewZoom(): void; + + /////////////// + // animation // + /////////////// + + /** + * 查询当前动画的播放状态 + */ + queryCurrentAnimationState(): any; + + /** + * 查询当前动画的播放状态 + */ + queryCurrentAnimationInfo(): any; + + /** + * 传入一个节点,查询这个节点所在的动画节点的 uuid + * @param uuid 查询的节点的 uuid + */ + queryAnimationRootNode(uuid: string): string; + + /** + * 查询动画根节点的动画数据信息 + * @param uuid 查询的节点的 uuid + */ + queryAnimationRootInfo(uuid: string): any; + + /** + * 查询一个 clip 的 dump 数据 + * @param nodeUuid 节点的唯一标识符 + * @param clipUuid 动画的唯一标识符 + */ + queryAnimationClipDump(nodeUuid: string, clipUuid: string): any; + + /** + * 查询一个节点上,可以编辑的动画属性数组 + * @param uuid 动画的 uuid + */ + queryAnimationProperties(uuid: string): any; + + /** + * 查询一个节点上的所有动画 clips 信息 + * @param nodeUuid 节点的唯一标识符 + */ + queryAnimationClipsInfo(nodeUuid: string): any; + + /** + * 查询动画当前的播放时间信息 + * @param clipUuid 动画资源的唯一标识符 + */ + queryAnimationClipCurrentTime(clipUuid: string): number; + + /** + * 查询动画当前轨道的某一帧的数值 + * @param clipUuid 动画 uuid + * @param nodePath 查询数据所在的节点搜索路径 + * @param propKey 属性名字 + * @param frame 关键帧数 + */ + queryAnimationPropValueAtFrame(clipUuid: string, nodePath: string, propKey: string, frame: number): any; + + /** + * 更改当前动画编辑模式 + * @param uuid uuid + * @param active 激活或关闭 + * @param clipUuid 指定动画 uuid + */ + recordAnimation(uuid: string, active: boolean, clipUuid?: string): Promise<boolean>; + + /** + * 切换动画根节点 + * @param uuid uuid + * @param clipUuid uuid of clip + */ + changeAnimationRootNode(uuid: string, clipUuid: string): Promise<boolean>; + + /** + * 更改当前当前关键帧 + * @param time 时间 + */ + setCurEditTime(time: number): Promise<boolean>; + + /** + * 更改当前正在编辑的动画的播放状态 + * @param operate 操作 + * @param clipUuid uuid of clip + */ + changeClipState(operate: string, clipUuid: string): Promise<boolean>; + + /** + * 更改当前正在编辑的动画 uuid + * @param clipUuid uuid of clip + */ + setEditClip(clipUuid: string): Promise<boolean>; + + /** + * 保存动画数据 + */ + saveClip(): Promise<boolean>; + + /** + * 动画操作 + * + * @param operationList 操作方法数组 + */ + applyAnimationOperation(operationList: IAnimOperation[]): Promise<IAniResultBase>; + + /** + * 查询某个节点可以编辑的动画信息 + * @param uuid 节点 uuid + */ + queryAnimationNodeEditInfo(uuid: string): IAniEditInfo; + + //////////// + // script // + //////////// + queryScriptName(uuid: string): Promise<any>; + queryScriptCid(uuid: string): Promise<any>; + loadScript(uuid: string): Promise<void>; + removeScript(info: any): Promise<void>; + scriptChange(info: any): Promise<void>; + + /////////////// + // selection // + /////////////// + _selectNode(uuid: string): void; + _unselectNode(uuid: string): void; + querySelection(): string[]; + isSelectNode(uuid: string): boolean; + selectNode(uuid: string): void; + unselectNode(uuid: string): void; + clearSelection(): void; + + //////////// + // effect // + //////////// + registerEffects(uuids: string[]): void; + removeEffects(uuids: string[]): void; + updateEffect(uuid: string): void; + + ///////////// + // terrain // + ///////////// + onRemoveTerrain(uuid: string, info: any): void; + + ///////////// + // prefab // + ///////////// + createPrefab(uuid: string, url: string): any; + getPrefabData(uuid: string): any; + linkPrefab(nodeUuid: string, assetUuid: string): any; + unlinkPrefab(nodeUuid: string, removeNested: boolean): any; + applyPrefab(nodeUuid: string): Promise<boolean>; + + ////////// + // UI // + ////////// + distributeSelectionUI(type: string): void; + alignSelectionUI(type: string): void; + + //////////////// + // particle // + //////////////// + /** + * 查询粒子播放的信息 + * @param uuid 粒子组件的 uuid + */ + queryParticlePlayInfo(uuid: string): any; + /** + * 设置粒子播放速度 + * @param uuid 粒子组件的 uuid + * @param speed + */ + setParticlePlaySpeed(uuid: string, speed: number): void; + /** + * 播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + playParticle(); + /** + * 重新开始播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + restartParticle(); + /** + * 暂停选中的粒子 + * @param uuid 粒子组件的 uuid + */ + pauseParticle(); + /** + * 停止播放选中的粒子 + * @param uuid 粒子组件的 uuid + */ + stopParticle(); + + /////////////////// + // lod // + /////////////////// + + /** 应用当前摄像机的屏占比 */ + applyCurrentCameraSize(uuid: Readonly<string>): number | null; + insertLOD(lODGroupUUID: string, ...args: Parameters<import('cc').LODGroup['insertLOD']>): void; + eraseLOD(lODGroupUUID: string, ...args: Parameters<import('cc').LODGroup['eraseLOD']>): void; + ///////////////// + // wireframe // + ///////////////// + // applyWireframeStorage(mode: any, color: any): void; + // setWireframeMode(mode: any): void; + // setWireframeColor(color: any): void; + + /////////////////// + // physics // + /////////////////// + updatePhysicsGroup(): void; + + // others + onEngineUpdate(): void; + + /////////////////// + // physics 2D // + /////////////////// + regeneratePolygon2DPoints(uuid: string): void; + + /////////////////// + // particle 2D // + /////////////////// + exportParticlePlist(uuid: string): Promise<any>; + + /////////////////// + // GI // + /////////////////// + toggleLightProbeEditMode(mode: boolean): boolean; + + queryLightProbeEditMode(): boolean; + + toggleLightProbeBoundingBoxEditMode(mode: boolean): boolean; + + queryLightProbeBoundingBoxEditMode(): boolean; + + duplicateCurrentSelectedProbes(): void; + + removeCurrentSelectedProbes(): void; + + lightProbeInfoChanged(): void; + +} + +export default ISceneFacade; diff --git a/extensions/uistate-inspector/@types/packages/server/@types/message.d.ts b/extensions/uistate-inspector/@types/packages/server/@types/message.d.ts new file mode 100644 index 0000000..6d51561 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/server/@types/message.d.ts @@ -0,0 +1,11 @@ + +export interface message extends EditorMessageMap { + 'query-ip-list': { + params: [], + result: string[], + }, + 'query-port': { + params: [], + result: number, + }, +} diff --git a/extensions/uistate-inspector/@types/packages/server/@types/package.d.ts b/extensions/uistate-inspector/@types/packages/server/@types/package.d.ts new file mode 100644 index 0000000..4a06db2 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/server/@types/package.d.ts @@ -0,0 +1,27 @@ +// 消息定义 +interface MessageInterface { + params: any[], + result: any; +} + +// host +export interface HostInfo { + host: string; + ip: string; + port: number; +} + +// 消息定义 +export interface main { + scene: { + [x: string]: MessageInterface; + 'query-port': { + params: [], + result: number, + }; + 'scan-lan': { + params: [], + result: HostInfo[], + }; + } +} diff --git a/extensions/uistate-inspector/@types/packages/shortcuts/@types/shortcut.d.ts b/extensions/uistate-inspector/@types/packages/shortcuts/@types/shortcut.d.ts new file mode 100644 index 0000000..0203d95 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/shortcuts/@types/shortcut.d.ts @@ -0,0 +1,20 @@ +export interface ShortcutItem { + when: string; + message: string; + shortcut: string; + pkgName: string; + params?: Array<string | number | boolean>; + rawShortcut?: string; + key: string; + missing?: boolean; +} + +export type IShortcutItemMap = Record<string, ShortcutItem>; + +export interface IShortcutEditInfo { + key: string; + shortcut: string; + searches: ShortcutItem[]; + conflict: boolean; + when: string; +} diff --git a/extensions/uistate-inspector/@types/packages/taobao-creative-app/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/taobao-creative-app/@types/index.d.ts new file mode 100644 index 0000000..8471c72 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/taobao-creative-app/@types/index.d.ts @@ -0,0 +1,16 @@ +/// <reference path='../../../@types/index'/> + +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions, IPolyFills, ISettings } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'taobao-creative-app': { + // TODO: Taobao doesn't support landscape + // deviceOrientation: IOrientation; + globalVariable: string; + }; + }; +} diff --git a/extensions/uistate-inspector/@types/packages/taobao-mini-game/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/taobao-mini-game/@types/index.d.ts new file mode 100644 index 0000000..e38e2c0 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/taobao-mini-game/@types/index.d.ts @@ -0,0 +1,95 @@ +/// <reference path='../../../@types/index'/> + +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions, IPolyFills, ISettings } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'taobao-mini-game': { + appid: string; + deviceOrientation: IOrientation; + globalVariable: string; + separateEngine: boolean; + }; + }; +} + +// TODO 需要更新 editor 接口定义 +export type IModules = Record<string, IModuleItem>; + +export interface IFlagBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + native?: string; + + wechatPlugin?: boolean; + + default?: string[]; +} +export interface IBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + required?: boolean; + + native?: string; + + wechatPlugin?: boolean; +} + +export interface IModuleItem extends IBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + /** + * Whether if the feature of options allow multiple selection. + */ + multi?: boolean; + + /** + * If have default it will checked + */ + default?: string[]; + + options?: Record<string, IBaseItem>; + + category?: string; + + flags?: Record<string, IFlagBaseItem>; +} + +export interface IDisplayModuleItem extends IModuleItem { + _value: boolean; + _option?: string; + options?: Record<string, IDisplayModuleItem>; +} + +export interface IDisplayModuleCache { + _value: boolean; + _option?: string; + flags?: Record<string, boolean>; +} diff --git a/extensions/uistate-inspector/@types/packages/vivo-mini-game/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/vivo-mini-game/@types/index.d.ts new file mode 100644 index 0000000..94f1c04 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/vivo-mini-game/@types/index.d.ts @@ -0,0 +1,30 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'vivo-mini-game': IOptions; + } +} + +export interface IOptions { + package: string; + icon: string; + versionName: string; + versionCode: string; + minPlatformVersion: string; + deviceOrientation: IOrientation; + useDebugKey: boolean; + privatePemPath: string; + certificatePemPath: string; + logLevel: string; + separateEngine: boolean; +} + +export interface ICompileOptions { + name: string; + useDebugKey: boolean; +} diff --git a/extensions/uistate-inspector/@types/packages/web-desktop/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/web-desktop/@types/index.d.ts new file mode 100644 index 0000000..4dcac1a --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/web-desktop/@types/index.d.ts @@ -0,0 +1,28 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { appTemplateData, IInternalBuildOptions, IPolyFills, InternalBuildResult, IBuildPaths } from '@editor/library-type/packages/builder/@types/protect'; + +export interface IOptions { + useWebGPU: boolean; + resolution: { + designHeight: number; + designWidth: number; + }; +} +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'web-desktop': IOptions; + }; + appTemplateData: appTemplateData; +} + +export interface IBuildResult extends InternalBuildResult { + paths: IPaths; +} + +export interface IPaths extends IBuildPaths { + styleCSS?: string; // style.css 文件地址 + indexJs?: string; // index.js 文件地址 + indexHTML?: string; // index.html 文件地址 +} diff --git a/extensions/uistate-inspector/@types/packages/web-mobile/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/web-mobile/@types/index.d.ts new file mode 100644 index 0000000..caa4f11 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/web-mobile/@types/index.d.ts @@ -0,0 +1,26 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions, IPolyFills, ISettings, InternalBuildResult, IBuildPaths } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'auto' | 'landscape' | 'portrait'; +export interface IOptions { + orientation: IOrientation; + embedWebDebugger: boolean; +} +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'web-mobile': IOptions; + } +} + +export interface IBuildResult extends InternalBuildResult { + paths: IPaths; +} + +export interface IPaths extends IBuildPaths { + styleCSS?: string; // style.css 文件地址 + indexJs?: string; // index.js 文件地址 + indexHTML?: string; // index.html 文件地址 +} + diff --git a/extensions/uistate-inspector/@types/packages/wechatgame/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/wechatgame/@types/index.d.ts new file mode 100644 index 0000000..61d4f74 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/wechatgame/@types/index.d.ts @@ -0,0 +1,101 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; +export * from '../../../@types/editor'; + +import { IInternalBuildOptions } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'auto' | 'landscape' | 'portrait'; + +export interface IOptions { + appid: string; + buildOpenDataContextTemplate: boolean; + orientation: IOrientation; + separateEngine: boolean; + wasm: 'js' | 'wasm' | boolean; + enabelWebGL2: 'off' | 'sameAsProjectSetting'; + highPerformanceMode: boolean; +} + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + wechatgame: IOptions; + }; +} + +// TODO 需要更新 editor 接口定义 +export type IModules = Record<string, IModuleItem>; + +export interface IFlagBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + native?: string; + + wechatPlugin?: boolean; + + default?: string[]; +} +export interface IBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + required?: boolean; + + native?: string; + + wechatPlugin?: boolean; +} + +export interface IModuleItem extends IBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + /** + * Whether if the feature of options allow multiple selection. + */ + multi?: boolean; + + /** + * If have default it will checked + */ + default?: string[]; + + options?: Record<string, IBaseItem>; + + category?: string; + + flags?: Record<string, IFlagBaseItem>; +} + +export interface IDisplayModuleItem extends IModuleItem { + _value: boolean; + _option?: string; + options?: Record<string, IDisplayModuleItem>; +} + +export interface IDisplayModuleCache { + _value: boolean; + _option?: string; + flags?: Record<string, boolean>; +} diff --git a/extensions/uistate-inspector/@types/packages/wechatprogram/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/wechatprogram/@types/index.d.ts new file mode 100644 index 0000000..c856b43 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/wechatprogram/@types/index.d.ts @@ -0,0 +1,99 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; +export * from '../../../@types/editor'; + +import { IInternalBuildOptions } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'auto' | 'landscape' | 'portrait'; + +export interface IOptions { + appid: string; + orientation: IOrientation; + wasm: 'js' | 'wasm' | boolean; + enabelWebGL2: 'off' | 'sameAsProjectSetting'; + globalVariable: string; +} + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + wechatprogram: IOptions; + }; +} + +// TODO 需要更新 editor 接口定义 +export type IModules = Record<string, IModuleItem>; + +export interface IFlagBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + native?: string; + + wechatPlugin?: boolean; + + default?: string[]; +} +export interface IBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + required?: boolean; + + native?: string; + + wechatPlugin?: boolean; +} + +export interface IModuleItem extends IBaseItem { + /** + * Display text. + */ + label: string; + + /** + * Description. + */ + description?: string; + + /** + * Whether if the feature of options allow multiple selection. + */ + multi?: boolean; + + /** + * If have default it will checked + */ + default?: string[]; + + options?: Record<string, IBaseItem>; + + category?: string; + + flags?: Record<string, IFlagBaseItem>; +} + +export interface IDisplayModuleItem extends IModuleItem { + _value: boolean; + _option?: string; + options?: Record<string, IDisplayModuleItem>; +} + +export interface IDisplayModuleCache { + _value: boolean; + _option?: string; + flags?: Record<string, boolean>; +} diff --git a/extensions/uistate-inspector/@types/packages/windows/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/windows/@types/index.d.ts new file mode 100644 index 0000000..7047dab --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/windows/@types/index.d.ts @@ -0,0 +1,29 @@ +/// <reference path='../../../@types/index'/> +export * from '@editor/library-type/packages/builder/@types/protect'; + +import { IInternalBuildOptions, InternalBuildResult } from '@editor/library-type/packages/builder/@types/protect'; +import { IOptions as INativeOption } from '@editor/library-type/packages/native'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'windows': IOptions; + native: INativeOption; + } +} + +export interface IOptions { + renderBackEnd: { + vulkan: boolean; + gles3: boolean; + gles2: boolean; + }; + targetPlatform: 'win32' | 'x64'; + serverMode: boolean; + targetPlatform: 'x64'; +} + +export interface IBuildResult extends InternalBuildResult { + userFrameWorks: boolean; // 是否使用用户的配置数据 +} diff --git a/extensions/uistate-inspector/@types/packages/xiaomi-quick-game/@types/index.d.ts b/extensions/uistate-inspector/@types/packages/xiaomi-quick-game/@types/index.d.ts new file mode 100644 index 0000000..c533a61 --- /dev/null +++ b/extensions/uistate-inspector/@types/packages/xiaomi-quick-game/@types/index.d.ts @@ -0,0 +1,33 @@ + +export * from '@editor/library-type/packages/builder/@types/protect'; +import { IInternalBuildOptions, ISettings } from '@editor/library-type/packages/builder/@types/protect'; + +export type IOrientation = 'landscape' | 'portrait'; + +export interface ITaskOption extends IInternalBuildOptions { + packages: { + 'xiaomi-quick-game': IOptions; + }; +} + +export interface IOptions { + package: string; + icon: string; + versionName: string; + versionCode: string; + minPlatformVersion: string; + deviceOrientation: IOrientation; + useDebugKey: boolean; + privatePemPath: string; + certificatePemPath: string; + logLevel: string; + + encapsulation: boolean; +} + +export interface ICompileOption { + name: string; + useDebugKey: boolean; + tinyPackageServer: string; +} + diff --git a/extensions/uistate-inspector/README.md b/extensions/uistate-inspector/README.md new file mode 100644 index 0000000..402260a --- /dev/null +++ b/extensions/uistate-inspector/README.md @@ -0,0 +1,16 @@ +# Project Title + +An blank extension. + +## Development Environment + +Node.js + +## Install + +```bash +# Install dependent modules +npm install +# build +npm run build +``` diff --git a/extensions/uistate-inspector/README.zh-CN.md b/extensions/uistate-inspector/README.zh-CN.md new file mode 100644 index 0000000..33b44e1 --- /dev/null +++ b/extensions/uistate-inspector/README.zh-CN.md @@ -0,0 +1,50 @@ +# 项目简介 + +使用方法简单且易于扩展,只需在需要记录状态的节点上添加UIState组件,即可记录所有子节点(包含子孙节点)的状态改变 + +1. 支持嵌套UIState。子节点(子孙节点)也可以加UIState,维护自己的状态 +2. 数据量小。仅记录修改的节点 +3. 逻辑清晰易扩展。可以很方便的扩展记录的组件和属性,支持记录自定义组件 + +## 测试场景 + +嵌套UIState ✔ 父UIState节点不会保存子UIState节点的状态 + +新增节点 ✔ 在切换到其他状态前,所有状态会保持一致,切换过一次状态后,每个状态会保存自己的数据 + +新增节点并修改属性 ✔ 在切换到其他状态前,所有状态会保持一致,切换过一次状态后,每个状态会保存自己的数据 + +删除节点 ✔ 所有状态都会删除该节点 + +新增组件 ✔ 仅对当前状态生效,其他状态会禁用该组件 + +删除组件 ✔ 所有状态都会删除该组件 + +禁用组件 ✔ 仅对当前状态生效 + +## 组件测试 + +Label ✔ + +RichText ✔ + +Sprite ✔ 特定情况下会出现SpriteFrame没有更新,点击 Creator 能够刷新。使用软刷新场景的接口,编辑器会闪一下,体验不是太好,不过可以保证显示正确 + +Widget ✔ + +## 构建发布测试 + +Web桌面 ✔ + +## 开发环境 + +Node.js + +## 安装 + +```bash +# 安装依赖模块 +npm install +# 构建 +npm run build +``` diff --git a/extensions/uistate-inspector/dist/contributions/inspector/uistate-inspector.js b/extensions/uistate-inspector/dist/contributions/inspector/uistate-inspector.js new file mode 100644 index 0000000..76e7a90 --- /dev/null +++ b/extensions/uistate-inspector/dist/contributions/inspector/uistate-inspector.js @@ -0,0 +1,60 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.update = exports.ready = exports.$ = exports.template = void 0; +const prop_1 = require("./utils/prop"); +//@ts-ignore +const package_json_1 = __importDefault(require("../../../package.json")); +exports.template = ` +<div class="component-container"> +</div> +<ui-prop> + <ui-button class="staticButton" tooltip="复制到剪贴板,出现异常时方便检查"> + 查看保存的数据 + </ui-button> +</ui-prop> +`; +exports.$ = { + componentContainer: ".component-container", + staticButton: ".staticButton" +}; +function ready() { + // // @ts-ignore + // this.elements = { + // // @ts-ignore + // stringText: { + // update: (element: any, dump: any) => { + // console.log("stringText update"); + // }, + // create(dump: any) { + // const prop = document.createElement("ui-prop"); + // // @ts-ignore + // prop.dump = dump; + // const button = document.createElement("ui-button"); + // button.innerText = dump.value; + // button.addEventListener("click", () => { + // console.log("clicked stringText property"); + // }); + // prop.appendChild(button); + // return prop; + // } + // } + // }; + this.$.staticButton.addEventListener("click", async () => { + const json = await Editor.Message.request("scene", "execute-scene-script", { + name: package_json_1.default.name, + method: "copyRecords", + args: [this.dump.value.node.value.uuid] + }); + Editor.Panel.open("uistate-inspector", json); + }); +} +exports.ready = ready; +function update(dump) { + // 缓存 dump 数据,请挂在 this 上,否则多开的时候可能出现问题 + this.dump = dump; + (0, prop_1.updatePropByDump)(this, dump); +} +exports.update = update; diff --git a/extensions/uistate-inspector/dist/contributions/inspector/utils/prop.js b/extensions/uistate-inspector/dist/contributions/inspector/utils/prop.js new file mode 100644 index 0000000..ecc6dea --- /dev/null +++ b/extensions/uistate-inspector/dist/contributions/inspector/utils/prop.js @@ -0,0 +1,402 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.appendChildByDisplayOrder = exports.appendToTabGroup = exports.toggleGroups = exports.createTabGroup = exports.getName = exports.isMultipleInvalid = exports.updatePropByDump = exports.setHidden = exports.setReadonly = exports.setDisabled = exports.loopSetAssetDumpDataReadonly = exports.updateCustomPropElements = exports.sortProp = void 0; +//@ts-nocheck +/* + * Returns the ordered PropMap + * @param {*} value of dump + * @returns {key:string dump:object}[] + */ +function sortProp(propMap) { + const orderList = []; + const normalList = []; + Object.keys(propMap).forEach(key => { + const item = propMap[key]; + if (item != null) { + if ("displayOrder" in item) { + orderList.push({ + key, + dump: item + }); + } + else { + normalList.push({ + key, + dump: item + }); + } + } + }); + orderList.sort((a, b) => a.dump.displayOrder - b.dump.displayOrder); + return orderList.concat(normalList); +} +exports.sortProp = sortProp; +/** + * + * This method is used to update the custom node + * @param {HTMLElement} container + * @param {string[]} excludeList + * @param {object} dump + * @param {(element,prop)=>void} update + */ +function updateCustomPropElements(container, excludeList, dump, update) { + const sortedProp = exports.sortProp(dump.value); + container.$ = container.$ || {}; + /** + * @type {Array<HTMLElement>} + */ + const children = []; + sortedProp.forEach(prop => { + if (!excludeList.includes(prop.key)) { + if (!prop.dump.visible) { + return; + } + let node = container.$[prop.key]; + if (!node) { + node = document.createElement("ui-prop"); + node.setAttribute("type", "dump"); + node.dump = prop.dump; + node.key = prop.key; + container.$[prop.key] = node; + } + if (typeof update === "function") { + update(node, prop); + } + children.push(node); + } + }); + const currentChildren = Array.from(container.children); + children.forEach((child, i) => { + if (child === currentChildren[i]) { + return; + } + container.appendChild(child); + }); + // delete extra children + currentChildren.forEach($child => { + if (!children.includes($child)) { + $child.remove(); + } + }); +} +exports.updateCustomPropElements = updateCustomPropElements; +/** + * Tool function: recursively set readonly in resource data + */ +function loopSetAssetDumpDataReadonly(dump) { + if (typeof dump !== "object") { + return; + } + if (dump.readonly === undefined) { + return; + } + dump.readonly = true; + if (dump.isArray) { + for (let i = 0; i < dump.value.length; i++) { + exports.loopSetAssetDumpDataReadonly(dump.value[i]); + } + return; + } + for (const key in dump.value) { + exports.loopSetAssetDumpDataReadonly(dump.value[key]); + } +} +exports.loopSetAssetDumpDataReadonly = loopSetAssetDumpDataReadonly; +/** + * Tool functions: set to unavailable + * @param {object} data dump | function + * @param element + */ +function setDisabled(data, element) { + if (!element) { + return; + } + let disabled = data; + if (typeof data === "function") { + disabled = data(); + } + if (disabled === true) { + element.setAttribute("disabled", "true"); + } + else { + element.removeAttribute("disabled"); + } +} +exports.setDisabled = setDisabled; +/** + * Tool function: Set read-only status + * @param {object} data dump | function + * @param element + */ +function setReadonly(data, element) { + if (!element) { + return; + } + let readonly = data; + if (typeof data === "function") { + readonly = data(); + } + if (readonly === true) { + element.setAttribute("readonly", "true"); + } + else { + element.removeAttribute("readonly"); + } + if (element.render && element.dump) { + element.dump.readonly = readonly; + element.render(); + } +} +exports.setReadonly = setReadonly; +/** + * Tool function: Set the display status + * @param {Function | boolean} data dump | function + * @param {HTMLElement} element + */ +function setHidden(data, element) { + if (!element) { + return; + } + let hidden = data; + if (typeof data === "function") { + hidden = data(); + } + if (hidden === true) { + element.setAttribute("hidden", ""); + } + else { + element.removeAttribute("hidden"); + } +} +exports.setHidden = setHidden; +function updatePropByDump(panel, dump) { + panel.dump = dump; + if (!panel.elements) { + panel.elements = {}; + } + if (!panel.$props) { + panel.$props = {}; + } + if (!panel.$groups) { + panel.$groups = {}; + } + const oldPropKeys = Object.keys(panel.$props); + const newPropKeys = []; + Object.keys(dump.value).forEach((key, index) => { + var _a, _b; + const info = dump.value[key]; + if (!info.visible) { + return; + } + const element = panel.elements[key]; + let $prop = panel.$props[key]; + newPropKeys.push(key); + if (!$prop) { + if (element && element.create) { + // when it need to go custom initialize + $prop = panel.$props[key] = panel.$[key] = element.create.call(panel, info); + } + else { + $prop = panel.$props[key] = panel.$[key] = document.createElement("ui-prop"); + $prop.setAttribute("type", "dump"); + } + const _displayOrder = (_b = (_a = info.group) === null || _a === void 0 ? void 0 : _a.displayOrder) !== null && _b !== void 0 ? _b : info.displayOrder; + $prop.displayOrder = _displayOrder === undefined ? index : Number(_displayOrder); + if (element && element.displayOrder !== undefined) { + $prop.displayOrder = element.displayOrder; + } + if (!element || !element.isAppendToParent || element.isAppendToParent.call(panel)) { + if (info.group && dump.groups) { + const { id = "default", name } = info.group; + if (!panel.$groups[id] && dump.groups[id]) { + if (dump.groups[id].style === "tab") { + panel.$groups[id] = exports.createTabGroup(dump.groups[id], panel); + } + } + if (panel.$groups[id]) { + if (!panel.$groups[id].isConnected) { + exports.appendChildByDisplayOrder(panel.$.componentContainer, panel.$groups[id]); + } + if (dump.groups[id].style === "tab") { + exports.appendToTabGroup(panel.$groups[id], name); + } + } + exports.appendChildByDisplayOrder(panel.$groups[id].tabs[name], $prop); + } + else { + exports.appendChildByDisplayOrder(panel.$.componentContainer, $prop); + } + } + } + else if (!$prop.isConnected || !$prop.parentElement) { + if (!element || !element.isAppendToParent || element.isAppendToParent.call(panel)) { + if (info.group && dump.groups) { + const { id = "default", name } = info.group; + exports.appendChildByDisplayOrder(panel.$groups[id].tabs[name], $prop); + } + else { + exports.appendChildByDisplayOrder(panel.$.componentContainer, $prop); + } + } + } + $prop.render(info); + }); + for (const id of oldPropKeys) { + if (!newPropKeys.includes(id)) { + const $prop = panel.$props[id]; + if ($prop && $prop.parentElement) { + $prop.parentElement.removeChild($prop); + } + } + } + for (const key in panel.elements) { + const element = panel.elements[key]; + if (element && element.ready) { + element.ready.call(panel, panel.$[key], dump.value); + element.ready = undefined; // ready needs to be executed only once + } + } + for (const key in panel.elements) { + const element = panel.elements[key]; + if (element && element.update) { + element.update.call(panel, panel.$[key], dump.value); + } + } + exports.toggleGroups(panel.$groups); +} +exports.updatePropByDump = updatePropByDump; +/** + * Tool function: check whether the value of the attribute is consistent after multi-selection + */ +function isMultipleInvalid(dump) { + let invalid = false; + if (dump.values && dump.values.some(ds => ds !== dump.value)) { + invalid = true; + } + return invalid; +} +exports.isMultipleInvalid = isMultipleInvalid; +/** + * Get the name based on the dump data + */ +/** + * + * @param {string} dump + * @returns + */ +function getName(dump) { + if (!dump) { + return ""; + } + if (dump.displayName) { + return dump.displayName; + } + let name = dump.name || ""; + name = name.trim().replace(/^\S/, str => str.toUpperCase()); + name = name.replace(/_/g, str => " "); + name = name.replace(/ \S/g, str => ` ${str.toUpperCase()}`); + // 驼峰转中间空格 + name = name.replace(/([a-z])([A-Z])/g, "$1 $2"); + return name.trim(); +} +exports.getName = getName; +function createTabGroup(dump, panel) { + const $group = document.createElement("div"); + $group.setAttribute("class", "tab-group"); + $group.dump = dump; + $group.tabs = {}; + $group.displayOrder = dump.displayOrder; + $group.$header = document.createElement("ui-tab"); + $group.$header.setAttribute("class", "tab-header"); + $group.appendChild($group.$header); + $group.$header.addEventListener("change", e => { + active(e.target.value); + }); + function active(index) { + const tabNames = Object.keys($group.tabs); + const tabName = tabNames[index]; + $group.childNodes.forEach(child => { + if (!child.classList.contains("tab-content")) { + return; + } + if (child.getAttribute("name") === tabName) { + child.style.display = "block"; + } + else { + child.style.display = "none"; + } + }); + } + // check style + if (!panel.$this.shadowRoot.querySelector("style#group-style")) { + const style = document.createElement("style"); + style.setAttribute("id", "group-style"); + style.innerText = ` + .tab-group { + margin-top: 10px; + margin-bottom: 10px; + } + .tab-content { + display: none; + border: 1px dashed var(--color-normal-border); + padding: 10px; + margin-top: -9px; + border-top-right-radius: calc(var(--size-normal-radius) * 1px); + border-bottom-left-radius: calc(var(--size-normal-radius) * 1px); + border-bottom-right-radius: calc(var(--size-normal-radius) * 1px); + }`; + panel.$.componentContainer.before(style); + } + setTimeout(() => { + active(0); + }); + return $group; +} +exports.createTabGroup = createTabGroup; +function toggleGroups($groups) { + for (const key in $groups) { + const $props = Array.from($groups[key].querySelectorAll(".tab-content > ui-prop")); + const show = $props.some($prop => getComputedStyle($prop).display !== "none"); + if (show) { + $groups[key].removeAttribute("hidden"); + } + else { + $groups[key].setAttribute("hidden", ""); + } + } +} +exports.toggleGroups = toggleGroups; +function appendToTabGroup($group, tabName) { + if ($group.tabs[tabName]) { + return; + } + const $content = document.createElement("div"); + $group.tabs[tabName] = $content; + $content.setAttribute("class", "tab-content"); + $content.setAttribute("name", tabName); + $group.appendChild($content); + const $label = document.createElement("ui-label"); + $label.value = exports.getName(tabName); + const $button = document.createElement("ui-button"); + $button.setAttribute("name", tabName); + $button.appendChild($label); + $group.$header.appendChild($button); +} +exports.appendToTabGroup = appendToTabGroup; +function appendChildByDisplayOrder(parent, newChild) { + const displayOrder = newChild.displayOrder || 0; + const children = Array.from(parent.children); + const child = children.find(child => { + if (child.dump && child.displayOrder > displayOrder) { + return child; + } + return null; + }); + if (child) { + child.before(newChild); + } + else { + parent.appendChild(newChild); + } +} +exports.appendChildByDisplayOrder = appendChildByDisplayOrder; diff --git a/extensions/uistate-inspector/dist/main.js b/extensions/uistate-inspector/dist/main.js new file mode 100644 index 0000000..6e1dce2 --- /dev/null +++ b/extensions/uistate-inspector/dist/main.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.unload = exports.load = exports.methods = void 0; +let storedDirector; +let uuid; +/** + * @en Registration method for the main process of Extension + * @zh 为扩展的主进程的注册方法 + */ +exports.methods = { + recordUuid(_uuid) { + uuid = _uuid; + }, + recordDirector(director) { + storedDirector = director; + console.log("main receive", director); + }, + saveScene() { + Editor.Message.send("scene", "execute-component-method", { + uuid, + name: "saveCurrentState", + args: [] + }); + console.log("saveScene", arguments); + } +}; +/** + * @en Hooks triggered after extension loading is complete + * @zh 扩展加载完成后触发的钩子 + */ +function load() { } +exports.load = load; +/** + * @en Hooks triggered after extension uninstallation is complete + * @zh 扩展卸载完成后触发的钩子 + */ +function unload() { } +exports.unload = unload; diff --git a/extensions/uistate-inspector/dist/panels/default/index.js b/extensions/uistate-inspector/dist/panels/default/index.js new file mode 100644 index 0000000..3a68f75 --- /dev/null +++ b/extensions/uistate-inspector/dist/panels/default/index.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = require("fs"); +const path_1 = require("path"); +module.exports = Editor.Panel.define({ + listeners: { + show() { + console.log("show", arguments); + }, + hide() { + console.log("hide"); + } + }, + template: (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "../../../static/template/default/index.html"), "utf-8"), + style: "div { color: yellow; }", + $: { + btnCopy: "#btnCopy", + code: "#code" + }, + methods: {}, + ready() { + if (arguments[0]) + this.$.code.innerHTML = JSON.stringify(arguments[0], null, 2); + this.$.btnCopy.addEventListener('confirm', () => { + Editor.Clipboard.write("text", this.$.code.innerHTML); + console.log("已复制到剪贴板!"); + }); + }, + beforeClose() { }, + close() { } +}); diff --git a/extensions/uistate-inspector/dist/panels/list/index.js b/extensions/uistate-inspector/dist/panels/list/index.js new file mode 100644 index 0000000..a43c290 --- /dev/null +++ b/extensions/uistate-inspector/dist/panels/list/index.js @@ -0,0 +1,20 @@ +"use strict"; +module.exports = Editor.Panel.define({ + listeners: { + show() { + console.log("show"); + }, + hide() { + console.log("hide"); + } + }, + template: "<div>Hello</div>", + style: "div { color: yellow; }", + $: { + code: "#code" + }, + methods: {}, + ready() { }, + beforeClose() { }, + close() { } +}); diff --git a/extensions/uistate-inspector/dist/scene.js b/extensions/uistate-inspector/dist/scene.js new file mode 100644 index 0000000..70131a8 --- /dev/null +++ b/extensions/uistate-inspector/dist/scene.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.methods = exports.unload = exports.load = void 0; +// @ts-nocheck +const cc_1 = require("cc"); +function load() { } +exports.load = load; +function unload() { } +exports.unload = unload; +exports.methods = { + copyRecords(uuid) { + const node = this.iterateFindChildByUuid(cc_1.director.getScene(), uuid); + if (!node) + return null; + const uiState = node.getComponent("UIState"); + if (!uiState) + return null; + const cloneState = {}; + Object.values(uiState.records).forEach((stateRecord, index) => { + const records = []; + stateRecord.forEach(record => { + const clone = {}; + Object.assign(clone, record); + if (record.node) { + clone.uuid = record.node.uuid; + clone.name = record.node.name; + delete clone.node; + } + records.push(clone); + }); + cloneState[uiState.states[index]] = records; + }); + return cloneState; + }, + /** 根据uuid深度优先查找节点 */ + iterateFindChildByUuid(node, uuid) { + var _a; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (child.uuid === uuid) + return child; + if ((_a = child.children) === null || _a === void 0 ? void 0 : _a.length) { + const findNode = this.iterateFindChildByUuid(child, uuid); + if (findNode) + return findNode; + } + } + return null; + } +}; diff --git a/extensions/uistate-inspector/i18n/en.js b/extensions/uistate-inspector/i18n/en.js new file mode 100644 index 0000000..606999c --- /dev/null +++ b/extensions/uistate-inspector/i18n/en.js @@ -0,0 +1 @@ +"use strict";module.exports={description:"UI state plug-in, you can easily manage UI state"}; \ No newline at end of file diff --git a/extensions/uistate-inspector/i18n/zh.js b/extensions/uistate-inspector/i18n/zh.js new file mode 100644 index 0000000..b975b24 --- /dev/null +++ b/extensions/uistate-inspector/i18n/zh.js @@ -0,0 +1 @@ +"use strict";module.exports={description:"UI状态插件,可以方便的管理UI状态"}; \ No newline at end of file diff --git a/extensions/uistate-inspector/package-lock.json b/extensions/uistate-inspector/package-lock.json new file mode 100644 index 0000000..0712fa9 --- /dev/null +++ b/extensions/uistate-inspector/package-lock.json @@ -0,0 +1,35 @@ +{ + "name": "uistate-inspector", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "uistate-inspector", + "version": "1.0.0", + "devDependencies": { + "@types/node": "^16.0.1", + "typescript": "^4.3.4" + } + }, + "node_modules/@types/node": { + "version": "16.18.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.34.tgz", + "integrity": "sha512-VmVm7gXwhkUimRfBwVI1CHhwp86jDWR04B5FGebMMyxV90SlCmFujwUHrxTD4oO+SOYU86SoxvhgeRQJY7iXFg==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + } + } +} diff --git a/extensions/uistate-inspector/package.json b/extensions/uistate-inspector/package.json new file mode 100644 index 0000000..90cea6b --- /dev/null +++ b/extensions/uistate-inspector/package.json @@ -0,0 +1,60 @@ +{ + "package_version": 2, + "version": "1.0.0", + "name": "uistate-inspector", + "description": "i18n:uistate-inspector.description", + "main": "./dist/main.js", + "devDependencies": { + "@types/node": "^16.0.1", + "typescript": "^4.3.4" + }, + "author": "cy", + "editor": ">=3.7.3", + "scripts": { + "build": "tsc -b", + "watch": "tsc -w" + }, + "contributions": { + "inspector":{ + "section":{ + "node":{ + "UIState":"./dist/contributions/inspector/uistate-inspector.js" + } + } + }, + "messages": { + "record-uuid": { + "methods": ["recordUuid"] + }, + "record-director": { + "methods": ["recordDirector"] + }, + "asset-db:asset-change":{ + "methods": ["saveScene"] + } + }, + "scene":{ + "script": "./dist/scene.js" + } + }, + "panels": { + "default": { + "title": "UIState 保存的数据", + "type": "dockable", + "main": "./dist/panels/default", + "size":{ + "width":450, + "height":850 + } + }, + "list": { + "title": "world list", + "type": "simple", + "main": "./dist/panels/list", + "icon": "./static/list.png", + + "flags": {}, + "size": {} + } + } +} diff --git a/extensions/uistate-inspector/src/contributions/inspector/uistate-inspector.ts b/extensions/uistate-inspector/src/contributions/inspector/uistate-inspector.ts new file mode 100644 index 0000000..74eb3da --- /dev/null +++ b/extensions/uistate-inspector/src/contributions/inspector/uistate-inspector.ts @@ -0,0 +1,59 @@ +import { methods } from "../../main"; +import { updatePropByDump } from "./utils/prop"; +//@ts-ignore +import packageJSON from "../../../package.json"; + +type Selector<$> = { $: Record<keyof $, any | null> }; + +export const template = ` +<div class="component-container"> +</div> +<ui-prop> + <ui-button class="staticButton" tooltip="复制到剪贴板,出现异常时方便检查"> + 查看保存的数据 + </ui-button> +</ui-prop> +`; +export const $ = { + componentContainer: ".component-container", + staticButton: ".staticButton" +}; + +export function ready(this: Selector<typeof $> & typeof methods) { + // // @ts-ignore + // this.elements = { + // // @ts-ignore + // stringText: { + // update: (element: any, dump: any) => { + // console.log("stringText update"); + // }, + // create(dump: any) { + // const prop = document.createElement("ui-prop"); + // // @ts-ignore + // prop.dump = dump; + // const button = document.createElement("ui-button"); + // button.innerText = dump.value; + // button.addEventListener("click", () => { + // console.log("clicked stringText property"); + // }); + // prop.appendChild(button); + // return prop; + // } + // } + // }; + this.$.staticButton.addEventListener("click", async () => { + const json = await Editor.Message.request("scene", "execute-scene-script", { + name: packageJSON.name, + method: "copyRecords", + args: [(this.dump as any).value.node.value.uuid] + }); + + Editor.Panel.open("uistate-inspector", json); + }); +} + +export function update(this: Selector<typeof $> & typeof methods, dump: any) { + // 缓存 dump 数据,请挂在 this 上,否则多开的时候可能出现问题 + this.dump = dump; + updatePropByDump(this, dump); +} diff --git a/extensions/uistate-inspector/src/contributions/inspector/utils/prop.ts b/extensions/uistate-inspector/src/contributions/inspector/utils/prop.ts new file mode 100644 index 0000000..dd77791 --- /dev/null +++ b/extensions/uistate-inspector/src/contributions/inspector/utils/prop.ts @@ -0,0 +1,445 @@ +//@ts-nocheck +/* + * Returns the ordered PropMap + * @param {*} value of dump + * @returns {key:string dump:object}[] + */ +export function sortProp(propMap) { + const orderList = []; + const normalList = []; + + Object.keys(propMap).forEach(key => { + const item = propMap[key]; + if (item != null) { + if ("displayOrder" in item) { + orderList.push({ + key, + dump: item + }); + } else { + normalList.push({ + key, + dump: item + }); + } + } + }); + + orderList.sort((a, b) => a.dump.displayOrder - b.dump.displayOrder); + + return orderList.concat(normalList); +} + +/** + * + * This method is used to update the custom node + * @param {HTMLElement} container + * @param {string[]} excludeList + * @param {object} dump + * @param {(element,prop)=>void} update + */ +export function updateCustomPropElements(container, excludeList, dump, update) { + const sortedProp = exports.sortProp(dump.value); + container.$ = container.$ || {}; + /** + * @type {Array<HTMLElement>} + */ + const children = []; + sortedProp.forEach(prop => { + if (!excludeList.includes(prop.key)) { + if (!prop.dump.visible) { + return; + } + let node = container.$[prop.key]; + if (!node) { + node = document.createElement("ui-prop"); + node.setAttribute("type", "dump"); + node.dump = prop.dump; + node.key = prop.key; + container.$[prop.key] = node; + } + + if (typeof update === "function") { + update(node, prop); + } + + children.push(node); + } + }); + const currentChildren = Array.from(container.children); + children.forEach((child, i) => { + if (child === currentChildren[i]) { + return; + } + + container.appendChild(child); + }); + + // delete extra children + currentChildren.forEach($child => { + if (!children.includes($child)) { + $child.remove(); + } + }); +} + +/** + * Tool function: recursively set readonly in resource data + */ +export function loopSetAssetDumpDataReadonly(dump) { + if (typeof dump !== "object") { + return; + } + + if (dump.readonly === undefined) { + return; + } + + dump.readonly = true; + + if (dump.isArray) { + for (let i = 0; i < dump.value.length; i++) { + exports.loopSetAssetDumpDataReadonly(dump.value[i]); + } + return; + } + + for (const key in dump.value) { + exports.loopSetAssetDumpDataReadonly(dump.value[key]); + } +} + +/** + * Tool functions: set to unavailable + * @param {object} data dump | function + * @param element + */ +export function setDisabled(data, element) { + if (!element) { + return; + } + + let disabled = data; + + if (typeof data === "function") { + disabled = data(); + } + + if (disabled === true) { + element.setAttribute("disabled", "true"); + } else { + element.removeAttribute("disabled"); + } +} + +/** + * Tool function: Set read-only status + * @param {object} data dump | function + * @param element + */ +export function setReadonly(data, element) { + if (!element) { + return; + } + + let readonly = data; + + if (typeof data === "function") { + readonly = data(); + } + + if (readonly === true) { + element.setAttribute("readonly", "true"); + } else { + element.removeAttribute("readonly"); + } + + if (element.render && element.dump) { + element.dump.readonly = readonly; + element.render(); + } +} + +/** + * Tool function: Set the display status + * @param {Function | boolean} data dump | function + * @param {HTMLElement} element + */ +export function setHidden(data, element) { + if (!element) { + return; + } + + let hidden = data; + + if (typeof data === "function") { + hidden = data(); + } + + if (hidden === true) { + element.setAttribute("hidden", ""); + } else { + element.removeAttribute("hidden"); + } +} + +export function updatePropByDump(panel, dump) { + panel.dump = dump; + + if (!panel.elements) { + panel.elements = {}; + } + + if (!panel.$props) { + panel.$props = {}; + } + + if (!panel.$groups) { + panel.$groups = {}; + } + + const oldPropKeys = Object.keys(panel.$props); + const newPropKeys = []; + + Object.keys(dump.value).forEach((key, index) => { + const info = dump.value[key]; + if (!info.visible) { + return; + } + + const element = panel.elements[key]; + let $prop = panel.$props[key]; + + newPropKeys.push(key); + + if (!$prop) { + if (element && element.create) { + // when it need to go custom initialize + $prop = panel.$props[key] = panel.$[key] = element.create.call(panel, info); + } else { + $prop = panel.$props[key] = panel.$[key] = document.createElement("ui-prop"); + $prop.setAttribute("type", "dump"); + } + + const _displayOrder = info.group?.displayOrder ?? info.displayOrder; + $prop.displayOrder = _displayOrder === undefined ? index : Number(_displayOrder); + + if (element && element.displayOrder !== undefined) { + $prop.displayOrder = element.displayOrder; + } + + if (!element || !element.isAppendToParent || element.isAppendToParent.call(panel)) { + if (info.group && dump.groups) { + const { id = "default", name } = info.group; + + if (!panel.$groups[id] && dump.groups[id]) { + if (dump.groups[id].style === "tab") { + panel.$groups[id] = exports.createTabGroup(dump.groups[id], panel); + } + } + + if (panel.$groups[id]) { + if (!panel.$groups[id].isConnected) { + exports.appendChildByDisplayOrder(panel.$.componentContainer, panel.$groups[id]); + } + + if (dump.groups[id].style === "tab") { + exports.appendToTabGroup(panel.$groups[id], name); + } + } + + exports.appendChildByDisplayOrder(panel.$groups[id].tabs[name], $prop); + } else { + exports.appendChildByDisplayOrder(panel.$.componentContainer, $prop); + } + } + } else if (!$prop.isConnected || !$prop.parentElement) { + if (!element || !element.isAppendToParent || element.isAppendToParent.call(panel)) { + if (info.group && dump.groups) { + const { id = "default", name } = info.group; + exports.appendChildByDisplayOrder(panel.$groups[id].tabs[name], $prop); + } else { + exports.appendChildByDisplayOrder(panel.$.componentContainer, $prop); + } + } + } + $prop.render(info); + }); + + for (const id of oldPropKeys) { + if (!newPropKeys.includes(id)) { + const $prop = panel.$props[id]; + if ($prop && $prop.parentElement) { + $prop.parentElement.removeChild($prop); + } + } + } + + for (const key in panel.elements) { + const element = panel.elements[key]; + if (element && element.ready) { + element.ready.call(panel, panel.$[key], dump.value); + element.ready = undefined; // ready needs to be executed only once + } + } + + for (const key in panel.elements) { + const element = panel.elements[key]; + if (element && element.update) { + element.update.call(panel, panel.$[key], dump.value); + } + } + + exports.toggleGroups(panel.$groups); +} + +/** + * Tool function: check whether the value of the attribute is consistent after multi-selection + */ +export function isMultipleInvalid(dump) { + let invalid = false; + + if (dump.values && dump.values.some(ds => ds !== dump.value)) { + invalid = true; + } + + return invalid; +} +/** + * Get the name based on the dump data + */ +/** + * + * @param {string} dump + * @returns + */ +export function getName(dump) { + if (!dump) { + return ""; + } + + if (dump.displayName) { + return dump.displayName; + } + + let name = dump.name || ""; + + name = name.trim().replace(/^\S/, str => str.toUpperCase()); + name = name.replace(/_/g, str => " "); + name = name.replace(/ \S/g, str => ` ${str.toUpperCase()}`); + // 驼峰转中间空格 + name = name.replace(/([a-z])([A-Z])/g, "$1 $2"); + + return name.trim(); +} + +export function createTabGroup(dump, panel) { + const $group = document.createElement("div"); + $group.setAttribute("class", "tab-group"); + + $group.dump = dump; + $group.tabs = {}; + $group.displayOrder = dump.displayOrder; + + $group.$header = document.createElement("ui-tab"); + $group.$header.setAttribute("class", "tab-header"); + $group.appendChild($group.$header); + + $group.$header.addEventListener("change", e => { + active(e.target.value); + }); + + function active(index) { + const tabNames = Object.keys($group.tabs); + const tabName = tabNames[index]; + $group.childNodes.forEach(child => { + if (!child.classList.contains("tab-content")) { + return; + } + if (child.getAttribute("name") === tabName) { + child.style.display = "block"; + } else { + child.style.display = "none"; + } + }); + } + + // check style + if (!panel.$this.shadowRoot.querySelector("style#group-style")) { + const style = document.createElement("style"); + style.setAttribute("id", "group-style"); + style.innerText = ` + .tab-group { + margin-top: 10px; + margin-bottom: 10px; + } + .tab-content { + display: none; + border: 1px dashed var(--color-normal-border); + padding: 10px; + margin-top: -9px; + border-top-right-radius: calc(var(--size-normal-radius) * 1px); + border-bottom-left-radius: calc(var(--size-normal-radius) * 1px); + border-bottom-right-radius: calc(var(--size-normal-radius) * 1px); + }`; + + panel.$.componentContainer.before(style); + } + + setTimeout(() => { + active(0); + }); + + return $group; +} +export function toggleGroups($groups) { + for (const key in $groups) { + const $props = Array.from($groups[key].querySelectorAll(".tab-content > ui-prop")); + const show = $props.some($prop => getComputedStyle($prop).display !== "none"); + if (show) { + $groups[key].removeAttribute("hidden"); + } else { + $groups[key].setAttribute("hidden", ""); + } + } +} +export function appendToTabGroup($group, tabName) { + if ($group.tabs[tabName]) { + return; + } + + const $content = document.createElement("div"); + + $group.tabs[tabName] = $content; + + $content.setAttribute("class", "tab-content"); + $content.setAttribute("name", tabName); + $group.appendChild($content); + + const $label = document.createElement("ui-label"); + $label.value = exports.getName(tabName); + + const $button = document.createElement("ui-button"); + $button.setAttribute("name", tabName); + $button.appendChild($label); + $group.$header.appendChild($button); +} + +export function appendChildByDisplayOrder(parent, newChild) { + const displayOrder = newChild.displayOrder || 0; + const children = Array.from(parent.children); + + const child = children.find(child => { + if (child.dump && child.displayOrder > displayOrder) { + return child; + } + + return null; + }); + + if (child) { + child.before(newChild); + } else { + parent.appendChild(newChild); + } +} diff --git a/extensions/uistate-inspector/src/main.ts b/extensions/uistate-inspector/src/main.ts new file mode 100644 index 0000000..b86b120 --- /dev/null +++ b/extensions/uistate-inspector/src/main.ts @@ -0,0 +1,35 @@ +let storedDirector; +let uuid: string; +/** + * @en Registration method for the main process of Extension + * @zh 为扩展的主进程的注册方法 + */ +export const methods: { [key: string]: (...any: any) => any } = { + recordUuid(_uuid: string): void { + uuid = _uuid; + }, + recordDirector(director: any) { + storedDirector = director; + console.log("main receive", director); + }, + saveScene(){ + Editor.Message.send("scene", "execute-component-method", { + uuid, + name: "saveCurrentState", + args: [] + }) + console.log("saveScene", arguments); + } +}; + +/** + * @en Hooks triggered after extension loading is complete + * @zh 扩展加载完成后触发的钩子 + */ +export function load() {} + +/** + * @en Hooks triggered after extension uninstallation is complete + * @zh 扩展卸载完成后触发的钩子 + */ +export function unload() {} diff --git a/extensions/uistate-inspector/src/panels/default/index.ts b/extensions/uistate-inspector/src/panels/default/index.ts new file mode 100644 index 0000000..2cc9a19 --- /dev/null +++ b/extensions/uistate-inspector/src/panels/default/index.ts @@ -0,0 +1,30 @@ +import { readFileSync } from "fs"; +import { join } from "path"; + +module.exports = Editor.Panel.define({ + listeners: { + show() { + console.log("show", arguments); + }, + hide() { + console.log("hide"); + } + }, + template: readFileSync(join(__dirname, "../../../static/template/default/index.html"), "utf-8"), + style: "div { color: yellow; }", + $: { + btnCopy: "#btnCopy", + code: "#code" + }, + methods: { + }, + ready() { + if (arguments[0]) this.$.code!.innerHTML = JSON.stringify(arguments[0], null, 2); + this.$.btnCopy!.addEventListener('confirm', () => { + Editor.Clipboard.write("text", this.$.code!.innerHTML); + console.log("已复制到剪贴板!"); + }); + }, + beforeClose() {}, + close() {} +}); diff --git a/extensions/uistate-inspector/src/panels/list/index.ts b/extensions/uistate-inspector/src/panels/list/index.ts new file mode 100644 index 0000000..ae1c1ff --- /dev/null +++ b/extensions/uistate-inspector/src/panels/list/index.ts @@ -0,0 +1,19 @@ +module.exports = Editor.Panel.define({ + listeners: { + show() { + console.log("show"); + }, + hide() { + console.log("hide"); + } + }, + template: "<div>Hello</div>", + style: "div { color: yellow; }", + $: { + code: "#code" + }, + methods: {}, + ready() {}, + beforeClose() {}, + close() {} +}); diff --git a/extensions/uistate-inspector/src/scene.ts b/extensions/uistate-inspector/src/scene.ts new file mode 100644 index 0000000..2270abd --- /dev/null +++ b/extensions/uistate-inspector/src/scene.ts @@ -0,0 +1,42 @@ +// @ts-nocheck +import { director, Node } from "cc"; + +export function load() {} +export function unload() {} +export const methods = { + copyRecords(uuid: string) { + const node = this.iterateFindChildByUuid(director.getScene(), uuid); + if (!node) return null; + const uiState = node.getComponent("UIState"); + if (!uiState) return null; + const cloneState = {}; + Object.values(uiState.records).forEach((stateRecord, index) => { + const records = []; + stateRecord.forEach(record => { + const clone = {}; + Object.assign(clone, record); + if (record.node) { + clone.uuid = record.node.uuid; + clone.name = record.node.name; + delete clone.node; + } + records.push(clone); + }); + cloneState[uiState.states[index]] = records; + }); + return cloneState; + }, + + /** 根据uuid深度优先查找节点 */ + iterateFindChildByUuid(node: Node, uuid: string): Node { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (child.uuid === uuid) return child; + if (child.children?.length) { + const findNode = this.iterateFindChildByUuid(child, uuid); + if (findNode) return findNode; + } + } + return null; + } +}; diff --git a/extensions/uistate-inspector/static/template/default/index.html b/extensions/uistate-inspector/static/template/default/index.html new file mode 100644 index 0000000..958bad4 --- /dev/null +++ b/extensions/uistate-inspector/static/template/default/index.html @@ -0,0 +1,3 @@ +<ui-button id="btnCopy" @confirm="copy">复制</ui-button> +<ui-code language="json" id="code" style="height:800px"> +</ui-code> \ No newline at end of file diff --git a/extensions/uistate-inspector/tsconfig.json b/extensions/uistate-inspector/tsconfig.json new file mode 100644 index 0000000..f799ee9 --- /dev/null +++ b/extensions/uistate-inspector/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2017", + "module": "CommonJS", + "outDir": "./dist", + "rootDir": "./src", + "strict": true, + "moduleResolution": "node", + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + } +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..5a1d827 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "name": "UIStateDemo", + "uuid": "92db508a-4360-418f-a10b-33ab870b0292", + "creator": { + "version": "3.7.3" + } +} diff --git a/settings/v2/packages/builder.json b/settings/v2/packages/builder.json new file mode 100644 index 0000000..b2b2e5b --- /dev/null +++ b/settings/v2/packages/builder.json @@ -0,0 +1,3 @@ +{ + "__version__": "1.3.5" +} diff --git a/settings/v2/packages/cocos-service.json b/settings/v2/packages/cocos-service.json new file mode 100644 index 0000000..ce5e064 --- /dev/null +++ b/settings/v2/packages/cocos-service.json @@ -0,0 +1,23 @@ +{ + "__version__": "3.0.7", + "game": { + "name": "未知游戏", + "app_id": "UNKNOW", + "c_id": "0" + }, + "appConfigMaps": [ + { + "app_id": "UNKNOW", + "config_id": "e8241a" + } + ], + "configs": [ + { + "app_id": "UNKNOW", + "config_id": "e8241a", + "config_name": "Default", + "config_remarks": "", + "services": [] + } + ] +} diff --git a/settings/v2/packages/device.json b/settings/v2/packages/device.json new file mode 100644 index 0000000..70e599e --- /dev/null +++ b/settings/v2/packages/device.json @@ -0,0 +1,3 @@ +{ + "__version__": "1.0.1" +} diff --git a/settings/v2/packages/engine.json b/settings/v2/packages/engine.json new file mode 100644 index 0000000..d8f9996 --- /dev/null +++ b/settings/v2/packages/engine.json @@ -0,0 +1,150 @@ +{ + "__version__": "1.0.7", + "modules": { + "cache": { + "base": { + "_value": true + }, + "graphcis": { + "_value": true + }, + "gfx-webgl": { + "_value": true + }, + "gfx-webgl2": { + "_value": true + }, + "animation": { + "_value": true + }, + "skeletal-animation": { + "_value": false + }, + "3d": { + "_value": false + }, + "2d": { + "_value": true + }, + "xr": { + "_value": false + }, + "ui": { + "_value": true + }, + "particle": { + "_value": false + }, + "physics": { + "_value": false, + "_option": "physics-ammo" + }, + "physics-ammo": { + "_value": false + }, + "physics-cannon": { + "_value": false + }, + "physics-physx": { + "_value": false + }, + "physics-builtin": { + "_value": false + }, + "physics-2d": { + "_value": true, + "_option": "physics-2d-box2d" + }, + "physics-2d-box2d": { + "_value": false + }, + "physics-2d-builtin": { + "_value": false + }, + "intersection-2d": { + "_value": true + }, + "primitive": { + "_value": false + }, + "profiler": { + "_value": true + }, + "occlusion-query": { + "_value": false + }, + "geometry-renderer": { + "_value": false + }, + "debug-renderer": { + "_value": false + }, + "particle-2d": { + "_value": true + }, + "audio": { + "_value": true + }, + "video": { + "_value": true + }, + "webview": { + "_value": true + }, + "tween": { + "_value": true + }, + "websocket": { + "_value": false + }, + "websocket-server": { + "_value": false + }, + "terrain": { + "_value": false + }, + "light-probe": { + "_value": false + }, + "tiled-map": { + "_value": true + }, + "spine": { + "_value": true + }, + "dragon-bones": { + "_value": true + }, + "marionette": { + "_value": false + }, + "custom-pipeline": { + "_value": false + } + }, + "includeModules": [ + "2d", + "animation", + "audio", + "base", + "dragon-bones", + "gfx-webgl", + "gfx-webgl2", + "intersection-2d", + "particle-2d", + "physics-2d-box2d", + "profiler", + "spine", + "tiled-map", + "tween", + "ui", + "video", + "webview" + ], + "noDeprecatedFeatures": { + "value": false, + "version": "" + }, + "flags": {} + } +} diff --git a/settings/v2/packages/program.json b/settings/v2/packages/program.json new file mode 100644 index 0000000..356db6b --- /dev/null +++ b/settings/v2/packages/program.json @@ -0,0 +1,3 @@ +{ + "__version__": "1.0.3" +} diff --git a/settings/v2/packages/project.json b/settings/v2/packages/project.json new file mode 100644 index 0000000..b5e60af --- /dev/null +++ b/settings/v2/packages/project.json @@ -0,0 +1,9 @@ +{ + "__version__": "1.0.4", + "general": { + "designResolution": { + "height": 960, + "width": 640 + } + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..7dc649a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,9 @@ +{ + /* Base configuration. Do not edit this field. */ + "extends": "./temp/tsconfig.cocos.json", + + /* Add your custom configuration here. */ + "compilerOptions": { + "strict": false + } +}