vviinn-widgets 2.5.2 → 2.7.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 (116) hide show
  1. package/dist/cjs/{app-globals-d15b4c2c.js → app-globals-047a582c.js} +1 -1
  2. package/dist/cjs/{highlight-box_22.cjs.entry.js → cropper-handler_27.cjs.entry.js} +473 -85
  3. package/dist/cjs/{customized-slots-0c0d0665.js → customized-slots-cb722e68.js} +1 -1
  4. package/dist/cjs/{index-0f5516a6.js → index-bd771524.js} +1 -1
  5. package/dist/cjs/{imageSearch.store-865c23f4.js → index-d07466b9.js} +14707 -11093
  6. package/dist/cjs/{index-31b9cb7a.js → index-fcafbfe5.js} +1 -1
  7. package/dist/cjs/loader.cjs.js +3 -3
  8. package/dist/cjs/{vviinn-carousel_3.cjs.entry.js → vviinn-carousel_2.cjs.entry.js} +35 -208
  9. package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +5 -3
  10. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +7 -2
  11. package/dist/cjs/vviinn-vps-button.cjs.entry.js +4 -4
  12. package/dist/cjs/vviinn-widgets.cjs.js +3 -3
  13. package/dist/collection/campaign/VCSCampaignService.js +4 -2
  14. package/dist/collection/campaign/VPRCampaignService.js +4 -2
  15. package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +21 -1
  16. package/dist/collection/components/vviinn-vpr-button/stories/args.js +6 -0
  17. package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js +2 -0
  18. package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +23 -0
  19. package/dist/collection/components/vviinn-vpr-widget/stories/args.js +7 -0
  20. package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js +12 -13
  21. package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js +28 -1
  22. package/dist/collection/components/vviinn-vps-button/stories/vviinn-vps-button.stories.js +9 -5
  23. package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +18 -1
  24. package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js +11 -7
  25. package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +23 -0
  26. package/dist/collection/searchSession/searchSession.js +6 -1
  27. package/dist/collection/store/imageSearch.store.js +2 -7
  28. package/dist/esm/{app-globals-6f6aa89e.js → app-globals-68b1d848.js} +1 -1
  29. package/dist/esm/{highlight-box_22.entry.js → cropper-handler_27.entry.js} +404 -21
  30. package/dist/esm/{customized-slots-6b427dda.js → customized-slots-95a05ceb.js} +1 -1
  31. package/dist/esm/{imageSearch.store-0ae87235.js → index-33fe5a25.js} +14832 -11234
  32. package/dist/esm/{index-59f44eaa.js → index-75a1f589.js} +1 -1
  33. package/dist/esm/{index-ac05c460.js → index-f9df412f.js} +2 -2
  34. package/dist/esm/loader.js +3 -3
  35. package/dist/esm/{vviinn-carousel_3.entry.js → vviinn-carousel_2.entry.js} +15 -187
  36. package/dist/esm/vviinn-recommendations-sidebar.entry.js +5 -3
  37. package/dist/esm/vviinn-vpr-button.entry.js +7 -2
  38. package/dist/esm/vviinn-vps-button.entry.js +4 -4
  39. package/dist/esm/vviinn-widgets.js +3 -3
  40. package/dist/types/campaign/CampaignService.d.ts +1 -1
  41. package/dist/types/campaign/VCSCampaignService.d.ts +2 -1
  42. package/dist/types/campaign/VPRCampaignService.d.ts +2 -1
  43. package/dist/types/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.d.ts +2 -0
  44. package/dist/types/components/vviinn-vpr-button/stories/args.d.ts +6 -0
  45. package/dist/types/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.d.ts +6 -0
  46. package/dist/types/components/vviinn-vpr-button/vviinn-vpr-button.d.ts +2 -0
  47. package/dist/types/components/vviinn-vpr-widget/stories/args.d.ts +6 -0
  48. package/dist/types/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.d.ts +6 -0
  49. package/dist/types/components/vviinn-vpr-widget/vviinn-vpr-vidget.d.ts +3 -0
  50. package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +2 -0
  51. package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +2 -0
  52. package/dist/types/components.d.ts +40 -0
  53. package/dist/types/searchSession/searchSession.d.ts +2 -1
  54. package/dist/types/store/imageSearch.store.d.ts +7 -6
  55. package/dist/vviinn-widgets/{p-bad1809f.js → p-4e55513e.js} +1 -1
  56. package/dist/vviinn-widgets/p-5358970c.entry.js +1 -0
  57. package/{www/build/p-c36546fa.js → dist/vviinn-widgets/p-66015ad7.js} +1 -1
  58. package/dist/vviinn-widgets/p-669a156c.entry.js +1 -0
  59. package/dist/vviinn-widgets/p-8080679b.entry.js +1 -0
  60. package/dist/vviinn-widgets/p-9de1b0e7.js +1 -0
  61. package/dist/vviinn-widgets/{p-ee46fc83.js → p-b254eee7.js} +1 -1
  62. package/dist/vviinn-widgets/p-c1cd51ef.entry.js +1 -0
  63. package/dist/vviinn-widgets/p-e32c30d4.entry.js +1 -0
  64. package/dist/vviinn-widgets/{p-118ac907.js → p-f6e59cb2.js} +1 -1
  65. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  66. package/package.json +3 -3
  67. package/www/build/{p-bad1809f.js → p-4e55513e.js} +1 -1
  68. package/www/build/p-5358970c.entry.js +1 -0
  69. package/{dist/vviinn-widgets/p-c36546fa.js → www/build/p-66015ad7.js} +1 -1
  70. package/www/build/p-669a156c.entry.js +1 -0
  71. package/www/build/p-8080679b.entry.js +1 -0
  72. package/www/build/p-9de1b0e7.js +1 -0
  73. package/www/build/{p-ee46fc83.js → p-b254eee7.js} +1 -1
  74. package/www/build/p-c1cd51ef.entry.js +1 -0
  75. package/www/build/p-e32c30d4.entry.js +1 -0
  76. package/www/build/p-eb8f77e4.js +1 -0
  77. package/www/build/{p-118ac907.js → p-f6e59cb2.js} +1 -1
  78. package/www/build/vviinn-widgets.esm.js +1 -1
  79. package/www/index.html +1 -1
  80. package/dist/cjs/Handler-176539c8.js +0 -331
  81. package/dist/cjs/cropper-handler.cjs.entry.js +0 -27
  82. package/dist/cjs/index-0eb3036a.js +0 -3235
  83. package/dist/cjs/vviinn-error.cjs.entry.js +0 -19
  84. package/dist/cjs/vviinn-preloader.cjs.entry.js +0 -26
  85. package/dist/cjs/vviinn-vps-widget.cjs.entry.js +0 -167
  86. package/dist/esm/Handler-f9b8735c.js +0 -309
  87. package/dist/esm/cropper-handler.entry.js +0 -23
  88. package/dist/esm/index-2e296af4.js +0 -3224
  89. package/dist/esm/vviinn-error.entry.js +0 -15
  90. package/dist/esm/vviinn-preloader.entry.js +0 -22
  91. package/dist/esm/vviinn-vps-widget.entry.js +0 -163
  92. package/dist/vviinn-widgets/p-11f61564.js +0 -1
  93. package/dist/vviinn-widgets/p-39fdc5c9.entry.js +0 -1
  94. package/dist/vviinn-widgets/p-762dc067.entry.js +0 -1
  95. package/dist/vviinn-widgets/p-7e2f542c.js +0 -1
  96. package/dist/vviinn-widgets/p-8d56e795.entry.js +0 -1
  97. package/dist/vviinn-widgets/p-8f955b15.entry.js +0 -1
  98. package/dist/vviinn-widgets/p-9654fe35.entry.js +0 -1
  99. package/dist/vviinn-widgets/p-9e5adc42.js +0 -1
  100. package/dist/vviinn-widgets/p-b3731705.entry.js +0 -1
  101. package/dist/vviinn-widgets/p-d991330b.entry.js +0 -1
  102. package/dist/vviinn-widgets/p-da9c933b.entry.js +0 -1
  103. package/dist/vviinn-widgets/p-f41e25f0.entry.js +0 -1
  104. package/www/build/p-11f61564.js +0 -1
  105. package/www/build/p-39fdc5c9.entry.js +0 -1
  106. package/www/build/p-762dc067.entry.js +0 -1
  107. package/www/build/p-7e2f542c.js +0 -1
  108. package/www/build/p-8d56e795.entry.js +0 -1
  109. package/www/build/p-8f955b15.entry.js +0 -1
  110. package/www/build/p-9654fe35.entry.js +0 -1
  111. package/www/build/p-9e5adc42.js +0 -1
  112. package/www/build/p-b3731705.entry.js +0 -1
  113. package/www/build/p-cfd998c1.js +0 -1
  114. package/www/build/p-d991330b.entry.js +0 -1
  115. package/www/build/p-da9c933b.entry.js +0 -1
  116. package/www/build/p-f41e25f0.entry.js +0 -1
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-0f5516a6.js');
6
-
7
- const vviinnErrorCss = ":host{background:#F4F4F4;border-radius:8px;display:grid;grid-gap:20px;padding:24px;text-align:center}::slotted(svg){display:grid;align-self:center}::slotted(h4){margin:unset;font-weight:600;font-size:18px;line-height:24px}::slotted(span){font-size:14px;line-height:20px}::slotted(button){-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--color-primary, var(--color-primary-system));font-weight:600;font-size:16px;line-height:20px;cursor:pointer}";
8
-
9
- let VviinnError = class {
10
- constructor(hostRef) {
11
- index.registerInstance(this, hostRef);
12
- }
13
- render() {
14
- return (index.h(index.Host, null, index.h("slot", { name: "icon" }), index.h("slot", { name: "title" }), index.h("slot", { name: "text" }), index.h("slot", { name: "action" })));
15
- }
16
- };
17
- VviinnError.style = vviinnErrorCss;
18
-
19
- exports.vviinn_error = VviinnError;
@@ -1,26 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-0f5516a6.js');
6
- const imageSearch_store = require('./imageSearch.store-865c23f4.js');
7
- require('./Handler-176539c8.js');
8
-
9
- const vviinnPreloaderCss = ":host{--preloader-size:24px;--preloader-width:calc(var(--preloader-size) / 6);transform-origin:center;-webkit-animation:rotate 3s linear infinite;animation:rotate 3s linear infinite;border:var(--preloader-width) solid white;border-radius:50%;border-top-color:transparent;display:none;outline:0;width:var(--preloader-size);height:var(--preloader-size);box-sizing:border-box}:host(.active){display:flex}@-webkit-keyframes rotate{from{transform:rotate(-360deg)}to{transform:rotate(360deg)}}@keyframes rotate{from{transform:rotate(-360deg)}to{transform:rotate(360deg)}}";
10
-
11
- let VviinnPreloader = class {
12
- constructor(hostRef) {
13
- index.registerInstance(this, hostRef);
14
- }
15
- isActive() {
16
- return (imageSearch_store.imageSearchState.loading || imageSearch_store.imageSearchState.objectDetectionInProgress);
17
- }
18
- render() {
19
- return (index.h(index.Host, { class: {
20
- active: this.isActive(),
21
- } }));
22
- }
23
- };
24
- VviinnPreloader.style = vviinnPreloaderCss;
25
-
26
- exports.vviinn_preloader = VviinnPreloader;
@@ -1,167 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-0f5516a6.js');
6
- const imageSearch_store = require('./imageSearch.store-865c23f4.js');
7
- const customizedSlots = require('./customized-slots-0c0d0665.js');
8
- const index$1 = require('./index-0eb3036a.js');
9
- require('./Handler-176539c8.js');
10
-
11
- 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}";
12
-
13
- let VviinnVpsWidget = class {
14
- constructor(hostRef) {
15
- index.registerInstance(this, hostRef);
16
- /** @internal */
17
- this.apiPath = "https://api.vviinn.com";
18
- /** When true modal window with widget will be shown */
19
- this.active = false;
20
- /** Currency sign will shown after price */
21
- this.currencySign = "€";
22
- /** Locale for currency formatting */
23
- this.locale = "de-DE";
24
- this.slidePosition = 0;
25
- this.width = 0;
26
- this.wrongImageFormat = false;
27
- this.imageSource = null;
28
- }
29
- activeWatcher(value) {
30
- if (value) {
31
- this.overflow = document.body.style.overflow;
32
- document.body.style.overflow = "hidden";
33
- this.trackOpenEvent();
34
- }
35
- else {
36
- document.body.style.overflow = this.overflow;
37
- }
38
- }
39
- trackRecommendationView({ detail }) {
40
- const recommendationViewEvent = index$1.createProductViewVpsEvent(Object.assign({ session_id: this.uiSessionId }, detail));
41
- this.trackingApi.trackEvent(recommendationViewEvent);
42
- }
43
- trackRecommendationClick({ detail }) {
44
- const recommendationClickEvent = index$1.createProductClickVpsEvent(Object.assign({ sessionId: this.uiSessionId }, detail));
45
- this.trackingApi.trackEvent(recommendationClickEvent).finally(() => {
46
- const product = imageSearch_store.imageSearchState.results.find((r) => r.productId === detail.product);
47
- if (!product || !product.deeplink)
48
- return;
49
- window.location.href = product.deeplink;
50
- });
51
- }
52
- trachSearchAreaChanges() {
53
- const searchEvent = index$1.createSearchEvent({
54
- session_id: this.uiSessionId,
55
- source: this.imageSource,
56
- search_area: "manual-selection",
57
- });
58
- this.trackingApi.trackEvent(searchEvent);
59
- }
60
- trackDetectedObject() {
61
- const searchEvent = index$1.createSearchEvent({
62
- session_id: this.uiSessionId,
63
- source: this.imageSource,
64
- search_area: "attention-point",
65
- });
66
- this.trackingApi.trackEvent(searchEvent);
67
- }
68
- trackFilter({ detail }) {
69
- const searchEvent = index$1.createFilterEvent({
70
- session_id: this.uiSessionId,
71
- source: this.imageSource,
72
- kind: "category",
73
- action: detail,
74
- });
75
- this.trackingApi.trackEvent(searchEvent);
76
- }
77
- componentWillLoad() {
78
- customizedSlots.slotChangeListener(this, this.el);
79
- }
80
- connectedCallback() {
81
- imageSearch_store.state.apiPath = this.apiPath;
82
- imageSearch_store.state.currencySign = this.currencySign;
83
- imageSearch_store.state.locale = this.locale;
84
- imageSearch_store.imageSearchState.token = this.token;
85
- this.uiSessionId = index$1.v4();
86
- }
87
- trackOpenEvent() {
88
- this.trackingApi = index$1.createTrackingApi(this.apiPath, this.token);
89
- const widgetOpenEvent = index$1.createWidgetVpsEvent({
90
- action: "open",
91
- session_id: this.uiSessionId,
92
- });
93
- this.trackingApi.trackEvent(widgetOpenEvent);
94
- }
95
- handleImageSelection(source) {
96
- this.imageSource = source;
97
- this.slidePosition = 1;
98
- const root = this.el.shadowRoot.querySelector("vviinn-overlayed-modal");
99
- const overlay = root.shadowRoot.querySelector("vviinn-overlay");
100
- const modal = overlay.querySelector("vviinn-modal");
101
- const modalBody = modal.shadowRoot.querySelector(".body");
102
- modalBody.scrollTop = 0;
103
- this.trackInitialSearch();
104
- }
105
- trackInitialSearch() {
106
- const searchEvent = index$1.createSearchEvent({
107
- session_id: this.uiSessionId,
108
- source: this.imageSource,
109
- search_area: "full",
110
- });
111
- this.trackingApi.trackEvent(searchEvent);
112
- }
113
- resetState() {
114
- this.resetScroll("onboarding-block");
115
- this.slidePosition = 0;
116
- imageSearch_store.imageSearchState.image = imageSearch_store.Option.none;
117
- imageSearch_store.imageSearchState.imageUrl = imageSearch_store.Option.none;
118
- imageSearch_store.imageSearchState.imageBounds = imageSearch_store.Option.none;
119
- imageSearch_store.imageSearchState.searchArea = imageSearch_store.Option.none;
120
- imageSearch_store.imageSearchState.results = [];
121
- imageSearch_store.imageSearchState.filters = [];
122
- imageSearch_store.imageSearchState.detectedObjects = [];
123
- imageSearch_store.imageSearchState.activeIonLink = undefined;
124
- imageSearch_store.imageSearchState.rectangleSearchForm = undefined;
125
- this.resetScroll("results-block");
126
- }
127
- haveErrors() {
128
- return this.wrongImageFormat || imageSearch_store.imageSearchState.serverError;
129
- }
130
- resetScroll(elementId, behavior = "auto") {
131
- const element = this.el.shadowRoot.getElementById(elementId);
132
- element.scroll({ top: 0, left: 0, behavior });
133
- }
134
- handleModalClose() {
135
- this.active = false;
136
- this.resetState();
137
- const elementsToReset = ["onboarding-block", "results-block"];
138
- elementsToReset.forEach((name) => this.resetScroll(name));
139
- const widgetOpenEvent = index$1.createWidgetVpsEvent({
140
- action: "close",
141
- session_id: this.uiSessionId,
142
- });
143
- this.trackingApi.trackEvent(widgetOpenEvent);
144
- }
145
- render() {
146
- return (index.h(index.Host, null, index.h("vviinn-overlayed-modal", { class: { "first-screen": this.slidePosition === 0 }, active: this.active, onSecondaryActionClicked: () => this.resetState(), onModalClosed: () => this.handleModalClose(), exportparts: "secondary-action, title, close-button, example-images" }, index.h("vviinn-slider", { showBullets: false, position: this.slidePosition }, index.h("vviinn-slide", { class: { "start-page": true } }, index.h("div", { class: {
147
- error: this.haveErrors(),
148
- "start-page_block": true,
149
- } }, index.h("vviinn-wrong-format", { class: { hidden: !this.wrongImageFormat }, onActionClick: () => (this.wrongImageFormat = false) }), index.h("vviinn-server-error", { class: { hidden: !imageSearch_store.imageSearchState.serverError }, onActionClick: () => (imageSearch_store.imageSearchState.serverError = false) }), index.h("vviinn-teaser", { class: { hidden: this.haveErrors() } }), index.h("vviinn-image-selector", { class: { hidden: this.haveErrors() }, onImageSelected: () => this.handleImageSelection("upload"), onImageSelectedError: () => (this.wrongImageFormat = true), part: "select-image_button" }, index.h("span", { slot: "upload-button-text", class: "upload-button-content" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "29", height: "28", fill: "none" }, index.h("defs", null), index.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" }), index.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" })), index.h("slot", { name: "vviinn-image-upload-button-text" }, index.h("span", null, "Kamera oder Bild ausw\u00E4hlen")))), index.h("vviinn-privacy-badge", { class: { hidden: this.haveErrors() } })), index.h("div", { id: "onboarding-block", class: "start-page_block" }, index.h("div", { class: "onboarding-wrapper" }, index.h("vviinn-onboarding", null), index.h("vviinn-example-images", { part: "example-images", onImageSelected: () => this.handleImageSelection("example"), onImageSelectedError: () => this.resetScroll("onboarding-block", "smooth") })))), index.h("vviinn-slide", { class: { "results-page": true, active: this.slidePosition == 1 } }, index.h("div", { class: "image-wrapper" }, index.h("vviinn-image-view", null), index.h("div", { class: "filters-wrapper" }, index.h("div", { class: "filters" }, imageSearch_store.imageSearchState.filters.map((filter) => (index.h("search-filters", { filter: filter })))))), index.h("div", { id: "results-block", class: "products-wrapper" }, index.h("div", { class: {
150
- "nothing-found": true,
151
- hidden: imageSearch_store.imageSearchState.results.length > 0,
152
- } }, index.h("vviinn-empty-results", null), index.h("vviinn-onboarding", null)), index.h("div", { class: {
153
- hidden: imageSearch_store.imageSearchState.results.length <= 0,
154
- products: true,
155
- } }, imageSearch_store.imageSearchState.results.map((p, i) => {
156
- var _a;
157
- return (index.h("vviinn-product-card", { hidden: true, productTitle: p.title, productId: p.productId, brand: p.brand, deeplink: p.deeplink, price: p.price.actual, salePrice: p.price.sale, imageWidth: 160, image: (_a = p.image.thumbnail) !== null && _a !== void 0 ? _a : p.image.original, part: "product-card", index: i }));
158
- }))))))));
159
- }
160
- get el() { return index.getElement(this); }
161
- static get watchers() { return {
162
- "active": ["activeWatcher"]
163
- }; }
164
- };
165
- VviinnVpsWidget.style = vviinnVpsWidgetCss;
166
-
167
- exports.vviinn_vps_widget = VviinnVpsWidget;
@@ -1,309 +0,0 @@
1
- // -------------------------------------------------------------------------------------
2
- /**
3
- * @since 2.0.0
4
- */
5
- function identity(a) {
6
- return a;
7
- }
8
- function flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {
9
- switch (arguments.length) {
10
- case 1:
11
- return ab;
12
- case 2:
13
- return function () {
14
- return bc(ab.apply(this, arguments));
15
- };
16
- case 3:
17
- return function () {
18
- return cd(bc(ab.apply(this, arguments)));
19
- };
20
- case 4:
21
- return function () {
22
- return de(cd(bc(ab.apply(this, arguments))));
23
- };
24
- case 5:
25
- return function () {
26
- return ef(de(cd(bc(ab.apply(this, arguments)))));
27
- };
28
- case 6:
29
- return function () {
30
- return fg(ef(de(cd(bc(ab.apply(this, arguments))))));
31
- };
32
- case 7:
33
- return function () {
34
- return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));
35
- };
36
- case 8:
37
- return function () {
38
- return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));
39
- };
40
- case 9:
41
- return function () {
42
- return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));
43
- };
44
- }
45
- return;
46
- }
47
- /**
48
- * @since 2.0.0
49
- */
50
- function tuple() {
51
- var t = [];
52
- for (var _i = 0; _i < arguments.length; _i++) {
53
- t[_i] = arguments[_i];
54
- }
55
- return t;
56
- }
57
- function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {
58
- switch (arguments.length) {
59
- case 1:
60
- return a;
61
- case 2:
62
- return ab(a);
63
- case 3:
64
- return bc(ab(a));
65
- case 4:
66
- return cd(bc(ab(a)));
67
- case 5:
68
- return de(cd(bc(ab(a))));
69
- case 6:
70
- return ef(de(cd(bc(ab(a)))));
71
- case 7:
72
- return fg(ef(de(cd(bc(ab(a))))));
73
- case 8:
74
- return gh(fg(ef(de(cd(bc(ab(a)))))));
75
- case 9:
76
- return hi(gh(fg(ef(de(cd(bc(ab(a))))))));
77
- default: {
78
- var ret = arguments[0];
79
- for (var i = 1; i < arguments.length; i++) {
80
- ret = arguments[i](ret);
81
- }
82
- return ret;
83
- }
84
- }
85
- }
86
-
87
- // -------------------------------------------------------------------------------------
88
- // Option
89
- // -------------------------------------------------------------------------------------
90
- /** @internal */
91
- var isNone = function (fa) { return fa._tag === 'None'; };
92
- /** @internal */
93
- var isSome = function (fa) { return fa._tag === 'Some'; };
94
- /** @internal */
95
- var none = { _tag: 'None' };
96
- /** @internal */
97
- var some = function (a) { return ({ _tag: 'Some', value: a }); };
98
- // -------------------------------------------------------------------------------------
99
- // Either
100
- // -------------------------------------------------------------------------------------
101
- /** @internal */
102
- var isLeft = function (ma) { return ma._tag === 'Left'; };
103
- /** @internal */
104
- var left = function (e) { return ({ _tag: 'Left', left: e }); };
105
- /** @internal */
106
- var right = function (a) { return ({ _tag: 'Right', right: a }); };
107
- // -------------------------------------------------------------------------------------
108
- // Record
109
- // -------------------------------------------------------------------------------------
110
- /** @internal */
111
- var has = Object.prototype.hasOwnProperty;
112
-
113
- /**
114
- * If a type `A` can form a `Semigroup` it has an **associative** binary operation.
115
- *
116
- * ```ts
117
- * interface Semigroup<A> {
118
- * readonly concat: (x: A, y: A) => A
119
- * }
120
- * ```
121
- *
122
- * Associativity means the following equality must hold for any choice of `x`, `y`, and `z`.
123
- *
124
- * ```ts
125
- * concat(x, concat(y, z)) = concat(concat(x, y), z)
126
- * ```
127
- *
128
- * A common example of a semigroup is the type `string` with the operation `+`.
129
- *
130
- * ```ts
131
- * import { Semigroup } from 'fp-ts/Semigroup'
132
- *
133
- * const semigroupString: Semigroup<string> = {
134
- * concat: (x, y) => x + y
135
- * }
136
- *
137
- * const x = 'x'
138
- * const y = 'y'
139
- * const z = 'z'
140
- *
141
- * semigroupString.concat(x, y) // 'xy'
142
- *
143
- * semigroupString.concat(x, semigroupString.concat(y, z)) // 'xyz'
144
- *
145
- * semigroupString.concat(semigroupString.concat(x, y), z) // 'xyz'
146
- * ```
147
- *
148
- * *Adapted from https://typelevel.org/cats*
149
- *
150
- * @since 2.0.0
151
- */
152
- /**
153
- * Given a struct of semigroups returns a semigroup for the struct.
154
- *
155
- * @example
156
- * import { struct } from 'fp-ts/Semigroup'
157
- * import * as N from 'fp-ts/number'
158
- *
159
- * interface Point {
160
- * readonly x: number
161
- * readonly y: number
162
- * }
163
- *
164
- * const S = struct<Point>({
165
- * x: N.SemigroupSum,
166
- * y: N.SemigroupSum
167
- * })
168
- *
169
- * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 })
170
- *
171
- * @category combinators
172
- * @since 2.10.0
173
- */
174
- var struct = function (semigroups) { return ({
175
- concat: function (first, second) {
176
- var r = {};
177
- for (var k in semigroups) {
178
- if (has.call(semigroups, k)) {
179
- r[k] = semigroups[k].concat(first[k], second[k]);
180
- }
181
- }
182
- return r;
183
- }
184
- }); };
185
- // -------------------------------------------------------------------------------------
186
- // instances
187
- // -------------------------------------------------------------------------------------
188
- /**
189
- * Always return the first argument.
190
- *
191
- * @example
192
- * import * as S from 'fp-ts/Semigroup'
193
- *
194
- * assert.deepStrictEqual(S.first<number>().concat(1, 2), 1)
195
- *
196
- * @category instances
197
- * @since 2.10.0
198
- */
199
- var first = function () { return ({ concat: identity }); };
200
- /**
201
- * Always return the last argument.
202
- *
203
- * @example
204
- * import * as S from 'fp-ts/Semigroup'
205
- *
206
- * assert.deepStrictEqual(S.last<number>().concat(1, 2), 2)
207
- *
208
- * @category instances
209
- * @since 2.10.0
210
- */
211
- var last = function () { return ({ concat: function (_, y) { return y; } }); };
212
- /**
213
- * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead.
214
- *
215
- * @category instances
216
- * @since 2.0.0
217
- * @deprecated
218
- */
219
- var semigroupSum = {
220
- concat: function (x, y) { return x + y; }
221
- };
222
-
223
- const semigroupDiff = {
224
- concat: (x, y) => x - y,
225
- };
226
-
227
- const fromRectangle$1 = ({ x, y }) => {
228
- return {
229
- x,
230
- y,
231
- };
232
- };
233
- const fromMouseEvent = ({ clientX, clientY }) => {
234
- return {
235
- x: clientX,
236
- y: clientY,
237
- };
238
- };
239
- const pointDiffSemigroup = struct({
240
- x: semigroupDiff,
241
- y: semigroupDiff,
242
- });
243
- const pointSumSemigroup = struct({
244
- x: semigroupSum,
245
- y: semigroupSum,
246
- });
247
-
248
- var HandlerDirection;
249
- (function (HandlerDirection) {
250
- HandlerDirection[HandlerDirection["East"] = 0] = "East";
251
- HandlerDirection[HandlerDirection["North"] = 1] = "North";
252
- HandlerDirection[HandlerDirection["NorthEast"] = 2] = "NorthEast";
253
- HandlerDirection[HandlerDirection["NorthWest"] = 3] = "NorthWest";
254
- HandlerDirection[HandlerDirection["South"] = 4] = "South";
255
- HandlerDirection[HandlerDirection["SouthEast"] = 5] = "SouthEast";
256
- HandlerDirection[HandlerDirection["SouthWest"] = 6] = "SouthWest";
257
- HandlerDirection[HandlerDirection["West"] = 7] = "West";
258
- })(HandlerDirection || (HandlerDirection = {}));
259
- const getCursorValue = (direction) => {
260
- switch (direction) {
261
- case HandlerDirection.East:
262
- return "e-resize";
263
- case HandlerDirection.North:
264
- return "n-resize";
265
- case HandlerDirection.NorthEast:
266
- return "ne-resize";
267
- case HandlerDirection.NorthWest:
268
- return "nw-resize";
269
- case HandlerDirection.South:
270
- return "s-resize";
271
- case HandlerDirection.SouthEast:
272
- return "se-resize";
273
- case HandlerDirection.SouthWest:
274
- return "sw-resize";
275
- case HandlerDirection.West:
276
- return "w-resize";
277
- default:
278
- return "pointer";
279
- }
280
- };
281
- const fromRectangle = (r) => [
282
- {
283
- position: fromRectangle$1(r),
284
- direction: HandlerDirection.NorthWest,
285
- },
286
- {
287
- position: pointSumSemigroup.concat(fromRectangle$1(r), {
288
- x: r.width,
289
- y: 0,
290
- }),
291
- direction: HandlerDirection.NorthEast,
292
- },
293
- {
294
- position: pointSumSemigroup.concat(fromRectangle$1(r), {
295
- x: 0,
296
- y: r.height,
297
- }),
298
- direction: HandlerDirection.SouthWest,
299
- },
300
- {
301
- position: pointSumSemigroup.concat(fromRectangle$1(r), {
302
- x: r.width,
303
- y: r.height,
304
- }),
305
- direction: HandlerDirection.SouthEast,
306
- },
307
- ];
308
-
309
- export { HandlerDirection as H, isLeft as a, identity as b, flow as c, struct as d, last as e, first as f, pointSumSemigroup as g, has as h, isNone as i, fromRectangle$1 as j, isSome as k, left as l, fromRectangle as m, none as n, pointDiffSemigroup as o, pipe as p, fromMouseEvent as q, right as r, some as s, tuple as t, getCursorValue as u };
@@ -1,23 +0,0 @@
1
- import { r as registerInstance, h, H as Host } from './index-59f44eaa.js';
2
- import { u as getCursorValue } from './Handler-f9b8735c.js';
3
-
4
- const cropperHandlerCss = ":host{--size:20px;background:transparent;border:4px solid white;box-sizing:content-box;display:block;height:var(--size);touch-action:none;position:absolute;width:var(--size);z-index:4;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.disabled){opacity:0.25}:host(.nw-resize){border-bottom:none;border-right:none;top:0;left:0}:host(.ne-resize){border-left:none;border-bottom:none;right:0;top:0}:host(.sw-resize){border-right:none;border-top:none;left:0;bottom:0}:host(.se-resize){border-left:none;border-top:none;bottom:0;right:0}";
5
-
6
- let CropperHandler = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.disabled = false;
10
- }
11
- render() {
12
- return (h(Host, { part: `handle ${getCursorValue(this.handler.direction)}`, class: {
13
- disabled: this.disabled,
14
- [getCursorValue(this.handler.direction)]: true,
15
- }, style: {
16
- "--size": "20px",
17
- cursor: getCursorValue(this.handler.direction),
18
- }, draggable: false }));
19
- }
20
- };
21
- CropperHandler.style = cropperHandlerCss;
22
-
23
- export { CropperHandler as cropper_handler };