@realsee/dnalogel 2.16.2-alpha.0 → 2.17.0-aplha.1

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.
Files changed (309) hide show
  1. package/dist/PanoTagPlugin/Archive/deprecated.d.ts +22 -0
  2. package/dist/PanoTagPlugin/controller/TagComputer.d.ts +3 -3
  3. package/dist/PanoTagPlugin/controller/TagUtil.d.ts +2 -1
  4. package/dist/PanoTagPlugin/controller/index.d.ts +2 -2
  5. package/dist/PanoTagPlugin/typings/controller.d.ts +1 -1
  6. package/dist/PanoTagPlugin/typings/tag/Tag.d.ts +6 -7
  7. package/dist/PanoTagPlugin/typings/tag/TagConfig.d.ts +6 -1
  8. package/dist/PanoTagPlugin/typings/tag/TagData.d.ts +25 -25
  9. package/dist/PanoTagPlugin/typings/tag/Utils.d.ts +4 -0
  10. package/dist/PanoTagPlugin/utils/model/mediaPlane.d.ts +15 -25
  11. package/dist/index.cjs.js +42 -42
  12. package/dist/index.js +1899 -1855
  13. package/dist/index.umd.js +42 -42
  14. package/dist/shared-utils/five/FiveDomEvents.d.ts +6 -0
  15. package/dist/shared-utils/five/getFloorIndex.d.ts +10 -0
  16. package/dist/shared-utils/three/FragmentTransparencyMaterial.d.ts +17 -0
  17. package/dist/shared-utils/three/loadVideoTexture.d.ts +6 -1
  18. package/dist/typings/utils.type.d.ts +2 -0
  19. package/docs/assets/search.js +1 -1
  20. package/docs/classes/CSS3DRender.html +31 -31
  21. package/docs/classes/CruisePluginController.html +25 -25
  22. package/docs/classes/Magnifier.html +20 -20
  23. package/docs/classes/ModelRoomLabelController.html +11 -11
  24. package/docs/classes/Object3DHelperController.html +24 -24
  25. package/docs/classes/PaintBrush.html +15 -15
  26. package/docs/classes/PanoMeasurePluginLine.html +23 -23
  27. package/docs/classes/PanoMeasurePluginModel.html +22 -22
  28. package/docs/classes/PanoMeasurePluginPoint.html +14 -14
  29. package/docs/classes/PanoMeasurePluginPolyline.html +26 -26
  30. package/docs/classes/PanoTagPluginController.html +81 -369
  31. package/docs/classes/Util.BetterTween.html +8 -8
  32. package/docs/classes/Util.FivePointSelector.html +12 -12
  33. package/docs/classes/Util.Interval.html +12 -12
  34. package/docs/classes/Util.Magnifier.html +17 -17
  35. package/docs/classes/Util.PointDomHelper.html +11 -11
  36. package/docs/classes/Util.PointHelper.html +11 -11
  37. package/docs/classes/Util.Rectangle.html +13 -13
  38. package/docs/enums/CameraMovementEffect.html +7 -7
  39. package/docs/enums/ContentType.html +19 -19
  40. package/docs/enums/DIRECTION.html +9 -9
  41. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +9 -9
  42. package/docs/enums/DimensionType.html +7 -7
  43. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +8 -8
  44. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +9 -9
  45. package/docs/enums/PaintBrushTypeEnum.html +8 -8
  46. package/docs/enums/Rotation.html +8 -8
  47. package/docs/functions/CSS3DRenderPlugin.html +6 -5
  48. package/docs/functions/CameraMovementPlugin.html +6 -5
  49. package/docs/functions/CruisePlugin.html +6 -5
  50. package/docs/functions/GuideLinePlugin.html +6 -5
  51. package/docs/functions/ItemLabelPlugin.html +6 -5
  52. package/docs/functions/MapviewFloorplanPlugin.html +6 -5
  53. package/docs/functions/ModelChassisCompassPlugin.html +6 -5
  54. package/docs/functions/ModelEntryDoorGuidePlugin.html +6 -5
  55. package/docs/functions/ModelFloorplanPlugin.html +6 -5
  56. package/docs/functions/ModelItemLabelPlugin.html +6 -5
  57. package/docs/functions/ModelRoomLabelPlugin.html +6 -5
  58. package/docs/functions/ModelTVVideoPlugin.html +6 -5
  59. package/docs/functions/ModelViewPlugin.html +6 -5
  60. package/docs/functions/Object3DHelperPlugin.html +6 -5
  61. package/docs/functions/PanoCompassPlugin.html +6 -5
  62. package/docs/functions/PanoCursorRaycasterPlugin.html +6 -5
  63. package/docs/functions/PanoDoorLabelPlugin.html +6 -5
  64. package/docs/functions/PanoFloorplanRadarPlugin.html +6 -5
  65. package/docs/functions/PanoMeasurePlugin.html +6 -5
  66. package/docs/functions/PanoRulerPlugin.html +6 -5
  67. package/docs/functions/PanoRulerProPlugin.html +6 -5
  68. package/docs/functions/PanoSpatialTagPlugin.html +6 -5
  69. package/docs/functions/PanoTagPlugin.html +6 -5
  70. package/docs/functions/PanoVideoPlugin.html +6 -5
  71. package/docs/functions/TopviewFloorplanPlugin.html +6 -5
  72. package/docs/functions/Util.getCoordsFromClient.html +5 -5
  73. package/docs/functions/Util.getCoordsFromElement.html +5 -5
  74. package/docs/functions/Util.getFrameTime.html +5 -5
  75. package/docs/functions/Util.getIntersectFromRelativePosition.html +5 -5
  76. package/docs/functions/Util.getRaycasterFromFivePointer.html +5 -5
  77. package/docs/functions/Util.isNil.html +5 -5
  78. package/docs/functions/Util.nextFrame.html +5 -5
  79. package/docs/functions/Util.notNil.html +5 -5
  80. package/docs/functions/Util.requestAnimationFrameInterval.html +5 -5
  81. package/docs/functions/Util.tweenProgress.html +5 -5
  82. package/docs/functions/pluginFlag.html +6 -5
  83. package/docs/index.html +5 -4
  84. package/docs/interfaces/AddTagConfig.html +6 -6
  85. package/docs/interfaces/CSS3DRenderPluginEventMap.html +11 -11
  86. package/docs/interfaces/CSS3DRenderPluginState.html +8 -8
  87. package/docs/interfaces/CameraMovementPluginExportType.html +7 -7
  88. package/docs/interfaces/EventMap.html +19 -19
  89. package/docs/interfaces/FloorplanBounding.html +8 -8
  90. package/docs/interfaces/FloorplanData.html +10 -10
  91. package/docs/interfaces/FloorplanEntrance.html +11 -11
  92. package/docs/interfaces/FloorplanExtraObject.html +10 -10
  93. package/docs/interfaces/FloorplanExtraObject3D.html +8 -8
  94. package/docs/interfaces/FloorplanFloorData.html +9 -9
  95. package/docs/interfaces/FloorplanImagePosition.html +7 -7
  96. package/docs/interfaces/FloorplanObserver.html +9 -9
  97. package/docs/interfaces/FloorplanOutlineItem.html +9 -9
  98. package/docs/interfaces/FloorplanPosition.html +7 -7
  99. package/docs/interfaces/FloorplanRoomItem.html +13 -13
  100. package/docs/interfaces/FloorplanRoomLabelItem.html +7 -7
  101. package/docs/interfaces/FloorplanServerBounding.html +8 -8
  102. package/docs/interfaces/FloorplanServerComputedData.html +10 -10
  103. package/docs/interfaces/FloorplanServerData.html +7 -7
  104. package/docs/interfaces/FloorplanServerDoorItem.html +10 -10
  105. package/docs/interfaces/FloorplanServerDoorPosition.html +8 -8
  106. package/docs/interfaces/FloorplanServerEntrance.html +11 -11
  107. package/docs/interfaces/FloorplanServerFloorData.html +9 -9
  108. package/docs/interfaces/FloorplanServerImagePosition.html +7 -7
  109. package/docs/interfaces/FloorplanServerObserver.html +9 -9
  110. package/docs/interfaces/FloorplanServerOutlineItem.html +9 -9
  111. package/docs/interfaces/FloorplanServerPosition.html +7 -7
  112. package/docs/interfaces/FloorplanServerRoomItem.html +14 -14
  113. package/docs/interfaces/FloorplanServerRoomLabelItem.html +7 -7
  114. package/docs/interfaces/HelperOffset.html +8 -8
  115. package/docs/interfaces/ImagePlaneGroup.html +6 -6
  116. package/docs/interfaces/ItemLabelPluginData.html +6 -6
  117. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +11 -11
  118. package/docs/interfaces/ItemLabelPluginParametersType.html +9 -9
  119. package/docs/interfaces/MinMax.html +7 -7
  120. package/docs/interfaces/ModelChassisCompassPluginData.html +7 -7
  121. package/docs/interfaces/ModelChassisCompassPluginExportType.html +8 -8
  122. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +7 -7
  123. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +8 -8
  124. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +8 -8
  125. package/docs/interfaces/ModelItemLabelPluginData.html +6 -6
  126. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +11 -11
  127. package/docs/interfaces/ModelItemLabelPluginParametersType.html +7 -7
  128. package/docs/interfaces/ModelRoomLabelPluginData.html +6 -6
  129. package/docs/interfaces/ModelTVVideoPluginData.html +9 -9
  130. package/docs/interfaces/ModelTVVideoPluginExportType.html +8 -8
  131. package/docs/interfaces/ModelTVVideoPluginParameterType.html +6 -6
  132. package/docs/interfaces/ModelViewPluginExportType.html +11 -11
  133. package/docs/interfaces/Object3DHelperState.html +8 -8
  134. package/docs/interfaces/ObjectHelperControllers.html +9 -9
  135. package/docs/interfaces/PaintBrushAction.html +12 -12
  136. package/docs/interfaces/PaintBrushConfigs.html +12 -12
  137. package/docs/interfaces/PaintBrushState.html +10 -10
  138. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +10 -10
  139. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +6 -5
  140. package/docs/interfaces/PanoMeasureParameterType.html +14 -14
  141. package/docs/interfaces/PanoMeasurePluginLineJson.html +8 -8
  142. package/docs/interfaces/PanoMeasurePluginOpenParameter.html +7 -7
  143. package/docs/interfaces/PanoMeasurePluginPointJson.html +7 -7
  144. package/docs/interfaces/PanoMeasurePluginPolylineJson.html +8 -8
  145. package/docs/interfaces/PanoRulerPluginExportType.html +10 -10
  146. package/docs/interfaces/PanoRulerPluginOptions.html +7 -7
  147. package/docs/interfaces/PanoRulerPluginParameterType.html +8 -8
  148. package/docs/interfaces/PanoRulerProPluginExportType.html +9 -9
  149. package/docs/interfaces/PanoRulerProPluginOptions.html +7 -7
  150. package/docs/interfaces/PanoRulerProPluginParameterType.html +7 -7
  151. package/docs/interfaces/PanoRulerProPluginState.html +8 -8
  152. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +6 -5
  153. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +6 -5
  154. package/docs/interfaces/PanoSpatialTagPluginData.html +11 -11
  155. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +10 -10
  156. package/docs/interfaces/PanoSpatialTagPluginExportType.html +13 -13
  157. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +10 -10
  158. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +13 -13
  159. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +11 -11
  160. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +10 -10
  161. package/docs/interfaces/PanoVideoPluginType.LoadParams.html +6 -6
  162. package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +8 -8
  163. package/docs/interfaces/PanoVideoPluginType.PluginData.html +6 -6
  164. package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +9 -9
  165. package/docs/interfaces/PanoVideoPluginType.PluginState.html +6 -6
  166. package/docs/interfaces/PanoVideoPluginType.VideoItem.html +8 -8
  167. package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +10 -10
  168. package/docs/interfaces/Point.html +8 -8
  169. package/docs/interfaces/Room.html +9 -9
  170. package/docs/interfaces/RoomInfo.html +7 -7
  171. package/docs/interfaces/RoomLabel.html +14 -14
  172. package/docs/interfaces/RoomRules.html +6 -5
  173. package/docs/interfaces/Rooms.html +6 -5
  174. package/docs/interfaces/Scissor.html +9 -9
  175. package/docs/interfaces/State.html +8 -8
  176. package/docs/interfaces/TagCacheInterface.html +12 -12
  177. package/docs/interfaces/TagConfig.html +19 -12
  178. package/docs/interfaces/TagGLTFObjectGroup.html +6 -6
  179. package/docs/interfaces/TagIconUrl.html +11 -11
  180. package/docs/interfaces/TagObjectGroup.html +6 -6
  181. package/docs/interfaces/TagStyle.html +6 -6
  182. package/docs/interfaces/Tags.html +214 -13
  183. package/docs/interfaces/TemporaryState.html +6 -6
  184. package/docs/interfaces/Util.MagnifierParameter.html +11 -11
  185. package/docs/interfaces/Util.MouseGroupParameter.html +8 -8
  186. package/docs/modules/PanoVideoPluginType.html +5 -5
  187. package/docs/modules/Util.html +5 -5
  188. package/docs/modules.html +6 -4
  189. package/docs/types/ArrayPosition.html +6 -5
  190. package/docs/types/AudioAppearance.html +6 -5
  191. package/docs/types/AudioTagTypeConfigKey.html +6 -5
  192. package/docs/types/CSS3DRenderExportType.html +6 -5
  193. package/docs/types/CSS3DRenderPluginExportType.html +6 -5
  194. package/docs/types/CSS3DRenderPluginParameterType.html +6 -5
  195. package/docs/types/ClassFunctionParameters.html +6 -5
  196. package/docs/types/Color.html +6 -5
  197. package/docs/types/ContentTypeConfigKey.html +6 -5
  198. package/docs/types/ContentTypeConfigKeySplit.html +6 -5
  199. package/docs/types/ContentTypeMap.html +7 -6
  200. package/docs/types/Create3DDomContainerReturnType.html +6 -5
  201. package/docs/types/Create3DElementReturnType.html +6 -5
  202. package/docs/types/CruisePluginExportType.html +6 -5
  203. package/docs/types/Direction-1.html +6 -5
  204. package/docs/types/Direction4.html +6 -5
  205. package/docs/types/ElementRenderer.html +6 -5
  206. package/docs/types/FloorplanRuleLabels.html +6 -5
  207. package/docs/types/FloorplanServerRuleLabels.html +6 -5
  208. package/docs/types/GuideLinePluginExportType.html +6 -5
  209. package/docs/types/HelperEventMap.html +6 -5
  210. package/docs/types/LoadTagConfig.html +6 -5
  211. package/docs/types/MapviewFloorplanPluginParameterType.html +6 -5
  212. package/docs/types/MapviewFloorplanPluginReturnType.html +6 -5
  213. package/docs/types/MediaData.html +6 -5
  214. package/docs/types/MediaStore.html +6 -5
  215. package/docs/types/ModelElement.html +6 -5
  216. package/docs/types/ModelEntryDoorGuidePluginParameterType.html +6 -5
  217. package/docs/types/ModelFloorplanPluginParameterType.html +6 -5
  218. package/docs/types/ModelFloorplanPluginReturnType.html +6 -5
  219. package/docs/types/ModelRoomLabelPluginParameters.html +6 -5
  220. package/docs/types/ModelRoomLabelPluginReturnType.html +6 -5
  221. package/docs/types/MoveArgs.html +6 -5
  222. package/docs/types/MoveOpts.html +6 -5
  223. package/docs/types/Object3DHelperEventMap.html +6 -5
  224. package/docs/types/ObjectFit.html +6 -5
  225. package/docs/types/PaintBrushEventMap.html +6 -5
  226. package/docs/types/PanoCompassPluginData.html +6 -5
  227. package/docs/types/PanoCompassPluginExportType.html +6 -5
  228. package/docs/types/PanoCompassPluginParameterType.html +6 -5
  229. package/docs/types/PanoFloorplanRadarPluginParameterType.html +6 -5
  230. package/docs/types/PanoFloorplanRadarPluginReturnType.html +6 -5
  231. package/docs/types/PanoIndex.html +6 -5
  232. package/docs/types/PanoMeasurePluginEvent.html +6 -5
  233. package/docs/types/PanoMeasureReturnType.html +6 -5
  234. package/docs/types/PanoSpatialTagPluginId.html +6 -5
  235. package/docs/types/PanoTagPluginExportInterface.html +6 -5
  236. package/docs/types/PanoTagPluginParamsInterface.html +6 -5
  237. package/docs/types/PanoVideoPluginParameterType.html +6 -5
  238. package/docs/types/PanoVideoPluginReturnType.html +6 -5
  239. package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +275 -0
  240. package/docs/types/PlaneTag.html +6 -5
  241. package/docs/types/PlaneTagElement.html +6 -5
  242. package/docs/types/Point2DElement.html +6 -5
  243. package/docs/types/Point2DTag.html +6 -5
  244. package/docs/types/Point3DElement.html +6 -5
  245. package/docs/types/Point3DTag.html +6 -5
  246. package/docs/types/PointTag.html +6 -5
  247. package/docs/types/PointTagElement.html +6 -5
  248. package/docs/types/Position.html +6 -5
  249. package/docs/types/RotateArgs.html +6 -5
  250. package/docs/types/RotateOpts.html +6 -5
  251. package/docs/types/RuleLabelsKey.html +6 -5
  252. package/docs/types/RuleLabelsValue.html +6 -5
  253. package/docs/types/StickType.html +6 -5
  254. package/docs/types/Tag.html +7 -6
  255. package/docs/types/Tag2D.html +6 -5
  256. package/docs/types/Tag3D.html +6 -5
  257. package/docs/types/TagContentType.html +6 -5
  258. package/docs/types/TagDimensionType.html +6 -5
  259. package/docs/types/TagElement.html +6 -5
  260. package/docs/types/TagEvents.html +6 -5
  261. package/docs/types/TagGLTFObject.html +6 -5
  262. package/docs/types/TagHooks.html +6 -5
  263. package/docs/types/TagIconSize.html +6 -5
  264. package/docs/types/TagId.html +6 -5
  265. package/docs/types/TopviewFloorplanPluginParameterType.html +6 -5
  266. package/docs/types/TopviewFloorplanPluginReturnType.html +6 -5
  267. package/docs/types/WorkCode.html +6 -5
  268. package/docs/variables/FLOOR_TYPE_MAP.html +6 -5
  269. package/docs/variables/PLUGIN.html +6 -5
  270. package/docs/variables/ROOM_FETILE_TYPE_MAP.html +6 -5
  271. package/docs/variables/ROOM_TYPE_MAP.html +6 -5
  272. package/docs/variables/itemLabelPluginServerParams.html +6 -5
  273. package/docs/variables/modelItemLabelPluginServerParams.html +6 -5
  274. package/docs/variables/modelRoomLabelPluginServerParams.html +6 -5
  275. package/libs/PanoTagPlugin/Archive/deprecated.d.ts +15 -0
  276. package/libs/PanoTagPlugin/Components/Common/Media.js +14 -10
  277. package/libs/PanoTagPlugin/Components/Tag/ImageTextTag.js +1 -1
  278. package/libs/PanoTagPlugin/controller/TagComputer.d.ts +3 -3
  279. package/libs/PanoTagPlugin/controller/TagComputer.js +173 -171
  280. package/libs/PanoTagPlugin/controller/TagRender.js +51 -44
  281. package/libs/PanoTagPlugin/controller/TagUtil.d.ts +2 -1
  282. package/libs/PanoTagPlugin/controller/TagUtil.js +21 -16
  283. package/libs/PanoTagPlugin/controller/index.d.ts +2 -2
  284. package/libs/PanoTagPlugin/controller/index.js +45 -41
  285. package/libs/PanoTagPlugin/index.js +12 -10
  286. package/libs/PanoTagPlugin/tag.config.js +7 -0
  287. package/libs/PanoTagPlugin/typings/controller.d.ts +1 -1
  288. package/libs/PanoTagPlugin/typings/tag/Tag.d.ts +6 -7
  289. package/libs/PanoTagPlugin/typings/tag/TagConfig.d.ts +6 -1
  290. package/libs/PanoTagPlugin/typings/tag/TagData.d.ts +25 -25
  291. package/libs/PanoTagPlugin/typings/tag/Utils.d.ts +4 -0
  292. package/libs/PanoTagPlugin/utils/model/mediaPlane.d.ts +15 -25
  293. package/libs/PanoTagPlugin/utils/model/mediaPlane.js +130 -158
  294. package/libs/base/BasePlugin.js +1 -1
  295. package/libs/index.js +104 -102
  296. package/libs/shared-utils/five/FiveDomEvents.d.ts +6 -0
  297. package/libs/shared-utils/five/FiveDomEvents.js +48 -38
  298. package/libs/shared-utils/five/getFloorIndex.d.ts +10 -0
  299. package/libs/shared-utils/five/getFloorIndex.js +16 -0
  300. package/libs/shared-utils/logger.js +1 -1
  301. package/libs/shared-utils/three/FragmentTransparencyMaterial.d.ts +17 -0
  302. package/libs/shared-utils/three/FragmentTransparencyMaterial.js +36 -0
  303. package/libs/shared-utils/three/loadVideoTexture.d.ts +6 -1
  304. package/libs/shared-utils/three/loadVideoTexture.js +8 -10
  305. package/libs/typings/utils.type.d.ts +2 -0
  306. package/libs/typings/utils.type.js +1 -0
  307. package/package.json +2 -2
  308. package/libs/PanoTagPlugin/Archive/index.d.ts +0 -1
  309. package/libs/PanoTagPlugin/Archive/index.js +0 -4
