vviinn-widgets 2.18.21 → 2.19.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 (503) hide show
  1. package/dist/cjs/Campaign-13258569.js +2 -0
  2. package/dist/cjs/Campaign-13258569.js.map +1 -0
  3. package/dist/cjs/{Handler-176539c8.js → Handler-de64afa5.js} +31 -43
  4. package/dist/cjs/Handler-de64afa5.js.map +1 -0
  5. package/dist/cjs/cropper-handler.cjs.entry.js +7 -4
  6. package/dist/cjs/cropper-handler.cjs.entry.js.map +1 -0
  7. package/dist/cjs/{customized-slots-6e56c354.js → customized-slots-aee3f39d.js} +3 -1
  8. package/dist/cjs/customized-slots-aee3f39d.js.map +1 -0
  9. package/dist/cjs/highlight-box_22.cjs.entry.js +68 -39
  10. package/dist/cjs/highlight-box_22.cjs.entry.js.map +1 -0
  11. package/dist/cjs/{imageSearch.store-98824653.js → imageSearch.store-fbe0600a.js} +3570 -2250
  12. package/dist/cjs/imageSearch.store-fbe0600a.js.map +1 -0
  13. package/dist/cjs/{index-cb410762.js → index-610c6c1f.js} +3 -1
  14. package/dist/cjs/index-610c6c1f.js.map +1 -0
  15. package/dist/cjs/{index-7f1325a7.js → index-a4becaff.js} +685 -303
  16. package/dist/cjs/index-a4becaff.js.map +1 -0
  17. package/dist/cjs/{index-a99edb90.js → index-c4851793.js} +3 -1
  18. package/dist/cjs/index-c4851793.js.map +1 -0
  19. package/dist/cjs/index.cjs.js +2 -0
  20. package/dist/cjs/index.cjs.js.map +1 -0
  21. package/dist/cjs/loader.cjs.js +6 -3
  22. package/dist/cjs/loader.cjs.js.map +1 -0
  23. package/dist/cjs/vviinn-button.cjs.entry.js +5 -3
  24. package/dist/cjs/vviinn-button.cjs.entry.js.map +1 -0
  25. package/dist/cjs/vviinn-carousel_3.cjs.entry.js +124 -39
  26. package/dist/cjs/vviinn-carousel_3.cjs.entry.js.map +1 -0
  27. package/dist/cjs/vviinn-error.cjs.entry.js +4 -2
  28. package/dist/cjs/vviinn-error.cjs.entry.js.map +1 -0
  29. package/dist/cjs/vviinn-preloader.cjs.entry.js +7 -5
  30. package/dist/cjs/vviinn-preloader.cjs.entry.js.map +1 -0
  31. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +15 -6
  32. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js.map +1 -0
  33. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +13 -12
  34. package/dist/cjs/vviinn-vpr-button.cjs.entry.js.map +1 -0
  35. package/dist/cjs/vviinn-vps-button.cjs.entry.js +28 -25
  36. package/dist/cjs/vviinn-vps-button.cjs.entry.js.map +1 -0
  37. package/dist/cjs/vviinn-vps-widget.cjs.entry.js +46 -31
  38. package/dist/cjs/vviinn-vps-widget.cjs.entry.js.map +1 -0
  39. package/dist/cjs/vviinn-widgets.cjs.js +12 -3
  40. package/dist/cjs/vviinn-widgets.cjs.js.map +1 -0
  41. package/dist/collection/Image/error.js +1 -0
  42. package/dist/collection/Image/error.js.map +1 -0
  43. package/dist/collection/Image/form.js +1 -0
  44. package/dist/collection/Image/form.js.map +1 -0
  45. package/dist/collection/Image/fromFile.js +1 -0
  46. package/dist/collection/Image/fromFile.js.map +1 -0
  47. package/dist/collection/Image/imageToB64.js +1 -0
  48. package/dist/collection/Image/imageToB64.js.map +1 -0
  49. package/dist/collection/Image/index.js +1 -0
  50. package/dist/collection/Image/index.js.map +1 -0
  51. package/dist/collection/Image/renderPromise.js +1 -0
  52. package/dist/collection/Image/renderPromise.js.map +1 -0
  53. package/dist/collection/Image/resizeImage.js +1 -0
  54. package/dist/collection/Image/resizeImage.js.map +1 -0
  55. package/dist/collection/Image/sizing.js +1 -0
  56. package/dist/collection/Image/sizing.js.map +1 -0
  57. package/dist/collection/Image/sizing.spec.js +67 -0
  58. package/dist/collection/Image/sizing.spec.js.map +1 -0
  59. package/dist/collection/Image/toFile.js +1 -0
  60. package/dist/collection/Image/toFile.js.map +1 -0
  61. package/dist/collection/analytics/GAnalytics.js +1 -0
  62. package/dist/collection/analytics/GAnalytics.js.map +1 -0
  63. package/dist/collection/analytics/GeneralAnalytics.js +1 -0
  64. package/dist/collection/analytics/GeneralAnalytics.js.map +1 -0
  65. package/dist/collection/analytics/GtagAnalytics.js +1 -0
  66. package/dist/collection/analytics/GtagAnalytics.js.map +1 -0
  67. package/dist/collection/analytics/ProductAnalytics.js +1 -0
  68. package/dist/collection/analytics/ProductAnalytics.js.map +1 -0
  69. package/dist/collection/campaign/Campaign.js +1 -0
  70. package/dist/collection/campaign/Campaign.js.map +1 -0
  71. package/dist/collection/campaign/CampaignService.js +1 -0
  72. package/dist/collection/campaign/CampaignService.js.map +1 -0
  73. package/dist/collection/campaign/VCSCampaign.js +1 -0
  74. package/dist/collection/campaign/VCSCampaign.js.map +1 -0
  75. package/dist/collection/campaign/VCSCampaignResponse.js +1 -0
  76. package/dist/collection/campaign/VCSCampaignResponse.js.map +1 -0
  77. package/dist/collection/campaign/VCSCampaignService.js +1 -0
  78. package/dist/collection/campaign/VCSCampaignService.js.map +1 -0
  79. package/dist/collection/campaign/VPRCampaignResponse.js +1 -0
  80. package/dist/collection/campaign/VPRCampaignResponse.js.map +1 -0
  81. package/dist/collection/campaign/VPRCampaignService.js +1 -0
  82. package/dist/collection/campaign/VPRCampaignService.js.map +1 -0
  83. package/dist/collection/collection-manifest.json +2 -2
  84. package/dist/collection/components/customized-slots.js +1 -0
  85. package/dist/collection/components/customized-slots.js.map +1 -0
  86. package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.css +2 -16
  87. package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.js +12 -7
  88. package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.js.map +1 -0
  89. package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.css +0 -1
  90. package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.js +41 -37
  91. package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.js.map +1 -0
  92. package/dist/collection/components/image-search/image-view/image-cropper/image-cropper.js +74 -67
  93. package/dist/collection/components/image-search/image-view/image-cropper/image-cropper.js.map +1 -0
  94. package/dist/collection/components/image-search/search-filters/search-filters.css +4 -23
  95. package/dist/collection/components/image-search/search-filters/search-filters.js +98 -91
  96. package/dist/collection/components/image-search/search-filters/search-filters.js.map +1 -0
  97. package/dist/collection/components/vviinn-button/vviinn-button.js +35 -31
  98. package/dist/collection/components/vviinn-button/vviinn-button.js.map +1 -0
  99. package/dist/collection/components/vviinn-carousel/vviinn-carousel.css +1 -2
  100. package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +162 -156
  101. package/dist/collection/components/vviinn-carousel/vviinn-carousel.js.map +1 -0
  102. package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.js +13 -14
  103. package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.js.map +1 -0
  104. package/dist/collection/components/vviinn-error/vviinn-error.js +13 -12
  105. package/dist/collection/components/vviinn-error/vviinn-error.js.map +1 -0
  106. package/dist/collection/components/vviinn-error/vviinn-server-error/vviinn-server-error.js +36 -30
  107. package/dist/collection/components/vviinn-error/vviinn-server-error/vviinn-server-error.js.map +1 -0
  108. package/dist/collection/components/vviinn-error/vviinn-wrong-format/vviinn-wrong-format.js +36 -30
  109. package/dist/collection/components/vviinn-error/vviinn-wrong-format/vviinn-wrong-format.js.map +1 -0
  110. package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.js +130 -121
  111. package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.js.map +1 -0
  112. package/dist/collection/components/vviinn-example-images/vviinn-example-images.js +76 -75
  113. package/dist/collection/components/vviinn-example-images/vviinn-example-images.js.map +1 -0
  114. package/dist/collection/components/vviinn-icons/index.js +11 -27
  115. package/dist/collection/components/vviinn-icons/index.js.map +1 -0
  116. package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js +121 -67
  117. package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js.map +1 -0
  118. package/dist/collection/components/vviinn-image-view/vviinn-detected-object/vviinn-detected-object.js +82 -69
  119. package/dist/collection/components/vviinn-image-view/vviinn-detected-object/vviinn-detected-object.js.map +1 -0
  120. package/dist/collection/components/vviinn-image-view/vviinn-image-view.css +0 -1
  121. package/dist/collection/components/vviinn-image-view/vviinn-image-view.js +28 -28
  122. package/dist/collection/components/vviinn-image-view/vviinn-image-view.js.map +1 -0
  123. package/dist/collection/components/vviinn-modal/vviinn-modal.css +7 -36
  124. package/dist/collection/components/vviinn-modal/vviinn-modal.js +116 -93
  125. package/dist/collection/components/vviinn-modal/vviinn-modal.js.map +1 -0
  126. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-1/vviinn-onboarding-card-1.js +13 -14
  127. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-1/vviinn-onboarding-card-1.js.map +1 -0
  128. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-2/vviinn-onboarding-card-2.js +13 -14
  129. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-2/vviinn-onboarding-card-2.js.map +1 -0
  130. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-3/vviinn-onboarding-card-3.js +13 -14
  131. package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-3/vviinn-onboarding-card-3.js.map +1 -0
  132. package/dist/collection/components/vviinn-onboarding/vviinn-onboarding.js +13 -17
  133. package/dist/collection/components/vviinn-onboarding/vviinn-onboarding.js.map +1 -0
  134. package/dist/collection/components/vviinn-overlay/vviinn-overlay.css +1 -12
  135. package/dist/collection/components/vviinn-overlay/vviinn-overlay.js +13 -9
  136. package/dist/collection/components/vviinn-overlay/vviinn-overlay.js.map +1 -0
  137. package/dist/collection/components/vviinn-overlayed-modal/vviinn-overlayed-modal.js +108 -78
  138. package/dist/collection/components/vviinn-overlayed-modal/vviinn-overlayed-modal.js.map +1 -0
  139. package/dist/collection/components/vviinn-preloader/vviinn-preloader.css +1 -11
  140. package/dist/collection/components/vviinn-preloader/vviinn-preloader.js +12 -7
  141. package/dist/collection/components/vviinn-preloader/vviinn-preloader.js.map +1 -0
  142. package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.css +0 -1
  143. package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.js +13 -16
  144. package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.js.map +1 -0
  145. package/dist/collection/components/vviinn-product-card/render-helpers.js +7 -14
  146. package/dist/collection/components/vviinn-product-card/render-helpers.js.map +1 -0
  147. package/dist/collection/components/vviinn-product-card/stories/args.js +1 -0
  148. package/dist/collection/components/vviinn-product-card/stories/args.js.map +1 -0
  149. package/dist/collection/components/vviinn-product-card/stories/decorators.js +1 -0
  150. package/dist/collection/components/vviinn-product-card/stories/decorators.js.map +1 -0
  151. package/dist/collection/components/vviinn-product-card/stories/vviinn-product-card.stories.js +1 -0
  152. package/dist/collection/components/vviinn-product-card/stories/vviinn-product-card.stories.js.map +1 -0
  153. package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +426 -415
  154. package/dist/collection/components/vviinn-product-card/vviinn-product-card.js.map +1 -0
  155. package/dist/collection/components/vviinn-slider/arrow.js +2 -2
  156. package/dist/collection/components/vviinn-slider/arrow.js.map +1 -0
  157. package/dist/collection/components/vviinn-slider/vviinn-slide/vviinn-slide.js +13 -9
  158. package/dist/collection/components/vviinn-slider/vviinn-slide/vviinn-slide.js.map +1 -0
  159. package/dist/collection/components/vviinn-slider/vviinn-slider.css +0 -1
  160. package/dist/collection/components/vviinn-slider/vviinn-slider.js +88 -82
  161. package/dist/collection/components/vviinn-slider/vviinn-slider.js.map +1 -0
  162. package/dist/collection/components/vviinn-teaser/vviinn-teaser.js +13 -18
  163. package/dist/collection/components/vviinn-teaser/vviinn-teaser.js.map +1 -0
  164. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.css +12 -64
  165. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +372 -360
  166. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js.map +1 -0
  167. package/dist/collection/components/vviinn-vpr-button/stories/args.js +1 -0
  168. package/dist/collection/components/vviinn-vpr-button/stories/args.js.map +1 -0
  169. package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js +1 -0
  170. package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js.map +1 -0
  171. package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +449 -444
  172. package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js.map +1 -0
  173. package/dist/collection/components/vviinn-vpr-widget/stories/args.js +1 -0
  174. package/dist/collection/components/vviinn-vpr-widget/stories/args.js.map +1 -0
  175. package/dist/collection/components/vviinn-vpr-widget/stories/decorators.js +1 -0
  176. package/dist/collection/components/vviinn-vpr-widget/stories/decorators.js.map +1 -0
  177. package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js +1 -0
  178. package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js.map +1 -0
  179. package/dist/collection/components/vviinn-vpr-widget/token-helpers.js +1 -0
  180. package/dist/collection/components/vviinn-vpr-widget/token-helpers.js.map +1 -0
  181. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js +546 -542
  182. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js.map +1 -0
  183. package/dist/collection/components/vviinn-vps-button/stories/vviinn-vps-button.stories.js +3 -0
  184. package/dist/collection/components/vviinn-vps-button/stories/vviinn-vps-button.stories.js.map +1 -0
  185. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +369 -332
  186. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js.map +1 -0
  187. package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js +1 -0
  188. package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js.map +1 -0
  189. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.css +0 -5
  190. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.e2e.js +27 -0
  191. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.e2e.js.map +1 -0
  192. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +503 -425
  193. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js.map +1 -0
  194. package/dist/collection/cropper/Cropper.js +1 -0
  195. package/dist/collection/cropper/Cropper.js.map +1 -0
  196. package/dist/collection/cropper/Handler.js +1 -0
  197. package/dist/collection/cropper/Handler.js.map +1 -0
  198. package/dist/collection/dom/index.js +1 -0
  199. package/dist/collection/dom/index.js.map +1 -0
  200. package/dist/collection/error.js +1 -0
  201. package/dist/collection/error.js.map +1 -0
  202. package/dist/collection/file/index.js +1 -0
  203. package/dist/collection/file/index.js.map +1 -0
  204. package/dist/collection/geometry/Clip.js +1 -0
  205. package/dist/collection/geometry/Clip.js.map +1 -0
  206. package/dist/collection/geometry/Clip.spec.js +17 -0
  207. package/dist/collection/geometry/Clip.spec.js.map +1 -0
  208. package/dist/collection/geometry/Point.js +1 -0
  209. package/dist/collection/geometry/Point.js.map +1 -0
  210. package/dist/collection/geometry/Rectangle.js +1 -0
  211. package/dist/collection/geometry/Rectangle.js.map +1 -0
  212. package/dist/collection/geometry/Rectangle.spec.js +67 -0
  213. package/dist/collection/geometry/Rectangle.spec.js.map +1 -0
  214. package/dist/collection/geometry/RectangleAlt.js +1 -0
  215. package/dist/collection/geometry/RectangleAlt.js.map +1 -0
  216. package/dist/collection/geometry/Sized.js +1 -0
  217. package/dist/collection/geometry/Sized.js.map +1 -0
  218. package/dist/collection/geometry/Sized.spec.js +17 -0
  219. package/dist/collection/geometry/Sized.spec.js.map +1 -0
  220. package/dist/collection/global.js +1 -0
  221. package/dist/collection/global.js.map +1 -0
  222. package/dist/collection/index.js +1 -0
  223. package/dist/collection/index.js.map +1 -0
  224. package/dist/collection/interfaces/generated.js +1 -4
  225. package/dist/collection/interfaces/generated.js.map +1 -0
  226. package/dist/collection/interfaces/recommendation.js +1 -0
  227. package/dist/collection/interfaces/recommendation.js.map +1 -0
  228. package/dist/collection/network/apiClient.js +1 -0
  229. package/dist/collection/network/apiClient.js.map +1 -0
  230. package/dist/collection/network/ion/File.js +1 -0
  231. package/dist/collection/network/ion/File.js.map +1 -0
  232. package/dist/collection/network/ion/Form.js +1 -0
  233. package/dist/collection/network/ion/Form.js.map +1 -0
  234. package/dist/collection/network/ion/Form.spec.js +44 -0
  235. package/dist/collection/network/ion/Form.spec.js.map +1 -0
  236. package/dist/collection/network/ion/Link.js +1 -0
  237. package/dist/collection/network/ion/Link.js.map +1 -0
  238. package/dist/collection/network/ion/ValueObject.js +1 -0
  239. package/dist/collection/network/ion/ValueObject.js.map +1 -0
  240. package/dist/collection/network/request.js +1 -0
  241. package/dist/collection/network/request.js.map +1 -0
  242. package/dist/collection/network/utils.js +1 -0
  243. package/dist/collection/network/utils.js.map +1 -0
  244. package/dist/collection/openApi/index.js +1 -0
  245. package/dist/collection/openApi/index.js.map +1 -0
  246. package/dist/collection/recommendation/events.js +1 -0
  247. package/dist/collection/recommendation/events.js.map +1 -0
  248. package/dist/collection/recommendation/recommendation.js +1 -0
  249. package/dist/collection/recommendation/recommendation.js.map +1 -0
  250. package/dist/collection/searchSession/searchSession.js +1 -0
  251. package/dist/collection/searchSession/searchSession.js.map +1 -0
  252. package/dist/collection/sentry.js +1 -0
  253. package/dist/collection/sentry.js.map +1 -0
  254. package/dist/collection/slider/GridMode.js +1 -0
  255. package/dist/collection/slider/GridMode.js.map +1 -0
  256. package/dist/collection/store/file-processing.js +1 -0
  257. package/dist/collection/store/file-processing.js.map +1 -0
  258. package/dist/collection/store/imageSearch.store.js +1 -0
  259. package/dist/collection/store/imageSearch.store.js.map +1 -0
  260. package/dist/collection/store/store.js +1 -0
  261. package/dist/collection/store/store.js.map +1 -0
  262. package/dist/collection/store/tracking.store.js +1 -0
  263. package/dist/collection/store/tracking.store.js.map +1 -0
  264. package/dist/collection/stories/image-selector.stories.js +1 -0
  265. package/dist/collection/stories/image-selector.stories.js.map +1 -0
  266. package/dist/collection/stories/image-view.stories.js +1 -0
  267. package/dist/collection/stories/image-view.stories.js.map +1 -0
  268. package/dist/collection/stories/modal.stories.js +1 -0
  269. package/dist/collection/stories/modal.stories.js.map +1 -0
  270. package/dist/collection/stories/onboarding.stories.js +1 -0
  271. package/dist/collection/stories/onboarding.stories.js.map +1 -0
  272. package/dist/collection/stories/overlay.stories.js +1 -0
  273. package/dist/collection/stories/overlay.stories.js.map +1 -0
  274. package/dist/collection/stories/overlayedModal.stories.js +1 -0
  275. package/dist/collection/stories/overlayedModal.stories.js.map +1 -0
  276. package/dist/collection/stories/privacy-badge.stories.js +1 -0
  277. package/dist/collection/stories/privacy-badge.stories.js.map +1 -0
  278. package/dist/collection/stories/slider.stories.js +1 -0
  279. package/dist/collection/stories/slider.stories.js.map +1 -0
  280. package/dist/collection/stories/teaser.stories.js +1 -0
  281. package/dist/collection/stories/teaser.stories.js.map +1 -0
  282. package/dist/collection/stories/vps-widget.stories.js +1 -0
  283. package/dist/collection/stories/vps-widget.stories.js.map +1 -0
  284. package/dist/collection/stories/vviinn-product.stories.js +1 -0
  285. package/dist/collection/stories/vviinn-product.stories.js.map +1 -0
  286. package/dist/collection/tracking/event.js +1 -0
  287. package/dist/collection/tracking/event.js.map +1 -0
  288. package/dist/collection/tracking/filter.js +1 -0
  289. package/dist/collection/tracking/filter.js.map +1 -0
  290. package/dist/collection/tracking/index.js +1 -0
  291. package/dist/collection/tracking/index.js.map +1 -0
  292. package/dist/collection/tracking/models.js +1 -0
  293. package/dist/collection/tracking/models.js.map +1 -0
  294. package/dist/collection/tracking/product.js +1 -0
  295. package/dist/collection/tracking/product.js.map +1 -0
  296. package/dist/collection/tracking/search.js +1 -0
  297. package/dist/collection/tracking/search.js.map +1 -0
  298. package/dist/collection/tracking/widget.js +1 -0
  299. package/dist/collection/tracking/widget.js.map +1 -0
  300. package/dist/collection/utils/collections/collectionsUtils.js +1 -0
  301. package/dist/collection/utils/collections/collectionsUtils.js.map +1 -0
  302. package/dist/collection/utils/either.js +1 -0
  303. package/dist/collection/utils/either.js.map +1 -0
  304. package/dist/collection/utils/enum/enumUtils.js +1 -0
  305. package/dist/collection/utils/enum/enumUtils.js.map +1 -0
  306. package/dist/collection/utils/event/Events.js +1 -0
  307. package/dist/collection/utils/event/Events.js.map +1 -0
  308. package/dist/collection/utils/number/index.js +1 -0
  309. package/dist/collection/utils/number/index.js.map +1 -0
  310. package/dist/collection/utils/option/option.js +1 -0
  311. package/dist/collection/utils/option/option.js.map +1 -0
  312. package/dist/collection/utils/semigroup/semigroupDiff.js +1 -0
  313. package/dist/collection/utils/semigroup/semigroupDiff.js.map +1 -0
  314. package/dist/collection/utils/token/tokenUtils.js +1 -0
  315. package/dist/collection/utils/token/tokenUtils.js.map +1 -0
  316. package/dist/esm/Campaign-90ba7e06.js +2 -0
  317. package/dist/esm/Campaign-90ba7e06.js.map +1 -0
  318. package/dist/esm/{Handler-f9b8735c.js → Handler-7bfee84f.js} +30 -43
  319. package/dist/esm/Handler-7bfee84f.js.map +1 -0
  320. package/dist/esm/cropper-handler.entry.js +7 -4
  321. package/dist/esm/cropper-handler.entry.js.map +1 -0
  322. package/dist/esm/{customized-slots-00afe247.js → customized-slots-b372eaed.js} +3 -1
  323. package/dist/esm/customized-slots-b372eaed.js.map +1 -0
  324. package/dist/esm/highlight-box_22.entry.js +68 -39
  325. package/dist/esm/highlight-box_22.entry.js.map +1 -0
  326. package/dist/esm/{imageSearch.store-9dde5360.js → imageSearch.store-cccd9b24.js} +3572 -2251
  327. package/dist/esm/imageSearch.store-cccd9b24.js.map +1 -0
  328. package/dist/esm/{index-590cb67e.js → index-48ef9564.js} +685 -304
  329. package/dist/esm/index-48ef9564.js.map +1 -0
  330. package/dist/esm/{index-b31d86ce.js → index-714e572a.js} +3 -1
  331. package/dist/esm/index-714e572a.js.map +1 -0
  332. package/dist/esm/{index-4d5b52ba.js → index-fdc32fbc.js} +3 -1
  333. package/dist/esm/index-fdc32fbc.js.map +1 -0
  334. package/dist/esm/index.js +2 -0
  335. package/dist/esm/index.js.map +1 -0
  336. package/dist/esm/loader.js +6 -3
  337. package/dist/esm/loader.js.map +1 -0
  338. package/dist/esm/polyfills/css-shim.js +1 -1
  339. package/dist/esm/vviinn-button.entry.js +5 -3
  340. package/dist/esm/vviinn-button.entry.js.map +1 -0
  341. package/dist/esm/vviinn-carousel_3.entry.js +123 -38
  342. package/dist/esm/vviinn-carousel_3.entry.js.map +1 -0
  343. package/dist/esm/vviinn-error.entry.js +4 -2
  344. package/dist/esm/vviinn-error.entry.js.map +1 -0
  345. package/dist/esm/vviinn-preloader.entry.js +7 -5
  346. package/dist/esm/vviinn-preloader.entry.js.map +1 -0
  347. package/dist/esm/vviinn-recommendations-sidebar.entry.js +15 -6
  348. package/dist/esm/vviinn-recommendations-sidebar.entry.js.map +1 -0
  349. package/dist/esm/vviinn-vpr-button.entry.js +13 -12
  350. package/dist/esm/vviinn-vpr-button.entry.js.map +1 -0
  351. package/dist/esm/vviinn-vps-button.entry.js +28 -25
  352. package/dist/esm/vviinn-vps-button.entry.js.map +1 -0
  353. package/dist/esm/vviinn-vps-widget.entry.js +46 -31
  354. package/dist/esm/vviinn-vps-widget.entry.js.map +1 -0
  355. package/dist/esm/vviinn-widgets.js +9 -3
  356. package/dist/esm/vviinn-widgets.js.map +1 -0
  357. package/dist/loader/index.d.ts +9 -0
  358. package/dist/loader/package.json +1 -0
  359. package/dist/types/Image/sizing.d.ts +4 -4
  360. package/dist/types/campaign/Campaign.d.ts +5 -5
  361. package/dist/types/campaign/VCSCampaignResponse.d.ts +1 -1
  362. package/dist/types/components/vviinn-carousel/vviinn-carousel.d.ts +2 -2
  363. package/dist/types/components/vviinn-image-selector/vviinn-image-selector.d.ts +4 -0
  364. package/dist/types/components/vviinn-modal/vviinn-modal.d.ts +2 -0
  365. package/dist/types/components/vviinn-overlayed-modal/vviinn-overlayed-modal.d.ts +2 -0
  366. package/dist/types/components/vviinn-product-card/render-helpers.d.ts +3 -3
  367. package/dist/types/components/vviinn-slider/arrow.d.ts +2 -2
  368. package/dist/types/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.d.ts +2 -2
  369. package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +9 -4
  370. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +8 -0
  371. package/dist/types/components.d.ts +154 -54
  372. package/dist/types/error.d.ts +1 -1
  373. package/dist/types/geometry/Point.d.ts +1 -1
  374. package/dist/types/geometry/Rectangle.d.ts +1 -1
  375. package/dist/types/geometry/Sized.d.ts +1 -1
  376. package/dist/types/interfaces/generated.d.ts +192 -371
  377. package/dist/types/network/ion/File.d.ts +2 -2
  378. package/dist/types/network/ion/Form.d.ts +5 -5
  379. package/dist/types/network/ion/Link.d.ts +1 -1
  380. package/dist/types/network/ion/ValueObject.d.ts +4 -4
  381. package/dist/types/network/utils.d.ts +3 -3
  382. package/dist/types/recommendation/events.d.ts +5 -5
  383. package/dist/types/recommendation/recommendation.d.ts +1 -1
  384. package/dist/types/searchSession/searchSession.d.ts +7 -7
  385. package/dist/types/slider/GridMode.d.ts +1 -1
  386. package/dist/types/stencil-public-runtime.d.ts +98 -23
  387. package/dist/types/store/imageSearch.store.d.ts +1 -1
  388. package/dist/types/tracking/models.d.ts +2 -2
  389. package/dist/types/utils/event/Events.d.ts +1 -1
  390. package/dist/vviinn-widgets/index.esm.js +2 -0
  391. package/dist/vviinn-widgets/index.esm.js.map +1 -0
  392. package/dist/vviinn-widgets/p-0b0d59d7.entry.js +2 -0
  393. package/dist/vviinn-widgets/p-0b0d59d7.entry.js.map +1 -0
  394. package/dist/vviinn-widgets/p-14373da7.entry.js +2 -0
  395. package/dist/vviinn-widgets/p-14373da7.entry.js.map +1 -0
  396. package/dist/vviinn-widgets/p-18fd769b.js +2 -1
  397. package/dist/vviinn-widgets/p-18fd769b.js.map +1 -0
  398. package/dist/vviinn-widgets/p-2f7bf983.js +2 -0
  399. package/dist/vviinn-widgets/p-2f7bf983.js.map +1 -0
  400. package/dist/vviinn-widgets/p-3abc679c.js +2 -0
  401. package/dist/vviinn-widgets/p-3abc679c.js.map +1 -0
  402. package/dist/vviinn-widgets/p-3b99c62d.js +2 -0
  403. package/dist/vviinn-widgets/p-3b99c62d.js.map +1 -0
  404. package/dist/vviinn-widgets/p-4325566b.entry.js +2 -0
  405. package/dist/vviinn-widgets/p-4325566b.entry.js.map +1 -0
  406. package/dist/vviinn-widgets/p-53eacbe3.js +2 -0
  407. package/dist/vviinn-widgets/p-53eacbe3.js.map +1 -0
  408. package/dist/vviinn-widgets/p-645baf22.entry.js +2 -0
  409. package/dist/vviinn-widgets/p-645baf22.entry.js.map +1 -0
  410. package/dist/vviinn-widgets/p-a10b9151.entry.js +2 -0
  411. package/dist/vviinn-widgets/p-a10b9151.entry.js.map +1 -0
  412. package/dist/vviinn-widgets/p-c012ef97.entry.js +2 -0
  413. package/dist/vviinn-widgets/p-c012ef97.entry.js.map +1 -0
  414. package/dist/vviinn-widgets/p-c24caccd.js +2 -0
  415. package/dist/vviinn-widgets/p-c24caccd.js.map +1 -0
  416. package/dist/vviinn-widgets/p-d20a9a96.entry.js +2 -0
  417. package/dist/vviinn-widgets/p-d20a9a96.entry.js.map +1 -0
  418. package/dist/vviinn-widgets/p-d95d7c38.entry.js +2 -0
  419. package/dist/vviinn-widgets/p-d95d7c38.entry.js.map +1 -0
  420. package/dist/vviinn-widgets/p-e5e67a5f.entry.js +2 -0
  421. package/dist/vviinn-widgets/p-e5e67a5f.entry.js.map +1 -0
  422. package/dist/vviinn-widgets/p-e6d67de3.entry.js +2 -0
  423. package/dist/vviinn-widgets/p-e6d67de3.entry.js.map +1 -0
  424. package/dist/vviinn-widgets/p-fa17e81f.js +3 -0
  425. package/dist/vviinn-widgets/p-fa17e81f.js.map +1 -0
  426. package/dist/vviinn-widgets/vviinn-widgets.esm.js +2 -1
  427. package/dist/vviinn-widgets/vviinn-widgets.esm.js.map +1 -0
  428. package/package.json +12 -12
  429. package/www/build/index.esm.js +2 -0
  430. package/www/build/index.esm.js.map +1 -0
  431. package/www/build/p-0b0d59d7.entry.js +2 -0
  432. package/www/build/p-0b0d59d7.entry.js.map +1 -0
  433. package/www/build/p-14373da7.entry.js +2 -0
  434. package/www/build/p-14373da7.entry.js.map +1 -0
  435. package/www/build/p-18fd769b.js +2 -1
  436. package/www/build/p-18fd769b.js.map +1 -0
  437. package/www/build/p-2f7bf983.js +2 -0
  438. package/www/build/p-2f7bf983.js.map +1 -0
  439. package/www/build/p-3abc679c.js +2 -0
  440. package/www/build/p-3abc679c.js.map +1 -0
  441. package/www/build/p-3b99c62d.js +2 -0
  442. package/www/build/p-3b99c62d.js.map +1 -0
  443. package/www/build/p-4325566b.entry.js +2 -0
  444. package/www/build/p-4325566b.entry.js.map +1 -0
  445. package/www/build/p-53eacbe3.js +2 -0
  446. package/www/build/p-53eacbe3.js.map +1 -0
  447. package/www/build/p-645baf22.entry.js +2 -0
  448. package/www/build/p-645baf22.entry.js.map +1 -0
  449. package/www/build/p-a10b9151.entry.js +2 -0
  450. package/www/build/p-a10b9151.entry.js.map +1 -0
  451. package/www/build/p-a67898be.css +1 -0
  452. package/www/build/p-ae6e6410.js +2 -0
  453. package/www/build/p-c012ef97.entry.js +2 -0
  454. package/www/build/p-c012ef97.entry.js.map +1 -0
  455. package/www/build/p-c24caccd.js +2 -0
  456. package/www/build/p-c24caccd.js.map +1 -0
  457. package/www/build/p-d20a9a96.entry.js +2 -0
  458. package/www/build/p-d20a9a96.entry.js.map +1 -0
  459. package/www/build/p-d95d7c38.entry.js +2 -0
  460. package/www/build/p-d95d7c38.entry.js.map +1 -0
  461. package/www/build/p-e5e67a5f.entry.js +2 -0
  462. package/www/build/p-e5e67a5f.entry.js.map +1 -0
  463. package/www/build/p-e6d67de3.entry.js +2 -0
  464. package/www/build/p-e6d67de3.entry.js.map +1 -0
  465. package/www/build/p-fa17e81f.js +3 -0
  466. package/www/build/p-fa17e81f.js.map +1 -0
  467. package/www/build/vviinn-widgets.esm.js +2 -1
  468. package/www/build/vviinn-widgets.esm.js.map +1 -0
  469. package/www/index.html +1 -1
  470. package/dist/vviinn-widgets/p-11f61564.js +0 -1
  471. package/dist/vviinn-widgets/p-12851e97.entry.js +0 -1
  472. package/dist/vviinn-widgets/p-2f9ee951.js +0 -1
  473. package/dist/vviinn-widgets/p-339c6838.js +0 -1
  474. package/dist/vviinn-widgets/p-3b2c91c0.entry.js +0 -1
  475. package/dist/vviinn-widgets/p-45df9f28.entry.js +0 -1
  476. package/dist/vviinn-widgets/p-57ed5303.entry.js +0 -1
  477. package/dist/vviinn-widgets/p-69850e5b.js +0 -1
  478. package/dist/vviinn-widgets/p-7c2f762a.entry.js +0 -1
  479. package/dist/vviinn-widgets/p-7c3b7388.entry.js +0 -1
  480. package/dist/vviinn-widgets/p-85006f41.entry.js +0 -1
  481. package/dist/vviinn-widgets/p-8a3dd76d.entry.js +0 -1
  482. package/dist/vviinn-widgets/p-99e58be7.entry.js +0 -1
  483. package/dist/vviinn-widgets/p-a2b450b6.entry.js +0 -1
  484. package/dist/vviinn-widgets/p-bcc1ccf0.js +0 -1
  485. package/dist/vviinn-widgets/p-e6fee8d2.js +0 -1
  486. package/www/build/p-11f61564.js +0 -1
  487. package/www/build/p-12851e97.entry.js +0 -1
  488. package/www/build/p-2f9ee951.js +0 -1
  489. package/www/build/p-339c6838.js +0 -1
  490. package/www/build/p-3b2c91c0.entry.js +0 -1
  491. package/www/build/p-45df9f28.entry.js +0 -1
  492. package/www/build/p-57ed5303.entry.js +0 -1
  493. package/www/build/p-69850e5b.js +0 -1
  494. package/www/build/p-7c2f762a.entry.js +0 -1
  495. package/www/build/p-7c3b7388.entry.js +0 -1
  496. package/www/build/p-85006f41.entry.js +0 -1
  497. package/www/build/p-8a3dd76d.entry.js +0 -1
  498. package/www/build/p-99e58be7.entry.js +0 -1
  499. package/www/build/p-9e2c131a.js +0 -125
  500. package/www/build/p-a2b450b6.entry.js +0 -1
  501. package/www/build/p-bcc1ccf0.js +0 -1
  502. package/www/build/p-e0153ae2.css +0 -6
  503. package/www/build/p-e6fee8d2.js +0 -1
