vistaview 1.0.3 → 2.0.0

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 (342) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -61
  3. package/{dist/lib/extensions/dailymotion-video.d.ts → extensions/dailymotion-video/dist/main.d.ts} +3 -3
  4. package/extensions/dailymotion-video/dist/main.d.ts.map +1 -0
  5. package/extensions/dailymotion-video/dist/main.js +72 -0
  6. package/extensions/dailymotion-video/dist/main.js.map +1 -0
  7. package/extensions/dailymotion-video/dist/main.test.d.ts +2 -0
  8. package/extensions/dailymotion-video/dist/main.test.d.ts.map +1 -0
  9. package/extensions/dailymotion-video/dist/main.umd.cjs +2 -0
  10. package/extensions/dailymotion-video/dist/main.umd.cjs.map +1 -0
  11. package/extensions/download/dist/main.d.ts +4 -0
  12. package/extensions/download/dist/main.d.ts.map +1 -0
  13. package/extensions/download/dist/main.js +42 -0
  14. package/extensions/download/dist/main.js.map +1 -0
  15. package/extensions/download/dist/main.test.d.ts +2 -0
  16. package/extensions/download/dist/main.test.d.ts.map +1 -0
  17. package/extensions/download/dist/main.umd.cjs +2 -0
  18. package/extensions/download/dist/main.umd.cjs.map +1 -0
  19. package/{dist/lib/extensions/google-maps.d.ts → extensions/google-maps/dist/main.d.ts} +3 -3
  20. package/extensions/google-maps/dist/main.d.ts.map +1 -0
  21. package/extensions/google-maps/dist/main.js +96 -0
  22. package/extensions/google-maps/dist/main.js.map +1 -0
  23. package/extensions/google-maps/dist/main.test.d.ts +2 -0
  24. package/extensions/google-maps/dist/main.test.d.ts.map +1 -0
  25. package/extensions/google-maps/dist/main.umd.cjs +2 -0
  26. package/extensions/google-maps/dist/main.umd.cjs.map +1 -0
  27. package/extensions/image-story/dist/main.d.ts +16 -0
  28. package/extensions/image-story/dist/main.d.ts.map +1 -0
  29. package/extensions/image-story/dist/main.js +600 -0
  30. package/extensions/image-story/dist/main.js.map +1 -0
  31. package/extensions/image-story/dist/main.test.d.ts +2 -0
  32. package/extensions/image-story/dist/main.test.d.ts.map +1 -0
  33. package/extensions/image-story/dist/main.umd.cjs +3 -0
  34. package/extensions/image-story/dist/main.umd.cjs.map +1 -0
  35. package/extensions/image-story/dist/style.css +1 -0
  36. package/extensions/logger/dist/main.d.ts +3 -0
  37. package/extensions/logger/dist/main.d.ts.map +1 -0
  38. package/extensions/logger/dist/main.js +23 -0
  39. package/extensions/logger/dist/main.js.map +1 -0
  40. package/extensions/logger/dist/main.test.d.ts +2 -0
  41. package/extensions/logger/dist/main.test.d.ts.map +1 -0
  42. package/extensions/logger/dist/main.umd.cjs +2 -0
  43. package/extensions/logger/dist/main.umd.cjs.map +1 -0
  44. package/{dist/lib/extensions/mapbox.d.ts → extensions/mapbox/dist/main.d.ts} +3 -3
  45. package/extensions/mapbox/dist/main.d.ts.map +1 -0
  46. package/extensions/mapbox/dist/main.js +114 -0
  47. package/extensions/mapbox/dist/main.js.map +1 -0
  48. package/extensions/mapbox/dist/main.test.d.ts +2 -0
  49. package/extensions/mapbox/dist/main.test.d.ts.map +1 -0
  50. package/extensions/mapbox/dist/main.umd.cjs +2 -0
  51. package/extensions/mapbox/dist/main.umd.cjs.map +1 -0
  52. package/{dist/lib/extensions/openstreetmap.d.ts → extensions/openstreetmap/dist/main.d.ts} +3 -3
  53. package/extensions/openstreetmap/dist/main.d.ts.map +1 -0
  54. package/extensions/openstreetmap/dist/main.js +114 -0
  55. package/extensions/openstreetmap/dist/main.js.map +1 -0
  56. package/extensions/openstreetmap/dist/main.test.d.ts +2 -0
  57. package/extensions/openstreetmap/dist/main.test.d.ts.map +1 -0
  58. package/extensions/openstreetmap/dist/main.umd.cjs +2 -0
  59. package/extensions/openstreetmap/dist/main.umd.cjs.map +1 -0
  60. package/{dist/lib/extensions/select-box.d.ts → extensions/select-box/dist/main.d.ts} +2 -2
  61. package/extensions/select-box/dist/main.d.ts.map +1 -0
  62. package/extensions/select-box/dist/main.js +25 -0
  63. package/extensions/select-box/dist/main.js.map +1 -0
  64. package/extensions/select-box/dist/main.umd.cjs +2 -0
  65. package/extensions/select-box/dist/main.umd.cjs.map +1 -0
  66. package/{dist/lib/extensions/streamable-video.d.ts → extensions/streamable-video/dist/main.d.ts} +3 -3
  67. package/extensions/streamable-video/dist/main.d.ts.map +1 -0
  68. package/extensions/streamable-video/dist/main.js +68 -0
  69. package/extensions/streamable-video/dist/main.js.map +1 -0
  70. package/extensions/streamable-video/dist/main.test.d.ts +2 -0
  71. package/extensions/streamable-video/dist/main.test.d.ts.map +1 -0
  72. package/extensions/streamable-video/dist/main.umd.cjs +2 -0
  73. package/extensions/streamable-video/dist/main.umd.cjs.map +1 -0
  74. package/{dist/lib/extensions/twitch-video.d.ts → extensions/twitch-video/dist/main.d.ts} +3 -3
  75. package/extensions/twitch-video/dist/main.d.ts.map +1 -0
  76. package/extensions/twitch-video/dist/main.js +81 -0
  77. package/extensions/twitch-video/dist/main.js.map +1 -0
  78. package/extensions/twitch-video/dist/main.umd.cjs +2 -0
  79. package/extensions/twitch-video/dist/main.umd.cjs.map +1 -0
  80. package/{dist/lib/extensions/vidyard-video.d.ts → extensions/vidyard-video/dist/main.d.ts} +3 -3
  81. package/extensions/vidyard-video/dist/main.d.ts.map +1 -0
  82. package/extensions/vidyard-video/dist/main.js +72 -0
  83. package/extensions/vidyard-video/dist/main.js.map +1 -0
  84. package/extensions/vidyard-video/dist/main.test.d.ts +2 -0
  85. package/extensions/vidyard-video/dist/main.test.d.ts.map +1 -0
  86. package/extensions/vidyard-video/dist/main.umd.cjs +2 -0
  87. package/extensions/vidyard-video/dist/main.umd.cjs.map +1 -0
  88. package/{dist/lib/extensions/vimeo-video.d.ts → extensions/vimeo-video/dist/main.d.ts} +3 -3
  89. package/extensions/vimeo-video/dist/main.d.ts.map +1 -0
  90. package/extensions/vimeo-video/dist/main.js +68 -0
  91. package/extensions/vimeo-video/dist/main.js.map +1 -0
  92. package/extensions/vimeo-video/dist/main.test.d.ts +2 -0
  93. package/extensions/vimeo-video/dist/main.test.d.ts.map +1 -0
  94. package/extensions/vimeo-video/dist/main.umd.cjs +2 -0
  95. package/extensions/vimeo-video/dist/main.umd.cjs.map +1 -0
  96. package/{dist/lib/extensions/wistia-video.d.ts → extensions/wistia-video/dist/main.d.ts} +3 -3
  97. package/extensions/wistia-video/dist/main.d.ts.map +1 -0
  98. package/extensions/wistia-video/dist/main.js +72 -0
  99. package/extensions/wistia-video/dist/main.js.map +1 -0
  100. package/extensions/wistia-video/dist/main.test.d.ts +2 -0
  101. package/extensions/wistia-video/dist/main.test.d.ts.map +1 -0
  102. package/extensions/wistia-video/dist/main.umd.cjs +2 -0
  103. package/extensions/wistia-video/dist/main.umd.cjs.map +1 -0
  104. package/{dist/lib/extensions/youtube-video.d.ts → extensions/youtube-video/dist/main.d.ts} +3 -3
  105. package/extensions/youtube-video/dist/main.d.ts.map +1 -0
  106. package/extensions/youtube-video/dist/main.js +80 -0
  107. package/extensions/youtube-video/dist/main.js.map +1 -0
  108. package/extensions/youtube-video/dist/main.test.d.ts +2 -0
  109. package/extensions/youtube-video/dist/main.test.d.ts.map +1 -0
  110. package/extensions/youtube-video/dist/main.umd.cjs +2 -0
  111. package/extensions/youtube-video/dist/main.umd.cjs.map +1 -0
  112. package/frameworks/react/dist/main.d.ts +3 -0
  113. package/frameworks/react/dist/main.es.js +51 -0
  114. package/frameworks/react/dist/main.es.js.map +1 -0
  115. package/frameworks/react/dist/test-setup.d.ts +1 -0
  116. package/frameworks/react/dist/use-vistaview.d.ts +2 -0
  117. package/frameworks/react/dist/vistaview.d.ts +13 -0
  118. package/frameworks/solid/dist/dev.js +77 -0
  119. package/frameworks/solid/dist/dev.jsx +72 -0
  120. package/frameworks/solid/dist/index.d.ts +18 -0
  121. package/frameworks/solid/dist/index.js +76 -0
  122. package/frameworks/solid/dist/index.jsx +71 -0
  123. package/frameworks/svelte/dist/VistaView.svelte +65 -0
  124. package/frameworks/svelte/dist/VistaView.svelte.d.ts +46 -0
  125. package/frameworks/svelte/dist/index.d.ts +3 -0
  126. package/frameworks/svelte/dist/index.js +2 -0
  127. package/frameworks/svelte/dist/types.d.ts +14 -0
  128. package/frameworks/svelte/dist/types.js +1 -0
  129. package/frameworks/svelte/dist/use-vistaview.d.ts +2 -0
  130. package/frameworks/svelte/dist/use-vistaview.js +24 -0
  131. package/frameworks/svelte/dist/use-vistaview.test.d.ts +1 -0
  132. package/frameworks/svelte/dist/use-vistaview.test.js +115 -0
  133. package/frameworks/vue/dist/main.es.js +95 -0
  134. package/frameworks/vue/dist/main.es.js.map +1 -0
  135. package/{dist → main/dist}/lib/components.d.ts +1 -2
  136. package/main/dist/lib/components.js +107 -0
  137. package/main/dist/lib/defaults/close.d.ts +2 -0
  138. package/main/dist/lib/defaults/close.js +4 -0
  139. package/main/dist/lib/defaults/image-setup.d.ts +3 -0
  140. package/main/dist/lib/defaults/image-setup.js +4 -0
  141. package/main/dist/lib/defaults/init.d.ts +2 -0
  142. package/main/dist/lib/defaults/init.js +97 -0
  143. package/main/dist/lib/defaults/open.d.ts +2 -0
  144. package/main/dist/lib/defaults/open.js +8 -0
  145. package/main/dist/lib/defaults/options.d.ts +2 -0
  146. package/main/dist/lib/defaults/options.js +15 -0
  147. package/{dist → main/dist}/lib/defaults/transition.d.ts +2 -3
  148. package/main/dist/lib/defaults/transition.js +40 -0
  149. package/{dist → main/dist}/lib/main.d.ts +1 -2
  150. package/main/dist/lib/main.js +66 -0
  151. package/{dist → main/dist}/lib/throttle.d.ts +0 -1
  152. package/main/dist/lib/throttle.js +21 -0
  153. package/{dist → main/dist}/lib/types.d.ts +4 -5
  154. package/main/dist/lib/types.js +1 -0
  155. package/{dist → main/dist}/lib/utils/get-fitted-size.d.ts +0 -1
  156. package/main/dist/lib/utils/get-fitted-size.js +53 -0
  157. package/{dist → main/dist}/lib/utils/get-full-size-dim.d.ts +0 -1
  158. package/main/dist/lib/utils/get-full-size-dim.js +35 -0
  159. package/{dist → main/dist}/lib/utils/get-style.d.ts +0 -1
  160. package/main/dist/lib/utils/get-style.js +19 -0
  161. package/{dist → main/dist}/lib/utils/index.d.ts +0 -1
  162. package/main/dist/lib/utils/index.js +7 -0
  163. package/{dist → main/dist}/lib/utils/is-not-zero-css.d.ts +0 -1
  164. package/main/dist/lib/utils/is-not-zero-css.js +3 -0
  165. package/{dist → main/dist}/lib/utils/parse-element.d.ts +1 -2
  166. package/main/dist/lib/utils/parse-element.js +67 -0
  167. package/{dist → main/dist}/lib/vista-box.d.ts +3 -4
  168. package/main/dist/lib/vista-box.js +466 -0
  169. package/{dist → main/dist}/lib/vista-hires-transition.d.ts +2 -3
  170. package/main/dist/lib/vista-hires-transition.js +108 -0
  171. package/{dist → main/dist}/lib/vista-image-event.d.ts +2 -3
  172. package/main/dist/lib/vista-image-event.js +166 -0
  173. package/{dist → main/dist}/lib/vista-image.d.ts +2 -3
  174. package/main/dist/lib/vista-image.js +274 -0
  175. package/{dist → main/dist}/lib/vista-pointers.d.ts +1 -2
  176. package/main/dist/lib/vista-pointers.js +163 -0
  177. package/{dist → main/dist}/lib/vista-state.d.ts +2 -3
  178. package/main/dist/lib/vista-state.js +15 -0
  179. package/{dist → main/dist}/lib/vista-view.d.ts +2 -3
  180. package/main/dist/lib/vista-view.js +576 -0
  181. package/main/dist/style.css +1 -0
  182. package/main/dist/styles/autumn-amber.css +1 -0
  183. package/main/dist/styles/cotton-candy.css +1 -0
  184. package/main/dist/styles/dark-rounded.css +1 -0
  185. package/main/dist/styles/ember-glow.css +1 -0
  186. package/main/dist/styles/forest-moss.css +1 -0
  187. package/main/dist/styles/green-lake.css +1 -0
  188. package/main/dist/styles/ice-crystal.css +1 -0
  189. package/main/dist/styles/lavender-fields.css +1 -0
  190. package/main/dist/styles/midnight-gold.css +1 -0
  191. package/main/dist/styles/midnight-ocean.css +1 -0
  192. package/main/dist/styles/mint-chocolate.css +1 -0
  193. package/main/dist/styles/neon-nights.css +1 -0
  194. package/main/dist/styles/paper-light.css +1 -0
  195. package/main/dist/styles/retro-arcade.css +1 -0
  196. package/main/dist/styles/soft-neutral.css +1 -0
  197. package/main/dist/styles/stark-minimal.css +1 -0
  198. package/main/dist/styles/strawberry.css +1 -0
  199. package/{dist → main/dist}/vistaview.d.ts +0 -1
  200. package/main/dist/vistaview.js +14 -0
  201. package/main/dist/vistaview.umd.js +18 -0
  202. package/package.json +122 -67
  203. package/dist/extensions/dailymotion-video.d.ts +0 -2
  204. package/dist/extensions/dailymotion-video.js +0 -80
  205. package/dist/extensions/dailymotion-video.umd.js +0 -1
  206. package/dist/extensions/download.d.ts +0 -2
  207. package/dist/extensions/download.js +0 -35
  208. package/dist/extensions/download.umd.js +0 -1
  209. package/dist/extensions/google-maps.d.ts +0 -2
  210. package/dist/extensions/google-maps.js +0 -96
  211. package/dist/extensions/google-maps.umd.js +0 -1
  212. package/dist/extensions/image-story.d.ts +0 -2
  213. package/dist/extensions/image-story.js +0 -621
  214. package/dist/extensions/image-story.umd.js +0 -2
  215. package/dist/extensions/logger.d.ts +0 -2
  216. package/dist/extensions/logger.js +0 -23
  217. package/dist/extensions/logger.umd.js +0 -1
  218. package/dist/extensions/mapbox.d.ts +0 -2
  219. package/dist/extensions/mapbox.js +0 -124
  220. package/dist/extensions/mapbox.umd.js +0 -1
  221. package/dist/extensions/openstreetmap.d.ts +0 -2
  222. package/dist/extensions/openstreetmap.js +0 -125
  223. package/dist/extensions/openstreetmap.umd.js +0 -1
  224. package/dist/extensions/select-box.d.ts +0 -2
  225. package/dist/extensions/select-box.js +0 -29
  226. package/dist/extensions/select-box.umd.js +0 -1
  227. package/dist/extensions/streamable-video.d.ts +0 -2
  228. package/dist/extensions/streamable-video.js +0 -76
  229. package/dist/extensions/streamable-video.umd.js +0 -1
  230. package/dist/extensions/twitch-video.d.ts +0 -2
  231. package/dist/extensions/twitch-video.js +0 -79
  232. package/dist/extensions/vidyard-video.d.ts +0 -2
  233. package/dist/extensions/vidyard-video.js +0 -80
  234. package/dist/extensions/vidyard-video.umd.js +0 -1
  235. package/dist/extensions/vimeo-video.d.ts +0 -2
  236. package/dist/extensions/vimeo-video.js +0 -76
  237. package/dist/extensions/vimeo-video.umd.js +0 -1
  238. package/dist/extensions/wistia-video.d.ts +0 -2
  239. package/dist/extensions/wistia-video.js +0 -85
  240. package/dist/extensions/wistia-video.umd.js +0 -1
  241. package/dist/extensions/youtube-video.d.ts +0 -2
  242. package/dist/extensions/youtube-video.js +0 -88
  243. package/dist/extensions/youtube-video.umd.js +0 -1
  244. package/dist/lib/components.d.ts.map +0 -1
  245. package/dist/lib/defaults/close.d.ts +0 -3
  246. package/dist/lib/defaults/close.d.ts.map +0 -1
  247. package/dist/lib/defaults/image-setup.d.ts +0 -4
  248. package/dist/lib/defaults/image-setup.d.ts.map +0 -1
  249. package/dist/lib/defaults/init.d.ts +0 -3
  250. package/dist/lib/defaults/init.d.ts.map +0 -1
  251. package/dist/lib/defaults/open.d.ts +0 -3
  252. package/dist/lib/defaults/open.d.ts.map +0 -1
  253. package/dist/lib/defaults/options.d.ts +0 -3
  254. package/dist/lib/defaults/options.d.ts.map +0 -1
  255. package/dist/lib/defaults/transition.d.ts.map +0 -1
  256. package/dist/lib/extensions/dailymotion-video.d.ts.map +0 -1
  257. package/dist/lib/extensions/download.d.ts +0 -3
  258. package/dist/lib/extensions/download.d.ts.map +0 -1
  259. package/dist/lib/extensions/google-maps.d.ts.map +0 -1
  260. package/dist/lib/extensions/image-story.d.ts +0 -12
  261. package/dist/lib/extensions/image-story.d.ts.map +0 -1
  262. package/dist/lib/extensions/logger.d.ts +0 -3
  263. package/dist/lib/extensions/logger.d.ts.map +0 -1
  264. package/dist/lib/extensions/mapbox.d.ts.map +0 -1
  265. package/dist/lib/extensions/openstreetmap.d.ts.map +0 -1
  266. package/dist/lib/extensions/select-box.d.ts.map +0 -1
  267. package/dist/lib/extensions/streamable-video.d.ts.map +0 -1
  268. package/dist/lib/extensions/twitch-video.d.ts.map +0 -1
  269. package/dist/lib/extensions/vidyard-video.d.ts.map +0 -1
  270. package/dist/lib/extensions/vimeo-video.d.ts.map +0 -1
  271. package/dist/lib/extensions/wistia-video.d.ts.map +0 -1
  272. package/dist/lib/extensions/youtube-video.d.ts.map +0 -1
  273. package/dist/lib/main.d.ts.map +0 -1
  274. package/dist/lib/throttle.d.ts.map +0 -1
  275. package/dist/lib/types.d.ts.map +0 -1
  276. package/dist/lib/utils/get-fitted-size.d.ts.map +0 -1
  277. package/dist/lib/utils/get-full-size-dim.d.ts.map +0 -1
  278. package/dist/lib/utils/get-style.d.ts.map +0 -1
  279. package/dist/lib/utils/index.d.ts.map +0 -1
  280. package/dist/lib/utils/is-not-zero-css.d.ts.map +0 -1
  281. package/dist/lib/utils/parse-element.d.ts.map +0 -1
  282. package/dist/lib/vista-box.d.ts.map +0 -1
  283. package/dist/lib/vista-hires-transition.d.ts.map +0 -1
  284. package/dist/lib/vista-image-event.d.ts.map +0 -1
  285. package/dist/lib/vista-image.d.ts.map +0 -1
  286. package/dist/lib/vista-pointers.d.ts.map +0 -1
  287. package/dist/lib/vista-state.d.ts.map +0 -1
  288. package/dist/lib/vista-view.d.ts.map +0 -1
  289. package/dist/react.d.ts +0 -11
  290. package/dist/react.d.ts.map +0 -1
  291. package/dist/react.js +0 -69
  292. package/dist/solid.d.ts +0 -3
  293. package/dist/solid.d.ts.map +0 -1
  294. package/dist/solid.js +0 -24
  295. package/dist/style.css +0 -1
  296. package/dist/style.d.ts +0 -1
  297. package/dist/styles/autumn-amber.css +0 -1
  298. package/dist/styles/autumn-amber.d.ts +0 -1
  299. package/dist/styles/cotton-candy.css +0 -1
  300. package/dist/styles/cotton-candy.d.ts +0 -1
  301. package/dist/styles/dark-rounded.css +0 -1
  302. package/dist/styles/dark-rounded.d.ts +0 -1
  303. package/dist/styles/ember-glow.css +0 -1
  304. package/dist/styles/ember-glow.d.ts +0 -1
  305. package/dist/styles/extensions/image-story.css +0 -1
  306. package/dist/styles/extensions/image-story.d.ts +0 -1
  307. package/dist/styles/forest-moss.css +0 -1
  308. package/dist/styles/forest-moss.d.ts +0 -1
  309. package/dist/styles/green-lake.css +0 -1
  310. package/dist/styles/green-lake.d.ts +0 -1
  311. package/dist/styles/ice-crystal.css +0 -1
  312. package/dist/styles/ice-crystal.d.ts +0 -1
  313. package/dist/styles/lavender-fields.css +0 -1
  314. package/dist/styles/lavender-fields.d.ts +0 -1
  315. package/dist/styles/midnight-gold.css +0 -1
  316. package/dist/styles/midnight-gold.d.ts +0 -1
  317. package/dist/styles/midnight-ocean.css +0 -1
  318. package/dist/styles/midnight-ocean.d.ts +0 -1
  319. package/dist/styles/mint-chocolate.css +0 -1
  320. package/dist/styles/mint-chocolate.d.ts +0 -1
  321. package/dist/styles/neon-nights.css +0 -1
  322. package/dist/styles/neon-nights.d.ts +0 -1
  323. package/dist/styles/paper-light.css +0 -1
  324. package/dist/styles/paper-light.d.ts +0 -1
  325. package/dist/styles/retro-arcade.css +0 -1
  326. package/dist/styles/retro-arcade.d.ts +0 -1
  327. package/dist/styles/soft-neutral.css +0 -1
  328. package/dist/styles/soft-neutral.d.ts +0 -1
  329. package/dist/styles/stark-minimal.css +0 -1
  330. package/dist/styles/stark-minimal.d.ts +0 -1
  331. package/dist/styles/strawberry.css +0 -1
  332. package/dist/styles/strawberry.d.ts +0 -1
  333. package/dist/svelte.d.ts +0 -3
  334. package/dist/svelte.d.ts.map +0 -1
  335. package/dist/svelte.js +0 -22
  336. package/dist/vista-box-zG6ZgBcI.js +0 -334
  337. package/dist/vistaview.d.ts.map +0 -1
  338. package/dist/vistaview.js +0 -1013
  339. package/dist/vistaview.umd.js +0 -18
  340. package/dist/vue.d.ts +0 -25
  341. package/dist/vue.d.ts.map +0 -1
  342. package/dist/vue.js +0 -79
