@depict-ai/ui 4.7.33 → 4.7.34
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.
- package/ES10/index.cjs +1640 -1621
- package/ES10/index.d.ts +139 -128
- package/ES10/index.js +1867 -1849
- package/latest/index.cjs +1564 -1552
- package/latest/index.d.ts +139 -128
- package/latest/index.js +1805 -1794
- package/package.json +1 -1
- package/server/ES10/index.cjs +566 -547
- package/server/ES10/index.d.ts +139 -128
- package/server/ES10/index.js +752 -734
- package/server/latest/index.cjs +575 -563
- package/server/latest/index.d.ts +139 -128
- package/server/latest/index.js +736 -725
package/server/ES10/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { add_to_version_info as $b8hua$add_to_version_info,
|
|
2
|
-
import { createComponent as $b8hua$createComponent,
|
|
3
|
-
import {
|
|
1
|
+
import { add_to_version_info as $b8hua$add_to_version_info, queueMacroTask as $b8hua$queueMacroTask, catchify as $b8hua$catchify, findMostFrequentItem as $b8hua$findMostFrequentItem, dwarn as $b8hua$dwarn, observer as $b8hua$observer, layout_media_query_header as $b8hua$layout_media_query_header, javascript_media_query as $b8hua$javascript_media_query, slider_fading_factory as $b8hua$slider_fading_factory, Amazing_Slider as $b8hua$Amazing_Slider, slider_snap_css as $b8hua$slider_snap_css, dlog as $b8hua$dlog1, camelCasifyObject as $b8hua$camelCasifyObject, useExpandingContainer as $b8hua$useExpandingContainer, fetch_retry as $b8hua$fetch_retry, base_url as $b8hua$base_url, slider_fractional_factory as $b8hua$slider_fractional_factory, make_random_classname as $b8hua$make_random_classname, n_col_styling_with_dist as $b8hua$n_col_styling_with_dist, layout_get_visible_recs_without_partial_rows as $b8hua$layout_get_visible_recs_without_partial_rows, layout_get_total_rec_amount_for_row as $b8hua$layout_get_total_rec_amount_for_row, report as $b8hua$report, standard_price_format as $b8hua$standard_price_format, instant_exec_on_suspect_history_change as $b8hua$instant_exec_on_suspect_history_change, deparallelize_no_drop as $b8hua$deparallelize_no_drop, ContainedImage as $b8hua$ContainedImage, make_asyncIterable_exiter as $b8hua$make_asyncIterable_exiter, href_change_ipns as $b8hua$href_change_ipns, base64_encode_unicode as $b8hua$base64_encode_unicode, base64_decode_unicode as $b8hua$base64_decode_unicode, use_href_accessor as $b8hua$use_href_accessor, get_session_id as $b8hua$get_session_id, add_version_query_params as $b8hua$add_version_query_params, hex_to_rgb as $b8hua$hex_to_rgb, relative_luminance_from_rgb as $b8hua$relative_luminance_from_rgb, snakeCasifyObject as $b8hua$snakeCasifyObject, make_url_with_query_params as $b8hua$make_url_with_query_params, sort_obj as $b8hua$sort_obj, insert_surfaces as $b8hua$insert_surfaces } from "@depict-ai/utilishared/ES10";
|
|
2
|
+
import { createComponent as $b8hua$createComponent, mergeProps as $b8hua$mergeProps, insert as $b8hua$insert, ssr as $b8hua$ssr, ssrHydrationKey as $b8hua$ssrHydrationKey, ssrStyle as $b8hua$ssrStyle, ssrAttribute as $b8hua$ssrAttribute, escape as $b8hua$escape, spread as $b8hua$spread, isServer as $b8hua$isServer, ssrElement as $b8hua$ssrElement, ssrClassList as $b8hua$ssrClassList, Dynamic as $b8hua$Dynamic } from "solid-js/web";
|
|
3
|
+
import { createSignal as $b8hua$createSignal, getOwner as $b8hua$getOwner, createEffect as $b8hua$createEffect, runWithOwner as $b8hua$runWithOwner, onCleanup as $b8hua$onCleanup, createContext as $b8hua$createContext, useContext as $b8hua$useContext, createMemo as $b8hua$createMemo, splitProps as $b8hua$splitProps, mergeProps as $b8hua$mergeProps1, untrack as $b8hua$untrack, createRenderEffect as $b8hua$createRenderEffect, Show as $b8hua$Show, batch as $b8hua$batch, createComputed as $b8hua$createComputed, mapArray as $b8hua$mapArray, createResource as $b8hua$createResource, Suspense as $b8hua$Suspense, createRoot as $b8hua$createRoot, For as $b8hua$For, Index as $b8hua$Index, createUniqueId as $b8hua$createUniqueId, ErrorBoundary as $b8hua$ErrorBoundary, on as $b8hua$on, createSelector as $b8hua$createSelector, children as $b8hua$children, createReaction as $b8hua$createReaction } from "solid-js";
|
|
4
4
|
import { createStore as $b8hua$createStore, reconcile as $b8hua$reconcile } from "solid-js/store";
|
|
5
|
-
import { dlog as $b8hua$dlog, catchify as $b8hua$
|
|
5
|
+
import { dlog as $b8hua$dlog, catchify as $b8hua$catchify1, ListenableSet as $b8hua$ListenableSet, use_href_accessor as $b8hua$use_href_accessor1, queueMacroTask as $b8hua$queueMacroTask1, report as $b8hua$report1 } from "@depict-ai/utilishared/ES10";
|
|
6
6
|
import $b8hua$babelruntimehelpersdefineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
7
|
import $b8hua$babelruntimehelpersclassPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet";
|
|
8
8
|
import $b8hua$babelruntimehelpersclassPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet";
|
|
@@ -10,44 +10,248 @@ import $b8hua$babelruntimehelpersclassPrivateFieldGet from "@babel/runtime/helpe
|
|
|
10
10
|
/*! Depict.ai search and product listing SDK */
|
|
11
11
|
import { register_es_version } from "../../multi_import_deduplicator.mjs";
|
|
12
12
|
register_es_version("ui", "ES10");
|
|
13
|
-
const $8db9a15135765c11$export$83d89fbfd8236492 = "4.7.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
$b8hua$onCleanup($b8hua$javascript_media_query(media_query, _ref => {
|
|
24
|
-
let {
|
|
25
|
-
matches: matches
|
|
26
|
-
} = _ref;
|
|
27
|
-
return signal[1](matches);
|
|
28
|
-
}).remove);
|
|
29
|
-
return signal[0];
|
|
13
|
+
const $8db9a15135765c11$export$83d89fbfd8236492 = "4.7.34";
|
|
14
|
+
const $5441862cd2f5e111$var$ListingContext = /*@__PURE__*/$b8hua$createContext();
|
|
15
|
+
function $5441862cd2f5e111$export$e68cff63f76bd15b(props) {
|
|
16
|
+
const our_object = {};
|
|
17
|
+
return $b8hua$createComponent($5441862cd2f5e111$var$ListingContext.Provider, {
|
|
18
|
+
value: our_object,
|
|
19
|
+
get children() {
|
|
20
|
+
return props.children;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
30
23
|
}
|
|
31
|
-
function $
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
24
|
+
function $5441862cd2f5e111$export$8d0c4fdbb05a2f2e() {
|
|
25
|
+
return $b8hua$useContext($5441862cd2f5e111$var$ListingContext);
|
|
26
|
+
}
|
|
27
|
+
var $801e8845d3fa3653$var$_tmpl$ = ["<div", ' style="', '"', ">", "</div>"];
|
|
28
|
+
function $801e8845d3fa3653$export$94026ee33dbabc26(props) {
|
|
29
|
+
return $b8hua$ssr($801e8845d3fa3653$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$ssrStyle("padding-bottom:calc(calc(1 / ".concat(props.aspectRatio, ") * 100%)")), $b8hua$ssrAttribute("class", "s-image-container" + (props.class ? " " + $b8hua$escape(props.class, true) : ""), false), $b8hua$escape(props.children));
|
|
30
|
+
}
|
|
31
|
+
const $1e69163caedaab4e$var$ProductCardIndexContext = /*@__PURE__*/$b8hua$createContext();
|
|
32
|
+
function $1e69163caedaab4e$export$11354f017ddc9790(props) {
|
|
33
|
+
return $b8hua$createComponent($1e69163caedaab4e$var$ProductCardIndexContext.Provider, {
|
|
34
|
+
get value() {
|
|
35
|
+
return props.index_;
|
|
36
|
+
},
|
|
37
|
+
get children() {
|
|
38
|
+
return props.children;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function $1e69163caedaab4e$export$e3faf4d95300054f() {
|
|
43
|
+
return $b8hua$useContext($1e69163caedaab4e$var$ProductCardIndexContext);
|
|
44
|
+
}
|
|
45
|
+
let $6db93f70c2db1486$var$browserIsBugged = false;
|
|
46
|
+
function $6db93f70c2db1486$export$2972b890694ced75(callback, _ref) {
|
|
47
|
+
let {
|
|
48
|
+
timeout: timeout
|
|
49
|
+
} = _ref;
|
|
50
|
+
if ($6db93f70c2db1486$var$browserIsBugged) timeout /= 4;
|
|
51
|
+
const cancel = () => {
|
|
52
|
+
cancelIdleCallback(idleHandle);
|
|
53
|
+
clearTimeout(racingTimeout);
|
|
54
|
+
};
|
|
55
|
+
const idleHandle = requestIdleCallback(deadline => {
|
|
56
|
+
cancel();
|
|
57
|
+
return callback(deadline);
|
|
58
|
+
}, {
|
|
59
|
+
timeout: timeout
|
|
60
|
+
});
|
|
61
|
+
const racingTimeout = setTimeout(() => {
|
|
62
|
+
$b8hua$dwarn("Browser did not respect requestIdleCallback timeout");
|
|
63
|
+
$6db93f70c2db1486$var$browserIsBugged = true;
|
|
64
|
+
cancel();
|
|
65
|
+
callback({
|
|
66
|
+
didTimeout: false,
|
|
67
|
+
timeRemaining() {
|
|
68
|
+
return 500;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}, timeout + 1000);
|
|
72
|
+
return cancel;
|
|
73
|
+
}
|
|
74
|
+
const $56047603f9d212b6$var$onIdleFunctionsSymbol = /*@__PURE__*/Symbol("onIdleFunctions");
|
|
75
|
+
const $56047603f9d212b6$export$f8945274f08a3105 = /*@__PURE__*/Symbol("listingContextAspectRatios");
|
|
76
|
+
const $56047603f9d212b6$export$6066eb417ed2e9f7 = /*@__PURE__*/Symbol("listingContextAspectRatios");
|
|
77
|
+
function $56047603f9d212b6$export$6e5611bc7e57e477(props) {
|
|
78
|
+
const img = new Image(); // Need to use new Image or browser might not start loading image before it's in the DOM
|
|
79
|
+
const [ourRatioKeyed, setOurRatioKeyed] = $b8hua$createSignal();
|
|
80
|
+
const sizeToUse = $b8hua$createMemo(() => {
|
|
81
|
+
var _props$sizeHeight;
|
|
82
|
+
// props.size could be a getter that expects a cleanup so get it in this memo instead of where we set img.sizes (also we need to multiply, and it's good with some diffing here so people calling the comp don't have to)
|
|
83
|
+
const incomingSize = props.size();
|
|
84
|
+
const ratio = ourRatioKeyed();
|
|
85
|
+
const containerHeight = (_props$sizeHeight = props.sizeHeight) === null || _props$sizeHeight === void 0 ? void 0 : _props$sizeHeight.call(props);
|
|
86
|
+
if (!incomingSize || !ratio || !containerHeight || getComputedStyle(img).objectFit !== "cover") return incomingSize;
|
|
87
|
+
const maybeCorrectedSize = ratio * containerHeight;
|
|
88
|
+
return Math.round(Math.max(incomingSize, maybeCorrectedSize));
|
|
89
|
+
});
|
|
90
|
+
const src_options = $b8hua$createMemo(() => {
|
|
91
|
+
const {
|
|
92
|
+
src: src,
|
|
93
|
+
customUrls: customUrls
|
|
94
|
+
} = props;
|
|
95
|
+
const fallback_src = (customUrls || $56047603f9d212b6$export$1d6267828870adda)(src, 400);
|
|
96
|
+
const srcset = $56047603f9d212b6$var$make_srcset(props.src, props.resolutions || [64, 128, 256, 300, 400, 512, 640, 768, 1024, 1280, 1536, 2048, 2560, 3072, 3584, 4096], customUrls);
|
|
97
|
+
// The order here *might* matter - I've seen mobile safari always start with loading the 400px version when it was reversed
|
|
98
|
+
return {
|
|
99
|
+
srcset: srcset,
|
|
100
|
+
src: fallback_src
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
// Work around https://github.com/solidjs/solid/issues/1828
|
|
104
|
+
const [, otherAttributes] = $b8hua$splitProps(props, ["resolutions", "size", "src", "srcSet", "loading", "keyRatioUpdating", "sizeHeight", "customUrls" // Can't have properties ending on underscore because the property name mangling will get confused by this <-
|
|
105
|
+
]);
|
|
106
|
+
|
|
107
|
+
const [hasSetSize, setHasSetSize] = $b8hua$createSignal(false);
|
|
108
|
+
const [hasDecoded, setHasDecoded] = $b8hua$createSignal(false);
|
|
109
|
+
const productCardIndexAccessor = $1e69163caedaab4e$export$e3faf4d95300054f();
|
|
110
|
+
const listingContext = $5441862cd2f5e111$export$8d0c4fdbb05a2f2e();
|
|
111
|
+
const isPrioritisedImage = $b8hua$createMemo(() => (productCardIndexAccessor === null || productCardIndexAccessor === void 0 ? void 0 : productCardIndexAccessor()) < 8);
|
|
112
|
+
const shouldActuallyEnableLazyLoading = $b8hua$createMemo(() => {
|
|
113
|
+
const {
|
|
114
|
+
loading: loading
|
|
115
|
+
} = props;
|
|
116
|
+
if (loading === "force-lazy") return true;
|
|
117
|
+
return loading === "lazy" && !isPrioritisedImage();
|
|
118
|
+
});
|
|
119
|
+
const modifiedOtherAttributes = $b8hua$mergeProps1(otherAttributes, {
|
|
120
|
+
get loading() {
|
|
121
|
+
return shouldActuallyEnableLazyLoading() ? "lazy" : undefined;
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
// Batch idle callbacks so that MutationObserver can batch the resulting mutations better, so we don't lose tons of CPU time to MutationObservers doing lots of things for each image
|
|
125
|
+
// Happened on singular, they have some weird observer (+we also have one but ours is at least 3x more efficient)
|
|
126
|
+
const executeWhenIdleBatched = (fn, isSizesUpdate) => {
|
|
127
|
+
if (typeof requestIdleCallback !== "function") return setTimeout(fn); // Old browsers don't get optimisation
|
|
128
|
+
if ((!isSizesUpdate || !sizeSetFastPath) && $b8hua$untrack(isPrioritisedImage)) return fn(); // If we're one of the first 8 images, execute the callbacks immediately (improves lighthouse metrics)
|
|
129
|
+
// unless we're just a `sizes` update after the initial sizes setting (this optimisation makes the looks animation a lot smoother on low-cpu devices)
|
|
130
|
+
const existingStack = listingContext === null || listingContext === void 0 ? void 0 : listingContext[$56047603f9d212b6$var$onIdleFunctionsSymbol];
|
|
131
|
+
if (existingStack) return existingStack.add(fn);
|
|
132
|
+
const newStack = new Set([fn]);
|
|
133
|
+
if (listingContext) listingContext[$56047603f9d212b6$var$onIdleFunctionsSymbol] = newStack;
|
|
134
|
+
const processStackWhenIdle = () => $6db93f70c2db1486$export$2972b890694ced75($b8hua$catchify(deadline => {
|
|
135
|
+
const start = performance.now();
|
|
136
|
+
const thirdDeadlineTime = deadline.timeRemaining() / 3; // observers coming after this take up 2-3x the time so don't use all of it
|
|
137
|
+
for (const fn of newStack) {
|
|
138
|
+
newStack.delete(fn);
|
|
139
|
+
fn();
|
|
140
|
+
const timeTaken = performance.now() - start;
|
|
141
|
+
if ((!deadline.timeRemaining() || timeTaken > thirdDeadlineTime) && newStack.size) {
|
|
142
|
+
// There's still work to be done but no time, so schedule another idle callback
|
|
143
|
+
processStackWhenIdle();
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Stack is empty
|
|
148
|
+
if (listingContext) delete listingContext[$56047603f9d212b6$var$onIdleFunctionsSymbol];
|
|
149
|
+
}), {
|
|
150
|
+
timeout: 15000
|
|
151
|
+
} // long timeout, better to not have images than to freeze the browser. But also we don't want to confuse user why no iamges are loading
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
processStackWhenIdle();
|
|
155
|
+
};
|
|
156
|
+
let sizeSetFastPath = false;
|
|
157
|
+
let hasDecodedFastPath = false;
|
|
158
|
+
let timeoutSet = false;
|
|
159
|
+
let gotCleanedUp = false;
|
|
160
|
+
let srcJustChanged = true;
|
|
161
|
+
img.classList.add("s-responsive-image");
|
|
162
|
+
if (listingContext) {
|
|
163
|
+
let prevValue;
|
|
164
|
+
const aspectRatios = listingContext[$56047603f9d212b6$export$f8945274f08a3105] || (listingContext[$56047603f9d212b6$export$f8945274f08a3105] = new Set());
|
|
165
|
+
const [, setMostPrevalentAspectRatio] = listingContext[$56047603f9d212b6$export$6066eb417ed2e9f7] || (listingContext[$56047603f9d212b6$export$6066eb417ed2e9f7] = $b8hua$createSignal());
|
|
166
|
+
img.addEventListener("load", $b8hua$catchify(() => {
|
|
167
|
+
const aspectRatio_ = img.naturalWidth / img.naturalHeight;
|
|
168
|
+
if (srcJustChanged)
|
|
169
|
+
// Always key object-fit-cover compensation to avoid loading-different-images-infinite-loop
|
|
170
|
+
setOurRatioKeyed(aspectRatio_);else if (props.keyRatioUpdating) return;
|
|
171
|
+
srcJustChanged = false;
|
|
172
|
+
// Save our aspect ratio whenever it changes, so that we can base the containers on the most dominant aspect ratio, used in SearchModalV2 and LookItem
|
|
173
|
+
if (prevValue) aspectRatios.delete(prevValue);
|
|
174
|
+
const newValue = !isNaN(aspectRatio_) ? {
|
|
175
|
+
aspectRatio_: aspectRatio_
|
|
176
|
+
} : undefined;
|
|
177
|
+
if (newValue) aspectRatios.add(newValue);
|
|
178
|
+
prevValue = newValue;
|
|
179
|
+
// Do all calculations resulting of an update directly, for performance
|
|
180
|
+
const asArray = [...aspectRatios].map(_ref => {
|
|
181
|
+
let {
|
|
182
|
+
aspectRatio_: aspectRatio_
|
|
183
|
+
} = _ref;
|
|
184
|
+
return aspectRatio_;
|
|
43
185
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
186
|
+
const mostPrevalentAspectRatio = $b8hua$findMostFrequentItem(asArray);
|
|
187
|
+
setMostPrevalentAspectRatio(mostPrevalentAspectRatio);
|
|
188
|
+
}));
|
|
189
|
+
$b8hua$onCleanup(() => prevValue && aspectRatios.delete(prevValue));
|
|
190
|
+
}
|
|
191
|
+
$b8hua$onCleanup(() => gotCleanedUp = true);
|
|
192
|
+
$b8hua$spread(img, $b8hua$mergeProps1(modifiedOtherAttributes), false, true);
|
|
193
|
+
$b8hua$createRenderEffect(() => {
|
|
194
|
+
props.src;
|
|
195
|
+
srcJustChanged = true;
|
|
196
|
+
});
|
|
197
|
+
$b8hua$createEffect(() => {
|
|
198
|
+
if (!sizeToUse()) return; // wait until we have a size, run every time the size changes
|
|
199
|
+
if (timeoutSet) return;
|
|
200
|
+
const handler = $b8hua$catchify(() => {
|
|
201
|
+
if (gotCleanedUp) return;
|
|
202
|
+
img.sizes = "".concat(sizeToUse(), "px"); // use latest available value of size in case it has changed
|
|
203
|
+
if (!sizeSetFastPath) {
|
|
204
|
+
setHasSetSize(true);
|
|
205
|
+
sizeSetFastPath = true;
|
|
206
|
+
}
|
|
207
|
+
timeoutSet = false;
|
|
208
|
+
});
|
|
209
|
+
// Throttle the updating of sizes to avoid unnecessary image re-fetches during resize
|
|
210
|
+
// And also because we first set src after sizes has been set, wait with loading and decoding images until browser is idle
|
|
211
|
+
// This greatly improves performance when loading (more) products
|
|
212
|
+
// See https://depictaiworkspace.slack.com/archives/C05NJ0K3WRL/p1698220617663139
|
|
213
|
+
timeoutSet = true; // Important to set timeoutSet before the call to executeWhenIdleBatched since if this is an important image executeWhenIdleBatched will execute fn immediately
|
|
214
|
+
executeWhenIdleBatched(handler, true);
|
|
215
|
+
});
|
|
216
|
+
const dontLoadImageYet = $b8hua$createMemo(() => !sizeToUse() || !hasSetSize()); // Moving this condition into a memo saves us from re-setting src and srcset (expensive) if just props.size changes
|
|
217
|
+
$b8hua$createEffect(() => {
|
|
218
|
+
if (dontLoadImageYet()) return; // If size isn't known or set, don't assign src yet since it would cause the most low res image to load
|
|
219
|
+
Object.assign(img, src_options());
|
|
220
|
+
// Add to DOM once decoded to not require/block any paints before image has completed loading and avoid showing broken image symbol
|
|
221
|
+
// We can do this because there has to be a container around us giving us a size
|
|
222
|
+
// No need to listen if we're already in the DOM
|
|
223
|
+
if (hasDecodedFastPath) return;
|
|
224
|
+
if (shouldActuallyEnableLazyLoading()) {
|
|
225
|
+
// For lazy loading there's no decoding to wait for as it only occurs when the image is visible
|
|
226
|
+
// Make sure src is set before we put the image into the DOM though so no broken image symbol is shown
|
|
227
|
+
setHasDecoded(true);
|
|
228
|
+
hasDecodedFastPath = true;
|
|
229
|
+
return;
|
|
48
230
|
}
|
|
231
|
+
img.decode().catch(e => $b8hua$dwarn("Failed to decode image", e, img)) // Display the image also if loading failed so webdev can debug and doesn't get "no image"
|
|
232
|
+
.then(async () => {
|
|
233
|
+
// Also wait with inserting image (i.e. paint) until browser is idle
|
|
234
|
+
await new Promise(r => executeWhenIdleBatched(r, false));
|
|
235
|
+
if (gotCleanedUp) return;
|
|
236
|
+
setHasDecoded(true);
|
|
237
|
+
hasDecodedFastPath = true;
|
|
238
|
+
});
|
|
49
239
|
});
|
|
50
|
-
return
|
|
240
|
+
return $b8hua$createComponent((0, $b8hua$Show), {
|
|
241
|
+
get when() {
|
|
242
|
+
return hasDecoded();
|
|
243
|
+
},
|
|
244
|
+
children: img
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
function $56047603f9d212b6$var$make_srcset(url, resolutions, customGenerateImageUrl_) {
|
|
248
|
+
return resolutions.map(width => "".concat((customGenerateImageUrl_ || $56047603f9d212b6$export$1d6267828870adda)(url, width), " ").concat(width, "w")).join(", ");
|
|
249
|
+
}
|
|
250
|
+
function $56047603f9d212b6$export$1d6267828870adda(url, width) {
|
|
251
|
+
// Even just creating one `URL` object per image src and then setting the search parameter is quite slow (0.25ms to set the width param)
|
|
252
|
+
// We're making the assumptions that the url has already at least one query parameter and that the image resizing service will choose the last one out of a duplicate width parameter (shopify's does)
|
|
253
|
+
// That way we can just to string concatenation which is insanely fast
|
|
254
|
+
return url + "&width=" + encodeURIComponent(width);
|
|
51
255
|
}
|
|
52
256
|
var $bc2337c9a05ecd18$var$_tmpl$ = ["<span", ' class="', '" style="', '"></span>'];
|
|
53
257
|
function $bc2337c9a05ecd18$export$acb3eaade4b23afd(props) {
|
|
@@ -85,16 +289,203 @@ function $3ab4aa97880fb88d$export$3f37af283f8fb843(props) {
|
|
|
85
289
|
}
|
|
86
290
|
});
|
|
87
291
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
292
|
+
function $ceafb6fb91c6f394$export$89c6019e4baa40b1(props) {
|
|
293
|
+
const style = $b8hua$createMemo(() => {
|
|
294
|
+
const {
|
|
295
|
+
style: style,
|
|
296
|
+
height: height,
|
|
297
|
+
width: width
|
|
298
|
+
} = props;
|
|
299
|
+
return {
|
|
300
|
+
...(style || {}),
|
|
301
|
+
height: height !== null && height !== void 0 ? height : "1em",
|
|
302
|
+
...(width && {
|
|
303
|
+
width: width
|
|
304
|
+
})
|
|
305
|
+
};
|
|
306
|
+
});
|
|
307
|
+
return $b8hua$createComponent((0, $bc2337c9a05ecd18$export$acb3eaade4b23afd), {
|
|
308
|
+
get style() {
|
|
309
|
+
return style();
|
|
310
|
+
},
|
|
311
|
+
get ["class"]() {
|
|
312
|
+
return props.class;
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
var $5eaa00b951637e96$var$_tmpl$ = ["<div", ' class="instant-card"><div class="img-part">', '</div><div class="right-part"><div class="title-brand-tagline"><span class="title">', '</span></div><div class="price-container">', "</div></div></div>"];
|
|
317
|
+
const $5eaa00b951637e96$export$8a2234b5b1a5ebd4 = "--image-aspect-ratio";
|
|
318
|
+
function $5eaa00b951637e96$export$ee1733d9a8495996() {
|
|
319
|
+
return $b8hua$ssr($5eaa00b951637e96$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape($b8hua$createComponent((0, $3ab4aa97880fb88d$export$3f37af283f8fb843), {
|
|
320
|
+
aspectRatio: "var(".concat($5eaa00b951637e96$export$8a2234b5b1a5ebd4, ", 1)")
|
|
321
|
+
})), $b8hua$escape($b8hua$createComponent((0, $ceafb6fb91c6f394$export$89c6019e4baa40b1), {
|
|
322
|
+
width: "20ch",
|
|
323
|
+
height: "1em"
|
|
324
|
+
})), $b8hua$escape($b8hua$createComponent((0, $ceafb6fb91c6f394$export$89c6019e4baa40b1), {
|
|
325
|
+
width: "5ch",
|
|
326
|
+
height: "1em",
|
|
327
|
+
"class": "price"
|
|
328
|
+
})));
|
|
329
|
+
}
|
|
330
|
+
function $4be619ec2cd7bba3$export$54c6d6ff54e72743(whatToWatch) {
|
|
331
|
+
const [width, setWidth] = $b8hua$createSignal(0);
|
|
332
|
+
const [height, setHeight] = $b8hua$createSignal(0);
|
|
333
|
+
const resizeObserver = new ResizeObserver($b8hua$catchify(records => $b8hua$batch(() => {
|
|
334
|
+
for (let j = 0; j < records.length; j++) {
|
|
335
|
+
const {
|
|
336
|
+
width: width,
|
|
337
|
+
height: height
|
|
338
|
+
} = records[j].contentRect;
|
|
339
|
+
// Padding hack makes that we can't use contentRect to get the height since that's apparently without padding
|
|
340
|
+
const definitiveHeight = height || whatToWatch.getBoundingClientRect().height;
|
|
341
|
+
if (definitiveHeight) setHeight(Math.ceil(definitiveHeight));
|
|
342
|
+
if (width) setWidth(Math.ceil(width));
|
|
343
|
+
}
|
|
344
|
+
})));
|
|
345
|
+
// If we start observing elements before they're in the DOM Chrome (Version 117.0.5938.92 (Official Build) (arm64)) sometimes gives us a resize event with a width of 0 and then doesn't dispatch one with the actual width once it's in the DOM. So we wait until the element is in the DOM before we start observing it.
|
|
346
|
+
// It doesn't seem to work even when waiting for it to be in the DOM, also wait an animation frame
|
|
347
|
+
const disconnect = (0, $b8hua$observer).onexists(whatToWatch, _ref => {
|
|
348
|
+
let {
|
|
349
|
+
element: element
|
|
350
|
+
} = _ref;
|
|
351
|
+
return requestAnimationFrame($b8hua$catchify(() => resizeObserver.observe(element)));
|
|
352
|
+
});
|
|
353
|
+
$b8hua$onCleanup(() => {
|
|
354
|
+
resizeObserver.disconnect();
|
|
355
|
+
disconnect();
|
|
356
|
+
});
|
|
357
|
+
return [width, height];
|
|
358
|
+
}
|
|
359
|
+
const $4df489344a0f97c7$var$backupSizeSignal = /*@__PURE__*/$b8hua$createSignal();
|
|
360
|
+
const $4df489344a0f97c7$export$d7b7ab832c20e2f4 = /*@__PURE__*/Symbol("ShopifyContainedImage");
|
|
361
|
+
function $4df489344a0f97c7$export$e4b984597b71e989(props) {
|
|
362
|
+
const context = $5441862cd2f5e111$export$8d0c4fdbb05a2f2e();
|
|
363
|
+
if (context && !context[$4df489344a0f97c7$export$d7b7ab832c20e2f4])
|
|
364
|
+
// create a signal that's the same for all items in this listing
|
|
365
|
+
context[$4df489344a0f97c7$export$d7b7ab832c20e2f4] = $b8hua$createSignal();
|
|
366
|
+
const [currentImageSize, setCurrentImageSize] = (context === null || context === void 0 ? void 0 : context[$4df489344a0f97c7$export$d7b7ab832c20e2f4]) || $4df489344a0f97c7$var$backupSizeSignal; // use global fallback signal (might lead to blurry images) if no context is available
|
|
367
|
+
const [mostPrevalentAspectRatio] = context ? context[(0, $56047603f9d212b6$export$6066eb417ed2e9f7)] || (context[(0, $56047603f9d212b6$export$6066eb417ed2e9f7)] = $b8hua$createSignal()) : [];
|
|
368
|
+
const container = $801e8845d3fa3653$export$94026ee33dbabc26({
|
|
369
|
+
// Write getters manually instead of using JSX, so we can do more complex logic in the aspectRatio getter without increasing bundle size
|
|
370
|
+
get class() {
|
|
371
|
+
return props.class;
|
|
372
|
+
},
|
|
373
|
+
get aspectRatio() {
|
|
374
|
+
if (props.autoAdjustAspectRatio) {
|
|
375
|
+
const targetRatio = mostPrevalentAspectRatio === null || mostPrevalentAspectRatio === void 0 ? void 0 : mostPrevalentAspectRatio();
|
|
376
|
+
if (targetRatio != undefined) return "var(".concat((0, $5eaa00b951637e96$export$8a2234b5b1a5ebd4), ", ").concat(targetRatio, ")");
|
|
377
|
+
}
|
|
378
|
+
return props.aspectRatio;
|
|
379
|
+
}
|
|
380
|
+
});
|
|
381
|
+
const owner = $b8hua$getOwner();
|
|
382
|
+
let createdSizeAccessor = false;
|
|
383
|
+
let wasCleanedUp = false;
|
|
384
|
+
$b8hua$createEffect(() => {
|
|
385
|
+
if (currentImageSize() || wasCleanedUp) return; // We get into the effect when onCleanup is called if we don't have wasCleanedUp
|
|
386
|
+
// ensure we always have a size accessor
|
|
387
|
+
// what this whole thing does is set the sizes attribute to the actual size of one of the existing image containers, therefore the value doesn't have to manually be specified
|
|
388
|
+
createdSizeAccessor = true;
|
|
389
|
+
setCurrentImageSize(() => $b8hua$runWithOwner(owner, () => $4be619ec2cd7bba3$export$54c6d6ff54e72743(container)));
|
|
390
|
+
});
|
|
391
|
+
$b8hua$onCleanup(() => {
|
|
392
|
+
wasCleanedUp = true; // important to set this before the function call below and always, so the dead effects don't create dead size accessors
|
|
393
|
+
if (!createdSizeAccessor) return;
|
|
394
|
+
$b8hua$queueMacroTask(() => setCurrentImageSize()); // unset the size accessor next event loop iteration, so that all onCleanup's have time to run, since the effects run more aggressively and can create a size accessor with a cleaned up owner otherwise
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
$b8hua$insert(container, $b8hua$createComponent((0, $56047603f9d212b6$export$6e5611bc7e57e477), $b8hua$mergeProps({
|
|
398
|
+
size: () => {
|
|
399
|
+
var _currentImageSize, _currentImageSize$;
|
|
400
|
+
return ((_currentImageSize = currentImageSize()) === null || _currentImageSize === void 0 ? void 0 : (_currentImageSize$ = _currentImageSize[0]) === null || _currentImageSize$ === void 0 ? void 0 : _currentImageSize$.call(_currentImageSize)) || 0;
|
|
401
|
+
},
|
|
402
|
+
sizeHeight: () => {
|
|
403
|
+
var _currentImageSize2, _currentImageSize2$;
|
|
404
|
+
return ((_currentImageSize2 = currentImageSize()) === null || _currentImageSize2 === void 0 ? void 0 : (_currentImageSize2$ = _currentImageSize2[1]) === null || _currentImageSize2$ === void 0 ? void 0 : _currentImageSize2$.call(_currentImageSize2)) || 0;
|
|
405
|
+
},
|
|
406
|
+
get src() {
|
|
407
|
+
return props.src;
|
|
408
|
+
}
|
|
409
|
+
}, () => props.imgProps, {
|
|
410
|
+
get style() {
|
|
411
|
+
var _props$imgProps;
|
|
412
|
+
return (_props$imgProps = props.imgProps) === null || _props$imgProps === void 0 ? void 0 : _props$imgProps.style;
|
|
413
|
+
}
|
|
414
|
+
})));
|
|
415
|
+
return container;
|
|
416
|
+
}
|
|
417
|
+
const $98688279b9059f50$var$customUrls = (url, width) => {
|
|
418
|
+
var _url$startsWith;
|
|
419
|
+
if (url !== null && url !== void 0 && (_url$startsWith = url.startsWith) !== null && _url$startsWith !== void 0 && _url$startsWith.call(url, "https://cdn.shopify.com"))
|
|
420
|
+
// The shopify image resizing CDN blocks Cloudflare's image resizer. It's possible that we can't detect shopify image URLs sometimes because they go to the merchant's domain,
|
|
421
|
+
// but it seems like the URLs returned by the Depict API always goes to the cdn.shopify.com version of an image, so this simple workaround works.
|
|
422
|
+
return $56047603f9d212b6$export$1d6267828870adda(url, width);
|
|
423
|
+
// Use cloudflare image resizer instead of img.depict.ai because it's a lot faster (and also auto-chooses other formats if webp is not supported)
|
|
424
|
+
return "https://app.depict.ai/cdn-cgi/image/width=".concat(width, ",format=auto/").concat(url);
|
|
425
|
+
};
|
|
426
|
+
function $98688279b9059f50$export$9d4a4b669b1929ab(props) {
|
|
427
|
+
return $b8hua$createComponent((0, $4df489344a0f97c7$export$e4b984597b71e989), $b8hua$mergeProps(props, {
|
|
428
|
+
get imgProps() {
|
|
429
|
+
return {
|
|
430
|
+
...props.imgProps,
|
|
431
|
+
customUrls: $98688279b9059f50$var$customUrls
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
}));
|
|
435
|
+
}
|
|
436
|
+
function $98688279b9059f50$export$140423fa4bfb6d63(props) {
|
|
437
|
+
return $b8hua$createComponent((0, $56047603f9d212b6$export$6e5611bc7e57e477), $b8hua$mergeProps(props, {
|
|
438
|
+
customUrls: $98688279b9059f50$var$customUrls
|
|
439
|
+
}));
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
// Value first so shopify merchants can set (extra) display transformers in the shopify app
|
|
443
|
+
// Calling these functions normally doesn't do anything, but our shopify app respects them
|
|
444
|
+
// Them being here is value first too because this can be easily imported in the product card editor
|
|
445
|
+
let $80c7883e020be192$var$extraDisplayTransformers;
|
|
446
|
+
const $80c7883e020be192$export$b2d94be4f02525b2 = () => $80c7883e020be192$var$extraDisplayTransformers;
|
|
447
|
+
const $80c7883e020be192$export$f98b8d5ea7207a1 = displayTransformers => $80c7883e020be192$var$extraDisplayTransformers = displayTransformers;
|
|
448
|
+
function $00a5b94f0c11efbb$export$d9f36cf74e24d595(media_query) {
|
|
449
|
+
const signal = $b8hua$createSignal(false);
|
|
450
|
+
$b8hua$onCleanup($b8hua$javascript_media_query(media_query, _ref => {
|
|
451
|
+
let {
|
|
452
|
+
matches: matches
|
|
453
|
+
} = _ref;
|
|
454
|
+
return signal[1](matches);
|
|
455
|
+
}).remove);
|
|
456
|
+
return signal[0];
|
|
457
|
+
}
|
|
458
|
+
function $40e2fa435715a1a0$export$a79e666719b3647c(cols_at_size_) {
|
|
459
|
+
const size_active = $b8hua$createMemo(() => cols_at_size_().map(_ref => {
|
|
460
|
+
let [n_cols, min_width, max_width] = _ref;
|
|
461
|
+
const media_query = $b8hua$layout_media_query_header(min_width, max_width).replaceAll("@media", "");
|
|
462
|
+
const matches = $00a5b94f0c11efbb$export$d9f36cf74e24d595(media_query);
|
|
463
|
+
return [matches, n_cols];
|
|
464
|
+
}));
|
|
465
|
+
const n_cols_currently_showing = $b8hua$createMemo(() => {
|
|
466
|
+
try {
|
|
467
|
+
const [, n_cols_currently_showing] = size_active().find(_ref2 => {
|
|
468
|
+
let [media_query] = _ref2;
|
|
469
|
+
return media_query();
|
|
470
|
+
});
|
|
471
|
+
return n_cols_currently_showing;
|
|
472
|
+
} catch (e) {
|
|
473
|
+
$b8hua$dwarn("No active size found in columnsAtSize - can't render content blocks or looks");
|
|
474
|
+
return null;
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
return n_cols_currently_showing;
|
|
478
|
+
}
|
|
479
|
+
var $ff7feae4dddd6073$var$_tmpl$ = ["<div", ' class="', '" style="', '">', "</div>"];
|
|
480
|
+
function $ff7feae4dddd6073$export$791ef57e62e21c3f(_ref) {
|
|
481
|
+
let {
|
|
482
|
+
content_blocks_: incoming_content_blocks,
|
|
483
|
+
cols_at_size_: cols_at_size_,
|
|
484
|
+
set_top_row_shortened_by_: set_top_row_shortened_by_
|
|
485
|
+
} = _ref;
|
|
486
|
+
// these are by row
|
|
487
|
+
const [content_blocks, set_content_blocks] = $b8hua$createStore([]);
|
|
488
|
+
const n_cols_currently_showing_ = $40e2fa435715a1a0$export$a79e666719b3647c(cols_at_size_);
|
|
98
489
|
$b8hua$createEffect(() => {
|
|
99
490
|
const incoming_value = incoming_content_blocks();
|
|
100
491
|
if (!incoming_value) {
|
|
@@ -224,7 +615,7 @@ function $ff7feae4dddd6073$var$wrap_blocks_in_div(rendered_content_blocks, max_s
|
|
|
224
615
|
})));
|
|
225
616
|
}
|
|
226
617
|
});
|
|
227
|
-
return $b8hua$
|
|
618
|
+
return $b8hua$mergeProps1(block, {
|
|
228
619
|
// Create content divs for the blocks with as much fine-grained diffing as possible?
|
|
229
620
|
content: () => {
|
|
230
621
|
// Sneaky on-demand rendering, so we don't render more blocks than we can show: we have the rendered value here and don't return a function that renders because if our block would be moved around we'd be guaranteed to re-render
|
|
@@ -295,11 +686,11 @@ function $715f7f2e53146662$var$doHeavyCalculations() {
|
|
|
295
686
|
const [, setElementsHovered] = $715f7f2e53146662$var$elementsHoveredSignal;
|
|
296
687
|
const elementAtTouch = new Map();
|
|
297
688
|
const updateSet = () => setElementsHovered(new Set([...elementAtTouch.values()].filter(v => v)));
|
|
298
|
-
const setPositionHandler = $b8hua$
|
|
689
|
+
const setPositionHandler = $b8hua$catchify1(evt => {
|
|
299
690
|
for (const touch of evt.changedTouches) elementAtTouch.set(touch.identifier, document.elementFromPoint(touch.clientX, touch.clientY));
|
|
300
691
|
updateSet();
|
|
301
692
|
});
|
|
302
|
-
const deleteTouchHandler = $b8hua$
|
|
693
|
+
const deleteTouchHandler = $b8hua$catchify1(evt => {
|
|
303
694
|
for (const touch of evt.changedTouches) elementAtTouch.delete(touch.identifier);
|
|
304
695
|
updateSet();
|
|
305
696
|
});
|
|
@@ -425,20 +816,6 @@ function $cb64b315b25cfc59$var$unwrapping_helper(elements) {
|
|
|
425
816
|
} else if (typeof elements == "function") result.push(...$cb64b315b25cfc59$var$unwrapping_helper(elements()));else if (elements != undefined && typeof elements != "boolean") result.push(elements);
|
|
426
817
|
return result;
|
|
427
818
|
}
|
|
428
|
-
const $1e69163caedaab4e$var$ProductCardIndexContext = /*@__PURE__*/$b8hua$createContext();
|
|
429
|
-
function $1e69163caedaab4e$export$11354f017ddc9790(props) {
|
|
430
|
-
return $b8hua$createComponent($1e69163caedaab4e$var$ProductCardIndexContext.Provider, {
|
|
431
|
-
get value() {
|
|
432
|
-
return props.index_;
|
|
433
|
-
},
|
|
434
|
-
get children() {
|
|
435
|
-
return props.children;
|
|
436
|
-
}
|
|
437
|
-
});
|
|
438
|
-
}
|
|
439
|
-
function $1e69163caedaab4e$export$e3faf4d95300054f() {
|
|
440
|
-
return $b8hua$useContext($1e69163caedaab4e$var$ProductCardIndexContext);
|
|
441
|
-
}
|
|
442
819
|
|
|
443
820
|
/**
|
|
444
821
|
* This is a function that will safely clone an object that may contain promises.
|
|
@@ -667,7 +1044,7 @@ function $618bd53ea0a41cd4$export$4a14175d33d81a96(_ref) {
|
|
|
667
1044
|
};
|
|
668
1045
|
// The following sets up an intersection observer to determine which results are in the viewport, used for the ScrollStatus indicator, knowing when to load more and any other consumer of the useProductCardIsVisible hook.
|
|
669
1046
|
const shouldObserve = $b8hua$createMemo(() => alwaysObserveCards_ || listenersForIntersecting() > 0);
|
|
670
|
-
const intersection_observer = new IntersectionObserver($b8hua$
|
|
1047
|
+
const intersection_observer = new IntersectionObserver($b8hua$catchify(records => {
|
|
671
1048
|
const intersectingValue = currentlyIntersecting();
|
|
672
1049
|
for (let i = 0; i < records.length; i++) {
|
|
673
1050
|
const record = records[i];
|
|
@@ -963,7 +1340,7 @@ var $63f1f8dbcd07d3b0$var$_tmpl$ = ["<div", ' class="', '">', "</div>"],
|
|
|
963
1340
|
$63f1f8dbcd07d3b0$var$_tmpl$2 = ["<style", ' type="text/css">', "</style>"];
|
|
964
1341
|
function $63f1f8dbcd07d3b0$export$d21e32dfedac04be(props) {
|
|
965
1342
|
const container_class = "x" + $b8hua$createUniqueId();
|
|
966
|
-
const container_element_ = $b8hua$ssrElement("div", $b8hua$
|
|
1343
|
+
const container_element_ = $b8hua$ssrElement("div", $b8hua$mergeProps(() => props.element_attributes, {
|
|
967
1344
|
classList: {
|
|
968
1345
|
[container_class]: true
|
|
969
1346
|
}
|
|
@@ -1023,531 +1400,170 @@ function $63f1f8dbcd07d3b0$export$445d8d3f5f706a40(props, container_element) {
|
|
|
1023
1400
|
const max_rows = rows_or_empty_object().max_rows;
|
|
1024
1401
|
if (!isNaN(max_rows) && max_rows >= 0 && rows_visible > max_rows) set_rows_visible()(max_rows);
|
|
1025
1402
|
});
|
|
1026
|
-
$b8hua$createEffect(() => set_force_style_update(" ")); // force style update after hydration due to https://discord.com/channels/722131463138705510/722167424186843267/1151544212517552168
|
|
1027
|
-
$b8hua$createRenderEffect(() => {
|
|
1028
|
-
// Be careful to only read show_all_rows in here (ofc doesn't apply to nested effects)
|
|
1029
|
-
if (show_all_rows()) {
|
|
1030
|
-
// no view more functionality requested
|
|
1031
|
-
set_styling(() => col_styling);
|
|
1032
|
-
return;
|
|
1033
|
-
}
|
|
1034
|
-
update_children_count();
|
|
1035
|
-
if (!(0, $b8hua$isServer)) {
|
|
1036
|
-
const mutation_observer = new MutationObserver($b8hua$catchify1(update_children_count));
|
|
1037
|
-
mutation_observer.observe(container_element, {
|
|
1038
|
-
childList: true
|
|
1039
|
-
});
|
|
1040
|
-
$b8hua$onCleanup(() => mutation_observer.disconnect());
|
|
1041
|
-
}
|
|
1042
|
-
set_styling(
|
|
1043
|
-
// this is needed because solid will think that the memo-accessor is a setter function otherwise
|
|
1044
|
-
() => $b8hua$createMemo(() => {
|
|
1045
|
-
const {
|
|
1046
|
-
rows_per_click: rows_per_click,
|
|
1047
|
-
max_rows = -1,
|
|
1048
|
-
start_rows: start_rows
|
|
1049
|
-
} = rows_or_empty_object();
|
|
1050
|
-
const rows_visible = get_rows_visible();
|
|
1051
|
-
const children_count = get_children_count();
|
|
1052
|
-
return force_style_update() + col_styling() + props.cols_at_size.map(options => {
|
|
1053
|
-
const [recs_per_row, min, max] = options;
|
|
1054
|
-
let should_hide_view_more_button;
|
|
1055
|
-
let visible_recs;
|
|
1056
|
-
if (props.disable_partial_rows) {
|
|
1057
|
-
visible_recs = $b8hua$layout_get_visible_recs_without_partial_rows(rows_visible, children_count, options);
|
|
1058
|
-
const visible_recs_next_show_more = $b8hua$layout_get_visible_recs_without_partial_rows(rows_visible + (rows_per_click || 0),
|
|
1059
|
-
// Should this really be zero when we default rows_per_click to 1?
|
|
1060
|
-
children_count, options);
|
|
1061
|
-
should_hide_view_more_button = visible_recs === visible_recs_next_show_more;
|
|
1062
|
-
} else {
|
|
1063
|
-
visible_recs = $b8hua$layout_get_total_rec_amount_for_row(rows_visible, options);
|
|
1064
|
-
should_hide_view_more_button = visible_recs >= children_count;
|
|
1065
|
-
}
|
|
1066
|
-
const should_hide_button_final = should_hide_view_more_button || max_rows !== -1 && rows_visible >= max_rows;
|
|
1067
|
-
// I don't really understand the logic for when the view more button gets hidden so IDK if below is correct, but it works how it should for now
|
|
1068
|
-
const should_hide_view_less_button = !should_hide_view_more_button || start_rows == undefined || rows_visible <= start_rows || children_count <= recs_per_row * start_rows;
|
|
1069
|
-
return "".concat($b8hua$layout_media_query_header(min, max), "{").concat(selector_beginning, ":nth-child(n+").concat(visible_recs + 1, "){display:none}").concat(props.layout == "slider" ? "".concat(selector_beginning, ":nth-child(n+").concat(visible_recs, "){margin-right:0}") : "").concat(should_hide_button_final ? ".depict .".concat(view_more_button_class, "{display:none!important}") : "").concat(should_hide_view_less_button ? ".depict .".concat(view_less_button_class, "{display:none!important}") : "", "}");
|
|
1070
|
-
}).join("");
|
|
1071
|
-
}));
|
|
1072
|
-
});
|
|
1073
|
-
const style_element = $b8hua$ssr($63f1f8dbcd07d3b0$var$_tmpl$2, $b8hua$ssrHydrationKey(), get_styling); // need to create this after set_styling has been called or else there will be no styling in the SSR'd output
|
|
1074
|
-
if (insert_after_container) container_element.after(style_element);
|
|
1075
|
-
return [container_element, view_more_button_container(), view_less_button_container(), style_element];
|
|
1076
|
-
}
|
|
1077
|
-
var $39ddb986053fb759$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"];
|
|
1078
|
-
function $39ddb986053fb759$export$d41d19e89346fa2(_ref) {
|
|
1079
|
-
let {
|
|
1080
|
-
recommendations_resource_: recommendations_resource_,
|
|
1081
|
-
product_card_template_: product_card_template_,
|
|
1082
|
-
layout_options_: layout_options_,
|
|
1083
|
-
title_: title_,
|
|
1084
|
-
NoResultsFallback_: NoResultsFallback_,
|
|
1085
|
-
placeholderCacheKey_: placeholderCacheKey_
|
|
1086
|
-
} = _ref;
|
|
1087
|
-
const is_showing_something = $b8hua$createMemo(() => {
|
|
1088
|
-
var _recommendations_reso;
|
|
1089
|
-
return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
|
|
1090
|
-
});
|
|
1091
|
-
const title = $b8hua$createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
|
|
1092
|
-
const num_placeholders_ = () => 20;
|
|
1093
|
-
const slider = [$b8hua$createComponent((0, $b8hua$Show), {
|
|
1094
|
-
get when() {
|
|
1095
|
-
return title();
|
|
1096
|
-
},
|
|
1097
|
-
get children() {
|
|
1098
|
-
return $b8hua$ssr($39ddb986053fb759$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(title()));
|
|
1099
|
-
}
|
|
1100
|
-
}), $b8hua$createComponent((0, $002f09d00aac50b2$export$6649caad96ef8870), {
|
|
1101
|
-
arrow_height_: 25,
|
|
1102
|
-
arrow_width_: 12.5,
|
|
1103
|
-
disable_fading_: true,
|
|
1104
|
-
slider_ref_: slider => {
|
|
1105
|
-
const {
|
|
1106
|
-
insert_here: insert_here,
|
|
1107
|
-
container: container
|
|
1108
|
-
} = slider;
|
|
1109
|
-
const Layout = props => $63f1f8dbcd07d3b0$export$445d8d3f5f706a40(props, insert_here, true);
|
|
1110
|
-
// Do like this, so we don't have to call mergeProps ourselves
|
|
1111
|
-
$b8hua$createComponent(Layout, $b8hua$mergeProps1({
|
|
1112
|
-
rows: "all",
|
|
1113
|
-
layout: "slider"
|
|
1114
|
-
}, layout_options_));
|
|
1115
|
-
$b8hua$slider_fractional_factory(0, 0.75).constructor_plugin.call(slider, {}); // enable fractional scrolling
|
|
1116
|
-
insert_here.before($ca55612a53dbbdd2$export$a2cc176055f8f08());
|
|
1117
|
-
container.classList.add("products");
|
|
1118
|
-
},
|
|
1119
|
-
get children() {
|
|
1120
|
-
return $b8hua$createComponent((0, $b8hua$Suspense), {
|
|
1121
|
-
get fallback() {
|
|
1122
|
-
return $bdd80c7862246dc2$export$f33414a4df0afd3f({
|
|
1123
|
-
num_placeholders_: num_placeholders_,
|
|
1124
|
-
product_card_template_: product_card_template_,
|
|
1125
|
-
placeholderCacheKey_: placeholderCacheKey_
|
|
1126
|
-
});
|
|
1127
|
-
},
|
|
1128
|
-
get children() {
|
|
1129
|
-
return (() => {
|
|
1130
|
-
// IIFE to make sure we access both the recommendations_resource and the resources containing the product card rendering results themselves within the Suspense boundary
|
|
1131
|
-
const displays_by_key_ = $2d7bad8684bc7f44$export$7f8bd308237ab5a5($b8hua$createMemo(() => recommendations_resource_() || []));
|
|
1132
|
-
const {
|
|
1133
|
-
renderedDisplays_: renderedDisplays_
|
|
1134
|
-
} = $618bd53ea0a41cd4$export$4a14175d33d81a96({
|
|
1135
|
-
displays_by_key_: displays_by_key_,
|
|
1136
|
-
product_card_template_: product_card_template_
|
|
1137
|
-
});
|
|
1138
|
-
return renderedDisplays_;
|
|
1139
|
-
})();
|
|
1140
|
-
}
|
|
1141
|
-
});
|
|
1142
|
-
}
|
|
1143
|
-
})];
|
|
1144
|
-
return $b8hua$createComponent((0, $b8hua$Show), {
|
|
1145
|
-
get when() {
|
|
1146
|
-
return is_showing_something();
|
|
1147
|
-
},
|
|
1148
|
-
get fallback() {
|
|
1149
|
-
return NoResultsFallback_ === null || NoResultsFallback_ === void 0 ? void 0 : NoResultsFallback_();
|
|
1150
|
-
},
|
|
1151
|
-
children: slider
|
|
1152
|
-
});
|
|
1153
|
-
}
|
|
1154
|
-
function $83e8cf2c0b87a58a$export$23fca46f3143581f(component, error_message) {
|
|
1155
|
-
const component_in_error_boundary = do_with_elements => {
|
|
1156
|
-
const error_boundary_wrapped = $74777e8fe65b3dcb$export$b69d0d92862de18b({
|
|
1157
|
-
severity_: "error",
|
|
1158
|
-
message_: error_message,
|
|
1159
|
-
get children() {
|
|
1160
|
-
const elements = component();
|
|
1161
|
-
do_with_elements === null || do_with_elements === void 0 || do_with_elements(elements);
|
|
1162
|
-
return elements;
|
|
1163
|
-
}
|
|
1164
|
-
});
|
|
1165
|
-
// This might return an accessor, in that case we need to "unwrap" it since our SDK consumers expect HTML elements or arrays thereof
|
|
1166
|
-
if (typeof error_boundary_wrapped === "function")
|
|
1167
|
-
// @ts-ignore
|
|
1168
|
-
return error_boundary_wrapped();
|
|
1169
|
-
// On the server it returns a string, so we just return that
|
|
1170
|
-
return error_boundary_wrapped;
|
|
1171
|
-
};
|
|
1172
|
-
const owner = $b8hua$getOwner();
|
|
1173
|
-
if (owner == null) return $b8hua$createRoot(dispose => {
|
|
1174
|
-
// if we're not already run in a root, create a root and automatically dispose it when the first returned element is removed from the DOM
|
|
1175
|
-
return component_in_error_boundary(elements => {
|
|
1176
|
-
const have_multiple = Array.isArray(elements);
|
|
1177
|
-
if (have_multiple ? !(elements !== null && elements !== void 0 && elements.length) : !elements) return;
|
|
1178
|
-
(0, $b8hua$observer).onremoved(have_multiple ? elements[0] : elements, _ref => {
|
|
1179
|
-
let {
|
|
1180
|
-
element: element
|
|
1181
|
-
} = _ref;
|
|
1182
|
-
if (document.documentElement.contains(element)) return; // If element has instantly been re-inserted, don't dispose
|
|
1183
|
-
// See https://depictaiworkspace.slack.com/archives/C050GHEPBTR/p1695809102791259?thread_ts=1695106805.459729&cid=C050GHEPBTR
|
|
1184
|
-
dispose();
|
|
1185
|
-
});
|
|
1186
|
-
});
|
|
1187
|
-
});else
|
|
1188
|
-
// we're already in a root so cleanups are handled
|
|
1189
|
-
return component_in_error_boundary();
|
|
1190
|
-
}
|
|
1191
|
-
const $5441862cd2f5e111$var$ListingContext = /*@__PURE__*/$b8hua$createContext();
|
|
1192
|
-
function $5441862cd2f5e111$export$e68cff63f76bd15b(props) {
|
|
1193
|
-
const our_object = {};
|
|
1194
|
-
return $b8hua$createComponent($5441862cd2f5e111$var$ListingContext.Provider, {
|
|
1195
|
-
value: our_object,
|
|
1196
|
-
get children() {
|
|
1197
|
-
return props.children;
|
|
1198
|
-
}
|
|
1199
|
-
});
|
|
1200
|
-
}
|
|
1201
|
-
function $5441862cd2f5e111$export$8d0c4fdbb05a2f2e() {
|
|
1202
|
-
return $b8hua$useContext($5441862cd2f5e111$var$ListingContext);
|
|
1203
|
-
}
|
|
1204
|
-
function $ceafb6fb91c6f394$export$89c6019e4baa40b1(props) {
|
|
1205
|
-
const style = $b8hua$createMemo(() => {
|
|
1206
|
-
const {
|
|
1207
|
-
style: style,
|
|
1208
|
-
height: height,
|
|
1209
|
-
width: width
|
|
1210
|
-
} = props;
|
|
1211
|
-
return {
|
|
1212
|
-
...(style || {}),
|
|
1213
|
-
height: height !== null && height !== void 0 ? height : "1em",
|
|
1214
|
-
...(width && {
|
|
1215
|
-
width: width
|
|
1216
|
-
})
|
|
1217
|
-
};
|
|
1218
|
-
});
|
|
1219
|
-
return $b8hua$createComponent((0, $bc2337c9a05ecd18$export$acb3eaade4b23afd), {
|
|
1220
|
-
get style() {
|
|
1221
|
-
return style();
|
|
1222
|
-
},
|
|
1223
|
-
get ["class"]() {
|
|
1224
|
-
return props.class;
|
|
1225
|
-
}
|
|
1226
|
-
});
|
|
1227
|
-
}
|
|
1228
|
-
var $5eaa00b951637e96$var$_tmpl$ = ["<div", ' class="instant-card"><div class="img-part">', '</div><div class="right-part"><div class="title-brand-tagline"><span class="title">', '</span></div><div class="price-container">', "</div></div></div>"];
|
|
1229
|
-
const $5eaa00b951637e96$export$8a2234b5b1a5ebd4 = "--image-aspect-ratio";
|
|
1230
|
-
function $5eaa00b951637e96$export$ee1733d9a8495996() {
|
|
1231
|
-
return $b8hua$ssr($5eaa00b951637e96$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape($b8hua$createComponent((0, $3ab4aa97880fb88d$export$3f37af283f8fb843), {
|
|
1232
|
-
aspectRatio: "var(".concat($5eaa00b951637e96$export$8a2234b5b1a5ebd4, ", 1)")
|
|
1233
|
-
})), $b8hua$escape($b8hua$createComponent((0, $ceafb6fb91c6f394$export$89c6019e4baa40b1), {
|
|
1234
|
-
width: "20ch",
|
|
1235
|
-
height: "1em"
|
|
1236
|
-
})), $b8hua$escape($b8hua$createComponent((0, $ceafb6fb91c6f394$export$89c6019e4baa40b1), {
|
|
1237
|
-
width: "5ch",
|
|
1238
|
-
height: "1em",
|
|
1239
|
-
"class": "price"
|
|
1240
|
-
})));
|
|
1241
|
-
}
|
|
1242
|
-
var $801e8845d3fa3653$var$_tmpl$ = ["<div", ' style="', '"', ">", "</div>"];
|
|
1243
|
-
function $801e8845d3fa3653$export$94026ee33dbabc26(props) {
|
|
1244
|
-
return $b8hua$ssr($801e8845d3fa3653$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$ssrStyle("padding-bottom:calc(calc(1 / ".concat(props.aspectRatio, ") * 100%)")), $b8hua$ssrAttribute("class", "s-image-container" + (props.class ? " " + $b8hua$escape(props.class, true) : ""), false), $b8hua$escape(props.children));
|
|
1245
|
-
}
|
|
1246
|
-
let $6db93f70c2db1486$var$browserIsBugged = false;
|
|
1247
|
-
function $6db93f70c2db1486$export$2972b890694ced75(callback, _ref) {
|
|
1248
|
-
let {
|
|
1249
|
-
timeout: timeout
|
|
1250
|
-
} = _ref;
|
|
1251
|
-
if ($6db93f70c2db1486$var$browserIsBugged) timeout /= 4;
|
|
1252
|
-
const cancel = () => {
|
|
1253
|
-
cancelIdleCallback(idleHandle);
|
|
1254
|
-
clearTimeout(racingTimeout);
|
|
1255
|
-
};
|
|
1256
|
-
const idleHandle = requestIdleCallback(deadline => {
|
|
1257
|
-
cancel();
|
|
1258
|
-
return callback(deadline);
|
|
1259
|
-
}, {
|
|
1260
|
-
timeout: timeout
|
|
1261
|
-
});
|
|
1262
|
-
const racingTimeout = setTimeout(() => {
|
|
1263
|
-
$b8hua$dwarn("Browser did not respect requestIdleCallback timeout");
|
|
1264
|
-
$6db93f70c2db1486$var$browserIsBugged = true;
|
|
1265
|
-
cancel();
|
|
1266
|
-
callback({
|
|
1267
|
-
didTimeout: false,
|
|
1268
|
-
timeRemaining() {
|
|
1269
|
-
return 500;
|
|
1270
|
-
}
|
|
1271
|
-
});
|
|
1272
|
-
}, timeout + 1000);
|
|
1273
|
-
return cancel;
|
|
1274
|
-
}
|
|
1275
|
-
function $56047603f9d212b6$export$e6fffe67d4cdd848(whatToWatch) {
|
|
1276
|
-
const [size, setSize] = $b8hua$createSignal(0);
|
|
1277
|
-
const resizeObserver = new ResizeObserver($b8hua$catchify1(records => {
|
|
1278
|
-
for (let j = 0; j < records.length; j++) {
|
|
1279
|
-
const {
|
|
1280
|
-
width: width
|
|
1281
|
-
} = records[j].contentRect;
|
|
1282
|
-
if (!width) continue;
|
|
1283
|
-
setSize(Math.ceil(width));
|
|
1284
|
-
}
|
|
1285
|
-
}));
|
|
1286
|
-
// If we start observing elements before they're in the DOM Chrome (Version 117.0.5938.92 (Official Build) (arm64)) sometimes gives us a resize event with a width of 0 and then doesn't dispatch one with the actual width once it's in the DOM. So we wait until the element is in the DOM before we start observing it.
|
|
1287
|
-
// It doesn't seem to work even when waiting for it to be in the DOM, also wait an animation frame
|
|
1288
|
-
const disconnect = (0, $b8hua$observer).onexists(whatToWatch, _ref => {
|
|
1289
|
-
let {
|
|
1290
|
-
element: element
|
|
1291
|
-
} = _ref;
|
|
1292
|
-
return requestAnimationFrame($b8hua$catchify1(() => resizeObserver.observe(element)));
|
|
1293
|
-
});
|
|
1294
|
-
$b8hua$onCleanup(() => {
|
|
1295
|
-
resizeObserver.disconnect();
|
|
1296
|
-
disconnect();
|
|
1297
|
-
});
|
|
1298
|
-
return size;
|
|
1299
|
-
}
|
|
1300
|
-
const $56047603f9d212b6$var$onIdleFunctionsSymbol = /*@__PURE__*/Symbol("onIdleFunctions");
|
|
1301
|
-
const $56047603f9d212b6$export$f8945274f08a3105 = /*@__PURE__*/Symbol("listingContextAspectRatios");
|
|
1302
|
-
const $56047603f9d212b6$export$6066eb417ed2e9f7 = /*@__PURE__*/Symbol("listingContextAspectRatios");
|
|
1303
|
-
function $56047603f9d212b6$export$6e5611bc7e57e477(props) {
|
|
1304
|
-
const src_options = $b8hua$createMemo(() => {
|
|
1305
|
-
const {
|
|
1306
|
-
src: src,
|
|
1307
|
-
customUrls: customUrls
|
|
1308
|
-
} = props;
|
|
1309
|
-
const fallback_src = (customUrls || $56047603f9d212b6$export$1d6267828870adda)(src, 400);
|
|
1310
|
-
const srcset = $56047603f9d212b6$var$make_srcset(props.src, props.resolutions || [64, 128, 256, 300, 400, 512, 640, 768, 1024, 1280, 1536, 2048, 2560, 3072, 3584, 4096], customUrls);
|
|
1311
|
-
// The order here *might* matter - I've seen mobile safari always start with loading the 400px version when it was reversed
|
|
1312
|
-
return {
|
|
1313
|
-
srcset: srcset,
|
|
1314
|
-
src: fallback_src
|
|
1315
|
-
};
|
|
1316
|
-
});
|
|
1317
|
-
// Work around https://github.com/solidjs/solid/issues/1828
|
|
1318
|
-
const img = new Image(); // Need to use new Image or browser might not start loading image before it's in the DOM
|
|
1319
|
-
const [, otherAttributes] = $b8hua$splitProps(props, ["resolutions", "size", "src", "srcSet", "loading", "keyRatioUpdating", "customUrls" // Can't have properties ending on underscore because the property name mangling will get confused by this <-
|
|
1320
|
-
]);
|
|
1321
|
-
|
|
1322
|
-
const [hasSetSize, setHasSetSize] = $b8hua$createSignal(false);
|
|
1323
|
-
const [hasDecoded, setHasDecoded] = $b8hua$createSignal(false);
|
|
1324
|
-
const productCardIndexAccessor = $1e69163caedaab4e$export$e3faf4d95300054f();
|
|
1325
|
-
const sizePX = $b8hua$createMemo(() => "".concat(props.size(), "px")); // props.size could be a getter that expects a cleanup so get it in this memo instead of where we set img.sizes
|
|
1326
|
-
const listingContext = $5441862cd2f5e111$export$8d0c4fdbb05a2f2e();
|
|
1327
|
-
const isPrioritisedImage = $b8hua$createMemo(() => (productCardIndexAccessor === null || productCardIndexAccessor === void 0 ? void 0 : productCardIndexAccessor()) < 8);
|
|
1328
|
-
const shouldActuallyEnableLazyLoading = $b8hua$createMemo(() => {
|
|
1329
|
-
const {
|
|
1330
|
-
loading: loading
|
|
1331
|
-
} = props;
|
|
1332
|
-
if (loading === "force-lazy") return true;
|
|
1333
|
-
return loading === "lazy" && !isPrioritisedImage();
|
|
1334
|
-
});
|
|
1335
|
-
const modifiedOtherAttributes = $b8hua$mergeProps(otherAttributes, {
|
|
1336
|
-
get loading() {
|
|
1337
|
-
return shouldActuallyEnableLazyLoading() ? "lazy" : undefined;
|
|
1338
|
-
}
|
|
1339
|
-
});
|
|
1340
|
-
// Batch idle callbacks so that MutationObserver can batch the resulting mutations better, so we don't lose tons of CPU time to MutationObservers doing lots of things for each image
|
|
1341
|
-
// Happened on singular, they have some weird observer (+we also have one but ours is at least 3x more efficient)
|
|
1342
|
-
const executeWhenIdleBatched = (fn, isSizesUpdate) => {
|
|
1343
|
-
if (typeof requestIdleCallback !== "function") return setTimeout(fn); // Old browsers don't get optimisation
|
|
1344
|
-
if ((!isSizesUpdate || !sizeSetFastPath) && $b8hua$untrack(isPrioritisedImage)) return fn(); // If we're one of the first 8 images, execute the callbacks immediately (improves lighthouse metrics)
|
|
1345
|
-
// unless we're just a `sizes` update after the initial sizes setting (this optimisation makes the looks animation a lot smoother on low-cpu devices)
|
|
1346
|
-
const existingStack = listingContext === null || listingContext === void 0 ? void 0 : listingContext[$56047603f9d212b6$var$onIdleFunctionsSymbol];
|
|
1347
|
-
if (existingStack) return existingStack.add(fn);
|
|
1348
|
-
const newStack = new Set([fn]);
|
|
1349
|
-
if (listingContext) listingContext[$56047603f9d212b6$var$onIdleFunctionsSymbol] = newStack;
|
|
1350
|
-
const processStackWhenIdle = () => $6db93f70c2db1486$export$2972b890694ced75($b8hua$catchify1(deadline => {
|
|
1351
|
-
const start = performance.now();
|
|
1352
|
-
const thirdDeadlineTime = deadline.timeRemaining() / 3; // observers coming after this take up 2-3x the time so don't use all of it
|
|
1353
|
-
for (const fn of newStack) {
|
|
1354
|
-
newStack.delete(fn);
|
|
1355
|
-
fn();
|
|
1356
|
-
const timeTaken = performance.now() - start;
|
|
1357
|
-
if ((!deadline.timeRemaining() || timeTaken > thirdDeadlineTime) && newStack.size) {
|
|
1358
|
-
// There's still work to be done but no time, so schedule another idle callback
|
|
1359
|
-
processStackWhenIdle();
|
|
1360
|
-
return;
|
|
1361
|
-
}
|
|
1362
|
-
}
|
|
1363
|
-
// Stack is empty
|
|
1364
|
-
if (listingContext) delete listingContext[$56047603f9d212b6$var$onIdleFunctionsSymbol];
|
|
1365
|
-
}), {
|
|
1366
|
-
timeout: 15000
|
|
1367
|
-
} // long timeout, better to not have images than to freeze the browser. But also we don't want to confuse user why no iamges are loading
|
|
1368
|
-
);
|
|
1369
|
-
|
|
1370
|
-
processStackWhenIdle();
|
|
1371
|
-
};
|
|
1372
|
-
let sizeSetFastPath = false;
|
|
1373
|
-
let hasDecodedFastPath = false;
|
|
1374
|
-
let timeoutSet = false;
|
|
1375
|
-
let gotCleanedUp = false;
|
|
1376
|
-
let srcJustChanged = true;
|
|
1377
|
-
img.classList.add("s-responsive-image");
|
|
1378
|
-
if (listingContext) {
|
|
1379
|
-
let prevValue;
|
|
1380
|
-
const aspectRatios = listingContext[$56047603f9d212b6$export$f8945274f08a3105] || (listingContext[$56047603f9d212b6$export$f8945274f08a3105] = new Set());
|
|
1381
|
-
const [, setMostPrevalentAspectRatio] = listingContext[$56047603f9d212b6$export$6066eb417ed2e9f7] || (listingContext[$56047603f9d212b6$export$6066eb417ed2e9f7] = $b8hua$createSignal());
|
|
1382
|
-
img.addEventListener("load", $b8hua$catchify1(() => {
|
|
1383
|
-
if (props.keyRatioUpdating) {
|
|
1384
|
-
if (!srcJustChanged) return;
|
|
1385
|
-
srcJustChanged = false;
|
|
1386
|
-
}
|
|
1387
|
-
// Save our aspect ratio whenever it changes, so that we can base the containers on the most dominant aspect ratio, used in SearchModalV2 and LookItem
|
|
1388
|
-
const aspectRatio_ = img.naturalWidth / img.naturalHeight;
|
|
1389
|
-
if (prevValue) aspectRatios.delete(prevValue);
|
|
1390
|
-
const newValue = !isNaN(aspectRatio_) ? {
|
|
1391
|
-
aspectRatio_: aspectRatio_
|
|
1392
|
-
} : undefined;
|
|
1393
|
-
if (newValue) aspectRatios.add(newValue);
|
|
1394
|
-
prevValue = newValue;
|
|
1395
|
-
// Do all calculations resulting of an update directly, for performance
|
|
1396
|
-
const asArray = [...aspectRatios].map(_ref2 => {
|
|
1397
|
-
let {
|
|
1398
|
-
aspectRatio_: aspectRatio_
|
|
1399
|
-
} = _ref2;
|
|
1400
|
-
return aspectRatio_;
|
|
1401
|
-
});
|
|
1402
|
-
const mostPrevalentAspectRatio = $b8hua$findMostFrequentItem(asArray);
|
|
1403
|
-
setMostPrevalentAspectRatio(mostPrevalentAspectRatio);
|
|
1404
|
-
}));
|
|
1405
|
-
$b8hua$onCleanup(() => prevValue && aspectRatios.delete(prevValue));
|
|
1406
|
-
}
|
|
1407
|
-
$b8hua$onCleanup(() => gotCleanedUp = true);
|
|
1408
|
-
$b8hua$spread(img, $b8hua$mergeProps(modifiedOtherAttributes), false, true);
|
|
1409
|
-
$b8hua$createRenderEffect(() => {
|
|
1410
|
-
props.src;
|
|
1411
|
-
srcJustChanged = true;
|
|
1412
|
-
});
|
|
1413
|
-
$b8hua$createEffect(() => {
|
|
1414
|
-
if (!props.size()) return; // wait until we have a size, run every time the size changes
|
|
1415
|
-
if (timeoutSet) return;
|
|
1416
|
-
const handler = $b8hua$catchify1(() => {
|
|
1417
|
-
if (gotCleanedUp) return;
|
|
1418
|
-
img.sizes = sizePX(); // use latest available value of props.size
|
|
1419
|
-
if (!sizeSetFastPath) {
|
|
1420
|
-
setHasSetSize(true);
|
|
1421
|
-
sizeSetFastPath = true;
|
|
1422
|
-
}
|
|
1423
|
-
timeoutSet = false;
|
|
1424
|
-
});
|
|
1425
|
-
// Throttle the updating of sizes to avoid unnecessary image re-fetches during resize
|
|
1426
|
-
// And also because we first set src after sizes has been set, wait with loading and decoding images until browser is idle
|
|
1427
|
-
// This greatly improves performance when loading (more) products
|
|
1428
|
-
// See https://depictaiworkspace.slack.com/archives/C05NJ0K3WRL/p1698220617663139
|
|
1429
|
-
timeoutSet = true; // Important to set timeoutSet before the call to executeWhenIdleBatched since if this is an important image executeWhenIdleBatched will execute fn immediately
|
|
1430
|
-
executeWhenIdleBatched(handler, true);
|
|
1431
|
-
});
|
|
1432
|
-
const dontLoadImageYet = $b8hua$createMemo(() => !props.size() || !hasSetSize()); // Moving this condition into a memo saves us from re-setting src and srcset (expensive) if just props.size changes
|
|
1433
|
-
$b8hua$createEffect(() => {
|
|
1434
|
-
if (dontLoadImageYet()) return; // If size isn't known or set, don't assign src yet since it would cause the most low res image to load
|
|
1435
|
-
Object.assign(img, src_options());
|
|
1436
|
-
// Add to DOM once decoded to not require/block any paints before image has completed loading and avoid showing broken image symbol
|
|
1437
|
-
// We can do this because there has to be a container around us giving us a size
|
|
1438
|
-
// No need to listen if we're already in the DOM
|
|
1439
|
-
if (hasDecodedFastPath) return;
|
|
1440
|
-
if (shouldActuallyEnableLazyLoading()) {
|
|
1441
|
-
// For lazy loading there's no decoding to wait for as it only occurs when the image is visible
|
|
1442
|
-
// Make sure src is set before we put the image into the DOM though so no broken image symbol is shown
|
|
1443
|
-
setHasDecoded(true);
|
|
1444
|
-
hasDecodedFastPath = true;
|
|
1403
|
+
$b8hua$createEffect(() => set_force_style_update(" ")); // force style update after hydration due to https://discord.com/channels/722131463138705510/722167424186843267/1151544212517552168
|
|
1404
|
+
$b8hua$createRenderEffect(() => {
|
|
1405
|
+
// Be careful to only read show_all_rows in here (ofc doesn't apply to nested effects)
|
|
1406
|
+
if (show_all_rows()) {
|
|
1407
|
+
// no view more functionality requested
|
|
1408
|
+
set_styling(() => col_styling);
|
|
1445
1409
|
return;
|
|
1446
1410
|
}
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
}
|
|
1411
|
+
update_children_count();
|
|
1412
|
+
if (!(0, $b8hua$isServer)) {
|
|
1413
|
+
const mutation_observer = new MutationObserver($b8hua$catchify(update_children_count));
|
|
1414
|
+
mutation_observer.observe(container_element, {
|
|
1415
|
+
childList: true
|
|
1416
|
+
});
|
|
1417
|
+
$b8hua$onCleanup(() => mutation_observer.disconnect());
|
|
1418
|
+
}
|
|
1419
|
+
set_styling(
|
|
1420
|
+
// this is needed because solid will think that the memo-accessor is a setter function otherwise
|
|
1421
|
+
() => $b8hua$createMemo(() => {
|
|
1422
|
+
const {
|
|
1423
|
+
rows_per_click: rows_per_click,
|
|
1424
|
+
max_rows = -1,
|
|
1425
|
+
start_rows: start_rows
|
|
1426
|
+
} = rows_or_empty_object();
|
|
1427
|
+
const rows_visible = get_rows_visible();
|
|
1428
|
+
const children_count = get_children_count();
|
|
1429
|
+
return force_style_update() + col_styling() + props.cols_at_size.map(options => {
|
|
1430
|
+
const [recs_per_row, min, max] = options;
|
|
1431
|
+
let should_hide_view_more_button;
|
|
1432
|
+
let visible_recs;
|
|
1433
|
+
if (props.disable_partial_rows) {
|
|
1434
|
+
visible_recs = $b8hua$layout_get_visible_recs_without_partial_rows(rows_visible, children_count, options);
|
|
1435
|
+
const visible_recs_next_show_more = $b8hua$layout_get_visible_recs_without_partial_rows(rows_visible + (rows_per_click || 0),
|
|
1436
|
+
// Should this really be zero when we default rows_per_click to 1?
|
|
1437
|
+
children_count, options);
|
|
1438
|
+
should_hide_view_more_button = visible_recs === visible_recs_next_show_more;
|
|
1439
|
+
} else {
|
|
1440
|
+
visible_recs = $b8hua$layout_get_total_rec_amount_for_row(rows_visible, options);
|
|
1441
|
+
should_hide_view_more_button = visible_recs >= children_count;
|
|
1442
|
+
}
|
|
1443
|
+
const should_hide_button_final = should_hide_view_more_button || max_rows !== -1 && rows_visible >= max_rows;
|
|
1444
|
+
// I don't really understand the logic for when the view more button gets hidden so IDK if below is correct, but it works how it should for now
|
|
1445
|
+
const should_hide_view_less_button = !should_hide_view_more_button || start_rows == undefined || rows_visible <= start_rows || children_count <= recs_per_row * start_rows;
|
|
1446
|
+
return "".concat($b8hua$layout_media_query_header(min, max), "{").concat(selector_beginning, ":nth-child(n+").concat(visible_recs + 1, "){display:none}").concat(props.layout == "slider" ? "".concat(selector_beginning, ":nth-child(n+").concat(visible_recs, "){margin-right:0}") : "").concat(should_hide_button_final ? ".depict .".concat(view_more_button_class, "{display:none!important}") : "").concat(should_hide_view_less_button ? ".depict .".concat(view_less_button_class, "{display:none!important}") : "", "}");
|
|
1447
|
+
}).join("");
|
|
1448
|
+
}));
|
|
1449
|
+
});
|
|
1450
|
+
const style_element = $b8hua$ssr($63f1f8dbcd07d3b0$var$_tmpl$2, $b8hua$ssrHydrationKey(), get_styling); // need to create this after set_styling has been called or else there will be no styling in the SSR'd output
|
|
1451
|
+
if (insert_after_container) container_element.after(style_element);
|
|
1452
|
+
return [container_element, view_more_button_container(), view_less_button_container(), style_element];
|
|
1453
|
+
}
|
|
1454
|
+
var $39ddb986053fb759$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"];
|
|
1455
|
+
function $39ddb986053fb759$export$d41d19e89346fa2(_ref) {
|
|
1456
|
+
let {
|
|
1457
|
+
recommendations_resource_: recommendations_resource_,
|
|
1458
|
+
product_card_template_: product_card_template_,
|
|
1459
|
+
layout_options_: layout_options_,
|
|
1460
|
+
title_: title_,
|
|
1461
|
+
NoResultsFallback_: NoResultsFallback_,
|
|
1462
|
+
placeholderCacheKey_: placeholderCacheKey_
|
|
1463
|
+
} = _ref;
|
|
1464
|
+
const is_showing_something = $b8hua$createMemo(() => {
|
|
1465
|
+
var _recommendations_reso;
|
|
1466
|
+
return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
|
|
1455
1467
|
});
|
|
1468
|
+
const title = $b8hua$createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
|
|
1469
|
+
const num_placeholders_ = () => 20;
|
|
1470
|
+
const slider = [$b8hua$createComponent((0, $b8hua$Show), {
|
|
1471
|
+
get when() {
|
|
1472
|
+
return title();
|
|
1473
|
+
},
|
|
1474
|
+
get children() {
|
|
1475
|
+
return $b8hua$ssr($39ddb986053fb759$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(title()));
|
|
1476
|
+
}
|
|
1477
|
+
}), $b8hua$createComponent((0, $002f09d00aac50b2$export$6649caad96ef8870), {
|
|
1478
|
+
arrow_height_: 25,
|
|
1479
|
+
arrow_width_: 12.5,
|
|
1480
|
+
disable_fading_: true,
|
|
1481
|
+
slider_ref_: slider => {
|
|
1482
|
+
const {
|
|
1483
|
+
insert_here: insert_here,
|
|
1484
|
+
container: container
|
|
1485
|
+
} = slider;
|
|
1486
|
+
const Layout = props => $63f1f8dbcd07d3b0$export$445d8d3f5f706a40(props, insert_here, true);
|
|
1487
|
+
// Do like this, so we don't have to call mergeProps ourselves
|
|
1488
|
+
$b8hua$createComponent(Layout, $b8hua$mergeProps({
|
|
1489
|
+
rows: "all",
|
|
1490
|
+
layout: "slider"
|
|
1491
|
+
}, layout_options_));
|
|
1492
|
+
$b8hua$slider_fractional_factory(0, 0.75).constructor_plugin.call(slider, {}); // enable fractional scrolling
|
|
1493
|
+
insert_here.before($ca55612a53dbbdd2$export$a2cc176055f8f08());
|
|
1494
|
+
container.classList.add("products");
|
|
1495
|
+
},
|
|
1496
|
+
get children() {
|
|
1497
|
+
return $b8hua$createComponent((0, $b8hua$Suspense), {
|
|
1498
|
+
get fallback() {
|
|
1499
|
+
return $bdd80c7862246dc2$export$f33414a4df0afd3f({
|
|
1500
|
+
num_placeholders_: num_placeholders_,
|
|
1501
|
+
product_card_template_: product_card_template_,
|
|
1502
|
+
placeholderCacheKey_: placeholderCacheKey_
|
|
1503
|
+
});
|
|
1504
|
+
},
|
|
1505
|
+
get children() {
|
|
1506
|
+
return (() => {
|
|
1507
|
+
// IIFE to make sure we access both the recommendations_resource and the resources containing the product card rendering results themselves within the Suspense boundary
|
|
1508
|
+
const displays_by_key_ = $2d7bad8684bc7f44$export$7f8bd308237ab5a5($b8hua$createMemo(() => recommendations_resource_() || []));
|
|
1509
|
+
const {
|
|
1510
|
+
renderedDisplays_: renderedDisplays_
|
|
1511
|
+
} = $618bd53ea0a41cd4$export$4a14175d33d81a96({
|
|
1512
|
+
displays_by_key_: displays_by_key_,
|
|
1513
|
+
product_card_template_: product_card_template_
|
|
1514
|
+
});
|
|
1515
|
+
return renderedDisplays_;
|
|
1516
|
+
})();
|
|
1517
|
+
}
|
|
1518
|
+
});
|
|
1519
|
+
}
|
|
1520
|
+
})];
|
|
1456
1521
|
return $b8hua$createComponent((0, $b8hua$Show), {
|
|
1457
1522
|
get when() {
|
|
1458
|
-
return
|
|
1523
|
+
return is_showing_something();
|
|
1459
1524
|
},
|
|
1460
|
-
|
|
1525
|
+
get fallback() {
|
|
1526
|
+
return NoResultsFallback_ === null || NoResultsFallback_ === void 0 ? void 0 : NoResultsFallback_();
|
|
1527
|
+
},
|
|
1528
|
+
children: slider
|
|
1461
1529
|
});
|
|
1462
1530
|
}
|
|
1463
|
-
function $
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
const $4df489344a0f97c7$var$backupSizeSignal = /*@__PURE__*/$b8hua$createSignal();
|
|
1473
|
-
const $4df489344a0f97c7$export$d7b7ab832c20e2f4 = /*@__PURE__*/Symbol("ShopifyContainedImage");
|
|
1474
|
-
function $4df489344a0f97c7$export$e4b984597b71e989(props) {
|
|
1475
|
-
const context = $5441862cd2f5e111$export$8d0c4fdbb05a2f2e();
|
|
1476
|
-
if (context && !context[$4df489344a0f97c7$export$d7b7ab832c20e2f4])
|
|
1477
|
-
// create a signal that's the same for all items in this listing
|
|
1478
|
-
context[$4df489344a0f97c7$export$d7b7ab832c20e2f4] = $b8hua$createSignal();
|
|
1479
|
-
const [currentImageSize, setCurrentImageSize] = (context === null || context === void 0 ? void 0 : context[$4df489344a0f97c7$export$d7b7ab832c20e2f4]) || $4df489344a0f97c7$var$backupSizeSignal; // use global fallback signal (might lead to blurry images) if no context is available
|
|
1480
|
-
const [mostPrevalentAspectRatio] = context ? context[(0, $56047603f9d212b6$export$6066eb417ed2e9f7)] || (context[(0, $56047603f9d212b6$export$6066eb417ed2e9f7)] = $b8hua$createSignal()) : [];
|
|
1481
|
-
const container = $801e8845d3fa3653$export$94026ee33dbabc26({
|
|
1482
|
-
// Write getters manually instead of using JSX, so we can do more complex logic in the aspectRatio getter without increasing bundle size
|
|
1483
|
-
get class() {
|
|
1484
|
-
return props.class;
|
|
1485
|
-
},
|
|
1486
|
-
get aspectRatio() {
|
|
1487
|
-
if (props.autoAdjustAspectRatio) {
|
|
1488
|
-
const targetRatio = mostPrevalentAspectRatio === null || mostPrevalentAspectRatio === void 0 ? void 0 : mostPrevalentAspectRatio();
|
|
1489
|
-
if (targetRatio != undefined) return "var(".concat((0, $5eaa00b951637e96$export$8a2234b5b1a5ebd4), ", ").concat(targetRatio, ")");
|
|
1531
|
+
function $83e8cf2c0b87a58a$export$23fca46f3143581f(component, error_message) {
|
|
1532
|
+
const component_in_error_boundary = do_with_elements => {
|
|
1533
|
+
const error_boundary_wrapped = $74777e8fe65b3dcb$export$b69d0d92862de18b({
|
|
1534
|
+
severity_: "error",
|
|
1535
|
+
message_: error_message,
|
|
1536
|
+
get children() {
|
|
1537
|
+
const elements = component();
|
|
1538
|
+
do_with_elements === null || do_with_elements === void 0 || do_with_elements(elements);
|
|
1539
|
+
return elements;
|
|
1490
1540
|
}
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1541
|
+
});
|
|
1542
|
+
// This might return an accessor, in that case we need to "unwrap" it since our SDK consumers expect HTML elements or arrays thereof
|
|
1543
|
+
if (typeof error_boundary_wrapped === "function")
|
|
1544
|
+
// @ts-ignore
|
|
1545
|
+
return error_boundary_wrapped();
|
|
1546
|
+
// On the server it returns a string, so we just return that
|
|
1547
|
+
return error_boundary_wrapped;
|
|
1548
|
+
};
|
|
1494
1549
|
const owner = $b8hua$getOwner();
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
$b8hua$queueMacroTask(() => setCurrentImageSize()); // unset the size accessor next event loop iteration, so that all onCleanup's have time to run, since the effects run more aggressively and can create a size accessor with a cleaned up owner otherwise
|
|
1508
|
-
});
|
|
1509
|
-
|
|
1510
|
-
$b8hua$insert(container, $b8hua$createComponent((0, $56047603f9d212b6$export$6e5611bc7e57e477), $b8hua$mergeProps1({
|
|
1511
|
-
get size() {
|
|
1512
|
-
return $b8hua$createMemo(() => {
|
|
1513
|
-
var _currentImageSize;
|
|
1514
|
-
return ((_currentImageSize = currentImageSize()) === null || _currentImageSize === void 0 ? void 0 : _currentImageSize()) || 0;
|
|
1550
|
+
if (owner == null) return $b8hua$createRoot(dispose => {
|
|
1551
|
+
// if we're not already run in a root, create a root and automatically dispose it when the first returned element is removed from the DOM
|
|
1552
|
+
return component_in_error_boundary(elements => {
|
|
1553
|
+
const have_multiple = Array.isArray(elements);
|
|
1554
|
+
if (have_multiple ? !(elements !== null && elements !== void 0 && elements.length) : !elements) return;
|
|
1555
|
+
(0, $b8hua$observer).onremoved(have_multiple ? elements[0] : elements, _ref => {
|
|
1556
|
+
let {
|
|
1557
|
+
element: element
|
|
1558
|
+
} = _ref;
|
|
1559
|
+
if (document.documentElement.contains(element)) return; // If element has instantly been re-inserted, don't dispose
|
|
1560
|
+
// See https://depictaiworkspace.slack.com/archives/C050GHEPBTR/p1695809102791259?thread_ts=1695106805.459729&cid=C050GHEPBTR
|
|
1561
|
+
dispose();
|
|
1515
1562
|
});
|
|
1516
|
-
}
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
}, () => props.imgProps, {
|
|
1521
|
-
get style() {
|
|
1522
|
-
var _props$imgProps;
|
|
1523
|
-
return (_props$imgProps = props.imgProps) === null || _props$imgProps === void 0 ? void 0 : _props$imgProps.style;
|
|
1524
|
-
}
|
|
1525
|
-
})));
|
|
1526
|
-
return container;
|
|
1527
|
-
}
|
|
1528
|
-
const $98688279b9059f50$var$customUrls = (url, width) => {
|
|
1529
|
-
var _url$startsWith;
|
|
1530
|
-
if (url !== null && url !== void 0 && (_url$startsWith = url.startsWith) !== null && _url$startsWith !== void 0 && _url$startsWith.call(url, "https://cdn.shopify.com"))
|
|
1531
|
-
// The shopify image resizing CDN blocks Cloudflare's image resizer. It's possible that we can't detect shopify image URLs sometimes because they go to the merchant's domain,
|
|
1532
|
-
// but it seems like the URLs returned by the Depict API always goes to the cdn.shopify.com version of an image, so this simple workaround works.
|
|
1533
|
-
return $56047603f9d212b6$export$1d6267828870adda(url, width);
|
|
1534
|
-
// Use cloudflare image resizer instead of img.depict.ai because it's a lot faster (and also auto-chooses other formats if webp is not supported)
|
|
1535
|
-
return "https://app.depict.ai/cdn-cgi/image/width=".concat(width, ",format=auto/").concat(url);
|
|
1536
|
-
};
|
|
1537
|
-
function $98688279b9059f50$export$9d4a4b669b1929ab(props) {
|
|
1538
|
-
return $b8hua$createComponent((0, $4df489344a0f97c7$export$e4b984597b71e989), $b8hua$mergeProps1(props, {
|
|
1539
|
-
get imgProps() {
|
|
1540
|
-
return {
|
|
1541
|
-
...props.imgProps,
|
|
1542
|
-
customUrls: $98688279b9059f50$var$customUrls
|
|
1543
|
-
};
|
|
1544
|
-
}
|
|
1545
|
-
}));
|
|
1546
|
-
}
|
|
1547
|
-
function $98688279b9059f50$export$140423fa4bfb6d63(props) {
|
|
1548
|
-
return $b8hua$createComponent((0, $56047603f9d212b6$export$6e5611bc7e57e477), $b8hua$mergeProps1(props, {
|
|
1549
|
-
customUrls: $98688279b9059f50$var$customUrls
|
|
1550
|
-
}));
|
|
1563
|
+
});
|
|
1564
|
+
});else
|
|
1565
|
+
// we're already in a root so cleanups are handled
|
|
1566
|
+
return component_in_error_boundary();
|
|
1551
1567
|
}
|
|
1552
1568
|
function $60ec7a29849d81db$export$a71e92cfbb498adc(props) {
|
|
1553
1569
|
return $b8hua$createMemo(() => {
|
|
@@ -1599,7 +1615,7 @@ function $f84b097e079b0a33$export$b73ed90f0ee50dc3(_ref) {
|
|
|
1599
1615
|
var _variantToUse5;
|
|
1600
1616
|
return (_variantToUse5 = variantToUse()) === null || _variantToUse5 === void 0 ? void 0 : _variantToUse5.title;
|
|
1601
1617
|
});
|
|
1602
|
-
return $b8hua$ssrElement("a", $b8hua$
|
|
1618
|
+
return $b8hua$ssrElement("a", $b8hua$mergeProps({
|
|
1603
1619
|
"class": "look-item"
|
|
1604
1620
|
}, () => enableLink() ? {
|
|
1605
1621
|
href: href()
|
|
@@ -1643,7 +1659,7 @@ function $f84b097e079b0a33$export$b73ed90f0ee50dc3(_ref) {
|
|
|
1643
1659
|
return (animationEffectExists() ? isExpandedThrottledByOurEffectRun() : userWantsExpanded()) || animationIsRunning();
|
|
1644
1660
|
},
|
|
1645
1661
|
get children() {
|
|
1646
|
-
return $b8hua$ssr($f84b097e079b0a33$var$_tmpl$3, $b8hua$ssrHydrationKey(), $b8hua$ssrElement("span", $b8hua$
|
|
1662
|
+
return $b8hua$ssr($f84b097e079b0a33$var$_tmpl$3, $b8hua$ssrHydrationKey(), $b8hua$ssrElement("span", $b8hua$mergeProps({
|
|
1647
1663
|
"class": "d-title line-clamp"
|
|
1648
1664
|
}, () => title() && {
|
|
1649
1665
|
title: title()
|
|
@@ -1739,7 +1755,7 @@ async function $c4103af154850e50$var$checkIfIsAffectedByChromeBug326498383() {
|
|
|
1739
1755
|
const waitAFrame = () => new Promise(r => requestAnimationFrame(() => requestAnimationFrame(r)));
|
|
1740
1756
|
const timeoutPromise = new Promise(r => {
|
|
1741
1757
|
resolveTimeoutPromise = r;
|
|
1742
|
-
setTimeout($b8hua$
|
|
1758
|
+
setTimeout($b8hua$catchify(() => {
|
|
1743
1759
|
r();
|
|
1744
1760
|
div.remove();
|
|
1745
1761
|
}), 500);
|
|
@@ -1824,7 +1840,7 @@ function $275d06a183ca0a29$export$ebf0b1d4f90c09ae(_ref) {
|
|
|
1824
1840
|
priceFormatting_: priceFormatting_,
|
|
1825
1841
|
outerRef_: el => $b8hua$createEffect(() => {
|
|
1826
1842
|
if (index !== 0) return;
|
|
1827
|
-
const resizeObserver = new ResizeObserver($b8hua$
|
|
1843
|
+
const resizeObserver = new ResizeObserver($b8hua$catchify(records => setLookItemHeight(records.at(-1).contentRect.height)));
|
|
1828
1844
|
resizeObserver.observe(el);
|
|
1829
1845
|
$b8hua$onCleanup(() => resizeObserver.disconnect());
|
|
1830
1846
|
})
|
|
@@ -1843,7 +1859,7 @@ function $275d06a183ca0a29$var$scrollingFunctionForChrome(element, targetScrollY
|
|
|
1843
1859
|
let start;
|
|
1844
1860
|
const startingY = element.scrollTop;
|
|
1845
1861
|
const diff = targetScrollY - startingY;
|
|
1846
|
-
const step = $b8hua$
|
|
1862
|
+
const step = $b8hua$catchify(timestamp => {
|
|
1847
1863
|
if (!start) start = timestamp;
|
|
1848
1864
|
// Elapsed milliseconds since start of scrolling.
|
|
1849
1865
|
const time = timestamp - start;
|
|
@@ -1875,7 +1891,7 @@ function $22dd375b476673e2$export$44809a8a3e867e30(_ref) {
|
|
|
1875
1891
|
const index = $1e69163caedaab4e$export$e3faf4d95300054f();
|
|
1876
1892
|
const [containerWidth_, setContainerWidth] = $b8hua$createSignal();
|
|
1877
1893
|
const [containerHeight_, setContainerHeight] = $b8hua$createSignal();
|
|
1878
|
-
const clickHandler = $b8hua$
|
|
1894
|
+
const clickHandler = $b8hua$catchify(_ref2 => {
|
|
1879
1895
|
let {
|
|
1880
1896
|
target: target
|
|
1881
1897
|
} = _ref2;
|
|
@@ -2005,7 +2021,7 @@ class $ac571292d606f30b$export$7e1297a3a19f10d8 {
|
|
|
2005
2021
|
* @param is_replace_ if you want to replace the current URL in history instead of pushing a new one
|
|
2006
2022
|
* @param listing_id_ If you are navigating to a category and know the listing_id of, please provide it. This is for making a better devEx in js-ui
|
|
2007
2023
|
*/
|
|
2008
|
-
go_to_: $b8hua$
|
|
2024
|
+
go_to_: $b8hua$catchify(async _ref => {
|
|
2009
2025
|
let {
|
|
2010
2026
|
new_url_: raw_new_url,
|
|
2011
2027
|
event_: event_,
|
|
@@ -2119,7 +2135,7 @@ function $e3efeb558d952696$export$7da560f849543dff(_ref) {
|
|
|
2119
2135
|
get children() {
|
|
2120
2136
|
return $b8hua$ssr($e3efeb558d952696$var$_tmpl$2, $b8hua$ssrHydrationKey(), $b8hua$escape(title()));
|
|
2121
2137
|
}
|
|
2122
|
-
}), $b8hua$ssr($e3efeb558d952696$var$_tmpl$3, $b8hua$ssrHydrationKey(), $b8hua$escape($ca55612a53dbbdd2$export$a2cc176055f8f08()), $b8hua$escape($b8hua$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $b8hua$
|
|
2138
|
+
}), $b8hua$ssr($e3efeb558d952696$var$_tmpl$3, $b8hua$ssrHydrationKey(), $b8hua$escape($ca55612a53dbbdd2$export$a2cc176055f8f08()), $b8hua$escape($b8hua$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $b8hua$mergeProps({
|
|
2123
2139
|
get rows() {
|
|
2124
2140
|
return rows_object_();
|
|
2125
2141
|
},
|
|
@@ -2250,7 +2266,7 @@ function $bb34cd283e904784$export$2c9f9bf2092486aa(props) {
|
|
|
2250
2266
|
return $b8hua$createComponent((0, $39ddb986053fb759$export$d41d19e89346fa2), sharedOptions);
|
|
2251
2267
|
},
|
|
2252
2268
|
get children() {
|
|
2253
|
-
return $b8hua$createComponent((0, $e3efeb558d952696$export$7da560f849543dff), $b8hua$
|
|
2269
|
+
return $b8hua$createComponent((0, $e3efeb558d952696$export$7da560f849543dff), $b8hua$mergeProps(sharedOptions, {
|
|
2254
2270
|
view_more_button_: () => {
|
|
2255
2271
|
var _props$gridOptions_;
|
|
2256
2272
|
return (_props$gridOptions_ = props.gridOptions_) === null || _props$gridOptions_ === void 0 ? void 0 : _props$gridOptions_.view_more_button;
|
|
@@ -2309,7 +2325,7 @@ async function $bb34cd283e904784$var$runDisplayTransformersForLooks(baseData, li
|
|
|
2309
2325
|
}) : displaysToTransform;
|
|
2310
2326
|
const transformedListings = await transformedListingsPromise;
|
|
2311
2327
|
const transformedDisplayById = Object.fromEntries(transformedProducts.map(display => [$6a4c7ed6d005505c$export$548d053aba053d79(display), display]));
|
|
2312
|
-
return transformedListings.map(listing => $b8hua$
|
|
2328
|
+
return transformedListings.map(listing => $b8hua$mergeProps1(listing, {
|
|
2313
2329
|
// use mergeProps because in preview browser we add getters in this object, that would be called too early otherwise
|
|
2314
2330
|
displays: (displayIdsPerListingId[listing.listing_id] || []).map(displayId => transformedDisplayById[displayId]).filter(v => v)
|
|
2315
2331
|
}));
|
|
@@ -2548,7 +2564,7 @@ function $f7414b949aeabc90$export$62f101a8aa597bf8(_ref) {
|
|
|
2548
2564
|
// don't wait if it's the first request
|
|
2549
2565
|
write_current_instant_query(value);
|
|
2550
2566
|
clearTimeout(timeout);
|
|
2551
|
-
timeout = setTimeout($b8hua$
|
|
2567
|
+
timeout = setTimeout($b8hua$catchify(() => write_current_instant_query(value)), 250);
|
|
2552
2568
|
});
|
|
2553
2569
|
const [search_results] = $b8hua$createResource($b8hua$createMemo(() => ({
|
|
2554
2570
|
// <-- key order important, see comment below
|
|
@@ -2556,7 +2572,7 @@ function $f7414b949aeabc90$export$62f101a8aa597bf8(_ref) {
|
|
|
2556
2572
|
market: market_(),
|
|
2557
2573
|
locale: i18n_.backend_locale_(),
|
|
2558
2574
|
query: read_current_instant_query()
|
|
2559
|
-
})), $b8hua$
|
|
2575
|
+
})), $b8hua$catchify(async variable_data => {
|
|
2560
2576
|
return depict_api_.query({
|
|
2561
2577
|
// here it is (unfortunately) important that the keys in the object are in the same order as in SearchPage.tsx, because when JSON-encoding them to compare for caching the strings will be different otherwise
|
|
2562
2578
|
limit: $b8hua$untrack(has_sort_or_filters_) ? max_cards : min_products_to_fetch_,
|
|
@@ -2672,7 +2688,7 @@ function $a09bb7c652acf957$export$3340fdd8259bd4fd(_ref) {
|
|
|
2672
2688
|
if (process.env.GA === "false") return;
|
|
2673
2689
|
let debounce_timeout;
|
|
2674
2690
|
const stop_timeout = () => clearTimeout(debounce_timeout);
|
|
2675
|
-
const send_to_ga = $b8hua$
|
|
2691
|
+
const send_to_ga = $b8hua$catchify(() => {
|
|
2676
2692
|
const fake_url = new URL(location.href);
|
|
2677
2693
|
const {
|
|
2678
2694
|
searchParams: searchParams
|
|
@@ -2685,12 +2701,12 @@ function $a09bb7c652acf957$export$3340fdd8259bd4fd(_ref) {
|
|
|
2685
2701
|
$b8hua$onCleanup(() => {
|
|
2686
2702
|
setTimeout(
|
|
2687
2703
|
// do it next event loop because search_field_value_ is wrong this one and search_query might be too because we want the old value to be put into the history entry and a framework like NextJS might take some time to navigate
|
|
2688
|
-
$b8hua$
|
|
2704
|
+
$b8hua$catchify(() => {
|
|
2689
2705
|
if ($b8hua$untrack(get_search_query_) === $b8hua$untrack(get_search_field_value_)) stop_timeout();
|
|
2690
2706
|
}));
|
|
2691
2707
|
});
|
|
2692
2708
|
let first_call = true;
|
|
2693
|
-
$b8hua$createEffect($b8hua$
|
|
2709
|
+
$b8hua$createEffect($b8hua$catchify(() => {
|
|
2694
2710
|
get_search_field_value_();
|
|
2695
2711
|
if (first_call) {
|
|
2696
2712
|
// we only want to do stuff when it changes
|
|
@@ -2710,7 +2726,7 @@ function $e8776b492383c292$export$91c3b6774e8be0f5(_ref) {
|
|
|
2710
2726
|
const [get_current_href, set_current_href] = $b8hua$createSignal(location.href);
|
|
2711
2727
|
const [exit_iterable, exitable_iterable] = $b8hua$make_asyncIterable_exiter((0, $b8hua$href_change_ipns));
|
|
2712
2728
|
$b8hua$onCleanup(exit_iterable);
|
|
2713
|
-
$b8hua$
|
|
2729
|
+
$b8hua$catchify(async () => {
|
|
2714
2730
|
for await (const href of exitable_iterable)
|
|
2715
2731
|
// use native links so ppl can cmdclick/right click and open in new tab and see target URL
|
|
2716
2732
|
set_current_href(href);
|
|
@@ -2729,7 +2745,7 @@ function $6d95ef50ee01d5a1$export$5d2caaa6b530761c() {
|
|
|
2729
2745
|
var $9783d437ad61594c$var$_tmpl$ = '<path d="M11.669 10.531l9.156-9.156a.78.78 0 0 0 .237-.569c0-.221-.079-.412-.237-.569A.8.8 0 0 0 20.24 0a.77.77 0 0 0-.569.237l-9.14 9.14-9.14-9.14A.79.79 0 0 0 .807 0a.77.77 0 0 0-.569.237A.78.78 0 0 0 0 .807a.77.77 0 0 0 .237.569l9.156 9.156-9.156 9.14c-.159.157-.237.349-.237.569s.079.412.237.569c.085.085.174.148.268.19a1.095 1.095 0 0 0 .316.048.894.894 0 0 0 .285-.048.84.84 0 0 0 .285-.19l9.139-9.14 9.14 9.14a.894.894 0 0 0 .268.19 1.049 1.049 0 0 0 .301.048.941.941 0 0 0 .301-.048.84.84 0 0 0 .285-.19.78.78 0 0 0 .237-.569c0-.221-.079-.412-.237-.569z"></path>';
|
|
2730
2746
|
function $9783d437ad61594c$export$3b621d86b1566b2() {
|
|
2731
2747
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2732
|
-
return $b8hua$ssrElement("svg", $b8hua$
|
|
2748
|
+
return $b8hua$ssrElement("svg", $b8hua$mergeProps({
|
|
2733
2749
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2734
2750
|
width: "21.064",
|
|
2735
2751
|
height: "21.064",
|
|
@@ -2835,7 +2851,7 @@ function $02b6641aa50ce528$export$ba17c5b7e6dda39f(_ref) {
|
|
|
2835
2851
|
var $ef0f18a578b32578$var$_tmpl$ = '<path d="M19.811 20.174l-6.234-6.809a7.96 7.96 0 0 0 .923-1.179c.274-.424.502-.865.687-1.323a8.04 8.04 0 0 0 .42-1.436 7.88 7.88 0 0 0 .144-1.507c0-.526-.051-1.042-.154-1.548-.096-.506-.243-.995-.441-1.466s-.441-.919-.728-1.343a8.28 8.28 0 0 0-.984-1.21 7.86 7.86 0 0 0-1.2-.984A7.56 7.56 0 0 0 10.89.651C10.418.453 9.929.302 9.423.2S8.401.046 7.875.046 6.833.097 6.327.2 5.332.453 4.86.651a7.56 7.56 0 0 0-1.354.718c-.431.287-.831.615-1.2.984a8.28 8.28 0 0 0-.984 1.21 7.73 7.73 0 0 0-.728 1.343c-.198.472-.349.96-.451 1.466A8.31 8.31 0 0 0 0 7.921a8.31 8.31 0 0 0 .144 1.548c.103.506.253.995.451 1.466a8.08 8.08 0 0 0 .728 1.354 7.86 7.86 0 0 0 .984 1.2 7.54 7.54 0 0 0 1.2.995c.431.287.882.53 1.354.728.472.191.96.338 1.466.441a8.31 8.31 0 0 0 1.548.144c.451 0 .896-.038 1.333-.113a7.83 7.83 0 0 0 1.282-.328 7.55 7.55 0 0 0 1.2-.533 8.08 8.08 0 0 0 1.107-.749l6.245 6.809a.45.45 0 0 0 .174.123.55.55 0 0 0 .205.041.61.61 0 0 0 .195-.031c.061-.021.116-.055.164-.102.109-.096.164-.219.164-.369.007-.144-.038-.267-.133-.369zM1.046 7.921c0-.937.178-1.818.533-2.646.362-.834.851-1.559 1.466-2.174.622-.615 1.347-1.101 2.174-1.456.827-.362 1.712-.543 2.656-.543s1.829.181 2.656.543c.827.355 1.548.841 2.164 1.456.622.615 1.111 1.34 1.466 2.174a6.52 6.52 0 0 1 .543 2.646c0 .943-.181 1.829-.543 2.656a6.89 6.89 0 0 1-1.466 2.174c-.615.615-1.336 1.104-2.164 1.466-.827.356-1.712.533-2.656.533s-1.829-.178-2.656-.533c-.827-.362-1.552-.851-2.174-1.466-.615-.622-1.104-1.347-1.466-2.174-.355-.827-.533-1.712-.533-2.656z"></path>';
|
|
2836
2852
|
function $ef0f18a578b32578$export$82eafebb825fc23f() {
|
|
2837
2853
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2838
|
-
return $b8hua$ssrElement("svg", $b8hua$
|
|
2854
|
+
return $b8hua$ssrElement("svg", $b8hua$mergeProps({
|
|
2839
2855
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2840
2856
|
width: "20",
|
|
2841
2857
|
height: "22",
|
|
@@ -2845,7 +2861,7 @@ function $ef0f18a578b32578$export$82eafebb825fc23f() {
|
|
|
2845
2861
|
var $3c5e15c6ee4227a9$var$_tmpl$ = '<path d="M56 26.455a13.71 13.71 0 0 0-9.578 3.967A13.71 13.71 0 0 0 42.455 40v176a13.71 13.71 0 0 0 3.967 9.578A13.71 13.71 0 0 0 56 229.545h144A13.71 13.71 0 0 0 213.545 216V88a2.456 2.456 0 0 1 0-.002c.001-1.452-.597-2.895-1.623-3.922l-55.998-55.998a5.61 5.61 0 0 0-3.922-1.623 2.456 2.456 0 0 1-.002 0zm0 11.09h88A2.456 2.456 0 0 1 146.455 40v48c0 2.903 2.642 5.545 5.545 5.545h48A2.456 2.456 0 0 1 202.455 96v120a2.456 2.456 0 0 1-2.455 2.455H56A2.456 2.456 0 0 1 53.545 216V40A2.456 2.456 0 0 1 56 37.545zm103.061 11.498a2.456 2.456 0 0 1 2.676.531l28.689 28.689a2.456 2.456 0 0 1-1.736 4.191H160A2.456 2.456 0 0 1 157.545 80V51.311a2.456 2.456 0 0 1 1.516-2.268zM96 130.455c-2.903 0-5.545 2.642-5.545 5.545s2.642 5.545 5.545 5.545h64c2.903 0 5.545-2.642 5.545-5.545s-2.642-5.545-5.545-5.545zm0 32c-2.903 0-5.545 2.642-5.545 5.545s2.642 5.545 5.545 5.545h64c2.903 0 5.545-2.642 5.545-5.545s-2.642-5.545-5.545-5.545z"></path>';
|
|
2846
2862
|
function $3c5e15c6ee4227a9$export$605674723bcc715c() {
|
|
2847
2863
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2848
|
-
return $b8hua$ssrElement("svg", $b8hua$
|
|
2864
|
+
return $b8hua$ssrElement("svg", $b8hua$mergeProps({
|
|
2849
2865
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2850
2866
|
width: "32",
|
|
2851
2867
|
height: "32",
|
|
@@ -3124,7 +3140,7 @@ function $75e33704f2a83029$var$actual_navigation_working_on_fake_data(_ref2) {
|
|
|
3124
3140
|
if (!$b8hua$untrack(() => read_updating_blocked())) previous_value = sfv;
|
|
3125
3141
|
});
|
|
3126
3142
|
const owner = $b8hua$getOwner();
|
|
3127
|
-
const handler = $b8hua$
|
|
3143
|
+
const handler = $b8hua$catchify(_ref3 => {
|
|
3128
3144
|
let {
|
|
3129
3145
|
keyCode: keyCode
|
|
3130
3146
|
} = _ref3;
|
|
@@ -3191,7 +3207,7 @@ function $75e33704f2a83029$var$actual_navigation_working_on_fake_data(_ref2) {
|
|
|
3191
3207
|
const el = element_();
|
|
3192
3208
|
if (!el) return;
|
|
3193
3209
|
el.addEventListener("keyup", handler);
|
|
3194
|
-
$b8hua$onCleanup($b8hua$
|
|
3210
|
+
$b8hua$onCleanup($b8hua$catchify(() => el.removeEventListener("keyup", handler)));
|
|
3195
3211
|
});
|
|
3196
3212
|
}
|
|
3197
3213
|
function $c4dee1ef44de29ca$export$af0124069c150252(_ref) {
|
|
@@ -3404,7 +3420,7 @@ let $c3820807ac1e6fd7$export$44dad306455dddf;
|
|
|
3404
3420
|
|
|
3405
3421
|
function $fc830a7ee59416ef$export$ebdc3711f7e02ccd(what_to_watch) {
|
|
3406
3422
|
const [width, setWidth] = $b8hua$createSignal();
|
|
3407
|
-
const resizeObserver = new ResizeObserver($b8hua$
|
|
3423
|
+
const resizeObserver = new ResizeObserver($b8hua$catchify(records => {
|
|
3408
3424
|
for (let j = 0; j < records.length; j++) {
|
|
3409
3425
|
var _records$j$borderBoxS, _records$j$borderBoxS2, _records$j$borderBoxS3;
|
|
3410
3426
|
const width = (_records$j$borderBoxS = (_records$j$borderBoxS2 = records[j].borderBoxSize) === null || _records$j$borderBoxS2 === void 0 ? void 0 : (_records$j$borderBoxS3 = _records$j$borderBoxS2[0]) === null || _records$j$borderBoxS3 === void 0 ? void 0 : _records$j$borderBoxS3.inlineSize) !== null && _records$j$borderBoxS !== void 0 ? _records$j$borderBoxS : what_to_watch.getBoundingClientRect().width;
|
|
@@ -3417,7 +3433,7 @@ function $fc830a7ee59416ef$export$ebdc3711f7e02ccd(what_to_watch) {
|
|
|
3417
3433
|
let {
|
|
3418
3434
|
element: element
|
|
3419
3435
|
} = _ref;
|
|
3420
|
-
return requestAnimationFrame($b8hua$
|
|
3436
|
+
return requestAnimationFrame($b8hua$catchify(() => {
|
|
3421
3437
|
const current_size = what_to_watch.getBoundingClientRect().width;
|
|
3422
3438
|
if (current_size)
|
|
3423
3439
|
// If element has size, set signal to that. ResizeObserver only triggers when the content is visible in some cases, but it might already have a size. This reduces size filter expanding animation jank in chrome.
|
|
@@ -3434,7 +3450,7 @@ function $fc830a7ee59416ef$export$ebdc3711f7e02ccd(what_to_watch) {
|
|
|
3434
3450
|
var $83c36ed4520d0335$var$_tmpl$ = '<path fill-rule="evenodd" d="M9.563 3.438c-3.107 0-5.625 2.518-5.625 5.625s2.518 5.625 5.625 5.625 5.625-2.518 5.625-5.625-2.518-5.625-5.625-5.625zm-7.5 5.625a7.5 7.5 0 1 1 15 0c0 1.733-.588 3.329-1.575 4.599l3.176 3.176a.94.94 0 0 1 0 1.326.94.94 0 0 1-1.326 0l-3.176-3.176a7.47 7.47 0 0 1-4.599 1.575 7.5 7.5 0 0 1-7.5-7.5z" fill="#0f0f0f"></path>';
|
|
3435
3451
|
function $83c36ed4520d0335$export$f7658c347b037c3f() {
|
|
3436
3452
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3437
|
-
return $b8hua$ssrElement("svg", $b8hua$
|
|
3453
|
+
return $b8hua$ssrElement("svg", $b8hua$mergeProps({
|
|
3438
3454
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3439
3455
|
width: "21",
|
|
3440
3456
|
height: "20",
|
|
@@ -3464,7 +3480,7 @@ function $584c06c09cf4609d$export$b94867ecbd698f21(_ref) {
|
|
|
3464
3480
|
let input_element;
|
|
3465
3481
|
// This is the div where we recommend (and ourselves do) attach the event listener to that opens the search modal.
|
|
3466
3482
|
let field_div;
|
|
3467
|
-
$b8hua$createEffect($b8hua$
|
|
3483
|
+
$b8hua$createEffect($b8hua$catchify(async () => {
|
|
3468
3484
|
if (disabled_) return;
|
|
3469
3485
|
// we aren't in DOM yet unfortunately, wouldn't even be with onMount
|
|
3470
3486
|
await (0, $b8hua$observer).wait_for_element(input_element);
|
|
@@ -3482,7 +3498,7 @@ function $584c06c09cf4609d$export$b94867ecbd698f21(_ref) {
|
|
|
3482
3498
|
const BackButton = () => $b8hua$createComponent((0, $b8hua$Show), {
|
|
3483
3499
|
when: on_back_,
|
|
3484
3500
|
get children() {
|
|
3485
|
-
return $b8hua$ssrElement("button", $b8hua$
|
|
3501
|
+
return $b8hua$ssrElement("button", $b8hua$mergeProps({
|
|
3486
3502
|
"class": "back",
|
|
3487
3503
|
type: "button",
|
|
3488
3504
|
get ["aria-label"]() {
|
|
@@ -3496,7 +3512,7 @@ function $584c06c09cf4609d$export$b94867ecbd698f21(_ref) {
|
|
|
3496
3512
|
}), () => isNewModal ? $b8hua$escape($b8hua$createComponent((0, $9783d437ad61594c$export$3b621d86b1566b2), {})) : $b8hua$escape($b8hua$createComponent(BackIcon_, {})), true);
|
|
3497
3513
|
}
|
|
3498
3514
|
});
|
|
3499
|
-
const ClearButton = () => $b8hua$ssrElement("button", $b8hua$
|
|
3515
|
+
const ClearButton = () => $b8hua$ssrElement("button", $b8hua$mergeProps({
|
|
3500
3516
|
type: "button",
|
|
3501
3517
|
get ["class"]() {
|
|
3502
3518
|
return "clear ".concat(searchFieldEmpty() ? "empty" : "");
|
|
@@ -3544,7 +3560,7 @@ function $e56d241d0f33d459$export$fe334901e8bebd57() {
|
|
|
3544
3560
|
offset: 0
|
|
3545
3561
|
}, 1);
|
|
3546
3562
|
animation.pause();
|
|
3547
|
-
const fn = $b8hua$
|
|
3563
|
+
const fn = $b8hua$catchify(animation.play.bind(animation));
|
|
3548
3564
|
cleanup_fns.push(fn);
|
|
3549
3565
|
$b8hua$onCleanup(fn);
|
|
3550
3566
|
} catch (e) {
|
|
@@ -3555,7 +3571,7 @@ function $e56d241d0f33d459$export$fe334901e8bebd57() {
|
|
|
3555
3571
|
const style = element.style;
|
|
3556
3572
|
const original_value = style.overflow;
|
|
3557
3573
|
style.overflow = "hidden";
|
|
3558
|
-
const fn = $b8hua$
|
|
3574
|
+
const fn = $b8hua$catchify(() => style.overflow = original_value);
|
|
3559
3575
|
cleanup_fns.push(fn);
|
|
3560
3576
|
$b8hua$onCleanup(fn);
|
|
3561
3577
|
}
|
|
@@ -3578,8 +3594,8 @@ function $a82a41ab7188eda2$export$93d9bfd0c9c1a5b8(close_modal, search_query_url
|
|
|
3578
3594
|
let set_initial_values = false;
|
|
3579
3595
|
let old_pathname;
|
|
3580
3596
|
let old_param_value;
|
|
3581
|
-
$b8hua$onCleanup($b8hua$
|
|
3582
|
-
$b8hua$
|
|
3597
|
+
$b8hua$onCleanup($b8hua$catchify(exit_iterable));
|
|
3598
|
+
$b8hua$catchify(async () => {
|
|
3583
3599
|
for await (const href of exitable_iterable) {
|
|
3584
3600
|
const u_o = new URL(href);
|
|
3585
3601
|
const new_pathname = u_o.pathname;
|
|
@@ -3651,7 +3667,7 @@ function $40411f2ec772c376$var$RawClassicSearchModal(_ref) {
|
|
|
3651
3667
|
} = alignmentSignals_ || {};
|
|
3652
3668
|
const [bodyAlignmentStyle] = bodyAlignmentSignal;
|
|
3653
3669
|
const [get_modal_search_results, set_modal_search_results_] = $b8hua$createSignal();
|
|
3654
|
-
const close_on_escape_handler = $b8hua$
|
|
3670
|
+
const close_on_escape_handler = $b8hua$catchify(_ref2 => {
|
|
3655
3671
|
let {
|
|
3656
3672
|
key: key
|
|
3657
3673
|
} = _ref2;
|
|
@@ -3678,7 +3694,7 @@ function $40411f2ec772c376$var$RawClassicSearchModal(_ref) {
|
|
|
3678
3694
|
if (disable_scrolling_) $e56d241d0f33d459$export$fe334901e8bebd57();
|
|
3679
3695
|
$a82a41ab7188eda2$export$93d9bfd0c9c1a5b8(close_modal_, search_query_url_param_name_);
|
|
3680
3696
|
window.addEventListener("keydown", close_on_escape_handler);
|
|
3681
|
-
$b8hua$onCleanup($b8hua$
|
|
3697
|
+
$b8hua$onCleanup($b8hua$catchify(() => window.removeEventListener("keydown", close_on_escape_handler)));
|
|
3682
3698
|
if (closing_animation_) register_closing_animation_(closing_animation_);
|
|
3683
3699
|
$a09bb7c652acf957$export$3340fdd8259bd4fd({
|
|
3684
3700
|
get_search_field_value_: get_search_field_value_,
|
|
@@ -4065,7 +4081,7 @@ function $26db6925469636a4$export$67152d26d4f56ee8(_ref) {
|
|
|
4065
4081
|
var _listing_;
|
|
4066
4082
|
return (_listing_ = listing_()) === null || _listing_ === void 0 ? void 0 : _listing_.page_url;
|
|
4067
4083
|
}); // <- could be made reactive getter created in displayTransformers, read it in memo here since it might create computations (for example in the preview-brower), and there's no owner in the onClick handler
|
|
4068
|
-
const LinkToListing = props => $b8hua$ssrElement("a", $b8hua$
|
|
4084
|
+
const LinkToListing = props => $b8hua$ssrElement("a", $b8hua$mergeProps(props, {
|
|
4069
4085
|
get href() {
|
|
4070
4086
|
return href();
|
|
4071
4087
|
}
|
|
@@ -4376,7 +4392,7 @@ function $4acc866f8fdfc002$export$af1fb307bbba2417(_ref) {
|
|
|
4376
4392
|
$b8hua$createComputed($b8hua$on(search_field_value_[0], () => !suggestions_updating_blocked() && set_selected_index(undefined), {
|
|
4377
4393
|
defer: true
|
|
4378
4394
|
})); // reset autocomplete position if query changes
|
|
4379
|
-
return [$b8hua$createComponent((0, $5175a47d13b7c228$export$d4994a86c6235f72), $b8hua$
|
|
4395
|
+
return [$b8hua$createComponent((0, $5175a47d13b7c228$export$d4994a86c6235f72), $b8hua$mergeProps(sharedSuggestionProps, {
|
|
4380
4396
|
get title_() {
|
|
4381
4397
|
return i18n_.popular_;
|
|
4382
4398
|
},
|
|
@@ -4386,7 +4402,7 @@ function $4acc866f8fdfc002$export$af1fb307bbba2417(_ref) {
|
|
|
4386
4402
|
return itemIndexes_.suggestionsIndex_;
|
|
4387
4403
|
},
|
|
4388
4404
|
showPlaceholders_: () => showPlaceholders() || noResults_() && !noResultsPopularSuggestions.latest
|
|
4389
|
-
})), $b8hua$createComponent((0, $5175a47d13b7c228$export$d4994a86c6235f72), $b8hua$
|
|
4405
|
+
})), $b8hua$createComponent((0, $5175a47d13b7c228$export$d4994a86c6235f72), $b8hua$mergeProps(sharedSuggestionProps, {
|
|
4390
4406
|
get title_() {
|
|
4391
4407
|
return i18n_.previous_;
|
|
4392
4408
|
},
|
|
@@ -4397,7 +4413,7 @@ function $4acc866f8fdfc002$export$af1fb307bbba2417(_ref) {
|
|
|
4397
4413
|
},
|
|
4398
4414
|
extraTitleRowElements_: () => $b8hua$ssr($4acc866f8fdfc002$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(i18n_.clear_all_from_filter_crumbs_())),
|
|
4399
4415
|
showPlaceholders_: () => false
|
|
4400
|
-
})), $b8hua$createComponent((0, $5175a47d13b7c228$export$d4994a86c6235f72), $b8hua$
|
|
4416
|
+
})), $b8hua$createComponent((0, $5175a47d13b7c228$export$d4994a86c6235f72), $b8hua$mergeProps(sharedSuggestionProps, {
|
|
4401
4417
|
get title_() {
|
|
4402
4418
|
return i18n_.content_;
|
|
4403
4419
|
},
|
|
@@ -4537,7 +4553,7 @@ function $06fcd2a345efd24d$var$RawSearchModalV2(_ref) {
|
|
|
4537
4553
|
const random_classname_body = $b8hua$make_random_classname();
|
|
4538
4554
|
const backdropRandomClassname = $b8hua$make_random_classname();
|
|
4539
4555
|
const [get_modal_search_results_, set_modal_search_results_] = $b8hua$createSignal();
|
|
4540
|
-
const close_on_escape_handler = $b8hua$
|
|
4556
|
+
const close_on_escape_handler = $b8hua$catchify(evt => {
|
|
4541
4557
|
if (evt.key === "Escape") {
|
|
4542
4558
|
evt.preventDefault(); // Prevent the browser from closing/cancelling the modal so our animations have time to run
|
|
4543
4559
|
close_modal_();
|
|
@@ -4640,7 +4656,7 @@ function $06fcd2a345efd24d$var$RawSearchModalV2(_ref) {
|
|
|
4640
4656
|
$b8hua$createEffect($b8hua$on(get_search_field_value_, () => {
|
|
4641
4657
|
setShowStaleListingSuggestions(true);
|
|
4642
4658
|
clearTimeout(listingSuggestionsDebounceTimeout);
|
|
4643
|
-
listingSuggestionsDebounceTimeout = setTimeout($b8hua$
|
|
4659
|
+
listingSuggestionsDebounceTimeout = setTimeout($b8hua$catchify(() => setShowStaleListingSuggestions(false)), 350);
|
|
4644
4660
|
}, {
|
|
4645
4661
|
defer: true
|
|
4646
4662
|
}));
|
|
@@ -4778,7 +4794,7 @@ function $06fcd2a345efd24d$var$RawSearchModalV2(_ref) {
|
|
|
4778
4794
|
}
|
|
4779
4795
|
});
|
|
4780
4796
|
if (setSearchFieldOuterWidth_) {
|
|
4781
|
-
const resizeObserver = new ResizeObserver($b8hua$
|
|
4797
|
+
const resizeObserver = new ResizeObserver($b8hua$catchify(records => setSearchFieldOuterWidth_(records.at(-1).contentRect.width)));
|
|
4782
4798
|
resizeObserver.observe(search_field);
|
|
4783
4799
|
$b8hua$onCleanup(() => resizeObserver.disconnect());
|
|
4784
4800
|
}
|
|
@@ -4812,7 +4828,7 @@ function $6a439680ae7e9ba3$export$b2539bed5023c21c(props) {
|
|
|
4812
4828
|
return $b8hua$createComponent($6a439680ae7e9ba3$var$TabsContext.Provider, {
|
|
4813
4829
|
value: new (0, $b8hua$ListenableSet)(),
|
|
4814
4830
|
get children() {
|
|
4815
|
-
return $b8hua$createComponent($6a439680ae7e9ba3$var$ActualTabs, $b8hua$
|
|
4831
|
+
return $b8hua$createComponent($6a439680ae7e9ba3$var$ActualTabs, $b8hua$mergeProps(props, {
|
|
4816
4832
|
get children() {
|
|
4817
4833
|
return props.children;
|
|
4818
4834
|
}
|
|
@@ -4828,7 +4844,7 @@ function $6a439680ae7e9ba3$var$ActualTabs(props) {
|
|
|
4828
4844
|
});
|
|
4829
4845
|
const isSelected = $b8hua$createSelector(currentlySelected);
|
|
4830
4846
|
const owner = $b8hua$getOwner();
|
|
4831
|
-
const updateTabsSignal = $b8hua$
|
|
4847
|
+
const updateTabsSignal = $b8hua$catchify1(() => $b8hua$runWithOwner(owner, () => setTabsReactive([...ourTabsSet])));
|
|
4832
4848
|
const ourTabsSet = $6a439680ae7e9ba3$var$useTabs();
|
|
4833
4849
|
const location = $b8hua$use_href_accessor1();
|
|
4834
4850
|
const linkWithChangedHash = hash => {
|
|
@@ -4842,7 +4858,7 @@ function $6a439680ae7e9ba3$var$ActualTabs(props) {
|
|
|
4842
4858
|
},
|
|
4843
4859
|
children: item => {
|
|
4844
4860
|
const weSelected = $b8hua$createMemo(() => isSelected(item().id));
|
|
4845
|
-
return $b8hua$createComponent((0, $b8hua$Dynamic), $b8hua$
|
|
4861
|
+
return $b8hua$createComponent((0, $b8hua$Dynamic), $b8hua$mergeProps({
|
|
4846
4862
|
get component() {
|
|
4847
4863
|
return props.AnchorComponent;
|
|
4848
4864
|
},
|
|
@@ -4925,7 +4941,7 @@ function $6a439680ae7e9ba3$export$3e41faf802a29e71(props) {
|
|
|
4925
4941
|
if (!currentTabs) throw new Error("Tab must be a child of Tabs");
|
|
4926
4942
|
const id = $b8hua$createUniqueId();
|
|
4927
4943
|
const ourSet = currentTabs;
|
|
4928
|
-
const extendedProps = $b8hua$
|
|
4944
|
+
const extendedProps = $b8hua$mergeProps1({
|
|
4929
4945
|
id: id
|
|
4930
4946
|
}, props);
|
|
4931
4947
|
ourSet.add(extendedProps);
|
|
@@ -4935,7 +4951,7 @@ function $6a439680ae7e9ba3$export$3e41faf802a29e71(props) {
|
|
|
4935
4951
|
async function $d5f1e6a0f9117286$export$79b1565500412d9b(search_modal, modal_fn_opts, parent) {
|
|
4936
4952
|
const body = parent || document.body || (await (0, $b8hua$observer).wait_for_element("body"));
|
|
4937
4953
|
let dispose_and_remove;
|
|
4938
|
-
const open_modal_ = $b8hua$
|
|
4954
|
+
const open_modal_ = $b8hua$catchify(async function () {
|
|
4939
4955
|
let extra_options_for_modal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4940
4956
|
let on_dispose = arguments.length > 1 ? arguments[1] : undefined;
|
|
4941
4957
|
// Below await is very intentional,
|
|
@@ -4970,7 +4986,7 @@ async function $d5f1e6a0f9117286$export$79b1565500412d9b(search_modal, modal_fn_
|
|
|
4970
4986
|
actually_close();else if (!animation_started && closing_animation) {
|
|
4971
4987
|
var _catchify;
|
|
4972
4988
|
animation_started = +new Date();
|
|
4973
|
-
(_catchify = $b8hua$
|
|
4989
|
+
(_catchify = $b8hua$catchify(closing_animation)()) === null || _catchify === void 0 || _catchify.then($b8hua$catchify(actually_close));
|
|
4974
4990
|
} else actually_close();
|
|
4975
4991
|
};
|
|
4976
4992
|
return search_modal({
|
|
@@ -4983,7 +4999,7 @@ async function $d5f1e6a0f9117286$export$79b1565500412d9b(search_modal, modal_fn_
|
|
|
4983
4999
|
});
|
|
4984
5000
|
body.append(...modal_els);
|
|
4985
5001
|
});
|
|
4986
|
-
const close_modal_ = $b8hua$
|
|
5002
|
+
const close_modal_ = $b8hua$catchify(() => {
|
|
4987
5003
|
if (dispose_and_remove) {
|
|
4988
5004
|
// modal is open
|
|
4989
5005
|
const dispose_fn = dispose_and_remove;
|
|
@@ -5000,7 +5016,7 @@ async function $d5f1e6a0f9117286$export$79b1565500412d9b(search_modal, modal_fn_
|
|
|
5000
5016
|
function $972f6bce0f9d61be$export$e183a13865960371(params_to_default_value, router_) {
|
|
5001
5017
|
const signals = {};
|
|
5002
5018
|
const entries = Object.entries(params_to_default_value);
|
|
5003
|
-
const event_handler = $b8hua$
|
|
5019
|
+
const event_handler = $b8hua$catchify((what_happened, args) => {
|
|
5004
5020
|
// Intentionally always update our signals to the history state to allow external control of SDK state for doing things like https://linear.app/depictai/issue/X-1432/is-this-possible-with-the-depict-sdk
|
|
5005
5021
|
if (what_happened !== "popstate") return;
|
|
5006
5022
|
// Had to undo the comment above,but leaving the history. Doing this because discovering why it doesn't work is a deja-vu and I don't want to have to discover it again.
|
|
@@ -5032,8 +5048,8 @@ function $972f6bce0f9d61be$export$e183a13865960371(params_to_default_value, rout
|
|
|
5032
5048
|
});
|
|
5033
5049
|
// history_dot_state_to_state needs to update after its signals after url_state does BUT in the same task (might even have to be in the same tick in the microtask queue). If we'd use window.addEventListener("popstate") it would be guaranteed to be too late since each event listener has its own task
|
|
5034
5050
|
(0, $b8hua$instant_exec_on_suspect_history_change).add(event_handler);
|
|
5035
|
-
$b8hua$onCleanup($b8hua$
|
|
5036
|
-
$b8hua$createEffect($b8hua$
|
|
5051
|
+
$b8hua$onCleanup($b8hua$catchify(() => (0, $b8hua$instant_exec_on_suspect_history_change).delete(event_handler)));
|
|
5052
|
+
$b8hua$createEffect($b8hua$catchify(() => $b8hua$untrack($b8hua$catchify(() => $972f6bce0f9d61be$var$history_state_change(signals, entries, history.state))))); // we need this to run after reading the initial state from history.state to write the defaults to history.state
|
|
5037
5053
|
return signals;
|
|
5038
5054
|
}
|
|
5039
5055
|
function $972f6bce0f9d61be$var$history_state_change(signals, entries, state) {
|
|
@@ -5171,7 +5187,7 @@ function $0706a7702baafc06$export$6b35356958ae5587(props) {
|
|
|
5171
5187
|
// If someone clicks on a product card in the shop the look modal, close the modal the next time the href changes
|
|
5172
5188
|
for (const item of resolved()) {
|
|
5173
5189
|
if (!(item instanceof Element)) return;
|
|
5174
|
-
item.addEventListener("click", $b8hua$
|
|
5190
|
+
item.addEventListener("click", $b8hua$catchify(() =>
|
|
5175
5191
|
// run with modal owner so we don't do stuff after the modal closes
|
|
5176
5192
|
// can't have the owner of the product card as that gets disposed if the productId changes which might be too early (before location.href has changed)
|
|
5177
5193
|
$b8hua$runWithOwner(props.modalOwner_, () => $b8hua$createEffect($b8hua$on(hrefWithoutHash, props.actually_close_modal_, {
|
|
@@ -5361,7 +5377,7 @@ function $6b0fd8fd20df8ccf$var$ActualShopTheLookButton(props) {
|
|
|
5361
5377
|
}, true);
|
|
5362
5378
|
$b8hua$createEffect(() => button.style.display = displayStyleValue()); // Set our attributes like this, so we allow total control over the button from the outside via buttonAttributes
|
|
5363
5379
|
$b8hua$createEffect(() => !hasAnythingToShow() && closeModal()); // close modal if we ever get into the state of having it open and not having anything to show
|
|
5364
|
-
$6b0fd8fd20df8ccf$var$modalProps = $b8hua$
|
|
5380
|
+
$6b0fd8fd20df8ccf$var$modalProps = $b8hua$mergeProps1(partForModal, {
|
|
5365
5381
|
products_to_shop_: products_to_shop_
|
|
5366
5382
|
});
|
|
5367
5383
|
button.addEventListener("click", openModal);
|
|
@@ -5392,7 +5408,7 @@ function $6b0fd8fd20df8ccf$var$actualSetupModal() {
|
|
|
5392
5408
|
(0, $68e6625c8d51f847$export$3064e1e8c6513da3).add(history_key);
|
|
5393
5409
|
const actually_close_modal_ = () => set_history_value(false);
|
|
5394
5410
|
const owner = $b8hua$getOwner();
|
|
5395
|
-
$b8hua$
|
|
5411
|
+
$b8hua$catchify(async () => {
|
|
5396
5412
|
const {
|
|
5397
5413
|
open_modal_: open_modal_,
|
|
5398
5414
|
close_modal_: close_modal_
|
|
@@ -5467,15 +5483,15 @@ function $ad371564683947ab$export$6c6d7a51fa9aa15d(props) {
|
|
|
5467
5483
|
$b8hua$insert(details_, [summary_, $b8hua$createComponent(ExpandingContainer, {
|
|
5468
5484
|
children: children
|
|
5469
5485
|
})], null);
|
|
5470
|
-
if (!$b8hua$untrack(is_in_dom)) (0, $b8hua$observer).wait_for_element(details_).then($b8hua$
|
|
5471
|
-
$b8hua$createEffect($b8hua$
|
|
5486
|
+
if (!$b8hua$untrack(is_in_dom)) (0, $b8hua$observer).wait_for_element(details_).then($b8hua$catchify(() => set_is_in_dom(true)));
|
|
5487
|
+
$b8hua$createEffect($b8hua$catchify(async () => {
|
|
5472
5488
|
const is_open = is_open_memo();
|
|
5473
5489
|
if (!is_in_dom())
|
|
5474
5490
|
// wait with setting state until we're in DOM, animation won't work otherwise
|
|
5475
5491
|
return;
|
|
5476
5492
|
if (dont_animate_if_instant_open_ && fresh_component && !timeout_started) {
|
|
5477
5493
|
timeout_started = true;
|
|
5478
|
-
setTimeout($b8hua$
|
|
5494
|
+
setTimeout($b8hua$catchify(() => fresh_component = false));
|
|
5479
5495
|
}
|
|
5480
5496
|
if (is_open) {
|
|
5481
5497
|
details_.open = true; // open up the toggle so the animation can happen
|
|
@@ -5483,10 +5499,10 @@ function $ad371564683947ab$export$6c6d7a51fa9aa15d(props) {
|
|
|
5483
5499
|
await expand(0, do_duration);
|
|
5484
5500
|
} else {
|
|
5485
5501
|
const animation = await collapse();
|
|
5486
|
-
animation === null || animation === void 0 || animation.addEventListener("finish", $b8hua$
|
|
5502
|
+
animation === null || animation === void 0 || animation.addEventListener("finish", $b8hua$catchify(() => details_.open = false));
|
|
5487
5503
|
}
|
|
5488
5504
|
}));
|
|
5489
|
-
details_.addEventListener("toggle", $b8hua$
|
|
5505
|
+
details_.addEventListener("toggle", $b8hua$catchify(() => {
|
|
5490
5506
|
const {
|
|
5491
5507
|
open: open
|
|
5492
5508
|
} = details_;
|
|
@@ -5496,11 +5512,11 @@ function $ad371564683947ab$export$6c6d7a51fa9aa15d(props) {
|
|
|
5496
5512
|
}) // in case someone somehow toggles it without us intercepting it at least follow suit
|
|
5497
5513
|
);
|
|
5498
5514
|
|
|
5499
|
-
summary_.addEventListener("click", $b8hua$
|
|
5515
|
+
summary_.addEventListener("click", $b8hua$catchify(ev => {
|
|
5500
5516
|
ev.preventDefault();
|
|
5501
5517
|
toggle();
|
|
5502
5518
|
}));
|
|
5503
|
-
summary_.addEventListener("keydown", $b8hua$
|
|
5519
|
+
summary_.addEventListener("keydown", $b8hua$catchify(ev => {
|
|
5504
5520
|
const {
|
|
5505
5521
|
key: key
|
|
5506
5522
|
} = ev;
|
|
@@ -5737,9 +5753,9 @@ function $4711a82d08d2021b$export$fecbb157621501bd(_ref) {
|
|
|
5737
5753
|
});
|
|
5738
5754
|
const [is_in_dom, set_is_in_dom] = $b8hua$createSignal(document.documentElement.contains(outmost_element));
|
|
5739
5755
|
const hidden = $b8hua$createMemo(() => get_search_filters_open_() || get_search_sorting_open_());
|
|
5740
|
-
if (!$b8hua$untrack(is_in_dom)) (0, $b8hua$observer).wait_for_element(outmost_element).then($b8hua$
|
|
5756
|
+
if (!$b8hua$untrack(is_in_dom)) (0, $b8hua$observer).wait_for_element(outmost_element).then($b8hua$catchify(() => set_is_in_dom(true)));
|
|
5741
5757
|
outmost_element.classList.add("selected-filters");
|
|
5742
|
-
$b8hua$createEffect($b8hua$
|
|
5758
|
+
$b8hua$createEffect($b8hua$catchify(async () => {
|
|
5743
5759
|
if (!is_in_dom())
|
|
5744
5760
|
// wait with setting state until we're in DOM, animation won't work otherwise
|
|
5745
5761
|
return;
|
|
@@ -5772,7 +5788,7 @@ const $19e828709c7723a0$export$48513f6b9f8ce62d = props => {
|
|
|
5772
5788
|
};
|
|
5773
5789
|
var $ff3225aef892a467$var$_tmpl$ = '<path d="M10.173 5.548H5.5V.875c0-.075-.027-.14-.081-.193S5.301.601 5.226.601s-.14.027-.193.081-.081.118-.081.193v4.673H.274c-.075 0-.14.027-.193.081A.27.27 0 0 0 0 5.827c0 .075.027.14.081.193s.118.081.193.081h4.678v4.673c0 .075.027.14.081.193s.118.081.193.081.14-.027.193-.081.081-.118.081-.193V6.101h4.673a.27.27 0 0 0 .199-.081c.054-.054.08-.118.08-.193a.27.27 0 0 0-.279-.279z" fill="#000"></path>';
|
|
5774
5790
|
function $ff3225aef892a467$export$f21ab0717a89c77f(props) {
|
|
5775
|
-
return $b8hua$ssrElement("svg", $b8hua$
|
|
5791
|
+
return $b8hua$ssrElement("svg", $b8hua$mergeProps(props, {
|
|
5776
5792
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5777
5793
|
width: "11",
|
|
5778
5794
|
height: "12"
|
|
@@ -5895,7 +5911,7 @@ function $133484ef10e4e954$export$dd948f91abc3a1c4(_ref) {
|
|
|
5895
5911
|
}) : []);
|
|
5896
5912
|
});
|
|
5897
5913
|
$b8hua$onCleanup(() => set_view_more_button_below_group_());
|
|
5898
|
-
$b8hua$createEffect($b8hua$
|
|
5914
|
+
$b8hua$createEffect($b8hua$catchify(async () => {
|
|
5899
5915
|
if (!togglable_rest()) {
|
|
5900
5916
|
await collapse();
|
|
5901
5917
|
return;
|
|
@@ -6021,7 +6037,7 @@ function $1e7465a8ffa97f6c$export$e0d834a0ad870cda(_ref) {
|
|
|
6021
6037
|
});
|
|
6022
6038
|
$b8hua$createComputed(() => {
|
|
6023
6039
|
clearTimeout(debounce_timeout);
|
|
6024
|
-
debounce_timeout = setTimeout($b8hua$
|
|
6040
|
+
debounce_timeout = setTimeout($b8hua$catchify(range => $b8hua$untrack(() => {
|
|
6025
6041
|
const default_data = defaultRange();
|
|
6026
6042
|
const filter_object = {
|
|
6027
6043
|
op: filter_().op,
|
|
@@ -6604,7 +6620,7 @@ function $0ae614c5c7babb43$export$a32086fa6616eafd(_ref) {
|
|
|
6604
6620
|
}) : []);
|
|
6605
6621
|
});
|
|
6606
6622
|
$b8hua$onCleanup(() => set_view_more_button_below_group());
|
|
6607
|
-
$b8hua$createEffect($b8hua$
|
|
6623
|
+
$b8hua$createEffect($b8hua$catchify(async () => {
|
|
6608
6624
|
if (!some_top_level_are_hidden()) {
|
|
6609
6625
|
await collapse();
|
|
6610
6626
|
return;
|
|
@@ -6677,7 +6693,7 @@ function $0ae614c5c7babb43$var$render_stuff(data, existing_filter, i18n_, filter
|
|
|
6677
6693
|
return (_value$is_checked_$ = (_value7 = value()) === null || _value7 === void 0 ? void 0 : (_value7$is_checked_ = _value7.is_checked_) === null || _value7$is_checked_ === void 0 ? void 0 : (_value7$is_checked_$ = _value7$is_checked_[0]) === null || _value7$is_checked_$ === void 0 ? void 0 : _value7$is_checked_$.call(_value7$is_checked_)) !== null && _value$is_checked_$ !== void 0 ? _value$is_checked_$ : false;
|
|
6678
6694
|
},
|
|
6679
6695
|
input_ref_: input => {
|
|
6680
|
-
input.addEventListener("change", $b8hua$
|
|
6696
|
+
input.addEventListener("change", $b8hua$catchify(() => $b8hua$untrack(() => {
|
|
6681
6697
|
var _value9;
|
|
6682
6698
|
const {
|
|
6683
6699
|
checked: checked
|
|
@@ -6764,7 +6780,7 @@ function $0ae614c5c7babb43$var$batching_filter_state_syncer(props) {
|
|
|
6764
6780
|
existing_filter_: existing_filter_
|
|
6765
6781
|
} = props;
|
|
6766
6782
|
let sync_queued = false;
|
|
6767
|
-
const sync_fn = $b8hua$
|
|
6783
|
+
const sync_fn = $b8hua$catchify(async () => {
|
|
6768
6784
|
sync_queued = false;
|
|
6769
6785
|
// if we change, update filter state - next microtask, so that "reactions" to the change can process before we send it off to the API
|
|
6770
6786
|
const set_filter = existing_filter_();
|
|
@@ -6826,13 +6842,13 @@ function $0ae614c5c7babb43$var$create_updating_signal(_ref3) {
|
|
|
6826
6842
|
$b8hua$createComputed($b8hua$on(read_checked, trigger_sync_, {
|
|
6827
6843
|
defer: true
|
|
6828
6844
|
}));
|
|
6829
|
-
$b8hua$createComputed($b8hua$on(read_checked, $b8hua$
|
|
6845
|
+
$b8hua$createComputed($b8hua$on(read_checked, $b8hua$catchify(new_value => {
|
|
6830
6846
|
if (updating_blocked) return;
|
|
6831
6847
|
for (const child of child_objects) child.is_checked_[1](new_value);
|
|
6832
6848
|
}), {
|
|
6833
6849
|
defer: true
|
|
6834
6850
|
}));
|
|
6835
|
-
$b8hua$createEffect($b8hua$on(get_child_object_values, $b8hua$
|
|
6851
|
+
$b8hua$createEffect($b8hua$on(get_child_object_values, $b8hua$catchify(() => {
|
|
6836
6852
|
const all_kids_checked = get_child_object_values.every(accessor => accessor());
|
|
6837
6853
|
if (all_kids_checked === read_checked()) return;
|
|
6838
6854
|
updating_blocked = true;
|
|
@@ -7013,7 +7029,7 @@ const $830ea8efda59884e$export$414f6a19d38e655c = _ref => {
|
|
|
7013
7029
|
const MakeButton = attributes => {
|
|
7014
7030
|
const label = $b8hua$createMemo(() => value().name_ || value().value_ + "");
|
|
7015
7031
|
const count_zero = $b8hua$createMemo(() => value().count_ === 0);
|
|
7016
|
-
return $b8hua$ssrElement("button", $b8hua$
|
|
7032
|
+
return $b8hua$ssrElement("button", $b8hua$mergeProps(attributes, {
|
|
7017
7033
|
get disabled() {
|
|
7018
7034
|
return count_zero() && !is_selected();
|
|
7019
7035
|
},
|
|
@@ -7284,7 +7300,7 @@ function $2cb856c297c53e6c$export$82ed4b28ecb67608(_ref) {
|
|
|
7284
7300
|
}) : []);
|
|
7285
7301
|
});
|
|
7286
7302
|
$b8hua$onCleanup(() => set_view_more_button_below_group_());
|
|
7287
|
-
$b8hua$createEffect($b8hua$
|
|
7303
|
+
$b8hua$createEffect($b8hua$catchify(async () => {
|
|
7288
7304
|
if (!togglable_rest()) {
|
|
7289
7305
|
await collapse();
|
|
7290
7306
|
set_having_expanding_in_dom(false); // Once animation has finished, remove expanding from DOM
|
|
@@ -7325,7 +7341,7 @@ var $d2988f745661df9c$export$2e2bcd8739ae039 = {
|
|
|
7325
7341
|
var $905f44be08b7378e$var$_tmpl$ = '<path d="M4.617 12.738a.48.48 0 0 1-.164-.027c-.051-.023-.094-.055-.129-.098L.125 8.414A.39.39 0 0 1 0 8.117c0-.113.039-.211.125-.293s.18-.125.293-.125.215.043.297.125l3.902 3.902L16.086.262c.082-.082.18-.125.297-.125s.211.043.293.125.125.184.125.301-.043.215-.125.297L4.914 12.613c-.039.043-.086.078-.141.098s-.102.027-.156.027zm0 0"></path>';
|
|
7326
7342
|
function $905f44be08b7378e$export$f2ca6fc699ca1fb4() {
|
|
7327
7343
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7328
|
-
return $b8hua$ssrElement("svg", $b8hua$
|
|
7344
|
+
return $b8hua$ssrElement("svg", $b8hua$mergeProps({
|
|
7329
7345
|
xmlns: "http://www.w3.org/2000/svg",
|
|
7330
7346
|
width: "16.8",
|
|
7331
7347
|
height: "14"
|
|
@@ -8030,7 +8046,7 @@ const $702d7656a373973e$export$824dde41348efed1 = /*@__PURE__*/(() => {
|
|
|
8030
8046
|
|
|
8031
8047
|
const observe_to_signal = (element, setter) => {
|
|
8032
8048
|
const computed_style = getComputedStyle(element);
|
|
8033
|
-
const resize_observer = new ResizeObserver($b8hua$
|
|
8049
|
+
const resize_observer = new ResizeObserver($b8hua$catchify(() => {
|
|
8034
8050
|
setter(element.getBoundingClientRect().width + parseFloat(computed_style.marginLeft) + parseFloat(computed_style.marginRight) + parseFloat(computed_style.borderRightWidth) + parseFloat(computed_style.borderLeftWidth));
|
|
8035
8051
|
}));
|
|
8036
8052
|
resize_observer.observe(element);
|
|
@@ -8441,7 +8457,7 @@ function $284849364a6ef73a$var$_get_cache_obj_for_endpoint2(endpoint) {
|
|
|
8441
8457
|
return (_classPrivateFieldGet4 = $b8hua$babelruntimehelpersclassPrivateFieldGet(this, $284849364a6ef73a$var$_cache_objs))[endpoint] || (_classPrivateFieldGet4[endpoint] = {
|
|
8442
8458
|
in_progress_: {},
|
|
8443
8459
|
cache_: {},
|
|
8444
|
-
finalization_registry_: $b8hua$babelruntimehelpersclassPrivateFieldGet(this, $284849364a6ef73a$var$_supports_finalization_registry) ? new FinalizationRegistry($b8hua$
|
|
8460
|
+
finalization_registry_: $b8hua$babelruntimehelpersclassPrivateFieldGet(this, $284849364a6ef73a$var$_supports_finalization_registry) ? new FinalizationRegistry($b8hua$catchify(key => {
|
|
8445
8461
|
const our_cache = $b8hua$babelruntimehelpersclassPrivateFieldGet(this, $284849364a6ef73a$var$_cache_objs)[endpoint].cache_;
|
|
8446
8462
|
$b8hua$dlog1("[Search API]: removing", key, "from", our_cache);
|
|
8447
8463
|
delete our_cache[key];
|
|
@@ -8483,7 +8499,7 @@ async function $284849364a6ef73a$var$_run_url_creator_for_suggest2(merchant, mar
|
|
|
8483
8499
|
// Filter out our transformed ancestors
|
|
8484
8500
|
const transformedAncestors = Object.fromEntries(transformerResult.filter(item => item.is_suggestion === false).map(item => [item.listing_id, item]));
|
|
8485
8501
|
// Add the now transformed ancestors into the ancestors of the listing suggestions
|
|
8486
|
-
const transformedSuggestions = transformerResult.filter(item => item.is_suggestion !== false).map(item => $b8hua$
|
|
8502
|
+
const transformedSuggestions = transformerResult.filter(item => item.is_suggestion !== false).map(item => $b8hua$mergeProps1(item, {
|
|
8487
8503
|
// Use mergeProps instead of spread since page_url and other properties could be a getter that solid components should call
|
|
8488
8504
|
ancestors: item.ancestors.map(ancestor => {
|
|
8489
8505
|
const newAncestor = transformedAncestors[ancestor.listing_id];
|
|
@@ -8580,11 +8596,11 @@ async function $284849364a6ef73a$var$_cached_request2(_ref4) {
|
|
|
8580
8596
|
result = $ed0fefda39a0f15d$export$967e966fca9515e(result);
|
|
8581
8597
|
cache_obj.cache_[body] = new WeakRef(result);
|
|
8582
8598
|
resolve_in_progress(result);
|
|
8583
|
-
setTimeout($b8hua$
|
|
8599
|
+
setTimeout($b8hua$catchify(() => {
|
|
8584
8600
|
if ($b8hua$babelruntimehelpersclassPrivateFieldGet(this, $284849364a6ef73a$var$_supports_finalization_registry)) cache_obj.finalization_registry_.register(result, body); // delete key from cache when value (WeakRefs) are collected
|
|
8585
8601
|
else
|
|
8586
8602
|
// delete things from cache after 5 minutes, so it doesn't get too heavy
|
|
8587
|
-
setTimeout($b8hua$
|
|
8603
|
+
setTimeout($b8hua$catchify(() => delete cache_obj.cache_[body]), 300000);
|
|
8588
8604
|
}), 60000 // cache values for at least 60 seconds
|
|
8589
8605
|
);
|
|
8590
8606
|
|
|
@@ -8616,7 +8632,7 @@ function $9d3d794b62318ecc$export$477caf01aecaeb2a(options) {
|
|
|
8616
8632
|
const [get_selected_filters_, set_selected_filters] = selected_filters_;
|
|
8617
8633
|
const [get_has_sideways_filter_clearing_flag_, set_has_sideways_filter_clearing_flag] = sideways_filter_clearing_flag_;
|
|
8618
8634
|
const [get_current_href, set_current_href] = $b8hua$createSignal((_globalThis$location$ = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$location = globalThis.location) === null || _globalThis$location === void 0 ? void 0 : _globalThis$location.href) !== null && _globalThis$location$ !== void 0 ? _globalThis$location$ : "https://example.com");
|
|
8619
|
-
const history_change_handler = $b8hua$
|
|
8635
|
+
const history_change_handler = $b8hua$catchify(() => set_current_href(location.href));
|
|
8620
8636
|
const owner = $b8hua$getOwner() || $b8hua$createRoot(() => $b8hua$getOwner());
|
|
8621
8637
|
const {
|
|
8622
8638
|
sorting_query_param_: sorting_query_param_,
|
|
@@ -8992,7 +9008,7 @@ function $8ef6232475d44150$export$7de92c4c2205ebf3(_ref) {
|
|
|
8992
9008
|
return (0, $981356a8bf29ad72$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...possible_num_columns);
|
|
8993
9009
|
});
|
|
8994
9010
|
// Don't tear down elements every time one updates the page - don't put them within <Show>
|
|
8995
|
-
const elements = $b8hua$ssr($8ef6232475d44150$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(i18n_.search_recs_title_()), $b8hua$escape($ca55612a53dbbdd2$export$a2cc176055f8f08()), $b8hua$escape($b8hua$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $b8hua$
|
|
9011
|
+
const elements = $b8hua$ssr($8ef6232475d44150$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(i18n_.search_recs_title_()), $b8hua$escape($ca55612a53dbbdd2$export$a2cc176055f8f08()), $b8hua$escape($b8hua$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $b8hua$mergeProps({
|
|
8996
9012
|
rows: rows_object,
|
|
8997
9013
|
layout: "grid",
|
|
8998
9014
|
element_attributes: {
|
|
@@ -9065,13 +9081,13 @@ function $a61a2051e15c8d7a$export$5196e4c01fa56fcb(_ref) {
|
|
|
9065
9081
|
} = _ref;
|
|
9066
9082
|
let close_toast_;
|
|
9067
9083
|
const stay_open_promise = new Promise(r => close_toast_ = r);
|
|
9068
|
-
$b8hua$
|
|
9084
|
+
$b8hua$catchify(async () => {
|
|
9069
9085
|
const closing_animation_duration = 300; // ms
|
|
9070
9086
|
const element = $b8hua$ssrElement("div", more_attributes, () => $b8hua$escape(children), true);
|
|
9071
9087
|
const [, set_is_showing_toast] = $a61a2051e15c8d7a$export$22970a0140fc759c;
|
|
9072
9088
|
// if this is a memory leak the garbage collector is stupid - does someone know?
|
|
9073
|
-
for (const ev of ["pointerover", "focusin"]) element.addEventListener(ev, $b8hua$
|
|
9074
|
-
for (const ev of ["pointerout", "focusout"]) element.addEventListener(ev, $b8hua$
|
|
9089
|
+
for (const ev of ["pointerover", "focusin"]) element.addEventListener(ev, $b8hua$catchify(() => closing_animation.pause()));
|
|
9090
|
+
for (const ev of ["pointerout", "focusout"]) element.addEventListener(ev, $b8hua$catchify(() => closing_animation.play()));
|
|
9075
9091
|
const body = await (0, $b8hua$observer).wait_for_element("body");
|
|
9076
9092
|
const x_translate = "translateX(-50%) ";
|
|
9077
9093
|
let remove_keyboard_listener;
|
|
@@ -9096,7 +9112,7 @@ function $a61a2051e15c8d7a$export$5196e4c01fa56fcb(_ref) {
|
|
|
9096
9112
|
// let other toasts close us if they open while we're still here
|
|
9097
9113
|
$a61a2051e15c8d7a$var$closing_functions.add(close_toast_);
|
|
9098
9114
|
set_is_showing_toast(true);
|
|
9099
|
-
const handler = $b8hua$
|
|
9115
|
+
const handler = $b8hua$catchify(_ref2 => {
|
|
9100
9116
|
let {
|
|
9101
9117
|
key: key
|
|
9102
9118
|
} = _ref2;
|
|
@@ -9231,7 +9247,7 @@ function $d8a66ba54a42eb3e$export$e026af0c7b64ea5f(_ref) {
|
|
|
9231
9247
|
}, {
|
|
9232
9248
|
defer: true
|
|
9233
9249
|
}));
|
|
9234
|
-
$b8hua$createComputed($b8hua$on(get_search_query_, $b8hua$
|
|
9250
|
+
$b8hua$createComputed($b8hua$on(get_search_query_, $b8hua$catchify(() => {
|
|
9235
9251
|
// when a query was submitted, clear filters if clear was pressed before
|
|
9236
9252
|
const clear_value = $b8hua$untrack(get_clear_filters_next_submit);
|
|
9237
9253
|
if (clear_value) {
|
|
@@ -9258,11 +9274,11 @@ function $07d90b8270ece8de$export$84bba84a7b837187(read_search_query) {
|
|
|
9258
9274
|
const key = "depict_searches";
|
|
9259
9275
|
const previous_searches = $b8hua$createSignal(JSON.parse(ls[key] || "[]"));
|
|
9260
9276
|
const [read_previous_searches, write_previous_searches] = previous_searches;
|
|
9261
|
-
$b8hua$createEffect($b8hua$
|
|
9277
|
+
$b8hua$createEffect($b8hua$catchify(() => {
|
|
9262
9278
|
const json_encoded = JSON.stringify(read_previous_searches());
|
|
9263
9279
|
if (ls[key] !== json_encoded) ls[key] = json_encoded;
|
|
9264
9280
|
}));
|
|
9265
|
-
$b8hua$createComputed($b8hua$
|
|
9281
|
+
$b8hua$createComputed($b8hua$catchify(() => {
|
|
9266
9282
|
const searches = $b8hua$untrack(read_previous_searches);
|
|
9267
9283
|
const current_query = read_search_query();
|
|
9268
9284
|
if (!current_query)
|
|
@@ -9308,7 +9324,7 @@ async function $86b0ff0c85e5fc6c$export$e16630ecb9644a1c(_ref) {
|
|
|
9308
9324
|
function $33e7d1906c93db7d$export$205efb947c7ffd78(handler) {
|
|
9309
9325
|
let passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
9310
9326
|
let override_element = arguments.length > 2 ? arguments[2] : undefined;
|
|
9311
|
-
const catchified_handler = $b8hua$
|
|
9327
|
+
const catchified_handler = $b8hua$catchify(handler);
|
|
9312
9328
|
const owner = $b8hua$getOwner();
|
|
9313
9329
|
// Some customers (e.g. equestrian) have `height: 100%` and/or `overflow-x: hidden` on the body, which means that scroll events won't get dispatched on `window`. The pages who get it on <body> won't get it on `window` and vice-versa, so there shouldn't be a worry about duplicate calling of the handler.
|
|
9314
9330
|
// Use observer in case that this gets called before body exists
|
|
@@ -9353,7 +9369,7 @@ function $96d57a48e7bce64f$export$181cceed5c91919e(callback, alsoRaF, passiveLis
|
|
|
9353
9369
|
$b8hua$createEffect(() => {
|
|
9354
9370
|
if (alsoRaF !== null && alsoRaF !== void 0 && alsoRaF()) {
|
|
9355
9371
|
let disposed = false;
|
|
9356
|
-
const fn = $b8hua$
|
|
9372
|
+
const fn = $b8hua$catchify(() => {
|
|
9357
9373
|
if (disposed) return;
|
|
9358
9374
|
probablyCallCallback();
|
|
9359
9375
|
requestAnimationFrame(fn);
|
|
@@ -9366,10 +9382,10 @@ function $96d57a48e7bce64f$export$181cceed5c91919e(callback, alsoRaF, passiveLis
|
|
|
9366
9382
|
// "resize" doesn't fire sometimes when it should, also it doesn't when showing/hiding scrollbars which disabling scrolling does
|
|
9367
9383
|
// this works
|
|
9368
9384
|
// keeping resize just in case
|
|
9369
|
-
const resize_resize_observer = new ResizeObserver($b8hua$
|
|
9385
|
+
const resize_resize_observer = new ResizeObserver($b8hua$catchify(probablyCallCallback));
|
|
9370
9386
|
resize_resize_observer.observe(document.documentElement);
|
|
9371
9387
|
(0, $b8hua$observer).wait_for_element("body").then(resize_resize_observer.observe.bind(resize_resize_observer));
|
|
9372
|
-
$b8hua$onCleanup($b8hua$
|
|
9388
|
+
$b8hua$onCleanup($b8hua$catchify(() => resize_resize_observer.disconnect()));
|
|
9373
9389
|
return probablyCallCallback;
|
|
9374
9390
|
}
|
|
9375
9391
|
const $1308a7816c3d4f2d$export$3f238c96c45e6cc6 = 1;
|
|
@@ -9402,7 +9418,7 @@ function $1308a7816c3d4f2d$export$b3ad617e9036868(_ref, input_field, alignment,
|
|
|
9402
9418
|
}, pollAlignment);
|
|
9403
9419
|
let ro;
|
|
9404
9420
|
if (alignment & $1308a7816c3d4f2d$export$902f8b4a7dae5d78 || alignment & $1308a7816c3d4f2d$export$5097308c5200105a) {
|
|
9405
|
-
ro = new ResizeObserver($b8hua$
|
|
9421
|
+
ro = new ResizeObserver($b8hua$catchify(records => {
|
|
9406
9422
|
records.forEach(_ref2 => {
|
|
9407
9423
|
let {
|
|
9408
9424
|
contentRect: {
|
|
@@ -9426,7 +9442,7 @@ function $1308a7816c3d4f2d$export$b3ad617e9036868(_ref, input_field, alignment,
|
|
|
9426
9442
|
}));
|
|
9427
9443
|
ro.observe(input_field);
|
|
9428
9444
|
}
|
|
9429
|
-
$b8hua$onCleanup($b8hua$
|
|
9445
|
+
$b8hua$onCleanup($b8hua$catchify(() => {
|
|
9430
9446
|
var _ro;
|
|
9431
9447
|
return (_ro = ro) === null || _ro === void 0 ? void 0 : _ro.disconnect();
|
|
9432
9448
|
}));
|
|
@@ -9641,7 +9657,7 @@ function $b69740fc6de9f17e$export$83fd5de5504a7a67(_ref) {
|
|
|
9641
9657
|
fill: "forwards",
|
|
9642
9658
|
easing: "ease-in-out"
|
|
9643
9659
|
});
|
|
9644
|
-
animation.addEventListener("finish", $b8hua$
|
|
9660
|
+
animation.addEventListener("finish", $b8hua$catchify(() => {
|
|
9645
9661
|
if (unpermit_when_possible) set_permitted_to_show(false);
|
|
9646
9662
|
animation = undefined;
|
|
9647
9663
|
element.style.display = "none";
|
|
@@ -9709,7 +9725,7 @@ function $6d2962bc9370f884$export$5e4aed86c12acdd9(_ref) {
|
|
|
9709
9725
|
is_first_load = true;
|
|
9710
9726
|
});
|
|
9711
9727
|
// percentage_in_view_ has equals: false so it should update even when set to the same value. That is to make sure that if the user bounces around below the "viewport" of our product listing we still start fetching as soon as is_loading_more becomes false again and we get IntersectionObserverEntries
|
|
9712
|
-
$b8hua$createEffect($b8hua$
|
|
9728
|
+
$b8hua$createEffect($b8hua$catchify(async () => {
|
|
9713
9729
|
const be_above_percentage = is_first_load ? 50 : 75; // if first load, load earlier
|
|
9714
9730
|
if (percentage_in_view_() < be_above_percentage || is_loading_more) return;
|
|
9715
9731
|
if (!get_last_cursor()) {
|
|
@@ -9843,7 +9859,7 @@ var $64d94dcaa058dc7b$var$_tmpl$ = ["<style", ' type="text/css">', "</style>"];
|
|
|
9843
9859
|
const $64d94dcaa058dc7b$export$c500183c31c2b22e = "--spans-columns";
|
|
9844
9860
|
function $64d94dcaa058dc7b$export$ab6b147eec64fea5(props) {
|
|
9845
9861
|
const container_class = "x" + $b8hua$createUniqueId();
|
|
9846
|
-
const container_element_ = $b8hua$ssrElement("div", $b8hua$
|
|
9862
|
+
const container_element_ = $b8hua$ssrElement("div", $b8hua$mergeProps(() => props.element_attributes, {
|
|
9847
9863
|
classList: {
|
|
9848
9864
|
[container_class]: true
|
|
9849
9865
|
}
|
|
@@ -10154,7 +10170,7 @@ function $7faea0096f14b59b$export$3925f87b1545cfc6(_ref) {
|
|
|
10154
10170
|
} = slider;
|
|
10155
10171
|
const Layout = props => $63f1f8dbcd07d3b0$export$445d8d3f5f706a40(props, insert_here, true);
|
|
10156
10172
|
// Do like this, so we don't have to call mergeProps ourselves
|
|
10157
|
-
$b8hua$createComponent(Layout, $b8hua$
|
|
10173
|
+
$b8hua$createComponent(Layout, $b8hua$mergeProps(layout_options_, {
|
|
10158
10174
|
rows: "all",
|
|
10159
10175
|
get cols_at_size() {
|
|
10160
10176
|
return modified_cols_at_size();
|
|
@@ -10229,7 +10245,7 @@ function $69602b3d8fd54c38$export$9dd50d35b9d94fdf(_ref) {
|
|
|
10229
10245
|
number_of_results_: number_of_results_,
|
|
10230
10246
|
type: type
|
|
10231
10247
|
} = _ref;
|
|
10232
|
-
const contents = $b8hua$createMemo($b8hua$
|
|
10248
|
+
const contents = $b8hua$createMemo($b8hua$catchify(() => {
|
|
10233
10249
|
const q = get_search_query_();
|
|
10234
10250
|
return i18n_[type === $69602b3d8fd54c38$export$2452208c79fe93ea.content ? "get_showing_pages_for_" : "get_showing_results_for_"]()($b8hua$ssr($69602b3d8fd54c38$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(q)), $b8hua$ssr($69602b3d8fd54c38$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(formatted_number_of_results_())), !!q, number_of_results_());
|
|
10235
10251
|
}));
|
|
@@ -10315,7 +10331,7 @@ var $79af35736fe8e5c8$var$_tmpl$ = '<path d="M6.199 10.254a.35.35 0 0 0-.496 0L3
|
|
|
10315
10331
|
$79af35736fe8e5c8$var$_tmpl$2 = '<path d="M10.852 6.301H8.051a.35.35 0 0 1-.352-.352V4.551a.35.35 0 0 1 .352-.352h2.801a.35.35 0 0 1 .348.352v1.398a.35.35 0 0 1-.348.352zm-2.453-.699H10.5v-.703H8.398zm3.851 3.5H8.051c-.195 0-.352-.16-.352-.352V7.352A.35.35 0 0 1 8.051 7h4.199c.191 0 .352.156.352.352V8.75c0 .191-.16.352-.352.352zm-3.852-.703h3.5V7.7h-3.5zm5.25 3.499H8.051a.35.35 0 0 1-.352-.348v-1.402a.35.35 0 0 1 .352-.348h5.598a.35.35 0 0 1 .352.348v1.402a.35.35 0 0 1-.352.348zm-5.25-.699H13.3V10.5H8.398zm0 0"></path>';
|
|
10316
10332
|
function $79af35736fe8e5c8$export$da32f7add8a22e86() {
|
|
10317
10333
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
10318
|
-
return $b8hua$ssrElement("svg", $b8hua$
|
|
10334
|
+
return $b8hua$ssrElement("svg", $b8hua$mergeProps({
|
|
10319
10335
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10320
10336
|
width: "14",
|
|
10321
10337
|
height: "14",
|
|
@@ -10325,7 +10341,7 @@ function $79af35736fe8e5c8$export$da32f7add8a22e86() {
|
|
|
10325
10341
|
var $73e3c96bc365e0e9$var$_tmpl$ = '<path d="M6.199 10.254a.35.35 0 0 0-.496 0L3.5 12.453V.348a.35.35 0 0 0-.7 0v12.105L.598 10.254c-.137-.137-.359-.137-.492 0a.35.35 0 0 0 0 .492l2.797 2.801a.35.35 0 0 0 .496 0L6.2 10.746c.137-.137.137-.355 0-.492zm3.25 1.644H8.051a.35.35 0 0 1-.352-.348v-1.402a.35.35 0 0 1 .352-.348h1.398a.35.35 0 0 1 .352.348v1.402a.35.35 0 0 1-.352.348zm-1.051-.699h.703V10.5h-.703zm2.454-2.097H8.051c-.195 0-.352-.16-.352-.352V7.352A.35.35 0 0 1 8.051 7h2.801a.35.35 0 0 1 .348.352V8.75c0 .191-.156.352-.348.352zm-2.453-.703H10.5V7.7H8.398zm3.851-2.098H8.051a.35.35 0 0 1-.352-.352V4.551a.35.35 0 0 1 .352-.352h4.199c.191 0 .352.156.352.352v1.398c0 .195-.16.352-.352.352zm-3.852-.699h3.5v-.703h-3.5zm5.25-2.102H8.051a.35.35 0 0 1-.352-.352V1.75c0-.191.156-.352.352-.352h5.598c.195 0 .352.16.352.352v1.398a.35.35 0 0 1-.352.352zm-5.25-.699H13.3v-.699H8.398zm0 0"></path>';
|
|
10326
10342
|
function $73e3c96bc365e0e9$export$d10e63059ddb9fd4() {
|
|
10327
10343
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
10328
|
-
return $b8hua$ssrElement("svg", $b8hua$
|
|
10344
|
+
return $b8hua$ssrElement("svg", $b8hua$mergeProps({
|
|
10329
10345
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10330
10346
|
width: "14",
|
|
10331
10347
|
height: "14",
|
|
@@ -10393,7 +10409,7 @@ function $082c4ed3e22f8d71$export$9bf11afa910f536e(_ref) {
|
|
|
10393
10409
|
set_search_sorting_open(true);
|
|
10394
10410
|
}
|
|
10395
10411
|
});
|
|
10396
|
-
$b8hua$onCleanup($b8hua$
|
|
10412
|
+
$b8hua$onCleanup($b8hua$catchify(() => {
|
|
10397
10413
|
if (!sorting_expanded() && !filters_expanded()) {
|
|
10398
10414
|
set_search_filters_open(false);
|
|
10399
10415
|
set_search_sorting_open(false);
|
|
@@ -10441,7 +10457,7 @@ function $082c4ed3e22f8d71$export$9bf11afa910f536e(_ref) {
|
|
|
10441
10457
|
})));
|
|
10442
10458
|
},
|
|
10443
10459
|
get children() {
|
|
10444
|
-
return $b8hua$ssr($082c4ed3e22f8d71$var$_tmpl$5, $b8hua$ssrHydrationKey(), $b8hua$escape($b8hua$createComponent((0, $f6b0500577e1b210$export$3f1a388cc0d8fed7), $b8hua$
|
|
10460
|
+
return $b8hua$ssr($082c4ed3e22f8d71$var$_tmpl$5, $b8hua$ssrHydrationKey(), $b8hua$escape($b8hua$createComponent((0, $f6b0500577e1b210$export$3f1a388cc0d8fed7), $b8hua$mergeProps(args_for_filtering_, {
|
|
10445
10461
|
are_in_modal_: true
|
|
10446
10462
|
}))));
|
|
10447
10463
|
}
|
|
@@ -10505,7 +10521,7 @@ function $7396052a1484264f$export$d7841e452f2e59a8(_ref) {
|
|
|
10505
10521
|
const [sorting_open, set_sorting_open] = search_sorting_open_;
|
|
10506
10522
|
const [get_current_sorting_] = current_sorting_;
|
|
10507
10523
|
const [is_small, set_is_small] = $b8hua$createSignal(false);
|
|
10508
|
-
const dismiss_modal_ = $b8hua$
|
|
10524
|
+
const dismiss_modal_ = $b8hua$catchify(() => {
|
|
10509
10525
|
set_filters_open(false);
|
|
10510
10526
|
set_sorting_open(false);
|
|
10511
10527
|
});
|
|
@@ -10606,7 +10622,7 @@ function $7396052a1484264f$export$d7841e452f2e59a8(_ref) {
|
|
|
10606
10622
|
}));else set_extra_els_in_results_container_($b8hua$ssr($7396052a1484264f$var$_tmpl$2, $b8hua$ssrHydrationKey(), $b8hua$escape($b8hua$createComponent((0, $cfdbd124dd09d713$export$1f1775a58da589b5), sorting_options))));
|
|
10607
10623
|
}
|
|
10608
10624
|
});
|
|
10609
|
-
$b8hua$
|
|
10625
|
+
$b8hua$catchify(async () => {
|
|
10610
10626
|
({
|
|
10611
10627
|
open_modal_: open_modal_,
|
|
10612
10628
|
close_modal_: close_modal_
|
|
@@ -10784,7 +10800,7 @@ function $6a16b21155984cef$var$ActualFloatingButtons(_ref2) {
|
|
|
10784
10800
|
}
|
|
10785
10801
|
old_pos = new_pos;
|
|
10786
10802
|
});
|
|
10787
|
-
const touchstart_handler = $b8hua$
|
|
10803
|
+
const touchstart_handler = $b8hua$catchify(e => {
|
|
10788
10804
|
is_in_touch_scroll = true;
|
|
10789
10805
|
if (e.touches.length === 1) {
|
|
10790
10806
|
// we had no touches but then we got some. Adding a new touch cancels the inertia. We are in a new touch so do reset the diff
|
|
@@ -10792,12 +10808,12 @@ function $6a16b21155984cef$var$ActualFloatingButtons(_ref2) {
|
|
|
10792
10808
|
diff_over_second_or_touch = 0;
|
|
10793
10809
|
}
|
|
10794
10810
|
});
|
|
10795
|
-
const touchend_handler = $b8hua$
|
|
10811
|
+
const touchend_handler = $b8hua$catchify(e => {
|
|
10796
10812
|
if (e.touches.length === 0)
|
|
10797
10813
|
// scroll gesture of any type (pinch can also be used as scroll, etc.) ended
|
|
10798
10814
|
inertia_timeout = setTimeout(
|
|
10799
10815
|
// inertia ends after 500ms (educated guess)
|
|
10800
|
-
$b8hua$
|
|
10816
|
+
$b8hua$catchify(() => {
|
|
10801
10817
|
is_in_touch_scroll = false;
|
|
10802
10818
|
diff_over_second_or_touch = 0;
|
|
10803
10819
|
}), 500);
|
|
@@ -10815,9 +10831,9 @@ function $6a16b21155984cef$var$ActualFloatingButtons(_ref2) {
|
|
|
10815
10831
|
const everything_closed = !get_search_filters_open_() && !get_search_sorting_open_();
|
|
10816
10832
|
if (!$b8hua$untrack(modal_is_closed) && everything_closed)
|
|
10817
10833
|
// I think the point of this is to delay the animation a bit IIRC
|
|
10818
|
-
timeout = setTimeout($b8hua$
|
|
10834
|
+
timeout = setTimeout($b8hua$catchify(() => set_if_modal_is_closed(true)), 200);else set_if_modal_is_closed(everything_closed);
|
|
10819
10835
|
});
|
|
10820
|
-
$b8hua$createComputed($b8hua$
|
|
10836
|
+
$b8hua$createComputed($b8hua$catchify(async () => {
|
|
10821
10837
|
const element = sort_and_filter_element_();
|
|
10822
10838
|
if (!element) return;
|
|
10823
10839
|
await (0, $b8hua$observer).wait_for_element(element);
|
|
@@ -10836,7 +10852,7 @@ function $ec225bf1f1627ea8$export$210f130a61ac1e8d(fn) {
|
|
|
10836
10852
|
let last_queued;
|
|
10837
10853
|
let last_value;
|
|
10838
10854
|
let initial_run = true;
|
|
10839
|
-
$b8hua$createComputed($b8hua$
|
|
10855
|
+
$b8hua$createComputed($b8hua$catchify(async () => {
|
|
10840
10856
|
last_value = fn();
|
|
10841
10857
|
if (initial_run) {
|
|
10842
10858
|
initial_run = false;
|
|
@@ -10884,7 +10900,7 @@ function $5e6abec0dab4e610$export$6e49da55e449af7c(_ref) {
|
|
|
10884
10900
|
}]); // get rid of old data the browser saves the old state and will restore it later on
|
|
10885
10901
|
};
|
|
10886
10902
|
|
|
10887
|
-
$b8hua$createComputed($b8hua$
|
|
10903
|
+
$b8hua$createComputed($b8hua$catchify(() => {
|
|
10888
10904
|
const last_result = get_last_result_in_viewport_();
|
|
10889
10905
|
if (last_result == undefined || last_result <= 0 || last_result == Infinity) return;
|
|
10890
10906
|
if (isNaN(last_result)) {
|
|
@@ -10911,7 +10927,7 @@ function $5e6abec0dab4e610$export$6e49da55e449af7c(_ref) {
|
|
|
10911
10927
|
set_to_later = last_result;
|
|
10912
10928
|
// If a delayed push timeout is already running, just changing the value that will be pushed is sufficient
|
|
10913
10929
|
if (timeout) return;
|
|
10914
|
-
timeout = setTimeout($b8hua$
|
|
10930
|
+
timeout = setTimeout($b8hua$catchify(() => {
|
|
10915
10931
|
timeout = undefined;
|
|
10916
10932
|
last_time_history_changed = +new Date();
|
|
10917
10933
|
set_min_results_loaded(set_to_later);
|
|
@@ -11022,7 +11038,7 @@ function $22470de5f42cc35d$export$f631859cab12b342(_ref) {
|
|
|
11022
11038
|
if (!result) return;
|
|
11023
11039
|
return {
|
|
11024
11040
|
href: result.page_url,
|
|
11025
|
-
onClick: $b8hua$
|
|
11041
|
+
onClick: $b8hua$catchify(ev => router_.navigate_.go_to_({
|
|
11026
11042
|
new_url_: result.page_url,
|
|
11027
11043
|
is_replace_: false,
|
|
11028
11044
|
event_: ev
|
|
@@ -11037,7 +11053,7 @@ function $22470de5f42cc35d$export$f631859cab12b342(_ref) {
|
|
|
11037
11053
|
if (content_result_) return $b8hua$ssrElement("a", attributes, () => $b8hua$escape(children), true);
|
|
11038
11054
|
return $b8hua$ssrElement("div", attributes, () => $b8hua$escape(children), true);
|
|
11039
11055
|
};
|
|
11040
|
-
return $b8hua$ssr($22470de5f42cc35d$var$_tmpl$2, $b8hua$ssrHydrationKey(), $b8hua$escape($b8hua$createComponent(LinkIfPossible, $b8hua$
|
|
11056
|
+
return $b8hua$ssr($22470de5f42cc35d$var$_tmpl$2, $b8hua$ssrHydrationKey(), $b8hua$escape($b8hua$createComponent(LinkIfPossible, $b8hua$mergeProps(make_link_attributes, {
|
|
11041
11057
|
tabIndex: "-1",
|
|
11042
11058
|
get children() {
|
|
11043
11059
|
return $b8hua$createComponent((0, $3c5e15c6ee4227a9$export$605674723bcc715c), {
|
|
@@ -11045,7 +11061,7 @@ function $22470de5f42cc35d$export$f631859cab12b342(_ref) {
|
|
|
11045
11061
|
height: "28"
|
|
11046
11062
|
});
|
|
11047
11063
|
}
|
|
11048
|
-
}))), $b8hua$escape($b8hua$createComponent(LinkIfPossible, $b8hua$
|
|
11064
|
+
}))), $b8hua$escape($b8hua$createComponent(LinkIfPossible, $b8hua$mergeProps({
|
|
11049
11065
|
"class": "content-title line-clamp"
|
|
11050
11066
|
}, make_link_attributes, {
|
|
11051
11067
|
get title() {
|
|
@@ -11203,7 +11219,7 @@ function $d53ebed6f63304e4$export$6d0c9c22f6652669(_ref) {
|
|
|
11203
11219
|
return (0, $69602b3d8fd54c38$export$2452208c79fe93ea).content;
|
|
11204
11220
|
},
|
|
11205
11221
|
number_of_results_: num_results
|
|
11206
|
-
})), $b8hua$escape($b8hua$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $b8hua$
|
|
11222
|
+
})), $b8hua$escape($b8hua$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $b8hua$mergeProps({
|
|
11207
11223
|
layout: "grid",
|
|
11208
11224
|
element_attributes: {
|
|
11209
11225
|
class: "cards"
|
|
@@ -11406,7 +11422,7 @@ function $937791b86d3d1509$export$44f738469d5570cf(_ref) {
|
|
|
11406
11422
|
// We might only have changed the left position which align_field doesn't know about, make it poll the position for a while
|
|
11407
11423
|
setPollAlignment_(true);
|
|
11408
11424
|
if (disableResizePollingTimeout) clearTimeout(disableResizePollingTimeout);
|
|
11409
|
-
disableResizePollingTimeout = setTimeout($b8hua$
|
|
11425
|
+
disableResizePollingTimeout = setTimeout($b8hua$catchify(() => {
|
|
11410
11426
|
setPollAlignment_(false);
|
|
11411
11427
|
disableResizePollingTimeout = undefined;
|
|
11412
11428
|
}), 1000);
|
|
@@ -11539,7 +11555,7 @@ function $da279c5a540c6846$export$a54ec244c8863715(_ref) {
|
|
|
11539
11555
|
} : {})
|
|
11540
11556
|
};
|
|
11541
11557
|
});
|
|
11542
|
-
const [search_results_] = $b8hua$createResource(search_query_base_, $b8hua$
|
|
11558
|
+
const [search_results_] = $b8hua$createResource(search_query_base_, $b8hua$catchify(async base_query => {
|
|
11543
11559
|
set_all_products_loaded(false);
|
|
11544
11560
|
// only first page of results
|
|
11545
11561
|
return await $5e6abec0dab4e610$export$cc42dd29bf655ab6({
|
|
@@ -11587,7 +11603,7 @@ function $da279c5a540c6846$export$a54ec244c8863715(_ref) {
|
|
|
11587
11603
|
const [, setModalFieldStyle] = modal_field_style;
|
|
11588
11604
|
const [, setModalBackdropStyle] = modal_backdrop_style;
|
|
11589
11605
|
const [get_search_field_elements, set_search_field_elements] = $b8hua$createSignal();
|
|
11590
|
-
const SafeSearchField = $b8hua$
|
|
11606
|
+
const SafeSearchField = $b8hua$catchify((0, $584c06c09cf4609d$export$b94867ecbd698f21));
|
|
11591
11607
|
const [sort_or_filter_open_, set_sort_or_filter_open_] = $b8hua$createSignal(false);
|
|
11592
11608
|
const [desktop_filter_elements_, set_desktop_filter_elements] = $b8hua$createSignal();
|
|
11593
11609
|
const n_hits = $b8hua$createMemo(() => {
|
|
@@ -11603,7 +11619,7 @@ function $da279c5a540c6846$export$a54ec244c8863715(_ref) {
|
|
|
11603
11619
|
var _search_results_4, _search_results_4$con;
|
|
11604
11620
|
return ((_search_results_4 = search_results_()) !== null && _search_results_4 !== void 0 && (_search_results_4$con = _search_results_4.content_search_links) !== null && _search_results_4$con !== void 0 && _search_results_4$con.length ? i18n_.no_products_ : i18n_.no_results_text_)();
|
|
11605
11621
|
});
|
|
11606
|
-
const results_for = $b8hua$createComponent((0, $69602b3d8fd54c38$export$9dd50d35b9d94fdf), $b8hua$
|
|
11622
|
+
const results_for = $b8hua$createComponent((0, $69602b3d8fd54c38$export$9dd50d35b9d94fdf), $b8hua$mergeProps({
|
|
11607
11623
|
get type() {
|
|
11608
11624
|
return (0, $69602b3d8fd54c38$export$2452208c79fe93ea).products;
|
|
11609
11625
|
},
|
|
@@ -11647,7 +11663,7 @@ function $da279c5a540c6846$export$a54ec244c8863715(_ref) {
|
|
|
11647
11663
|
$b8hua$runWithOwner(owner, () => results_filters[1](matches ? [results_for, filters_opener] : $b8hua$ssr($da279c5a540c6846$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(results_for), $b8hua$escape(filters_opener))));
|
|
11648
11664
|
}).remove);
|
|
11649
11665
|
$3a2bed57c9a57e21$export$d31a1a1a83ad9413(search_results_, selected_filters_);
|
|
11650
|
-
$b8hua$
|
|
11666
|
+
$b8hua$catchify((0, $5e6abec0dab4e610$export$6e49da55e449af7c))({
|
|
11651
11667
|
scroll_restoration_data_: scroll_restoration_data_,
|
|
11652
11668
|
last_result_in_viewport_: last_result_in_viewport_,
|
|
11653
11669
|
id_: get_search_query_,
|
|
@@ -11693,8 +11709,8 @@ function $da279c5a540c6846$export$a54ec244c8863715(_ref) {
|
|
|
11693
11709
|
setModalBodyStyle({});
|
|
11694
11710
|
modalAlignmentSignalsRef_ === null || modalAlignmentSignalsRef_ === void 0 || modalAlignmentSignalsRef_(alignmentSignals_);
|
|
11695
11711
|
const [pollAlignment, setPollAlignment_] = $b8hua$createSignal(false);
|
|
11696
|
-
const align_position = $b8hua$
|
|
11697
|
-
div_with_field_class.addEventListener("click", $b8hua$
|
|
11712
|
+
const align_position = $b8hua$catchify((0, $1308a7816c3d4f2d$export$b3ad617e9036868))(alignmentSignals_, search_field, (0, $1308a7816c3d4f2d$export$3f238c96c45e6cc6) | (0, $1308a7816c3d4f2d$export$7895aadd1956b1c7) | (modalVersionUsed_ === 1 ? (0, $1308a7816c3d4f2d$export$902f8b4a7dae5d78) : (0, $1308a7816c3d4f2d$export$6060bc6bee850eb6) | (0, $1308a7816c3d4f2d$export$5097308c5200105a)), true, pollAlignment);
|
|
11713
|
+
div_with_field_class.addEventListener("click", $b8hua$catchify(e => {
|
|
11698
11714
|
var _target$matches, _target$closest, _on_open_, _ref4;
|
|
11699
11715
|
const target = e.target;
|
|
11700
11716
|
const sel = ".submit";
|
|
@@ -12101,7 +12117,7 @@ class $eb064bc3350276c1$export$ac6237957a15b3f0 {
|
|
|
12101
12117
|
BackIcon_: BackIcon_
|
|
12102
12118
|
});
|
|
12103
12119
|
$68e6625c8d51f847$export$5162a71f252e6122();
|
|
12104
|
-
$b8hua$
|
|
12120
|
+
$b8hua$catchify(async () => {
|
|
12105
12121
|
const {
|
|
12106
12122
|
open_modal_: open_modal_,
|
|
12107
12123
|
close_modal_: close_modal_
|
|
@@ -12365,7 +12381,7 @@ function $eb064bc3350276c1$export$f2dc7e4e4aa11abb(props) {
|
|
|
12365
12381
|
function $37e8c97bb6876197$export$828dcdd425fd3231(aligner) {
|
|
12366
12382
|
const style_element = document.createElement("style");
|
|
12367
12383
|
document.head.append(style_element);
|
|
12368
|
-
const resize_observer = new ResizeObserver($b8hua$
|
|
12384
|
+
const resize_observer = new ResizeObserver($b8hua$catchify(() => {
|
|
12369
12385
|
const styles = $cc64aabf2c7a1f1a$export$1233ca167bf71f9a({
|
|
12370
12386
|
".depict.plp .depict-search-modal .search-field": {
|
|
12371
12387
|
"height": "".concat(aligner === null || aligner === void 0 ? void 0 : aligner.clientHeight, "px")
|
|
@@ -12436,7 +12452,7 @@ const $169c13c0531d91d2$export$d86a33413558014e = openModalParams => {
|
|
|
12436
12452
|
}, dispose_aligner];
|
|
12437
12453
|
};
|
|
12438
12454
|
function $573c007c697a1831$export$d0596b5cae35ad4(open_search) {
|
|
12439
|
-
const handler = $b8hua$
|
|
12455
|
+
const handler = $b8hua$catchify(e => {
|
|
12440
12456
|
const {
|
|
12441
12457
|
key: key,
|
|
12442
12458
|
target: target
|
|
@@ -12455,7 +12471,7 @@ function $573c007c697a1831$export$d0596b5cae35ad4(open_search) {
|
|
|
12455
12471
|
function $e60a76195ac6d408$export$689e204eadb33baf(pr) {
|
|
12456
12472
|
let old_url;
|
|
12457
12473
|
let disconnect_link_observer;
|
|
12458
|
-
const link_handler = $b8hua$
|
|
12474
|
+
const link_handler = $b8hua$catchify(e => {
|
|
12459
12475
|
const link = e.currentTarget || e.target;
|
|
12460
12476
|
if (link.href === old_url) {
|
|
12461
12477
|
history.pushState(history.state, "", link.href);
|
|
@@ -12464,7 +12480,7 @@ function $e60a76195ac6d408$export$689e204eadb33baf(pr) {
|
|
|
12464
12480
|
});
|
|
12465
12481
|
let remove_added_listeners;
|
|
12466
12482
|
let resolve_remove_added_listeners;
|
|
12467
|
-
pr.addEventListener("open", $b8hua$
|
|
12483
|
+
pr.addEventListener("open", $b8hua$catchify(() => {
|
|
12468
12484
|
remove_added_listeners = new Promise(r => resolve_remove_added_listeners = r);
|
|
12469
12485
|
disconnect_link_observer = (0, $b8hua$observer).onexists("a", async _ref => {
|
|
12470
12486
|
let {
|
|
@@ -12475,12 +12491,12 @@ function $e60a76195ac6d408$export$689e204eadb33baf(pr) {
|
|
|
12475
12491
|
element.removeEventListener("click", link_handler);
|
|
12476
12492
|
});
|
|
12477
12493
|
}));
|
|
12478
|
-
pr.addEventListener("close", $b8hua$
|
|
12494
|
+
pr.addEventListener("close", $b8hua$catchify(() => {
|
|
12479
12495
|
var _disconnect_link_obse, _resolve_remove_added;
|
|
12480
12496
|
(_disconnect_link_obse = disconnect_link_observer) === null || _disconnect_link_obse === void 0 || _disconnect_link_obse();
|
|
12481
12497
|
(_resolve_remove_added = resolve_remove_added_listeners) === null || _resolve_remove_added === void 0 || _resolve_remove_added();
|
|
12482
12498
|
}));
|
|
12483
|
-
$b8hua$
|
|
12499
|
+
$b8hua$catchify(async () => {
|
|
12484
12500
|
for await (const href of (0, $b8hua$href_change_ipns)) if (!pr.is_page_(new URL(href))) old_url = href;
|
|
12485
12501
|
})();
|
|
12486
12502
|
}
|
|
@@ -12578,7 +12594,7 @@ class $f9fd3017c20b774a$export$3ccaa27d81dd8556 extends EventTarget {
|
|
|
12578
12594
|
});
|
|
12579
12595
|
$f9fd3017c20b774a$var$_classPrivateFieldInitSpec(this, $f9fd3017c20b774a$var$_unload, {
|
|
12580
12596
|
writable: true,
|
|
12581
|
-
value: /*@__PURE__*/$b8hua$
|
|
12597
|
+
value: /*@__PURE__*/$b8hua$catchify(() => {
|
|
12582
12598
|
var _classPrivateFieldGet3;
|
|
12583
12599
|
if (!$b8hua$babelruntimehelpersclassPrivateFieldGet(this, $f9fd3017c20b774a$var$_is_open)) return;
|
|
12584
12600
|
(_classPrivateFieldGet3 = $b8hua$babelruntimehelpersclassPrivateFieldGet(this, $f9fd3017c20b774a$var$_disconnect_observer)) === null || _classPrivateFieldGet3 === void 0 || _classPrivateFieldGet3.call(this);
|
|
@@ -12592,7 +12608,7 @@ class $f9fd3017c20b774a$export$3ccaa27d81dd8556 extends EventTarget {
|
|
|
12592
12608
|
});
|
|
12593
12609
|
$f9fd3017c20b774a$var$_classPrivateFieldInitSpec(this, $f9fd3017c20b774a$var$_load, {
|
|
12594
12610
|
writable: true,
|
|
12595
|
-
value: /*@__PURE__*/$b8hua$
|
|
12611
|
+
value: /*@__PURE__*/$b8hua$catchify(async els => {
|
|
12596
12612
|
$b8hua$babelruntimehelpersclassPrivateFieldSet(this, $f9fd3017c20b774a$var$_is_open, true);
|
|
12597
12613
|
// So that #load doesn't get called again
|
|
12598
12614
|
let set_should_stay_inserted;
|
|
@@ -12656,7 +12672,7 @@ class $f9fd3017c20b774a$export$3ccaa27d81dd8556 extends EventTarget {
|
|
|
12656
12672
|
async function $f9fd3017c20b774a$var$_listen2() {
|
|
12657
12673
|
const [exit_ipns, exitable_ipns] = $b8hua$make_asyncIterable_exiter((0, $b8hua$href_change_ipns));
|
|
12658
12674
|
$b8hua$babelruntimehelpersclassPrivateFieldSet(this, $f9fd3017c20b774a$var$_stop_listening, exit_ipns);
|
|
12659
|
-
const caught_page_check_fn = $b8hua$
|
|
12675
|
+
const caught_page_check_fn = $b8hua$catchify(this.is_page_, "page check failed");
|
|
12660
12676
|
for await (const href of exitable_ipns) {
|
|
12661
12677
|
const url = new URL(href);
|
|
12662
12678
|
if (!caught_page_check_fn(url)) {
|
|
@@ -12674,12 +12690,12 @@ function $f9fd3017c20b774a$var$_get_rendered_recs2() {
|
|
|
12674
12690
|
this.addEventListener("close", dispose, {
|
|
12675
12691
|
once: true
|
|
12676
12692
|
});
|
|
12677
|
-
return $b8hua$
|
|
12693
|
+
return $b8hua$catchify(this.render_, "rendering failed")() || [];
|
|
12678
12694
|
});
|
|
12679
12695
|
}
|
|
12680
12696
|
function $f9fd3017c20b774a$var$_empty_page_bugfix2() {
|
|
12681
12697
|
// Called when a "page" is "opened" using PageReplacer
|
|
12682
|
-
const on_maybe_popstate = $b8hua$
|
|
12698
|
+
const on_maybe_popstate = $b8hua$catchify(what_happened => {
|
|
12683
12699
|
if (what_happened !== "popstate") return;
|
|
12684
12700
|
const cleaned_current_url = $f9fd3017c20b774a$var$clean_url(location.href);
|
|
12685
12701
|
if (!$f9fd3017c20b774a$var$_classStaticPrivateFieldSpecGet($f9fd3017c20b774a$export$3ccaa27d81dd8556, $f9fd3017c20b774a$export$3ccaa27d81dd8556, $f9fd3017c20b774a$var$_visited_urls).has(cleaned_current_url)) {
|
|
@@ -12722,7 +12738,7 @@ var $f9fd3017c20b774a$var$_visited_urls = {
|
|
|
12722
12738
|
writable: true,
|
|
12723
12739
|
value: /*@__PURE__*/(() => {
|
|
12724
12740
|
// Keep track of all URLs that have been visited since the document that was initially loaded (loaded means the process where the browser creates a new `document` and `window` object).
|
|
12725
|
-
$b8hua$
|
|
12741
|
+
$b8hua$catchify(async () => {
|
|
12726
12742
|
// Static initialization blocks aren't supported in MobileSafari yet, otherwise this would be one.
|
|
12727
12743
|
// I don't think we want to ship a library that users are *forced* to transpile, it should run in the newest version of all major browsers. So we'll just use a function wrapper for now (adding "last 1 ios version" to the build target does a bunch of other unneeded transpilations).
|
|
12728
12744
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Static_initialization_blocks
|
|
@@ -12779,7 +12795,7 @@ function $a3026fb727bc7550$export$316f6f283ae64765(props) {
|
|
|
12779
12795
|
field_: $b8hua$createSignal({}),
|
|
12780
12796
|
backdrop_: backdropAlignmentSignal_
|
|
12781
12797
|
};
|
|
12782
|
-
const defaultHandler = $b8hua$
|
|
12798
|
+
const defaultHandler = $b8hua$catchify(e => {
|
|
12783
12799
|
const {
|
|
12784
12800
|
modalVersionUsed_: modalVersionUsed_
|
|
12785
12801
|
} = shared_properties;
|
|
@@ -12911,7 +12927,7 @@ function $43fbb365ed0ac99e$export$466cdc317043f6cb(_ref) {
|
|
|
12911
12927
|
$b8hua$createComputed(() => {
|
|
12912
12928
|
var _place_holdey_quickli, _place_holdey_quickli2;
|
|
12913
12929
|
if ((_place_holdey_quickli = place_holdey_quicklinks_data()) !== null && _place_holdey_quickli !== void 0 && (_place_holdey_quickli2 = _place_holdey_quickli[0]) !== null && _place_holdey_quickli2 !== void 0 && _place_holdey_quickli2.listing_id) {
|
|
12914
|
-
if (last_was_placeholder) queueMicrotask($b8hua$
|
|
12930
|
+
if (last_was_placeholder) queueMicrotask($b8hua$catchify(() => {
|
|
12915
12931
|
var _sliding_element;
|
|
12916
12932
|
(_sliding_element = sliding_element) === null || _sliding_element === void 0 || _sliding_element.scrollTo({
|
|
12917
12933
|
left: 0
|
|
@@ -12980,7 +12996,7 @@ function $43fbb365ed0ac99e$export$466cdc317043f6cb(_ref) {
|
|
|
12980
12996
|
} else if (!(((_intersecting_items_o = intersecting_items_object[selected_index()]) === null || _intersecting_items_o === void 0 ? void 0 : _intersecting_items_o.intersectionRatio) >= 0.95)) {
|
|
12981
12997
|
// negated larger than to handle left side of comparison being undefined
|
|
12982
12998
|
let done_work = false;
|
|
12983
|
-
$b8hua$runWithOwner(owner, () => $b8hua$createComputed($b8hua$
|
|
12999
|
+
$b8hua$runWithOwner(owner, () => $b8hua$createComputed($b8hua$catchify(() => {
|
|
12984
13000
|
if (done_work || !Array.isArray(quicklinks_data_())) return;
|
|
12985
13001
|
const sel_index = selected_index();
|
|
12986
13002
|
const target_element = sel_index >= 0 ? sel_index : 0;
|
|
@@ -13137,7 +13153,7 @@ function $a4777acaffa35a82$export$3945d6db2dfd3d12(_ref) {
|
|
|
13137
13153
|
const handler = () => allow_filter_clearing = false;
|
|
13138
13154
|
window.addEventListener("popstate", handler); // popstate only gets called when using back/forwards button of browser or the history navigate to achieve the same, but not on pushState or replaceState
|
|
13139
13155
|
$b8hua$onCleanup(() => window.removeEventListener("popstate", handler));
|
|
13140
|
-
$b8hua$createEffect($b8hua$on(crumb_data_, $b8hua$
|
|
13156
|
+
$b8hua$createEffect($b8hua$on(crumb_data_, $b8hua$catchify(new_crumb_data => {
|
|
13141
13157
|
const id_of_new_data = id_to_query_for_();
|
|
13142
13158
|
const type_of_id_of_new_data = id_type_();
|
|
13143
13159
|
if (allow_filter_clearing && previous_crumb_data && new_crumb_data && (id_of_new_data !== id_when_we_got_previous_data.id_ || type_of_id_of_new_data !== id_when_we_got_previous_data.type_)) {
|
|
@@ -13222,11 +13238,11 @@ function $3b772ef9a35560fe$export$780a853d15174484(_ref) {
|
|
|
13222
13238
|
} = _ref;
|
|
13223
13239
|
if (type === "image") {
|
|
13224
13240
|
const [wrapperSize, setWrapperSize] = $b8hua$createSignal();
|
|
13225
|
-
return $b8hua$createComponent((0, $b8hua$Dynamic), $b8hua$
|
|
13241
|
+
return $b8hua$createComponent((0, $b8hua$Dynamic), $b8hua$mergeProps({
|
|
13226
13242
|
component: link ? "a" : "div",
|
|
13227
13243
|
"class": "d-standard-content-wrapper",
|
|
13228
13244
|
get onClick() {
|
|
13229
|
-
return $b8hua$
|
|
13245
|
+
return $b8hua$catchify1(ev => link && router_.navigate_.go_to_({
|
|
13230
13246
|
new_url_: link,
|
|
13231
13247
|
is_replace_: false,
|
|
13232
13248
|
event_: ev
|
|
@@ -13237,11 +13253,13 @@ function $3b772ef9a35560fe$export$780a853d15174484(_ref) {
|
|
|
13237
13253
|
}, {
|
|
13238
13254
|
get children() {
|
|
13239
13255
|
return $b8hua$createComponent((0, $98688279b9059f50$export$140423fa4bfb6d63), {
|
|
13240
|
-
|
|
13241
|
-
|
|
13242
|
-
|
|
13243
|
-
|
|
13244
|
-
|
|
13256
|
+
size: () => {
|
|
13257
|
+
var _wrapperSize, _wrapperSize$;
|
|
13258
|
+
return ((_wrapperSize = wrapperSize()) === null || _wrapperSize === void 0 ? void 0 : (_wrapperSize$ = _wrapperSize[0]) === null || _wrapperSize$ === void 0 ? void 0 : _wrapperSize$.call(_wrapperSize)) || 0;
|
|
13259
|
+
},
|
|
13260
|
+
sizeHeight: () => {
|
|
13261
|
+
var _wrapperSize2, _wrapperSize2$;
|
|
13262
|
+
return ((_wrapperSize2 = wrapperSize()) === null || _wrapperSize2 === void 0 ? void 0 : (_wrapperSize2$ = _wrapperSize2[1]) === null || _wrapperSize2$ === void 0 ? void 0 : _wrapperSize2$.call(_wrapperSize2)) || 0;
|
|
13245
13263
|
},
|
|
13246
13264
|
src: mediaUrl,
|
|
13247
13265
|
"class": "d-standard-content"
|
|
@@ -13356,7 +13374,7 @@ function $4b4b262708b516ee$export$f7d2f673fc2f091d(_ref) {
|
|
|
13356
13374
|
// Make "Get products in listing" request to get products in listing
|
|
13357
13375
|
const [plp_products_] = $b8hua$createResource(products_query_base_,
|
|
13358
13376
|
// only first page of results, unless the history state says we should load more (can't do that in load more thing, I tested, they need to be added at once for the browser to not give up scroll restoration)
|
|
13359
|
-
$b8hua$
|
|
13377
|
+
$b8hua$catchify1(base_query => $5e6abec0dab4e610$export$cc42dd29bf655ab6({
|
|
13360
13378
|
id_: $b8hua$untrack(id_to_query_for_),
|
|
13361
13379
|
scroll_restoration_data_: scroll_restoration_data_,
|
|
13362
13380
|
min_products_to_fetch_: min_products_to_fetch_,
|
|
@@ -13376,7 +13394,7 @@ function $4b4b262708b516ee$export$f7d2f673fc2f091d(_ref) {
|
|
|
13376
13394
|
id_type_: id_type_()
|
|
13377
13395
|
}));
|
|
13378
13396
|
// Make "Get Listing" request to get quicklinks, breadcrumbs, title, etc
|
|
13379
|
-
const [plp_meta] = $b8hua$createResource(meta_query_base, $b8hua$
|
|
13397
|
+
const [plp_meta] = $b8hua$createResource(meta_query_base, $b8hua$catchify1(query => depict_api_.get_listing(query)));
|
|
13380
13398
|
const contentBlocksByRow = $12ff24fdc4b26d88$export$7a92d995f1bf3592(history_content_blocks_, plp_meta, content_blocks_by_row_, router_);
|
|
13381
13399
|
const available_sortings_ = $b8hua$createMemo(() => {
|
|
13382
13400
|
var _plp_products_, _plp_products_$sorts;
|
|
@@ -13511,7 +13529,7 @@ function $4b4b262708b516ee$export$f7d2f673fc2f091d(_ref) {
|
|
|
13511
13529
|
filterModalParent_: filterModalParent_,
|
|
13512
13530
|
...extra_sort_and_filter_args_
|
|
13513
13531
|
});
|
|
13514
|
-
$b8hua$
|
|
13532
|
+
$b8hua$catchify1((0, $5e6abec0dab4e610$export$6e49da55e449af7c))({
|
|
13515
13533
|
scroll_restoration_data_: scroll_restoration_data_,
|
|
13516
13534
|
last_result_in_viewport_: last_result_in_viewport_,
|
|
13517
13535
|
id_: id_to_query_for_,
|
|
@@ -13525,7 +13543,7 @@ function $4b4b262708b516ee$export$f7d2f673fc2f091d(_ref) {
|
|
|
13525
13543
|
$b8hua$createComputed(() => {
|
|
13526
13544
|
if (plp_products_.loading) set_can_write_scroll_restoration(false);else if (plp_products_()) set_can_write_scroll_restoration(true);
|
|
13527
13545
|
});
|
|
13528
|
-
$b8hua$createRenderEffect($b8hua$
|
|
13546
|
+
$b8hua$createRenderEffect($b8hua$catchify1(async () => {
|
|
13529
13547
|
var _only_show_filters_op;
|
|
13530
13548
|
const slim = is_slim_();
|
|
13531
13549
|
const only_show_filters_opener = (_only_show_filters_op = only_show_filters_opener_) === null || _only_show_filters_op === void 0 ? void 0 : _only_show_filters_op();
|
|
@@ -13668,7 +13686,7 @@ function $4b4b262708b516ee$var$add_us_to_crumbs(plp_meta) {
|
|
|
13668
13686
|
var _plp_meta3;
|
|
13669
13687
|
const api_value = (_plp_meta3 = plp_meta()) === null || _plp_meta3 === void 0 ? void 0 : _plp_meta3.breadcrumbs;
|
|
13670
13688
|
if (!api_value) return api_value;
|
|
13671
|
-
return [...api_value, $b8hua$
|
|
13689
|
+
return [...api_value, $b8hua$mergeProps1(plp_meta(), {
|
|
13672
13690
|
get page_url() {
|
|
13673
13691
|
return href_accessor();
|
|
13674
13692
|
}
|
|
@@ -13782,4 +13800,4 @@ function $8821a19349c36651$export$e2bf8ce7779e827e(props) {
|
|
|
13782
13800
|
}, "Entire CategoryPage failed");
|
|
13783
13801
|
}
|
|
13784
13802
|
$b8hua$add_to_version_info("ui", (0, $8db9a15135765c11$export$83d89fbfd8236492));
|
|
13785
|
-
export { $80c7883e020be192$export$f98b8d5ea7207a1 as setExtraDisplayTransformers, $80c7883e020be192$export$b2d94be4f02525b2 as getExtraDisplayTransformers, $ff7feae4dddd6073$export$92aa5d691d588f3f as remap_blocks_to_index, $715f7f2e53146662$export$d4d96868197be50e as useMobileHover, $a35e6f680c5bbc60$export$54299a3c81f5425 as useVisibilityState, $002f09d00aac50b2$export$eaa625fb39439e37 as useSlidableInformation, $618bd53ea0a41cd4$export$80bb7300ce6a8be3 as useProductCardIsVisible, $618bd53ea0a41cd4$export$f223d69ed12f5fb7 as CurrentlyIntersectingContext, $8e8b179489080711$export$5bad61ecde080b1f as useExpandingContainerReactive, $bb34cd283e904784$export$2c9f9bf2092486aa as LooksSliderOrGrid, $22dd375b476673e2$export$44809a8a3e867e30 as LookCard, $ac571292d606f30b$export$7e1297a3a19f10d8 as PseudoRouter, $6d75ec14f537c37f$export$83bb9af5671e1dbe as promiseSafeStructuredClone, $68e6625c8d51f847$export$5162a71f252e6122 as preserve_items_in_history_dot_state, $68e6625c8d51f847$export$3064e1e8c6513da3 as prefixes_to_preserve_in_history_dot_state, $9b35d1384e31813a$export$29d28dadc2d6b631 as allowNativeNavigation, $b026fa9c9c904a98$export$1ea76ea778b880dd as modalVersionSymbol, $a604a8ffa4e4c03f$export$e417c49320921907 as createDeparallelizedNoDropResource, $01c33966d9ddb108$export$f50b88e2a00918b5 as throw_globally, $40411f2ec772c376$export$9265e66f26f8e383 as ClassicSearchModal, $06fcd2a345efd24d$export$b0c55aa2e87c4be7 as SearchModalV2, $98688279b9059f50$export$9d4a4b669b1929ab as ModernResponsiveContainedImage, $6a439680ae7e9ba3$export$3e41faf802a29e71 as Tab, $6a439680ae7e9ba3$export$b2539bed5023c21c as Tabs, $6b0fd8fd20df8ccf$export$d4973c31938cbfd1 as ShopTheLookButton, $972f6bce0f9d61be$export$e183a13865960371 as history_dot_state_to_state, $2855bffe06ef7a03$export$916e6850778505f6 as strip_encoded_filter_and_sort, $2855bffe06ef7a03$export$58aa3f171519b6d7 as encode_filters, $2855bffe06ef7a03$export$f934fa24c3a86811 as decode_filters, $2855bffe06ef7a03$export$62acb285a7579555 as encode_sorting, $2855bffe06ef7a03$export$766e9676e74997d3 as decode_sorting, $4df489344a0f97c7$export$d7b7ab832c20e2f4 as shopifyContainedImageContextSymbol, $5441862cd2f5e111$export$e68cff63f76bd15b as ListingProvider, $5441862cd2f5e111$export$8d0c4fdbb05a2f2e as useListing, $1e69163caedaab4e$export$11354f017ddc9790 as ProductCardIndexProvider, $1e69163caedaab4e$export$e3faf4d95300054f as useProductCardIndex, $4df489344a0f97c7$export$e4b984597b71e989 as ShopifyContainedImage, $002f09d00aac50b2$export$6649caad96ef8870 as SlidableItems, $fc830a7ee59416ef$export$ebdc3711f7e02ccd as make_accurate_width_accessor, $d5d7e58c5c9d8db0$export$9574e176201e5e8d as RecommendationSlider, $b432b11321ad4c97$export$9756467d34d91cdb as RecommendationGrid, $56047603f9d212b6$export$6e5611bc7e57e477 as ShopifyResponsiveImg, $
|
|
13803
|
+
export { $98688279b9059f50$export$140423fa4bfb6d63 as ModernResponsiveImage, $80c7883e020be192$export$f98b8d5ea7207a1 as setExtraDisplayTransformers, $80c7883e020be192$export$b2d94be4f02525b2 as getExtraDisplayTransformers, $ff7feae4dddd6073$export$92aa5d691d588f3f as remap_blocks_to_index, $715f7f2e53146662$export$d4d96868197be50e as useMobileHover, $a35e6f680c5bbc60$export$54299a3c81f5425 as useVisibilityState, $002f09d00aac50b2$export$eaa625fb39439e37 as useSlidableInformation, $618bd53ea0a41cd4$export$80bb7300ce6a8be3 as useProductCardIsVisible, $618bd53ea0a41cd4$export$f223d69ed12f5fb7 as CurrentlyIntersectingContext, $8e8b179489080711$export$5bad61ecde080b1f as useExpandingContainerReactive, $bb34cd283e904784$export$2c9f9bf2092486aa as LooksSliderOrGrid, $22dd375b476673e2$export$44809a8a3e867e30 as LookCard, $ac571292d606f30b$export$7e1297a3a19f10d8 as PseudoRouter, $6d75ec14f537c37f$export$83bb9af5671e1dbe as promiseSafeStructuredClone, $68e6625c8d51f847$export$5162a71f252e6122 as preserve_items_in_history_dot_state, $68e6625c8d51f847$export$3064e1e8c6513da3 as prefixes_to_preserve_in_history_dot_state, $9b35d1384e31813a$export$29d28dadc2d6b631 as allowNativeNavigation, $b026fa9c9c904a98$export$1ea76ea778b880dd as modalVersionSymbol, $a604a8ffa4e4c03f$export$e417c49320921907 as createDeparallelizedNoDropResource, $01c33966d9ddb108$export$f50b88e2a00918b5 as throw_globally, $40411f2ec772c376$export$9265e66f26f8e383 as ClassicSearchModal, $06fcd2a345efd24d$export$b0c55aa2e87c4be7 as SearchModalV2, $98688279b9059f50$export$9d4a4b669b1929ab as ModernResponsiveContainedImage, $6a439680ae7e9ba3$export$3e41faf802a29e71 as Tab, $6a439680ae7e9ba3$export$b2539bed5023c21c as Tabs, $6b0fd8fd20df8ccf$export$d4973c31938cbfd1 as ShopTheLookButton, $972f6bce0f9d61be$export$e183a13865960371 as history_dot_state_to_state, $2855bffe06ef7a03$export$916e6850778505f6 as strip_encoded_filter_and_sort, $2855bffe06ef7a03$export$58aa3f171519b6d7 as encode_filters, $2855bffe06ef7a03$export$f934fa24c3a86811 as decode_filters, $2855bffe06ef7a03$export$62acb285a7579555 as encode_sorting, $2855bffe06ef7a03$export$766e9676e74997d3 as decode_sorting, $4df489344a0f97c7$export$d7b7ab832c20e2f4 as shopifyContainedImageContextSymbol, $5441862cd2f5e111$export$e68cff63f76bd15b as ListingProvider, $5441862cd2f5e111$export$8d0c4fdbb05a2f2e as useListing, $1e69163caedaab4e$export$11354f017ddc9790 as ProductCardIndexProvider, $1e69163caedaab4e$export$e3faf4d95300054f as useProductCardIndex, $4df489344a0f97c7$export$e4b984597b71e989 as ShopifyContainedImage, $002f09d00aac50b2$export$6649caad96ef8870 as SlidableItems, $fc830a7ee59416ef$export$ebdc3711f7e02ccd as make_accurate_width_accessor, $d5d7e58c5c9d8db0$export$9574e176201e5e8d as RecommendationSlider, $b432b11321ad4c97$export$9756467d34d91cdb as RecommendationGrid, $56047603f9d212b6$export$6e5611bc7e57e477 as ShopifyResponsiveImg, $801e8845d3fa3653$export$94026ee33dbabc26 as ImageContainer, $74777e8fe65b3dcb$export$b69d0d92862de18b as SentryErrorBoundary, $74777e8fe65b3dcb$export$240ecf5363d76c0f as ExtraSentryContextProvider, $ad371564683947ab$export$6c6d7a51fa9aa15d as ExpandingDetails, $e18ab2868df26f40$export$f091cbac892643a4 as accessor_of_object_to_object_with_accessor_values, $4711a82d08d2021b$export$fecbb157621501bd as SelectedFilters, $f6b0500577e1b210$export$3f1a388cc0d8fed7 as FilterBody, $44aa24b1bb793549$export$b288c38ae3fddb56 as create_modified_filters, $63f1f8dbcd07d3b0$export$d21e32dfedac04be as SolidLayout, $63f1f8dbcd07d3b0$export$445d8d3f5f706a40 as SolidLayoutWithProvidedElement, $d5f1e6a0f9117286$export$79b1565500412d9b as general_modal_abstraction, $9783d437ad61594c$export$3b621d86b1566b2 as CrossIcon, $ca6ab5f08bd28bca$export$8be2714ec7f169ee as GenericSliderArrowButton, $50aebf5b445518eb$export$58e808b1db15d3bc as fetchDepictRecommendations, $fa332ea03168857c$export$b91cec6bdc6b32a1 as CategoryTitle, $702d7656a373973e$export$824dde41348efed1 as embedded_num_products, $160ea2b55d8772d2$export$c1a6b039e689a58e as get_listings, $f5f54892fd0c7d9f$export$f34314aa9505732e as DepictCategory, $eb064bc3350276c1$export$ac6237957a15b3f0 as DepictSearch, $eb064bc3350276c1$export$bde3eb976dfded9 as get_search_query_updating_blocked_signal, $eb064bc3350276c1$export$f2dc7e4e4aa11abb as SearchPage, $f3b7124b76123e44$export$aa14a9f43128f61f as ProductCardError, $169c13c0531d91d2$export$d86a33413558014e as open_modal_with_alignment, $5eaa00b951637e96$export$ee1733d9a8495996 as DefaultInstantCardPlaceholder, $1308a7816c3d4f2d$export$b3ad617e9036868 as align_field, $1308a7816c3d4f2d$export$3f238c96c45e6cc6 as ALIGN_TOP, $1308a7816c3d4f2d$export$902f8b4a7dae5d78 as ALIGN_WIDTH_ON_MODAL, $1308a7816c3d4f2d$export$7895aadd1956b1c7 as ALIGN_LEFT, $1308a7816c3d4f2d$export$6060bc6bee850eb6 as SET_CENTERED_LEFT, $a9c7ba6087881ac2$export$6daf8749b65a1b77 as convert_sdk_cols_at_size_to_layout, $cc64aabf2c7a1f1a$export$1233ca167bf71f9a as styles_to_valid_css_string, $e56d241d0f33d459$export$fe334901e8bebd57 as disable_scrolling, $573c007c697a1831$export$d0596b5cae35ad4 as open_search_with_shift_slash, $284849364a6ef73a$export$e015ed2f2950f2e3 as DepictAPI, $00a5b94f0c11efbb$export$d9f36cf74e24d595 as media_query_to_accessor, $e60a76195ac6d408$export$689e204eadb33baf as setup_fast_leave, $a61a2051e15c8d7a$export$5196e4c01fa56fcb as show_toast, $60ec7a29849d81db$export$a71e92cfbb498adc as SolidFormatPrice, $37e8c97bb6876197$export$828dcdd425fd3231 as connect_search_field_height_to_aligner_height, $bc2337c9a05ecd18$export$acb3eaade4b23afd as BasePlaceholder, $ceafb6fb91c6f394$export$89c6019e4baa40b1 as TextPlaceholder, $3ab4aa97880fb88d$export$3f37af283f8fb843 as ImagePlaceholder, $f9fd3017c20b774a$export$3ccaa27d81dd8556 as PageReplacer, $d399250dfa491636$export$864d304a0bc46829 as defaultGridSpacing, $d399250dfa491636$export$c3834fa86c616831 as defaultColsAtSize, $d399250dfa491636$export$7bf543b9d9be2c22 as defaultCategoryTitlePlugin, $8db9a15135765c11$export$83d89fbfd8236492 as version, $a3026fb727bc7550$export$316f6f283ae64765 as SearchField, $62a8813a51fbd22f$export$5b7c3ce0ebe51f86 as BreadCrumbs, $62a8813a51fbd22f$export$de035477d6fef996 as QuickLinks, $8821a19349c36651$export$e2bf8ce7779e827e as CategoryPage, $4be619ec2cd7bba3$export$54c6d6ff54e72743 as makeSizeAccessors };
|