@@ -0,0 +1 @@
1
+ {"file":"vviinn-vps-button.entry.js","mappings":";;;;;AAAA,MAAM,kBAAkB,GAAG,sBAAsB;;MCsDpC,eAAe;;;;;;;;;;;;;;;IAyC1B,sBAAiB,GAAG;MAClB,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,iBAAiB,CAAC,KAAK,CAAC;QAC1C,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE;OACrB,CAAC;KACH,CAAC;;wBA3C6B,GAAG;kBAET,OAAO;;oBAIJ,KAAK;gBAEE,OAAO;;yBAKR,KAAK;;EAiCvC,iBAAiB;IACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;GAC5B;EAED,gBAAgB;IACd,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;GACjD;EAEO,WAAW;IACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;GAC3B;EAEO,WAAW;IACjB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;GAC5B;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,QAAQ,IAC9B,qBACE,OAAO,EAAE;QACP,IAAI,CAAC,WAAW,EAAE,CAAC;OACpB,EACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,eAAe,IAEpB,gBACE,EAAC,UAAU,OAAG,CACT,CACO,EAEhB,EAAC,YAAY,OAAG,EAChB,yBACE,IAAI,EAAE,IAAI,CAAC,IAAI,mBACA,IAAI,CAAC,YAAY,EAChC,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,WAAW,EAAC,6NAA6N,EACzO,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,eAAe,EAAE,IAAI,EACrB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3C,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAC3B,CACG,EACP;GACH;;;;;;;","names":[],"sources":["./src/components/vviinn-vps-button/vviinn-vps-button.css?tag=vviinn-vps-button&encapsulation=shadow","./src/components/vviinn-vps-button/vviinn-vps-button.tsx"],"sourcesContent":[":host {\n /**\n * @prop --color-primary: set color of search button and bullets in onboarding block\n * @prop --color-primary-hover: set color of search button and bullets in onboarding block on mouse hover\n * @prop --color-icons: set fill color of svg icons in onboarding block \n */\n\n display: block;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Listen,\n Element,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport { CameraIcon } from \"../vviinn-icons\";\nimport { SlotSkeleton } from \"../customized-slots\";\nimport { BasicEventData } from \"../../recommendation/events\";\nimport { campaignTypeNames } from \"../../campaign/Campaign\";\n\n/**\n * @slot vviinn-onboarding-title - Title of onboarding section\n * @slot onboarding-card-1-icon - Icon (or other graphics) on first onboarding slide\n * @slot onboarding-card-1-text - Text content of first onboarding slide\n * @slot onboarding-card-2-icon - Icon (or other graphics) on second onboarding slide\n * @slot onboarding-card-2-text - Text content of second onboarding slide\n * @slot onboarding-card-3-icon - Icon (or other graphics) on third onboarding slide\n * @slot onboarding-card-3-text - Text content of third onboarding slide\n * @slot vviinn-example-images-title - Header of example images block\n * @slot vviinn-example-images-1 - First image in example images block\n * @slot vviinn-example-images-2 - Second image in example images block\n * @slot vviinn-example-images-3 - Third image in example images block\n * @slot vviinn-example-images-4 - Fourth image in example images block\n * @slot vviinn-teaser-text - Text on widget's main screen\n * @slot vviinn-image-upload-button-text - Title of upload button\n * @slot vviinn-privacy-badge-text - Text content of privacy notification block\n * @slot vviinn-image-search-modal-title - Image search modal title\n *\n * @part brand - product brand.\n * @part deeplink - anchor element for title. Rendered only if \"deeplink\" property filled.\n * @part image - product image.\n * @part image-link - anchor element for image. Rendered only if \"deeplink\" property filled.\n * @part price-amount-sale - numeric part of price.\n * @part price-amount-outdated - numeric part of price.\n * @part price-amount-regular - numeric part of price.\n * @part price-container - block contains all prices.\n * @part price-outdated - renders inside price-container when \"sale-price\" property filled. Contains regular price.\n * @part price-regular - renders inside price-container when \"sale-price\" property is empty.\n * @part price-sale - renders inside price-container when \"sale-price\" property filled. Contains sale price.\n * @part title - product title\n * @part example-images - example images block\n * @part button - button\n */\n@Component({\n tag: \"vviinn-vps-button\",\n styleUrl: \"vviinn-vps-button.css\",\n shadow: true,\n})\nexport class VviinnVpsButton {\n @Element() el: HTMLElement;\n /** vviinn customer token */\n @Prop() token: string;\n /** Currency sign will shown after price */\n @Prop() currencySign: string = \"€\";\n /** Locale for currency formatting */\n @Prop() locale: string = \"de-DE\";\n /** Campaign using for visual search */\n @Prop() campaignId?: string;\n /** Add style to the button */\n @Prop() addStyle: boolean = false;\n /** Add style to the button */\n @Prop() mode: \"modal\" | \"upload\" = \"modal\";\n\n /** @internal */\n @Prop() apiPath: string | undefined;\n\n @State() buttonPressed: boolean = false;\n\n /** @internal */\n @Event({ bubbles: true, composed: true })\n globalSlotsChanged: EventEmitter<any>;\n\n /** Event emitted when vps-button clicked */\n @Event() vviinnWidgetOpen: EventEmitter<BasicEventData>;\n /** Event fires when user select file */\n @Event() vviinnImageUpload: EventEmitter<BasicEventData>;\n /** Event fires when user select file that no .jpg, .jpeg or png */\n @Event() vviinnNoResult: EventEmitter<BasicEventData>;\n\n // List to show in the Storybook:\n @Event() vviinnWidgetLoad: EventEmitter;\n @Event() vviinnWidgetClose: EventEmitter;\n @Event() vviinnProductClick: EventEmitter;\n @Event() vviinnProductView: EventEmitter;\n @Event() vviinnProductLoad: EventEmitter;\n @Event() vviinnImageCrop: EventEmitter;\n @Event() vviinnSelectObject: EventEmitter;\n @Event() vviinnSelectFilter: EventEmitter;\n\n getBasicEventData = (): BasicEventData => {\n return {\n widgetType: \"VPS\",\n campaignTypeId: \"VPS\",\n campaignTypeName: campaignTypeNames[\"VPS\"],\n widgetId: this.el.id,\n };\n };\n\n @Listen(\"vviinnWidgetClose\")\n handleModalClosed() {\n this.buttonPressed = false;\n }\n\n componentDidLoad() {\n const slots = this.el.querySelectorAll(\"[slot]\");\n this.globalSlotsChanged.emit(Array.from(slots));\n }\n\n private handleClick() {\n this.buttonPressed = true;\n }\n\n private resetButton() {\n this.buttonPressed = false;\n }\n\n render() {\n return (\n <Host tabindex=\"0\" role=\"button\">\n <vviinn-button\n onClick={() => {\n this.handleClick();\n }}\n addStyle={this.addStyle}\n part=\"vviinn-button\"\n >\n <slot>\n <CameraIcon />\n </slot>\n </vviinn-button>\n\n <SlotSkeleton />\n <vviinn-vps-widget\n mode={this.mode}\n currency-sign={this.currencySign}\n token={this.token}\n locale={this.locale}\n apiPath={this.apiPath}\n exportparts=\"brand, deeplink, currency, image, image-link, price-amount-sale, price-amount-outdated, price-amount-regular, price-container, price-outdated, price-regular, price-sale, price-prefix, title, product-card, example-images\"\n campaignId={this.campaignId}\n showingInButton={true}\n buttonPressed={this.buttonPressed}\n resetVpsButton={this.resetButton.bind(this)}\n buttonElementId={this.el.id}\n />\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,11 +1,11 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-590cb67e.js';
2
- import { i as imageSearchState, s as state, a as _function, O as Option, n as isEmpty } from './imageSearch.store-9dde5360.js';
3
- import { s as slotChangeListener, S as SlotSkeleton } from './customized-slots-00afe247.js';
4
- import { e as createProductViewVpsEvent, f as createProductClickVpsEvent, g as createSearchEvent, h as createFilterEvent, v as v4, b as createTrackingApi, i as createWidgetVpsEvent } from './index-4d5b52ba.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-48ef9564.js';
2
+ import { i as imageSearchState, s as state, a as _function, O as Option, l as isEmpty } from './imageSearch.store-cccd9b24.js';
3
+ import { s as slotChangeListener, S as SlotSkeleton } from './customized-slots-b372eaed.js';
4
+ import { e as createProductViewVpsEvent, f as createProductClickVpsEvent, g as createSearchEvent, h as createFilterEvent, v as v4, b as createTrackingApi, i as createWidgetVpsEvent } from './index-fdc32fbc.js';
5
5
  import { c as campaignTypeNames } from './Campaign-90ba7e06.js';
6
- import './Handler-f9b8735c.js';
6
+ import './Handler-7bfee84f.js';
7
7
 
8
- const vviinnVpsWidgetCss = ":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{display:block}.hidden{visibility:hidden;height:1px}vviinn-overlayed-modal.first-screen::part(title),vviinn-overlayed-modal.first-screen::part(secondary-action){visibility:hidden}.start-page{display:grid;grid-template-columns:repeat(2, 1fr);min-height:580px}.start-page_block{align-content:start;border-right:1px solid #f4f4f4;display:grid;padding:48px}.start-page_block.error{align-content:center}#onboarding-block{border-right:unset;box-sizing:border-box;grid-gap:24px;overflow-y:auto;position:relative;width:100%}vviinn-teaser{margin-bottom:32px;margin-top:-24px}vviinn-image-selector{align-items:center;background:var(--color-primary, var(--color-primary-system));border-color:var(--color-primary, var(--color-primary-system));border-radius:2px;color:white;display:grid;font-size:16px;font-weight:600;height:56px;justify-items:center;margin-bottom:16px;transition:background 0.1s ease-in-out}vviinn-image-selector:hover{background:var(--color-primary-hover, var(--color-primary-hover-system));border-color:var(--color-primary-hover, var(--color-primary-hover-system))}vviinn-image-selector:active{border-color:black}.upload-button-content{display:grid;align-items:center;justify-items:start;justify-content:center;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;grid-gap:16px}.results-page{display:grid;grid-template-columns:336px auto;box-sizing:border-box}.results-page>*{padding:24px;box-sizing:border-box}.products{align-content:center;align-items:start;box-sizing:border-box;display:grid;grid-gap:32px 16px;grid-template-columns:repeat(auto-fill, minmax(152px, 1fr));justify-items:center;padding:24px;padding-right:0;position:absolute;width:calc(100% - 16px)}.products.hidden{display:none}vviinn-empty-results{width:280px;align-self:center;justify-self:center}.products-wrapper{display:grid;overflow-y:auto;overflow-x:hidden;padding:unset;position:relative;width:100%}.image-wrapper{border-right:1px solid #f4f4f4;display:grid;grid-template-rows:-webkit-min-content 170px;grid-template-rows:min-content 170px;grid-gap:24px;min-width:100%}.onboarding-wrapper{position:absolute;width:100%;padding:48px;box-sizing:border-box;display:grid;grid-gap:64px;padding-bottom:24px}vviinn-product-card{gap:0;width:100%}vviinn-product-card::part(image){border:1px solid #eaeaea;margin-bottom:8px}vviinn-product-card::part(price-container),vviinn-product-card::part(deeplink),vviinn-product-card::part(title){align-self:start}search-filters span{display:none}search-filters::part(filter){background:#f4f4f4;border-radius:4px;border:1px solid #f4f4f4;box-sizing:border-box;color:#161616;font-size:14px;font-weight:600;line-height:20px}search-filters::part(show-more-filters){border:1px solid #f4f4f4;border-radius:4px;box-sizing:border-box;color:#161616;font-size:14px;font-weight:600;line-height:20px;padding:6px 16px}search-filters::part(show-more-filters):hover{background:#eaeaea}search-filters::part(filter):hover{background:#eaeaea}search-filters::part(filter):focus{outline:none;border:1px solid var(--color-primary, var(--color-primary-system))}search-filters::part(filter active){background:rgba(15, 98, 254, 0.15);color:var(--color-primary, var(--color-primary-system))}.filters-wrapper{overflow:auto}.results-page:not(.active){display:none}.nothing-found{display:grid;grid-gap:64px;justify-self:center;padding-top:64px;padding-bottom:16px;position:absolute;width:60%}@media (max-width: 768px){.start-page_block{padding:24px}.onboarding-wrapper{padding:24px}}@media (max-width: 640px){.start-page{grid-template-rows:-webkit-min-content;grid-template-rows:min-content;grid-template-columns:unset;grid-gap:48px;padding:24px 0 48px 0}}@media (max-width: 640px) and (min-width: 415px){.onboarding-wrapper{position:unset}#onboarding-block{overflow:unset}.start-page.active{height:1px;overflow:auto}}@media (max-width: 415px){.results-page>*{box-sizing:border-box;padding:24px}vviinn-slide{padding-bottom:48px}.start-page_block:last-of-type{border-right:unset;overflow-y:unset;position:static;box-sizing:border-box;width:unset}.start-page_block{padding:0 24px}vviinn-teaser{margin-top:24px}.onboarding-wrapper{position:static;width:unset;padding:unset;box-sizing:border-box}.results-page{grid-template-columns:unset;grid-template-rows:-webkit-min-content auto;grid-template-rows:min-content auto}.image{margin-bottom:8px}.image-wrapper{grid-template-rows:-webkit-min-content auto;grid-template-rows:min-content auto;width:100%}.products-wrapper{align-content:start;position:static;overflow-y:unset;width:100%;padding-top:0}.products{position:static;padding:0;width:unset;grid-gap:32px 16px;justify-content:center}.nothing-found{position:static;grid-gap:64px;padding:unset;align-content:start;width:unset}}@media (max-width: 320px){.products{grid-template-columns:unset}}vviinn-wrong-format,vviinn-server-error{width:280px;align-self:center;justify-self:center}";
8
+ const vviinnVpsWidgetCss = ":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{display:block}.hidden{visibility:hidden;height:1px}vviinn-overlayed-modal.first-screen::part(title),vviinn-overlayed-modal.first-screen::part(secondary-action){visibility:hidden}.start-page{display:grid;grid-template-columns:repeat(2, 1fr);min-height:580px}.start-page_block{align-content:start;border-right:1px solid #f4f4f4;display:grid;padding:48px}.start-page_block.error{align-content:center}#onboarding-block{border-right:unset;box-sizing:border-box;grid-gap:24px;overflow-y:auto;position:relative;width:100%}vviinn-teaser{margin-bottom:32px;margin-top:-24px}vviinn-image-selector{align-items:center;background:var(--color-primary, var(--color-primary-system));border-color:var(--color-primary, var(--color-primary-system));border-radius:2px;color:white;display:grid;font-size:16px;font-weight:600;height:56px;justify-items:center;margin-bottom:16px;transition:background 0.1s ease-in-out}vviinn-image-selector:hover{background:var(--color-primary-hover, var(--color-primary-hover-system));border-color:var(--color-primary-hover, var(--color-primary-hover-system))}vviinn-image-selector:active{border-color:black}.upload-button-content{display:grid;align-items:center;justify-items:start;justify-content:center;grid-template-columns:max-content auto;grid-gap:16px}.results-page{display:grid;grid-template-columns:336px auto;box-sizing:border-box}.results-page>*{padding:24px;box-sizing:border-box}.products{align-content:center;align-items:start;box-sizing:border-box;display:grid;grid-gap:32px 16px;grid-template-columns:repeat(auto-fill, minmax(152px, 1fr));justify-items:center;padding:24px;padding-right:0;position:absolute;width:calc(100% - 16px)}.products.hidden{display:none}vviinn-empty-results{width:280px;align-self:center;justify-self:center}.products-wrapper{display:grid;overflow-y:auto;overflow-x:hidden;padding:unset;position:relative;width:100%}.image-wrapper{border-right:1px solid #f4f4f4;display:grid;grid-template-rows:min-content 170px;grid-gap:24px;min-width:100%}.onboarding-wrapper{position:absolute;width:100%;padding:48px;box-sizing:border-box;display:grid;grid-gap:64px;padding-bottom:24px}vviinn-product-card{gap:0;width:100%}vviinn-product-card::part(image){border:1px solid #eaeaea;margin-bottom:8px}vviinn-product-card::part(price-container),vviinn-product-card::part(deeplink),vviinn-product-card::part(title){align-self:start}search-filters span{display:none}search-filters::part(filter){background:#f4f4f4;border-radius:4px;border:1px solid #f4f4f4;box-sizing:border-box;color:#161616;font-size:14px;font-weight:600;line-height:20px}search-filters::part(show-more-filters){border:1px solid #f4f4f4;border-radius:4px;box-sizing:border-box;color:#161616;font-size:14px;font-weight:600;line-height:20px;padding:6px 16px}search-filters::part(show-more-filters):hover{background:#eaeaea}search-filters::part(filter):hover{background:#eaeaea}search-filters::part(filter):focus{outline:none;border:1px solid var(--color-primary, var(--color-primary-system))}search-filters::part(filter active){background:rgba(15, 98, 254, 0.15);color:var(--color-primary, var(--color-primary-system))}.filters-wrapper{overflow:auto}.results-page:not(.active){display:none}.nothing-found{display:grid;grid-gap:64px;justify-self:center;padding-top:64px;padding-bottom:16px;position:absolute;width:60%}@media (max-width: 768px){.start-page_block{padding:24px}.onboarding-wrapper{padding:24px}}@media (max-width: 640px){.start-page{grid-template-rows:min-content;grid-template-columns:unset;grid-gap:48px;padding:24px 0 48px 0}}@media (max-width: 640px) and (min-width: 415px){.onboarding-wrapper{position:unset}#onboarding-block{overflow:unset}.start-page.active{height:1px;overflow:auto}}@media (max-width: 415px){.results-page>*{box-sizing:border-box;padding:24px}vviinn-slide{padding-bottom:48px}.start-page_block:last-of-type{border-right:unset;overflow-y:unset;position:static;box-sizing:border-box;width:unset}.start-page_block{padding:0 24px}vviinn-teaser{margin-top:24px}.onboarding-wrapper{position:static;width:unset;padding:unset;box-sizing:border-box}.results-page{grid-template-columns:unset;grid-template-rows:min-content auto}.image{margin-bottom:8px}.image-wrapper{grid-template-rows:min-content auto;width:100%}.products-wrapper{align-content:start;position:static;overflow-y:unset;width:100%;padding-top:0}.products{position:static;padding:0;width:unset;grid-gap:32px 16px;justify-content:center}.nothing-found{position:static;grid-gap:64px;padding:unset;align-content:start;width:unset}}@media (max-width: 320px){.products{grid-template-columns:unset}}vviinn-wrong-format,vviinn-server-error{width:280px;align-self:center;justify-self:center}";
9
9
 
10
10
  var __rest = (undefined && undefined.__rest) || function (s, e) {
11
11
  var t = {};
@@ -22,11 +22,12 @@ var __rest = (undefined && undefined.__rest) || function (s, e) {
22
22
  const filterInt = (value) => /^[-+]?(\d+|Infinity)$/.test(value) ? Number(value) : NaN;
23
23
  const notEmptyString = (s) => !isEmpty(s);
24
24
  const notNan = (n) => !isNaN(n);
25
- let VviinnVpsWidget = class {
25
+ const VviinnVpsWidget = class {
26
26
  constructor(hostRef) {
27
27
  registerInstance(this, hostRef);
28
28
  this.globalSlotsChanged = createEvent(this, "globalSlotsChanged", 7);
29
29
  this.vviinnWidgetLoad = createEvent(this, "vviinnWidgetLoad", 7);
30
+ this.vviinnWidgetOpen = createEvent(this, "vviinnWidgetOpen", 7);
30
31
  this.vviinnWidgetClose = createEvent(this, "vviinnWidgetClose", 7);
31
32
  this.vviinnProductClick = createEvent(this, "vviinnProductClick", 7);
32
33
  this.vviinnProductView = createEvent(this, "vviinnProductView", 7);
@@ -36,20 +37,6 @@ let VviinnVpsWidget = class {
36
37
  this.vviinnSelectObject = createEvent(this, "vviinnSelectObject", 7);
37
38
  this.vviinnSelectFilter = createEvent(this, "vviinnSelectFilter", 7);
38
39
  this.vviinnNoResult = createEvent(this, "vviinnNoResult", 7);
39
- /** @internal */
40
- this.apiPath = "https://api.vviinn.com";
41
- /** When true modal window with widget will be shown */
42
- this.active = false;
43
- /** Currency sign will shown after price */
44
- this.currencySign = "€";
45
- /** Locale for currency formatting */
46
- this.locale = "de-DE";
47
- /** Set true when showing the widget in button */
48
- this.showingInButton = false;
49
- this.slidePosition = 0;
50
- this.width = 0;
51
- this.wrongImageFormat = false;
52
- this.trackingDeactivated = false;
53
40
  this.imageSource = null;
54
41
  this.setTrackingDeactivated = (result) => {
55
42
  if (result.status === "rejected") {
@@ -65,6 +52,21 @@ let VviinnVpsWidget = class {
65
52
  widgetId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.id,
66
53
  };
67
54
  };
55
+ this.token = undefined;
56
+ this.apiPath = "https://api.vviinn.com";
57
+ this.active = false;
58
+ this.currencySign = "€";
59
+ this.locale = "de-DE";
60
+ this.campaignId = undefined;
61
+ this.showingInButton = false;
62
+ this.buttonElementId = undefined;
63
+ this.buttonPressed = undefined;
64
+ this.mode = "modal";
65
+ this.resetVpsButton = undefined;
66
+ this.slidePosition = 0;
67
+ this.width = 0;
68
+ this.wrongImageFormat = false;
69
+ this.trackingDeactivated = false;
68
70
  }
69
71
  componentDidLoad() {
70
72
  const slots = this.el.querySelectorAll("[slot]");
@@ -80,6 +82,14 @@ let VviinnVpsWidget = class {
80
82
  document.body.style.overflow = this.overflow;
81
83
  }
82
84
  }
85
+ buttonPressedWatcher(pressed) {
86
+ if (!pressed)
87
+ return;
88
+ if (this.mode === "modal") {
89
+ this.active = true;
90
+ this.vviinnWidgetOpen.emit(this.getBasicEventData());
91
+ }
92
+ }
83
93
  trackProductView({ detail }) {
84
94
  if (this.trackingDeactivated)
85
95
  return;
@@ -144,14 +154,8 @@ let VviinnVpsWidget = class {
144
154
  this.id = this.el.id;
145
155
  }
146
156
  componentWillLoad() {
147
- var _a;
148
157
  slotChangeListener(this, this.el);
149
- this.vviinnWidgetLoad.emit({
150
- widgetType: "VPS",
151
- campaignTypeId: "VPS",
152
- campaignTypeName: campaignTypeNames["VPS"],
153
- widgetId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.id,
154
- });
158
+ this.vviinnWidgetLoad.emit(this.getBasicEventData());
155
159
  }
156
160
  trackOpenEvent() {
157
161
  if (this.trackingDeactivated)
@@ -223,10 +227,18 @@ let VviinnVpsWidget = class {
223
227
  }
224
228
  render() {
225
229
  var _a;
226
- return (h(Host, null, !this.showingInButton && h(SlotSkeleton, null), h("vviinn-overlayed-modal", { class: { "first-screen": this.slidePosition === 0 }, active: this.active, resetState: this.resetState.bind(this), onVviinnWidgetClose: () => this.handleModalClose(), buttonElementId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.id, exportparts: "secondary-action, title, close-button, example-images" }, h("vviinn-slider", { showBullets: false, position: this.slidePosition }, h("vviinn-slide", { class: { "start-page": true } }, h("div", { class: {
230
+ return (h(Host, null, !this.showingInButton && h(SlotSkeleton, null), h("vviinn-overlayed-modal", { class: { "first-screen": this.slidePosition === 0 }, active: this.active, resetState: this.resetState.bind(this), onVviinnWidgetClose: () => this.handleModalClose(), buttonElementId: (_a = this.buttonElementId) !== null && _a !== void 0 ? _a : this.id, hideBackButton: this.mode === "upload", exportparts: "secondary-action, title, close-button, example-images" }, h("vviinn-slider", { showBullets: false, position: this.slidePosition }, h("vviinn-slide", { class: { "start-page": true } }, h("div", { class: {
227
231
  error: this.haveErrors(),
228
232
  "start-page_block": true,
229
- } }, h("vviinn-wrong-format", { class: { hidden: !this.wrongImageFormat }, handler: () => (this.wrongImageFormat = false) }), h("vviinn-server-error", { class: { hidden: !imageSearchState.serverError }, handler: () => (imageSearchState.serverError = false) }), h("vviinn-teaser", { class: { hidden: this.haveErrors() } }), h("vviinn-image-selector", { class: { hidden: this.haveErrors() }, onVviinnImageUpload: () => this.handleImageSelection("upload"), onVviinnNoResult: () => (this.wrongImageFormat = true), basicEventData: this.getBasicEventData(), part: "select-image_button" }, h("span", { slot: "upload-button-text", class: "upload-button-content" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "29", height: "28", fill: "none" }, h("defs", null), h("path", { fill: "#fff", "fill-rule": "evenodd", d: "M10.271 3.89A.875.875 0 0111 3.5h7c.293 0 .566.146.728.39l1.49 2.235h3.033a2.625 2.625 0 012.625 2.625V21a2.625 2.625 0 01-2.625 2.625H5.75A2.625 2.625 0 013.125 21V8.75A2.625 2.625 0 015.75 6.125h3.031l1.49-2.235zm1.197 1.36l-1.49 2.235a.875.875 0 01-.729.39H5.75a.875.875 0 00-.875.875V21a.875.875 0 00.875.875h17.5a.875.875 0 00.875-.875V8.75a.875.875 0 00-.875-.875h-3.5a.875.875 0 01-.729-.39l-1.49-2.235h-6.063z", "clip-rule": "evenodd" }), h("path", { fill: "#fff", "fill-rule": "evenodd", d: "M14.5 11.375a3.062 3.062 0 100 6.125 3.062 3.062 0 000-6.125zm-4.813 3.063a4.812 4.812 0 119.625 0 4.812 4.812 0 01-9.625 0z", "clip-rule": "evenodd" })), h("slot", { name: "vviinn-image-upload-button-text" }, h("span", null, "Kamera oder Bild ausw\u00E4hlen")))), h("vviinn-privacy-badge", { class: { hidden: this.haveErrors() } })), h("div", { id: "onboarding-block", class: "start-page_block" }, h("div", { class: "onboarding-wrapper" }, h("vviinn-onboarding", null), h("vviinn-example-images", { part: "example-images", onVviinnImageUpload: () => this.handleImageSelection("example"), onVviinnNoResult: () => this.resetScroll("onboarding-block", "smooth"), basicEventData: this.getBasicEventData() })))), h("vviinn-slide", { class: { "results-page": true, active: this.slidePosition == 1 } }, h("div", { class: "image-wrapper" }, h("vviinn-image-view", { basicEventData: this.getBasicEventData() }), h("div", { class: "filters-wrapper" }, h("div", { class: "filters" }, imageSearchState.filters.map((filter) => (h("search-filters", { filter: filter, basicEventData: this.getBasicEventData() })))))), h("div", { id: "results-block", class: "products-wrapper" }, h("div", { class: {
233
+ } }, h("vviinn-wrong-format", { class: { hidden: !this.wrongImageFormat }, handler: () => (this.wrongImageFormat = false) }), h("vviinn-server-error", { class: { hidden: !imageSearchState.serverError }, handler: () => (imageSearchState.serverError = false) }), h("vviinn-teaser", { class: { hidden: this.haveErrors() } }), h("vviinn-image-selector", { class: { hidden: this.haveErrors() }, onVviinnImageUpload: () => {
234
+ this.active = true;
235
+ this.handleImageSelection("upload");
236
+ if (this.mode === "upload") {
237
+ this.vviinnWidgetOpen.emit(this.getBasicEventData());
238
+ }
239
+ }, onVviinnNoResult: () => (this.wrongImageFormat = true), resetVpsButton: this.resetVpsButton, basicEventData: this.getBasicEventData(), part: "select-image_button", startUpload: this.buttonPressed &&
240
+ this.showingInButton &&
241
+ this.mode === "upload" }, h("span", { slot: "upload-button-text", class: "upload-button-content" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "29", height: "28", fill: "none" }, h("defs", null), h("path", { fill: "#fff", "fill-rule": "evenodd", d: "M10.271 3.89A.875.875 0 0111 3.5h7c.293 0 .566.146.728.39l1.49 2.235h3.033a2.625 2.625 0 012.625 2.625V21a2.625 2.625 0 01-2.625 2.625H5.75A2.625 2.625 0 013.125 21V8.75A2.625 2.625 0 015.75 6.125h3.031l1.49-2.235zm1.197 1.36l-1.49 2.235a.875.875 0 01-.729.39H5.75a.875.875 0 00-.875.875V21a.875.875 0 00.875.875h17.5a.875.875 0 00.875-.875V8.75a.875.875 0 00-.875-.875h-3.5a.875.875 0 01-.729-.39l-1.49-2.235h-6.063z", "clip-rule": "evenodd" }), h("path", { fill: "#fff", "fill-rule": "evenodd", d: "M14.5 11.375a3.062 3.062 0 100 6.125 3.062 3.062 0 000-6.125zm-4.813 3.063a4.812 4.812 0 119.625 0 4.812 4.812 0 01-9.625 0z", "clip-rule": "evenodd" })), h("slot", { name: "vviinn-image-upload-button-text" }, h("span", null, "Kamera oder Bild ausw\u00E4hlen")))), h("vviinn-privacy-badge", { class: { hidden: this.haveErrors() } })), h("div", { id: "onboarding-block", class: "start-page_block" }, h("div", { class: "onboarding-wrapper" }, h("vviinn-onboarding", null), h("vviinn-example-images", { part: "example-images", onVviinnImageUpload: () => this.handleImageSelection("example"), onVviinnNoResult: () => this.resetScroll("onboarding-block", "smooth"), basicEventData: this.getBasicEventData() })))), h("vviinn-slide", { class: { "results-page": true, active: this.slidePosition == 1 } }, h("div", { class: "image-wrapper" }, h("vviinn-image-view", { basicEventData: this.getBasicEventData() }), h("div", { class: "filters-wrapper" }, h("div", { class: "filters" }, imageSearchState.filters.map((filter) => (h("search-filters", { filter: filter, basicEventData: this.getBasicEventData() })))))), h("div", { id: "results-block", class: "products-wrapper" }, h("div", { class: {
230
242
  "nothing-found": true,
231
243
  hidden: imageSearchState.results.length > 0,
232
244
  } }, h("vviinn-empty-results", null), h("vviinn-onboarding", null)), h("div", { class: {
@@ -239,9 +251,12 @@ let VviinnVpsWidget = class {
239
251
  }
240
252
  get el() { return getElement(this); }
241
253
  static get watchers() { return {
242
- "active": ["activeWatcher"]
254
+ "active": ["activeWatcher"],
255
+ "buttonPressed": ["buttonPressedWatcher"]
243
256
  }; }
244
257
  };
245
258
  VviinnVpsWidget.style = vviinnVpsWidgetCss;
246
259
 
247
260
  export { VviinnVpsWidget as vviinn_vps_widget };
261
+
262
+ //# sourceMappingURL=vviinn-vps-widget.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"vviinn-vps-widget.entry.js","mappings":";;;;;;;AAAA,MAAM,kBAAkB,GAAG,+rJAA+rJ;;;;;;;;;;;;;;AC2C1tJ,MAAM,SAAS,GAAG,CAAC,KAAa,KAC9B,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAE5D,MAAM,cAAc,GAAG,CAAC,CAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG,CAAC,CAAS,KAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;MAmDpC,eAAe;;;;;;;;;;;;;;;IAuDlB,gBAAW,GAA6B,IAAI,CAAC;IAQrD,2BAAsB,GAAG,CAAC,MAAyB;MACjD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;QAChC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;OACjC;KACF,CAAC;IAEF,sBAAiB,GAAG;;MAClB,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,iBAAiB,CAAC,KAAK,CAAC;QAC1C,QAAQ,EAAE,MAAA,IAAI,CAAC,eAAe,mCAAI,IAAI,CAAC,EAAE;OAC1C,CAAC;KACH,CAAC;;mBAtEwB,wBAAwB;kBAEP,KAAK;wBAEjB,GAAG;kBAET,OAAO;;2BAII,KAAK;;;gBAON,OAAO;;yBAIT,CAAC;iBACT,CAAC;4BACW,KAAK;+BACF,KAAK;;EA4B7C,gBAAgB;IACd,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;GACjD;EAkBD,aAAa,CAAC,KAAc;IAC1B,IAAI,KAAK,EAAE;MACT,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;MAC7C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;MACxC,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;SAAM;MACL,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;KAC9C;GACF;EAGD,oBAAoB,CAAC,OAAgB;IACnC,IAAI,CAAC,OAAO;MAAE,OAAO;IACrB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;MACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;MACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACtD;GACF;EAGD,gBAAgB,CAAC,EAAE,MAAM,EAAoB;IAC3C,IAAI,IAAI,CAAC,mBAAmB;MAAE,OAAO;IAErC,MAAM,EACJ,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,KAEd,MAAM,EADL,IAAI,UACL,MAAM,EATJ,2GASL,CAAS,CAAC;IAEX,MAAM,gBAAgB,GAAqB,yBAAyB,iBAClE,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,SAAS,IACf,IAAI,EACP,CAAC;IAEH,IAAI,CAAC,WAAW;OACb,UAAU,CAAC,gBAAgB,CAAC;OAC5B,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;GACtC;EAGD,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAoB;IAClD,MAAM,EACJ,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,KAEd,MAAM,EADL,IAAI,UACL,MAAM,EATJ,2GASL,CAAS,CAAC;IAEX,MAAM,iBAAiB,GAAsB,0BAA0B,iBACrE,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,SAAS,IACf,IAAI,EACP,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;MAC7B,MAAM,IAAI,CAAC,WAAW;SACnB,UAAU,CAAC,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,iBAAiB,CAAC;SAC/D,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACtC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CACxC,CAAC;IACF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;MAAE,OAAO;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;GACzC;EAGD,sBAAsB;IACpB,IAAI,IAAI,CAAC,mBAAmB;MAAE,OAAO;IAErC,MAAM,WAAW,GAAgB,iBAAiB,CAAC;MACjD,UAAU,EAAE,IAAI,CAAC,WAAW;MAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;MACxB,WAAW,EAAE,kBAAkB;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;GAC5E;EAGD,mBAAmB;IACjB,IAAI,IAAI,CAAC,mBAAmB;MAAE,OAAO;IAErC,MAAM,WAAW,GAAgB,iBAAiB,CAAC;MACjD,UAAU,EAAE,IAAI,CAAC,WAAW;MAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;MACxB,WAAW,EAAE,iBAAiB;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;GAC5E;EAGD,WAAW,CAAC,EAAE,MAAM,EAAsC;IACxD,IAAI,IAAI,CAAC,mBAAmB;MAAE,OAAO;IAErC,MAAM,WAAW,GAAgB,iBAAiB,CAAC;MACjD,UAAU,EAAE,IAAI,CAAC,WAAW;MAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;MACxB,IAAI,EAAE,UAAU;MAChB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;GAC5E;EAED,iBAAiB;IACf,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACpC,gBAAgB,CAAC,UAAU,GAAGA,cAAI,CAChC,IAAI,CAAC,UAAU,EACfC,mBAAc,EACdC,YAAO,CAACC,oBAAe,CAAC,cAAc,CAAC,CAAC,EACxCC,UAAK,CAAC,SAAS,CAAC,EAChBF,YAAO,CAACC,oBAAe,CAAC,MAAM,CAAC,CAAC,EAChCC,UAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CACrB,CAAC;IAEF,IAAI,CAAC,WAAW,GAAGC,EAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;GACtB;EAED,iBAAiB;IACf,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;GACtD;EAEO,cAAc;IACpB,IAAI,IAAI,CAAC,mBAAmB;MAAE,OAAO;IAErC,MAAM,eAAe,GAAgB,oBAAoB,CAAC;MACxD,MAAM,EAAE,MAAM;MACd,UAAU,EAAE,IAAI,CAAC,WAAW;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,WAAW;OACb,UAAU,CAAC,eAAe,CAAC;OAC3B,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;GACtC;EAEO,oBAAoB,CAAC,MAAyB;IACpD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;EAEO,kBAAkB;IACxB,IAAI,IAAI,CAAC,mBAAmB;MAAE,OAAO;IAErC,MAAM,WAAW,GAAgB,iBAAiB,CAAC;MACjD,UAAU,EAAE,IAAI,CAAC,WAAW;MAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;MACxB,WAAW,EAAE,MAAM;KACpB,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;GAC5E;EAEO,UAAU;IAChB,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAErC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACvB,gBAAgB,CAAC,KAAK,GAAGC,WAAM,CAAC;IAChC,gBAAgB,CAAC,QAAQ,GAAGA,WAAM,CAAC;IACnC,gBAAgB,CAAC,WAAW,GAAGA,WAAM,CAAC;IACtC,gBAAgB,CAAC,UAAU,GAAGA,WAAM,CAAC;IACrC,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAC;IAC9B,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAC;IAC9B,gBAAgB,CAAC,eAAe,GAAG,EAAE,CAAC;IACtC,gBAAgB,CAAC,aAAa,GAAG,SAAS,CAAC;IAC3C,gBAAgB,CAAC,mBAAmB,GAAG,SAAS,CAAC;IACjD,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;GACnC;EAEO,UAAU;IAChB,OAAO,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,CAAC;GAC9D;EAEO,WAAW,CAAC,SAAiB,EAAE,WAA2B,MAAM;IACtE,MAAM,OAAO,GAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1E,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;GAC/C;EAEO,gBAAgB;IACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC,UAAU,EAAE,CAAC;IAElB,MAAM,eAAe,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IAC9D,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,mBAAmB;MAAE,OAAO;IAErC,MAAM,gBAAgB,GAAgB,oBAAoB,CAAC;MACzD,MAAM,EAAE,OAAO;MACf,UAAU,EAAE,IAAI,CAAC,WAAW;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,WAAW;OACb,UAAU,CAAC,gBAAgB,CAAC;OAC5B,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;GACtC;EAED,MAAM;;IACJ,QACE,EAAC,IAAI,QACF,CAAC,IAAI,CAAC,eAAe,IAAI,EAAC,YAAY,OAAG,EAE1C,8BACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE,EACnD,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACtC,mBAAmB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAClD,eAAe,EAAE,MAAA,IAAI,CAAC,eAAe,mCAAI,IAAI,CAAC,EAAE,EAChD,cAAc,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,EACtC,WAAW,EAAC,uDAAuD,IAEnE,qBAAe,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,IAC7D,oBAAc,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,IACzC,WACE,KAAK,EAAE;QACL,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;QACxB,kBAAkB,EAAE,IAAI;OACzB,IAED,2BACE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EACzC,OAAO,EAAE,OAAO,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,GAC9C,EACF,2BACE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAChD,OAAO,EAAE,OAAO,gBAAgB,CAAC,WAAW,GAAG,KAAK,CAAC,GACrD,EACF,qBAAe,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,GAAI,EACvD,6BACE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EACpC,mBAAmB,EAAE;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;UAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;SACtD;OACF,EACD,gBAAgB,EAAE,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EACtD,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,EACxC,IAAI,EAAC,qBAAqB,EAC1B,WAAW,EACT,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,eAAe;QACpB,IAAI,CAAC,IAAI,KAAK,QAAQ,IAGxB,YAAM,IAAI,EAAC,oBAAoB,EAAC,KAAK,EAAC,uBAAuB,IAC3D,WACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,MAAM,IAEX,eAAQ,EACR,YACE,IAAI,EAAC,MAAM,eACD,SAAS,EACnB,CAAC,EAAC,maAAma,eAC3Z,SAAS,GACnB,EACF,YACE,IAAI,EAAC,MAAM,eACD,SAAS,EACnB,CAAC,EAAC,8HAA8H,eACtH,SAAS,GACnB,CACE,EACN,YAAM,IAAI,EAAC,iCAAiC,IAC1C,kDAAuC,CAClC,CACF,CACe,EACxB,4BAAsB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,GAAI,CAC1D,EACN,WAAK,EAAE,EAAC,kBAAkB,EAAC,KAAK,EAAC,kBAAkB,IACjD,WAAK,KAAK,EAAC,oBAAoB,IAC7B,4BAAqB,EACrB,6BACE,IAAI,EAAC,gBAAgB,EACrB,mBAAmB,EAAE,MACnB,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAEtC,gBAAgB,EAAE,MAChB,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,QAAQ,CAAC,EAEhD,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,GACxC,CACE,CACF,CACO,EACf,oBACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE,IAEhE,WAAK,KAAK,EAAC,eAAe,IACxB,yBAAmB,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAI,EAC/D,WAAK,KAAK,EAAC,iBAAiB,IAC1B,WAAK,KAAK,EAAC,SAAS,IACjB,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MACnC,sBACE,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,GACxC,CACH,CAAC,CACE,CACF,CACF,EACN,WAAK,EAAE,EAAC,eAAe,EAAC,KAAK,EAAC,kBAAkB,IAC9C,WACE,KAAK,EAAE;QACL,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;OAC5C,IAED,+BAAwB,EACxB,4BAAqB,CACjB,EACN,WACE,KAAK,EAAE;QACL,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;QAC5C,QAAQ,EAAE,IAAI;OACf,IAEA,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;;MAAK,QACtC,2BACE,GAAG,EAAE,CAAC,CAAC,SAAS,EAChB,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,CAAC,CAAC,KAAK,EACrB,SAAS,EAAE,CAAC,CAAC,SAAS,EACtB,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EACrB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EACvB,UAAU,EAAE,GAAG,EACf,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAC5C,IAAI,EAAC,cAAc,EACnB,cAAc,EAAC,KAAK,EACpB,KAAK,EAAE,CAAC,EACR,eAAe,EAAE,IAAI,CAAC,EAAE,EACxB,eAAe,EAAE,IAAI,CAAC,eAAe,GACrC,EACH;KAAA,CAAC,CACE,CACF,CACO,CACD,CACO,CACpB,EACP;GACH;;;;;;;;;;;","names":["pipe","O.fromNullable","O.chain","O.fromPredicate","O.map","uuidv4","O.none"],"sources":["./src/components/vviinn-vps-widget/vviinn-vps-widget.css?tag=vviinn-vps-widget&encapsulation=shadow","./src/components/vviinn-vps-widget/vviinn-vps-widget.tsx"],"sourcesContent":["@import \"../../variables.css\";\n\n:host {\n /**\n * @prop --color-primary: set color of search button and bullets in onboarding block\n * @prop --color-primary-hover: set color of search button and bullets in onboarding block on mouse hover\n * @prop --color-icons: set fill color of svg icons in onboarding block \n */\n\n display: block;\n}\n\n.hidden {\n visibility: hidden;\n height: 1px;\n}\n\nvviinn-overlayed-modal.first-screen::part(title),\nvviinn-overlayed-modal.first-screen::part(secondary-action) {\n visibility: hidden;\n}\n\n.start-page {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n min-height: 580px;\n}\n\n.start-page_block {\n align-content: start;\n border-right: 1px solid #f4f4f4;\n display: grid;\n padding: 48px;\n}\n\n.start-page_block.error {\n align-content: center;\n}\n\n#onboarding-block {\n border-right: unset;\n box-sizing: border-box;\n grid-gap: 24px;\n overflow-y: auto;\n position: relative;\n width: 100%;\n}\n\nvviinn-teaser {\n margin-bottom: 32px;\n margin-top: -24px;\n}\n\nvviinn-image-selector {\n align-items: center;\n background: var(--color-primary, var(--color-primary-system));\n border-color: var(--color-primary, var(--color-primary-system));\n border-radius: 2px;\n color: white;\n display: grid;\n font-size: 16px;\n font-weight: 600;\n height: 56px;\n justify-items: center;\n margin-bottom: 16px;\n transition: background 0.1s ease-in-out;\n}\n\nvviinn-image-selector:hover {\n background: var(--color-primary-hover, var(--color-primary-hover-system));\n border-color: var(--color-primary-hover, var(--color-primary-hover-system));\n}\n\nvviinn-image-selector:active {\n border-color: black;\n}\n\n.upload-button-content {\n display: grid;\n align-items: center;\n justify-items: start;\n justify-content: center;\n grid-template-columns: max-content auto;\n grid-gap: 16px;\n}\n\n.results-page {\n display: grid;\n grid-template-columns: 336px auto;\n box-sizing: border-box;\n}\n\n.results-page > * {\n padding: 24px;\n box-sizing: border-box;\n}\n\n.products {\n align-content: center;\n align-items: start;\n box-sizing: border-box;\n display: grid;\n grid-gap: 32px 16px;\n grid-template-columns: repeat(auto-fill, minmax(152px, 1fr));\n justify-items: center;\n padding: 24px;\n padding-right: 0;\n position: absolute;\n width: calc(100% - 16px);\n}\n\n.products.hidden {\n display: none;\n}\n\nvviinn-empty-results {\n width: 280px;\n align-self: center;\n justify-self: center;\n}\n\n.products-wrapper {\n display: grid;\n overflow-y: auto;\n overflow-x: hidden;\n padding: unset;\n position: relative;\n width: 100%;\n}\n\n.image-wrapper {\n border-right: 1px solid #f4f4f4;\n display: grid;\n grid-template-rows: min-content 170px;\n grid-gap: 24px;\n min-width: 100%;\n}\n\n.onboarding-wrapper {\n position: absolute;\n width: 100%;\n padding: 48px;\n box-sizing: border-box;\n display: grid;\n grid-gap: 64px;\n padding-bottom: 24px;\n}\n\nvviinn-product-card {\n gap: 0;\n width: 100%;\n}\n\nvviinn-product-card::part(image) {\n border: 1px solid #eaeaea;\n margin-bottom: 8px;\n}\n\nvviinn-product-card::part(price-container),\nvviinn-product-card::part(deeplink),\nvviinn-product-card::part(title) {\n align-self: start;\n}\n\nsearch-filters span {\n display: none;\n}\n\nsearch-filters::part(filter) {\n background: #f4f4f4;\n border-radius: 4px;\n border: 1px solid #f4f4f4;\n box-sizing: border-box;\n color: #161616;\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n}\n\nsearch-filters::part(show-more-filters) {\n border: 1px solid #f4f4f4;\n border-radius: 4px;\n box-sizing: border-box;\n color: #161616;\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n padding: 6px 16px;\n}\n\nsearch-filters::part(show-more-filters):hover {\n background: #eaeaea;\n}\n\nsearch-filters::part(filter):hover {\n background: #eaeaea;\n}\n\nsearch-filters::part(filter):focus {\n outline: none;\n border: 1px solid var(--color-primary, var(--color-primary-system));\n}\n\nsearch-filters::part(filter active) {\n background: rgba(15, 98, 254, 0.15);\n color: var(--color-primary, var(--color-primary-system));\n}\n\n.filters-wrapper {\n overflow: auto;\n}\n\n.results-page:not(.active) {\n display: none;\n}\n\n.nothing-found {\n display: grid;\n grid-gap: 64px;\n justify-self: center;\n padding-top: 64px;\n padding-bottom: 16px;\n position: absolute;\n width: 60%;\n}\n\n@media (max-width: 768px) {\n .start-page_block {\n padding: 24px;\n }\n\n .onboarding-wrapper {\n padding: 24px;\n }\n}\n\n@media (max-width: 640px) {\n .start-page {\n grid-template-rows: min-content;\n grid-template-columns: unset;\n grid-gap: 48px;\n padding: 24px 0 48px 0;\n }\n}\n\n@media (max-width: 640px) and (min-width: 415px) {\n .onboarding-wrapper {\n position: unset;\n }\n\n #onboarding-block {\n overflow: unset;\n }\n\n .start-page.active {\n height: 1px;\n overflow: auto;\n }\n}\n\n@media (max-width: 415px) {\n .results-page > * {\n box-sizing: border-box;\n padding: 24px;\n }\n\n vviinn-slide {\n padding-bottom: 48px;\n }\n\n .start-page_block:last-of-type {\n border-right: unset;\n overflow-y: unset;\n position: static;\n box-sizing: border-box;\n width: unset;\n }\n\n .start-page_block {\n padding: 0 24px;\n }\n\n vviinn-teaser {\n margin-top: 24px;\n }\n\n .onboarding-wrapper {\n position: static;\n width: unset;\n padding: unset;\n box-sizing: border-box;\n }\n\n .results-page {\n grid-template-columns: unset;\n grid-template-rows: min-content auto;\n }\n\n .image {\n margin-bottom: 8px;\n }\n\n .image-wrapper {\n grid-template-rows: min-content auto;\n width: 100%;\n }\n\n .products-wrapper {\n align-content: start;\n position: static;\n overflow-y: unset;\n width: 100%;\n padding-top: 0;\n }\n\n .products {\n position: static;\n padding: 0;\n width: unset;\n grid-gap: 32px 16px;\n justify-content: center;\n }\n\n .nothing-found {\n position: static;\n grid-gap: 64px;\n padding: unset;\n align-content: start;\n width: unset;\n }\n}\n\n@media (max-width: 320px) {\n .products {\n grid-template-columns: unset;\n }\n}\n\nvviinn-wrong-format,\nvviinn-server-error {\n width: 280px;\n align-self: center;\n justify-self: center;\n}\n","import {\n Component,\n Host,\n h,\n State,\n Prop,\n Element,\n Watch,\n Listen,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport { state } from \"../../store/store\";\nimport { imageSearchState } from \"../../store/imageSearch.store\";\nimport * as O from \"fp-ts/lib/Option\";\nimport { isEmpty } from \"fp-ts/string\";\nimport { slotChangeListener } from \"../customized-slots\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { createTrackingApi } from \"../../openApi\";\nimport {\n DefaultApi,\n EventConfirmation,\n ProductClickEvent,\n ProductViewEvent,\n SearchImageSource,\n WidgetEvent,\n} from \"vviinn-tracking-client-ts\";\nimport {\n createFilterEvent,\n createProductClickVpsEvent,\n createProductViewVpsEvent,\n createSearchEvent,\n createWidgetVpsEvent,\n} from \"../../tracking\";\nimport {\n ProductCardEvent,\n BasicEventData,\n SelectFilterEventData,\n} from \"../../recommendation/events\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { SlotSkeleton } from \"../customized-slots\";\nimport { campaignTypeNames } from \"../../campaign/Campaign\";\n\nconst filterInt = (value: string) =>\n /^[-+]?(\\d+|Infinity)$/.test(value) ? Number(value) : NaN;\n\nconst notEmptyString = (s: string) => !isEmpty(s);\nconst notNan = (n: number): boolean => !isNaN(n);\n\n/**\n * @prop --color-primary: color used for action button, slider bullets and selected detected object;\n *\n * @part close-button - close button on modal header.\n * @part secondary-action - back button on modal header.\n * @part title - modal window title.\n *\n * @part select-image_button\n *\n * @part product-card - product card.\n * @part brand - product card brand.\n * @part currency - currency sign. Renders after price-amount inside product card.\n * @part deeplink - anchor element for title. Rendered only if \"deeplink\" property filled.\n * @part image - product image inside product card.\n * @part image-link - anchor element for image. Rendered only if \"deeplink\" property filled.\n * @part price-amount-sale - numeric part of price inside product card.\n * @part price-amount-outdated - numeric part of price inside product card.\n * @part price-amount-regular - numeric part of price inside product card.\n * @part price-container - block contains all prices inside product card.\n * @part price-outdated - renders inside price-container when \"sale-price\" property filled. Contains regular price.\n * @part price-regular - renders inside price-container when \"sale-price\" property is empty.\n * @part price-sale - renders inside price-container when \"sale-price\" property filled. Contains sale price.\n * @part price-prefix - renders before price-amount. Can be set with \"price-prefix\" property or inherited from parent component.\n * @part title - product title\n * @part example-images - example images block\n\n * @slot vviinn-onboarding-title - Title of onboarding section\n * @slot onboarding-card-1-icon - Icon (or other graphics) on first onboarding slide\n * @slot onboarding-card-1-text - Text content of first onboarding slide\n * @slot onboarding-card-2-icon - Icon (or other graphics) on second onboarding slide\n * @slot onboarding-card-2-text - Text content of second onboarding slide\n * @slot onboarding-card-3-icon - Icon (or other graphics) on third onboarding slide\n * @slot onboarding-card-3-text - Text content of third onboarding slide\n * @slot vviinn-example-images-title - Header of example images block\n * @slot vviinn-example-images-1 - First image in example images block\n * @slot vviinn-example-images-2 - Second image in example images block\n * @slot vviinn-example-images-3 - Third image in example images block\n * @slot vviinn-example-images-4 - Fourth image in example images block\n * @slot vviinn-teaser-text - Text on widget's main screen\n * @slot vviinn-image-upload-button-text - Title of upload button\n * @slot vviinn-privacy-badge-text - Text content of privacy notification block\n * @slot vviinn-image-search-modal-title - Image search title\n *\n */\n@Component({\n tag: \"vviinn-vps-widget\",\n styleUrl: \"vviinn-vps-widget.css\",\n shadow: true,\n})\nexport class VviinnVpsWidget {\n @Element() el: HTMLElement;\n\n /** vviinn customer token */\n @Prop() token: string | undefined;\n /** @internal */\n @Prop() apiPath: string = \"https://api.vviinn.com\";\n /** When true modal window with widget will be shown */\n @Prop({ mutable: true }) active: boolean = false;\n /** Currency sign will shown after price */\n @Prop() currencySign: string = \"€\";\n /** Locale for currency formatting */\n @Prop() locale: string = \"de-DE\";\n /** Campaign using for visual search */\n @Prop() campaignId?: string;\n /** Set true when showing the widget in button */\n @Prop() showingInButton?: boolean = false;\n /** Element Id, passed from vps-button */\n /** @internal */\n @Prop() buttonElementId?: string;\n /** @internal */\n @Prop() buttonPressed?: boolean;\n /** @internal */\n @Prop() mode: \"modal\" | \"upload\" = \"modal\";\n /** @internal */\n @Prop() resetVpsButton: () => void;\n\n @State() slidePosition: number = 0;\n @State() width: number = 0;\n @State() wrongImageFormat: boolean = false;\n @State() trackingDeactivated: boolean = false;\n\n /** @internal */\n @Event({ bubbles: true, composed: true })\n globalSlotsChanged: EventEmitter<any>;\n\n @Event({ bubbles: true })\n vviinnWidgetLoad: EventEmitter<BasicEventData>;\n @Event({ bubbles: true })\n vviinnWidgetOpen: EventEmitter<BasicEventData>;\n\n // List to show in the Storybook:\n @Event() vviinnWidgetClose: EventEmitter;\n @Event() vviinnProductClick: EventEmitter;\n @Event() vviinnProductView: EventEmitter;\n @Event() vviinnProductLoad: EventEmitter;\n @Event() vviinnImageUpload: EventEmitter;\n @Event() vviinnImageCrop: EventEmitter;\n @Event() vviinnSelectObject: EventEmitter;\n @Event() vviinnSelectFilter: EventEmitter;\n @Event() vviinnNoResult: EventEmitter;\n\n private overflow: string;\n private uiSessionId: string;\n private trackingApi: DefaultApi;\n private imageSource: SearchImageSource | null = null;\n private id?: string;\n\n componentDidLoad() {\n const slots = this.el.querySelectorAll(\"[slot]\");\n this.globalSlotsChanged.emit(Array.from(slots));\n }\n\n setTrackingDeactivated = (result: EventConfirmation) => {\n if (result.status === \"rejected\") {\n this.trackingDeactivated = true;\n }\n };\n\n getBasicEventData = (): BasicEventData => {\n return {\n widgetType: \"VPS\",\n campaignTypeId: \"VPS\",\n campaignTypeName: campaignTypeNames[\"VPS\"],\n widgetId: this.buttonElementId ?? this.id,\n };\n };\n\n @Watch(\"active\")\n activeWatcher(value: boolean) {\n if (value) {\n this.overflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n this.trackOpenEvent();\n } else {\n document.body.style.overflow = this.overflow;\n }\n }\n\n @Watch(\"buttonPressed\")\n buttonPressedWatcher(pressed: boolean) {\n if (!pressed) return;\n if (this.mode === \"modal\") {\n this.active = true;\n this.vviinnWidgetOpen.emit(this.getBasicEventData());\n }\n }\n\n @Listen(\"vviinnProductView\")\n trackProductView({ detail }: ProductCardEvent) {\n if (this.trackingDeactivated) return;\n\n const {\n productRank,\n productId,\n productName,\n widgetType,\n widgetId,\n campaignTypeId,\n campaignTypeName,\n ...rest\n } = detail;\n\n const productViewEvent: ProductViewEvent = createProductViewVpsEvent({\n session_id: this.uiSessionId,\n rank: productRank,\n product: productId,\n ...rest,\n });\n\n this.trackingApi\n .trackEvent(productViewEvent)\n .then(this.setTrackingDeactivated);\n }\n\n @Listen(\"vviinnProductClick\")\n async trackProductClick({ detail }: ProductCardEvent) {\n const {\n productRank,\n productId,\n productName,\n widgetType,\n widgetId,\n campaignTypeId,\n campaignTypeName,\n ...rest\n } = detail;\n\n const productClickEvent: ProductClickEvent = createProductClickVpsEvent({\n session_id: this.uiSessionId,\n rank: productRank,\n product: productId,\n ...rest,\n });\n\n if (!this.trackingDeactivated) {\n await this.trackingApi\n .trackEvent(this.trackingDeactivated ? null : productClickEvent)\n .then(this.setTrackingDeactivated);\n }\n\n const product = imageSearchState.results.find(\n (r) => r.productId === detail.productId\n );\n if (!product || !product.deeplink) return;\n window.location.href = product.deeplink;\n }\n\n @Listen(\"vviinnImageCrop\")\n trachSearchAreaChanges() {\n if (this.trackingDeactivated) return;\n\n const searchEvent: WidgetEvent = createSearchEvent({\n session_id: this.uiSessionId,\n source: this.imageSource,\n search_area: \"manual-selection\",\n });\n this.trackingApi.trackEvent(searchEvent).then(this.setTrackingDeactivated);\n }\n\n @Listen(\"vviinnSelectObject\")\n trackDetectedObject() {\n if (this.trackingDeactivated) return;\n\n const searchEvent: WidgetEvent = createSearchEvent({\n session_id: this.uiSessionId,\n source: this.imageSource,\n search_area: \"attention-point\",\n });\n this.trackingApi.trackEvent(searchEvent).then(this.setTrackingDeactivated);\n }\n\n @Listen(\"vviinnSelectFilter\")\n trackFilter({ detail }: CustomEvent<SelectFilterEventData>) {\n if (this.trackingDeactivated) return;\n\n const searchEvent: WidgetEvent = createFilterEvent({\n session_id: this.uiSessionId,\n source: this.imageSource,\n kind: \"category\",\n action: detail.action,\n });\n this.trackingApi.trackEvent(searchEvent).then(this.setTrackingDeactivated);\n }\n\n connectedCallback() {\n state.apiPath = this.apiPath;\n state.currencySign = this.currencySign;\n state.locale = this.locale;\n imageSearchState.token = this.token;\n imageSearchState.campaignId = pipe(\n this.campaignId,\n O.fromNullable,\n O.chain(O.fromPredicate(notEmptyString)),\n O.map(filterInt),\n O.chain(O.fromPredicate(notNan)),\n O.map((s) => `${s}`)\n );\n\n this.uiSessionId = uuidv4();\n this.trackingApi = createTrackingApi(this.apiPath, this.token);\n this.id = this.el.id;\n }\n\n componentWillLoad() {\n slotChangeListener(this, this.el);\n this.vviinnWidgetLoad.emit(this.getBasicEventData());\n }\n\n private trackOpenEvent() {\n if (this.trackingDeactivated) return;\n\n const widgetOpenEvent: WidgetEvent = createWidgetVpsEvent({\n action: \"open\",\n session_id: this.uiSessionId,\n });\n this.trackingApi\n .trackEvent(widgetOpenEvent)\n .then(this.setTrackingDeactivated);\n }\n\n private handleImageSelection(source: SearchImageSource) {\n this.imageSource = source;\n this.slidePosition = 1;\n const root = this.el.shadowRoot.querySelector(\"vviinn-overlayed-modal\");\n const overlay = root.shadowRoot.querySelector(\"vviinn-overlay\");\n const modal = overlay.querySelector(\"vviinn-modal\");\n const modalBody = modal.shadowRoot.querySelector(\".body\");\n modalBody.scrollTop = 0;\n\n this.trackInitialSearch();\n }\n\n private trackInitialSearch() {\n if (this.trackingDeactivated) return;\n\n const searchEvent: WidgetEvent = createSearchEvent({\n session_id: this.uiSessionId,\n source: this.imageSource,\n search_area: \"full\",\n });\n this.trackingApi.trackEvent(searchEvent).then(this.setTrackingDeactivated);\n }\n\n private resetState() {\n this.resetScroll(\"onboarding-block\");\n\n this.slidePosition = 0;\n imageSearchState.image = O.none;\n imageSearchState.imageUrl = O.none;\n imageSearchState.imageBounds = O.none;\n imageSearchState.searchArea = O.none;\n imageSearchState.results = [];\n imageSearchState.filters = [];\n imageSearchState.detectedObjects = [];\n imageSearchState.activeIonLink = undefined;\n imageSearchState.rectangleSearchForm = undefined;\n imageSearchState.loading = false;\n this.resetScroll(\"results-block\");\n }\n\n private haveErrors(): boolean {\n return this.wrongImageFormat || imageSearchState.serverError;\n }\n\n private resetScroll(elementId: string, behavior: ScrollBehavior = \"auto\") {\n const element: HTMLElement = this.el.shadowRoot.getElementById(elementId);\n element.scroll({ top: 0, left: 0, behavior });\n }\n\n private handleModalClose() {\n this.active = false;\n this.resetState();\n\n const elementsToReset = [\"onboarding-block\", \"results-block\"];\n elementsToReset.forEach((name) => this.resetScroll(name));\n\n if (this.trackingDeactivated) return;\n\n const widgetCloseEvent: WidgetEvent = createWidgetVpsEvent({\n action: \"close\",\n session_id: this.uiSessionId,\n });\n this.trackingApi\n .trackEvent(widgetCloseEvent)\n .then(this.setTrackingDeactivated);\n }\n\n render() {\n return (\n <Host>\n {!this.showingInButton && <SlotSkeleton />}\n\n <vviinn-overlayed-modal\n class={{ \"first-screen\": this.slidePosition === 0 }}\n active={this.active}\n resetState={this.resetState.bind(this)}\n onVviinnWidgetClose={() => this.handleModalClose()}\n buttonElementId={this.buttonElementId ?? this.id}\n hideBackButton={this.mode === \"upload\"}\n exportparts=\"secondary-action, title, close-button, example-images\"\n >\n <vviinn-slider showBullets={false} position={this.slidePosition}>\n <vviinn-slide class={{ \"start-page\": true }}>\n <div\n class={{\n error: this.haveErrors(),\n \"start-page_block\": true,\n }}\n >\n <vviinn-wrong-format\n class={{ hidden: !this.wrongImageFormat }}\n handler={() => (this.wrongImageFormat = false)}\n />\n <vviinn-server-error\n class={{ hidden: !imageSearchState.serverError }}\n handler={() => (imageSearchState.serverError = false)}\n />\n <vviinn-teaser class={{ hidden: this.haveErrors() }} />\n <vviinn-image-selector\n class={{ hidden: this.haveErrors() }}\n onVviinnImageUpload={() => {\n this.active = true;\n this.handleImageSelection(\"upload\");\n if (this.mode === \"upload\") {\n this.vviinnWidgetOpen.emit(this.getBasicEventData());\n }\n }}\n onVviinnNoResult={() => (this.wrongImageFormat = true)}\n resetVpsButton={this.resetVpsButton}\n basicEventData={this.getBasicEventData()}\n part=\"select-image_button\"\n startUpload={\n this.buttonPressed &&\n this.showingInButton &&\n this.mode === \"upload\"\n }\n >\n <span slot=\"upload-button-text\" class=\"upload-button-content\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"29\"\n height=\"28\"\n fill=\"none\"\n >\n <defs />\n <path\n fill=\"#fff\"\n fill-rule=\"evenodd\"\n d=\"M10.271 3.89A.875.875 0 0111 3.5h7c.293 0 .566.146.728.39l1.49 2.235h3.033a2.625 2.625 0 012.625 2.625V21a2.625 2.625 0 01-2.625 2.625H5.75A2.625 2.625 0 013.125 21V8.75A2.625 2.625 0 015.75 6.125h3.031l1.49-2.235zm1.197 1.36l-1.49 2.235a.875.875 0 01-.729.39H5.75a.875.875 0 00-.875.875V21a.875.875 0 00.875.875h17.5a.875.875 0 00.875-.875V8.75a.875.875 0 00-.875-.875h-3.5a.875.875 0 01-.729-.39l-1.49-2.235h-6.063z\"\n clip-rule=\"evenodd\"\n />\n <path\n fill=\"#fff\"\n fill-rule=\"evenodd\"\n d=\"M14.5 11.375a3.062 3.062 0 100 6.125 3.062 3.062 0 000-6.125zm-4.813 3.063a4.812 4.812 0 119.625 0 4.812 4.812 0 01-9.625 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <slot name=\"vviinn-image-upload-button-text\">\n <span>Kamera oder Bild auswählen</span>\n </slot>\n </span>\n </vviinn-image-selector>\n <vviinn-privacy-badge class={{ hidden: this.haveErrors() }} />\n </div>\n <div id=\"onboarding-block\" class=\"start-page_block\">\n <div class=\"onboarding-wrapper\">\n <vviinn-onboarding />\n <vviinn-example-images\n part=\"example-images\"\n onVviinnImageUpload={() =>\n this.handleImageSelection(\"example\")\n }\n onVviinnNoResult={() =>\n this.resetScroll(\"onboarding-block\", \"smooth\")\n }\n basicEventData={this.getBasicEventData()}\n />\n </div>\n </div>\n </vviinn-slide>\n <vviinn-slide\n class={{ \"results-page\": true, active: this.slidePosition == 1 }}\n >\n <div class=\"image-wrapper\">\n <vviinn-image-view basicEventData={this.getBasicEventData()} />\n <div class=\"filters-wrapper\">\n <div class=\"filters\">\n {imageSearchState.filters.map((filter) => (\n <search-filters\n filter={filter}\n basicEventData={this.getBasicEventData()}\n />\n ))}\n </div>\n </div>\n </div>\n <div id=\"results-block\" class=\"products-wrapper\">\n <div\n class={{\n \"nothing-found\": true,\n hidden: imageSearchState.results.length > 0,\n }}\n >\n <vviinn-empty-results />\n <vviinn-onboarding />\n </div>\n <div\n class={{\n hidden: imageSearchState.results.length <= 0,\n products: true,\n }}\n >\n {imageSearchState.results.map((p, i) => (\n <vviinn-product-card\n key={p.productId}\n hidden={true}\n productTitle={p.title}\n productId={p.productId}\n brand={p.brand}\n deeplink={p.deeplink}\n price={p.price.actual}\n salePrice={p.price.sale}\n imageWidth={160}\n image={p.image.thumbnail ?? p.image.original}\n part=\"product-card\"\n campaignTypeId=\"VPS\"\n index={i}\n widgetElementId={this.id}\n buttonElementId={this.buttonElementId}\n />\n ))}\n </div>\n </div>\n </vviinn-slide>\n </vviinn-slider>\n </vviinn-overlayed-modal>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,17 +1,23 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-590cb67e.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-48ef9564.js';
2
+ export { s as setNonce } from './index-48ef9564.js';
2
3
 
3
4
  /*
4
- Stencil Client Patch Browser v2.9.0 | MIT Licensed | https://stenciljs.com
5
+ Stencil Client Patch Browser v3.3.1 | MIT Licensed | https://stenciljs.com
5
6
  */
6
7
  const patchBrowser = () => {
7
8
  const importMeta = import.meta.url;
8
9
  const opts = {};
10
+ // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
9
11
  if (importMeta !== '') {
10
12
  opts.resourcesUrl = new URL('.', importMeta).href;
13
+ // TODO(STENCIL-661): Remove code related to the dynamic import shim
14
+ // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
11
15
  }
12
16
  return promiseResolve(opts);
13
17
  };
14
18
 
15
19
  patchBrowser().then(options => {
16
- return bootstrapLazy([["vviinn-button",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["cropper-handler",[[1,"cropper-handler",{"handler":[16],"disabled":[4]}]]],["vviinn-error",[[1,"vviinn-error"]]],["vviinn-preloader",[[1,"vviinn-preloader"]]],["vviinn-carousel_3",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"buttonElementId":[1,"button-element-id"],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32]},[[0,"vviinnProductLoad","handleProductLoading"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32]}],[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"campaignTypeId":[1,"campaign-type-id"],"dimmedBackground":[4,"dimmed-background"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"index":[2],"imageLoaded":[32]}]]],["highlight-box_22",[[1,"vviinn-image-view",{"basicEventData":[16]}],[1,"vviinn-onboarding"],[1,"vviinn-example-images",{"basicEventData":[16]}],[1,"vviinn-overlayed-modal",{"active":[4],"resetState":[16],"buttonElementId":[1,"button-element-id"]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector",{"basicEventData":[16]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"basicEventData":[16],"selectedCategoryId":[32],"hideFilters":[32]}],[1,"vviinn-privacy-badge"],[1,"vviinn-teaser"],[1,"image-cropper",{"disabled":[4],"basicEventData":[16],"handleMove":[32]}],[1,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"basicEventData":[16],"selected":[32]}],[1,"highlight-box"],[1,"vviinn-detected-object",{"detectedObject":[16],"basicEventData":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"resetState":[16],"buttonElementId":[1,"button-element-id"],"slider":[32]}],[1,"vviinn-onboarding-card-1"],[1,"vviinn-onboarding-card-2"],[1,"vviinn-onboarding-card-3"],[1,"vviinn-overlay"],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}]]],["vviinn-vps-widget",[[1,"vviinn-vps-widget",{"token":[1],"apiPath":[1,"api-path"],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"slidePosition":[32],"width":[32],"wrongImageFormat":[32],"trackingDeactivated":[32]},[[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"]]]]],["vviinn-vps-button",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"addStyle":[4,"add-style"],"apiPath":[1,"api-path"],"pressed":[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["vviinn-recommendations-sidebar",[[1,"vviinn-recommendations-sidebar",{"sidebarTitle":[1,"sidebar-title"],"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"widgetScrollbar":[4,"widget-scrollbar"],"mode":[1],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"apiPath":[1,"api-path"],"buttonElementId":[1,"button-element-id"],"state":[32]},[[16,"click","bodyClickListener"]]]]],["vviinn-vpr-button",[[1,"vviinn-vpr-button",{"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"sidebarTitle":[1,"sidebar-title"],"modalScrollbar":[4,"modal-scrollbar"],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"addStyle":[4,"add-style"],"mode":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"apiPath":[1,"api-path"]}]]]], options);
20
+ return bootstrapLazy([["vviinn-button",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["cropper-handler",[[1,"cropper-handler",{"handler":[16],"disabled":[4]}]]],["vviinn-error",[[1,"vviinn-error"]]],["vviinn-preloader",[[1,"vviinn-preloader"]]],["vviinn-carousel_3",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"buttonElementId":[1,"button-element-id"],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32]},[[0,"vviinnProductLoad","handleProductLoading"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"]]],[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32]}],[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"campaignTypeId":[1,"campaign-type-id"],"dimmedBackground":[4,"dimmed-background"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"index":[2],"imageLoaded":[32]}]]],["highlight-box_22",[[1,"vviinn-image-view",{"basicEventData":[16]}],[1,"vviinn-onboarding"],[1,"vviinn-example-images",{"basicEventData":[16]}],[1,"vviinn-overlayed-modal",{"active":[4],"resetState":[16],"buttonElementId":[1,"button-element-id"],"hideBackButton":[4,"hide-back-button"]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"resetVpsButton":[16]}],[1,"vviinn-server-error",{"handler":[16]}],[1,"vviinn-wrong-format",{"handler":[16]}],[1,"search-filters",{"filter":[16],"basicEventData":[16],"selectedCategoryId":[32],"hideFilters":[32]}],[1,"vviinn-privacy-badge"],[1,"vviinn-teaser"],[1,"image-cropper",{"disabled":[4],"basicEventData":[16],"handleMove":[32]}],[1,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"basicEventData":[16],"selected":[32]}],[1,"highlight-box"],[1,"vviinn-detected-object",{"detectedObject":[16],"basicEventData":[16],"position":[32]}],[1,"vviinn-modal",{"active":[1540],"resetState":[16],"buttonElementId":[1,"button-element-id"],"hideBackButton":[4,"hide-back-button"],"slider":[32]}],[1,"vviinn-onboarding-card-1"],[1,"vviinn-onboarding-card-2"],[1,"vviinn-onboarding-card-3"],[1,"vviinn-overlay"],[1,"vviinn-slide"],[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}]]],["vviinn-vps-widget",[[1,"vviinn-vps-widget",{"token":[1],"apiPath":[1,"api-path"],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"buttonPressed":[4,"button-pressed"],"mode":[1],"resetVpsButton":[16],"slidePosition":[32],"width":[32],"wrongImageFormat":[32],"trackingDeactivated":[32]},[[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"]]]]],["vviinn-vps-button",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"addStyle":[4,"add-style"],"mode":[1],"apiPath":[1,"api-path"],"buttonPressed":[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["vviinn-recommendations-sidebar",[[1,"vviinn-recommendations-sidebar",{"sidebarTitle":[1,"sidebar-title"],"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"widgetScrollbar":[4,"widget-scrollbar"],"mode":[1],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"apiPath":[1,"api-path"],"buttonElementId":[1,"button-element-id"],"state":[32]},[[16,"click","bodyClickListener"]]]]],["vviinn-vpr-button",[[1,"vviinn-vpr-button",{"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"sidebarTitle":[1,"sidebar-title"],"modalScrollbar":[4,"modal-scrollbar"],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"addStyle":[4,"add-style"],"mode":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"apiPath":[1,"api-path"]}]]]], options);
17
21
  });
22
+
23
+ //# sourceMappingURL=vviinn-widgets.js.map
@@ -0,0 +1 @@
1
+ {"file":"vviinn-widgets.js","mappings":";;;AAAA;AACA;AACA;AAiBA,MAAM,YAAY,GAAG,MAAM;AAkC3B,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC,IAAI,MAAM,IAAI,GAAiE,EAAE,CAAC;AAgBlF;AACA,IAAI,IAAuB,UAAU,KAAK,EAAE,EAAE;AAC9C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC;AAC1D;AACA;AACA,KAaK;AACL,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;;ACtFD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI;AAE/B,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC","names":[],"sources":["./node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v3.3.1 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\n/**\n * Helper method for querying a `meta` tag that contains a nonce value\n * out of a DOM's head.\n *\n * @param doc The DOM containing the `head` to query against\n * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag\n * exists or the tag has no content.\n */\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;\n}\n// TODO(STENCIL-661): Remove code related to the dynamic import shim\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n if (BUILD.cssVarShim) {\n // shim css vars\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n // because the mark/measure APIs are designed to write entries to a buffer in the browser that does not exist,\n // simply stub the implementations out.\n // TODO(STENCIL-323): Remove this patch when support for older browsers is removed (breaking)\n // @ts-ignore\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = \n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})['data-opts'] || {} : {};\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\n// TODO(STENCIL-661): Remove code related to the dynamic import shim\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n var _a;\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n // Apply CSP nonce to the script tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n script.setAttribute('nonce', nonce);\n }\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"version":3}
@@ -10,3 +10,12 @@ export interface CustomElementsDefineOptions {
10
10
  }
11
11
  export declare function defineCustomElements(win?: Window, opts?: CustomElementsDefineOptions): Promise<void>;
12
12
  export declare function applyPolyfills(): Promise<void>;
13
+
14
+ /**
15
+ * Used to specify a nonce value that corresponds with an application's CSP.
16
+ * When set, the nonce will be added to all dynamically created script and style tags at runtime.
17
+ * Alternatively, the nonce value can be set on a meta tag in the DOM head
18
+ * (<meta name="csp-nonce" content="{ nonce value here }" />) which
19
+ * will result in the same behavior.
20
+ */
21
+ export declare function setNonce(nonce: string): void;
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "name": "vviinn-widgets-loader",
3
+ "private": true,
3
4
  "typings": "./index.d.ts",
4
5
  "module": "./index.js",
5
6
  "main": "./index.cjs.js",
@@ -1,10 +1,10 @@
1
- declare type ImageWidth = "width";
2
- declare type ImageHeight = "height";
3
- export declare type ImageDimension = {
1
+ type ImageWidth = "width";
2
+ type ImageHeight = "height";
3
+ export type ImageDimension = {
4
4
  readonly kind: ImageWidth | ImageHeight;
5
5
  readonly size: number;
6
6
  };
7
- declare type ImageDimensions = ImageDimension[];
7
+ type ImageDimensions = ImageDimension[];
8
8
  export declare const scaleByLargestSide: (toSize: number) => (dimensions: ImageDimensions) => ImageDimensions;
9
9
  export declare const dimensionsFromImage: (image: HTMLImageElement) => ImageDimensions;
10
10
  export {};
@@ -1,7 +1,7 @@
1
- export declare type CampaignName = "VPR" | "VCS";
2
- export declare type WidgetType = "VPR" | "VPS";
3
- export declare type CampaignTypeId = "VPR" | "VPS" | "VCS";
4
- export declare type CampaignTypeTitle = "Similar Products" | "Visual Search" | "Products Cross-Selling";
1
+ export type CampaignName = "VPR" | "VCS";
2
+ export type WidgetType = "VPR" | "VPS";
3
+ export type CampaignTypeId = "VPR" | "VPS" | "VCS";
4
+ export type CampaignTypeTitle = "Similar Products" | "Visual Search" | "Products Cross-Selling";
5
5
  export declare const campaignTypeNames: Record<CampaignTypeId, CampaignTypeTitle>;
6
6
  export interface VPR {
7
7
  readonly _tag: "VPR";
@@ -11,6 +11,6 @@ export interface VCS {
11
11
  }
12
12
  export declare const isVPR: (c: Campaign) => c is VPR;
13
13
  export declare const isVCS: (c: Campaign) => c is VCS;
14
- export declare type Campaign = VPR | VCS;
14
+ export type Campaign = VPR | VCS;
15
15
  export declare function fold<A, B>(onVPR: () => A, onVCS: () => B): (c: Campaign) => A | B;
16
16
  export declare function fromString(s: CampaignName): Campaign;
@@ -1,2 +1,2 @@
1
1
  import { Recommendation } from "../recommendation/recommendation";
2
- export declare type VCSCampaignResponse = Recommendation[];
2
+ export type VCSCampaignResponse = Recommendation[];
@@ -1,7 +1,7 @@
1
1
  import { Recommendation } from "../../recommendation/recommendation";
2
2
  import { CampaignTypeId } from "../../campaign/Campaign";
3
- declare type MoveDirection = "left" | "right";
4
- export declare type CarouselMode = "grid" | "continuity";
3
+ type MoveDirection = "left" | "right";
4
+ export type CarouselMode = "grid" | "continuity";
5
5
  /**
6
6
  * @part carousel-button
7
7
  **/
@@ -9,7 +9,11 @@ export declare class VviinnImageSelector {
9
9
  /** Event fires when user select file that no .jpg, .jpeg or png */
10
10
  vviinnNoResult: EventEmitter<BasicEventData>;
11
11
  basicEventData: BasicEventData;
12
+ startUpload: boolean;
13
+ resetVpsButton: () => void;
14
+ private fileInput;
12
15
  private handleInputChange;
13
16
  private isLoading;
17
+ startUploadWatcher(upload: boolean): void;
14
18
  render(): any;
15
19
  }
@@ -6,6 +6,8 @@ export declare class VviinnModal {
6
6
  resetState: () => void;
7
7
  /** @internal */
8
8
  buttonElementId?: string;
9
+ /** @internal */
10
+ hideBackButton: boolean;
9
11
  slider: boolean;
10
12
  /** Event emitted when close button clicked and close animation ends */
11
13
  vviinnWidgetClose: EventEmitter<BasicEventData>;
@@ -4,6 +4,8 @@ export declare class VviinnOverlayedModal {
4
4
  resetState: () => void;
5
5
  /** @internal */
6
6
  buttonElementId?: string;
7
+ /** @internal */
8
+ hideBackButton: boolean;
7
9
  vviinnWidgetClose: EventEmitter<void>;
8
10
  render(): any;
9
11
  }
@@ -3,18 +3,18 @@ import { FunctionalComponent } from "../../stencil-public-runtime";
3
3
  export declare const containsFit: (url: string) => E.Either<string, string>;
4
4
  export declare const processWidth: (url: string, size: number) => string;
5
5
  export declare const Linked: (props: any, child: any) => any;
6
- declare type PriceElementProps = {
6
+ type PriceElementProps = {
7
7
  readonly locale: string;
8
8
  readonly price: number;
9
9
  readonly prefix: string;
10
10
  readonly currency: string;
11
11
  readonly priceType?: "sale" | "outdated" | "regular";
12
12
  };
13
- declare type PriceProps = PriceElementProps & {
13
+ type PriceProps = PriceElementProps & {
14
14
  salePrice: number;
15
15
  };
16
16
  export declare const Price: FunctionalComponent<PriceProps>;
17
- export declare type ImageProps = {
17
+ export type ImageProps = {
18
18
  width: number;
19
19
  height: number;
20
20
  title: string;
@@ -1,6 +1,6 @@
1
1
  import { FunctionalComponent } from "../../stencil-public-runtime";
2
- export declare type ArrowKind = "prev" | "next";
3
- declare type ArrowProp = {
2
+ export type ArrowKind = "prev" | "next";
3
+ type ArrowProp = {
4
4
  kind: ArrowKind;
5
5
  tabindex: number;
6
6
  disabled: boolean;
@@ -2,8 +2,8 @@ import { EventEmitter } from "../../../stencil-public-runtime";
2
2
  import { CarouselMode } from "../../vviinn-carousel/vviinn-carousel";
3
3
  import { BasicEventData } from "../../../recommendation/events";
4
4
  import { CampaignTypeId } from "../../../campaign/Campaign";
5
- declare type SidebarState = "idle" | "open" | "closed";
6
- declare type ClickEvent = Event & {
5
+ type SidebarState = "idle" | "open" | "closed";
6
+ type ClickEvent = Event & {
7
7
  clientX: number;
8
8
  clientY: number;
9
9
  };
@@ -45,26 +45,31 @@ export declare class VviinnVpsButton {
45
45
  campaignId?: string;
46
46
  /** Add style to the button */
47
47
  addStyle: boolean;
48
+ /** Add style to the button */
49
+ mode: "modal" | "upload";
48
50
  /** @internal */
49
51
  apiPath: string | undefined;
50
- pressed: boolean;
52
+ buttonPressed: boolean;
51
53
  /** @internal */
52
54
  globalSlotsChanged: EventEmitter<any>;
53
55
  /** Event emitted when vps-button clicked */
54
56
  vviinnWidgetOpen: EventEmitter<BasicEventData>;
57
+ /** Event fires when user select file */
58
+ vviinnImageUpload: EventEmitter<BasicEventData>;
59
+ /** Event fires when user select file that no .jpg, .jpeg or png */
60
+ vviinnNoResult: EventEmitter<BasicEventData>;
55
61
  vviinnWidgetLoad: EventEmitter;
56
62
  vviinnWidgetClose: EventEmitter;
57
63
  vviinnProductClick: EventEmitter;
58
64
  vviinnProductView: EventEmitter;
59
65
  vviinnProductLoad: EventEmitter;
60
- vviinnImageUpload: EventEmitter;
61
66
  vviinnImageCrop: EventEmitter;
62
67
  vviinnSelectObject: EventEmitter;
63
68
  vviinnSelectFilter: EventEmitter;
64
- vviinnNoResult: EventEmitter;
69
+ getBasicEventData: () => BasicEventData;
65
70
  handleModalClosed(): void;
66
71
  componentDidLoad(): void;
67
- private handleKeyDown;
68
72
  private handleClick;
73
+ private resetButton;
69
74
  render(): any;
70
75
  }
@@ -64,6 +64,12 @@ export declare class VviinnVpsWidget {
64
64
  /** Element Id, passed from vps-button */
65
65
  /** @internal */
66
66
  buttonElementId?: string;
67
+ /** @internal */
68
+ buttonPressed?: boolean;
69
+ /** @internal */
70
+ mode: "modal" | "upload";
71
+ /** @internal */
72
+ resetVpsButton: () => void;
67
73
  slidePosition: number;
68
74
  width: number;
69
75
  wrongImageFormat: boolean;
@@ -71,6 +77,7 @@ export declare class VviinnVpsWidget {
71
77
  /** @internal */
72
78
  globalSlotsChanged: EventEmitter<any>;
73
79
  vviinnWidgetLoad: EventEmitter<BasicEventData>;
80
+ vviinnWidgetOpen: EventEmitter<BasicEventData>;
74
81
  vviinnWidgetClose: EventEmitter;
75
82
  vviinnProductClick: EventEmitter;
76
83
  vviinnProductView: EventEmitter;
@@ -89,6 +96,7 @@ export declare class VviinnVpsWidget {
89
96
  setTrackingDeactivated: (result: EventConfirmation) => void;
90
97
  getBasicEventData: () => BasicEventData;
91
98
  activeWatcher(value: boolean): void;
99
+ buttonPressedWatcher(pressed: boolean): void;
92
100
  trackProductView({ detail }: ProductCardEvent): void;
93
101
  trackProductClick({ detail }: ProductCardEvent): Promise<void>;
94
102
  trachSearchAreaChanges(): void;