@ray-js/robot-map-sdk 0.0.3-beta-24 → 0.0.3-beta-25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rjs/_virtual/_commonjsHelpers.js +1 -0
- package/dist/rjs/_virtual/deinterlace.js +1 -0
- package/dist/rjs/_virtual/gif.js +1 -0
- package/dist/rjs/_virtual/index.js +1 -0
- package/dist/rjs/_virtual/index10.js +1 -0
- package/dist/rjs/_virtual/index2.js +1 -0
- package/dist/rjs/_virtual/index3.js +1 -0
- package/dist/rjs/_virtual/index4.js +1 -0
- package/dist/rjs/_virtual/index5.js +1 -0
- package/dist/rjs/_virtual/index6.js +1 -0
- package/dist/rjs/_virtual/index7.js +1 -0
- package/dist/rjs/_virtual/index8.js +1 -0
- package/dist/rjs/_virtual/index9.js +1 -0
- package/dist/rjs/_virtual/lzw.js +1 -0
- package/dist/rjs/_virtual/uint8.js +1 -0
- package/dist/rjs/index.js +1 -0
- package/dist/rjs/node_modules/@pixi/colord/index.js +1 -0
- package/dist/rjs/node_modules/@pixi/colord/plugins/names.js +1 -0
- package/dist/rjs/node_modules/@ray-js/robot-protocol/dist/index.js +1 -0
- package/dist/rjs/node_modules/base64-js/index.js +1 -0
- package/dist/rjs/node_modules/buffer/index.js +1 -0
- package/dist/rjs/node_modules/earcut/src/earcut.js +1 -0
- package/dist/rjs/node_modules/eventemitter3/index.js +1 -0
- package/dist/rjs/node_modules/eventemitter3/index2.js +1 -0
- package/dist/rjs/node_modules/gifuct-js/lib/deinterlace.js +1 -0
- package/dist/rjs/node_modules/gifuct-js/lib/index.js +1 -0
- package/dist/rjs/node_modules/gifuct-js/lib/lzw.js +1 -0
- package/dist/rjs/node_modules/ieee754/index.js +1 -0
- package/dist/rjs/node_modules/ismobilejs/esm/isMobile.js +1 -0
- package/dist/rjs/node_modules/js-binary-schema-parser/lib/index.js +1 -0
- package/dist/rjs/node_modules/js-binary-schema-parser/lib/parsers/uint8.js +1 -0
- package/dist/rjs/node_modules/js-binary-schema-parser/lib/schemas/gif.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_DataView.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_Hash.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_ListCache.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_Map.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_MapCache.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_Promise.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_Set.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_SetCache.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_Stack.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_Symbol.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_Uint8Array.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_WeakMap.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_apply.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_arrayFilter.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_arrayLikeKeys.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_arrayPush.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_arraySome.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_assignMergeValue.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_assignValue.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_assocIndexOf.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseAssignValue.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseCreate.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseFor.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseGetAllKeys.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseGetTag.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseIsArguments.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseIsEqual.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseIsEqualDeep.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseIsNative.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseIsTypedArray.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseKeys.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseKeysIn.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseMerge.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseMergeDeep.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseRest.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseSetToString.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseSlice.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseTimes.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseTrim.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_baseUnary.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_cacheHas.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_cloneArrayBuffer.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_cloneBuffer.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_cloneTypedArray.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_copyArray.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_copyObject.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_coreJsData.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_createAssigner.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_createBaseFor.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_defineProperty.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_equalArrays.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_equalByTag.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_equalObjects.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_freeGlobal.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_getAllKeys.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_getMapData.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_getNative.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_getPrototype.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_getRawTag.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_getSymbols.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_getTag.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_getValue.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_hashClear.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_hashDelete.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_hashGet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_hashHas.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_hashSet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_initCloneObject.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_isIndex.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_isIterateeCall.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_isKeyable.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_isMasked.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_isPrototype.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_listCacheClear.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_listCacheDelete.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_listCacheGet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_listCacheHas.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_listCacheSet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_mapCacheClear.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_mapCacheDelete.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_mapCacheGet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_mapCacheHas.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_mapCacheSet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_mapToArray.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_nativeCreate.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_nativeKeys.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_nativeKeysIn.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_nodeUtil.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_objectToString.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_overArg.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_overRest.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_root.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_safeGet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_setCacheAdd.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_setCacheHas.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_setToArray.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_setToString.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_shortOut.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_stackClear.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_stackDelete.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_stackGet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_stackHas.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_stackSet.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_toSource.js +1 -0
- package/dist/rjs/node_modules/lodash-es/_trimmedEndIndex.js +1 -0
- package/dist/rjs/node_modules/lodash-es/chunk.js +1 -0
- package/dist/rjs/node_modules/lodash-es/constant.js +1 -0
- package/dist/rjs/node_modules/lodash-es/debounce.js +1 -0
- package/dist/rjs/node_modules/lodash-es/eq.js +1 -0
- package/dist/rjs/node_modules/lodash-es/identity.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isArguments.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isArray.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isArrayLike.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isArrayLikeObject.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isBuffer.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isEqual.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isFunction.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isLength.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isObject.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isObjectLike.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isPlainObject.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isSymbol.js +1 -0
- package/dist/rjs/node_modules/lodash-es/isTypedArray.js +1 -0
- package/dist/rjs/node_modules/lodash-es/keys.js +1 -0
- package/dist/rjs/node_modules/lodash-es/keysIn.js +1 -0
- package/dist/rjs/node_modules/lodash-es/mergeWith.js +1 -0
- package/dist/rjs/node_modules/lodash-es/now.js +1 -0
- package/dist/rjs/node_modules/lodash-es/stubArray.js +1 -0
- package/dist/rjs/node_modules/lodash-es/stubFalse.js +1 -0
- package/dist/rjs/node_modules/lodash-es/throttle.js +1 -0
- package/dist/rjs/node_modules/lodash-es/toFinite.js +1 -0
- package/dist/rjs/node_modules/lodash-es/toInteger.js +1 -0
- package/dist/rjs/node_modules/lodash-es/toNumber.js +1 -0
- package/dist/rjs/node_modules/lodash-es/toPlainObject.js +1 -0
- package/dist/rjs/node_modules/mitt/dist/mitt.js +1 -0
- package/dist/rjs/node_modules/nanoid/non-secure/index.js +1 -0
- package/dist/rjs/node_modules/parse-svg-path/index.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/_virtual/checkImageBitmap.worker.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/_virtual/loadImageBitmap.worker.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/accessibility/AccessibilitySystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/accessibility/accessibilityTarget.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/accessibility/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/app/Application.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/app/ResizePlugin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/app/TickerPlugin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/app/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/Assets.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/BackgroundLoader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/cache/Cache.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/cache/parsers/cacheTextureArray.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/detections/parsers/detectAvif.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/detections/parsers/detectDefaults.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/detections/parsers/detectMp4.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/detections/parsers/detectOgv.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/detections/parsers/detectWebm.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/detections/parsers/detectWebp.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/detections/utils/testImageFormat.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/detections/utils/testVideoFormat.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/Loader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/parsers/LoaderParser.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/parsers/loadJson.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/parsers/loadTxt.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/parsers/loadWebFont.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/parsers/textures/loadSVG.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/parsers/textures/loadTextures.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/parsers/textures/loadVideoTextures.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/parsers/textures/utils/createTexture.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/loader/workers/WorkerManager.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/resolver/Resolver.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/resolver/parsers/resolveJsonUrl.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/resolver/parsers/resolveTextureUrl.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/utils/checkDataUrl.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/utils/checkExtension.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/utils/convertToList.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/utils/copySearchParams.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/utils/createStringVariations.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/assets/utils/isSingleItem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/color/Color.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/culling/cullingMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/dom/CanvasObserver.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/dom/DOMContainer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/dom/DOMPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/dom/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/environment/adapter.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/environment/autoDetectEnvironment.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/environment-browser/BrowserAdapter.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/environment-browser/browserAll.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/environment-browser/browserExt.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/environment-webworker/webworkerAll.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/environment-webworker/webworkerExt.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/EventBoundary.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/EventSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/EventTicker.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/FederatedEvent.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/FederatedEventTarget.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/FederatedMouseEvent.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/FederatedPointerEvent.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/FederatedWheelEvent.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/events/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/extensions/Extensions.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/Filter.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/FilterEffect.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/FilterPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/FilterSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/defaults/defaultFilter.vert.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/defaults/passthrough/PassthroughFilter.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/defaults/passthrough/passthrough.frag.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/defaults/passthrough/passthrough.wgsl.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/mask/MaskFilter.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/mask/mask.frag.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/mask/mask.vert.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/filters/mask/mask.wgsl.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/gif/GifAsset.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/gif/GifSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/gif/GifSprite.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/gif/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/index.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/matrix/Matrix.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/matrix/groupD8.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/misc/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/misc/pow2.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/misc/squaredDistanceToLineSegment.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/point/ObservablePoint.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/point/Point.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/point/pointInTriangle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/shapes/Circle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/shapes/Ellipse.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/shapes/Polygon.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/shapes/Rectangle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/maths/shapes/RoundedRectangle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/gl/GlBatchAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/gl/utils/checkMaxIfStatementsInShader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/gl/utils/maxRecommendedTextures.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/gpu/GpuBatchAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/gpu/getTextureBatchBindGroup.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/shared/BatchGeometry.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/shared/BatchTextureArray.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/shared/Batcher.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/shared/BatcherPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/shared/DefaultBatcher.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/batcher/shared/DefaultShader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/compileHighShaderToProgram.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/compiler/compileHighShader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/addBits.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileHooks.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileInputs.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileOutputs.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/injectBits.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/defaultProgramTemplate.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/colorBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/generateTextureBatchBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/globalUniformsBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/localUniformBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/roundPixelsBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/textureBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/MaskEffectManager.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/alpha/AlphaMask.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/alpha/AlphaMaskPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/color/ColorMask.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/color/ColorMaskPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/stencil/StencilMask.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/stencil/StencilMaskPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/utils/addMaskBounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/mask/utils/addMaskLocalBounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/autoDetectRenderer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/GlBackBufferSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/GlColorMaskSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/GlEncoderSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/GlLimitsSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/GlRenderTarget.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/GlStencilSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/GlUboSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/WebGLRenderer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/GlBuffer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/GlBufferSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/context/GlContextSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/geometry/GlGeometrySystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/geometry/utils/getGlTypeFromFormat.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/renderTarget/GlRenderTargetAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/renderTarget/GlRenderTargetSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GenerateShaderSyncCode.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlProgram.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlProgramData.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlShaderSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlUniformGroupSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/getBatchSamplersUniformGroup.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/compileShader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/defaultValue.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/ensureAttributes.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/extractAttributesFromGlProgram.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/generateProgram.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/getMaxFragmentPrecision.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/getTestContext.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/getUboData.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/getUniformData.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/logProgramError.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/mapType.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/addProgramDefines.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/ensurePrecision.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/insertVersion.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/setProgramName.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/stripVersion.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/createUboElementsSTD40.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/createUboSyncSTD40.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/generateArraySyncSTD40.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/generateUniformsSync.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/generateUniformsSyncTypes.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/state/GlStateSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/state/mapWebGLBlendModesToPixi.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/GlTexture.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/GlTextureSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadBufferImageResource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadCompressedTextureResource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadImageResource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadVideoResource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/applyStyleParams.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlFormat.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlInternalFormat.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlType.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/pixiToGlMaps.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/BindGroupSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuColorMaskSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuDeviceSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuEncoderSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuLimitsSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuStencilSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuUboSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/GpuUniformBatchPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/WebGPURenderer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/buffer/GpuBufferSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/buffer/UboBatch.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/pipeline/PipelineSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/renderTarget/GpuRenderTarget.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/renderTarget/GpuRenderTargetAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/renderTarget/GpuRenderTargetSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/renderTarget/calculateProjection.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/BindGroup.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/GpuProgram.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/GpuShaderSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/createUboElementsWGSL.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/createUboSyncFunctionWGSL.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/extractAttributesFromGpuProgram.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/extractStructAndGroups.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/generateArraySyncWGSL.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/generateGpuLayoutGroups.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/generateLayoutHash.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/removeStructAndGroupDuplicates.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuBlendModesToPixi.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuStateSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuStencilModesToPixi.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/GpuTextureSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadBufferImageResource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadCompressedTextureResource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadImageSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/uploaders/gpuUploadVideoSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/gpu/texture/utils/GpuMipmapGenerator.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/SchedulerSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/background/BackgroundSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/blendModes/BlendModePipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/buffer/BufferResource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/buffer/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/buffer/utils/fastCopy.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/extract/ExtractSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/extract/GenerateTextureSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/geometry/Geometry.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/geometry/utils/buildUvs.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/geometry/utils/ensureIsBuffer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/geometry/utils/getAttributeInfoFromFormat.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/geometry/utils/getGeometryBounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/geometry/utils/transformVertices.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/instructions/InstructionSet.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/GlobalUniformSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTarget.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/isRenderingToScreen.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/UboSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/types.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/createUboSyncFunction.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uboSyncFunctions.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/uniformParsers.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/startup/HelloSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/state/State.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/state/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/state/getAdjustedBlendModeBlend.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/system/AbstractRenderer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/system/SharedSystems.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/system/SystemRunner.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/CanvasPool.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/RenderTexture.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/RenderableGCSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/Texture.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/TextureGCSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/TextureMatrix.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/TexturePool.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/TextureStyle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/sources/BufferImageSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/sources/CanvasSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/sources/ImageSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/sources/TextureSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/sources/VideoSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/utils/getCanvasTexture.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/texture/utils/textureFrom.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/utils/createIdFromString.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/shared/view/ViewSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/rendering/renderers/types.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/Container.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/CustomRenderPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/RenderGroup.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/RenderGroupPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/RenderGroupSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/bounds/Bounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/bounds/getGlobalBounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/bounds/getLocalBounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/bounds/getRenderableBounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/bounds/utils/matrixAndBoundsPool.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/cacheAsTextureMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/childrenHelperMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/collectRenderablesMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/effectsMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/findMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/getFastGlobalBoundsMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/getGlobalMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/measureMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/onRenderMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/sortMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/container-mixins/toLocalGlobalMixin.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/assignWithIgnore.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/checkChildrenDidChange.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/clearList.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/definedProps.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/executeInstructions.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/multiplyColors.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/multiplyHexColors.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/updateRenderGroupTransforms.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/container/utils/validateRenderables.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/gl/GlGraphicsAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/gpu/GpuGraphicsAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/gpu/colorToUniform.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/BatchableGraphics.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/GraphicsContext.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/GraphicsContextSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/GraphicsPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildAdaptiveBezier.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildAdaptiveQuadratic.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildArc.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildArcTo.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildArcToSvg.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildCircle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildLine.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildPixelLine.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildPolygon.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildRectangle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/buildCommands/buildTriangle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/fill/FillGradient.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/fill/FillPattern.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/path/GraphicsPath.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/path/ShapePath.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/path/roundShape.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/svg/SVGParser.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/svg/parseSVGDefinitions.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/svg/parseSVGFloatAttribute.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/svg/parseSVGPath.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/svg/parseSVGStyle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/svg/utils/extractSvgUrlId.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/svg/utils/fillOperations.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/svg/utils/pathOperations.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/utils/buildContextBatches.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/utils/convertFillInputToFillStyle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/utils/generateTextureFillMatrix.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/utils/getOrientationOfPoints.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/graphics/shared/utils/triangulateWithHoles.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/mesh/gl/GlMeshAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/mesh/gpu/GpuMeshAdapter.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/mesh/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/mesh/shared/BatchableMesh.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/mesh/shared/Mesh.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/mesh/shared/MeshGeometry.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/mesh/shared/MeshPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/mesh-plane/PlaneGeometry.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/gl/GlParticleContainerAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/gpu/GpuParticleContainerAdaptor.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/GlParticleContainerPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/GpuParticleContainerPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/ParticleBuffer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/ParticleContainerPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/shader/ParticleShader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/shader/particles.frag.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/shader/particles.vert.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/shader/particles.wgsl.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/utils/createIndicesForQuads.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/particle-container/shared/utils/generateParticleUpdateFunction.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite/BatchableSprite.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite/Sprite.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite/SpritePipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-animated/AnimatedSprite.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-nine-slice/NineSliceGeometry.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-nine-slice/NineSliceSpritePipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-nine-slice/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/TilingSprite.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/TilingSpritePipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/shader/TilingSpriteShader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/shader/tilingBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/utils/QuadGeometry.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/utils/applyMatrix.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/utils/setPositions.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/sprite-tiling/utils/setUvs.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/AbstractText.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/Text.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/TextStyle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/canvas/BatchableText.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/canvas/CanvasTextGenerator.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/canvas/CanvasTextMetrics.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/canvas/CanvasTextPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/canvas/CanvasTextSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/canvas/utils/fontStringFromTextStyle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/canvas/utils/getCanvasFillStyle.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/sdfShader/SdfShader.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/sdfShader/shader-bits/localUniformMSDFBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/sdfShader/shader-bits/mSDFBit.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/utils/getPo2TextureFromSource.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text/utils/updateTextBounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/AbstractBitmapFont.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/BitmapFont.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/BitmapFontManager.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/BitmapTextPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/DynamicBitmapFont.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/asset/bitmapFontTextParser.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/asset/bitmapFontXMLParser.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/asset/bitmapFontXMLStringParser.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/asset/loadBitmapFont.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/utils/getBitmapTextLayout.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-bitmap/utils/resolveCharacters.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/BatchableHTMLText.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/HTMLTextPipe.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/HTMLTextRenderData.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/HTMLTextSystem.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/utils/extractFontFamilies.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/utils/getFontCss.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/utils/getSVGUrl.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/utils/getTemporaryCanvasFromImage.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/utils/loadFontAsBase64.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/utils/loadFontCSS.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/utils/loadSVGImage.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/text-html/utils/measureHtmlText.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/scene/view/ViewContainer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/spritesheet/Spritesheet.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/spritesheet/init.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/spritesheet/spritesheetAsset.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/ticker/Ticker.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/ticker/TickerListener.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/ticker/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/browser/detectVideoAlphaMode.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/browser/isMobile.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/browser/isSafari.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/browser/isWebGLSupported.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/browser/isWebGPUSupported.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/browser/unsafeEvalSupported.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/canvas/getCanvasBoundingBox.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/const.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/data/ViewableBuffer.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/data/clean.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/data/removeItems.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/data/uid.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/data/updateQuadBounds.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/global/globalHooks.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/logging/deprecation.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/logging/warn.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/misc/NOOP.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/misc/Transform.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/network/getResolutionOfUrl.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/path.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/pool/GlobalResourceRegistry.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/pool/Pool.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/pool/PoolGroup.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/sayHello.js +1 -0
- package/dist/rjs/node_modules/pixi.js/lib/utils/utils.js +1 -0
- package/dist/rjs/node_modules/proxy-compare/dist/index.js +1 -0
- package/dist/rjs/node_modules/tiny-lru/dist/tiny-lru.js +1 -0
- package/dist/rjs/node_modules/tinycolor2/esm/tinycolor.js +1 -0
- package/dist/rjs/node_modules/valtio/esm/vanilla/utils.js +1 -0
- package/dist/rjs/node_modules/valtio/esm/vanilla.js +1 -0
- package/dist/rjs/src/core/application/AppContainer.js +1 -0
- package/dist/rjs/src/core/application/AppService.js +1 -0
- package/dist/rjs/src/core/application/Interaction.js +1 -0
- package/dist/rjs/src/core/application/MapApplication.js +1 -0
- package/dist/rjs/src/core/application/ViewportContainer.js +1 -0
- package/dist/rjs/src/core/assets/carpet.png.js +1 -0
- package/dist/rjs/src/core/assets/chargingStation.png.js +1 -0
- package/dist/rjs/src/core/assets/checkmark.png.js +1 -0
- package/dist/rjs/src/core/assets/cleanMode0.png.js +1 -0
- package/dist/rjs/src/core/assets/cleanMode1.png.js +1 -0
- package/dist/rjs/src/core/assets/cleanMode2.png.js +1 -0
- package/dist/rjs/src/core/assets/cleanMode3.png.js +1 -0
- package/dist/rjs/src/core/assets/cleanTimes1.png.js +1 -0
- package/dist/rjs/src/core/assets/cleanTimes2.png.js +1 -0
- package/dist/rjs/src/core/assets/controlDelete.png.js +1 -0
- package/dist/rjs/src/core/assets/controlMove.png.js +1 -0
- package/dist/rjs/src/core/assets/controlRotate.png.js +1 -0
- package/dist/rjs/src/core/assets/controlScale.png.js +1 -0
- package/dist/rjs/src/core/assets/fan0.png.js +1 -0
- package/dist/rjs/src/core/assets/fan1.png.js +1 -0
- package/dist/rjs/src/core/assets/fan2.png.js +1 -0
- package/dist/rjs/src/core/assets/fan3.png.js +1 -0
- package/dist/rjs/src/core/assets/fan4.png.js +1 -0
- package/dist/rjs/src/core/assets/floorType1.png.js +1 -0
- package/dist/rjs/src/core/assets/floorType2.png.js +1 -0
- package/dist/rjs/src/core/assets/floorType3.png.js +1 -0
- package/dist/rjs/src/core/assets/robot.png.js +1 -0
- package/dist/rjs/src/core/assets/sleep.json.js +1 -0
- package/dist/rjs/src/core/assets/spot.png.js +1 -0
- package/dist/rjs/src/core/assets/water0.png.js +1 -0
- package/dist/rjs/src/core/assets/water1.png.js +1 -0
- package/dist/rjs/src/core/assets/water2.png.js +1 -0
- package/dist/rjs/src/core/assets/water3.png.js +1 -0
- package/dist/rjs/src/core/components/Base/BaseControlButton.js +1 -0
- package/dist/rjs/src/core/components/Base/Border.js +1 -0
- package/dist/rjs/src/core/components/Base/ControlFill.js +1 -0
- package/dist/rjs/src/core/components/Base/DashLine.js +1 -0
- package/dist/rjs/src/core/components/Base/EndPoint.js +1 -0
- package/dist/rjs/src/core/components/Base/EnhancedAnimatedSprite.js +1 -0
- package/dist/rjs/src/core/components/Base/EnhancedGifSprite.js +1 -0
- package/dist/rjs/src/core/components/Base/EnhancedSprite.js +1 -0
- package/dist/rjs/src/core/components/Base/FixedSizeContainer.js +1 -0
- package/dist/rjs/src/core/components/Base/FixedSizeDOMContainer.js +1 -0
- package/dist/rjs/src/core/components/Base/FixedSizeText.js +1 -0
- package/dist/rjs/src/core/components/Base/MoveControlButton.js +1 -0
- package/dist/rjs/src/core/components/Base/RemoveControlButton.js +1 -0
- package/dist/rjs/src/core/components/Base/Ring.js +1 -0
- package/dist/rjs/src/core/components/Base/RotateControlButton.js +1 -0
- package/dist/rjs/src/core/components/Base/ScaleControlButton.js +1 -0
- package/dist/rjs/src/core/components/Base/Zone.js +1 -0
- package/dist/rjs/src/core/components/ChargingStation/ChargingStationIcon.js +1 -0
- package/dist/rjs/src/core/components/ChargingStation/index.js +1 -0
- package/dist/rjs/src/core/components/Controls/CleanZone.js +1 -0
- package/dist/rjs/src/core/components/Controls/Divider.js +1 -0
- package/dist/rjs/src/core/components/Controls/ForbiddenMopZone.js +1 -0
- package/dist/rjs/src/core/components/Controls/ForbiddenSweepZone.js +1 -0
- package/dist/rjs/src/core/components/Controls/Spot.js +1 -0
- package/dist/rjs/src/core/components/Controls/VirtualWall.js +1 -0
- package/dist/rjs/src/core/components/CustomElements/CustomGif.js +1 -0
- package/dist/rjs/src/core/components/CustomElements/CustomHTML.js +1 -0
- package/dist/rjs/src/core/components/CustomElements/CustomImage.js +1 -0
- package/dist/rjs/src/core/components/DetectedObject/index.js +1 -0
- package/dist/rjs/src/core/components/Heatmap/index.js +1 -0
- package/dist/rjs/src/core/components/Map/Carpet.js +1 -0
- package/dist/rjs/src/core/components/Map/Free.js +1 -0
- package/dist/rjs/src/core/components/Map/Obstacle.js +1 -0
- package/dist/rjs/src/core/components/Map/RoomFill.js +1 -0
- package/dist/rjs/src/core/components/Path/index.js +1 -0
- package/dist/rjs/src/core/components/Robot/RobotIcon.js +1 -0
- package/dist/rjs/src/core/components/Robot/SleepAnimation.js +1 -0
- package/dist/rjs/src/core/components/Robot/index.js +1 -0
- package/dist/rjs/src/core/components/RoomFloorType/index.js +1 -0
- package/dist/rjs/src/core/components/RoomInfo/RoomName.js +1 -0
- package/dist/rjs/src/core/components/RoomInfo/RoomProperty.js +1 -0
- package/dist/rjs/src/core/components/RoomInfo/RoomSelectionIndicator.js +1 -0
- package/dist/rjs/src/core/components/RoomInfo/index.js +1 -0
- package/dist/rjs/src/core/constant/config.js +1 -0
- package/dist/rjs/src/core/constant/index.js +1 -0
- package/dist/rjs/src/core/constant/methods.js +1 -0
- package/dist/rjs/src/core/managers/ControlsManager.js +1 -0
- package/dist/rjs/src/core/managers/CustomElementsManager.js +1 -0
- package/dist/rjs/src/core/managers/DetectedObjectManager.js +1 -0
- package/dist/rjs/src/core/managers/HeatmapManager.js +1 -0
- package/dist/rjs/src/core/managers/MapManager.js +1 -0
- package/dist/rjs/src/core/managers/PathManager.js +1 -0
- package/dist/rjs/src/core/managers/RoomManager.js +1 -0
- package/dist/rjs/src/core/mixins/ClickHandler.js +1 -0
- package/dist/rjs/src/core/utils/algorithm.js +1 -0
- package/dist/rjs/src/core/utils/browser.js +1 -0
- package/dist/rjs/src/core/utils/index.js +1 -0
- package/dist/rjs/src/core/utils/logger.js +1 -0
- package/dist-docs/404.html +2 -2
- package/dist-docs/assets/{app.DKtY-QgA.js → app.DFCBjZzz.js} +1 -1
- package/dist-docs/assets/chunks/@localSearchIndexroot.BRrKBG3E.js +1 -0
- package/dist-docs/assets/chunks/{VPLocalSearchBox.Is_bIGtF.js → VPLocalSearchBox.DA9tFqkT.js} +1 -1
- package/dist-docs/assets/chunks/{theme.CoICOtg5.js → theme.DLVtiTEc.js} +2 -2
- package/dist-docs/assets/{guide_getting-started.md.Cip1vgx6.js → guide_getting-started.md.FCeGzF_5.js} +1 -1
- package/dist-docs/guide/advanced-usage.html +3 -3
- package/dist-docs/guide/concepts.html +3 -3
- package/dist-docs/guide/getting-started.html +5 -5
- package/dist-docs/hashmap.json +1 -1
- package/dist-docs/index.html +3 -3
- package/dist-docs/reference/callbacks.html +3 -3
- package/dist-docs/reference/config.html +3 -3
- package/dist-docs/reference/data.html +3 -3
- package/dist-docs/reference/methods.html +3 -3
- package/dist-docs/reference/runtime.html +3 -3
- package/dist-docs/reference/types.html +3 -3
- package/dist-docs/reference/utils.html +3 -3
- package/package.json +2 -2
- package/dist/index.rjs.js +0 -1
- package/dist-docs/assets/chunks/@localSearchIndexroot.Ck3G2TnR.js +0 -1
- /package/dist-docs/assets/{guide_getting-started.md.Cip1vgx6.lean.js → guide_getting-started.md.FCeGzF_5.lean.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{getDistance as t,normalizeVector as i,createVector as e,calculateLineMidpointOffset as n,calculateUprightLineAngle as l,calculateLineSegmentOutline as o,calculateCornerExtension as s,calculateLineSegmentHitArea as a}from"../../utils/algorithm.js";import{ClickHandler as r}from"../../mixins/ClickHandler.js";import{Border as h}from"../Base/Border.js";import{DashLine as d}from"../Base/DashLine.js";import{FixedSizeText as c}from"../Base/FixedSizeText.js";import{MoveControlButton as u}from"../Base/MoveControlButton.js";import{RemoveControlButton as g}from"../Base/RemoveControlButton.js";import{ScaleControlButton as p}from"../Base/ScaleControlButton.js";import{Container as w}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as C}from"../../application/AppService.js";import f from"../../../../node_modules/lodash-es/throttle.js";import{Graphics as m}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";import{Polygon as L}from"../../../../node_modules/pixi.js/lib/maths/shapes/Polygon.js";class v extends w{static BUTTON_INDICES={REMOVE:0,SCALE:2,MOVE:3};wallData;wallConfig;controlsConfig;wallEvents;wallLine;outlineBorder;moveLine;lengthText;controlButtons;removeButton=null;scaleButton=null;moveButton=null;initialWallPoints=[];isDragging=!1;dragStartPosition=null;throttledUpdateOutline;throttledHandleScaleChange;wallLineClickHandler=null;constructor(t){super();const{wallData:i,events:e={}}=t;this.wallEvents=e;const n=C();this.wallConfig=n.controlsConfig.virtualWall,this.controlsConfig=n.controlsConfig,this.wallData={...i,points:this.validateAndCorrectWallLength(i.points)},this.throttledHandleScaleChange=f(this.handleScaleChange.bind(this),30,{leading:!0,trailing:!0}),this.throttledUpdateOutline=f(this.updateOutlineForScale.bind(this),30,{leading:!0,trailing:!0}),this.initializeComponents(),this.updateEditState(),this.registerScaleListener(),this.setupDragEventListeners()}validateAndCorrectWallLength(n){const l=C();if(n.length<2)return n;const[o,s]=n,a=l.metersToPixels(this.wallConfig.minWidth),r=t(o,s);if(r>=a)return n;if(0===r)return[o,{x:o.x+a,y:o.y}];const h=i(e(o,s));return[o,{x:o.x+h.x*a,y:o.y+h.y*a}]}isEditingEnabled(){return C().runtimeSnapshot.editingVirtualWallIds.includes(this.wallData.id)}updateOutlineForScale(){this.isEditingEnabled()&&(this.updateOutlineComponents(),this.updateControlButtonsPosition(),this.updateLengthTextPosition())}initializeComponents(){this.outlineBorder=this.createOutlineBorder(),this.addChild(this.outlineBorder),this.createWallLine(!1),this.addChild(this.wallLine),this.lengthText=this.createLengthText(),this.addChild(this.lengthText),this.moveLine=this.createMoveLine(),this.addChild(this.moveLine),this.controlButtons=new w,this.controlButtons.visible=this.isEditingEnabled(),this.addChild(this.controlButtons),this.createControlButtons()}createWallLine(t=!0){const{points:i}=this.wallData;if(i.length<2)return;const{lineWidth:e,lineColor:n,editing:l,normal:o}=this.wallConfig,s=this.isEditingEnabled()?l:o;s.isDashed?this.wallLine=new d({start:i[0],end:i[1],style:{color:n.toString(),width:e,dashArray:s.dashArray}}):this.wallLine=this.createSolidLine(i[0],i[1],e,n.toString()),t&&this.setupWallLineInteraction()}createLengthText(){const t=this.calculateWallLengthInMeters(),i=this.formatLengthText(t),e=new c({text:i,style:{fontSize:this.controlsConfig.textFontSize,fontFamily:this.controlsConfig.textFontFamily,fontWeight:this.controlsConfig.textFontWeight,fill:this.wallConfig.textColor,align:"center"}});e.anchor.set(.5);const n=this.calculateTextPosition();e.position.set(n.x,n.y);const l=this.calculateTextRotation();return e.rotation=l,e.eventMode="none",e}calculateWallLengthInMeters(){const i=C(),{points:e}=this.wallData;if(e.length<2)return 0;const n=t(e[0],e[1]);return i.pixelsToMeters(n)}formatLengthText(t){return`${t.toFixed(1)}${this.controlsConfig.unitLabel}`}calculateTextPosition(){const t=C(),{points:i}=this.wallData;if(i.length<2)return{x:0,y:0};const[e,l]=i,o=t.getApp().toFixedSize(this.wallConfig.textOffset);return n(e,l,o)}calculateTextRotation(){const{points:t}=this.wallData;if(t.length<2)return 0;const[i,e]=t;return l(i,e)}getOutlineStyle(){return{color:this.wallConfig.outlineStrokeColor,width:this.wallConfig.outlineStrokeWidth,isDashed:this.wallConfig.outlineDashed,dashArray:this.wallConfig.outlineDashArray,fillColor:this.wallConfig.outlineFillColor}}createOutlineBorder(){const t=this.calculateOutlinePoints();return new h({points:t,closePath:!0,style:this.getOutlineStyle()})}createMoveLine(){const t=this.calculateOutlinePoints(),i=this.calculateMoveLinePoints(t);return new h({points:i,closePath:!1,style:this.getOutlineStyle()})}calculateOutlinePoints(t){const i=C(),e=t||this.wallData.points;if(e.length<2)return e;const n=i.getApp().toFixedSize(this.wallConfig.outlineOffset),l=o(e[0],e[1],n);return[l[3],l[2],l[1],l[0]]}calculateMoveLinePoints(t){if(t.length<4)return[];const{MOVE:i}=v.BUTTON_INDICES;return[t[i],this.calculateMoveButtonPosition()]}calculateMoveButtonPosition(){const t=C(),{moveButtonOffset:i}=this.controlsConfig,e=this.calculateOutlinePoints();if(e.length<4)return{x:0,y:0};const{MOVE:n}=v.BUTTON_INDICES,l=e[n],o=e[(n+3)%4],a=e[(n+1)%4],r=t.getApp().toFixedSize(i);return s(l,a,o,r)}createControlButtons(){const t=this.calculateOutlinePoints();if(t.length<4)return;const{REMOVE:i,SCALE:e}=v.BUTTON_INDICES;this.removeButton=new g({iconAlias:"deleteIcon",backgroundColor:this.wallConfig.iconWrapperFillColor,onClick:this.handleRemove}),this.removeButton.position.set(t[i].x,t[i].y),this.scaleButton=new p({iconAlias:"scaleIcon",backgroundColor:this.wallConfig.iconWrapperFillColor,getTargetPoints:()=>this.calculateOutlinePoints(),getButtonIndex:()=>e,onScaleStart:this.handleScaleStart,onScaleMove:this.handleScaleMove,onScaleEnd:this.handleScaleEnd}),this.scaleButton.position.set(t[e].x,t[e].y);const n=this.calculateMoveButtonPosition();this.moveButton=new u({iconAlias:"moveIcon",backgroundColor:this.wallConfig.iconWrapperFillColor,onMoveStart:this.handleMoveStart,onMoveMove:this.handleMove,onMoveEnd:this.handleMoveEnd}),this.moveButton.position.set(n.x,n.y),this.controlButtons.addChild(this.removeButton),this.controlButtons.addChild(this.scaleButton),this.controlButtons.addChild(this.moveButton)}handleRemove=()=>{this.wallEvents.onRemove?.(this.wallData.id)};initializeOperation=()=>{this.initialWallPoints=this.wallData.points.map(t=>({...t}))};finalizeOperation=()=>{this.initialWallPoints=[],this.wallEvents.onUpdate?.(this.getWallData())};handleScaleStart=()=>{const t=C();this.initializeOperation(),t.getApp().requestRender("virtualwall-scale",!0)};handleScaleMove=t=>{0!==this.initialWallPoints.length&&this.applyScaleAndRotation(t)};handleScaleEnd=()=>{const t=C();this.finalizeOperation(),t.getApp().stopRender("virtualwall-scale")};handleMoveStart=()=>{const t=C();this.initializeOperation(),t.getApp().requestRender("virtualwall-move",!0)};handleMove=t=>{if(0===this.initialWallPoints.length)return;const i=this.parent.toLocal(t.global),e=this.getDragStartPosition()||this.moveButton?.getDragStartPosition();if(!e)return;const n=i.x-e.x,l=i.y-e.y;this.applyTranslation(n,l)};handleMoveEnd=()=>{const t=C();this.finalizeOperation(),t.getApp().stopRender("virtualwall-move")};applyScaleAndRotation(n){const l=C();if(this.initialWallPoints.length<2)return;const[o,s]=this.initialWallPoints,a=o,r=this.calculateOutlinePoints(this.initialWallPoints);if(r.length<4)return;const h=r[v.BUTTON_INDICES.SCALE],d=e(s,h),c={x:n.x-d.x,y:n.y-d.y},u=e(a,c),g=t(a,c),p=l.metersToPixels(this.wallConfig.minWidth);let w;if(g<p)if(0===g)w={x:a.x+p,y:a.y};else{const t=i(u);w={x:a.x+t.x*p,y:a.y+t.y*p}}else w=c;this.wallData.points=[a,w],this.updateAllComponents(),this.updateControlButtonsPosition()}applyTranslation(t,i){this.wallData.points=this.initialWallPoints.map(e=>({x:e.x+t,y:e.y+i})),this.updateAllComponents(),this.updateControlButtonsPosition()}updateAllComponents(){this.updateWallLine(),this.updateLengthText(),this.updateOutlineComponents()}updateWallLine(){const{points:t}=this.wallData;t.length<2||(this.wallLine instanceof d?this.wallLine.updatePoints(t[0],t[1]):this.redrawSolidLine(),this.setupWallLineHitArea())}updateLengthText(){if(!this.lengthText)return;const t=this.calculateWallLengthInMeters(),i=this.formatLengthText(t);this.lengthText.updateText(i),this.updateLengthTextPosition()}updateLengthTextPosition(){if(!this.lengthText)return;const t=this.calculateTextPosition();this.lengthText.position.set(t.x,t.y);const i=this.calculateTextRotation();this.lengthText.rotation=i}updateOutlineComponents(){const t=this.calculateOutlinePoints();this.outlineBorder.updatePoints(t);const i=this.calculateMoveLinePoints(t);this.moveLine.updatePoints(i)}updateControlButtonsPosition(){if(!this.removeButton||!this.scaleButton||!this.moveButton)return;const t=this.calculateOutlinePoints();if(t.length<4)return;const{REMOVE:i,SCALE:e}=v.BUTTON_INDICES,n=this.calculateMoveButtonPosition();this.removeButton.position.set(t[i].x,t[i].y),this.scaleButton.position.set(t[e].x,t[e].y),this.moveButton.position.set(n.x,n.y)}updateEditState(){const t=this.isEditingEnabled();this.controlButtons.visible=t,this.outlineBorder.visible=t,this.moveLine.visible=t,this.lengthText&&(this.lengthText.visible=t),t&&(this.updateOutlineComponents(),this.updateControlButtonsPosition(),this.updateLengthTextPosition()),this.updateWallLineStyle(),this.setupWallLineInteraction(),this.zIndex=t?1e3:0}createSolidLine(t,i,e,n){const l=C(),o=new m;o.eventMode="static";const s=l.getApp().toFixedSize(e);return o.moveTo(t.x,t.y),o.lineTo(i.x,i.y),o.stroke({color:n,width:s}),o}updateWallLineStyle(){const t=this.isEditingEnabled(),{editing:i,normal:e,lineWidth:n,lineColor:l}=this.wallConfig,o=t?i:e;this.wallLine instanceof d!==o.isDashed?(this.removeChild(this.wallLine),this.wallLine.destroy(),this.createWallLine(!1),this.addChild(this.wallLine)):this.wallLine instanceof d?this.wallLine.updateStyle({color:l.toString(),width:n,dashArray:o.dashArray}):this.redrawSolidLine()}registerScaleListener(){const{emitter:t}=C();t.on("antiScale",this.throttledUpdateOutline),t.on("antiScale",this.throttledHandleScaleChange)}redrawSolidLine(){const t=C();if(!this.wallLine||this.wallLine instanceof d)return;const{points:i}=this.wallData;if(i.length<2)return;const{lineWidth:e,lineColor:n}=this.wallConfig,l=t.getApp().toFixedSize(e);this.wallLine.clear(),this.wallLine.setStrokeStyle({color:n.toString(),width:l}).moveTo(i[0].x,i[0].y).lineTo(i[1].x,i[1].y).stroke()}handleScaleChange=()=>{this.redrawSolidLine(),this.setupWallLineHitArea()};setupWallLineInteraction(){if(!this.wallLine)return;this.setupWallLineHitArea();const t=this.isEditingEnabled();this.wallLineClickHandler?.destroy(),this.wallLineClickHandler=null,this.wallLine.off("pointerdown",this.handleWallLinePointerDown),t?this.wallLine.on("pointerdown",this.handleWallLinePointerDown):this.wallLineClickHandler=new r(this.wallLine,{onClick:()=>{this.wallEvents?.onClick?.(this.getWallData())},stopPropagation:!1})}setupDragEventListeners(){const{emitter:t}=C();t.on("gestureHijackPointerMove",this.handleDragPointerMove),t.on("gestureHijackPointerUp",this.handleDragPointerUp),t.on("gestureHijackCancel",this.handleDragCancel)}cleanupDragEventListeners(){const{emitter:t}=C();t.off("gestureHijackPointerMove",this.handleDragPointerMove),t.off("gestureHijackPointerUp",this.handleDragPointerUp),t.off("gestureHijackCancel",this.handleDragCancel)}handleWallLinePointerDown=t=>{this.isEditingEnabled()&&(t.stopPropagation(),this.startDragging(t))};startDragging(t){const i=C();this.isDragging=!0;const e=this.parent.toLocal(t.global);this.dragStartPosition={x:e.x,y:e.y},this.initializeOperation(),i.getApp().requestRender("virtualwall-drag",!0),C().emitter.emit("gestureHijackStart",t)}handleDragPointerMove=t=>{this.isDragging&&this.dragStartPosition&&this.handleMove(t)};handleDragPointerUp=()=>{const t=C();this.isDragging&&(this.isDragging=!1,this.dragStartPosition=null,t.getApp().stopRender("virtualwall-drag"),this.finalizeOperation())};handleDragCancel=()=>{const t=C();this.isDragging&&(this.isDragging=!1,this.dragStartPosition=null,t.getApp().stopRender("virtualwall-drag"),this.handleMoveEnd())};getDragStartPosition(){return this.dragStartPosition}setupWallLineHitArea(){const t=C();if(!this.wallLine)return;const{points:i}=this.wallData;if(i.length<2)return;const{hitAreaThickness:e}=this.wallConfig,n=t.getApp().toFixedSize(e),l=a(i[0],i[1],n);if(0===l.length)return;const o=new L(l);this.wallLine.hitArea=o}getWallData(){return{...this.wallData}}updateWallData(t){this.wallData={...t,points:this.validateAndCorrectWallLength(t.points)},this.updateAllComponents(),this.updateControlButtonsPosition()}updateEditingState(){this.updateEditState()}destroy(){C().emitter.off("antiScale",this.throttledUpdateOutline),C().emitter.off("antiScale",this.throttledHandleScaleChange),this.cleanupDragEventListeners(),this.isDragging&&(this.isDragging=!1,this.dragStartPosition=null),this.wallLine&&this.wallLine.off("pointerdown",this.handleWallLinePointerDown),this.wallLineClickHandler?.destroy(),this.wallLineClickHandler=null,this.wallLine?.destroy(),this.lengthText?.destroy(),this.outlineBorder?.destroy(),this.moveLine?.destroy(),this.controlButtons?.destroy(),this.removeButton?.destroy(),this.scaleButton?.destroy(),this.moveButton?.destroy(),this.removeButton=null,this.scaleButton=null,this.moveButton=null,super.destroy()}}export{v as VirtualWall};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ClickHandler as t}from"../../mixins/ClickHandler.js";import{EnhancedGifSprite as e}from"../Base/EnhancedGifSprite.js";import{useAppService as i}from"../../application/AppService.js";class a extends e{elementData;clickHandler=null;constructor(t,e){super({source:t}),this.elementData=e}async initialize(){void 0!==this.elementData.sizeFixed&&this.setSizeFixed(this.elementData.sizeFixed),this.setFixedSize(this.elementData.width,this.elementData.height),this.position.set(this.elementData.x,this.elementData.y),void 0!==this.elementData.rotation&&(this.rotation=this.elementData.rotation),void 0!==this.elementData.opacity&&(this.alpha=this.elementData.opacity),this.visible=!0,this.elementData.interactive?this.setupClickHandler():this.eventMode="none"}setupClickHandler(){this.clickHandler&&this.clickHandler.destroy(),this.clickHandler=new t(this,{onClick:()=>this.handleClick(),stopPropagation:!1})}handleClick(){const t=i();t.events?.onClickCustomElement?.(this.getElementData())}getElementData(){return{...this.elementData}}async updateElementData(t){const e=this.elementData;if(this.elementData=t,e.src!==t.src)throw new Error("GIF source change requires recreation of instance");e.sizeFixed!==t.sizeFixed&&void 0!==t.sizeFixed&&this.setSizeFixed(t.sizeFixed),e.width===t.width&&e.height===t.height||this.setFixedSize(t.width,t.height),this.position.set(t.x,t.y),void 0!==t.rotation&&(this.rotation=t.rotation),void 0!==t.opacity&&(this.alpha=t.opacity),t.interactive?this.clickHandler||this.setupClickHandler():(this.clickHandler&&(this.clickHandler.destroy(),this.clickHandler=null),this.eventMode="none")}isSameData(t){return this.elementData.id===t.id&&this.elementData.type===t.type&&this.elementData.src===t.src&&this.elementData.x===t.x&&this.elementData.y===t.y&&this.elementData.width===t.width&&this.elementData.height===t.height&&this.elementData.rotation===t.rotation&&this.elementData.opacity===t.opacity&&this.elementData.interactive===t.interactive&&this.elementData.sizeFixed===t.sizeFixed}destroy(){this.clickHandler&&(this.clickHandler.destroy(),this.clickHandler=null),super.destroy()}}export{a as CustomGif};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{FixedSizeDOMContainer as e}from"../Base/FixedSizeDOMContainer.js";import{useAppService as t}from"../../application/AppService.js";class i extends e{elementData;domClickHandler=null;resizeObserver=null;debugMarker=null;constructor(e){const t=document.createElement("div");i.setupDefaultStyles(t,e),t.innerHTML=e.htmlContent,super({element:t}),this.elementData=e}async initialize(){this.alpha=0,this.elementData.width&&this.elementData.height?(this.setFixedSize(this.elementData.width,this.elementData.height),this.setCenterPosition(this.elementData.x,this.elementData.y),this.setSizeFixed(this.elementData.sizeFixed??!0),this.waitForElementInsertion()):(this.position.set(this.elementData.x,this.elementData.y),this.setupAutoSize()),void 0!==this.elementData.rotation&&(this.rotation=this.elementData.rotation),this.elementData.interactive?this.setupClickHandler():this.eventMode="none"}setupAutoSize(){this.element&&(this.element.style.width="auto",this.element.style.height="auto",this.waitForElementDimensions())}waitForElementInsertion(){if(!this.element)return;const e=()=>{this.element&&(this.element.isConnected?this.showElement():requestAnimationFrame(e))};requestAnimationFrame(e)}waitForElementDimensions(){this.element&&("undefined"!=typeof ResizeObserver?(this.resizeObserver=new ResizeObserver(e=>{const t=e[0];t&&t.contentRect.width>0&&t.contentRect.height>0&&(this.setFixedSize(t.contentRect.width,t.contentRect.height),this.setCenterPosition(this.elementData.x,this.elementData.y),this.setSizeFixed(this.elementData.sizeFixed??!0),0===this.alpha&&this.showElement(),this.resizeObserver?.disconnect(),this.resizeObserver=null)}),this.resizeObserver.observe(this.element)):this.pollForElementDimensions())}pollForElementDimensions(){if(!this.element)return;const e=()=>{if(!this.element)return;if(!this.element.isConnected)return void requestAnimationFrame(e);const t=this.element.getBoundingClientRect();t.width>0&&t.height>0?(this.setFixedSize(t.width,t.height),this.setCenterPosition(this.elementData.x,this.elementData.y),this.setSizeFixed(this.elementData.sizeFixed??!0),0===this.alpha&&this.showElement()):requestAnimationFrame(e)};requestAnimationFrame(e)}showElement(){this.alpha=this.elementData.opacity??1,this.element.style.pointerEvents=this.elementData.interactive?"auto":"none",this.interactive=this.elementData.interactive??!1,this.elementData.interactive&&this.element&&(this.element.style.setProperty("-webkit-tap-highlight-color","transparent"),this.element.style.setProperty("-webkit-touch-callout","none")),t().getApp().renderOnceNextFrame()}setupClickHandler(){this.element&&(this.domClickHandler=e=>{e.preventDefault(),e.stopPropagation(),this.handleClick()},this.element.addEventListener("click",this.domClickHandler))}handleClick(){const e=t();e.events?.onClickCustomElement?.(this.getElementData())}getElementData(){return{...this.elementData}}async updateElementData(e){const t=this.elementData;this.elementData=e,t.htmlContent!==e.htmlContent&&this.element&&(this.element.innerHTML=e.htmlContent,e.width&&e.height||this.waitForElementDimensions()),t.width===e.width&&t.height===e.height||(e.width&&e.height?(this.setFixedSize(e.width,e.height),this.element&&(this.element.style.width=`${e.width}px`,this.element.style.height=`${e.height}px`)):this.setupAutoSize()),e.width&&e.height?this.setCenterPosition(e.x,e.y):this.position.set(e.x,e.y),t.sizeFixed!==e.sizeFixed&&void 0!==e.sizeFixed&&this.setSizeFixed(e.sizeFixed),this.rotation=e.rotation??0,this.alpha=e.opacity??1,e.interactive?this.domClickHandler||this.setupClickHandler():(this.eventMode="none",this.domClickHandler&&this.element&&(this.element.removeEventListener("click",this.domClickHandler),this.domClickHandler=null))}isSameData(e){return this.elementData.id===e.id&&this.elementData.type===e.type&&this.elementData.htmlContent===e.htmlContent&&this.elementData.x===e.x&&this.elementData.y===e.y&&this.elementData.width===e.width&&this.elementData.height===e.height&&this.elementData.rotation===e.rotation&&this.elementData.opacity===e.opacity&&this.elementData.interactive===e.interactive&&this.elementData.sizeFixed===e.sizeFixed}static setupDefaultStyles(e,t){const i={position:"relative",boxSizing:"border-box",webkitFontSmoothing:"antialiased",textRendering:"optimizeLegibility",background:"transparent",userSelect:"auto",webkitUserSelect:"auto"};t.width&&t.height?(i.width=`${t.width}px`,i.height=`${t.height}px`,i.overflow="hidden"):(i.width=t.width?`${t.width}px`:"auto",i.height=t.height?`${t.height}px`:"auto",i.overflow="visible"),Object.assign(e.style,i),e.style.setProperty("-webkit-tap-highlight-color","transparent"),e.style.setProperty("-webkit-touch-callout","none")}destroy(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.domClickHandler&&this.element&&(this.element.removeEventListener("click",this.domClickHandler),this.domClickHandler=null),this.debugMarker&&(this.debugMarker.destroy(),this.debugMarker=null),super.destroy()}}export{i as CustomHTML};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ClickHandler as t}from"../../mixins/ClickHandler.js";import{EnhancedSprite as e}from"../Base/EnhancedSprite.js";import{useAppService as i}from"../../application/AppService.js";class a extends e{elementData;clickHandler=null;constructor(t){super(),this.elementData=t}async initialize(){await this.loadTextureAndSetSize(this.elementData.src,{width:this.elementData.width,height:this.elementData.height,sizeFixed:this.elementData.sizeFixed}),this.position.set(this.elementData.x,this.elementData.y),void 0!==this.elementData.rotation&&(this.rotation=this.elementData.rotation),void 0!==this.elementData.opacity&&(this.alpha=this.elementData.opacity),this.visible=!0,this.elementData.interactive?this.setupClickHandler():this.eventMode="none"}setupClickHandler(){this.clickHandler&&this.clickHandler.destroy(),this.clickHandler=new t(this,{onClick:()=>this.handleClick(),stopPropagation:!1})}handleClick(){const t=i();t.events?.onClickCustomElement?.(this.getElementData())}getElementData(){return{...this.elementData}}async updateElementData(t){const e=this.elementData;this.elementData=t,e.src!==t.src?await this.loadTextureAndSetSize(t.src,{width:t.width,height:t.height,sizeFixed:t.sizeFixed}):(e.sizeFixed!==t.sizeFixed&&void 0!==t.sizeFixed&&this.setSizeFixed(t.sizeFixed),e.width===t.width&&e.height===t.height||this.setFixedSize(t.width,t.height)),this.position.set(t.x,t.y),void 0!==t.rotation&&(this.rotation=t.rotation),void 0!==t.opacity&&(this.alpha=t.opacity),t.interactive?this.clickHandler||this.setupClickHandler():(this.clickHandler&&(this.clickHandler.destroy(),this.clickHandler=null),this.eventMode="none")}isSameData(t){return this.elementData.id===t.id&&this.elementData.type===t.type&&this.elementData.src===t.src&&this.elementData.x===t.x&&this.elementData.y===t.y&&this.elementData.width===t.width&&this.elementData.height===t.height&&this.elementData.rotation===t.rotation&&this.elementData.opacity===t.opacity&&this.elementData.interactive===t.interactive&&this.elementData.sizeFixed===t.sizeFixed}destroy(){this.clickHandler&&(this.clickHandler.destroy(),this.clickHandler=null),super.destroy()}}export{a as CustomImage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ClickHandler as t}from"../../mixins/ClickHandler.js";import{EnhancedSprite as i}from"../Base/EnhancedSprite.js";import{useAppService as e}from"../../application/AppService.js";class s extends i{objectData;clickHandler=null;constructor(t){super(),this.objectData=t}async initializeSprite(){const t=e().detectedObjectConfig,i=this.objectData.width||t.width,s=this.objectData.height||t.height;await this.loadTextureAndSetSize(this.objectData.src,{width:i,height:s}),this.position.set(this.objectData.x,this.objectData.y),this.visible=!0,t.interactive?this.setupClickHandler():this.eventMode="none"}setupClickHandler(){this.clickHandler&&this.clickHandler.destroy(),this.clickHandler=new t(this,{onClick:()=>this.handleClick(),stopPropagation:!1})}handleClick(){const t=e();t.events?.onClickDetectedObject?.(this.getObjectData())}getObjectData(){return{...this.objectData}}async updateObjectData(t){const i=e(),s=this.objectData;this.objectData=t;const a=i.detectedObjectConfig;if(s.src!==t.src){const i=t.width||a.width,e=t.height||a.height;await this.loadTextureAndSetSize(t.src,{width:i,height:e})}if(s.width!==t.width||s.height!==t.height){const i=t.width||a.width,e=t.height||a.height;this.setFixedSize(i,e)}this.position.set(t.x,t.y),a.interactive?this.clickHandler||this.setupClickHandler():this.clickHandler&&(this.clickHandler.destroy(),this.clickHandler=null)}isSameData(t){return this.objectData.id===t.id&&this.objectData.src===t.src&&this.objectData.x===t.x&&this.objectData.y===t.y&&this.objectData.width===t.width&&this.objectData.height===t.height}destroy(){this.clickHandler&&(this.clickHandler.destroy(),this.clickHandler=null),super.destroy()}}export{s as DetectedObject};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{LAYER_HEATMAP as o}from"../../application/AppContainer.js";import{Container as n}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as r}from"../../application/AppService.js";import{Color as i}from"../../../../node_modules/pixi.js/lib/color/Color.js";import{Graphics as e}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";import{Geometry as l}from"../../../../node_modules/pixi.js/lib/rendering/renderers/shared/geometry/Geometry.js";import{Shader as t}from"../../../../node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.js";import{GlProgram as a}from"../../../../node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlProgram.js";import{Mesh as s}from"../../../../node_modules/pixi.js/lib/scene/mesh/shared/Mesh.js";class c extends n{colorGradients=[];cellSize=2;constructor(){super();const n=r();n.appContainer.addToLayer(o,this);const e=n.heatMapConfig;this.colorGradients=e.colorGradients.map(o=>new i(o).toArray().slice(0,3).join(",")),this.cellSize=e.cellSize}draw(o,n=!0,r=.8){this.removeChildren();const i=n?this.gradientDrawing(o):this.gridDrawing(o);this.croppingHeatmap(i),i.alpha=r,this.addChild(i)}croppingHeatmap(o){const n=r().mapManager.roomFill.children.filter(o=>o instanceof e),i=new e;for(const o of n)i.context.instructions.push(...o.context.instructions);i.context.dirty=!0,o.setMask({mask:i}),this.addChild(i)}gridDrawing(o){const n=[],r=[],i=o.length,e=o[0].length;for(let l=0;l<i;l++)for(let i=0;i<e;i++){const e=o[l][i],t=this.cellSize/2,a=e.x-t,s=e.y-t,c=e.x+t,g=e.y+t;n.push(a,s),r.push(e.signal),n.push(c,s),r.push(e.signal),n.push(c,g),r.push(e.signal),n.push(a,s),r.push(e.signal),n.push(c,g),r.push(e.signal),n.push(a,g),r.push(e.signal)}const c=new l({attributes:{aPosition:new Float32Array(n),aSignal:new Float32Array(r)}}),g=new t({glProgram:new a({vertex:"\n in vec2 aPosition;\n in float aSignal;\n uniform mat3 uProjectionMatrix;\n uniform mat3 uWorldTransformMatrix;\n uniform mat3 uTransformMatrix;\n \n out float vSignal;\n \n void main() {\n mat3 mvp = uProjectionMatrix * uWorldTransformMatrix * uTransformMatrix;\n gl_Position = vec4((mvp * vec3(aPosition, 1.0)).xy, 0.0, 1.0);\n vSignal = aSignal;\n }\n ",fragment:`\n precision mediump float;\n \n in float vSignal;\n \n void main() {\n vec3 color;\n \n if (vSignal > 0.875) {\n color = vec3(${this.colorGradients[0]});\n } else if (vSignal > 0.75) {\n color = vec3(${this.colorGradients[1]});\n } else if (vSignal > 0.625) {\n color = vec3(${this.colorGradients[2]});\n } else if (vSignal > 0.5) {\n color = vec3(${this.colorGradients[3]});\n } else if (vSignal > 0.375) {\n color = vec3(${this.colorGradients[4]});\n } else if (vSignal > 0.25) {\n color = vec3(${this.colorGradients[5]});\n } else if (vSignal > 0.125) {\n color = vec3(${this.colorGradients[6]});\n } else {\n color = vec3(${this.colorGradients[7]});\n }\n gl_FragColor = vec4(color, 1.0);\n }\n `})}),m=new s({geometry:c,shader:g});return m.alpha=.8,m}gradientDrawing(o){const n=[],r=[],i=o.length,e=o[0].length;for(let l=0;l<i;l++)for(let t=0;t<e;t++){const a=o[l][t],s=this.cellSize/2,c=(n,r)=>n<0||n>=i||r<0||r>=e?a.signal:o[n][r].signal,g=(c(l-1,t-1)+c(l-1,t)+c(l,t-1)+a.signal)/4,m=(c(l-1,t)+c(l-1,t+1)+a.signal+c(l,t+1))/4,d=(a.signal+c(l,t+1)+c(l+1,t)+c(l+1,t+1))/4,p=(c(l,t-1)+a.signal+c(l+1,t-1)+c(l+1,t))/4,h=a.x-s,f=a.y-s,v=a.x+s,u=a.y+s;n.push(h,f,v,f,v,u),r.push(g,m,d),n.push(h,f,v,u,h,u),r.push(g,d,p)}const c=new l({attributes:{aPosition:new Float32Array(n),aSignal:new Float32Array(r)}}),g=new t({glProgram:new a({vertex:"\n in vec2 aPosition;\n in float aSignal;\n uniform mat3 uProjectionMatrix;\n uniform mat3 uWorldTransformMatrix;\n uniform mat3 uTransformMatrix;\n \n out float vSignal;\n \n void main() {\n mat3 mvp = uProjectionMatrix * uWorldTransformMatrix * uTransformMatrix;\n gl_Position = vec4((mvp * vec3(aPosition, 1.0)).xy, 0.0, 1.0);\n vSignal = aSignal;\n }\n ",fragment:`\n precision mediump float;\n \n in float vSignal;\n \n // 颜色插值函数\n vec3 interpolateColor(vec3 color1, vec3 color2, float t) {\n return mix(color1, color2, t);\n }\n \n void main() {\n vec3 color;\n float signal = clamp(vSignal, 0.0, 1.0);\n \n vec3 color1 = vec3(${this.colorGradients[7]});\n vec3 color2 = vec3(${this.colorGradients[6]});\n vec3 color3 = vec3(${this.colorGradients[5]});\n vec3 color4 = vec3(${this.colorGradients[4]});\n vec3 color5 = vec3(${this.colorGradients[3]});\n vec3 color6 = vec3(${this.colorGradients[2]});\n vec3 color7 = vec3(${this.colorGradients[1]});\n vec3 color8 = vec3(${this.colorGradients[0]});\n \n if (signal <= 0.125) {\n float t = signal / 0.125;\n color = interpolateColor(color1, color2, t);\n } else if (signal <= 0.25) {\n float t = (signal - 0.125) / 0.125;\n color = interpolateColor(color2, color3, t);\n } else if (signal <= 0.375) {\n float t = (signal - 0.25) / 0.125;\n color = interpolateColor(color3, color4, t);\n } else if (signal <= 0.5) {\n float t = (signal - 0.375) / 0.125;\n color = interpolateColor(color4, color5, t);\n } else if (signal <= 0.625) {\n float t = (signal - 0.5) / 0.125;\n color = interpolateColor(color5, color6, t);\n } else if (signal <= 0.75) {\n float t = (signal - 0.625) / 0.125;\n color = interpolateColor(color6, color7, t);\n } else if (signal <= 0.875) {\n float t = (signal - 0.75) / 0.125;\n color = interpolateColor(color7, color8, t);\n } else {\n color = color8;\n }\n \n gl_FragColor = vec4(color, 1.0);\n }\n `})}),m=new s({geometry:c,shader:g});return m.alpha=.8,m}}export{c as Heatmap};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{LAYER_CARPET as t}from"../../application/AppContainer.js";import{Logger as e}from"../../utils/logger.js";import{Container as r}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as i}from"../../application/AppService.js";import{Assets as a}from"../../../../node_modules/pixi.js/lib/assets/Assets.js";import{TilingSprite as s}from"../../../../node_modules/pixi.js/lib/scene/sprite-tiling/TilingSprite.js";import{Graphics as o}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";class n extends r{carpetSprite=null;carpetMask=null;constructor(){super({isRenderGroup:!0}),i().appContainer.addToLayer(t,this)}async createCarpetFromRasterData(t,o){const n=i();if(!n.runtimeSnapshot.showCarpet)return;if(this.clearCarpet(),0===t.length)return;const{src:p,opacity:c,scale:h}=n.carpetConfig,l=await a.load(p);if(!l)return void e.warn(`Carpet texture not found: ${p}`);const d=this.createCarpetGraphics(t,o),u=d.getLocalBounds();if(0===u.width||0===u.height)return;const m=new s({texture:l,width:u.width,height:u.height});m.x=u.x,m.y=u.y,m.alpha=c,m.tileScale.set(h);const f=new r;f.addChild(d),m.mask=f,this.addChild(m),this.carpetSprite=m,this.carpetMask=f,n.getApp().renderOnceNextFrame()}createCarpetGraphics(t,e){const r=new o;for(let i=0;i<t.length;i++){const a=t[i],s=a%e,o=Math.floor(a/e);r.rect(s,o,1,1)}return r.fill(16777215),r}clearCarpet(){if(this.carpetSprite){try{this.removeChild(this.carpetSprite),this.carpetSprite.destroy()}catch(t){e.warn("Error destroying carpet sprite:",t)}this.carpetSprite=null}if(this.carpetMask){try{this.carpetMask.destroy()}catch(t){e.warn("Error destroying carpet mask:",t)}this.carpetMask=null}}async createCarpetFromStructuredData(t){const o=i();if(!o.runtimeSnapshot.showCarpet)return;if(this.clearCarpet(),0===t.length)return;const{src:n,opacity:p,scale:c}=o.carpetConfig,h=await a.load(n);if(!h)return void e.warn(`Carpet texture not found: ${n}`);const l=this.createCarpetGraphicsFromStructuredData(t),d=l.getLocalBounds();if(0===d.width||0===d.height)return;const u=new s({texture:h,width:d.width,height:d.height});u.x=d.x,u.y=d.y,u.alpha=p,u.tileScale.set(c);const m=new r;m.addChild(l),u.mask=m,this.addChild(u),this.carpetSprite=u,this.carpetMask=m,o.getApp().renderOnceNextFrame()}createCarpetGraphicsFromStructuredData(t){const e=new o;for(const r of t){const t=r.coordinates;for(let r=0;r<t.length;r+=2){const i=t[r],a=t[r+1];e.rect(i,a,1,1)}}return e.fill(16777215),e}destroy(){this.clearCarpet(),super.destroy()}}export{n as Carpet};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{LAYER_FREE as o}from"../../application/AppContainer.js";import{Graphics as s}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";import{useAppService as r}from"../../application/AppService.js";class e extends s{constructor(){super(),r().appContainer.addToLayer(o,this)}draw(o){const s=r();this.clear(),this.setFillStyle({color:s.mapConfig.freeColor});for(const s of o){const o=s.coordinates;for(let s=0;s<o.length;s+=2){const r=o[s],e=o[s+1];this.rect(r,e,1,1)}}this.fill()}destroy(o){super.destroy(o)}}export{e as Free};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{LAYER_OBSTACLE as o}from"../../application/AppContainer.js";import{RASTER_CHUNK_SIZE as t}from"../../constant/index.js";import{Graphics as s}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";import{useAppService as e}from"../../application/AppService.js";class i extends s{constructor(){super(),e().appContainer.addToLayer(o,this)}draw(o){const t=e();this.clear(),this.setFillStyle({color:t.mapConfig.obstacleColor});for(const t of o){const o=t.coordinates;for(let t=0;t<o.length;t+=2){const s=o[t],e=o[t+1];this.rect(s,e,1,1)}}this.fill()}drawRaster(o,s){const i=e();if(this.clear(),0!==o.length){this.setFillStyle({color:i.mapConfig.obstacleColor});for(let e=0;e<o.length;e+=t){const r=Math.min(e+t,o.length);for(let t=e;t<r;t++){const e=o[t],i=e%s,r=Math.floor(e/s);this.rect(i,r,1,1)}this.fill(),r<o.length&&this.setFillStyle({color:i.mapConfig.obstacleColor})}}}destroy(o){super.destroy(o)}}export{i as Obstacle};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{RASTER_CHUNK_SIZE as o}from"../../constant/index.js";import{LAYER_ROOM_FILL as t}from"../../application/AppContainer.js";import{ClickHandler as e}from"../../mixins/ClickHandler.js";import{Logger as i}from"../../utils/logger.js";import{Container as s}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as r}from"../../application/AppService.js";import{Graphics as n}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";import{GraphicsContext as a}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/GraphicsContext.js";class l extends s{roomGraphicsMap=new Map;roomContextMap=new Map;roomClickHandlerMap=new Map;unsubscribeFns=[];mapWidth=0;rasterRoomDataMap=new Map;constructor(){super({isRenderGroup:!0}),r().appContainer.addToLayer(t,this)}draw(o){const t=r();this.clearRooms();const i=t.roomConfig,{selectRoomIds:s,enableRoomSelection:l}=t.runtimeSnapshot;o.forEach(o=>{const t=o.id>=255,r=new n,c=new a,h=new a;if(t)c.setFillStyle({color:o.color}),h.setFillStyle({color:o.color});else{const t=o.colorIndex??0,e=i.colors.active[t%i.colors.active.length],s=i.colors.inactive[t%i.colors.inactive.length];c.setFillStyle({color:e}),h.setFillStyle({color:s})}if(c.poly(o.polyPoints).fill(),h.poly(o.polyPoints).fill(),o.outlinePoints.forEach(o=>{c.rect(o.x,o.y,1,1).fill(),h.rect(o.x,o.y,1,1).fill()}),r.context=t?c:l&&!s.includes(o.id)?h:c,!t){const t=new e(r,{clickThreshold:10,onClick:()=>{this.handleRoomClick(o.id)}});this.roomClickHandlerMap.set(o.id,t)}this.roomGraphicsMap.set(o.id,r),this.roomContextMap.set(o.id,{activeContext:c,inactiveContext:h}),this.addChild(r)})}drawRaster(o){const t=r();if(this.clearRooms(),this.mapWidth=o.width,0===o.sortedRooms.length)return;const{selectRoomIds:e,enableRoomSelection:i}=t.runtimeSnapshot;o.sortedRooms.forEach(o=>{this.drawRasterRoom(o,i,e)})}drawRasterRoom(t,i,s){const{roomId:r,pixelIndices:l,activeColor:c,inactiveColor:h}=t,p=new n,m=new a,d=new a;m.setFillStyle({color:c}),d.setFillStyle({color:h}),this.drawPixelPointsInBatches(m,l,o,this.mapWidth),this.drawPixelPointsInBatches(d,l,o,this.mapWidth);const f="number"==typeof r,C=!i||f&&s.includes(r);if(p.context=i&&f&&!C?d:m,f){const o=new e(p,{clickThreshold:10,onClick:()=>{this.handleRoomClick(r)}});this.roomClickHandlerMap.set(r,o)}this.roomGraphicsMap.set(r,p),this.roomContextMap.set(r,{activeContext:m,inactiveContext:d}),this.rasterRoomDataMap.set(r,t),this.addChild(p)}drawPixelPointsInBatches(o,t,e,i){for(let s=0;s<t.length;s+=e){const r=Math.min(s+e,t.length);for(let e=s;e<r;e++){const s=t[e],r=s%i,n=Math.floor(s/i);o.rect(r,n,1,1)}o.fill()}}handleRoomClick(o){const t=r();t.events?.onClickRoom?.(t.getRoomData(o)??{id:o})}setRoomStateBySelectIds(o){const t=r(),{enableRoomSelection:e}=t.runtimeSnapshot;this.roomGraphicsMap.forEach((t,i)=>{if("number"==typeof i){const s=!e||o.includes(i),r=this.roomContextMap.get(i);r&&(t.context=s?r.activeContext:r.inactiveContext)}})}setRoomState(o,t){const e=this.roomGraphicsMap.get(o),s=this.roomContextMap.get(o);e&&s?"number"==typeof o&&(e.context=t?s.activeContext:s.inactiveContext):i.warn(`Room ${o} not found`)}setAllRoomsState(o){this.roomGraphicsMap.forEach((t,e)=>{"number"==typeof e&&this.setRoomState(e,o)})}getRoomGraphicsMap(){const o=new Map;return this.roomGraphicsMap.forEach((t,e)=>{"number"==typeof e&&o.set(e,t)}),o}getRasterRoomData(o){return this.rasterRoomDataMap.get(o)||null}getMapWidth(){return this.mapWidth}clearRooms(){0===this.children.length&&0===this.roomGraphicsMap.size||(this.removeChildren(),this.roomClickHandlerMap.forEach(o=>{try{o.destroy()}catch(o){i.warn("Error destroying click handler:",o)}}),this.roomClickHandlerMap.clear(),this.roomGraphicsMap.clear(),this.roomContextMap.clear(),this.rasterRoomDataMap.clear())}destroy(){this.unsubscribeFns.forEach(o=>o()),this.unsubscribeFns=[],this.clearRooms(),super.destroy()}}export{l as RoomFill};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{LAYER_PATH as t}from"../../application/AppContainer.js";import{Logger as i}from"../../utils/logger.js";import{Container as o}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as a}from"../../application/AppService.js";import{Graphics as e}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";import s from"../../../../node_modules/lodash-es/throttle.js";class h extends o{commonPath;chargePath;transitionsPath;mopPath;pathData=null;lastPointCount=0;lastDrawnPosition=null;isRealTimeDrawing=!1;throttledUpdateLineWidth;throttledHandleRobotPosition;constructor(){super({isRenderGroup:!0});const i=a();i.appContainer.addToLayer(t,this),this.eventMode="none",this.commonPath=new e,this.chargePath=new e,this.transitionsPath=new e,this.mopPath=new e,this.addChild(this.commonPath),this.addChild(this.chargePath),this.addChild(this.transitionsPath),this.addChild(this.mopPath),this.visible=i.runtimeSnapshot.showPath,this.commonPath.visible=i.pathConfig.commonPath.visible,this.chargePath.visible=i.pathConfig.chargePath.visible,this.transitionsPath.visible=i.pathConfig.transitionPath.visible,this.mopPath.visible=!1,this.throttledUpdateLineWidth=s(()=>{this.updateLineWidth()},50,{leading:!0,trailing:!0}),this.throttledHandleRobotPosition=s(this.handleRobotPositionUpdate.bind(this),0),this.registerEventListeners()}registerEventListeners(){const{emitter:t}=a();t.on("antiScale",this.throttledUpdateLineWidth),t.on("robotPositionUpdate",this.throttledHandleRobotPosition),t.on("robotAnimationComplete",this.handleRobotAnimationComplete)}handleRobotAnimationComplete=()=>{this.isRealTimeDrawing&&this.stopRealTimeDrawing()};handleRobotPositionUpdate(t){if(!this.isRealTimeDrawing||!this.lastDrawnPosition)return;let i;switch(t.pathType||"common"){case"common":default:i=this.commonPath;break;case"charge":i=this.chargePath;break;case"transitions":i=this.transitionsPath;break;case"mop":i=this.mopPath}i.moveTo(this.lastDrawnPosition.x,this.lastDrawnPosition.y),i.lineTo(t.x,t.y),i.stroke(),this.lastDrawnPosition={x:t.x,y:t.y}}updateLineWidth(){const t=a();this.pathData&&t.pathConfig.lineWidthFixed&&this.redrawPaths(this.pathData)}redrawPaths(t){const{pathPoints:i}=t;i&&0!==i.length&&(this.commonPath.clear(),this.chargePath.clear(),this.transitionsPath.clear(),this.mopPath.clear(),this.setupPathStyles(),this.drawPathSegments(i),this.commonPath.stroke(),this.chargePath.stroke(),this.transitionsPath.stroke(),this.mopPath.stroke())}setupPathStyles(){const t=a(),i=t.pathConfig,o=o=>i.lineWidthFixed?t.getApp().toFixedSize(o):o;this.commonPath.setStrokeStyle({width:o(i.commonPath.width),color:i.commonPath.color,join:"round",cap:"round"}),this.chargePath.setStrokeStyle({width:o(i.chargePath.width),color:i.chargePath.color,join:"round",cap:"round"}),this.transitionsPath.setStrokeStyle({width:o(i.transitionPath.width),color:i.transitionPath.color,join:"round",cap:"round"}),this.mopPath.setStrokeStyle({width:0,color:0,alpha:0,join:"round",cap:"round"})}drawPathSegments(t){let i=null,o=null;for(let a=0;a<t.length;a++){const e=t[a],s=e.type||"common";let h;switch(s){case"common":default:h=this.commonPath;break;case"charge":h=this.chargePath;break;case"transitions":h=this.transitionsPath;break;case"mop":h=this.mopPath}0===a||s!==i?h.moveTo(e.x,e.y):h===o&&h.lineTo(e.x,e.y),i=s,o=h}}updatePositionByOrigin(t,i){this.position.set(t,i)}drawFull(t){i.debug("[Path] Draw Full Path",t),this.pathData=t,this.redrawPaths(t),this.lastPointCount=t.pathPoints?.length||0}drawIncremental(t){const o=a(),e=this.lastPointCount,s=t.pathPoints?.slice(e)||[];if(s.length>0)if(this.setupPathStyles(),i.debug("[Path] Draw Incremental Path",s),o.robotConfig.speed>0){if(this.isRealTimeDrawing=!0,e>0&&this.pathData?.pathPoints){const t=this.pathData.pathPoints[e-1];this.lastDrawnPosition={x:t.x,y:t.y}}}else this.drawNewPathSegments(s,e,t.pathPoints,this.pathData?.pathPoints);this.pathData=t,this.lastPointCount=t.pathPoints?.length||0}drawNewPathSegments(t,i,o,a){if(!o||0===t.length)return;let e=null;i>0&&(a&&a[i-1]?e=a[i-1]:o[i-1]&&(e=o[i-1]));let s=null,h=null,n=!1;for(let i=0;i<t.length;i++){const o=t[i],a=o.type||"common";let r;switch(a){case"common":default:r=this.commonPath;break;case"charge":r=this.chargePath;break;case"transitions":r=this.transitionsPath;break;case"mop":r=this.mopPath}a!==s||0===i?(h&&n&&h.stroke(),s=a,h=r,n=!0,e&&0===i&&e.type===a?(r.moveTo(e.x,e.y),r.lineTo(o.x,o.y)):r.moveTo(o.x,o.y)):r.lineTo(o.x,o.y)}h&&n&&h.stroke()}stopRealTimeDrawing(){this.isRealTimeDrawing=!1,this.lastDrawnPosition=null}destroy(t){const{emitter:i}=a();i.off("antiScale",this.throttledUpdateLineWidth),i.off("robotPositionUpdate",this.throttledHandleRobotPosition),i.off("robotAnimationComplete",this.handleRobotAnimationComplete),this.stopRealTimeDrawing(),super.destroy(t)}}export{h as Path};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{EnhancedSprite as i}from"../Base/EnhancedSprite.js";import{useAppService as t}from"../../application/AppService.js";class o extends i{constructor(){super(),this.initializeSprite()}async initializeSprite(){const i=t();await this.loadTextureAndSetSize("robot",i.robotConfig.icon)}async draw({x:i,y:t,rotation:o}){super.draw({x:i,y:t,rotation:o})}}export{o as RobotIcon};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{EnhancedAnimatedSprite as t}from"../Base/EnhancedAnimatedSprite.js";import{subscribeKey as i}from"../../../../node_modules/valtio/esm/vanilla/utils.js";import{Logger as e}from"../../utils/logger.js";import"../../../../node_modules/pixi.js/lib/index.js";import s from"../../../../node_modules/lodash-es/throttle.js";import{useAppService as o}from"../../application/AppService.js";import{Texture as n}from"../../../../node_modules/pixi.js/lib/rendering/renderers/shared/texture/Texture.js";class r extends t{unsubscribeFns=[];throttledUpdateOffset;fixedOffsetX=0;fixedOffsetY=0;constructor(t){super(t),this.throttledUpdateOffset=s(this.updateOffset.bind(this),30,{leading:!0,trailing:!0}),this.initializeAnimation()}static async create(){const i=o().robotConfig,s=await t.loadAnimationTextures(i.sleepAnimation.jsonSrc,i.sleepAnimation.framePrefix,i.sleepAnimation.frameCount);0===s.length&&(e.warn("No textures loaded for sleep animation"),s.push(n.EMPTY));const l=new r(s);return l.setupAnimation({width:i.sleepAnimation.width,height:i.sleepAnimation.height,sizeFixed:i.sleepAnimation.sizeFixed}),l}initializeAnimation(){const t=o();this.visible=!1,this.fixedOffsetX=t.robotConfig.sleepAnimation.offsetX,this.fixedOffsetY=t.robotConfig.sleepAnimation.offsetY,t.emitter.on("antiScale",this.throttledUpdateOffset);const s=i(t.runtime,"showRobotSleepAnimation",t=>{e.log(`[runtime] showRobotSleepAnimation: ${t}`),this.updateVisibility()});this.unsubscribeFns.push(s)}shouldShow(){const t=o().runtimeSnapshot.showRobotSleepAnimation,i=this.parent,e=!!i&&i.visible,s=i&&(0!==i.x||0!==i.y);return t&&e&&!!s}updateVisibility(){const t=this.shouldShow();t&&!this.visible?(this.visible=!0,this.textures&&this.textures.length>0&&this.play()):!t&&this.visible?(this.visible=!1,this.stop()):!t&&this.playing&&this.stop()}updateOffset(t){}draw(t){const i=o(),e=i.getApp().toFixedSize(i.robotConfig.sleepAnimation.offsetX),s=i.getApp().toFixedSize(i.robotConfig.sleepAnimation.offsetY),n={...t,x:t.x+e,y:t.y+s};super.draw(n,()=>this.shouldShow()),this.updateVisibility()}onRobotVisibilityChanged(){this.updateVisibility()}set visible(t){const i=super.visible;super.visible=t,t&&!i&&this.textures&&this.textures.length>0?this.play():!t&&i&&this.playing&&this.stop()}get visible(){return super.visible}destroy(t){o().emitter.off("antiScale",this.throttledUpdateOffset),this.unsubscribeFns.forEach(t=>t()),this.unsubscribeFns=[],this.stop(),super.destroy(t)}}export{r as SleepAnimation};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{RobotIcon as t}from"./RobotIcon.js";import{SleepAnimation as i}from"./SleepAnimation.js";import{LAYER_ROBOT as o}from"../../application/AppContainer.js";import{Ring as s}from"../Base/Ring.js";import{subscribeKey as e}from"../../../../node_modules/valtio/esm/vanilla/utils.js";import{Logger as n}from"../../utils/logger.js";import{Container as a}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as r}from"../../application/AppService.js";class h extends a{robot;ring;sleepAnimation=null;unsubscribeFns=[];targetPosition=null;targetRotation=null;isMoving=!1;pathQueue=[];lastPosition=null;currentPathType=void 0;lastUpdateTime=0;constructor(){super();const i=r();i.appContainer.addToLayer(o,this),this.visible=i.runtimeSnapshot.showPath,this.ring=new s({config:i.robotConfig}),this.ring.visible=i.runtimeSnapshot.showRobotRing,this.addChild(this.ring),this.robot=new t,this.addChild(this.robot),this.lastUpdateTime=Date.now(),i.robotConfig.speed>0&&i.getApp().ticker.add(this.update,this);const a=e(i.runtime,"showRobotRing",t=>{n.log(`[runtime] showRobotRing: ${t}`),this.ring.visible=t});this.unsubscribeFns.push(a)}async initializeSleepAnimation(){try{this.sleepAnimation=await i.create(),this.addChild(this.sleepAnimation),n.log("Sleep animation added to robot")}catch(t){n.error("Failed to initialize sleep animation:",t)}}updatePositionByOrigin(t,i){this.position.set(t,i)}async draw({x:t,y:i,rotation:o}){this.ring.draw({x:t,y:i}),await this.robot.draw({x:t,y:i,rotation:o}),this.sleepAnimation||await this.initializeSleepAnimation(),this.sleepAnimation.draw({x:t,y:i,rotation:o}),this.lastPosition={x:t,y:i}}moveTo(t){this.pathQueue.push(t),this.isMoving||this.processNextPathPoint()}batchProcessQueue(t=!1){if(0===this.pathQueue.length)return;const i=[...this.pathQueue];if(t){const t=i[i.length-1];this.robot.position.set(t.x,t.y),void 0!==t.rotation&&(this.robot.rotation=t.rotation),this.lastPosition={x:t.x,y:t.y},this.pathQueue=[],this.isMoving=!1,this.targetPosition=null}else this.pathQueue.splice(0,i.length),0===this.pathQueue.length?(this.isMoving=!1,this.targetPosition=null):this.processNextPathPoint()}processNextPathPoint(){if(0===this.pathQueue.length)return this.isMoving=!1,this.currentPathType=void 0,this.stopRobotAnimation(),void r().emitter.emit("robotAnimationComplete");this.isMoving||this.startRobotAnimation(),this.isMoving=!0;const t=this.pathQueue[0];this.targetPosition={x:t.x,y:t.y},this.currentPathType=t.type,void 0!==t.rotation&&(this.targetRotation=t.rotation),this.lastPosition||(this.lastPosition={x:this.robot.x,y:this.robot.y})}update(){const t=r(),i=Date.now();if(0===this.lastUpdateTime)return void(this.lastUpdateTime=i);let o=i-this.lastUpdateTime;if(this.lastUpdateTime=i,o>500&&(o=16.67),this.targetPosition){const i=this.targetPosition.x-this.robot.x,s=this.targetPosition.y-this.robot.y,e=Math.sqrt(i*i+s*s),n=t.robotConfig.speed,a=t.getApp().metersToPixels(n);if(0===n)return this.robot.position.set(this.targetPosition.x,this.targetPosition.y),null!==this.targetRotation&&(this.robot.rotation=this.targetRotation,this.targetRotation=null),this.targetPosition=null,this.lastPosition={x:this.robot.x,y:this.robot.y},this.pathQueue.shift(),void this.processNextPathPoint();const h=a*(o/1e3);e<h?(this.robot.position.set(this.targetPosition.x,this.targetPosition.y),null!==this.targetRotation&&(this.robot.rotation=this.targetRotation,this.targetRotation=null),this.targetPosition=null,this.lastPosition={x:this.robot.x,y:this.robot.y},this.pathQueue.shift(),this.processNextPathPoint()):(this.robot.x+=i*(h/e),this.robot.y+=s*(h/e),r().emitter.emit("robotPositionUpdate",{x:this.robot.x,y:this.robot.y,pathType:this.currentPathType}),this.lastPosition={x:this.robot.x,y:this.robot.y})}}startRobotAnimation(){r().getApp().requestRender("robot-animation",!0)}set visible(t){super.visible=t,this.sleepAnimation&&this.sleepAnimation.onRobotVisibilityChanged()}get visible(){return super.visible}stopRobotAnimation(){r().getApp().stopRender("robot-animation")}remove(){this.pathQueue=[],this.isMoving=!1,this.targetPosition=null,this.stopRobotAnimation()}destroy(t){const i=r();this.unsubscribeFns.forEach(t=>t()),this.unsubscribeFns=[],this.stopRobotAnimation(),i.robotConfig.speed>0&&i.getApp().ticker.remove(this.update,this),this.ring.destroy(),super.destroy(t)}}export{h as Robot};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{calculateMergedBounds as o}from"../../utils/algorithm.js";import{LAYER_ROOM_FLOOR_TYPE as e}from"../../application/AppContainer.js";import{Logger as r}from"../../utils/logger.js";import{Container as s}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as t}from"../../application/AppService.js";import{Assets as i}from"../../../../node_modules/pixi.js/lib/assets/Assets.js";import{TilingSprite as a}from"../../../../node_modules/pixi.js/lib/scene/sprite-tiling/TilingSprite.js";import{Graphics as p}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";class l extends s{floorTypeMap=new Map;floorTypeMasks=new Map;floorTypeToRooms=new Map;constructor(){super({isRenderGroup:!0}),t().appContainer.addToLayer(e,this)}async createFloorTypes(o){if(!t().runtimeSnapshot.showRoomFloorType)return;this.clearFloorTypes();const e=this.groupRoomsByFloorType(o),r=[];for(const[o,s]of e)r.push(this.createMergedFloorType(o,s));await Promise.all(r)}groupRoomsByFloorType(o){const e=new Map,r=t();return o.forEach((o,s)=>{const t=r.getRoomData(s),i=t?.floorType||0;i>=0&&(e.has(i)||e.set(i,[]),e.get(i).push({roomId:s,graphics:o}))}),e}async createMergedFloorType(e,s){const p=t(),{assets:l,opacity:n,scale:c}=p.roomConfig.floorType,h=e%l.length,d=`floorType${h}`;if(!l[h])return void r.warn(`No texture asset configured for floorType: ${e}`);const m=await i.load(d);if(!m)return void r.warn(`Floor material texture not found: ${d}`);const y=s.map(({graphics:o})=>o.getLocalBounds()),f=o(y),T=new a({texture:m,width:f.width,height:f.height});T.x=f.x,T.y=f.y,T.alpha=n,T.tileScale.set(c);const u=this.createMergedMask(s.map(({graphics:o})=>o));T.mask=u,this.addChild(T),this.floorTypeMap.set(e,T),this.floorTypeMasks.set(e,u),this.floorTypeToRooms.set(e,new Set(s.map(({roomId:o})=>o)))}createMergedMask(o){const e=new s;return o.forEach(o=>{const r=new p;r.context=o.context.clone(),e.addChild(r)}),e}clearFloorTypes(){this.floorTypeMap.forEach(o=>{try{this.removeChild(o),o.destroy()}catch(o){r.warn("Error destroying floor material:",o)}}),this.floorTypeMap.clear(),this.floorTypeMasks.forEach(o=>{try{o.destroy()}catch(o){r.warn("Error destroying floor mask:",o)}}),this.floorTypeMasks.clear(),this.floorTypeToRooms.clear()}destroy(){this.clearFloorTypes(),super.destroy()}}export{l as RoomFloorType};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{Text as o}from"../../../../node_modules/pixi.js/lib/scene/text/Text.js";import{useAppService as e}from"../../application/AppService.js";import{TextStyle as t}from"../../../../node_modules/pixi.js/lib/scene/text/TextStyle.js";class n extends o{roomId;roomIndex;constructor(o){const n=e(),{nameLabel:i,colors:s}=n.roomConfig,r=o.colorIndex??o.index,m=s.name[r%s.name.length],l=new t({fontSize:i.fontSize,fontFamily:i.fontFamily,fontWeight:i.fontWeight,fill:m,align:"center"});super({text:o.name||"Unknown",style:l}),this.roomId=o.id,this.roomIndex=o.index,this.anchor.set(.5)}updateName(o){this.text=o}refreshColor(o){const t=e(),{colors:n}=t.roomConfig,i=t.getRoomData(this.roomId),s=i?.colorIndex??this.roomIndex,r=o??n.name[s%n.name.length];this.style.fill=r}}export{n as RoomName};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{EnhancedSprite as e}from"../Base/EnhancedSprite.js";import{Container as t}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as o}from"../../application/AppService.js";import{Graphics as i}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";import{Text as r}from"../../../../node_modules/pixi.js/lib/scene/text/Text.js";import{TextStyle as s}from"../../../../node_modules/pixi.js/lib/scene/text/TextStyle.js";class n extends t{background;propertyIcons=new Map;orderContainer;orderBackground;orderText;bubble=null;isFolded=!1;roomId;roomIndex;constructor(e){super();const n=o(),l=n.roomConfig;this.roomId=e.id,this.roomIndex=e.index,this.background=new i;const{property:d,colors:{propertyTheme:a}}=l;l.property.foldable&&(this.bubble=new i);const c=a[(e.colorIndex??e.index)%a.length];this.initializePropertyIcons(d.displayOrders,c),this.orderContainer=new t,this.orderBackground=new i,this.orderText=new r({text:"",style:new s({fontSize:d.cleanOrder.fontSize,fontFamily:d.cleanOrder.fontFamily,fontWeight:d.cleanOrder.fontWeight,fill:d.cleanOrder.color,align:"center",trim:!0})}),this.orderText.anchor.set(.5,.5),this.orderContainer.addChild(this.orderBackground),this.orderContainer.addChild(this.orderText),this.addChild(this.background),this.bubble&&this.addChild(this.bubble),this.propertyIcons.forEach(({sprite:e})=>{this.addChild(e)}),this.addChild(this.orderContainer),this.visible=n.runtimeSnapshot.showRoomProperty,this.updateProperty(e)}initializePropertyIcons(t,o){const i=["cleanMode","suction","cistern","cleanTimes"];t.forEach(t=>{const r=i.includes(t),s=new e;s.tint=o,s.anchor.set(0,0),this.propertyIcons.set(t,{fieldName:t,sprite:s,isBuiltin:r})})}async updateProperty(e){await this.updateIcons(e),this.updateBackground()}getFieldValue(e,t){if(["cleanMode","suction","cistern","cleanTimes"].includes(t))return e[t]??null;if(e.customData&&t in e.customData){const o=e.customData[t];return"number"==typeof o?o:null}return null}getAssetAlias(e,t){const o={cleanMode:e=>`cleanMode_${e}`,suction:e=>`fan_${e}`,cistern:e=>`water_${e}`,cleanTimes:e=>`cleanTimes${e}`};return e in o?o[e](t):`custom_${e}_${t}`}shouldShowField(e,t,i){const r=o(),{showRoomProperty:s}=r.runtimeSnapshot;return!(null===i||!s||"cleanTimes"===t&&i<=0)}getDisplayElements(e){const t=o(),{displayOrders:i}=t.roomConfig.property,{showRoomOrder:r}=t.runtimeSnapshot,s=e.order||0,n=[];return r&&s>0&&n.push({element:this.orderContainer,show:!0,isOrder:!0,fieldName:"order"}),i.forEach(t=>{const o=this.propertyIcons.get(t);if(!o)return;const i=this.getFieldValue(e,t);this.shouldShowField(e,t,i)&&null!==i&&n.push({element:o.sprite,show:!0,isOrder:!1,fieldName:t,value:i})}),{elementsToShow:n,orderValue:s}}async updateIcons(e){const t=o(),{iconWidth:i,iconHeight:r,container:s,cleanOrder:n,foldable:l,iconGap:d}=t.roomConfig.property,{propertyTheme:a}=t.roomConfig.colors,{paddingHorizontal:c,paddingVertical:h}=s,{elementsToShow:p,orderValue:u}=this.getDisplayElements(e);if(this.orderContainer.visible=!1,this.propertyIcons.forEach(({sprite:e})=>{e.visible=!1}),l&&this.isFolded)return;const b=[];p.forEach(t=>{if(t.isOrder){this.orderContainer.visible=!0,this.orderText.text=u.toString();const t=e.colorIndex??this.roomIndex;this.orderBackground.clear(),this.orderBackground.setFillStyle({color:a[t%a.length]}),this.orderBackground.circle(i/2,r/2,i/2).fill(),this.orderText.position.set(i/2,r/2)}else{const e=this.propertyIcons.get(t.fieldName);if(e){e.sprite.visible=!0;const o=this.getAssetAlias(t.fieldName,t.value);b.push(e.sprite.loadTextureAndSetSize(o,{width:i,height:r,sizeFixed:!1}))}}}),await Promise.all(b);let g=c;p.forEach((e,t)=>{const{element:o,isOrder:r}=e;o.position.set(g,h),g+=i,t<p.length-1&&(g+=r?n.gapRight:d)})}updateBackground(){const e=o().roomConfig,{container:t,foldable:i}=e.property,{borderRadius:r,tailHeight:s,tailWidth:n,backgroundColor:l}=t,d=this.calculateContentWidth(),a=this.calculateContentHeight(),c=Math.min(n,d/2);if(this.background.clear(),this.bubble&&this.bubble.clear(),this.background.setFillStyle({color:l}),this.background.roundRect(0,0,d,a,r).fill(),i&&this.bubble){const e=(d-c)/2;this.bubble.setFillStyle({color:l}),this.bubble.poly([e,a-1,e+c,a-1,e+c/2,a+s]).fill()}}calculateContentWidth(){const e=o(),{iconWidth:t,container:i,cleanOrder:r,iconGap:s}=e.roomConfig.property,{paddingHorizontal:n}=i,l=e.getRoomData(this.roomId);if(!l)return 2*n;const{elementsToShow:d}=this.getDisplayElements(l);let a=n;return d.forEach((e,o)=>{const{isOrder:i}=e;a+=t,o<d.length-1&&(a+=i?r.gapRight:s)}),a+=n,a}calculateContentHeight(){const e=o().roomConfig,{iconHeight:t,container:i}=e.property;return i.paddingVertical+t+i.paddingVertical}getTotalHeight(){const e=o(),{foldable:t,container:i}=e.roomConfig.property,{tailHeight:r}=i;return this.calculateContentHeight()+(t?r:0)}getTotalWidth(){return this.calculateContentWidth()}setFolded(e){const t=o(),{foldable:i}=t.roomConfig.property;if(i)if(this.isFolded=e,e)this.background.visible=!1,this.orderContainer.visible=!1,this.propertyIcons.forEach(({sprite:e})=>{e.visible=!1}),this.bubble&&(this.bubble.visible=!0,this.bubble.rotation=Math.PI,this.repositionFoldedBubble());else{this.background.visible=!0,this.bubble&&(this.bubble.visible=!0,this.bubble.rotation=0,this.bubble.position.set(0,0)),this.updateBackground();const e=t.getRoomData(this.roomId);e&&this.updateIcons(e)}}isFoldedState(){const e=o(),{foldable:t}=e.roomConfig.property;return!!t&&this.isFolded}repositionFoldedBubble(){const e=o(),{foldable:t}=e.roomConfig.property;if(!t||!this.bubble)return;const i=e.roomConfig,{tailHeight:r}=i.property.container,s=this.calculateContentWidth(),n=this.calculateContentHeight(),l=s/2;this.bubble.position.set(l,n+r/2)}refreshColor(){const e=o(),{propertyTheme:t}=e.roomConfig.colors,i=e.getRoomData(this.roomId),r=i?.colorIndex??this.roomIndex,s=t[r%t.length];if(this.propertyIcons.forEach(({sprite:e})=>{e.tint=s}),this.orderBackground&&this.orderBackground.visible){const{property:o}=e.roomConfig,i=o.iconWidth,s=o.iconHeight;this.orderBackground.clear(),this.orderBackground.setFillStyle({color:t[r%t.length]}),this.orderBackground.circle(i/2,s/2,i/2).fill()}}destroy(){this.propertyIcons.forEach(({sprite:e})=>{e.destroy()}),this.propertyIcons.clear(),super.destroy()}}export{n as RoomProperty};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../../node_modules/pixi.js/lib/index.js";import{EnhancedSprite as o}from"../Base/EnhancedSprite.js";import{Container as t}from"../../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as i}from"../../application/AppService.js";import{Graphics as e}from"../../../../node_modules/pixi.js/lib/scene/graphics/shared/Graphics.js";class n extends t{background;checkmarkIcon;bubble;roomIndex;roomId;constructor(t){super();const n=i().roomConfig;this.roomId=t.id,this.roomIndex=t.index,this.background=new e,this.bubble=new e;const{colors:{selectionIndicatorIcon:c}}=n;this.checkmarkIcon=new o,this.checkmarkIcon.tint=c[t.index%c.length],this.checkmarkIcon.anchor.set(0,0),this.addChild(this.background),this.addChild(this.bubble),this.addChild(this.checkmarkIcon),this.updateIndicator(t)}async updateIndicator(o){const t=i(),{roomSelectionMode:e,enableRoomSelection:n,selectRoomIds:c}=t.runtimeSnapshot;if(!n||"checkmark"!==e)return void(this.visible=!1);const s=c.includes(o.id);await this.showCheckmarkMode(s),this.updateBackground()}async showCheckmarkMode(o){const t=i(),{selectionIndicator:e}=t.roomConfig,{iconWidth:n,iconHeight:c}=e;if(o){this.visible=!0,this.checkmarkIcon.visible=!0,await this.checkmarkIcon.loadTextureAndSetSize("checkmark",{width:n,height:c,sizeFixed:!1});const o=e.containerWidth/2,t=e.containerHeight/2;this.checkmarkIcon.position.set(o-n/2,t-c/2)}else this.visible=!1}updateBackground(){const o=i(),{selectionIndicator:t,colors:e}=o.roomConfig,{containerWidth:n,containerHeight:c,strokeWidth:s,strokeColor:r,borderRadius:a,tailHeight:d,tailWidth:h}=t,l=o.getRoomData(this.roomId),m=l?.colorIndex??this.roomIndex,k=e.selectionIndicatorBackground[m%e.selectionIndicatorBackground.length];if(this.background.clear(),this.bubble.clear(),this.background.setFillStyle({color:k}).roundRect(0,0,n,c,a).fill().setStrokeStyle({color:r,width:s,alignment:0}).stroke(),d>0&&h>0){const o=(n-h)/2;this.bubble.setFillStyle({color:r});const t=c+s;this.bubble.poly([o,t-1,o+h,t-1,o+h/2,t+d]).fill()}}getTotalHeight(){const o=i(),{selectionIndicator:t}=o.roomConfig,{containerHeight:e,tailHeight:n,strokeWidth:c}=t;return e+c+(n>0?n:0)}getTotalWidth(){const o=i(),{selectionIndicator:t}=o.roomConfig;return t.containerWidth}async refreshColor(){const o=i().getRoomData(this.roomId);o&&await this.updateIndicator(o)}destroy(){this.checkmarkIcon?.destroy(),super.destroy()}}export{n as RoomSelectionIndicator};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{RoomName as o}from"./RoomName.js";import{RoomProperty as t}from"./RoomProperty.js";import{RoomSelectionIndicator as e}from"./RoomSelectionIndicator.js";import{ClickHandler as i}from"../../mixins/ClickHandler.js";import{FixedSizeContainer as r}from"../Base/FixedSizeContainer.js";import{useAppService as s}from"../../application/AppService.js";class n extends r{roomId;roomName;roomProperty=null;roomSelectionIndicator=null;clickHandler=null;constructor(t){super();const e=s();this.enableRenderGroup(),this.roomId=t.id,t.centerPoint&&this.position.set(t.centerPoint.x,t.centerPoint.y),this.roomName=new o(t),this.roomName.visible=e.runtimeSnapshot.showRoomName,this.createRoomProperty(t),this.createRoomSelectionIndicator(t),this.updateLayout(),this.clickHandler=new i(this,{onClick:()=>{e.events?.onClickRoomProperties?.(t)}})}shouldShowRoomProperty(){const o=s(),{showRoomOrder:t,showRoomProperty:e,selectRoomIds:i,enableRoomSelection:r,roomSelectionMode:n}=o.runtimeSnapshot,m=o.getRoomData(this.roomId);if(!m)return!1;if(r&&"checkmark"===n&&i.includes(this.roomId))return!1;const a=t&&(m.order||0)>0;let c=!1;if(e){const{displayOrders:t}=o.roomConfig.property;c=t.some(o=>"suction"===o&&null!=m.suction||"cistern"===o&&null!=m.cistern||"cleanMode"===o&&null!=m.cleanMode||"cleanTimes"===o&&m.cleanTimes>0||!(!m.customData||!(o in m.customData)||"number"!=typeof m.customData[o]||null==m.customData[o]))}return a||c}shouldShowRoomSelectionIndicator(){const o=s(),{enableRoomSelection:t,roomSelectionMode:e}=o.runtimeSnapshot;return t&&"checkmark"===e}updateRoomPropertyVisibility(){const o=s();if(this.roomProperty){if(this.shouldShowRoomProperty()){this.roomProperty.visible=!0;const t=o.runtimeSnapshot.roomPropertyFoldIds.includes(this.roomId);this.roomProperty.setFolded(t);const e=o.getRoomData(this.roomId);e&&this.roomProperty.updateProperty(e)}else this.roomProperty.visible=!1;this.updateLayout()}}async updateRoomSelectionIndicatorVisibility(){const o=s();if(this.roomSelectionIndicator){if(this.shouldShowRoomSelectionIndicator()){const t=o.getRoomData(this.roomId);t&&await this.roomSelectionIndicator.updateIndicator(t)}else this.roomSelectionIndicator.visible=!1;this.updateLayout()}}async createRoomProperty(o){const e=s();this.roomProperty&&(this.removeChild(this.roomProperty),this.roomProperty.destroy()),this.roomProperty=new t(o),await this.roomProperty.updateProperty(o),this.addChild(this.roomProperty),this.addChild(this.roomName),this.roomName.visible=e.runtimeSnapshot.showRoomName,this.updateRoomPropertyVisibility()}async createRoomSelectionIndicator(o){this.roomSelectionIndicator&&(this.removeChild(this.roomSelectionIndicator),this.roomSelectionIndicator.destroy()),this.roomSelectionIndicator=new e(o),this.addChild(this.roomSelectionIndicator),await this.updateRoomSelectionIndicatorVisibility()}updateLayout(){const o=s(),{property:{offsetY:t,offsetX:e},selectionIndicator:{offsetY:i,offsetX:r}}=o.roomConfig,n=this.roomProperty?.visible||!1,m=this.roomName.visible,a=this.roomSelectionIndicator?.visible||!1;if(n&&this.roomProperty)if(this.roomProperty.isFoldedState())this.roomProperty.position.set(e,-t);else{const o=this.roomProperty.getTotalHeight(),i=this.roomProperty.getTotalWidth();m?(this.roomProperty.position.set(-i/2+e,-t-o),this.roomName.position.set(0,0)):this.roomProperty.position.set(-i/2+e,-o/2-t)}if(a&&this.roomSelectionIndicator){const o=this.roomSelectionIndicator.getTotalHeight(),t=this.roomSelectionIndicator.getTotalWidth();m?(this.roomSelectionIndicator.position.set(-t/2+r,-i-o),this.roomName.position.set(0,0)):this.roomSelectionIndicator.position.set(-t/2+r,-o/2-i)}!m||n||a||this.roomName.position.set(0,0)}updateName(o){this.roomName.updateName(o)}updateRoomNameVisibility(o){this.roomName.visible=o,this.updateLayout()}updatePosition(o){this.position.set(o.x,o.y)}async refreshColor(){this.roomName&&this.roomName.refreshColor(),this.roomProperty&&this.roomProperty.refreshColor(),this.roomSelectionIndicator&&await this.roomSelectionIndicator.refreshColor()}destroy(){this.clickHandler?.destroy(),this.clickHandler=null,this.roomProperty?.destroy(),this.roomProperty=null,this.roomSelectionIndicator?.destroy(),this.roomSelectionIndicator=null,this.roomName?.destroy(),super.destroy()}}export{n as RoomInfo};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"../assets/chargingStation.png.js";import e from"../assets/robot.png.js";import t from"../assets/fan0.png.js";import i from"../assets/fan1.png.js";import r from"../assets/fan2.png.js";import s from"../assets/fan3.png.js";import n from"../assets/fan4.png.js";import a from"../assets/water0.png.js";import f from"../assets/water1.png.js";import l from"../assets/water2.png.js";import d from"../assets/water3.png.js";import h from"../assets/cleanMode0.png.js";import c from"../assets/cleanMode1.png.js";import m from"../assets/cleanMode2.png.js";import p from"../assets/cleanMode3.png.js";import g from"../assets/cleanTimes1.png.js";import b from"../assets/cleanTimes2.png.js";import S from"../assets/controlScale.png.js";import u from"../assets/controlDelete.png.js";import C from"../assets/controlRotate.png.js";import W from"../assets/controlMove.png.js";import k from"../assets/checkmark.png.js";import y from"../assets/spot.png.js";import D from"../assets/floorType1.png.js";import j from"../assets/floorType2.png.js";import x from"../assets/floorType3.png.js";import F from"../assets/carpet.png.js";import A from"../assets/sleep.json.js";import{SPECIAL_ROOM_IDS as O}from"../../../node_modules/@ray-js/robot-protocol/dist/index.js";const w="system-ui, -apple-system, sans-serif",R=["#2563b8","#26966b","#7c3fb8","#d97706"],P={global:{containerTop:"0px",containerLeft:"0px",containerWidth:"100%",containerHeight:"100%",backgroundColor:"#f6f6f6"},map:{autoPaddingPercent:.05,adjacencyThreshold:3,obstacleColor:"#999999",freeColor:"#ebebeb"},room:{colors:{active:["#a8c8f5","#9de5c7","#d4b9f7","#ffd399"],inactive:["#d6e7fc","#d1f4e5","#ece0fb","#fff0d9"],name:[...R],propertyTheme:[...R],selectionIndicatorBackground:[...R],selectionIndicatorIcon:["#ffffff","#ffffff","#ffffff","#ffffff"],[O.NO_ROOM_DATA]:"#ebebeb",[O.ROOM_GAP]:"#ebebeb",[O.OBSTACLE_ROOM]:"#ebebeb",[O.UNKNOWN_ROOM]:"#ebebeb"},nameLabel:{fontSize:10,fontFamily:w,fontWeight:"500"},property:{displayOrders:["cleanMode","suction","cistern","cleanTimes"],iconWidth:12,iconHeight:12,foldable:!0,offsetX:0,offsetY:4,iconGap:0,container:{backgroundColor:"#ffffff",paddingVertical:1.5,paddingHorizontal:1.5,borderRadius:16,tailHeight:2,tailWidth:10},suction:{assets:[t,i,r,s,n]},cistern:{assets:[a,f,l,d]},cleanMode:{assets:[h,c,m,p]},cleanTimes:{assets:[g,b]},cleanOrder:{color:"#ffffff",fontFamily:w,fontWeight:"400",fontSize:8,gapRight:2}},selectionIndicator:{iconSrc:k,iconWidth:12,iconHeight:12,containerWidth:16,containerHeight:16,strokeWidth:2,strokeColor:"#ffffff",borderRadius:16,offsetY:4,offsetX:0,tailHeight:2,tailWidth:6},floorType:{assets:["",D,j,x],opacity:.1,scale:.2}},path:{lineWidthFixed:!1,incrementalThreshold:5,commonPath:{visible:!0,color:"#ffffff",width:.5},transitionPath:{visible:!1,color:"#ffffff",width:.5},chargePath:{visible:!1,color:"#ffffff",width:.5}},carpet:{src:F,opacity:.5,scale:.2},robot:{icon:{sizeFixed:!1,width:8,height:8,src:e},speed:0,rotationCorrection:0,sleepAnimation:{jsonSrc:A,framePrefix:"sleep_",width:16,height:16,sizeFixed:!1,frameCount:96,offsetX:8,offsetY:-8},ringSize:1,ringColor:"rgba(255, 68, 68, 0.2)",ringStrokeWidth:1,ringStrokeColor:"#ffffff",ringStrokeDashed:!0,ringStrokeDashArray:[4,4]},chargingStation:{icon:{sizeFixed:!1,width:8,height:8,src:o},rotationCorrection:0,ringSize:1,ringColor:"rgba(255, 68, 68, 0.2)",ringStrokeWidth:1,ringStrokeColor:"#ffffff",ringStrokeDashed:!0,ringStrokeDashArray:[4,4]},interaction:{zoomRange:{min:.5,max:8},fitMinScale:1,fitMaxScale:4,enableDoubleTapZoom:!0},controls:{iconWrapperWidth:24,iconWrapperHeight:24,iconWrapperBorderRadius:16,iconWidth:12,iconHeight:12,deleteIconSrc:u,rotateIconSrc:C,scaleIconSrc:S,moveIconSrc:W,moveButtonOffset:30,textFontSize:12,textFontFamily:w,textFontWeight:"400",unitLabel:"m",forbiddenSweepZone:{minSize:1,iconWrapperFillColor:"#ff4444",strokeColor:"#ff4444",strokeWidth:2,fillColor:"rgba(255, 68, 68, 0.1)",outlineOffset:16,outlineStrokeColor:"#ff4444",outlineStrokeWidth:2,outlineDashed:!0,outlineDashArray:[4,3],outlineFillColor:"rgba(255, 68, 68, 0.05)",showRotateButton:!0,textColor:"#ff4444",textPosition:"bottom",textOffset:8,editing:{isDashed:!1,dashArray:[0,0]},normal:{isDashed:!1,dashArray:[0,0]}},forbiddenMopZone:{minSize:1,iconWrapperFillColor:"#fe8a07",strokeColor:"#fe8a07",strokeWidth:2,fillColor:"rgba(254, 138, 7, 0.1)",outlineOffset:16,outlineStrokeColor:"#fe8a07",outlineStrokeWidth:2,outlineDashed:!0,outlineDashArray:[4,3],outlineFillColor:"rgba(254, 138, 7, 0.05)",showRotateButton:!0,textColor:"#fe8a07",textPosition:"bottom",textOffset:8,editing:{isDashed:!1,dashArray:[0,0]},normal:{isDashed:!1,dashArray:[0,0]}},cleanZone:{minSize:1,iconWrapperFillColor:"#5d68fe",strokeColor:"#5d68fe",strokeWidth:2,fillColor:"rgba(93, 104, 254, 0.1)",outlineOffset:16,outlineStrokeColor:"#5d68fe",outlineStrokeWidth:2,outlineDashed:!0,outlineDashArray:[4,3],outlineFillColor:"rgba(93, 104, 254, 0.05)",showRotateButton:!0,textColor:"#5d68fe",textPosition:"bottom",textOffset:8,editing:{isDashed:!1,dashArray:[0,0]},normal:{isDashed:!1,dashArray:[0,0]}},virtualWall:{iconWrapperFillColor:"#ff4444",lineWidth:2,lineColor:"#ff4444",hitAreaThickness:30,outlineOffset:16,outlineStrokeColor:"#ff4444",outlineStrokeWidth:2,outlineDashed:!0,outlineDashArray:[4,3],outlineFillColor:"rgba(255, 68, 68, 0.05)",minWidth:1,textColor:"#ff4444",textOffset:8,editing:{isDashed:!1,dashArray:[0,0]},normal:{isDashed:!1,dashArray:[0,0]}},spot:{iconSrc:y,iconSize:8,size:1,strokeColor:"#5d68fe",strokeWidth:2,fillColor:"rgba(93, 104, 254, 0.1)",textColor:"#5d68fe",textPosition:"bottom",textOffset:8,editing:{isDashed:!1,dashArray:[0,0]},normal:{isDashed:!1,dashArray:[0,0]}}},divider:{lineColor:"#ff4444",dashLineWidth:2,dashLineDashArray:[4,3],solidLineWidth:2,endPointSize:12,endPointColor:"#ff4444",endPointStrokeColor:"#ffffff",endPointStrokeWidth:2,hitAreaThickness:30,resetDividerWhenOutOfRoom:!1,defaultExtension:20,defaultDirection:"horizontal"},detectedObject:{height:43,width:38,interactive:!1},heatmap:{cellSize:2,maxDistance:14,smoothIterations:10,heatmapAlpha:.8,colorGradients:["#FF3B30","#FF7A00","#FFA100","#FFD700","#99DD70","#2EC070","#40E0D0","#88D0E9"]},snapshot:{format:"png",quality:1,antialias:!0,resolution:window?.devicePixelRatio||1}},I={dividingRoomId:null,enableRoomSelection:!1,editingForbiddenSweepZoneIds:[],editingForbiddenMopZoneIds:[],editingCleanZoneIds:[],editingVirtualWallIds:[],editingSpotIds:[],roomPropertyFoldIds:[],roomSelectionMode:"checkmark",selectRoomIds:[],showRoomProperty:!1,showRoomOrder:!0,showRoomName:!0,showPath:!0,showChargingStation:!0,showRoomFloorType:!0,showCarpet:!0,showChargingStationRing:!1,showRobotRing:!1,showRobotSleepAnimation:!1};export{P as DEFAULT_CONFIG,I as DEFAULT_RUNTIME_CONFIG,w as TEXT_FONT_FAMILY};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e="MAIN",o=5e3;export{e as MAIN_INSTANCE_KEY,o as RASTER_CHUNK_SIZE};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=["areRoomsAdjacent","getForbiddenSweepZones","getForbiddenMopZones","getCleanZones","getVirtualWalls","getSpots","getViewportCenterPoint","getMapCenterPoint","getWallPointsByViewportCenter","getForbiddenSweepZonePointsByViewportCenter","getForbiddenMopZonePointsByViewportCenter","getCleanZonePointsByViewportCenter","getSpotPointByViewportCenter","getEffectiveDividerPoints","getDividerEndPoints","isPointInAnyRoom","resetPanZoom","snapshot","snapshotByData"],o=["onMapFirstDrawed","onMapDrawed","onPathDrawed","onRoomPropertiesDrawed","onClickRoom","onClickRoomProperties","onRemoveForbiddenSweepZone","onRemoveForbiddenMopZone","onRemoveCleanZone","onRemoveVirtualWall","onUpdateForbiddenSweepZone","onUpdateForbiddenMopZone","onUpdateCleanZone","onUpdateVirtualWall","onUpdateSpot","onUpdateDivider","onClickForbiddenSweepZone","onClickForbiddenMopZone","onClickCleanZone","onClickVirtualWall","onClickSpot","onClickDetectedObject","onClickCustomElement"];export{e as MAP_API_METHODS,o as MAP_CALLBACK_METHODS};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{LAYER_CONTROLS as e}from"../application/AppContainer.js";import{subscribeKey as t}from"../../../node_modules/valtio/esm/vanilla/utils.js";import{ForbiddenSweepZone as o}from"../components/Controls/ForbiddenSweepZone.js";import{ForbiddenMopZone as i}from"../components/Controls/ForbiddenMopZone.js";import{CleanZone as a}from"../components/Controls/CleanZone.js";import{VirtualWall as n}from"../components/Controls/VirtualWall.js";import{Spot as r}from"../components/Controls/Spot.js";import{Divider as s}from"../components/Controls/Divider.js";import{Logger as l}from"../utils/logger.js";import{useAppService as d}from"../application/AppService.js";class p{forbiddenSweepZoneMap=new Map;forbiddenMopZoneMap=new Map;cleanZoneMap=new Map;virtualWallMap=new Map;spotMap=new Map;divider=null;unsubscribeFns=[];constructor(){const e=d(),o=t(e.runtime,"editingForbiddenSweepZoneIds",e=>{l.log(`[runtime] editingForbiddenSweepZoneIds: ${e}`),this.updateZonesEditState(this.forbiddenSweepZoneMap)}),i=t(e.runtime,"editingForbiddenMopZoneIds",e=>{l.log(`[runtime] editingForbiddenMopZoneIds: ${e}`),this.updateZonesEditState(this.forbiddenMopZoneMap)}),a=t(e.runtime,"editingCleanZoneIds",e=>{l.log(`[runtime] editingCleanZoneIds: ${e}`),this.updateZonesEditState(this.cleanZoneMap)}),n=t(e.runtime,"editingVirtualWallIds",e=>{l.log(`[runtime] editingVirtualWallIds: ${e}`),this.updateVirtualWallsEditState(this.virtualWallMap)}),r=t(e.runtime,"editingSpotIds",e=>{l.log(`[runtime] editingSpotIds: ${e}`),this.updateSpotsEditState(this.spotMap)}),s=t(e.runtime,"dividingRoomId",e=>{l.log(`[runtime] dividingRoomId: ${e}`),this.handleDividingRoomIdChange(e)});this.unsubscribeFns.push(o,i,a,n,r,s)}updatePositionByOrigin(t,o){const i=d().appContainer.getLayer(e);i&&i.position.set(t,o)}drawForbiddenSweepZones(e){this.drawZones(e,this.forbiddenSweepZoneMap,e=>o.create(e))}getForbiddenSweepZones(){return this.getZonesData(this.forbiddenSweepZoneMap)}clearAllForbiddenSweepZones(){this.clearAllZones(this.forbiddenSweepZoneMap)}drawForbiddenMopZones(e){this.drawZones(e,this.forbiddenMopZoneMap,e=>i.create(e))}getForbiddenMopZones(){return this.getZonesData(this.forbiddenMopZoneMap)}clearAllForbiddenMopZones(){this.clearAllZones(this.forbiddenMopZoneMap)}drawCleanZones(e){this.drawZones(e,this.cleanZoneMap,e=>a.create(e))}getCleanZones(){return this.getZonesData(this.cleanZoneMap)}clearAllCleanZones(){this.clearAllZones(this.cleanZoneMap)}drawVirtualWalls(t){const o=d(),i=this.virtualWallMap,a=new Set(t.map(e=>e.id));for(const[t,n]of i)a.has(t)||(o.appContainer.removeFromLayer(e,n),n.destroy(),i.delete(t));t.forEach(t=>{const a=i.get(t.id);if(a)this.isWallDataEqual(a.getWallData(),t)||a.updateWallData(t);else{const a=new n({wallData:t,events:{onRemove:e=>{o.events?.onRemoveVirtualWall?.(e)},onUpdate:e=>{o.events?.onUpdateVirtualWall?.(e)},onClick:e=>{o.events?.onClickVirtualWall?.(e)}}});i.set(t.id,a),o.appContainer.addToLayer(e,a)}})}getVirtualWalls(){return this.getWallsData(this.virtualWallMap)}clearAllVirtualWalls(){this.clearAllWalls(this.virtualWallMap)}drawSpots(e){const t=this.spotMap;if(!e||0===e.length)return void this.clearAllSpotsInternal(t);const o=new Set(t.keys()),i=new Set(e.map(e=>e.id));for(const e of o)i.has(e)||this.removeSpot(e,t);e.forEach(e=>{const o=t.get(e.id);o?this.isSpotDataEqual(o.getSpotData(),e)||o.updateSpotData(e):this.addNewSpot(e,t)})}getSpots(){return this.getSpotsData(this.spotMap)}clearAllSpots(){this.clearAllSpotsInternal(this.spotMap)}drawZones(e,t,o){if(!e||0===e.length)return void this.clearAllZones(t);const i=new Set(t.keys()),a=new Set(e.map(e=>e.id));for(const e of i)a.has(e)||this.removeZone(e,t);e.forEach(e=>{const i=t.get(e.id);i?this.isZoneDataEqual(i.getZoneData(),e)||i.updateZoneData(e):this.addNewZone(e,t,o)})}addNewZone(t,o,i){const a=d(),n=i(t);o.set(t.id,n),a.appContainer.addToLayer(e,n)}removeZone(t,o){const i=d(),a=o.get(t);a&&(i.appContainer.removeFromLayer(e,a),a.destroy(),o.delete(t))}getZonesData(e){const t=[];return e.forEach(e=>{t.push(e.getZoneData())}),t}clearAllZones(e){e.forEach((t,o)=>{const i=e.get(o);i&&(i.parent?.removeChild(i),i.destroy())}),e.clear()}updateZonesEditState(e){e.forEach(e=>{e.updateEditState()})}updateVirtualWallsEditState(e){e.forEach(e=>{e.updateEditingState()})}isZoneDataEqual(e,t){if(e.id!==t.id)return!1;if(e.points.length!==t.points.length)return!1;for(let o=0;o<e.points.length;o++){const i=e.points[o],a=t.points[o];if(Math.abs(i.x-a.x)>.1||Math.abs(i.y-a.y)>.1)return!1}return!0}getWallsData(e){return Array.from(e.values()).map(e=>e.getWallData())}clearAllWalls(e){for(const t of e.values())t.destroy();e.clear()}isWallDataEqual(e,t){if(e.id!==t.id)return!1;if(e.points.length!==t.points.length)return!1;for(let o=0;o<e.points.length;o++){const i=e.points[o],a=t.points[o];if(Math.abs(i.x-a.x)>.1||Math.abs(i.y-a.y)>.1)return!1}return!0}addNewSpot(t,o){const i=d(),a=r.create(t);o.set(t.id,a),i.appContainer.addToLayer(e,a)}removeSpot(t,o){const i=d(),a=o.get(t);a&&(i.appContainer.removeFromLayer(e,a),a.destroy(),o.delete(t))}getSpotsData(e){const t=[];return e.forEach(e=>{t.push(e.getSpotData())}),t}clearAllSpotsInternal(e){e.forEach((t,o)=>{const i=e.get(o);i&&(i.parent?.removeChild(i),i.destroy())}),e.clear()}updateSpotsEditState(e){e.forEach(e=>{e.updateEditState()})}isSpotDataEqual(e,t){if(e.id!==t.id)return!1;const o=e.point,i=t.point;return!(Math.abs(o.x-i.x)>.1||Math.abs(o.y-i.y)>.1)}handleDividingRoomIdChange(e){null!=e&&this.getRoomGeometry(e)?this.createDefaultDivider(e):this.clearDivider()}getRoomGeometry(e){return d().mapManager.getRoomById(e)}createDefaultDivider(t){const o=d();this.clearDivider(),this.divider=new s({roomId:t,events:{onUpdate:e=>{o.events?.onUpdateDivider?.(e)}}}),o.appContainer.addToLayer(e,this.divider)}clearDivider(){this.divider&&(d().appContainer.removeFromLayer(e,this.divider),this.divider.destroy(),this.divider=null)}getDividerEndPoints(){return this.divider?this.divider.getDividerEndPoints():null}getEffectiveDividerPoints(){return this.divider?this.divider.getEffectiveDividerPoints():null}destroy(){this.clearAllForbiddenSweepZones(),this.clearAllForbiddenMopZones(),this.clearAllCleanZones(),this.clearAllVirtualWalls(),this.clearAllSpots(),this.clearDivider(),this.unsubscribeFns.forEach(e=>e()),this.unsubscribeFns=[]}}export{p as ControlsManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../node_modules/pixi.js/lib/index.js";import{CustomGif as e}from"../components/CustomElements/CustomGif.js";import{CustomImage as t}from"../components/CustomElements/CustomImage.js";import{CustomHTML as i}from"../components/CustomElements/CustomHTML.js";import{LAYER_CUSTOM_ELEMENT as s,LAYER_CUSTOM_ELEMENT_GIF as a}from"../application/AppContainer.js";import{Logger as o}from"../utils/logger.js";import{useAppService as n}from"../application/AppService.js";import{Assets as r}from"../../../node_modules/pixi.js/lib/assets/Assets.js";import{Ticker as m}from"../../../node_modules/pixi.js/lib/ticker/Ticker.js";class p{customElementsMap=new Map;gifTicker=null;gifElements=new Set;constructor(){}updatePositionByOrigin(e,t){const i=n(),o=i.appContainer.getLayer(s),r=i.appContainer.getLayer(a);o&&o.position.set(e,t),r&&r.position.set(e,t)}async drawCustomElements(e){if(!e||0===e.length)return void this.clearAllCustomElements();const t=new Set(e.map(e=>e.id)),i=Array.from(this.customElementsMap.keys());for(const e of i)t.has(e)||this.removeCustomElement(e);const s=e.map(async e=>{const t=this.customElementsMap.get(e.id);t?this.isSameData(t,e)||("gif"===e.type&&t.getElementData().src!==e.src?(this.removeCustomElement(e.id),await this.addNewCustomElement(e)):await this.updateElementData(t,e)):await this.addNewCustomElement(e)});await Promise.all(s),this.updateGifTicker()}clearAllCustomElements(){const t=n();this.customElementsMap.forEach(i=>{i instanceof e?t.appContainer.removeFromLayer(a,i):t.appContainer.removeFromLayer(s,i),i.destroy()}),this.customElementsMap.clear(),this.gifElements.clear(),this.stopGifTicker()}async addNewCustomElement(o){const m=n();let p;switch(o.type){case"image":p=new t(o);break;case"gif":{const t=await r.load(o.src);p=new e(t,o);break}case"html":p=new i(o);break;default:throw new Error(`Unsupported custom element type: ${o.type}`)}await p.initialize(),this.customElementsMap.set(o.id,p),p instanceof e?(m.appContainer.addToLayer(a,p),this.gifElements.add(p)):m.appContainer.addToLayer(s,p)}removeCustomElement(t){const i=n(),o=this.customElementsMap.get(t);o&&(o instanceof e?(this.gifElements.delete(o),i.appContainer.removeFromLayer(a,o)):i.appContainer.removeFromLayer(s,o),o.destroy(),this.customElementsMap.delete(t))}isSameData(s,a){return s.getElementData().type===a.type&&("image"===a.type&&s instanceof t||"gif"===a.type&&s instanceof e||"html"===a.type&&s instanceof i)&&s.isSameData(a)}async updateElementData(s,a){if("image"===a.type&&s instanceof t)await s.updateElementData(a);else if("gif"===a.type&&s instanceof e)await s.updateElementData(a);else{if(!("html"===a.type&&s instanceof i))throw new Error("Element type mismatch during update");await s.updateElementData(a)}}updateGifTicker(){this.gifElements.size>0?this.startGifTicker():this.stopGifTicker()}startGifTicker(){this.gifTicker?.started||(this.gifTicker?this.gifTicker.maxFPS=1:(this.gifTicker=new m,this.gifTicker.maxFPS=1,this.gifTicker.add(()=>{this.renderGifContainer()})),this.gifTicker.start())}stopGifTicker(){this.gifTicker?.started&&(o.log("⏸️ [GifTicker] 停止 GIF 专用渲染"),this.gifTicker.stop())}renderGifContainer(){const e=n();if(0===this.gifElements.size)return;const t=e.getApp();t.renderer.render(t.stage)}destroy(){this.stopGifTicker(),this.gifTicker&&(this.gifTicker.destroy(),this.gifTicker=null),this.clearAllCustomElements()}}export{p as CustomElementsManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{LAYER_DETECTED_OBJECT as e}from"../application/AppContainer.js";import{DetectedObject as t}from"../components/DetectedObject/index.js";import{useAppService as a}from"../application/AppService.js";class c{detectedObjectMap=new Map;updatePositionByOrigin(t,c){const i=a().appContainer.getLayer(e);i&&i.position.set(t,c)}async drawDetectedObjects(e){if(!e||0===e.length)return void this.clearAllDetectedObjects();const t=new Set(e.map(e=>e.id)),a=Array.from(this.detectedObjectMap.keys());for(const e of a)t.has(e)||this.removeDetectedObject(e);for(const t of e){const e=this.detectedObjectMap.get(t.id);e?e.isSameData(t)||await e.updateObjectData(t):await this.addNewDetectedObject(t)}}clearAllDetectedObjects(){const t=a();this.detectedObjectMap.forEach(a=>{t.appContainer.removeFromLayer(e,a),a.destroy()}),this.detectedObjectMap.clear()}async addNewDetectedObject(c){const i=a(),o=new t(c);await o.initializeSprite(),this.detectedObjectMap.set(c.id,o),i.appContainer.addToLayer(e,o)}removeDetectedObject(t){const c=a(),i=this.detectedObjectMap.get(t);i&&(c.appContainer.removeFromLayer(e,i),i.destroy(),this.detectedObjectMap.delete(t))}destroy(){this.clearAllDetectedObjects()}}export{c as DetectedObjectManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Heatmap as t}from"../components/Heatmap/index.js";import{useAppService as i}from"../application/AppService.js";class a{heatmap=new t;pointsTopLeftOrigin=[];signalGrid=[];cellSize=2;maxDistance=14;smoothIterations=10;heatmapAlpha=.8;constructor(){const t=i().heatMapConfig;this.cellSize=t.cellSize,this.maxDistance=t.maxDistance,this.smoothIterations=t.smoothIterations,this.heatmapAlpha=t.heatmapAlpha}draw({mapData:t,heatmapPoints:a,useGradient:e=!0}){const s=i(),l=t.origin[0],n=t.origin[1],{minX:o,minY:h}=s.mapManager.mapBounds,r=a.map(t=>({x:+(l+t.x-o).toFixed(0),y:+(n+t.y-h).toFixed(0),signal:t.signal}));this.signalGrid=this.calculateInterpolatedSignal(r),this.heatmap.draw(this.signalGrid,e,this.heatmapAlpha)}calculateInterpolatedSignal(t){const a=i(),{minX:e,minY:s,maxX:l,maxY:n}=a.mapManager.mapBounds,o=Math.ceil((n-s)/this.cellSize),h=Math.ceil((l-e)/this.cellSize),r=Array(o).fill(null).map(()=>Array(h).fill(null));for(let i=0;i<o;i++){const a=s+i*this.cellSize+this.cellSize/2,o=Math.min(this.cellSize,n-(a-this.cellSize/2));for(let s=0;s<h;s++){const n=e+s*this.cellSize+this.cellSize/2,h=Math.min(this.cellSize,l-(n-this.cellSize/2));let c=0,m=!1;for(let i=0;i<t.length;i++){const e=t[i];if(Math.abs(n-e.x)<=h/2&&Math.abs(a-e.y)<=o/2){const t=1-e.signal/7;c=Math.round(10*Math.max(c,t))/10,m=!0}}r[i][s]={x:n,y:a,signal:c,hasPoint:m}}}const c=(i,a)=>{if(0===t.length)return 0;let e=0,s=0;for(const l of t){const t=Math.sqrt((i-l.x)**2+(a-l.y)**2);if(t<=this.maxDistance){const i=1/(1+t);s+=i*(1-l.signal/7),e+=i}}return 0===e?0:Math.round(s/e*1e3)/1e3};for(let t=0;t<o;t++)for(let i=0;i<h;i++){const a=r[t][i];a.hasPoint||(a.signal=c(a.x,a.y))}return((t,i=1)=>{for(let a=0;a<i;a++){const i=t.map(t=>[...t]);for(let a=1;a<o-1;a++)for(let e=1;e<h-1;e++)if(!t[a][e].hasPoint){let s=0,l=0;const n=4;for(let i=-n;i<=n;i++)for(let r=-n;r<=n;r++){if(0===i&&0===r)continue;const n=a+i,c=e+r;if(n>=0&&n<o&&c>=0&&c<h){const a=1/(1+.3*Math.sqrt(i*i+r*r));s+=t[n][c].signal*a,l+=a}}if(l>0){const n=s/l,o=.6,h=.4;i[a][e].signal=t[a][e].signal*o+n*h,i[a][e].signal>.1&&(i[a][e].signal=Math.max(i[a][e].signal,.2))}}for(let a=0;a<o;a++)for(let e=0;e<h;e++)t[a][e].signal=i[a][e].signal}})(r,this.smoothIterations),r}}export{a as HeatmapManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Logger as o}from"../utils/logger.js";import"../../../node_modules/pixi.js/lib/index.js";import{calculateRasterMapBounds as t,generateOutlineData as e,calculateRoomCenterPoint as r,mergeBounds as s,calculateRasterRoomCenter as i,fourColorGreedyAlgorithm as a,areStructuredRoomsAdjacent as n,areRasterRoomsAdjacent as l}from"../utils/algorithm.js";import{Obstacle as c}from"../components/Map/Obstacle.js";import{RoomFill as m}from"../components/Map/RoomFill.js";import{Carpet as h}from"../components/Map/Carpet.js";import{Free as p}from"../components/Map/Free.js";import{ChargingStation as u}from"../components/ChargingStation/index.js";import{subscribeKey as d}from"../../../node_modules/valtio/esm/vanilla/utils.js";import{SPECIAL_ROOM_IDS as g}from"../../../node_modules/@ray-js/robot-protocol/dist/index.js";import{useAppService as f}from"../application/AppService.js";import x from"../../../node_modules/lodash-es/isEqual.js";import{Rectangle as C}from"../../../node_modules/pixi.js/lib/maths/shapes/Rectangle.js";class M{obstacle=new c;free=new p;roomFill=new m;carpet=new h;chargingStation=new u;mapBounds={minX:0,minY:0,maxX:0,maxY:0};lastMapId=null;roomGeometryMap=new Map;rasterRoomPixelsMap=new Map;fourColorCache=null;carpetData=null;unsubscribeFns=[];constructor(){const t=f();this.validateColorConfig();const e=d(t.runtime,"enableRoomSelection",e=>{if(o.log(`[runtime] enableRoomSelection: ${e}`),e){this.roomFill.setAllRoomsState(!1);const o=t.runtimeSnapshot.selectRoomIds;this.roomFill.setRoomStateBySelectIds(o)}else this.roomFill.setAllRoomsState(!0)}),r=d(t.runtime,"selectRoomIds",t=>{o.log(`[runtime] selectRoomIds: ${t}`),this.roomFill.setRoomStateBySelectIds(t)}),s=d(t.runtime,"showChargingStation",t=>{o.log(`[runtime] showChargingStation: ${t}`),this.chargingStation.visible=t}),i=d(t.runtime,"showCarpet",t=>{o.log(`[runtime] showCarpet: ${t}`),t?this.createCarpet():this.carpet.clearCarpet()});this.unsubscribeFns.push(e,r,s,i)}async drawMap(t){const e=f(),{id:r,obstacles:s,free:i,rooms:a,charger:n,carpet:l}=t;this.clearComponents(),this.resetGeometryData();const c=this.processRoomsGeometry(a);this.roomFill.draw(c),this.free.draw(i),this.obstacle.draw(s),this.carpetData={type:"structured",carpetData:l},this.createCarpet();const m=this.mergeLayerBounds();x(m,this.mapBounds)||(o.debug("[Map] Map bounds updated:",m),this.mapBounds=m,this.lastMapId!==r&&(e.getApp().fitMapToView(this.mapBounds),this.lastMapId=r));const h=((t.charger.angle??0)+e.chargingStationConfig.rotationCorrection)*Math.PI/180;return await this.chargingStation.draw({x:n.coordinate[0],y:n.coordinate[1],rotation:h}),e.roomsManager.refresh(),!0}async drawRasterMap(e,r){const s=f();this.clearComponents();const{id:i,width:a,height:n,charger:l,chargerDirection:c}=r;o.debug("[Map] Parsed Raster Map Data",e),this.obstacle.drawRaster(e.obstacles,a),this.carpetData={type:"raster",carpetPixels:e.carpet,mapWidth:a},this.createCarpet();const m=this.processRasterData(e);this.roomFill.drawRaster(m);const h=t(e,a,n);x(h,this.mapBounds)||(o.debug("[Map] Raster map bounds updated:",h),this.mapBounds=h,this.lastMapId!==i&&(s.getApp().fitMapToView(this.mapBounds),this.lastMapId=i));const p=(c+s.chargingStationConfig.rotationCorrection)*Math.PI/180;return await this.chargingStation.draw({x:l.x,y:l.y,rotation:p}),this.generateRoomGeometryFromRaster(e),s.roomsManager.refresh(),!0}resetGeometryData(){this.roomGeometryMap.clear(),this.rasterRoomPixelsMap.clear(),this.fourColorCache=null,this.mapBounds={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}async createCarpet(){if(f().runtimeSnapshot.showCarpet&&this.carpetData)if("raster"===this.carpetData.type){const{carpetPixels:o,mapWidth:t}=this.carpetData;await this.carpet.createCarpetFromRasterData(o,t)}else if("structured"===this.carpetData.type){const{carpetData:o}=this.carpetData;await this.carpet.createCarpetFromStructuredData(o)}}processRoomsGeometry(o){if(!o)return[];const t=f(),{active:s}=t.roomConfig.colors,i=t.roomConfig.colors[g.UNKNOWN_ROOM];if(0===Object.keys(o).length)return this.mapBounds={minX:0,minY:0,maxX:0,maxY:0},[];const a=Object.keys(o).sort((o,t)=>Number(o)-Number(t)),n=a.filter(o=>Number(o)<255),l=a.filter(o=>Number(o)>=255),c=[],m=[];n.forEach(t=>{const{coordinates:s}=o[t];if(s.length<4)return;const i=Number(t);let a=1/0,n=1/0,l=-1/0,c=-1/0;const h=[];for(let o=0;o<s.length;o+=2){const t=s[o],e=s[o+1];a=Math.min(a,t),n=Math.min(n,e),l=Math.max(l,t),c=Math.max(c,e),h.push({x:t,y:e})}const p=new C(a,n,l-a+1,c-n+1),u=e(h),d=u.flatMap(o=>[o.x+.5,o.y+.5]),g=r(u,a,n,l,c);m.push({id:i,points:h,outlinePoints:u,polyPoints:d,centerPoint:g,boundingBox:p}),this.mapBounds.minX=Math.min(this.mapBounds.minX,a),this.mapBounds.minY=Math.min(this.mapBounds.minY,n),this.mapBounds.maxX=Math.max(this.mapBounds.maxX,l),this.mapBounds.maxY=Math.max(this.mapBounds.maxY,c)});const h=[...m].sort((o,t)=>{const e=o.outlinePoints.length;return t.outlinePoints.length-e}),p=this.assignColorsUsingFourColorAlgorithm(h,s.length,"structured");return m.forEach(o=>{const t=p.get(o.id)||0,e=s[t],r={id:o.id,color:e,colorIndex:t,boundingBox:o.boundingBox,points:o.points,outlinePoints:o.outlinePoints,polyPoints:o.polyPoints,centerPoint:o.centerPoint};this.roomGeometryMap.set(o.id,r),c.push(r)}),l.forEach(t=>{const{coordinates:s}=o[t];if(s.length<4)return;const a=Number(t);let n=1/0,l=1/0,m=-1/0,h=-1/0;const p=[];for(let o=0;o<s.length;o+=2){const t=s[o],e=s[o+1];n=Math.min(n,t),l=Math.min(l,e),m=Math.max(m,t),h=Math.max(h,e),p.push({x:t,y:e})}const u=new C(n,l,m-n+1,h-l+1),d=e(p),g=d.flatMap(o=>[o.x+.5,o.y+.5]),f=r(d,n,l,m,h),x={id:a,color:i,boundingBox:u,points:p,outlinePoints:d,polyPoints:g,centerPoint:f};c.push(x),this.mapBounds.minX=Math.min(this.mapBounds.minX,n),this.mapBounds.minY=Math.min(this.mapBounds.minY,l),this.mapBounds.maxX=Math.max(this.mapBounds.maxX,m),this.mapBounds.maxY=Math.max(this.mapBounds.maxY,h)}),c}mergeLayerBounds(){let o={...this.mapBounds};if(this.obstacle.bounds&&(o=s(o,this.obstacle.bounds)),this.roomFill.children.length>0){const t=this.roomFill.getLocalBounds();t.width>0&&t.height>0&&(o=s(o,{minX:t.x,minY:t.y,maxX:t.x+t.width,maxY:t.y+t.height}))}return o}getRoomById(o){return this.roomGeometryMap.get(o)}getAllRooms(){return Array.from(this.roomGeometryMap.values())}clearComponents(){this.obstacle.clear(),this.obstacle.destroy(),this.obstacle=new c,this.free.clear(),this.free.destroy(),this.free=new p,this.carpet.clearCarpet(),this.carpetData=null,this.roomFill.removeChildren(),this.roomFill.destroy(),this.roomFill=new m}processRasterData(o){const t=f().roomConfig,e=[],r=[];o.rooms.forEach((o,t)=>{"number"==typeof t?e.push([t,o]):r.push([t,o])}),e.sort(([o],[t])=>o-t);const s=e.map(([o,t])=>({id:o,pixels:t})).sort((o,t)=>t.pixels.length-o.pixels.length),i=this.assignColorsUsingFourColorAlgorithm(s,t.colors.active.length,"raster"),a=[...e.map(([o,e])=>{const r=i.get(o)||0;return{roomId:o,pixelIndices:e,activeColor:t.colors.active[r],inactiveColor:t.colors.inactive[r%t.colors.inactive.length],colorIndex:r}}),...r.map(([o,e])=>{const r=t.colors[o]||"#ebebeb";return{roomId:o,pixelIndices:e,activeColor:r,inactiveColor:r}})];return{obstacles:o.obstacles,carpet:o.carpet,sortedRooms:a,width:o.width,height:o.height,totalPixels:o.totalPixels}}generateRoomGeometryFromRaster(o){const t=f();this.roomGeometryMap.clear(),this.rasterRoomPixelsMap.clear();const{active:e}=t.roomConfig.colors,r=[];o.rooms.forEach((o,t)=>{"number"==typeof t&&r.push(t)}),r.sort((o,t)=>o-t);const s=[];r.forEach(t=>{const e=o.rooms.get(t);this.rasterRoomPixelsMap.set(t,e);let r=1/0,a=1/0,n=-1/0,l=-1/0;for(let t=0;t<e.length;t++){const s=e[t],i=s%o.width,c=Math.floor(s/o.width);r=Math.min(r,i),a=Math.min(a,c),n=Math.max(n,i),l=Math.max(l,c)}const c=i(e,o.width,r,a,n,l),m=new C(r,a,n-r+1,l-a+1);s.push({id:t,pixelIndices:e,boundingBox:m,centerPoint:c})});const a=[...s].sort((o,t)=>t.pixelIndices.length-o.pixelIndices.length),n=this.assignColorsUsingFourColorAlgorithm(a,e.length,"raster");s.forEach(o=>{const t=n.get(o.id)||0,r=e[t],s={id:o.id,color:r,colorIndex:t,boundingBox:o.boundingBox,points:[],outlinePoints:[],polyPoints:[],centerPoint:o.centerPoint};this.roomGeometryMap.set(o.id,s)})}getRasterRoomPixels(o){return this.rasterRoomPixelsMap.get(o)}validateColorConfig(){const t=f().roomConfig.colors,e=t.active.length,r=t.inactive.length,s=t.name.length,i=t.propertyTheme.length,a=t.selectionIndicatorBackground.length,n=t.selectionIndicatorIcon.length;e<4&&o.warn(`[FourColor] room.colors.active requires at least 4 colors for the four-color theorem, but got ${e}. Adjacent rooms may have the same color.`),r!==e&&o.warn(`[FourColor] room.colors.inactive length (${r}) does not match room.colors.active length (${e}). Using modulo for color assignment.`),s!==e&&o.warn(`[FourColor] room.colors.name length (${s}) does not match room.colors.active length (${e}). Using modulo for color assignment.`),i!==e&&o.warn(`[FourColor] room.colors.propertyTheme length (${i}) does not match room.colors.active length (${e}). Using modulo for color assignment.`),a!==e&&o.warn(`[FourColor] room.colors.selectionIndicatorBackground length (${a}) does not match room.colors.active length (${e}). Using modulo for color assignment.`),n!==e&&o.warn(`[FourColor] room.colors.selectionIndicatorIcon length (${n}) does not match room.colors.active length (${e}). Using modulo for color assignment.`)}assignColorsUsingFourColorAlgorithm(t,e,r){const s=f(),i=s.mapState?.id??null;if(this.fourColorCache&&this.fourColorCache.mapId===i&&this.fourColorCache.colorMap.size===t.length)return o.debug("[FourColor] Using cached color map"),this.fourColorCache.colorMap;const c=s.getApp().config.map.adjacencyThreshold||3;o.debug(`[FourColor] Starting algorithm for ${t.length} rooms with ${e} colors`);const m=a(t,(o,t)=>{if("structured"===r){const e=o.outlinePoints,r=t.outlinePoints;return!(!e||!r)&&n(e,r,c)}{const e=o.pixels,r=t.pixels;if(!e||!r)return!1;const i=s.mapState?.width||0;return l(e,r,i,c)}},e);this.fourColorCache={mapId:i,colorMap:m};const h=new Array(e).fill(0);return m.forEach(o=>{h[o]++}),o.debug("[FourColor] Color distribution:",h),m}destroy(){this.obstacle.destroy(),this.free.destroy(),this.roomFill.destroy(),this.carpet.destroy(),this.chargingStation.destroy(),this.unsubscribeFns.forEach(o=>o()),this.unsubscribeFns=[],this.fourColorCache=null}}export{M as MapManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{subscribeKey as t}from"../../../node_modules/valtio/esm/vanilla/utils.js";import{Path as o}from"../components/Path/index.js";import{Robot as s}from"../components/Robot/index.js";import{Logger as i}from"../utils/logger.js";import{useAppService as a}from"../application/AppService.js";class n{path;robot;unsubscribeFns=[];lastDrawnPathData=null;constructor(){const n=a();this.path=new o,this.robot=new s;const e=t(n.runtime,"showPath",t=>{i.log(`[runtime] showPath: ${t}`),this.path.visible=t,this.robot.visible=t});this.unsubscribeFns.push(e)}draw(t){this.shouldUseIncrementalDraw(t)?this.incrementalDraw(t):this.fullDraw(t),this.lastDrawnPathData=t}shouldUseIncrementalDraw(t){const o=a();if(!this.lastDrawnPathData)return!1;const s=t.pathHeader?.pathId,i=this.lastDrawnPathData.pathHeader?.pathId;if(s!==i)return!1;const n=(t.pathPoints?.length||0)-(this.lastDrawnPathData.pathPoints?.length||0),e=o.pathConfig.incrementalThreshold;return!(n<=0||n>e)}fullDraw(t){if(this.path.stopRealTimeDrawing(),this.path.drawFull(t),t.pathPoints&&t.pathPoints.length>0){const o=t.pathPoints[t.pathPoints.length-1];this.moveRobotToPoint(o,t.pathHeader.direction,!1)}}convertToRobotPoint(t,o){const s=o+a().robotConfig.rotationCorrection;return{x:t.x,y:t.y,rotation:s*Math.PI/180,type:t.type}}moveRobotToPoint(t,o,s=!0){const i=this.convertToRobotPoint(t,o);s?this.robot.moveTo(i):(this.robot.remove(),this.robot.draw(i))}incrementalDraw(t){const o=a();if(!this.lastDrawnPathData||!t.pathPoints)return;this.path.drawIncremental(t);const s=this.lastDrawnPathData.pathPoints?.length||0,i=t.pathPoints.slice(s);if(0!==i.length)if(o.robotConfig.speed>0)i.forEach(o=>{this.moveRobotToPoint(o,t.pathHeader.direction,!0)});else{const o=i[i.length-1];this.moveRobotToPoint(o,t.pathHeader.direction,!1)}}batchProcessRobotQueue(t=!1){this.robot.batchProcessQueue(t)}updatePositionByOrigin(t,o){this.path.updatePositionByOrigin(t,o),this.robot.updatePositionByOrigin(t,o)}destroy(){this.unsubscribeFns.forEach(t=>t()),this.unsubscribeFns=[],this.path.destroy(),this.robot.destroy()}}export{n as PathManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../node_modules/pixi.js/lib/index.js";import{LAYER_ROOM_INFO as o}from"../application/AppContainer.js";import{RoomInfo as t}from"../components/RoomInfo/index.js";import{RoomFloorType as e}from"../components/RoomFloorType/index.js";import{subscribeKey as i}from"../../../node_modules/valtio/esm/vanilla/utils.js";import{Logger as r}from"../utils/logger.js";import{Container as s}from"../../../node_modules/pixi.js/lib/scene/container/Container.js";import{useAppService as n}from"../application/AppService.js";class a{unsubscribeFns=[];roomInfoContainer=new s;roomInfoMap=new Map;roomDisplayMap=new Map;roomFloorType=new e;constructor(){const t=n();t.appContainer.addToLayer(o,this.roomInfoContainer);const e=i(t.runtime,"showRoomFloorType",o=>{r.log(`[runtime] showRoomFloorType: ${o}`),o?this.updateFloorTypes():this.roomFloorType.clearFloorTypes()}),s=i(t.runtime,"showRoomProperty",o=>{r.log(`[runtime] showRoomProperty: ${o}`),this.updateAllRoomPropertyVisibility()}),a=i(t.runtime,"showRoomOrder",o=>{r.log(`[runtime] showRoomOrder: ${o}`),this.updateAllRoomPropertyVisibility()}),l=i(t.runtime,"roomPropertyFoldIds",o=>{r.log(`[runtime] roomPropertyFoldIds: ${o}`),this.updateAllRoomPropertyVisibility()}),m=i(t.runtime,"showRoomName",o=>{r.log(`[runtime] showRoomName: ${o}`),this.updateAllRoomNameVisibility(o)}),p=i(t.runtime,"enableRoomSelection",o=>{r.log(`[runtime] enableRoomSelection: ${o}`),this.updateAllRoomPropertyVisibility(),this.updateAllRoomSelectionIndicatorVisibility()}),c=i(t.runtime,"selectRoomIds",o=>{r.log(`[runtime] selectRoomIds: ${o}`),this.updateAllRoomPropertyVisibility(),this.updateAllRoomSelectionIndicatorVisibility()}),d=i(t.runtime,"roomSelectionMode",o=>{r.log(`[runtime] roomSelectionMode: ${o}`),this.updateAllRoomPropertyVisibility(),this.updateAllRoomSelectionIndicatorVisibility()});this.unsubscribeFns.push(e,s,a,l,m,p,c,d)}drawRoomProperty(o){const t=n();return this.roomDisplayMap.clear(),o.forEach((o,e)=>{const i=t.mapManager.getRoomById(o.id),r={...o,centerPoint:i?.centerPoint||null,index:e,colorIndex:i?.colorIndex};this.roomDisplayMap.set(o.id,r)}),this.updateRoomInfoDisplay(),this.updateFloorTypes(),!0}updateRoomInfoDisplay(){if(0===this.roomDisplayMap.size)return;const o=Array.from(this.roomDisplayMap.values()).filter(o=>null!==o.centerPoint);this.clearRoomInfos(),o.forEach(o=>{this.createRoomInfo(o)})}createRoomInfo(o){const e=new t(o);this.roomInfoContainer.addChild(e),this.roomInfoMap.set(o.id,e)}updateRoomName(o,t){const e=this.roomInfoMap.get(o);e&&e.updateName(t)}updateRoomPosition(o,t){const e=this.roomDisplayMap.get(o);e&&(e.centerPoint=t);const i=this.roomInfoMap.get(o);i&&i.updatePosition(t)}clearRoomInfos(){this.roomInfoMap.forEach(o=>{o.destroy()}),this.roomInfoMap.clear(),this.roomInfoContainer.removeChildren()}getRoomPropertyById(o){return this.roomDisplayMap.get(o)}refresh(){const o=n();this.roomFloorType.clearFloorTypes(),this.roomDisplayMap.forEach((t,e)=>{const i=o.mapManager.getRoomById(e),r=i?.centerPoint||null;if(t.centerPoint!==r){t.centerPoint=r;const o=this.roomInfoMap.get(e);o&&r&&o.updatePosition(r)}const s=i?.colorIndex;if(t.colorIndex!==s&&void 0!==s){t.colorIndex=s;const o=this.roomInfoMap.get(e);o&&o.refreshColor()}}),this.updateRoomInfoDisplay(),this.updateFloorTypes()}updateAllRoomPropertyVisibility(){this.roomInfoMap.forEach(o=>{o.updateRoomPropertyVisibility()})}updateAllRoomNameVisibility(o){this.roomInfoMap.forEach(t=>{t.updateRoomNameVisibility(o)})}updateAllRoomSelectionIndicatorVisibility(){this.roomInfoMap.forEach(o=>{o.updateRoomSelectionIndicatorVisibility()})}async updateFloorTypes(){const o=n(),t=o.mapManager.roomFill.getRoomGraphicsMap();t.size>0&&(await this.roomFloorType.createFloorTypes(t),o.getApp().renderOnceNextFrame())}destroy(){this.clearRoomInfos(),this.roomInfoContainer.destroy(),this.roomFloorType.destroy(),this.unsubscribeFns.forEach(o=>o()),this.unsubscribeFns=[]}}export{a as RoomManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
class t{target;isPointerDown=!1;pointerDownPos=null;clickThreshold;stopPropagation;clickCallback=null;constructor(t,i={}){this.target=t,this.clickThreshold=i.clickThreshold??10,this.stopPropagation=i.stopPropagation??!1,this.clickCallback=i.onClick||null,this.setup()}setup(){this.target.interactive=!0,this.target.eventMode="static",this.target.on("pointerdown",this.handlePointerDown.bind(this)),this.target.on("pointermove",this.handlePointerMove.bind(this)),this.target.on("pointerup",this.handlePointerUp.bind(this)),this.target.on("pointerupoutside",this.handlePointerUpOutside.bind(this))}handlePointerDown(t){this.stopPropagation&&t.stopPropagation(),this.isPointerDown=!0,this.pointerDownPos={x:t.globalX,y:t.globalY}}handlePointerMove(t){if(this.stopPropagation&&t.stopPropagation(),this.isPointerDown&&this.pointerDownPos){const i=t.globalX-this.pointerDownPos.x,o=t.globalY-this.pointerDownPos.y;Math.sqrt(i*i+o*o)>this.clickThreshold&&(this.isPointerDown=!1,this.pointerDownPos=null)}}handlePointerUp(t){if(this.stopPropagation&&t.stopPropagation(),this.isPointerDown&&this.pointerDownPos){const i=t.globalX-this.pointerDownPos.x,o=t.globalY-this.pointerDownPos.y;Math.sqrt(i*i+o*o)<=this.clickThreshold&&this.clickCallback&&this.clickCallback(t,this.target)}this.isPointerDown=!1,this.pointerDownPos=null}handlePointerUpOutside(){this.isPointerDown=!1,this.pointerDownPos=null}setClickCallback(t){return this.clickCallback=t,this}setClickThreshold(t){return this.clickThreshold=t,this}getTarget(){return this.target}isInteracting(){return this.isPointerDown}destroy(){this.target.off("pointerdown",this.handlePointerDown),this.target.off("pointermove",this.handlePointerMove),this.target.off("pointerup",this.handlePointerUp),this.target.off("pointerupoutside",this.handlePointerUpOutside),this.clickCallback=null}}export{t as ClickHandler};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const t=t=>{if(t.length<=1)return[...t];const r=n(t),x=r.slice(1).map((t,n)=>({prev:r[n],current:t})),o=new Map;return x.forEach(({prev:t,current:n})=>{e(t,n).forEach(t=>{const n=`${t.x},${t.y}`;o.has(n)||o.set(n,t)})}),Array.from(o.values())},n=t=>{if(t.length<=1)return[...t];const n=t[0],e=t[t.length-1];return n.x===e.x&&n.y===e.y?[...t]:[...t,n]},e=(t,n)=>{const e=[],r=Math.abs(n.x-t.x),x=Math.abs(n.y-t.y),o=t.x<n.x?1:-1,a=t.y<n.y?1:-1;let y=r-x,h=t.x,s=t.y;for(;e.push({x:h,y:s}),h!==n.x||s!==n.y;){const t=2*y;t>-x&&(y-=x,h+=o),t<r&&(y+=r,s+=a)}return e},r=(t,n)=>{let e=0,r=t.length-1;for(;e<=r;){const x=Math.floor((e+r)/2),o=t[x];if(o===n)return!0;o<n?e=x+1:r=x-1}return!1},x=(t,n,e=1,r=2e3)=>{const x=[],o=n.x-t.x,a=n.y-t.y,y=Math.sqrt(o*o+a*a);if(0===y)return[t];const h=Math.min(Math.max(Math.ceil(y/e),2),r);for(let n=0;n<=h;n++){const e=n/h,r={x:t.x+e*o,y:t.y+e*a};x.push(r)}return x},o=(t,n,e,r,x,o=8)=>{const h={x:(n+r)/2,y:(e+x)/2},i=r-n,c=x-e,l=Math.min(o,.2*Math.min(i,c));return s(h,t)&&y(h,t)>=l?h:a(t,h,l)},a=(t,n,e)=>{const{minX:r,minY:x,maxX:o,maxY:a}=l(t),h=o-r,i=a-x,c=n.x,f=n.y,m=Math.min(.5,.05*Math.min(h,i)),u=[];if(s({x:c,y:f},t)){const n=y({x:c,y:f},t);u.push({point:{x:c,y:f},distance:n,centerDistance:0})}const g=.6*Math.max(h,i),d=Math.PI/16;for(let n=m;n<=g;n+=m){const h=d*(1+n/g);for(let i=0;i<2*Math.PI;i+=h){const h=c+n*Math.cos(i),l=f+n*Math.sin(i);if(h>=r&&h<=o&&l>=x&&l<=a){const n={x:h,y:l};if(s(n,t)){const r=y(n,t),x=M({x:h,y:l},{x:c,y:f});r>=e&&u.push({point:n,distance:r,centerDistance:x})}}}if(u.length>=15)break}if(u.length>0){const t=u.map(t=>({...t,score:1.5*t.distance-.5*t.centerDistance}));return t.sort((t,n)=>n.score-t.score),t[0].point}if(0===u.length){let n={x:c,y:f},e=0;const h=2*m;for(let i=r;i<=o;i+=h)for(let r=x;r<=a;r+=h){const x={x:i,y:r};if(s(x,t)){const r=y(x,t);r>e&&(e=r,n=x)}}return n}return{x:c,y:f}},y=(t,n)=>{let e=1/0;for(let r=0,x=n.length-1;r<n.length;x=r++){const o=n[x],a=n[r],y=h(t,o,a);e=Math.min(e,y)}return e},h=(t,n,e)=>{const r=(n.x-e.x)**2+(n.y-e.y)**2;if(0===r)return M(t,n);const x=Math.max(0,Math.min(1,((t.x-n.x)*(e.x-n.x)+(t.y-n.y)*(e.y-n.y))/r)),o=n.x+x*(e.x-n.x),a=n.y+x*(e.y-n.y);return M(t,{x:o,y:a})},s=(t,n,e=!1)=>{if(n.length<3)return!1;if(e&&i(t,n))return!0;let r=!1;for(let e=0,x=n.length-1;e<n.length;x=e++){const o=n[e].x,a=n[e].y,y=n[x].x,h=n[x].y;a>t.y!=h>t.y&&t.x<(y-o)*(t.y-a)/(h-a)+o&&(r=!r)}return r},i=(t,n)=>{if(n.length<2)return!1;for(let e=0;e<n.length;e++){const r=(e+1)%n.length;if(c(t,n[e],n[r]))return!0}return!1},c=(t,n,e,r=.5)=>{if(h(t,n,e)>r)return!1;const x=Math.min(n.x,e.x)-r,o=Math.max(n.x,e.x)+r,a=Math.min(n.y,e.y)-r,y=Math.max(n.y,e.y)+r;return t.x>=x&&t.x<=o&&t.y>=a&&t.y<=y},l=t=>{if(0===t.length)return{minX:0,minY:0,maxX:0,maxY:0};let n=1/0,e=1/0,r=-1/0,x=-1/0;for(const o of t)n=Math.min(n,o.x),e=Math.min(e,o.y),r=Math.max(r,o.x),x=Math.max(x,o.y);return{minX:n,minY:e,maxX:r,maxY:x}},f=t=>{const n=t.reduce((t,n)=>({x:t.x+n.x,y:t.y+n.y}),{x:0,y:0});return{x:n.x/t.length,y:n.y/t.length}},m=t=>{if(4!==t.length)return t;const n=f(t),e=M(t[0],t[1]),r=M(t[1],t[2]),x=Math.atan2(t[1].y-t[0].y,t[1].x-t[0].x),o=[{x:-e/2,y:-r/2},{x:e/2,y:-r/2},{x:e/2,y:r/2},{x:-e/2,y:r/2}],a=Math.cos(x),y=Math.sin(x);return o.map(t=>({x:t.x*a-t.y*y+n.x,y:t.x*y+t.y*a+n.y}))},u=(t,n,e,r=10)=>{if(0===e)return 1;const x=(t.x*n.x+t.y*n.y)/e/e,o=r/e;return x<=0?o:Math.max(x,o)},M=(t,n)=>{const e=t.x-n.x,r=t.y-n.y;return Math.sqrt(e*e+r*r)},g=t=>Math.sqrt(t.x*t.x+t.y*t.y),d=(t,n)=>({x:n.x-t.x,y:n.y-t.y}),p=t=>{const n=g(t);return 0===n?{x:0,y:0}:{x:t.x/n,y:t.y/n}},X=(t,n)=>{const e=d(t,n);return p(e)},Y=t=>({x:-t.y,y:t.x}),w=(t,n)=>{const e=X(t,n);return Y(e)},S=(t,n)=>{const e=p(t),r=p(n),x={x:(e.x+r.x)/2,y:(e.y+r.y)/2};return p(x)},$=(t,n)=>{const e=d(t,n);let r=Math.atan2(e.y,e.x);return(r>Math.PI/2||r<-Math.PI/2)&&(r+=Math.PI),r},b=(t,n,e)=>{const r=f([t,n]),x=w(t,n);return{x:r.x+x.x*e,y:r.y+x.y*e}},q=(t,n,e)=>{const r=Math.cos(e),x=Math.sin(e),o=t.x-n.x,a=t.y-n.y;return{x:o*r-a*x+n.x,y:o*x+a*r+n.y}},v=(t,n,e)=>t.map(t=>q(t,n,e)),I=(t,n,e)=>{if(0===M(t,n))return[t,t,t,t];const r=X(t,n),x=Y(r),o=t.x-r.x*e,a=t.y-r.y*e,y=n.x+r.x*e,h=n.y+r.y*e;return[{x:o+x.x*e,y:a+x.y*e},{x:y+x.x*e,y:h+x.y*e},{x:y-x.x*e,y:h-x.y*e},{x:o-x.x*e,y:a-x.y*e}]},P=(t,n)=>{if(t.length<3)return t;const e=[];for(let r=0;r<t.length;r++){const x=t[r],o=t[(r+1)%t.length],a=t[(r-1+t.length)%t.length],y=d(x,o);if(0===g(y)){e.push(x);continue}const h=p(y),s={x:h.y,y:-h.x},i=d(a,x);let c={x:0,y:0};if(g(i)>0){const t=p(i);c={x:t.y,y:-t.x}}const l=S(c,s),f=c.x*s.x+c.y*s.y,m=1/Math.max(.1,Math.sqrt((1+f)/2)),u={x:x.x+l.x*n*m,y:x.y+l.y*n*m};e.push(u)}return e},A=(t,n,e)=>{if(0===M(t,n))return[];const r=w(t,n),x=e/2;return[t.x+r.x*x,t.y+r.y*x,n.x+r.x*x,n.y+r.y*x,n.x-r.x*x,n.y-r.y*x,t.x-r.x*x,t.y-r.y*x]},E=(t,n,e,r)=>{const x=d(t,n),o=d(t,e),a=S(x,o),y=-a.x,h=-a.y;return{x:t.x+y*r,y:t.y+h*r}},z=(t,n,e,r,x,o)=>{const a=new Set(t),y=D(t,n);return O(y,a,n,e,r,x,o)||y},D=(t,n)=>{let e=0,r=0;for(let x=0;x<t.length;x++){const o=t[x];e+=o%n,r+=Math.floor(o/n)}return{x:e/t.length,y:r/t.length}},O=(t,n,e,r,x,o,a)=>{const y={x:r-10,y:t.y},h={x:o+10,y:t.y},s={x:o,y:x},i={x:o,y:a},c=k(y,h,{x:r,y:x},{x:r,y:a}),l=k(y,h,s,i);if(!c||!l)return null;const f=[],m=Math.max(r,Math.min(c.x,l.x)),u=Math.min(o,Math.max(c.x,l.x)),M=Math.round(t.y);for(let t=Math.round(m);t<=Math.round(u);t++){const r=M*e+t;n.has(r)&&f.push({x:t,y:M})}if(f.length>=2){const t=j(f),r={x:(t.min.x+t.max.x)/2,y:(t.min.y+t.max.y)/2},x=Math.round(r.y)*e+Math.round(r.x);if(n.has(x))return r}return null},k=(t,n,e,r)=>{const x=(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),o=(t.x-r.x)*(n.y-r.y)-(t.y-r.y)*(n.x-r.x);if(x*o>=0)return null;const a=(e.x-t.x)*(r.y-t.y)-(e.y-t.y)*(r.x-t.x);if(a*(a+x-o)>=0)return null;const y=a/(o-x),h=y*(n.x-t.x),s=y*(n.y-t.y);return{x:t.x+h,y:t.y+s}},j=t=>{if(!t||0===t.length)return{min:{x:0,y:0},max:{x:0,y:0}};let n=t[0],e=t[0];const r=t=>t.x-t.y;for(let x=1;x<t.length;x++){const o=t[x];r(o)<r(n)&&(n=o),r(o)>r(e)&&(e=o)}return{min:n,max:e}},B=(t,n)=>({minX:Math.min(t.minX,n.minX),minY:Math.min(t.minY,n.minY),maxX:Math.max(t.maxX,n.maxX),maxY:Math.max(t.maxY,n.maxY)}),C=t=>{if(0===t.length)return{x:0,y:0,width:0,height:0};let n=t[0].x,e=t[0].y,r=t[0].x+t[0].width,x=t[0].y+t[0].height;return t.forEach(t=>{n=Math.min(n,t.x),e=Math.min(e,t.y),r=Math.max(r,t.x+t.width),x=Math.max(x,t.y+t.height)}),{x:n,y:e,width:r-n,height:x-e}},F=(t,n,e)=>{let r=1/0,x=1/0,o=-1/0,a=-1/0;for(let e=0;e<t.obstacles.length;e++){const y=t.obstacles[e],h=y%n,s=Math.floor(y/n);r=Math.min(r,h),x=Math.min(x,s),o=Math.max(o,h),a=Math.max(a,s)}return t.rooms.forEach(t=>{for(let e=0;e<t.length;e++){const y=t[e],h=y%n,s=Math.floor(y/n);r=Math.min(r,h),x=Math.min(x,s),o=Math.max(o,h),a=Math.max(a,s)}}),r===1/0?{minX:0,minY:0,maxX:n,maxY:e}:{minX:Math.max(0,r),minY:Math.max(0,x),maxX:Math.min(n,o),maxY:Math.min(e,a)}},G=(t,n,e,r,x,o)=>{const a=e+x,y=r+o,h=Math.min(t.x,n.x),s=Math.max(t.x,n.x),i=Math.min(t.y,n.y),c=Math.max(t.y,n.y);if(s<e||h>a||c<r||i>y)return!1;if(H(t,e,r,x,o)||H(n,e,r,x,o))return!0;const l=[{x:e,y:r},{x:a,y:r},{x:a,y:y},{x:e,y:y}];for(let e=0;e<4;e++)if(k(t,n,l[e],l[(e+1)%4]))return!0;return!1},H=(t,n,e,r,x)=>t.x>=n&&t.x<=n+r&&t.y>=e&&t.y<=e+x,J=(t,n,e,r)=>{const x=e/2;return"horizontal"===r?[{x:t-x,y:n},{x:t+x,y:n}]:[{x:t,y:n-x},{x:t,y:n+x}]},K=(t,n,e)=>{const r=n.x-t.x,x=n.y-t.y,o=Math.sqrt(r*r+x*x);if(0===o)return[t,n];const a=r/o,y=x/o;return[{x:t.x-a*e,y:t.y-y*e},{x:n.x+a*e,y:n.y+y*e}]},L=(t,n,e)=>{const r=l(t),x=l(n),o=Math.max(0,Math.max(r.minX,x.minX)-Math.min(r.maxX,x.maxX)),a=Math.max(0,Math.max(r.minY,x.minY)-Math.min(r.maxY,x.maxY));if(o>e||a>e)return!1;let[y,h]=[t,n];n.length>t.length&&([y,h]=[n,t]);const s=Math.max(1,Math.floor(e)),i=new Map;for(const t of y){const n=`${Math.floor(t.x/s)},${Math.floor(t.y/s)}`;i.has(n)||i.set(n,[]),i.get(n).push(t)}const c=e*e;for(const t of h){const n=Math.floor(t.x/s),e=Math.floor(t.y/s);for(let r=-1;r<=1;r++)for(let x=-1;x<=1;x++){const o=`${n+r},${e+x}`,a=i.get(o);if(a)for(const n of a){const e=t.x-n.x,r=t.y-n.y;if(e*e+r*r<=c)return!0}}}return!1},N=(t,n,e,r)=>{let[x,o]=[t,n];n.length>t.length&&([x,o]=[n,t]);const a=new Set(x),y=r*r;for(let t=0;t<o.length;t++){const n=o[t],x=n%e,h=Math.floor(n/e);for(let t=-r;t<=r;t++)for(let n=-r;n<=r;n++){const r=(h+n)*e+(x+t);if(a.has(r)&&t*t+n*n<=y)return!0}}return!1},Q=(t,n)=>{if(t<=1)return!0;if(0===n.length)return!1;const e=Array.from({length:t},(t,n)=>n),r=Array(t).fill(0),x=t=>(e[t]!==t&&(e[t]=x(e[t])),e[t]),o=(t,n)=>{const o=x(t),a=x(n);o!==a&&(r[o]<r[a]?e[o]=a:r[o]>r[a]?e[a]=o:(e[a]=o,r[o]++))};for(const[t,e]of n)o(t,e);const a=x(0);for(let n=1;n<t;n++)if(x(n)!==a)return!1;return!0},R=(t,n,e)=>{const r=new Map;if(0===t.length)return r;if(1===t.length)return r.set(t[0].id,0),r;const x=new Map;for(let e=0;e<t.length;e++){const r=t[e];x.has(r.id)||x.set(r.id,new Set);for(let o=e+1;o<t.length;o++){const e=t[o];n(r,e)&&(x.get(r.id).add(e.id),x.has(e.id)||x.set(e.id,new Set),x.get(e.id).add(r.id))}}const o=new Array(e).fill(0),a=[...t].sort((n,e)=>{const r=(x.get(n.id)||new Set).size,o=(x.get(e.id)||new Set).size,a=t.indexOf(n);return.7*-t.indexOf(e)+.3*o-(.7*-a+.3*r)});for(const t of a){const n=x.get(t.id)||new Set,a=new Set,y=new Set;for(const e of n){const o=r.get(e);if(void 0!==o){a.add(o);const h=x.get(e)||new Set;for(const e of h)if(e!==t.id&&!n.has(e)){const t=r.get(e);void 0!==t&&y.add(t)}}}const h=[];for(let t=0;t<e;t++)a.has(t)||h.push(t);if(0===h.length){let n=1/0,x=0;for(let t=0;t<e;t++)o[t]<n&&(n=o[t],x=t);r.set(t.id,x),o[x]++;continue}const s=h.filter(t=>!y.has(t)),i=s.length>0?s:h;let c=i[0],l=o[c];for(const t of i)(o[t]<l||o[t]===l&&t<c)&&(c=t,l=o[t]);r.set(t.id,c),o[c]++}return r};export{Q as areMultipleRoomsConnected,N as areRasterRoomsAdjacent,L as areStructuredRoomsAdjacent,r as binarySearch,l as calculateBoundingBox,f as calculateCenter,e as calculateCoordinatesBetweenPoints,E as calculateCornerExtension,J as calculateLineEndpoints,b as calculateLineMidpointOffset,A as calculateLineSegmentHitArea,I as calculateLineSegmentOutline,C as calculateMergedBounds,y as calculateMinDistanceToBoundary,D as calculatePixelWeightedCenter,P as calculatePolygonOutline,F as calculateRasterMapBounds,z as calculateRasterRoomCenter,o as calculateRoomCenterPoint,u as calculateScaleRatio,$ as calculateUprightLineAngle,d as createVector,n as ensureClosedPath,K as extendLineSegment,a as findBestInnerPoint,j as findExtremePoints,R as fourColorGreedyAlgorithm,t as generateOutlineData,S as getBisectorDirection,M as getDistance,w as getPerpendicularUnitVector,Y as getPerpendicularVector,X as getUnitVector,g as getVectorLength,H as isPointInBox,s as isPointInPolygon,c as isPointOnLineSegment,i as isPointOnPolygonBoundary,G as lineIntersectsBox,k as lineSegmentsIntersection,B as mergeBounds,m as normalizeToRectangle,p as normalizeVector,O as optimizeRasterCenterWithLineIntersection,h as pointToSegmentDistance,q as rotatePointAroundCenter,v as rotatePointsAroundCenter,x as sampleLinePoints};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../node_modules/pixi.js/lib/index.js";import{isMobile as e}from"../../../node_modules/pixi.js/lib/utils/browser/isMobile.js";navigator?.userAgent?.includes("tuya-ark-ide")||navigator?.userAgent?.includes("miniProgram");const i=()=>{if(!e.any)return!0;const i=navigator.userAgent.toLowerCase();let t=!1;if(/iphone|ipad|ipod/.test(i)){const e=i.match(/os (\d+)_/)?.[1];t=(e?parseInt(e):0)>=12}else if(/android/.test(i)){const e=i.match(/android (\d+)/)?.[1];t=(e?parseInt(e):0)>=10}return t&&(()=>{const e=navigator.deviceMemory;return!e||e>=4})()};export{i as getOptimalAntialiasingStrategy};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1}import{decodeMapRooms as o}from"../../../node_modules/@ray-js/robot-protocol/dist/index.js";const r=(e,r)=>(o(e)??[]).map(e=>({id:e.roomId,name:e.name,cleanTimes:e.sweepTimes,order:e.order,floorType:e.floorMaterial,yMop:e.yMop?1:0,suction:e.suction,cistern:e.cistern,cleanMode:e.sweepForbidden||e.mopForbidden?e.sweepForbidden?2:1:0,...r?.(e.reservedStr)??{}})),n=(e,o,r=20)=>{const n=[...e];let t=0;for(;t<r&&o.some(e=>{return r=e,(o=n).length===r.length&&o.every((e,o)=>{const n=r[o];return e.x===n.x&&e.y===n.y});var o,r});)t++,n.forEach(e=>{e.x+=5,e.y+=5});return n};export{r as decodeRoomProperties,e as easeInOutCubic,n as offsetPointsToAvoidOverlap};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const r={log(r,...e){},warn(r,...e){},error(r,...e){},debug(r,...e){},success(r,...e){}};export{r as Logger};
|
package/dist-docs/404.html
CHANGED
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
<link rel="preload stylesheet" href="/assets/style.CN_tJoU2.css" as="style">
|
|
10
10
|
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
|
11
11
|
|
|
12
|
-
<script type="module" src="/assets/app.
|
|
12
|
+
<script type="module" src="/assets/app.DFCBjZzz.js"></script>
|
|
13
13
|
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
|
14
14
|
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
15
15
|
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
|
16
16
|
</head>
|
|
17
17
|
<body>
|
|
18
18
|
<div id="app"></div>
|
|
19
|
-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"guide_advanced-usage.md\":\"BrZgx45A\",\"guide_concepts.md\":\"CAoYwZmS\",\"guide_getting-started.md\":\"
|
|
19
|
+
<script>window.__VP_HASH_MAP__=JSON.parse("{\"guide_advanced-usage.md\":\"BrZgx45A\",\"guide_concepts.md\":\"CAoYwZmS\",\"guide_getting-started.md\":\"FCeGzF_5\",\"index.md\":\"Sm6vD2Gl\",\"reference_callbacks.md\":\"-S6uhkXO\",\"reference_config.md\":\"CfEp0H9c\",\"reference_data.md\":\"B8JfrRhl\",\"reference_methods.md\":\"D1VYgciC\",\"reference_runtime.md\":\"UJkdf65W\",\"reference_types.md\":\"DkIhhJD0\",\"reference_utils.md\":\"CSshxnp0\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Tuya Robot Map\",\"description\":\"涂鸦扫地机地图组件\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Tuya Robot Map\",\"outline\":{\"level\":[2,5],\"label\":\"页面导航\"},\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"指南\",\"link\":\"/guide/concepts\",\"activeMatch\":\"^/guide/\"},{\"text\":\"参考\",\"link\":\"/reference/data\",\"activeMatch\":\"^/reference/\"}],\"sidebar\":{\"/guide/\":[{\"text\":\"指南\",\"items\":[{\"text\":\"基本概念\",\"link\":\"/guide/concepts\"},{\"text\":\"快速开始\",\"link\":\"/guide/getting-started\"},{\"text\":\"进阶使用\",\"link\":\"/guide/advanced-usage\"}]}],\"/reference/\":[{\"text\":\"组件Props\",\"items\":[{\"text\":\"数据\",\"link\":\"/reference/data\"},{\"text\":\"配置\",\"link\":\"/reference/config\"},{\"text\":\"运行时\",\"link\":\"/reference/runtime\"},{\"text\":\"地图事件回调\",\"link\":\"/reference/callbacks\"}]},{\"text\":\"方法\",\"items\":[{\"text\":\"地图方法\",\"link\":\"/reference/methods\"},{\"text\":\"工具方法\",\"link\":\"/reference/utils\"}]},{\"text\":\"类型定义\",\"items\":[{\"text\":\"类型定义\",\"link\":\"/reference/types\"}]}]},\"search\":{\"provider\":\"local\"},\"lastUpdated\":{\"text\":\"最后更新于\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"short\"}}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
|
20
20
|
|
|
21
21
|
</body>
|
|
22
22
|
</html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as p}from"./chunks/theme.
|
|
1
|
+
import{t as p}from"./chunks/theme.DLVtiTEc.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.DRADY2L-.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
|