@@ -1,14 +1,18 @@
1
1
  import type { Create3DDomContainerParamsType } from '../../../CSS3DRenderPlugin/Controller';
2
2
  import type { Five, Mode } from '@realsee/five';
3
- import type { TagContentType } from './TagData';
3
+ import type { ContentTypeMap, TagContentType } from './TagData';
4
4
  import type { Tag } from './Tag';
5
5
  import type { MinMax, StickType } from './Utils';
6
+ import type { PartialDeep } from 'type-fest';
6
7
  export interface TagConfig<C extends TagContentType = TagContentType, S extends StickType = StickType> {
7
8
  /** 显示/隐藏配置 */
8
9
  visibleConfig?: {
9
10
  /** 保持可见/不可见, 设置后visibleConfig下所有其他配置都不生效 */
10
11
  keep?: 'visible' | 'hidden';
12
+ /** 在哪些 five mode 下可见,默认为 [’Panorama‘] */
11
13
  visibleFiveMode?: Mode[];
14
+ /** 当 visibleFiveMode 包含 'Floorplan' 或者 'MapView' 时,是否仅在当前楼层模型下可见,默认为true */
15
+ followModelVisibility?: boolean;
12
16
  /** 走点时不隐藏 */
13
17
  alwaysShowWhenMovePano?: true;
14
18
  /** min-max米内显示 | 无距离限制 */
@@ -84,6 +88,7 @@ export interface TagConfig<C extends TagContentType = TagContentType, S extends
84
88
  /** 展开/收起 */
85
89
  unfolded?: boolean;
86
90
  };
91
+ initialData?: PartialDeep<ContentTypeMap[C]>;
87
92
  tag3DConfig?: Create3DDomContainerParamsType['config'];
88
93
  /** 当图片为一张时可以通过Mesh渲染 */
89
94
  renderType?: 'Mesh' | 'Dom';
@@ -1,3 +1,4 @@
1
+ import { DeprecatedMediaPlaneProperty } from '../../Archive/deprecated';
1
2
  import type { Position, TagIconUrl } from './Utils';
2
3
  export declare type MediaData = {
3
4
  type: 'Image';
@@ -7,8 +8,8 @@ export declare type MediaData = {
7
8
  url: string;
8
9
  videoCoverUrl?: string;
9
10
  };
10
- declare type Object = Record<string | number | symbol, any>;
11
11
  export declare type ObjectFit = 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
12
+ declare type Object = Record<string | number | symbol, any>;
12
13
  export declare enum ContentType {
13
14
  /** 音频标签 */
14
15
  Audio = "Audio",
@@ -51,7 +52,6 @@ interface ContentTypeMapInterface {
51
52
  text?: string;
52
53
  title?: string;
53
54
  description?: string;
54
- extraData?: Object;
55
55
  edit?: {
56
56
  title?: {
57
57
  inputting?: boolean;
@@ -72,7 +72,6 @@ interface ContentTypeMapInterface {
72
72
  appearance?: 'line' | 'plane';
73
73
  theme?: 'dark' | 'light';
74
74
  audioUrl: string;
75
- extraData?: Object;
76
75
  };
77
76
  /** 图文标签 */
78
77
  ImageText: {
@@ -82,7 +81,6 @@ interface ContentTypeMapInterface {
82
81
  mediaData: (MediaData & {
83
82
  name?: string;
84
83
  })[];
85
- extraData?: Object;
86
84
  };
87
85
  /** 图片标签 */
88
86
  Image: ContentTypeMapInterface['ImageText'];
@@ -96,7 +94,6 @@ interface ContentTypeMapInterface {
96
94
  /** @deprecated: linkType 不再和样式绑定,使用 iconUrl 代替 */
97
95
  linkType?: 'vr' | 'normal';
98
96
  icon?: TagIconUrl;
99
- extraData?: Object;
100
97
  };
101
98
  /** VR跳转标签 */
102
99
  VRLink: ContentTypeMapInterface['Link'];
@@ -126,35 +123,33 @@ interface ContentTypeMapInterface {
126
123
  /** 单位 */
127
124
  unit: string;
128
125
  };
129
- extraData?: Object;
130
126
  };
131
127
  /** 营销贴片 */
132
128
  MediaPlane: {
133
129
  enableCarousel?: boolean;
134
- /**
135
- * @description stretch: 拉伸适配, proportional: 等比适配,默认值 'proportional'
136
- * @deprecated replaced by objectFit
137
- */
138
- adaptationMode?: 'stretch' | 'proportional';
139
130
  /** 多媒体在容器中的适配规则 {@link https://developer.mozilla.org/zh-CN/docs/Web/CSS/object-fit} */
140
131
  objectFit?: ObjectFit;
141
- /**
142
- * @description 是否开启自动轮播
143
- * @param autoplay true: 开启自动轮播, false: 关闭自动播放
144
- * @param autoplayVideo 自动轮播时,如果是视频, 则自动播放视频
145
- * @default 默认值 { autoplay: true, autoplayVideo: false }
146
- */
147
132
  autoplayConfig?: {
148
- autoplay: boolean;
149
- autoplayVideo: boolean;
133
+ /**
134
+ * @description 是否自动播放视频
135
+ * @default autoplayVideo: false
136
+ */
137
+ autoplayVideo?: boolean;
138
+ /**
139
+ * @description 是否自动轮播
140
+ * @default autoplayCarousel: true
141
+ */
142
+ autoplayCarousel?: boolean;
143
+ /**
144
+ * @description 轮播中遇到视频是否要自动播放
145
+ * @default autoplayVideoInCarousel: false
146
+ */
147
+ autoplayVideoInCarousel?: boolean;
150
148
  };
151
149
  mediaData: MediaData[];
152
- /**
153
- * @description 暂停时的播放按钮url
154
- */
150
+ /** @description 暂停时的播放按钮url */
155
151
  playIcon?: 'withText' | 'withoutText' | string;
156
- extraData?: Object;
157
- };
152
+ } & DeprecatedMediaPlaneProperty;
158
153
  MediaModel: {
159
154
  modelUrl: string;
160
155
  mediaData: MediaData[];
@@ -170,5 +165,10 @@ interface ContentTypeMapInterface {
170
165
  Custom: Object;
171
166
  Unknown: Object;
172
167
  }
173
- export declare type ContentTypeMap = Pick<ContentTypeMapInterface, TagContentType>;
168
+ declare type ContentTypeMapInterfaceWithextraData = {
169
+ [key in keyof ContentTypeMapInterface]: ContentTypeMapInterface[key] & {
170
+ extraData?: Object;
171
+ };
172
+ };
173
+ export declare type ContentTypeMap = Pick<ContentTypeMapInterfaceWithextraData, TagContentType>;
174
174
  export {};
@@ -62,6 +62,10 @@ export declare type TagIconSize = 'S' | 'M' | 'L' | 'XL' | number;
62
62
  export declare type AudioAppearance = Tag<'Audio'>['data']['appearance'];
63
63
  export declare type AudioTagTypeConfigKey = `${StickType | 'Any'}-Audio-${AudioAppearance}`;
64
64
  export declare type ContentTypeConfigKey = `${StickType | 'Any'}-${TagContentType | 'Any'}` | TagContentType | AudioTagTypeConfigKey;
65
+ /**
66
+ * @description: 从 ContentTypeConfigKey 中提取 ContentTypeConfigKey 对应的 ContentType 是啥,没找到就是 never
67
+ */
68
+ export declare type PickTagContentTypeInContentTypeConfigKey<T extends ContentTypeConfigKey> = T extends `${any}-Audio-${any}` ? 'Audio' : T extends `${any}-${infer C}` ? C : T extends TagContentType ? T : never;
65
69
  export declare type ContentTypeConfigKeySplit = [StickType | 'Any', TagContentType | 'Any'] | [TagContentType] | [StickType | 'Any', 'Audio', AudioAppearance];
66
70
  export declare type PointTag<C extends TagContentType = TagContentType> = Tag<C, '2DPoint' | '3DPoint'>;
67
71
  /** 二维标签 */
@@ -1,13 +1,16 @@
1
1
  import * as THREE from 'three';
2
2
  import { Vector3 } from 'three';
3
3
  import { ObjectFit } from '../../typings';
4
+ import DomEvents from '../../../shared-utils/threex/domevents';
5
+ import { Overwrite } from '../../../typings/utils.type';
4
6
  declare type Src = string;
5
- declare type VideoTexture = Omit<THREE.VideoTexture, 'image'> & {
7
+ declare type VideoTexture = Overwrite<THREE.VideoTexture, {
6
8
  image: HTMLVideoElement;
7
- };
8
- declare type ImageTexture = Omit<THREE.Texture, 'image'> & {
9
+ metadataLoaded: boolean;
10
+ }>;
11
+ declare type ImageTexture = Overwrite<THREE.Texture, {
9
12
  image: HTMLImageElement;
10
- };
13
+ }>;
11
14
  declare abstract class MediaPlane extends THREE.Mesh<THREE.BufferGeometry | THREE.Geometry, THREE.MeshBasicMaterial> {
12
15
  name: string;
13
16
  src?: string;
@@ -22,10 +25,10 @@ declare class ImagePlane extends MediaPlane {
22
25
  declare class VideoPlane extends MediaPlane {
23
26
  readonly isVideoPlane = true;
24
27
  name: string;
25
- videoInstance: HTMLVideoElement;
28
+ videoInstance?: HTMLVideoElement;
29
+ onVideoReady?: (videoInstance?: HTMLVideoElement) => void;
26
30
  private objectFit;
27
31
  private buttonSrc;
28
- private paused;
29
32
  private videoCoverSrc?;
30
33
  private domEvents?;
31
34
  private disposers;
@@ -37,39 +40,26 @@ declare class VideoPlane extends MediaPlane {
37
40
  private videoTextureMap;
38
41
  private ImageTextureMap;
39
42
  constructor(videoSrc: string, cornerPoints: Vector3[], params?: {
40
- videoInstance?: HTMLVideoElement;
43
+ paused?: boolean;
41
44
  playButton?: 'withText' | 'withoutText' | string;
42
45
  videoCoverSrc?: string;
43
46
  objectFit?: ObjectFit;
44
47
  videoTextureMap?: Map<Src, VideoTexture>;
45
48
  ImageTextureMap?: Map<Src, ImageTexture>;
46
49
  });
47
- play(): Promise<void>;
50
+ play(muted?: boolean): Promise<void>;
48
51
  pause(): void;
49
- initialDomEvents(five: any): void;
50
- initialRenderHooks(five: any): void;
52
+ initialDomEvents(domEvents: DomEvents): void;
53
+ initialRenderHooks(func: (render: () => void) => () => any): void;
51
54
  private showPauseUI;
52
55
  private render;
53
- private addAutoEventListener;
56
+ private addAutoBindEventListener;
54
57
  private addDomEventListener;
55
58
  private removeDomEventListener;
56
59
  private addCoverMesh;
57
60
  private addVideoMesh;
58
61
  private addButtonMesh;
59
- /**
60
- * @description: 将视频封面Mesh
61
- */
62
- private getCoverMesh;
63
- /**
64
- * @description: 获取视频Mesh
65
- */
66
- private getVideoMesh;
67
- /**
68
- * @description: 获取点击播放按钮Mesh
69
- */
70
- private getButtonMesh;
71
- private getButtonTexture;
72
- private getCoverTexture;
62
+ private getImageTexture;
73
63
  private getVideoTexture;
74
64
  }
75
65
  export { ImagePlane, VideoPlane };
@@ -1,36 +1,36 @@
1
- var I = Object.defineProperty;
2
- var P = (u, c, e) => c in u ? I(u, c, { enumerable: !0, configurable: !0, writable: !0, value: e }) : u[c] = e;
3
- var o = (u, c, e) => (P(u, typeof c != "symbol" ? c + "" : c, e), e);
4
- var v = (u, c, e) => new Promise((t, i) => {
5
- var s = (r) => {
1
+ var x = Object.defineProperty;
2
+ var P = (c, a, e) => a in c ? x(c, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : c[a] = e;
3
+ var n = (c, a, e) => (P(c, typeof a != "symbol" ? a + "" : a, e), e);
4
+ var v = (c, a, e) => new Promise((t, i) => {
5
+ var s = (o) => {
6
6
  try {
7
- n(e.next(r));
7
+ r(e.next(o));
8
8
  } catch (h) {
9
9
  i(h);
10
10
  }
11
- }, a = (r) => {
11
+ }, d = (o) => {
12
12
  try {
13
- n(e.throw(r));
13
+ r(e.throw(o));
14
14
  } catch (h) {
15
15
  i(h);
16
16
  }
17
- }, n = (r) => r.done ? t(r.value) : Promise.resolve(r.value).then(s, a);
18
- n((e = e.apply(u, c)).next());
17
+ }, r = (o) => o.done ? t(o.value) : Promise.resolve(o.value).then(s, d);
18
+ r((e = e.apply(c, a)).next());
19
19
  });
20
- import * as d from "three";
21
- import { Vector3 as f } from "three";
22
- import { centerPoint as b } from "../../../shared-utils/three/centerPoint.js";
23
- import { loadTexture as E } from "../../../shared-utils/three/loadTexture.js";
24
- import { QuadrangleGeometry as S, QuadrangleMesh as y } from "../../../shared-utils/three/Quadrangle.js";
25
- import { loadVideoTexture as C } from "../../../shared-utils/three/loadVideoTexture.js";
26
- import { Image_Play_Icon_With_Text as V, Image_Play_Icon as x } from "../../Assets/Icon.js";
27
- import { getPositionsByObjectFit as g } from "../../../shared-utils/three/getPositionsByObjectFit.js";
28
- import { FiveDomEvents as F } from "../../../shared-utils/five/FiveDomEvents.js";
20
+ import * as p from "three";
21
+ import { Vector3 as g } from "three";
22
+ import { centerPoint as w } from "../../../shared-utils/three/centerPoint.js";
23
+ import { loadTexture as I } from "../../../shared-utils/three/loadTexture.js";
24
+ import { QuadrangleGeometry as V, QuadrangleMesh as y } from "../../../shared-utils/three/Quadrangle.js";
25
+ import { getVideoTexture as B } from "../../../shared-utils/three/loadVideoTexture.js";
26
+ import { Image_Play_Icon_With_Text as C, Image_Play_Icon as T } from "../../Assets/Icon.js";
27
+ import { getPositionsByObjectFit as l } from "../../../shared-utils/three/getPositionsByObjectFit.js";
28
+ import "@realsee/five";
29
+ import "../../../shared-utils/threex/domevents/index.js";
29
30
  import "@realsee/five/gltf-loader";
31
+ import { FragmentTransparencyMaterial as F } from "../../../shared-utils/three/FragmentTransparencyMaterial.js";
30
32
  import "../../../shared-utils/math/pointIsRectangle.js";
31
- import "@realsee/five";
32
33
  import "object-assign-deep";
33
- import "../../../shared-utils/threex/domevents/index.js";
34
34
  import "hammerjs";
35
35
  import "@tweenjs/tween.js";
36
36
  import "../../../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
@@ -58,88 +58,89 @@ import "lodash.clonedeep";
58
58
  import "lodash.isequal";
59
59
  import "classnames";
60
60
  import "../../../shared-utils/three/GLTFLoader.js";
61
- class L extends d.Mesh {
61
+ class b extends p.Mesh {
62
62
  constructor() {
63
63
  super(...arguments);
64
- o(this, "name", "MediaPlane");
65
- o(this, "src");
64
+ n(this, "name", "MediaPlane");
65
+ n(this, "src");
66
66
  }
67
67
  removeFromParent() {
68
68
  const e = this.parent;
69
69
  return e !== null && e.remove(this), this;
70
70
  }
71
71
  }
72
- class ye extends L {
72
+ class ye extends b {
73
73
  constructor(e, t, i) {
74
74
  super();
75
- o(this, "name", "PanoTagPluginImagePlane");
76
- this.src = e, E(e).then((s) => {
77
- var p;
78
- const a = new URL(e, location.href).pathname.endsWith(".png"), n = new d.MeshBasicMaterial({ map: s, transparent: a }), r = g((p = i == null ? void 0 : i.objectFit) != null ? p : "contain", t, s.image.width / s.image.height), h = b(...r), m = r.map((l) => l.clone().sub(h)), M = new S(m);
79
- this.position.copy(h), this.geometry = M, this.material = n;
75
+ n(this, "name", "PanoTagPluginImagePlane");
76
+ this.src = e, I(e).then((s) => {
77
+ var u;
78
+ const d = new URL(e, location.href).pathname.endsWith(".png"), r = new p.MeshBasicMaterial({ map: s, transparent: d }), o = l((u = i == null ? void 0 : i.objectFit) != null ? u : "contain", t, s.image.width / s.image.height), h = w(...o), m = o.map((f) => f.clone().sub(h)), M = new V(m);
79
+ this.position.copy(h), this.geometry = M, this.material = r;
80
80
  }).catch((s) => {
81
81
  console.error({ e: s });
82
82
  });
83
83
  }
84
84
  }
85
- class Ee extends L {
85
+ class Ee extends b {
86
86
  constructor(e, t, i) {
87
- const {
88
- videoCoverSrc: s,
89
- objectFit: a = "contain",
90
- playButton: n = "withText",
91
- videoTextureMap: r,
92
- ImageTextureMap: h,
93
- videoInstance: m = document.createElement("video")
94
- } = i != null ? i : {};
87
+ const { videoCoverSrc: s, objectFit: d = "contain", playButton: r = "withText", paused: o = !0, videoTextureMap: h, ImageTextureMap: m } = i != null ? i : {};
95
88
  super();
96
- o(this, "isVideoPlane", !0);
97
- o(this, "name", "PanoTagPluginImagePlane");
98
- o(this, "videoInstance");
99
- o(this, "objectFit");
100
- o(this, "buttonSrc");
101
- o(this, "paused", !0);
102
- o(this, "videoCoverSrc");
103
- o(this, "domEvents");
104
- o(this, "disposers", []);
105
- o(this, "domEventsListenerTemporaryList", []);
106
- o(this, "cornerPoints");
107
- o(this, "videoMesh");
108
- o(this, "coverMesh");
109
- o(this, "buttonMesh");
110
- o(this, "videoTextureMap");
111
- o(this, "ImageTextureMap");
112
- this.cornerPoints = t, this.src = e, this.buttonSrc = (() => n === "withText" ? V : n === "withoutText" ? x : typeof n == "string" ? n : x)(), this.videoInstance = m, this.videoCoverSrc = s, this.objectFit = a, this.videoTextureMap = r, this.ImageTextureMap = h, this.position.copy(b(...t)), this.videoCoverSrc ? this.addCoverMesh().then(() => this.addButtonMesh()) : this.addVideoMesh().then(() => this.addButtonMesh()), this.addEventListener("removed", () => {
89
+ n(this, "isVideoPlane", !0);
90
+ n(this, "name", "PanoTagPluginImagePlane");
91
+ n(this, "videoInstance");
92
+ n(this, "onVideoReady");
93
+ n(this, "objectFit");
94
+ n(this, "buttonSrc");
95
+ n(this, "videoCoverSrc");
96
+ n(this, "domEvents");
97
+ n(this, "disposers", []);
98
+ n(this, "domEventsListenerTemporaryList", []);
99
+ n(this, "cornerPoints");
100
+ n(this, "videoMesh");
101
+ n(this, "coverMesh");
102
+ n(this, "buttonMesh");
103
+ n(this, "videoTextureMap");
104
+ n(this, "ImageTextureMap");
105
+ this.cornerPoints = t, this.src = e, this.buttonSrc = (() => r === "withText" ? C : r === "withoutText" ? T : typeof r == "string" ? r : T)(), this.videoCoverSrc = s, this.objectFit = d, this.videoTextureMap = h, this.ImageTextureMap = m, this.position.copy(w(...t)), this.videoCoverSrc && o ? this.addCoverMesh().then(() => this.addButtonMesh()) : this.addVideoMesh().then(() => {
106
+ o ? this.addButtonMesh() : this.play(!0);
107
+ }), this.addEventListener("removed", () => {
113
108
  this.remove(...this.children);
114
109
  }), this.addEventListener("dispose", () => {
115
110
  var M;
116
- this.domEventsListenerTemporaryList = [], (M = this.disposers) == null || M.forEach((p) => p == null ? void 0 : p());
111
+ this.domEventsListenerTemporaryList = [], (M = this.disposers) == null || M.forEach((u) => u == null ? void 0 : u());
117
112
  });
118
113
  }
119
- play() {
114
+ play(e = !1) {
120
115
  return v(this, null, function* () {
121
- !this.paused || (this.paused = !1, this.videoMesh || (yield this.addVideoMesh()), this.coverMesh && (this.coverMesh.visible = !1), this.remove(this.buttonMesh), this.videoMesh.visible = !0, this.videoInstance.play(), this.videoInstance.muted = !1, this.render());
116
+ this.videoMesh || (yield this.addVideoMesh()), this.coverMesh && (this.coverMesh.visible = !1), this.remove(this.buttonMesh), this.videoMesh.visible = !0, this.videoInstance.paused && this.videoInstance.play().catch((t) => {
117
+ console.error(t);
118
+ }), this.videoInstance.muted = e, this.render();
122
119
  });
123
120
  }
124
121
  pause() {
125
- this.paused || (this.paused = !0, this.showPauseUI(), this.videoInstance.pause(), this.render());
122
+ !this.videoInstance || (this.showPauseUI(), this.videoInstance.pause(), this.render());
126
123
  }
127
124
  initialDomEvents(e) {
128
- this.domEvents || (this.domEvents = new F(e), this.domEventsListenerTemporaryList.forEach((t) => this.addDomEventListener(...t)), this.domEventsListenerTemporaryList = []);
125
+ this.domEvents || (this.domEvents = e, this.domEventsListenerTemporaryList.forEach((t) => this.addDomEventListener(...t)), this.domEventsListenerTemporaryList = []);
129
126
  }
130
127
  initialRenderHooks(e) {
131
- const t = () => {
132
- this.videoMesh && (this.videoInstance.paused || (this.videoMesh.needsRender = !0));
133
- };
134
- e.on("renderFrame", t), this.disposers.push(() => e.off("renderFrame", t));
128
+ const i = e(() => {
129
+ var s;
130
+ this.videoMesh && ((s = this.videoInstance) == null ? void 0 : s.paused) === !1 && (this.videoMesh.needsRender = !0);
131
+ });
132
+ this.disposers.push(() => i);
135
133
  }
136
134
  showPauseUI() {
137
- this.coverMesh && (this.coverMesh.visible = !0, this.videoMesh && (this.videoMesh.visible = !1)), this.addButtonMesh(), this.render();
135
+ return v(this, null, function* () {
136
+ this.coverMesh ? (this.coverMesh.visible = !0, this.videoMesh && (this.videoMesh.visible = !1)) : (yield this.addCoverMesh(), this.coverMesh && (this.videoMesh.visible = !1)), this.addButtonMesh(), this.render();
137
+ });
138
138
  }
139
139
  render() {
140
- this.videoMesh && (this.videoMesh.needsRender = !0), this.coverMesh && (this.coverMesh.needsRender = !0), this.buttonMesh && (this.buttonMesh.needsRender = !0), this.videoMesh && (this.videoInstance.paused || (this.videoMesh.needsRender = !0));
140
+ var e;
141
+ this.videoMesh && (this.videoMesh.needsRender = !0), this.coverMesh && (this.coverMesh.needsRender = !0), this.buttonMesh && (this.buttonMesh.needsRender = !0), this.videoMesh && ((e = this.videoInstance) == null ? void 0 : e.paused) === !1 && (this.videoMesh.needsRender = !0);
141
142
  }
142
- addAutoEventListener(...e) {
143
+ addAutoBindEventListener(...e) {
143
144
  const t = e[0];
144
145
  t.addEventListener("added", () => {
145
146
  this.addDomEventListener(...e);
@@ -160,112 +161,83 @@ class Ee extends L {
160
161
  }
161
162
  addCoverMesh() {
162
163
  return v(this, null, function* () {
163
- if (this.children.find((t) => t === this.coverMesh))
164
+ if (this.children.includes(this.coverMesh))
164
165
  return;
165
- const e = yield this.getCoverMesh();
166
- this.add(e);
166
+ const e = yield (() => v(this, null, function* () {
167
+ if (this.coverMesh)
168
+ return this.coverMesh;
169
+ if (!this.videoCoverSrc)
170
+ return;
171
+ const t = yield this.getImageTexture(this.videoCoverSrc);
172
+ if (!t)
173
+ return;
174
+ const i = new p.MeshBasicMaterial({ transparent: !1, map: t }), s = l(this.objectFit, this.cornerPoints, t.image.width / t.image.height), d = new y(s, i);
175
+ return d.position.copy(new g(0, 0, 0)), d.name = "videoCoverMesh", d;
176
+ }))();
177
+ return e && (this.children.includes(this.coverMesh) || (this.add(e), this.coverMesh = e)), e;
167
178
  });
168
179
  }
169
180
  addVideoMesh() {
170
181
  return v(this, null, function* () {
171
- if (this.children.find((t) => t === this.videoMesh))
182
+ if (this.children.includes(this.videoMesh))
172
183
  return;
173
- const e = yield this.getVideoMesh();
174
- this.add(e);
175
- });
176
- }
177
- addButtonMesh() {
178
- return v(this, null, function* () {
179
- if (this.children.find((t) => t === this.buttonMesh))
184
+ const e = yield (() => v(this, null, function* () {
185
+ if (this.videoMesh)
186
+ return this.videoMesh;
187
+ if (!this.src)
188
+ return;
189
+ const i = this.getVideoTexture(this.src), s = new p.MeshBasicMaterial({ transparent: !1, map: i }), d = yield new Promise((o) => {
190
+ i.metadataLoaded ? o(l(this.objectFit, this.cornerPoints, i.image.videoWidth / i.image.videoHeight)) : i.addEventListener(
191
+ "videoLoaded",
192
+ () => o(l(this.objectFit, this.cornerPoints, i.image.videoWidth / i.image.videoHeight))
193
+ );
194
+ }), r = new y(d, s);
195
+ return r.name = "videoMesh", r.position.copy(new g(0, 0, 0)), r;
196
+ }))();
197
+ if (!e)
180
198
  return;
181
- const e = yield this.getButtonMesh();
182
- this.add(e);
183
- });
184
- }
185
- getCoverMesh() {
186
- return v(this, null, function* () {
187
- if (this.coverMesh)
188
- return this.coverMesh;
189
- const e = yield this.getCoverTexture(), t = new d.MeshBasicMaterial({ transparent: !1, map: e }), i = g(this.objectFit, this.cornerPoints, e.image.width / e.image.height), s = new y(i, t);
190
- return s.name = "videoCoverMesh", s.position.copy(new f(0, 0, 0)), this.coverMesh = s, s;
191
- });
192
- }
193
- getVideoMesh() {
194
- return v(this, null, function* () {
195
- if (this.videoMesh)
196
- return this.videoMesh;
197
- const e = yield this.getVideoTexture(), t = new d.MeshBasicMaterial({ transparent: !1, map: e }), i = g(this.objectFit, this.cornerPoints, e.image.videoWidth / e.image.videoHeight), s = new y(i, t);
198
- s.name = "videoMesh", s.position.copy(new f(0, 0, 0)), this.addAutoEventListener(s, "click", () => this.pause());
199
- const a = e.image;
200
- return a.addEventListener("playing", () => {
199
+ this.addAutoBindEventListener(e, "click", () => {
200
+ !this.videoInstance.paused && this.videoInstance.muted ? this.videoInstance.muted = !1 : this.pause();
201
+ });
202
+ const t = e.material.map.image;
203
+ return t.addEventListener("playing", () => {
201
204
  this.coverMesh || this.remove(this.buttonMesh), this.render();
202
- }), a.addEventListener("pause", () => {
203
- this.showPauseUI();
204
- }), this.videoMesh = s, this.videoInstance = a, s;
205
- });
206
- }
207
- getButtonMesh() {
208
- return v(this, null, function* () {
209
- var p, l, w, T;
210
- if (this.buttonMesh)
211
- return this.buttonMesh;
212
- const e = (l = (p = this.videoMesh) == null ? void 0 : p.geometry.points[0].distanceTo(this.videoMesh.geometry.points[3])) != null ? l : 1 / 0, t = (T = (w = this.coverMesh) == null ? void 0 : w.geometry.points[0].distanceTo(this.coverMesh.geometry.points[3])) != null ? T : 1 / 0, i = this.cornerPoints[0].distanceTo(this.cornerPoints[3]), a = Math.min(e, t, i) / i * 0.3, n = yield this.getButtonTexture(), r = new d.ShaderMaterial({
213
- uniforms: {
214
- map: { value: n }
215
- },
216
- transparent: !1,
217
- blending: d.CustomBlending,
218
- blendSrc: d.SrcAlphaFactor,
219
- blendDst: d.OneMinusSrcAlphaFactor,
220
- blendSrcAlpha: d.OneFactor,
221
- blendDstAlpha: d.OneMinusSrcAlphaFactor,
222
- vertexShader: `
223
- varying vec2 vUv;
224
- void main() {
225
- vUv = uv;
226
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
227
- }
228
- `,
229
- fragmentShader: `
230
- uniform sampler2D map;
231
- // \u7EB9\u7406\u5750\u6807
232
- varying vec2 vUv;
233
- void main() {
234
- gl_FragColor = texture2D(map, vUv);
235
- }
236
- `
237
- }), h = g("contain", this.cornerPoints, n.image.width / n.image.height), m = new y(h, r);
238
- m.position.copy(new f(0, 0, 0)), m.name = "buttonMesh", m.scale.set(a, a, a), this.addAutoEventListener(m, "click", () => this.play());
239
- const M = new d.Vector3().crossVectors(new d.Vector3().subVectors(h[0], h[1]), new d.Vector3().subVectors(h[0], h[3])).normalize().multiplyScalar(1e-4);
240
- return m.position.add(M), this.buttonMesh = m, m;
205
+ }), t.addEventListener("pause", () => {
206
+ this.showPauseUI(), this.render();
207
+ }), this.children.includes(this.videoMesh) || (this.add(e), this.videoMesh = e, this.videoInstance = t), e;
241
208
  });
242
209
  }
243
- getButtonTexture() {
210
+ addButtonMesh() {
244
211
  return v(this, null, function* () {
245
- var t, i;
246
- if ((t = this.ImageTextureMap) != null && t.has(this.buttonSrc))
247
- return this.ImageTextureMap.get(this.buttonSrc);
248
- const e = yield E(this.buttonSrc);
249
- return (i = this.ImageTextureMap) == null || i.set(this.buttonSrc, e), e;
212
+ if (this.children.includes(this.buttonMesh))
213
+ return;
214
+ const e = yield (() => v(this, null, function* () {
215
+ var u, f, E, L;
216
+ if (this.buttonMesh)
217
+ return this.buttonMesh;
218
+ const t = (f = (u = this.videoMesh) == null ? void 0 : u.geometry.points[0].distanceTo(this.videoMesh.geometry.points[3])) != null ? f : 1 / 0, i = (L = (E = this.coverMesh) == null ? void 0 : E.geometry.points[0].distanceTo(this.coverMesh.geometry.points[3])) != null ? L : 1 / 0, s = this.cornerPoints[0].distanceTo(this.cornerPoints[3]), r = Math.min(t, i, s) / s * 0.3, o = yield this.getImageTexture(this.buttonSrc), h = l("contain", this.cornerPoints, o.image.width / o.image.height), m = new y(h, new F(o));
219
+ m.position.copy(new g(0, 0, 0)), m.name = "buttonMesh", m.scale.set(r, r, r), this.addAutoBindEventListener(m, "click", () => this.play());
220
+ const M = new p.Vector3().crossVectors(new p.Vector3().subVectors(h[0], h[1]), new p.Vector3().subVectors(h[0], h[3])).normalize().multiplyScalar(1e-4);
221
+ return m.position.add(M), m;
222
+ }))();
223
+ return this.children.includes(this.buttonMesh) || (this.add(e), this.buttonMesh = e), e;
250
224
  });
251
225
  }
252
- getCoverTexture() {
226
+ getImageTexture(e) {
253
227
  return v(this, null, function* () {
254
- var t, i;
255
- if ((t = this.ImageTextureMap) != null && t.has(this.videoCoverSrc))
256
- return this.ImageTextureMap.get(this.videoCoverSrc);
257
- const e = yield E(this.videoCoverSrc);
258
- return (i = this.ImageTextureMap) == null || i.set(this.videoCoverSrc, e), e;
228
+ var i, s;
229
+ if ((i = this.ImageTextureMap) != null && i.has(e))
230
+ return this.ImageTextureMap.get(e);
231
+ const t = yield I(e);
232
+ return (s = this.ImageTextureMap) == null || s.set(e, t), t;
259
233
  });
260
234
  }
261
- getVideoTexture() {
262
- return v(this, null, function* () {
263
- var t, i;
264
- if ((t = this.videoTextureMap) != null && t.has(this.src))
265
- return this.videoTextureMap.get(this.src);
266
- const e = yield C(this.src, this.videoInstance);
267
- return (i = this.videoTextureMap) == null || i.set(this.src, e), e;
268
- });
235
+ getVideoTexture(e) {
236
+ var i, s;
237
+ if ((i = this.videoTextureMap) != null && i.has(e))
238
+ return this.videoTextureMap.get(e);
239
+ const t = B(e);
240
+ return (s = this.videoTextureMap) == null || s.set(e, t), t;
269
241
  }
270
242
  }
271
243
  export {
@@ -4,7 +4,7 @@ var s = (e, r, t) => (a(e, typeof r != "symbol" ? r + "" : r, t), t);
4
4
  import { Subscribe as c } from "../shared-utils/Subscribe.js";
5
5
  class o {
6
6
  constructor(r, t) {
7
- s(this, "VERSION", "2.16.2-alpha.0");
7
+ s(this, "VERSION", "2.17.0-aplha.1");
8
8
  s(this, "five");
9
9
  s(this, "hooks", new c());
10
10
  s(this, "staticPrefix", "//vrlab-static.ljcdn.com");