@realsee/dnalogel 2.1.0-alpha.16 → 2.1.0-alpha.17

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 (202) hide show
  1. package/dist/CSS3DRenderPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  2. package/dist/CameraMovementPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  3. package/dist/CruisePlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  4. package/dist/GuideLinePlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  5. package/dist/ItemLabelPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  6. package/dist/ModelChassisCompassPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  7. package/dist/ModelEntryDoorGuidePlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  8. package/dist/ModelItemLabelPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  9. package/dist/ModelRoomLabelPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  10. package/dist/ModelTVVideoPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  11. package/dist/ModelViewPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  12. package/dist/Object3DHelperPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  13. package/dist/PanoCompassPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  14. package/dist/PanoCursorRaycasterPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  15. package/dist/PanoDoorLabelPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  16. package/dist/PanoMeasurePlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  17. package/dist/PanoRulerPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  18. package/dist/PanoRulerProPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  19. package/dist/PanoSpatialTagPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  20. package/dist/PanoTagPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  21. package/dist/PanoTagPlugin/index.js +89 -84
  22. package/dist/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  23. package/dist/floorplan/MapviewFloorplanPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  24. package/dist/floorplan/ModelFloorplanPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  25. package/dist/floorplan/PanoFloorplanRadarPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  26. package/dist/floorplan/TopviewFloorplanPlugin/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  27. package/dist/index.es.js +89 -84
  28. package/dist/index.js +89 -84
  29. package/dist/index.umd.js +89 -84
  30. package/docs/classes/CruisePluginController.html +14 -14
  31. package/docs/classes/Magnifier.html +4 -4
  32. package/docs/classes/ModelRoomLabelController.html +4 -4
  33. package/docs/classes/Object3DHelperController.html +9 -9
  34. package/docs/classes/PanoTagPluginController.html +23 -23
  35. package/docs/enums/CameraMovementEffect.html +2 -2
  36. package/docs/enums/ContentType.html +7 -7
  37. package/docs/enums/DIRECTION.html +1 -1
  38. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +1 -1
  39. package/docs/enums/DimensionType.html +1 -1
  40. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +1 -1
  41. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +1 -1
  42. package/docs/enums/LinkType.html +1 -1
  43. package/docs/enums/PointType.html +1 -1
  44. package/docs/enums/Rotation.html +2 -2
  45. package/docs/index.html +1 -1
  46. package/docs/interfaces/CSS3DRenderPluginEventMap.html +2 -2
  47. package/docs/interfaces/CSS3DRenderPluginState.html +2 -2
  48. package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
  49. package/docs/interfaces/FloorplanBounding.html +4 -4
  50. package/docs/interfaces/FloorplanData.html +2 -2
  51. package/docs/interfaces/FloorplanEntrance.html +7 -7
  52. package/docs/interfaces/FloorplanExtraObject.html +3 -3
  53. package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
  54. package/docs/interfaces/FloorplanFloorData.html +2 -2
  55. package/docs/interfaces/FloorplanImagePosition.html +2 -2
  56. package/docs/interfaces/FloorplanObserver.html +2 -2
  57. package/docs/interfaces/FloorplanOutlineItem.html +2 -2
  58. package/docs/interfaces/FloorplanPosition.html +2 -2
  59. package/docs/interfaces/FloorplanRoomItem.html +6 -6
  60. package/docs/interfaces/FloorplanRoomLabelItem.html +3 -3
  61. package/docs/interfaces/FloorplanServerBounding.html +4 -4
  62. package/docs/interfaces/FloorplanServerComputedData.html +1 -1
  63. package/docs/interfaces/FloorplanServerData.html +2 -2
  64. package/docs/interfaces/FloorplanServerDoorItem.html +1 -1
  65. package/docs/interfaces/FloorplanServerDoorPosition.html +1 -1
  66. package/docs/interfaces/FloorplanServerEntrance.html +7 -7
  67. package/docs/interfaces/FloorplanServerFloorData.html +2 -2
  68. package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
  69. package/docs/interfaces/FloorplanServerObserver.html +2 -2
  70. package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
  71. package/docs/interfaces/FloorplanServerPosition.html +2 -2
  72. package/docs/interfaces/FloorplanServerRoomItem.html +7 -7
  73. package/docs/interfaces/FloorplanServerRoomLabelItem.html +3 -3
  74. package/docs/interfaces/ItemLabelPluginData.html +1 -1
  75. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +1 -1
  76. package/docs/interfaces/ItemLabelPluginParametersType.html +1 -1
  77. package/docs/interfaces/LineJson.html +1 -1
  78. package/docs/interfaces/ModelChassisCompassPluginData.html +1 -1
  79. package/docs/interfaces/ModelChassisCompassPluginExportType.html +1 -1
  80. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +1 -1
  81. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +1 -1
  82. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +1 -1
  83. package/docs/interfaces/ModelItemLabelPluginData.html +1 -1
  84. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +1 -1
  85. package/docs/interfaces/ModelItemLabelPluginParametersType.html +1 -1
  86. package/docs/interfaces/ModelRoomLabelPluginData.html +1 -1
  87. package/docs/interfaces/ModelTVVideoPluginData.html +1 -1
  88. package/docs/interfaces/ModelTVVideoPluginExportType.html +1 -1
  89. package/docs/interfaces/ModelTVVideoPluginParameterType.html +1 -1
  90. package/docs/interfaces/ModelViewPluginExportType.html +1 -1
  91. package/docs/interfaces/Object3DHelperState.html +1 -1
  92. package/docs/interfaces/OpenParameter.html +2 -2
  93. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +6 -6
  94. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
  95. package/docs/interfaces/PanoMeasureParameterType.html +2 -2
  96. package/docs/interfaces/PanoRulerPluginExportType.html +1 -1
  97. package/docs/interfaces/PanoRulerPluginOptions.html +1 -1
  98. package/docs/interfaces/PanoRulerPluginParameterType.html +1 -1
  99. package/docs/interfaces/PanoRulerProPluginExportType.html +1 -1
  100. package/docs/interfaces/PanoRulerProPluginOptions.html +1 -1
  101. package/docs/interfaces/PanoRulerProPluginParameterType.html +1 -1
  102. package/docs/interfaces/PanoRulerProPluginState.html +1 -1
  103. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
  104. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
  105. package/docs/interfaces/PanoSpatialTagPluginData.html +1 -1
  106. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +1 -1
  107. package/docs/interfaces/PanoSpatialTagPluginExportType.html +1 -1
  108. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +1 -1
  109. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +1 -1
  110. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +1 -1
  111. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +1 -1
  112. package/docs/interfaces/Point.html +1 -1
  113. package/docs/interfaces/PointJson.html +1 -1
  114. package/docs/interfaces/Room.html +1 -1
  115. package/docs/interfaces/RoomInfo.html +1 -1
  116. package/docs/interfaces/RoomLabel.html +7 -7
  117. package/docs/interfaces/RoomRules.html +1 -1
  118. package/docs/interfaces/Rooms.html +1 -1
  119. package/docs/interfaces/Scissor.html +5 -5
  120. package/docs/interfaces/TagConfig.html +3 -3
  121. package/docs/interfaces/Tags.html +3 -3
  122. package/docs/modules.html +21 -21
  123. package/libs/ItemLabelPlugin/Plugin.js +1 -1
  124. package/libs/ItemLabelPlugin/typings.d.ts +1 -1
  125. package/libs/ModelItemLabelPlugin/ModelItemLabelPlugin.js +1 -1
  126. package/libs/ModelItemLabelPlugin/typings.d.ts +1 -1
  127. package/libs/ModelRoomLabelPlugin/Controller.js +1 -1
  128. package/libs/PanoDoorLabelPlugin/Controller.js +1 -1
  129. package/libs/PanoRulerProPlugin/Controller.js +1 -1
  130. package/libs/PanoSpatialTagPlugin/Plugin.js +2 -2
  131. package/libs/PanoTagPlugin/Components/Common/MediaItem.js +6 -5
  132. package/libs/PanoTagPlugin/Components/Common/Point/PointSwitch.js +15 -13
  133. package/libs/PanoTagPlugin/Components/Tag/AudioTag.js +6 -5
  134. package/libs/PanoTagPlugin/Components/Tag/ImageTextTag.js +17 -15
  135. package/libs/PanoTagPlugin/Components/Tag/LinkTag.js +9 -9
  136. package/libs/PanoTagPlugin/Components/Tag/MarketingTag.js +17 -15
  137. package/libs/PanoTagPlugin/Components/Tag/MediaPlane.js +12 -18
  138. package/libs/PanoTagPlugin/Components/Tag/TextTag.js +4 -3
  139. package/libs/PanoTagPlugin/controller/index.js +6 -6
  140. package/libs/PanoTagPlugin/typings/controller.d.ts +1 -1
  141. package/libs/PanoTagPlugin/utils/nullishCoalescing.d.ts +2 -0
  142. package/libs/PanoTagPlugin/utils/nullishCoalescing.js +9 -0
  143. package/libs/floorplan/MapviewFloorplanPlugin/Controller.js +1 -1
  144. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +1 -1
  145. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +1 -1
  146. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +1 -1
  147. package/package.json +1 -1
  148. package/libs/ItemLabelPlugin/ItemLabelComponent.svelte +0 -251
  149. package/libs/ItemLabelPlugin/ItemLabelItem.svelte +0 -183
  150. package/libs/ModelItemLabelPlugin/ItemLabelComponent.svelte +0 -155
  151. package/libs/ModelItemLabelPlugin/ItemLabelItem.svelte +0 -100
  152. package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte +0 -63
  153. package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte +0 -91
  154. package/libs/PanoDoorLabelPlugin/DoorLabelItem.svelte +0 -200
  155. package/libs/PanoRulerProPlugin/RulerItem.svelte +0 -166
  156. package/libs/PanoRulerProPlugin/RulerItems.svelte +0 -212
  157. package/libs/PanoSpatialTagPlugin/Components/origins.svelte +0 -58
  158. package/libs/PanoSpatialTagPlugin/Components/tag.svelte +0 -292
  159. package/libs/PanoTagPlugin/Components/Common/Arrow.svelte +0 -56
  160. package/libs/PanoTagPlugin/Components/Common/Audio.svelte +0 -82
  161. package/libs/PanoTagPlugin/Components/Common/Line/Polyline.svelte +0 -36
  162. package/libs/PanoTagPlugin/Components/Common/Line/Straight.svelte +0 -36
  163. package/libs/PanoTagPlugin/Components/Common/Media.svelte +0 -96
  164. package/libs/PanoTagPlugin/Components/Common/MediaItem.svelte +0 -49
  165. package/libs/PanoTagPlugin/Components/Common/MultiLineText.svelte +0 -56
  166. package/libs/PanoTagPlugin/Components/Common/Point/CustomPoint.svelte +0 -120
  167. package/libs/PanoTagPlugin/Components/Common/Point/DefaultPoint.svelte +0 -81
  168. package/libs/PanoTagPlugin/Components/Common/Point/PointSwitch.svelte +0 -30
  169. package/libs/PanoTagPlugin/Components/Common/Shadow.svelte +0 -46
  170. package/libs/PanoTagPlugin/Components/Common/Text.svelte +0 -91
  171. package/libs/PanoTagPlugin/Components/Common/TextItem.svelte +0 -42
  172. package/libs/PanoTagPlugin/Components/PointTag.svelte +0 -55
  173. package/libs/PanoTagPlugin/Components/Tag/AudioTag.svelte +0 -105
  174. package/libs/PanoTagPlugin/Components/Tag/CustomTag.svelte +0 -33
  175. package/libs/PanoTagPlugin/Components/Tag/ImageTextTag.svelte +0 -63
  176. package/libs/PanoTagPlugin/Components/Tag/LinkTag.svelte +0 -167
  177. package/libs/PanoTagPlugin/Components/Tag/MarketingTag.svelte +0 -235
  178. package/libs/PanoTagPlugin/Components/Tag/MediaPlane.svelte +0 -32
  179. package/libs/PanoTagPlugin/Components/Tag/TextTag.svelte +0 -63
  180. package/libs/PanoTagPlugin/Components/Tag/index.svelte +0 -154
  181. package/libs/PanoTagPlugin/Components/TagWrapper.svelte +0 -64
  182. package/libs/floorplan/Components/BaseImage.svelte +0 -26
  183. package/libs/floorplan/Components/Camera.svelte +0 -46
  184. package/libs/floorplan/Components/Compass.svelte +0 -51
  185. package/libs/floorplan/Components/CurrentFloor.svelte +0 -57
  186. package/libs/floorplan/Components/Main.svelte +0 -55
  187. package/libs/floorplan/Components/Normalmage.svelte +0 -11
  188. package/libs/floorplan/Components/RoomHighlight/Room.svelte +0 -27
  189. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte +0 -29
  190. package/libs/floorplan/Components/RoomLabels/RoomLabel.svelte +0 -120
  191. package/libs/floorplan/Components/RoomLabels/RoomLabels.svelte +0 -45
  192. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte +0 -42
  193. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte +0 -7
  194. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte +0 -24
  195. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte +0 -33
  196. package/libs/floorplan/Components/RuleLabels/RuleItem.svelte +0 -175
  197. package/libs/floorplan/Components/RuleLabels/RuleLabels.svelte +0 -33
  198. package/libs/floorplan/Components/SvgImage.svelte +0 -28
  199. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte +0 -85
  200. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte +0 -18
  201. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte +0 -40
  202. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte +0 -64
