@depict-ai/ui 3.0.0 → 3.0.2
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 +27 -82
- package/ES10/index.d.ts +15 -81
- package/ES10/index.js +27 -82
- package/latest/index.cjs +27 -79
- package/latest/index.d.ts +15 -81
- package/latest/index.js +27 -79
- package/package.json +1 -1
- package/server/ES10/index.cjs +25 -80
- package/server/ES10/index.d.ts +15 -81
- package/server/ES10/index.js +25 -80
- package/server/latest/index.cjs +25 -77
- package/server/latest/index.d.ts +15 -81
- package/server/latest/index.js +25 -77
package/server/ES10/index.cjs
CHANGED
|
@@ -83,7 +83,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $33eed84f447aa0c0$expo
|
|
|
83
83
|
$parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $33eed84f447aa0c0$export$7bf543b9d9be2c22);
|
|
84
84
|
$parcel$export(module.exports, "version", () => $aa1938dec50d6c12$export$83d89fbfd8236492);
|
|
85
85
|
/*! Depict.ai search and product listing SDK */
|
|
86
|
-
const $aa1938dec50d6c12$export$83d89fbfd8236492 = "3.0.
|
|
86
|
+
const $aa1938dec50d6c12$export$83d89fbfd8236492 = "3.0.2";
|
|
87
87
|
const $9d19451330d04c3c$var$_tmpl$ = ["<svg", ' xmlns="http://www.w3.org/2000/svg"', ' viewBox="0 0 14 26"><path d="M2 24.656c-.078 0-.156-.016-.234-.047s-.133-.066-.187-.129c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422l10.371-10.371L1.578 2.883c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422.258-.176.422-.176.305.059.422.176l10.805 10.793a.59.59 0 0 1 .176.434c0 .172-.059.305-.176.422L2.422 24.48a.42.42 0 0 1-.199.129.54.54 0 0 1-.223.047zm0 0" fill="#0f0f0f"></path></svg>'];
|
|
88
88
|
function $9d19451330d04c3c$export$8be2714ec7f169ee() {
|
|
89
89
|
var _$escape2, _$escape3;
|
|
@@ -4768,7 +4768,6 @@ var $e270e9f953fcbc58$var$_get_cache_obj_for_endpoint = /*#__PURE__*/new WeakSet
|
|
|
4768
4768
|
var $e270e9f953fcbc58$var$_add_ids_to_request = /*#__PURE__*/new WeakMap();
|
|
4769
4769
|
var $e270e9f953fcbc58$var$_get_metadata = /*#__PURE__*/new WeakMap();
|
|
4770
4770
|
var $e270e9f953fcbc58$var$_get_session_id = /*#__PURE__*/new WeakMap();
|
|
4771
|
-
var $e270e9f953fcbc58$var$_guard_url_creator_length = /*#__PURE__*/new WeakSet();
|
|
4772
4771
|
var $e270e9f953fcbc58$var$_run_url_creator_for_suggest = /*#__PURE__*/new WeakSet();
|
|
4773
4772
|
var $e270e9f953fcbc58$var$_run_display_transformers_for_rest = /*#__PURE__*/new WeakSet();
|
|
4774
4773
|
var $e270e9f953fcbc58$var$_cached_request = /*#__PURE__*/new WeakSet();
|
|
@@ -4777,9 +4776,7 @@ class $e270e9f953fcbc58$export$e015ed2f2950f2e3 {
|
|
|
4777
4776
|
$e270e9f953fcbc58$var$_classPrivateMethodInitSpec(this, $e270e9f953fcbc58$var$_cached_request);
|
|
4778
4777
|
$e270e9f953fcbc58$var$_classPrivateMethodInitSpec(this, $e270e9f953fcbc58$var$_run_display_transformers_for_rest);
|
|
4779
4778
|
$e270e9f953fcbc58$var$_classPrivateMethodInitSpec(this, $e270e9f953fcbc58$var$_run_url_creator_for_suggest);
|
|
4780
|
-
$e270e9f953fcbc58$var$_classPrivateMethodInitSpec(this, $e270e9f953fcbc58$var$_guard_url_creator_length);
|
|
4781
4779
|
$e270e9f953fcbc58$var$_classPrivateMethodInitSpec(this, $e270e9f953fcbc58$var$_get_cache_obj_for_endpoint);
|
|
4782
|
-
$parcel$interopDefault($3hooq$babelruntimehelpersdefineProperty)(this, "page_url_creator", void 0);
|
|
4783
4780
|
$parcel$interopDefault($3hooq$babelruntimehelpersdefineProperty)(this, "display_transformers", void 0);
|
|
4784
4781
|
$e270e9f953fcbc58$var$_classPrivateFieldInitSpec(this, $e270e9f953fcbc58$var$_supports_finalization_registry, {
|
|
4785
4782
|
writable: true,
|
|
@@ -4811,18 +4808,15 @@ class $e270e9f953fcbc58$export$e015ed2f2950f2e3 {
|
|
|
4811
4808
|
const {
|
|
4812
4809
|
get_metadata: get_metadata,
|
|
4813
4810
|
get_session_id: _get_session_id2,
|
|
4814
|
-
page_url_creator: _page_url_creator,
|
|
4815
4811
|
display_transformers: _display_transformers
|
|
4816
4812
|
} = options !== null && options !== void 0 ? options : {};
|
|
4817
4813
|
$parcel$interopDefault($3hooq$babelruntimehelpersclassPrivateFieldSet)(this, $e270e9f953fcbc58$var$_get_metadata, get_metadata);
|
|
4818
4814
|
$parcel$interopDefault($3hooq$babelruntimehelpersclassPrivateFieldSet)(this, $e270e9f953fcbc58$var$_get_session_id, _get_session_id2);
|
|
4819
|
-
this.page_url_creator = _page_url_creator;
|
|
4820
4815
|
this.display_transformers = _display_transformers;
|
|
4821
4816
|
}
|
|
4822
4817
|
async suggest(input_req) {
|
|
4823
4818
|
var _classPrivateFieldGet3;
|
|
4824
4819
|
const with_ids = $parcel$interopDefault($3hooq$babelruntimehelpersclassPrivateFieldGet)(this, $e270e9f953fcbc58$var$_add_ids_to_request).call(this, input_req);
|
|
4825
|
-
const owner = $3hooq$solidjs.getOwner();
|
|
4826
4820
|
const metaData = await ((_classPrivateFieldGet3 = $parcel$interopDefault($3hooq$babelruntimehelpersclassPrivateFieldGet)(this, $e270e9f953fcbc58$var$_get_metadata)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.call(this));
|
|
4827
4821
|
const request = metaData ? Object.assign(with_ids, {
|
|
4828
4822
|
metadata: JSON.stringify(metaData)
|
|
@@ -4834,7 +4828,7 @@ class $e270e9f953fcbc58$export$e015ed2f2950f2e3 {
|
|
|
4834
4828
|
const decoded_json = await results.json();
|
|
4835
4829
|
if (!Array.isArray(decoded_json === null || decoded_json === void 0 ? void 0 : decoded_json.suggestions)) break attempt_to_return_api_response;
|
|
4836
4830
|
try {
|
|
4837
|
-
return await $
|
|
4831
|
+
return await $e270e9f953fcbc58$var$_classPrivateMethodGet(this, $e270e9f953fcbc58$var$_run_url_creator_for_suggest, $e270e9f953fcbc58$var$_run_url_creator_for_suggest2).call(this, input_req.merchant, input_req.market, decoded_json);
|
|
4838
4832
|
} catch (e) {
|
|
4839
4833
|
$3hooq$depictaiutilishared.dwarn("displayTransformer failed", e);
|
|
4840
4834
|
}
|
|
@@ -4921,101 +4915,55 @@ function $e270e9f953fcbc58$var$_get_cache_obj_for_endpoint2(endpoint) {
|
|
|
4921
4915
|
})) : undefined
|
|
4922
4916
|
});
|
|
4923
4917
|
}
|
|
4924
|
-
function $e270e9f953fcbc58$var$_guard_url_creator_length2(expected, received) {
|
|
4925
|
-
if (expected.length !== received.length) {
|
|
4926
|
-
const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
|
|
4927
|
-
queueMicrotask(() => {
|
|
4928
|
-
throw e;
|
|
4929
|
-
});
|
|
4930
|
-
throw e;
|
|
4931
|
-
}
|
|
4932
|
-
}
|
|
4933
4918
|
async function $e270e9f953fcbc58$var$_run_url_creator_for_suggest2(merchant, market, response) {
|
|
4934
4919
|
var _this$display_transfo;
|
|
4935
|
-
const page_url_creator = this.page_url_creator;
|
|
4936
4920
|
const category_transformer = (_this$display_transfo = this.display_transformers) === null || _this$display_transfo === void 0 ? void 0 : _this$display_transfo.categories;
|
|
4937
|
-
if (!
|
|
4921
|
+
if (!category_transformer) return response;
|
|
4938
4922
|
// find category suggestions, run thing with them, and then replace them
|
|
4939
4923
|
const category_suggestions = response.suggestions.filter(suggestion => suggestion.type === "category");
|
|
4940
|
-
const
|
|
4924
|
+
const transformed_category_suggestions = await category_transformer({
|
|
4941
4925
|
market: market,
|
|
4942
4926
|
merchant: merchant,
|
|
4943
|
-
data: [...category_suggestions]
|
|
4944
|
-
...(page_url_creator ? {
|
|
4945
|
-
type: "categories"
|
|
4946
|
-
} : {})
|
|
4927
|
+
data: [...category_suggestions]
|
|
4947
4928
|
});
|
|
4948
|
-
|
|
4949
|
-
while (page_urls.length)
|
|
4950
|
-
// Copy over getters so we sneakily can make this reactive
|
|
4951
|
-
Object.defineProperties(category_suggestions.pop(), Object.getOwnPropertyDescriptors(page_urls.pop()));
|
|
4929
|
+
response.suggestions = transformed_category_suggestions;
|
|
4952
4930
|
return response;
|
|
4953
4931
|
}
|
|
4954
4932
|
async function $e270e9f953fcbc58$var$_run_display_transformers_for_rest2(merchant, market, input_data) {
|
|
4955
4933
|
const {
|
|
4956
|
-
page_url_creator: page_url_creator,
|
|
4957
4934
|
display_transformers: display_transformers
|
|
4958
4935
|
} = this;
|
|
4959
|
-
if (!
|
|
4936
|
+
if (!display_transformers) return input_data;
|
|
4960
4937
|
const product_transformer = display_transformers === null || display_transformers === void 0 ? void 0 : display_transformers.products;
|
|
4961
4938
|
const category_transformer = display_transformers === null || display_transformers === void 0 ? void 0 : display_transformers.categories;
|
|
4962
4939
|
const content_result_transformer = display_transformers === null || display_transformers === void 0 ? void 0 : display_transformers.contentResults;
|
|
4963
4940
|
const displays = input_data.displays;
|
|
4964
|
-
const owner = $3hooq$solidjs.getOwner();
|
|
4965
4941
|
const {
|
|
4966
|
-
breadcrumbs: breadcrumbs,
|
|
4967
|
-
quick_links: quick_links,
|
|
4968
4942
|
content_search_links: content_search_links
|
|
4969
4943
|
} = input_data;
|
|
4970
|
-
if (displays &&
|
|
4971
|
-
const
|
|
4944
|
+
if (displays && product_transformer) {
|
|
4945
|
+
const transformed_displays = await product_transformer({
|
|
4972
4946
|
merchant: merchant,
|
|
4973
4947
|
market: market,
|
|
4974
|
-
displays: [...
|
|
4975
|
-
...(page_url_creator ? {
|
|
4976
|
-
type: "products"
|
|
4977
|
-
} : {})
|
|
4948
|
+
displays: [...displays]
|
|
4978
4949
|
});
|
|
4979
|
-
|
|
4980
|
-
for (let i = 0; i < displays.length; i++) {
|
|
4981
|
-
const new_display_or_page_url = page_urls[i];
|
|
4982
|
-
const old_display = displays[i];
|
|
4983
|
-
if ("page_url" in new_display_or_page_url && Object.keys(new_display_or_page_url).length === 1) {
|
|
4984
|
-
// they only returned page_url, let's put it into the display
|
|
4985
|
-
const old_display_was_modern = ("variant_index" in old_display);
|
|
4986
|
-
if (old_display_was_modern) {
|
|
4987
|
-
const variant_displays = old_display.variant_displays;
|
|
4988
|
-
for (let i = 0; i < variant_displays.length; i++) variant_displays[i].page_url = new_display_or_page_url.page_url;
|
|
4989
|
-
} else old_display.page_url = new_display_or_page_url.page_url;
|
|
4990
|
-
} else
|
|
4991
|
-
// We got a whole new display, let's replace it
|
|
4992
|
-
displays[i] = new_display_or_page_url;
|
|
4993
|
-
}
|
|
4950
|
+
input_data.displays = transformed_displays;
|
|
4994
4951
|
}
|
|
4995
|
-
if (
|
|
4952
|
+
if (category_transformer) for (const key of ["breadcrumbs", "quick_links"]) {
|
|
4953
|
+
const category_display_array = input_data[key];
|
|
4996
4954
|
if (!category_display_array) continue;
|
|
4997
|
-
const
|
|
4955
|
+
const transformed_category_displays = await category_transformer({
|
|
4998
4956
|
merchant: merchant,
|
|
4999
4957
|
market: market,
|
|
5000
|
-
data: [...category_display_array]
|
|
5001
|
-
...(page_url_creator ? {
|
|
5002
|
-
type: "categories"
|
|
5003
|
-
} : {})
|
|
4958
|
+
data: [...category_display_array]
|
|
5004
4959
|
});
|
|
5005
|
-
|
|
5006
|
-
for (let i = 0; i < category_display_array.length; i++)
|
|
5007
|
-
// Copy over getters so we sneakily can make this reactive
|
|
5008
|
-
Object.defineProperties(category_display_array[i], Object.getOwnPropertyDescriptors(page_urls[i]));
|
|
5009
|
-
}
|
|
5010
|
-
if (content_search_links !== null && content_search_links !== void 0 && content_search_links.length && content_result_transformer) {
|
|
5011
|
-
const result = await $3hooq$solidjs.runWithOwner(owner, () => content_result_transformer({
|
|
5012
|
-
merchant: merchant,
|
|
5013
|
-
market: market,
|
|
5014
|
-
data: [...content_search_links]
|
|
5015
|
-
}));
|
|
5016
|
-
$e270e9f953fcbc58$var$_classPrivateMethodGet(this, $e270e9f953fcbc58$var$_guard_url_creator_length, $e270e9f953fcbc58$var$_guard_url_creator_length2).call(this, content_search_links, result);
|
|
5017
|
-
input_data.content_search_links = result;
|
|
4960
|
+
input_data[key] = transformed_category_displays;
|
|
5018
4961
|
}
|
|
4962
|
+
if (content_search_links !== null && content_search_links !== void 0 && content_search_links.length && content_result_transformer) input_data.content_search_links = await content_result_transformer({
|
|
4963
|
+
merchant: merchant,
|
|
4964
|
+
market: market,
|
|
4965
|
+
data: [...content_search_links]
|
|
4966
|
+
});
|
|
5019
4967
|
return input_data;
|
|
5020
4968
|
}
|
|
5021
4969
|
async function $e270e9f953fcbc58$var$_cached_request2(_ref) {
|
|
@@ -5029,7 +4977,6 @@ async function $e270e9f953fcbc58$var$_cached_request2(_ref) {
|
|
|
5029
4977
|
} = _ref;
|
|
5030
4978
|
const cache_obj = $e270e9f953fcbc58$var$_classPrivateMethodGet(this, $e270e9f953fcbc58$var$_get_cache_obj_for_endpoint, $e270e9f953fcbc58$var$_get_cache_obj_for_endpoint2).call(this, endpoint_);
|
|
5031
4979
|
const with_ids = $parcel$interopDefault($3hooq$babelruntimehelpersclassPrivateFieldGet)(this, $e270e9f953fcbc58$var$_add_ids_to_request).call(this, input_req_);
|
|
5032
|
-
const owner = $3hooq$solidjs.getOwner();
|
|
5033
4980
|
const metaData = await ((_classPrivateFieldGet5 = $parcel$interopDefault($3hooq$babelruntimehelpersclassPrivateFieldGet)(this, $e270e9f953fcbc58$var$_get_metadata)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.call(this));
|
|
5034
4981
|
const request = metaData ? Object.assign(with_ids, {
|
|
5035
4982
|
metadata: metaData
|
|
@@ -5057,7 +5004,7 @@ async function $e270e9f953fcbc58$var$_cached_request2(_ref) {
|
|
|
5057
5004
|
let result;
|
|
5058
5005
|
try {
|
|
5059
5006
|
const unmodified_result = await api_response.json();
|
|
5060
|
-
result = await $
|
|
5007
|
+
result = await $e270e9f953fcbc58$var$_classPrivateMethodGet(this, $e270e9f953fcbc58$var$_run_display_transformers_for_rest, $e270e9f953fcbc58$var$_run_display_transformers_for_rest2).call(this, input_req_.merchant, input_req_.market, unmodified_result);
|
|
5061
5008
|
} catch (e) {
|
|
5062
5009
|
$3hooq$depictaiutilishared.dwarn("displayTransformer or json decoding failed", e);
|
|
5063
5010
|
break return_successfully;
|
|
@@ -6721,7 +6668,9 @@ function $1c819dc9d820a149$export$5646050d516e06bc(_ref) {
|
|
|
6721
6668
|
var _display_accessor;
|
|
6722
6669
|
return $a68b73fd7ba0853f$export$43cd1e747fecd42e({
|
|
6723
6670
|
to_url_: (_display_accessor = display_accessor()) === null || _display_accessor === void 0 ? void 0 : _display_accessor.page_url,
|
|
6724
|
-
filter_query_param_prefix_:
|
|
6671
|
+
filter_query_param_prefix_:
|
|
6672
|
+
// page_url here can be a getter if that was added in the display transformers as a way of making this reactive
|
|
6673
|
+
filter_query_param_prefix_,
|
|
6725
6674
|
sorting_query_param_: sorting_query_param_
|
|
6726
6675
|
});
|
|
6727
6676
|
});
|
|
@@ -7876,7 +7825,6 @@ class $9cbefc32b9dab36d$export$f34314aa9505732e {
|
|
|
7876
7825
|
let {
|
|
7877
7826
|
api: api,
|
|
7878
7827
|
on_navigation: on_navigation,
|
|
7879
|
-
page_url_creator: page_url_creator,
|
|
7880
7828
|
display_transformers: display_transformers,
|
|
7881
7829
|
unique_instance_key_for_state = "",
|
|
7882
7830
|
listing_id_state_key: listing_id_state_key,
|
|
@@ -7955,7 +7903,6 @@ class $9cbefc32b9dab36d$export$f34314aa9505732e {
|
|
|
7955
7903
|
reset_history_state_: reset_history_state_,
|
|
7956
7904
|
// @ts-ignore
|
|
7957
7905
|
depict_api_: api !== null && api !== void 0 ? api : new (0, $e270e9f953fcbc58$export$e015ed2f2950f2e3)({
|
|
7958
|
-
page_url_creator: page_url_creator,
|
|
7959
7906
|
display_transformers: display_transformers
|
|
7960
7907
|
}),
|
|
7961
7908
|
router_: $parcel$interopDefault($3hooq$babelruntimehelpersclassPrivateFieldGet)(this, $9cbefc32b9dab36d$var$_router),
|
|
@@ -10416,7 +10363,6 @@ class $ddd39c5f36f49703$export$ac6237957a15b3f0 {
|
|
|
10416
10363
|
url_transformer: url_transformer,
|
|
10417
10364
|
on_navigation: on_navigation,
|
|
10418
10365
|
enable_category_suggestions = true,
|
|
10419
|
-
page_url_creator: page_url_creator,
|
|
10420
10366
|
display_transformers: display_transformers,
|
|
10421
10367
|
api: api,
|
|
10422
10368
|
// Stuff needed for non-standard customer deployments that we shouldn't actually expose
|
|
@@ -10495,7 +10441,6 @@ class $ddd39c5f36f49703$export$ac6237957a15b3f0 {
|
|
|
10495
10441
|
});
|
|
10496
10442
|
// @ts-ignore
|
|
10497
10443
|
const depict_api_ = api !== null && api !== void 0 ? api : new (0, $e270e9f953fcbc58$export$e015ed2f2950f2e3)({
|
|
10498
|
-
page_url_creator: page_url_creator,
|
|
10499
10444
|
display_transformers: display_transformers
|
|
10500
10445
|
});
|
|
10501
10446
|
const previous_searches = $cfeb65948dbdcaab$export$84bba84a7b837187(get_search_query_);
|
package/server/ES10/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { ProductListingRequestV3 } from "@depict-ai/types/api/ProductListingRequ
|
|
|
11
11
|
import { GetListingRequest } from "@depict-ai/types/api/GetListingRequest";
|
|
12
12
|
import { BaseSearchRequestV3 } from "@depict-ai/types/api/BaseSearchRequestV3";
|
|
13
13
|
import { SearchFilter as _SearchFilter2 } from "@depict-ai/types/api/SearchRequestV2";
|
|
14
|
-
export const version = "3.0.
|
|
14
|
+
export const version = "3.0.2";
|
|
15
15
|
/** @jsxImportSource solid-js */
|
|
16
16
|
export function GenericSliderArrowButton(props?: {
|
|
17
17
|
width_?: number;
|
|
@@ -603,56 +603,23 @@ export type DisplayTransformers<InputDisplay extends ModernDisplay, OutputDispla
|
|
|
603
603
|
products?: (options: DisplayTransformerAlwaysThereData & {
|
|
604
604
|
displays: InputDisplay[];
|
|
605
605
|
}) => CanBePromiseWrapped<OutputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<OutputDisplay>[] : never>;
|
|
606
|
-
categories?: (options: DisplayTransformerAlwaysThereData & {
|
|
607
|
-
data:
|
|
608
|
-
}) => CanBePromiseWrapped<{
|
|
606
|
+
categories?: <T extends Breadcrumb | Quicklink | CategorySuggestion>(options: DisplayTransformerAlwaysThereData & {
|
|
607
|
+
data: T[];
|
|
608
|
+
}) => CanBePromiseWrapped<(T & {
|
|
609
609
|
page_url: string;
|
|
610
|
-
}[]>;
|
|
610
|
+
})[]>;
|
|
611
611
|
contentResults?: (options: DisplayTransformerAlwaysThereData & {
|
|
612
612
|
data: ContentLink[];
|
|
613
613
|
}) => CanBePromiseWrapped<ContentLink[]>;
|
|
614
614
|
};
|
|
615
|
-
export type
|
|
616
|
-
page_url_creator?: PageURLCreator<InputDisplay, OutputDisplay>;
|
|
617
|
-
display_transformers?: never;
|
|
618
|
-
} | {
|
|
619
|
-
page_url_creator?: never;
|
|
615
|
+
export type SomethingTakingADisplayTransformers<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = InputDisplay extends ModernDisplay ? "page_url" extends keyof InputDisplay["variant_displays"][number] ? {
|
|
620
616
|
display_transformers: DisplayTransformers<InputDisplay, OutputDisplay>;
|
|
621
617
|
} : {
|
|
622
|
-
page_url_creator: PageURLCreator<InputDisplay, OutputDisplay>;
|
|
623
|
-
display_transformers?: never;
|
|
624
|
-
} | {
|
|
625
618
|
display_transformers: DisplayTransformers<InputDisplay, OutputDisplay>;
|
|
626
|
-
page_url_creator?: never;
|
|
627
619
|
} : {
|
|
628
620
|
page_url_creator?: never;
|
|
629
621
|
display_transformers?: never;
|
|
630
622
|
};
|
|
631
|
-
type PageURLCreatorAlwaysThereData = {
|
|
632
|
-
merchant: string;
|
|
633
|
-
market: string;
|
|
634
|
-
};
|
|
635
|
-
type PageURLCreatorCategoryData = {
|
|
636
|
-
type: "categories";
|
|
637
|
-
data: (Breadcrumb | Quicklink | CategorySuggestion)[];
|
|
638
|
-
};
|
|
639
|
-
type PageURLCreatorProductData<T extends ModernDisplay> = {
|
|
640
|
-
displays: T[];
|
|
641
|
-
type: "products";
|
|
642
|
-
};
|
|
643
|
-
type PageURLCreatorOptions<InputDisplay extends ModernDisplay> = PageURLCreatorAlwaysThereData & (PageURLCreatorCategoryData | PageURLCreatorProductData<InputDisplay>);
|
|
644
|
-
/**
|
|
645
|
-
* @deprecated use DisplayTransformers instead
|
|
646
|
-
* PageUrlCreator is, in its most basic form, a function that takes in a list of categories or products and returns a list of page_urls for the provided categories or products.
|
|
647
|
-
* It's main use case is to allow for the creation of links to the product or category pages on the merchant's site.
|
|
648
|
-
* It can also be used for the depict customers which already have links to change those links (i.e. for staging sites).
|
|
649
|
-
* Also, it can be used to enrich the data for each product card in a batched way, which is why it can be an async function and return a whole display in the case of products.
|
|
650
|
-
*/
|
|
651
|
-
export type PageURLCreator<InputDisplay extends ModernDisplay, OutputDisplay extends ModernDisplay | never> = (options: PageURLCreatorOptions<InputDisplay>) => (typeof options)["type"] extends "categories" ? CanBePromiseWrapped<{
|
|
652
|
-
page_url: string;
|
|
653
|
-
}[]> : CanBePromiseWrapped<{
|
|
654
|
-
page_url: string;
|
|
655
|
-
}[]> | CanBePromiseWrapped<OutputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<OutputDisplay>[] : never>;
|
|
656
623
|
export type ExclusiveId = {
|
|
657
624
|
categoryId: string;
|
|
658
625
|
productId?: undefined;
|
|
@@ -731,21 +698,21 @@ type SearchSuggestionsResponseAfterURLCreator = { [K in keyof SearchSuggestionsR
|
|
|
731
698
|
type AddPageUrlToDisplay<T extends any[]> = (T[number] & {
|
|
732
699
|
page_url: string;
|
|
733
700
|
})[];
|
|
734
|
-
type
|
|
701
|
+
type SearchResponseAfterDisplayTransformer = { [K in keyof SearchResponse]: K extends "displays" ? AddPageUrlToDisplay<SearchResponse[K]> : K extends "filters" ? AddActualFieldToFilters<SearchResponse[K]> : SearchResponse[K] };
|
|
735
702
|
type QuicklinksOrBreadCrumbsWithPageURL<T extends Breadcrumb | Quicklink> = T & {
|
|
736
703
|
page_url: string;
|
|
737
704
|
};
|
|
738
705
|
type _AddPageUrlToDisplay1<T extends any[]> = (T[number] & {
|
|
739
706
|
page_url: string;
|
|
740
707
|
})[];
|
|
741
|
-
type
|
|
742
|
-
type
|
|
708
|
+
type ProductListingResponseAfterDisplayTransformer = { [K in keyof ProductListingResponseV3]: K extends "displays" ? _AddPageUrlToDisplay1<ProductListingResponseV3[K]> : K extends "filters" ? AddActualFieldToFilters<ProductListingResponseV3[K]> : ProductListingResponseV3[K] };
|
|
709
|
+
type GetListingResponseAfterDisplayTransformer = { [K in keyof GetListingResponse]: K extends "breadcrumbs" ? QuicklinksOrBreadCrumbsWithPageURL<Breadcrumb>[] : K extends "quick_links" ? QuicklinksOrBreadCrumbsWithPageURL<Quicklink>[] : GetListingResponse[K] };
|
|
743
710
|
type DepictAPIConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = {
|
|
744
711
|
get_metadata?: () => Promise<{
|
|
745
712
|
[k: string]: string;
|
|
746
713
|
} | undefined>;
|
|
747
714
|
get_session_id?: () => string | undefined;
|
|
748
|
-
} &
|
|
715
|
+
} & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
|
|
749
716
|
interface GetListingOptions extends GetListingRequest {
|
|
750
717
|
listing_id: string;
|
|
751
718
|
session_id?: string;
|
|
@@ -757,21 +724,20 @@ interface GetListingOptions extends GetListingRequest {
|
|
|
757
724
|
*/
|
|
758
725
|
export class DepictAPI<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never = InputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<InputDisplay> : never> {
|
|
759
726
|
#private;
|
|
760
|
-
page_url_creator: PageURLCreator<ModernDisplay, OutputDisplay> | undefined;
|
|
761
727
|
display_transformers: DisplayTransformers<ModernDisplay, OutputDisplay> | undefined;
|
|
762
728
|
constructor(options: DepictAPIConstructorOptions<InputDisplay, OutputDisplay>);
|
|
763
729
|
suggest(input_req: SearchSuggestionsRequestV3): Promise<SearchSuggestionsResponseAfterURLCreator & {
|
|
764
730
|
failed?: true;
|
|
765
731
|
}>;
|
|
766
|
-
query(input_req: SearchRequestV3): Promise<
|
|
732
|
+
query(input_req: SearchRequestV3): Promise<SearchResponseAfterDisplayTransformer & {
|
|
767
733
|
failed?: true;
|
|
768
734
|
}>;
|
|
769
|
-
get_listing(input_req: GetListingOptions): Promise<
|
|
735
|
+
get_listing(input_req: GetListingOptions): Promise<GetListingResponseAfterDisplayTransformer & {
|
|
770
736
|
failed?: true;
|
|
771
737
|
}>;
|
|
772
738
|
get_listing_products(input_req: ProductListingRequestV3 & {
|
|
773
739
|
listing_id: string;
|
|
774
|
-
}): Promise<
|
|
740
|
+
}): Promise<ProductListingResponseAfterDisplayTransformer & {
|
|
775
741
|
failed?: true;
|
|
776
742
|
}>;
|
|
777
743
|
get_recommended<T extends Display>(input_req: BaseSearchRequestV3): Promise<{
|
|
@@ -823,7 +789,7 @@ type CategoryConstructorOptionsWithApi<InputDisplay extends Display, OutputDispl
|
|
|
823
789
|
};
|
|
824
790
|
type CategoryConstructorOptionsWithoutApi<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = GeneralCategoryListingOptions & {
|
|
825
791
|
api?: never;
|
|
826
|
-
} &
|
|
792
|
+
} & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
|
|
827
793
|
type DepictCategoryConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay> = CategoryConstructorOptionsWithApi<InputDisplay, OutputDisplay> | CategoryConstructorOptionsWithoutApi<InputDisplay, OutputDisplay>;
|
|
828
794
|
export class DepictCategory<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never = InputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<InputDisplay> : never> {
|
|
829
795
|
#private;
|
|
@@ -844,7 +810,6 @@ export class DepictCategory<InputDisplay extends Display, OutputDisplay extends
|
|
|
844
810
|
constructor({
|
|
845
811
|
api,
|
|
846
812
|
on_navigation,
|
|
847
|
-
page_url_creator,
|
|
848
813
|
display_transformers,
|
|
849
814
|
unique_instance_key_for_state,
|
|
850
815
|
listing_id_state_key,
|
|
@@ -929,7 +894,7 @@ type ConstructorOptionsWithApi<InputDisplay extends Display, OutputDisplay exten
|
|
|
929
894
|
};
|
|
930
895
|
type ConstructorOptionsWithoutAPI<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = GeneralConstructorOptions<InputDisplay, OutputDisplay> & {
|
|
931
896
|
api?: never;
|
|
932
|
-
} &
|
|
897
|
+
} & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
|
|
933
898
|
type ConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay> = ConstructorOptionsWithApi<InputDisplay, OutputDisplay> | ConstructorOptionsWithoutAPI<InputDisplay, OutputDisplay>;
|
|
934
899
|
export type OpenModalArguments = [options_for_modal?: {
|
|
935
900
|
style_props_?: Signal<JSX.CSSProperties>;
|
|
@@ -947,7 +912,6 @@ export class DepictSearch<InputDisplay extends Display, OutputDisplay extends Mo
|
|
|
947
912
|
url_transformer,
|
|
948
913
|
on_navigation,
|
|
949
914
|
enable_category_suggestions,
|
|
950
|
-
page_url_creator,
|
|
951
915
|
display_transformers,
|
|
952
916
|
api,
|
|
953
917
|
disable_scrolling_during_modal,
|
|
@@ -1024,46 +988,16 @@ export type BaseProviderConfig<InputDisplay extends Display, PossibleTransformed
|
|
|
1024
988
|
*/
|
|
1025
989
|
uniqueInstanceKeyForState?: string;
|
|
1026
990
|
} & (InputDisplay extends ModernDisplay ? "page_url" extends keyof InputDisplay["variant_displays"][number] ? {
|
|
1027
|
-
/**
|
|
1028
|
-
* @deprecated use displayTransformers instead
|
|
1029
|
-
*/
|
|
1030
|
-
pageURLCreator?: PageURLCreator<InputDisplay, PossibleTransformedDisplay>;
|
|
1031
|
-
/**
|
|
1032
|
-
* Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
|
|
1033
|
-
*/
|
|
1034
|
-
displayTransformers?: never;
|
|
1035
|
-
} | {
|
|
1036
|
-
/**
|
|
1037
|
-
* @deprecated use displayTransformers instead
|
|
1038
|
-
*/
|
|
1039
|
-
pageURLCreator?: never;
|
|
1040
991
|
/**
|
|
1041
992
|
* Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
|
|
1042
993
|
*/
|
|
1043
994
|
displayTransformers: DisplayTransformers<InputDisplay, PossibleTransformedDisplay>;
|
|
1044
995
|
} : {
|
|
1045
|
-
/**
|
|
1046
|
-
* @deprecated use displayTransformers instead
|
|
1047
|
-
*/
|
|
1048
|
-
pageURLCreator: PageURLCreator<InputDisplay, PossibleTransformedDisplay>;
|
|
1049
|
-
/**
|
|
1050
|
-
* Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
|
|
1051
|
-
*/
|
|
1052
|
-
displayTransformers?: never;
|
|
1053
|
-
} | {
|
|
1054
996
|
/**
|
|
1055
997
|
* Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
|
|
1056
998
|
*/
|
|
1057
999
|
displayTransformers: DisplayTransformers<InputDisplay, PossibleTransformedDisplay>;
|
|
1058
|
-
/**
|
|
1059
|
-
* @deprecated use displayTransformers instead
|
|
1060
|
-
*/
|
|
1061
|
-
pageURLCreator?: never;
|
|
1062
1000
|
} : {
|
|
1063
|
-
/**
|
|
1064
|
-
* @deprecated use displayTransformers instead
|
|
1065
|
-
*/
|
|
1066
|
-
pageURLCreator?: never;
|
|
1067
1001
|
/**
|
|
1068
1002
|
* Functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way.
|
|
1069
1003
|
*/
|