@@ -0,0 +1,46 @@
1
+ import type { VistaOpt, VistaInterface } from 'vistaview';
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
16
+ default: any;
17
+ } ? Props extends Record<string, never> ? any : {
18
+ children?: any;
19
+ } : {});
20
+ declare const VistaView: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
+ [x: string]: any;
22
+ selector?: string | undefined;
23
+ options?: VistaOpt | undefined;
24
+ id?: string | undefined;
25
+ vistaRef?: ((obj: {
26
+ vistaView: VistaInterface | null;
27
+ container: HTMLElement | null;
28
+ } | null) => void) | undefined | undefined;
29
+ getApi?: (() => {
30
+ vistaView: VistaInterface | null;
31
+ container: HTMLDivElement | null;
32
+ }) | undefined;
33
+ }, {
34
+ default: {};
35
+ }>, {
36
+ [evt: string]: CustomEvent<any>;
37
+ }, {
38
+ default: {};
39
+ }, {
40
+ getApi: () => {
41
+ vistaView: VistaInterface | null;
42
+ container: HTMLDivElement | null;
43
+ };
44
+ }, string>;
45
+ type VistaView = InstanceType<typeof VistaView>;
46
+ export default VistaView;
@@ -0,0 +1,3 @@
1
+ export { default as VistaView } from "./VistaView.svelte";
2
+ export { useVistaView } from "./use-vistaview.js";
3
+ export type { VistaViewProps, VistaComponentRef } from "./types.js";
@@ -0,0 +1,2 @@
1
+ export { default as VistaView } from "./VistaView.svelte";
2
+ export { useVistaView } from "./use-vistaview.js";
@@ -0,0 +1,14 @@
1
+ import type { VistaInterface, VistaOpt } from 'vistaview';
2
+ export interface VistaViewProps {
3
+ selector?: string;
4
+ options?: VistaOpt;
5
+ id?: string;
6
+ vistaRef?: (obj: {
7
+ vistaView: VistaInterface | null;
8
+ container: HTMLElement | null;
9
+ } | null) => void;
10
+ }
11
+ export type VistaComponentRef = {
12
+ vistaView: VistaInterface | null;
13
+ container: HTMLElement | null;
14
+ } | null;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { VistaParams, VistaInterface } from 'vistaview';
2
+ export declare function useVistaView(options: VistaParams): VistaInterface;
@@ -0,0 +1,24 @@
1
+ import { onMount, onDestroy } from 'svelte';
2
+ import { vistaView } from 'vistaview';
3
+ export function useVistaView(options) {
4
+ let instance = null;
5
+ onMount(() => {
6
+ instance = vistaView(options);
7
+ });
8
+ onDestroy(() => {
9
+ instance?.destroy();
10
+ instance = null;
11
+ });
12
+ return {
13
+ open: (i = 0) => instance?.open(i),
14
+ close: () => instance?.close() ?? Promise.resolve(),
15
+ reset: () => instance?.reset(),
16
+ next: () => instance?.next(),
17
+ prev: () => instance?.prev(),
18
+ zoomIn: () => instance?.zoomIn(),
19
+ zoomOut: () => instance?.zoomOut(),
20
+ getCurrentIndex: () => instance?.getCurrentIndex() ?? -1,
21
+ view: (i) => instance?.view(i),
22
+ destroy: () => instance?.destroy(),
23
+ };
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,115 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { render } from '@testing-library/svelte';
3
+ import HookHarness from '../HookHarness.svelte';
4
+ import { useVistaView } from './use-vistaview';
5
+ const { mockVistaView, mockInstance } = vi.hoisted(() => {
6
+ const mockInstance = {
7
+ open: vi.fn(),
8
+ close: vi.fn(() => Promise.resolve()),
9
+ reset: vi.fn(),
10
+ next: vi.fn(),
11
+ prev: vi.fn(),
12
+ zoomIn: vi.fn(),
13
+ zoomOut: vi.fn(),
14
+ getCurrentIndex: vi.fn(() => -1),
15
+ view: vi.fn(),
16
+ destroy: vi.fn(),
17
+ };
18
+ return {
19
+ mockVistaView: vi.fn(() => mockInstance),
20
+ mockInstance,
21
+ };
22
+ });
23
+ vi.mock('vistaview', () => ({
24
+ vistaView: mockVistaView,
25
+ }));
26
+ function createWrapper(options = {}) {
27
+ let api;
28
+ const { unmount } = render(HookHarness, {
29
+ props: {
30
+ options: options,
31
+ onReady: (a) => {
32
+ api = a;
33
+ },
34
+ },
35
+ });
36
+ return { getApi: () => api, unmount };
37
+ }
38
+ describe('useVistaView', () => {
39
+ beforeEach(() => {
40
+ vi.clearAllMocks();
41
+ });
42
+ it('returns the full VistaInterface shape', () => {
43
+ const { getApi } = createWrapper({ elements: '#gallery a' });
44
+ const api = getApi();
45
+ expect(api).toHaveProperty('open');
46
+ expect(api).toHaveProperty('close');
47
+ expect(api).toHaveProperty('reset');
48
+ expect(api).toHaveProperty('next');
49
+ expect(api).toHaveProperty('prev');
50
+ expect(api).toHaveProperty('zoomIn');
51
+ expect(api).toHaveProperty('zoomOut');
52
+ expect(api).toHaveProperty('getCurrentIndex');
53
+ expect(api).toHaveProperty('view');
54
+ expect(api).toHaveProperty('destroy');
55
+ });
56
+ it('passes options to vistaView on mount', () => {
57
+ createWrapper({ elements: '#gallery a' });
58
+ expect(mockVistaView).toHaveBeenCalledWith({ elements: '#gallery a' });
59
+ });
60
+ it('delegates open to the core instance', () => {
61
+ const { getApi } = createWrapper({ elements: '#gallery a' });
62
+ getApi().open(1);
63
+ expect(mockInstance.open).toHaveBeenCalledWith(1);
64
+ });
65
+ it('delegates close to the core instance', async () => {
66
+ const { getApi } = createWrapper({ elements: '#gallery a' });
67
+ await getApi().close();
68
+ expect(mockInstance.close).toHaveBeenCalled();
69
+ });
70
+ it('delegates reset to the core instance', () => {
71
+ const { getApi } = createWrapper({ elements: '#gallery a' });
72
+ getApi().reset();
73
+ expect(mockInstance.reset).toHaveBeenCalled();
74
+ });
75
+ it('delegates next to the core instance', () => {
76
+ const { getApi } = createWrapper({ elements: '#gallery a' });
77
+ getApi().next();
78
+ expect(mockInstance.next).toHaveBeenCalled();
79
+ });
80
+ it('delegates prev to the core instance', () => {
81
+ const { getApi } = createWrapper({ elements: '#gallery a' });
82
+ getApi().prev();
83
+ expect(mockInstance.prev).toHaveBeenCalled();
84
+ });
85
+ it('delegates zoomIn to the core instance', () => {
86
+ const { getApi } = createWrapper({ elements: '#gallery a' });
87
+ getApi().zoomIn();
88
+ expect(mockInstance.zoomIn).toHaveBeenCalled();
89
+ });
90
+ it('delegates zoomOut to the core instance', () => {
91
+ const { getApi } = createWrapper({ elements: '#gallery a' });
92
+ getApi().zoomOut();
93
+ expect(mockInstance.zoomOut).toHaveBeenCalled();
94
+ });
95
+ it('delegates getCurrentIndex to the core instance', () => {
96
+ const { getApi } = createWrapper({ elements: '#gallery a' });
97
+ expect(getApi().getCurrentIndex()).toBe(-1);
98
+ expect(mockInstance.getCurrentIndex).toHaveBeenCalled();
99
+ });
100
+ it('delegates view to the core instance', () => {
101
+ const { getApi } = createWrapper({ elements: '#gallery a' });
102
+ getApi().view(3);
103
+ expect(mockInstance.view).toHaveBeenCalledWith(3);
104
+ });
105
+ it('delegates destroy to the core instance', () => {
106
+ const { getApi } = createWrapper({ elements: '#gallery a' });
107
+ getApi().destroy();
108
+ expect(mockInstance.destroy).toHaveBeenCalled();
109
+ });
110
+ it('calls destroy on unmount', () => {
111
+ const { unmount } = createWrapper({ elements: '#gallery a' });
112
+ unmount();
113
+ expect(mockInstance.destroy).toHaveBeenCalledTimes(1);
114
+ });
115
+ });
@@ -0,0 +1,95 @@
1
+ import { computed, createElementBlock, defineComponent, mergeProps, nextTick, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, useSlots, watch } from "vue";
2
+ import { vistaView } from "vistaview";
3
+ function useVistaView(e) {
4
+ let o = ref(null);
5
+ return onMounted(() => {
6
+ o.value = vistaView(e);
7
+ }), onBeforeUnmount(() => {
8
+ o.value?.destroy(), o.value = null;
9
+ }), {
10
+ open: (e = 0) => o.value?.open(e),
11
+ close: () => o.value?.close?.() ?? Promise.resolve(),
12
+ reset: () => o.value?.reset(),
13
+ next: () => o.value?.next(),
14
+ prev: () => o.value?.prev(),
15
+ zoomIn: () => o.value?.zoomIn(),
16
+ zoomOut: () => o.value?.zoomOut(),
17
+ getCurrentIndex: () => o.value?.getCurrentIndex?.() ?? -1,
18
+ view: (e) => o.value?.view(e),
19
+ destroy: () => o.value?.destroy()
20
+ };
21
+ }
22
+ var vistaview_vue_vue_type_script_lang_default = defineComponent({
23
+ name: "VistaView",
24
+ props: {
25
+ selector: {
26
+ type: String,
27
+ default: "> a"
28
+ },
29
+ options: {
30
+ type: Object,
31
+ default: () => ({})
32
+ },
33
+ id: {
34
+ type: String,
35
+ default: ""
36
+ }
37
+ },
38
+ setup(o, { expose: s }) {
39
+ let c = ref(null), f = ref(null), m = Math.random().toString(36).slice(2, 9), h = computed(() => o.id || `vvw-gallery-${m}`), g = useSlots(), _ = {
40
+ open: (e = 0) => f.value?.open(e),
41
+ close: () => f.value?.close?.() ?? Promise.resolve(),
42
+ reset: () => f.value?.reset(),
43
+ next: () => f.value?.next(),
44
+ prev: () => f.value?.prev(),
45
+ zoomIn: () => f.value?.zoomIn(),
46
+ zoomOut: () => f.value?.zoomOut(),
47
+ getCurrentIndex: () => f.value?.getCurrentIndex?.() ?? -1,
48
+ view: (e) => f.value?.view(e),
49
+ destroy: () => f.value?.destroy()
50
+ };
51
+ function v() {
52
+ if (!c.value) return;
53
+ let e = c.value.id;
54
+ f.value?.destroy(), f.value = vistaView({
55
+ ...o.options,
56
+ elements: `#${e} ${o.selector}`
57
+ });
58
+ }
59
+ return onMounted(() => {
60
+ v();
61
+ }), onBeforeUnmount(() => {
62
+ f.value?.destroy(), f.value = null;
63
+ }), watch(() => o.selector, () => {
64
+ nextTick(() => v());
65
+ }), watch(() => o.options, () => {
66
+ nextTick(() => v());
67
+ }, { deep: !0 }), watch(() => g.default?.(), () => {
68
+ requestAnimationFrame(() => {
69
+ _.reset();
70
+ });
71
+ }), s({
72
+ vistaView: _,
73
+ get container() {
74
+ return c.value;
75
+ }
76
+ }), {
77
+ containerRef: c,
78
+ galleryId: h
79
+ };
80
+ }
81
+ }), __plugin_vue_export_helper_default = (e, o) => {
82
+ let s = e.__vccOpts || e;
83
+ for (let [e, c] of o) s[e] = c;
84
+ return s;
85
+ }, _hoisted_1 = ["id"];
86
+ function _sfc_render(e, s, l, u, d, p) {
87
+ return openBlock(), createElementBlock("div", mergeProps({
88
+ id: e.galleryId,
89
+ ref: "containerRef"
90
+ }, e.$attrs), [renderSlot(e.$slots, "default")], 16, _hoisted_1);
91
+ }
92
+ var vistaview_default = /* @__PURE__ */ __plugin_vue_export_helper_default(vistaview_vue_vue_type_script_lang_default, [["render", _sfc_render]]);
93
+ export { vistaview_default as VistaView, useVistaView };
94
+
95
+ //# sourceMappingURL=main.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.es.js","names":[],"sources":["../src/use-vistaview.ts","../src/vistaview.vue","../src/vistaview.vue"],"sourcesContent":["import { ref, onMounted, onBeforeUnmount } from 'vue';\nimport { vistaView } from 'vistaview';\nimport type { VistaParams, VistaInterface } from 'vistaview';\n\nexport function useVistaView(options: VistaParams): VistaInterface {\n const instance = ref<VistaInterface | null>(null);\n \n onMounted(() => {\n instance.value = vistaView(options);\n });\n\n onBeforeUnmount(() => {\n instance.value?.destroy();\n instance.value = null;\n });\n\n return {\n open: (i = 0) => instance.value?.open(i),\n close: () => instance.value?.close?.() ?? Promise.resolve(),\n reset: () => instance.value?.reset(),\n next: () => instance.value?.next(),\n prev: () => instance.value?.prev(),\n zoomIn: () => instance.value?.zoomIn(),\n zoomOut: () => instance.value?.zoomOut(),\n getCurrentIndex: () => instance.value?.getCurrentIndex?.() ?? -1,\n view: (i: number) => instance.value?.view(i),\n destroy: () => instance.value?.destroy(),\n } as unknown as VistaInterface;\n}","<script lang=\"ts\">\nimport { defineComponent, ref, onMounted, onBeforeUnmount, computed, watch, nextTick, useSlots } from 'vue';\nimport { vistaView } from 'vistaview';\nimport type { VistaInterface, VistaOpt } from 'vistaview';\n\nexport default defineComponent({\n name: 'VistaView',\n props: {\n selector: { type: String, default: '> a' },\n options: { type: Object as () => VistaOpt, default: () => ({}) },\n id: { type: String, default: '' },\n },\n setup(props, { expose }) {\n const containerRef = ref<HTMLElement | null>(null);\n const instanceRef = ref<VistaInterface | null>(null);\n const generatedId = Math.random().toString(36).slice(2, 9);\n const galleryId = computed(() => (props.id || `vvw-gallery-${generatedId}`));\n const slots = useSlots();\n\n // API object to expose and optionally assign to the passed `vistaRef` prop\n const api = {\n open: (i = 0) => instanceRef.value?.open(i),\n close: () => instanceRef.value?.close?.() ?? Promise.resolve(),\n reset: () => instanceRef.value?.reset(),\n next: () => instanceRef.value?.next(),\n prev: () => instanceRef.value?.prev(),\n zoomIn: () => instanceRef.value?.zoomIn(),\n zoomOut: () => instanceRef.value?.zoomOut(),\n getCurrentIndex: () => instanceRef.value?.getCurrentIndex?.() ?? -1,\n view: (i: number) => instanceRef.value?.view(i),\n destroy: () => instanceRef.value?.destroy(),\n } as unknown as VistaInterface;\n\n // helper to initialize the instance; destroys previous instance if any\n function initInstance() {\n if (!containerRef.value) return;\n const id = containerRef.value.id;\n instanceRef.value?.destroy();\n instanceRef.value = vistaView({\n ...(props.options as VistaOpt),\n elements: `#${id} ${props.selector}`,\n });\n }\n\n onMounted(() => {\n // initial instantiation\n initInstance();\n });\n\n onBeforeUnmount(() => {\n instanceRef.value?.destroy();\n instanceRef.value = null;\n });\n\n // watch props for changes and re-initialize\n watch(() => props.selector, () => {\n nextTick(() => initInstance());\n });\n\n watch(() => props.options, () => {\n nextTick(() => initInstance());\n }, { deep: true });\n\n watch(\n () => slots.default?.(),\n () => {\n requestAnimationFrame(() => {\n api.reset()\n })\n }\n );\n\n // also expose API and DOM on the component instance for users who use `ref` on the component\n // expose: { vistaView, container } where `container` is a live getter to the DOM element\n expose({\n vistaView: api,\n get container() {\n return containerRef.value;\n },\n });\n\n return { containerRef, galleryId };\n },\n});\n</script>\n\n<template>\n <div :id=\"galleryId\" ref=\"containerRef\" v-bind=\"$attrs\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\nimport { defineComponent, ref, onMounted, onBeforeUnmount, computed, watch, nextTick, useSlots } from 'vue';\nimport { vistaView } from 'vistaview';\nimport type { VistaInterface, VistaOpt } from 'vistaview';\n\nexport default defineComponent({\n name: 'VistaView',\n props: {\n selector: { type: String, default: '> a' },\n options: { type: Object as () => VistaOpt, default: () => ({}) },\n id: { type: String, default: '' },\n },\n setup(props, { expose }) {\n const containerRef = ref<HTMLElement | null>(null);\n const instanceRef = ref<VistaInterface | null>(null);\n const generatedId = Math.random().toString(36).slice(2, 9);\n const galleryId = computed(() => (props.id || `vvw-gallery-${generatedId}`));\n const slots = useSlots();\n\n // API object to expose and optionally assign to the passed `vistaRef` prop\n const api = {\n open: (i = 0) => instanceRef.value?.open(i),\n close: () => instanceRef.value?.close?.() ?? Promise.resolve(),\n reset: () => instanceRef.value?.reset(),\n next: () => instanceRef.value?.next(),\n prev: () => instanceRef.value?.prev(),\n zoomIn: () => instanceRef.value?.zoomIn(),\n zoomOut: () => instanceRef.value?.zoomOut(),\n getCurrentIndex: () => instanceRef.value?.getCurrentIndex?.() ?? -1,\n view: (i: number) => instanceRef.value?.view(i),\n destroy: () => instanceRef.value?.destroy(),\n } as unknown as VistaInterface;\n\n // helper to initialize the instance; destroys previous instance if any\n function initInstance() {\n if (!containerRef.value) return;\n const id = containerRef.value.id;\n instanceRef.value?.destroy();\n instanceRef.value = vistaView({\n ...(props.options as VistaOpt),\n elements: `#${id} ${props.selector}`,\n });\n }\n\n onMounted(() => {\n // initial instantiation\n initInstance();\n });\n\n onBeforeUnmount(() => {\n instanceRef.value?.destroy();\n instanceRef.value = null;\n });\n\n // watch props for changes and re-initialize\n watch(() => props.selector, () => {\n nextTick(() => initInstance());\n });\n\n watch(() => props.options, () => {\n nextTick(() => initInstance());\n }, { deep: true });\n\n watch(\n () => slots.default?.(),\n () => {\n requestAnimationFrame(() => {\n api.reset()\n })\n }\n );\n\n // also expose API and DOM on the component instance for users who use `ref` on the component\n // expose: { vistaView, container } where `container` is a live getter to the DOM element\n expose({\n vistaView: api,\n get container() {\n return containerRef.value;\n },\n });\n\n return { containerRef, galleryId };\n },\n});\n</script>\n\n<template>\n <div :id=\"galleryId\" ref=\"containerRef\" v-bind=\"$attrs\">\n <slot />\n </div>\n</template>\n"],"mappings":";;AAIA,SAAgB,aAAa,GAAsC;CACjE,IAAM,IAAW,IAA2B,KAAK;AAWjD,QATA,gBAAgB;AACd,IAAS,QAAQ,UAAU,EAAQ;GACnC,EAEF,sBAAsB;AAEpB,EADA,EAAS,OAAO,SAAS,EACzB,EAAS,QAAQ;GACjB,EAEK;EACL,OAAO,IAAI,MAAM,EAAS,OAAO,KAAK,EAAE;EACxC,aAAa,EAAS,OAAO,SAAS,IAAI,QAAQ,SAAS;EAC3D,aAAa,EAAS,OAAO,OAAO;EACpC,YAAY,EAAS,OAAO,MAAM;EAClC,YAAY,EAAS,OAAO,MAAM;EAClC,cAAc,EAAS,OAAO,QAAQ;EACtC,eAAe,EAAS,OAAO,SAAS;EACxC,uBAAuB,EAAS,OAAO,mBAAmB,IAAI;EAC9D,OAAO,MAAc,EAAS,OAAO,KAAK,EAAE;EAC5C,eAAe,EAAS,OAAO,SAAS;EACzC;;AEtBH,IAAA,6CAAe,gBAAgB;CAC7B,MAAM;CACN,OAAO;EACL,UAAU;GAAE,MAAM;GAAQ,SAAS;GAAO;EAC1C,SAAS;GAAE,MAAM;GAA0B,gBAAgB,EAAE;GAAG;EAChE,IAAI;GAAE,MAAM;GAAQ,SAAS;GAAI;EAClC;CACD,MAAM,GAAO,EAAE,aAAU;EACvB,IAAM,IAAe,IAAwB,KAAK,EAC5C,IAAc,IAA2B,KAAK,EAC9C,IAAc,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,EACpD,IAAY,eAAgB,EAAM,MAAM,eAAe,IAAe,EACtE,IAAQ,UAAU,EAGlB,IAAM;GACV,OAAO,IAAI,MAAM,EAAY,OAAO,KAAK,EAAE;GAC3C,aAAa,EAAY,OAAO,SAAQ,IAAK,QAAQ,SAAS;GAC9D,aAAa,EAAY,OAAO,OAAO;GACvC,YAAY,EAAY,OAAO,MAAM;GACrC,YAAY,EAAY,OAAO,MAAM;GACrC,cAAc,EAAY,OAAO,QAAQ;GACzC,eAAe,EAAY,OAAO,SAAS;GAC3C,uBAAuB,EAAY,OAAO,mBAAkB,IAAK;GACjE,OAAO,MAAc,EAAY,OAAO,KAAK,EAAE;GAC/C,eAAe,EAAY,OAAO,SAAS;GAC7C;EAGA,SAAS,IAAe;AACtB,OAAI,CAAC,EAAa,MAAO;GACzB,IAAM,IAAK,EAAa,MAAM;AAE9B,GADA,EAAY,OAAO,SAAS,EAC5B,EAAY,QAAQ,UAAU;IAC5B,GAAI,EAAM;IACV,UAAU,IAAI,EAAE,GAAI,EAAM;IAC3B,CAAC;;AAwCJ,SArCA,gBAAgB;AAEd,MAAc;IACd,EAEF,sBAAsB;AAEpB,GADA,EAAY,OAAO,SAAS,EAC5B,EAAY,QAAQ;IACpB,EAGF,YAAY,EAAM,gBAAgB;AAChC,kBAAe,GAAc,CAAC;IAC9B,EAEF,YAAY,EAAM,eAAe;AAC/B,kBAAe,GAAc,CAAC;KAC7B,EAAE,MAAM,IAAM,CAAC,EAElB,YACQ,EAAM,WAAW,QACjB;AACJ,+BAA4B;AAC1B,MAAI,OAAM;KACX;IAEJ,EAID,EAAO;GACL,WAAW;GACX,IAAI,YAAY;AACd,WAAO,EAAa;;GAEvB,CAAC,EAEK;GAAE;GAAc;GAAW;;CAErC,CAAC;;;;;;qBAIA,mBAEM,OAFN,WAEM;EAFA,IAAI,EAAA;EAAW,KAAI;IAAuB,EAAA,OAAM,EAAA,CACpD,WAAQ,EAAA,QAAA,UAAA,CAAA,EAAA,IAAA,WAAA"}
@@ -1,6 +1,5 @@
1
- import { VistaExtension, VistaOpt } from './types';
1
+ import type { VistaExtension, VistaOpt } from './types';
2
2
  export declare function vistaViewComponent({ controls, extensions, }: {
3
3
  controls: VistaOpt['controls'];
4
4
  extensions: Set<VistaExtension>;
5
5
  }): DocumentFragment;
6
- //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1,107 @@
1
+ /// <reference types="trusted-types" />
2
+ // Optimized SVG icons - common attributes applied via CSS
3
+ const chevronLeft = `<svg viewBox="0 0 24 24"><path d="m15 18-6-6 6-6"/></svg>`;
4
+ const chevronRight = `<svg viewBox="0 0 24 24"><path d="m9 18 6-6-6-6"/></svg>`;
5
+ const zoomInIcon = `<svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><line x1="21" x2="16.65" y1="21" y2="16.65"/><line x1="11" x2="11" y1="8" y2="14"/><line x1="8" x2="14" y1="11" y2="11"/></svg>`;
6
+ const zoomOutIcon = `<svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><line x1="21" x2="16.65" y1="21" y2="16.65"/><line x1="8" x2="14" y1="11" y2="11"/></svg>`;
7
+ const closeIcon = `<svg viewBox="0 0 24 24"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>`;
8
+ let cachedPolicy = null;
9
+ function getPolicy() {
10
+ if (cachedPolicy)
11
+ return cachedPolicy;
12
+ if (!window.trustedTypes) {
13
+ window.trustedTypes = {
14
+ createPolicy: (_name, rules) => rules,
15
+ };
16
+ }
17
+ cachedPolicy = window.trustedTypes.createPolicy('vistaView-policy', {
18
+ createHTML: (input) => input, // HTML is generated by us, not user input
19
+ createScript: () => {
20
+ throw new Error('Not implemented');
21
+ },
22
+ createScriptURL: () => {
23
+ throw new Error('Not implemented');
24
+ },
25
+ });
26
+ return cachedPolicy;
27
+ }
28
+ function createTrustedHtml(htmlString) {
29
+ const policy = getPolicy();
30
+ const trustedHtml = policy.createHTML(htmlString);
31
+ const template = document.createElement('template');
32
+ template.innerHTML = trustedHtml;
33
+ const html = template.content;
34
+ template.remove();
35
+ return html;
36
+ }
37
+ function convertControlToHtml(control, extensions) {
38
+ if (typeof control === 'string') {
39
+ switch (control) {
40
+ case 'zoomIn':
41
+ return `<div class="vvw-ui"><button aria-label="Zoom In" class="vvw-zoom-in">${zoomInIcon}</button></div>`;
42
+ case 'zoomOut':
43
+ return `<div class="vvw-ui"><button aria-label="Zoom Out" disabled class="vvw-zoom-out">${zoomOutIcon}</button></div>`;
44
+ case 'close':
45
+ return `<div class="vvw-ui"><button aria-label="Close" class="vvw-close">${closeIcon}</button></div>`;
46
+ case 'indexDisplay':
47
+ return `<div class="vvw-index vvw-ui" aria-hidden="true"></div>`;
48
+ case 'description':
49
+ return `<div class="vvw-desc vvw-ui" role="status" aria-live="polite" aria-atomic="true"></div>`;
50
+ default:
51
+ // Check if it's an extension control name
52
+ const ext = extensions[control];
53
+ if (ext && ext.control) {
54
+ return `<div class="vvw-ext vvw-ui" aria-label="${ext.description || ext.name}" data-vvw-control="${ext.name}"></div>`;
55
+ }
56
+ console.warn(`Unknown control: ${control}. Will return empty string.`);
57
+ return '';
58
+ }
59
+ }
60
+ return '';
61
+ }
62
+ export function vistaViewComponent({ controls, extensions, }) {
63
+ // convert extensions to object for faster search
64
+ const objectExtensions = {};
65
+ extensions.forEach((ext) => {
66
+ objectExtensions[ext.name] = ext;
67
+ });
68
+ const mapCtrl = (arr) => arr ? arr.map((ctrl) => convertControlToHtml(ctrl, objectExtensions)).join('') : '';
69
+ const html = createTrustedHtml(`<div class="vvw-root" id="vvw-root">
70
+ <div class="vvw-container">
71
+ <div class="vvw-bg"></div>
72
+ <div class="vvw-image-container"></div>
73
+ <div class="vvw-top-bar">
74
+ <div>${mapCtrl(controls?.topLeft)}</div>
75
+ <div>${mapCtrl(controls?.topCenter)}</div>
76
+ <div>${mapCtrl(controls?.topRight)}</div>
77
+ </div>
78
+ <div class="vvw-bottom-bar">
79
+ <div>${mapCtrl(controls?.bottomLeft)}</div>
80
+ <div>${mapCtrl(controls?.bottomCenter)}</div>
81
+ <div>${mapCtrl(controls?.bottomRight)}</div>
82
+ </div>
83
+ <div class="vvw-prev vvw-ui"><button aria-label="Previous">${chevronLeft}</button></div>
84
+ <div class="vvw-next vvw-ui"><button aria-label="Next">${chevronRight}</button></div>
85
+ </div>
86
+ </div>`);
87
+ // Populate extension containers with actual elements
88
+ [
89
+ ...(controls?.topLeft || []),
90
+ ...(controls?.topCenter || []),
91
+ ...(controls?.topRight || []),
92
+ ...(controls?.bottomLeft || []),
93
+ ...(controls?.bottomCenter || []),
94
+ ...(controls?.bottomRight || []),
95
+ ].forEach((ctrl) => {
96
+ // Look up extension by name (ctrl is always a string now)
97
+ const ext = objectExtensions[ctrl];
98
+ if (ext && ext.control) {
99
+ const container = html.querySelector(`[data-vvw-control="${ext.name}"]`);
100
+ const el = ext.control();
101
+ if (container && el) {
102
+ container.appendChild(el);
103
+ }
104
+ }
105
+ });
106
+ return html;
107
+ }
@@ -0,0 +1,2 @@
1
+ import type { VistaView } from '../vista-view';
2
+ export declare function close(_vistaView: VistaView): void;
@@ -0,0 +1,4 @@
1
+ // run on close of the viewer
2
+ export function close(_vistaView) {
3
+ // deliberately empty
4
+ }
@@ -0,0 +1,3 @@
1
+ import type { VistaData } from '../types';
2
+ import type { VistaView } from '../vista-view';
3
+ export declare function imageSetup(_params: VistaData, _vistaView: VistaView): void;
@@ -0,0 +1,4 @@
1
+ // run everytime new set of images are to be viewed
2
+ export function imageSetup(_params, _vistaView) {
3
+ // deliberately empty
4
+ }
@@ -0,0 +1,2 @@
1
+ import type { VistaView } from '../vista-view';
2
+ export declare function init(vistaView: VistaView): void;
@@ -0,0 +1,97 @@
1
+ // run on initialization, when we initiate the class
2
+ export function init(vistaView) {
3
+ registerPointerListener(vistaView);
4
+ }
5
+ // register external pointer listener
6
+ function registerPointerListener(vistaView) {
7
+ let start = { x: 0, y: 0 };
8
+ let current = { x: 0, y: 0 };
9
+ let axis = null;
10
+ // external pointer listener
11
+ vistaView.registerPointerListener((e) => {
12
+ // return if event has internal execution
13
+ if (e.hasInternalExecution)
14
+ return;
15
+ // we only deal with pointers of length 1 here
16
+ if (e.pointers.length > 1)
17
+ return;
18
+ // on down, record start positions
19
+ if (e.event === 'down') {
20
+ start = { x: e.pointer.x, y: e.pointer.y };
21
+ current = { x: e.pointer.x, y: e.pointer.y };
22
+ // abort any slide animation
23
+ // if currently animating to a different slide,
24
+ // this will instantly move the slider to that slide
25
+ e.abortController?.abort();
26
+ }
27
+ // on move, calculate deltas and translate image container
28
+ if (e.event === 'move') {
29
+ current = { x: e.pointer.x, y: e.pointer.y };
30
+ const deltaX = current.x - start.x;
31
+ const deltaY = current.y - start.y;
32
+ // prettier-ignore
33
+ if ((!axis && Math.abs(deltaY) > Math.abs(deltaX)) ||
34
+ axis === 'y') {
35
+ const percentY = (deltaY / window.innerHeight) * 100;
36
+ vistaView.imageContainer.style.transition = 'none';
37
+ vistaView.imageContainer.style.transform = `translateY(${percentY}vh)`;
38
+ axis = 'y';
39
+ }
40
+ // prettier-ignore
41
+ else if ((!axis && Math.abs(deltaX) > Math.abs(deltaY)) ||
42
+ axis === 'x' && e.state.elmLength > 1) {
43
+ const percentX = (deltaX / window.innerWidth) * 100;
44
+ vistaView.imageContainer.style.transition = 'none';
45
+ vistaView.imageContainer.style.transform = `translateX(${percentX}vw)`;
46
+ axis = 'x';
47
+ }
48
+ }
49
+ // on up or cancel, determine if we should close or reset position
50
+ if (e.event === 'up' || e.event === 'cancel') {
51
+ function resetPosition(transform) {
52
+ vistaView.imageContainer?.addEventListener('transitionend', function handler() {
53
+ vistaView.imageContainer?.removeEventListener('transitionend', handler);
54
+ vistaView.imageContainer.style.transition = '';
55
+ vistaView.imageContainer.style.transform = '';
56
+ });
57
+ vistaView.imageContainer.style.transition = 'transform 222ms ease';
58
+ vistaView.imageContainer.style.transform = transform;
59
+ }
60
+ // handle vertical swipe
61
+ if (axis === 'y') {
62
+ const deltaY = current.y - start.y;
63
+ // swipe down
64
+ if (Math.abs(deltaY) > 144) {
65
+ vistaView.imageContainer.style.transition = 'transform 222ms ease';
66
+ vistaView.imageContainer.style.transform = `translateY(0vh)`;
67
+ vistaView.close();
68
+ }
69
+ // reset position
70
+ else {
71
+ resetPosition(`translateY(0vh)`);
72
+ }
73
+ }
74
+ // handle horizontal swipe
75
+ if (axis === 'x' && e.state.elmLength > 1) {
76
+ const deltaX = current.x - start.x;
77
+ vistaView.imageContainer.style.transition = '';
78
+ // swipe right
79
+ if (deltaX > 64) {
80
+ vistaView.prev();
81
+ }
82
+ // swipe left
83
+ else if (deltaX < -64) {
84
+ vistaView.next();
85
+ }
86
+ // reset position
87
+ else {
88
+ resetPosition(`translateX(0vw)`);
89
+ }
90
+ }
91
+ // reset
92
+ axis = null;
93
+ start = { x: 0, y: 0 };
94
+ current = { x: 0, y: 0 };
95
+ }
96
+ });
97
+ }
@@ -0,0 +1,2 @@
1
+ import type { VistaView } from '../vista-view';
2
+ export declare function open(vistaView: VistaView): void;
@@ -0,0 +1,8 @@
1
+ // run when we open the viewer
2
+ export function open(vistaView) {
3
+ // setup container width and position
4
+ const preloads = vistaView.options.preloads;
5
+ vistaView.imageContainer.style.width = `${(preloads * 2 + 1) * 100}vw`;
6
+ vistaView.imageContainer.style.left = `-${preloads * 100}vw`;
7
+ vistaView.imageContainer.style.display = 'flex';
8
+ }
@@ -0,0 +1,2 @@
1
+ import type { VistaOpt } from '../types';
2
+ export declare const DefaultOptions: VistaOpt;
@@ -0,0 +1,15 @@
1
+ export const DefaultOptions = {
2
+ // debug, don't remove
3
+ // animationDurationBase: 1000,
4
+ animationDurationBase: 333,
5
+ maxZoomLevel: 2,
6
+ preloads: 1,
7
+ keyboardListeners: true,
8
+ arrowOnSmallScreens: false,
9
+ rapidLimit: 222,
10
+ controls: {
11
+ topLeft: ['indexDisplay'],
12
+ topRight: ['zoomIn', 'zoomOut', 'close'],
13
+ bottomLeft: ['description'],
14
+ },
15
+ };
@@ -1,7 +1,6 @@
1
- import { VistaData } from '../types';
2
- import { VistaView } from '../vista-view';
1
+ import type { VistaData } from '../types';
2
+ import type { VistaView } from '../vista-view';
3
3
  export declare function transition({ htmlElements: { to: HtmlTo }, index: { from: fromIndex, to: toIndex } }: VistaData, signal: AbortSignal, vistaView: VistaView): {
4
4
  cleanup: () => void;
5
5
  transitionEnded: Promise<void>;
6
6
  } | undefined;
7
- //# sourceMappingURL=transition.d.ts.map