@@ -1,292 +0,0 @@
1
- <script>import { onMount, onDestroy, afterUpdate } from 'svelte';
2
- import '../typings';
3
- import { currentTarget } from '../store';
4
- export let id;
5
- export let upsideDown;
6
- export let content;
7
- export let contentZoom;
8
- export let lineWidthZoom;
9
- export let lineHeightZoom;
10
- export let destroying = false;
11
- export let folded;
12
- export let dispose;
13
- export let events;
14
- export let hooks;
15
- let contentWidth = 0;
16
- let contentHeight = 0;
17
- let contentDom;
18
- let show;
19
- let timeoutId = setTimeout(() => {
20
- if (!folded)
21
- show = true;
22
- timeoutId = undefined;
23
- }, 100);
24
- const handleClickContent = event => {
25
- const eventsName = Object.keys(events);
26
- let node = event.target;
27
- while (node) {
28
- const classNames = node.getAttribute('class');
29
- if (!classNames) {
30
- node = node.parentNode;
31
- continue;
32
- }
33
- if (classNames.includes('PanoSpatialTagPlugin__tag-content')) {
34
- node = null;
35
- break;
36
- }
37
- eventsName.forEach(key => {
38
- if (classNames.includes(key))
39
- events[key](id);
40
- });
41
- node = node.parentNode;
42
- }
43
- };
44
- onMount(() => {
45
- hooks.emit('initTag', { id });
46
- });
47
- const unsubscribe = currentTarget.subscribe((str) => {
48
- if (str === null)
49
- return;
50
- const [currentId, date] = str.split('-PanoSpatialTagPlugin-');
51
- if (id === currentId) {
52
- hooks.emit('clickOrigin', { id, show });
53
- if (!timeoutId) {
54
- show = folded;
55
- folded = !folded;
56
- timeoutId = setTimeout(() => {
57
- timeoutId = undefined;
58
- }, 1500);
59
- }
60
- }
61
- });
62
- afterUpdate(() => {
63
- contentWidth = contentDom.offsetWidth;
64
- contentHeight = contentDom.offsetHeight;
65
- if (timeoutId)
66
- return;
67
- show = !folded;
68
- });
69
- onDestroy(() => {
70
- hooks.emit('destroyTag', { id });
71
- unsubscribe();
72
- dispose();
73
- });
74
- </script>
75
-
76
- <div
77
- class:PanoSpatialTagPlugin__tag-x={true}
78
- class:PanoSpatialTagPlugin__tag-upside-down={upsideDown}
79
- class:PanoSpatialTagPlugin__tag-show={show}
80
- class:PanoSpatialTagPlugin__tag-hide={show === false || destroying}
81
- id={'PanoSpatialTagPlugin__' + id}
82
- style="height: {20 * lineHeightZoom}rem"
83
- >
84
- <div class="PanoSpatialTagPlugin__tag-shadow"
85
- style="transform: translate({contentWidth / 2 * contentZoom * 3}px, {
86
- contentHeight / 2 * (upsideDown ? -1 : 1) * contentZoom * 3
87
- }px) scale({1 / contentZoom})"
88
- />
89
- <div class="PanoSpatialTagPlugin__tag-line">
90
- <i class="PanoSpatialTagPlugin__tag-flagpole"
91
- style="width: {lineWidthZoom}rem;"
92
- />
93
- <i class="PanoSpatialTagPlugin__tag-line1"/>
94
- <i class="PanoSpatialTagPlugin__tag-line2"/>
95
- </div>
96
- <div class="PanoSpatialTagPlugin__tag-animate" style="transform: scale({contentZoom * 3})">
97
- <div class="PanoSpatialTagPlugin__tag-content" on:click="{handleClickContent}" bind:this={contentDom}>
98
- {@html content}
99
- </div>
100
- </div>
101
- </div>
102
-
103
- <style>
104
- .PanoSpatialTagPlugin__tag-x {
105
- position: absolute;
106
- top: 0;
107
- left: 0;
108
- display: block;
109
- white-space: nowrap;
110
- box-sizing: border-box;
111
- width: 25rem;
112
- height: 14rem;
113
- color: #FFF;
114
- transform: translate(0, -100%);
115
- transition: height .5s linear;
116
- }
117
-
118
- .PanoSpatialTagPlugin__tag-shadow {
119
- content: '';
120
- position: absolute;
121
- width: 30rem;
122
- height: 30rem;
123
- top: -15rem;
124
- left: -15rem;
125
- z-index: -1;
126
- opacity: 0;
127
- transition: opacity .8s .6s;
128
- background: url('https://vrlab-image4.ljcdn.com/release/web/PanoSpatialTagPlugin__blur.png');
129
- background-size: 30rem 30rem;
130
- }
131
-
132
- .PanoSpatialTagPlugin__tag-line {
133
- position: absolute;
134
- left: -1rem;
135
- width: 2rem;
136
- height: 100%;
137
- overflow: hidden;
138
- }
139
-
140
- .PanoSpatialTagPlugin__tag-flagpole {
141
- position: absolute;
142
- top: 0;
143
- left: 1rem;
144
- height: calc(100% - 1.5rem);
145
- width: .15rem;
146
- background: linear-gradient(to bottom, rgba(255, 255, 255, 1), rgba(255, 255, 255, .1));
147
- box-shadow: 0 .1rem .5rem rgba(0, 0, 0, .2);
148
- opacity: 0;
149
- transform: translate(-50%, 60%) scaleY(0);
150
- transition: transform .4s cubic-bezier(.44,.44,.74,.98) , opacity .4s cubic-bezier(.44,.44,.74,.98), width .5s linear, height .5s linear ;
151
- transform-origin: center bottom;
152
- }
153
-
154
- .PanoSpatialTagPlugin__tag-line1 {
155
- position: absolute;
156
- top: 0;
157
- left: 0.3rem;
158
- height: 1.8rem;
159
- width: .1rem;
160
- background: #fff;
161
- opacity: 0;
162
- transform: translate(-50%, 200%) scaleY(0);
163
- transform-origin: center top;
164
- }
165
-
166
- .PanoSpatialTagPlugin__tag-line2 {
167
- position: absolute;
168
- top: 0;
169
- left: 0.5rem;
170
- height: 1.8rem;
171
- width: .1rem;
172
- background: #fff;
173
- opacity: 0;
174
- transform: translate(-50%, 200%) scaleY(0);
175
- transform-origin: center top;
176
- }
177
-
178
- .PanoSpatialTagPlugin__tag-show .PanoSpatialTagPlugin__tag-line1 {
179
- animation: PanoSpatialTagPlugin__tag-line1 linear .5s forwards .45s;
180
- }
181
-
182
- .PanoSpatialTagPlugin__tag-show .PanoSpatialTagPlugin__tag-line2 {
183
- animation: PanoSpatialTagPlugin__tag-line2 linear .5s forwards .65s;
184
- }
185
-
186
- .PanoSpatialTagPlugin__tag-x.PanoSpatialTagPlugin__tag-upside-down {
187
- transform: translate(0, 0);
188
- }
189
-
190
- .PanoSpatialTagPlugin__tag-upside-down .PanoSpatialTagPlugin__tag-line {
191
- transform: scaleY(-1);
192
- }
193
-
194
- .PanoSpatialTagPlugin__tag-animate {
195
- position: relative;
196
- height: 100%;
197
- overflow: hidden;
198
- transform-origin: left top;
199
- transition: transform .5s linear;
200
- }
201
-
202
- .PanoSpatialTagPlugin__tag-upside-down .PanoSpatialTagPlugin__tag-animate{
203
- transform-origin: left bottom;
204
- }
205
-
206
- .PanoSpatialTagPlugin__tag-content {
207
- position: absolute;
208
- display: inline-block;
209
- transform: translate(-100%, 0);
210
- transition: transform .9s cubic-bezier(0,.65,.16,1.08) .6s;
211
- padding-left: .5rem;
212
- font-size: 1rem;
213
- }
214
-
215
- .PanoSpatialTagPlugin__tag-upside-down .PanoSpatialTagPlugin__tag-content{
216
- bottom: 0;
217
- }
218
-
219
- .PanoSpatialTagPlugin__tag-show .PanoSpatialTagPlugin__tag-flagpole {
220
- opacity: 1;
221
- transform: translate(-50%, 0) scaleY(1);
222
- }
223
-
224
- .PanoSpatialTagPlugin__tag-upside-down .PanoSpatialTagPlugin__tag-shadow {
225
- top: unset;
226
- bottom: -15rem;
227
- }
228
-
229
- .PanoSpatialTagPlugin__tag-show .PanoSpatialTagPlugin__tag-shadow {
230
- opacity: .32;
231
- }
232
-
233
- .PanoSpatialTagPlugin__tag-show .PanoSpatialTagPlugin__tag-content {
234
- transform: translate(0, 0);
235
- }
236
-
237
- .PanoSpatialTagPlugin__tag-hide .PanoSpatialTagPlugin__tag-flagpole {
238
- opacity: 0;
239
- transform: translate(-50%, 60%) scaleY(0);
240
- transition: transform .5s .55s, opacity .4s .55s;
241
- }
242
-
243
- .PanoSpatialTagPlugin__tag-hide .PanoSpatialTagPlugin__tag-shadow {
244
- opacity: 0;
245
- transition: opacity .8s;
246
- }
247
-
248
- .PanoSpatialTagPlugin__tag-hide .PanoSpatialTagPlugin__tag-content {
249
- transform: translate(-100%, 0);
250
- transition: transform .6s cubic-bezier(.53,.06,.88,.59);
251
- }
252
-
253
- .PanoSpatialTagPlugin__tag-hide .PanoSpatialTagPlugin__tag-content * {
254
- pointer-events: none;
255
- }
256
-
257
- .PanoSpatialTagPlugin__tag-hide .PanoSpatialTagPlugin__tag-line1 {
258
- opacity: 0.5;
259
- transform: translate(-50%, 10%) scaleY(0);
260
- animation: PanoSpatialTagPlugin__tag-line1-hide linear .28s forwards .3s;
261
- }
262
-
263
- .PanoSpatialTagPlugin__tag-hide .PanoSpatialTagPlugin__tag-line2 {
264
- opacity: 0.5;
265
- transform: translate(-50%, 0) scaleY(0);
266
- animation: PanoSpatialTagPlugin__tag-line2-hide linear .28s forwards .45s;
267
- }
268
-
269
- @keyframes PanoSpatialTagPlugin__tag-line1 {
270
- 0% { opacity: 0; transform: translate(-50%, 250%) scaleY(1); }
271
- 50% { opacity: 0.5; transform: translate(-50%, 135%) scaleY(1); }
272
- 100% { opacity: 0.5; transform: translate(-50%, 20%) scaleY(0); }
273
- }
274
-
275
- @keyframes PanoSpatialTagPlugin__tag-line2 {
276
- 0% { opacity: 0; transform: translate(-50%, 250%) scaleY(1); }
277
- 50% { opacity: 0.5; transform: translate(-50%, 125%) scaleY(1); }
278
- 100% { opacity: 0.5; transform: translate(-50%, 0) scaleY(0); }
279
- }
280
-
281
- @keyframes PanoSpatialTagPlugin__tag-line1-hide {
282
- 0% { opacity: 0.5; transform: translate(-50%, 10%) scaleY(0); }
283
- 50% { opacity: 0.2; transform: translate(-50%, 105%) scaleY(1); }
284
- 100% { opacity: 0; transform: translate(-50%, 200%) scaleY(0); }
285
- }
286
-
287
- @keyframes PanoSpatialTagPlugin__tag-line2-hide {
288
- 0% { opacity: 0.5; transform: translate(-50%, 0) scaleY(0); }
289
- 50% { opacity: 0.2; transform: translate(-50%, 100%) scaleY(1); }
290
- 100% { opacity: 0; transform: translate(-50%, 200%) scaleY(0); }
291
- }
292
- </style>
@@ -1,56 +0,0 @@
1
- <script>import { fade } from 'svelte/transition';
2
- import { Image_Arrow } from '../../Assets/Icon';
3
- import { cubicInOut } from 'svelte/easing';
4
- import Shadow from './Shadow.svelte';
5
- export let direction = 'right';
6
- export let visible = true;
7
- export let duration = 0;
8
- export let inDelay = 0;
9
- export let outDelay = 0;
10
- </script>
11
-
12
- {#if visible}
13
- <div class="arrow-wrapper">
14
- <Shadow center blurRadius={9} spreadRadius={3} />
15
- <div
16
- on:click
17
- in:fade|local={{ duration, delay: inDelay, easing: cubicInOut }}
18
- out:fade|local={{ duration, delay: outDelay, easing: cubicInOut }}
19
- class="arrow {direction}"
20
- style="background-image: url({Image_Arrow});"
21
- />
22
- </div>
23
- {/if}
24
-
25
- <style>
26
- .arrow {
27
- width: 100%;
28
- height: 100%;
29
- background-size: 100%;
30
- transition: transform 400ms ease-in-out;
31
- cursor: pointer;
32
- pointer-events: auto;
33
- }
34
-
35
- .arrow-wrapper {
36
- position: relative;
37
- width: 100%;
38
- height: 100%;
39
- }
40
-
41
- .arrow.left {
42
- transform: rotate(0deg);
43
- }
44
-
45
- .arrow.right {
46
- transform: rotate(-180deg);
47
- }
48
-
49
- .arrow.top {
50
- transform: rotate(90deg);
51
- }
52
-
53
- .arrow.bottom {
54
- transform: rotate(-90deg);
55
- }
56
- </style>
@@ -1,82 +0,0 @@
1
- <script>import { fade } from 'svelte/transition';
2
- import { cubicInOut } from 'svelte/easing';
3
- import Shadow from './Shadow.svelte';
4
- import { getContext } from 'svelte';
5
- export let inDelay = 0;
6
- export let outDelay = 0;
7
- export let duration = 0;
8
- export let url;
9
- export let unfolded;
10
- export let mediaStore;
11
- export let hooksInfo = {};
12
- const hooks = getContext('hooks');
13
- let audio;
14
- let paused = true;
15
- mediaStore.subscribe(({ currentMediaUrl }) => {
16
- if (currentMediaUrl !== url)
17
- audio === null || audio === void 0 ? void 0 : audio.pause();
18
- });
19
- $: {
20
- if (!unfolded)
21
- audio === null || audio === void 0 ? void 0 : audio.pause();
22
- }
23
- function onClick(event) {
24
- mediaStore.set({ currentMediaUrl: url });
25
- if (!audio)
26
- return;
27
- hooks.emit('click', Object.assign({ event, target: 'AudioTagPlayIcon', audioInstance: audio }, hooksInfo));
28
- audio.paused ? audio.play() : audio.pause();
29
- audio.onplay = (event) => hooks.emit('playStateChange', Object.assign({ event, state: 'playing', mediaInstance: audio }, hooksInfo));
30
- audio.onpause = (event) => hooks.emit('playStateChange', Object.assign({ event, state: 'paused', mediaInstance: audio }, hooksInfo));
31
- }
32
- </script>
33
-
34
- {#if unfolded}
35
- <div
36
- class="audio"
37
- class:paused
38
- on:click|stopPropagation={onClick}
39
- in:fade|local={{ duration, delay: inDelay, easing: cubicInOut }}
40
- out:fade|local={{ duration, delay: outDelay, easing: cubicInOut }}
41
- >
42
- <Shadow center blurRadius={15} spreadRadius={6} />
43
- <div class="audio-icon" />
44
- <audio bind:this={audio} bind:paused controls={false} playsInline src={url} />
45
- </div>
46
- {/if}
47
-
48
- <style>
49
- .audio {
50
- position: relative;
51
- width: 100%;
52
- height: 100%;
53
- cursor: pointer;
54
- }
55
-
56
- @keyframes playing {
57
- 25% {
58
- background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8' transform='translate(-1 -1)' fill='%23FFF' fill-rule='nonzero'/%3E%3C/svg%3E");
59
- }
60
-
61
- 50% {
62
- background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zM5.533 6.685L4.169 8.049l1.414 1.413a2.078 2.078 0 0 0-.05-2.777z' fill='%23FFF' fill-rule='nonzero'/%3E%3C/svg%3E");
63
- }
64
-
65
- 75% {
66
- background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm-.656 4.874l-.906.905A3.35 3.35 0 0 1 7.369 8.1c0 .875-.333 1.67-.88 2.268l.906.906A4.628 4.628 0 0 0 8.65 8.101a4.627 4.627 0 0 0-1.306-3.227zm-1.811 1.81L4.169 8.05l1.414 1.413a2.078 2.078 0 0 0-.05-2.777z' fill='%23FFF' fill-rule='nonzero'/%3E%3C/svg%3E");
67
- }
68
- }
69
-
70
- .paused .audio-icon {
71
- animation: none;
72
- }
73
-
74
- .audio-icon {
75
- width: 100%;
76
- height: 100%;
77
- border-radius: 50%;
78
- background-size: 100%;
79
- animation: playing 2s steps(1) infinite;
80
- background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm1.428 2.79l-.953.952a6.222 6.222 0 0 1 1.775 4.36c0 1.571-.58 3.006-1.538 4.103l-.184.202.793.794a7.344 7.344 0 0 0 2.21-5.26A7.341 7.341 0 0 0 9.428 2.79zM7.344 4.873l-.906.905A3.35 3.35 0 0 1 7.369 8.1c0 .802-.28 1.537-.748 2.115l-.132.153.906.906A4.628 4.628 0 0 0 8.65 8.101a4.627 4.627 0 0 0-1.306-3.227zm-1.811 1.81L4.169 8.05l1.414 1.413a2.078 2.078 0 0 0-.05-2.777z' fill='%23FFF' fill-rule='nonzero'/%3E%3C/svg%3E");
81
- }
82
- </style>
@@ -1,36 +0,0 @@
1
- <script>import uuid from '../../../../shared-utils/uuid';
2
- import { draw } from 'svelte/transition';
3
- import { cubicOut, cubicInOut } from 'svelte/easing';
4
- export let inDelay = 0;
5
- export let duration = 0;
6
- export let outDelay = 0;
7
- export let unfolded;
8
- const defsID = uuid();
9
- </script>
10
-
11
- <svg class="line" viewBox="0 0 105 21">
12
- <defs>
13
- <linearGradient id={defsID} gradientUnits="userSpaceOnUse">
14
- <stop offset="25%" stop-color="white" stop-opacity="1" />
15
- <stop offset="100%" stop-color="white" stop-opacity="0.5" />
16
- </linearGradient>
17
- </defs>
18
- {#if unfolded}
19
- <path
20
- in:draw|local={{ duration, delay: inDelay, easing: cubicOut }}
21
- out:draw|local={{ duration, delay: outDelay, easing: cubicInOut }}
22
- fill="none"
23
- stroke="url(#{defsID})"
24
- stroke-width="1"
25
- d="M0 21 L14 0.5 L105 0.5"
26
- />
27
- {/if}
28
- </svg>
29
-
30
- <style>
31
- .line {
32
- width: 100%;
33
- height: 100%;
34
- overflow: visible;
35
- }
36
- </style>
@@ -1,36 +0,0 @@
1
- <script>import { draw } from 'svelte/transition';
2
- import uuid from '../../../../shared-utils/uuid';
3
- export let inDelay = 0;
4
- export let duration = 0;
5
- export let outDelay = 0;
6
- export let unfolded;
7
- const defsID = uuid();
8
- </script>
9
-
10
- <svg class="straight-line" viewBox="0 0 148 1" preserveAspectRatio="none">
11
- <defs>
12
- <linearGradient id={defsID} gradientUnits="userSpaceOnUse">
13
- <stop offset="25%" stop-color="white" stop-opacity="1" />
14
- <stop offset="100%" stop-color="white" stop-opacity="0.5" />
15
- </linearGradient>
16
- </defs>
17
- {#if unfolded}
18
- <path
19
- in:draw|local={{ duration, delay: inDelay }}
20
- out:draw|local={{ duration, delay: outDelay }}
21
- fill="none"
22
- stroke="url(#{defsID})"
23
- stroke-width="1"
24
- d="M0 0.5 L 148 0.5"
25
- />
26
- {/if}
27
- </svg>
28
-
29
- <style>
30
- .straight-line {
31
- display: block;
32
- width: 100%;
33
- height: 100%;
34
- overflow: visible;
35
- }
36
- </style>
@@ -1,96 +0,0 @@
1
- <script>import { fly } from 'svelte/transition';
2
- import { linear } from 'svelte/easing';
3
- // import { Swiper, SwiperSlide } from 'swiper/svelte'
4
- import { Swiper, SwiperSlide } from '../../../../../node_modules/swiper/svelte';
5
- import { Autoplay } from 'swiper';
6
- import 'swiper/css';
7
- import 'swiper/css/autoplay';
8
- import { noTypecheck } from '../../utils';
9
- import MediaItem from './MediaItem.svelte';
10
- export let mediaData;
11
- export let inDelay = 0;
12
- export let outDelay = 0;
13
- export let duration = 0;
14
- export let unfolded = true;
15
- export let animation = true;
16
- export let objectFit = 'cover';
17
- export let enableCarousel = true;
18
- export let autoplayConfig = { autoplay: true, autoplayVideo: false };
19
- $: carouselEnabled = enableCarousel && (mediaData === null || mediaData === void 0 ? void 0 : mediaData.length) > 1;
20
- $: mediaDataList = mediaData;
21
- $: autoplay = mediaDataList.length > 1 && autoplayConfig.autoplay;
22
- let lastAutoPlayIndex = null;
23
- </script>
24
-
25
- {#if unfolded}
26
- <div
27
- class="media"
28
- class:unfolded
29
- in:fly|local={animation ? { y: 4, duration, delay: inDelay, easing: linear } : undefined}
30
- out:fly|local={animation ? { y: 4, duration, delay: outDelay, easing: linear } : undefined}
31
- >
32
- {#if carouselEnabled}
33
- <Swiper
34
- style="height: 100%"
35
- modules={[Autoplay]}
36
- spaceBetween={30}
37
- autoplay={autoplay ? noTypecheck({ delay: 2000, stopOnLastSlide: false, disableOnInteraction: false }) : false}
38
- loop
39
- on:slideChange={async (event) => {
40
- if (!autoplay) return
41
- if (!autoplayConfig.autoplayVideo) return
42
- const swiper = event.detail[0]
43
- if (!swiper) return
44
-
45
- const index = swiper.realIndex
46
- // loop 完一圈后,swiper.realIndex 会重复一次,比如有三张图片 [0,1,2],slideChange 触发后输出的 index 为 [0,1,2,0,0,1,2,0,0,1,2,0], 添加 lastAutoPlayIndex 判断后,输出为[0,1,2,0,1,2,0,1,2,0]
47
- if (index === lastAutoPlayIndex) return
48
- lastAutoPlayIndex = index
49
-
50
- const media = mediaDataList[index]
51
- if (!media) return
52
- if (media.type !== 'Video') return
53
-
54
- // 先暂停自动轮播
55
- swiper.autoplay.stop()
56
- // 播放视频
57
- await new Promise((resolve) => {
58
- const video = swiper.slides[swiper.activeIndex]?.querySelector('video')
59
- if (!video) {
60
- resolve(noTypecheck(null))
61
- return
62
- }
63
- video.muted = true
64
- video.play()
65
- video.onerror = () => resolve(noTypecheck(null))
66
- video.onended = () => resolve(noTypecheck(null))
67
- video.onclick = () => {
68
- video.pause()
69
- resolve(noTypecheck(null))
70
- }
71
- })
72
- // 恢复自动轮播
73
- swiper.autoplay.start()
74
- }}
75
- >
76
- {#each mediaDataList as media}
77
- <SwiperSlide>
78
- <MediaItem {media} {objectFit} />
79
- </SwiperSlide>
80
- {/each}
81
- </Swiper>
82
- {:else}
83
- <MediaItem media={mediaData[0]} {objectFit} />
84
- {/if}
85
- </div>
86
- {/if}
87
-
88
- <style>
89
- .media {
90
- width: 100%;
91
- height: 100%;
92
- position: relative;
93
- overflow: hidden;
94
- border-radius: 2px;
95
- }
96
- </style>
@@ -1,49 +0,0 @@
1
- <script>import { Image_Play } from '../../Assets/Icon';
2
- export let media;
3
- export let objectFit = 'cover';
4
- </script>
5
-
6
- {#if media}
7
- <div class="media-item" style={`object-fit: ${objectFit};`}>
8
- {#if media.type === 'Image'}
9
- <img class="media-content" src={media.url} alt={media.name} />
10
- {:else if media.type === 'Video'}
11
- <video
12
- class="media-content"
13
- src={media.url}
14
- poster={media.videoCoverUrl ?? undefined}
15
- preload={media.videoCoverUrl ? undefined : 'auto'}
16
- playsinline
17
- paused
18
- loop={false}
19
- crossorigin=""
20
- controls={false}
21
- muted
22
- />
23
- <div class="video-icon" style="background-image: url({Image_Play});" />
24
- {/if}
25
- </div>
26
- {/if}
27
-
28
- <style>
29
- .media-item {
30
- height: 100%;
31
- }
32
-
33
- .media-content {
34
- width: 100%;
35
- height: 100%;
36
- user-select: none;
37
- object-fit: inherit;
38
- }
39
-
40
- .video-icon {
41
- width: 28px;
42
- height: 28px;
43
- background-size: 100%;
44
- position: absolute;
45
- left: 50%;
46
- top: 50%;
47
- transform: translate(-50%, -50%);
48
- }
49
- </style>