@depict-ai/ui 3.0.1 → 3.0.3
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 +38 -85
- package/ES10/index.d.ts +21 -88
- package/ES10/index.js +38 -85
- package/latest/index.cjs +34 -82
- package/latest/index.d.ts +21 -88
- package/latest/index.js +34 -82
- package/package.json +1 -1
- package/server/ES10/index.cjs +38 -85
- package/server/ES10/index.d.ts +21 -88
- package/server/ES10/index.js +38 -85
- package/server/latest/index.cjs +34 -82
- package/server/latest/index.d.ts +21 -88
- package/server/latest/index.js +34 -82
package/latest/index.d.ts
CHANGED
|
@@ -2,16 +2,15 @@ import { JSX, Signal, Accessor, Setter } from "solid-js";
|
|
|
2
2
|
import { Amazing_Slider, Node_Array, Display, report, ColsAtSize, Elem, ModernDisplay } from "@depict-ai/utilishared/latest";
|
|
3
3
|
import { SearchFilter, SortModel, SearchRequestV3 } from "@depict-ai/types/api/SearchRequestV3";
|
|
4
4
|
import { SearchFilter as _SearchFilter1, ContentLink, SearchResponse } from "@depict-ai/types/api/SearchResponse";
|
|
5
|
-
import { CategorySuggestion } from "@depict-ai/types/api/SearchSuggestionsResponseV3";
|
|
5
|
+
import { CategorySuggestion, SearchSuggestionsResponseV3 } from "@depict-ai/types/api/SearchSuggestionsResponseV3";
|
|
6
6
|
import { Breadcrumb, Quicklink, GetListingResponse } from "@depict-ai/types/api/GetListingResponse";
|
|
7
|
-
import { LegacyCategorySuggestion, SearchSuggestionsResponse } from "@depict-ai/types/api/SearchSuggestionsResponse";
|
|
8
7
|
import { ProductListingResponseV3 } from "@depict-ai/types/api/ProductListingResponseV3";
|
|
9
8
|
import { SearchSuggestionsRequestV3 } from "@depict-ai/types/api/SearchSuggestionsRequestV3";
|
|
10
9
|
import { ProductListingRequestV3 } from "@depict-ai/types/api/ProductListingRequestV3";
|
|
11
10
|
import { GetListingRequest } from "@depict-ai/types/api/GetListingRequest";
|
|
12
11
|
import { BaseSearchRequestV3 } from "@depict-ai/types/api/BaseSearchRequestV3";
|
|
13
12
|
import { SearchFilter as _SearchFilter2 } from "@depict-ai/types/api/SearchRequestV2";
|
|
14
|
-
export const version = "3.0.
|
|
13
|
+
export const version = "3.0.3";
|
|
15
14
|
/** @jsxImportSource solid-js */
|
|
16
15
|
export function GenericSliderArrowButton(props?: {
|
|
17
16
|
width_?: number;
|
|
@@ -603,56 +602,23 @@ export type DisplayTransformers<InputDisplay extends ModernDisplay, OutputDispla
|
|
|
603
602
|
products?: (options: DisplayTransformerAlwaysThereData & {
|
|
604
603
|
displays: InputDisplay[];
|
|
605
604
|
}) => CanBePromiseWrapped<OutputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<OutputDisplay>[] : never>;
|
|
606
|
-
categories?: (options: DisplayTransformerAlwaysThereData & {
|
|
607
|
-
data:
|
|
608
|
-
}) => CanBePromiseWrapped<{
|
|
605
|
+
categories?: <T extends Breadcrumb | Quicklink | CategorySuggestion>(options: DisplayTransformerAlwaysThereData & {
|
|
606
|
+
data: T[];
|
|
607
|
+
}) => CanBePromiseWrapped<(T & {
|
|
609
608
|
page_url: string;
|
|
610
|
-
}[]>;
|
|
609
|
+
})[]>;
|
|
611
610
|
contentResults?: (options: DisplayTransformerAlwaysThereData & {
|
|
612
611
|
data: ContentLink[];
|
|
613
612
|
}) => CanBePromiseWrapped<ContentLink[]>;
|
|
614
613
|
};
|
|
615
|
-
export type
|
|
616
|
-
page_url_creator?: PageURLCreator<InputDisplay, OutputDisplay>;
|
|
617
|
-
display_transformers?: never;
|
|
618
|
-
} | {
|
|
619
|
-
page_url_creator?: never;
|
|
614
|
+
export type SomethingTakingADisplayTransformers<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = InputDisplay extends ModernDisplay ? "page_url" extends keyof InputDisplay["variant_displays"][number] ? {
|
|
620
615
|
display_transformers: DisplayTransformers<InputDisplay, OutputDisplay>;
|
|
621
616
|
} : {
|
|
622
|
-
page_url_creator: PageURLCreator<InputDisplay, OutputDisplay>;
|
|
623
|
-
display_transformers?: never;
|
|
624
|
-
} | {
|
|
625
617
|
display_transformers: DisplayTransformers<InputDisplay, OutputDisplay>;
|
|
626
|
-
page_url_creator?: never;
|
|
627
618
|
} : {
|
|
628
619
|
page_url_creator?: never;
|
|
629
620
|
display_transformers?: never;
|
|
630
621
|
};
|
|
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
622
|
export type ExclusiveId = {
|
|
657
623
|
categoryId: string;
|
|
658
624
|
productId?: undefined;
|
|
@@ -723,29 +689,29 @@ export type InstantCard<T extends Display> = (display: T, context: {
|
|
|
723
689
|
merchant: string;
|
|
724
690
|
market: string;
|
|
725
691
|
}) => JSX.Element;
|
|
726
|
-
type CategorySuggestionAfterURLCreator =
|
|
692
|
+
type CategorySuggestionAfterURLCreator = CategorySuggestion & {
|
|
727
693
|
page_url: string;
|
|
728
694
|
};
|
|
729
|
-
type ReplaceCategorySuggestion<T> = T extends
|
|
730
|
-
type SearchSuggestionsResponseAfterURLCreator = { [K in keyof
|
|
695
|
+
type ReplaceCategorySuggestion<T> = T extends CategorySuggestion ? CategorySuggestionAfterURLCreator : T extends CategorySuggestion[] ? CategorySuggestionAfterURLCreator[] : T;
|
|
696
|
+
type SearchSuggestionsResponseAfterURLCreator = { [K in keyof SearchSuggestionsResponseV3]: ReplaceCategorySuggestion<SearchSuggestionsResponseV3[K]> };
|
|
731
697
|
type AddPageUrlToDisplay<T extends any[]> = (T[number] & {
|
|
732
698
|
page_url: string;
|
|
733
699
|
})[];
|
|
734
|
-
type
|
|
700
|
+
type SearchResponseAfterDisplayTransformer = { [K in keyof SearchResponse]: K extends "displays" ? AddPageUrlToDisplay<SearchResponse[K]> : K extends "filters" ? AddActualFieldToFilters<SearchResponse[K]> : SearchResponse[K] };
|
|
735
701
|
type QuicklinksOrBreadCrumbsWithPageURL<T extends Breadcrumb | Quicklink> = T & {
|
|
736
702
|
page_url: string;
|
|
737
703
|
};
|
|
738
704
|
type _AddPageUrlToDisplay1<T extends any[]> = (T[number] & {
|
|
739
705
|
page_url: string;
|
|
740
706
|
})[];
|
|
741
|
-
type
|
|
742
|
-
type
|
|
707
|
+
type ProductListingResponseAfterDisplayTransformer = { [K in keyof ProductListingResponseV3]: K extends "displays" ? _AddPageUrlToDisplay1<ProductListingResponseV3[K]> : K extends "filters" ? AddActualFieldToFilters<ProductListingResponseV3[K]> : ProductListingResponseV3[K] };
|
|
708
|
+
type GetListingResponseAfterDisplayTransformer = { [K in keyof GetListingResponse]: K extends "breadcrumbs" ? QuicklinksOrBreadCrumbsWithPageURL<Breadcrumb>[] : K extends "quick_links" ? QuicklinksOrBreadCrumbsWithPageURL<Quicklink>[] : GetListingResponse[K] };
|
|
743
709
|
type DepictAPIConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = {
|
|
744
710
|
get_metadata?: () => Promise<{
|
|
745
711
|
[k: string]: string;
|
|
746
712
|
} | undefined>;
|
|
747
713
|
get_session_id?: () => string | undefined;
|
|
748
|
-
} &
|
|
714
|
+
} & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
|
|
749
715
|
interface GetListingOptions extends GetListingRequest {
|
|
750
716
|
listing_id: string;
|
|
751
717
|
session_id?: string;
|
|
@@ -757,21 +723,20 @@ interface GetListingOptions extends GetListingRequest {
|
|
|
757
723
|
*/
|
|
758
724
|
export class DepictAPI<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never = InputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<InputDisplay> : never> {
|
|
759
725
|
#private;
|
|
760
|
-
page_url_creator: PageURLCreator<ModernDisplay, OutputDisplay> | undefined;
|
|
761
726
|
display_transformers: DisplayTransformers<ModernDisplay, OutputDisplay> | undefined;
|
|
762
727
|
constructor(options: DepictAPIConstructorOptions<InputDisplay, OutputDisplay>);
|
|
763
728
|
suggest(input_req: SearchSuggestionsRequestV3): Promise<SearchSuggestionsResponseAfterURLCreator & {
|
|
764
729
|
failed?: true;
|
|
765
730
|
}>;
|
|
766
|
-
query(input_req: SearchRequestV3): Promise<
|
|
731
|
+
query(input_req: SearchRequestV3): Promise<SearchResponseAfterDisplayTransformer & {
|
|
767
732
|
failed?: true;
|
|
768
733
|
}>;
|
|
769
|
-
get_listing(input_req: GetListingOptions): Promise<
|
|
734
|
+
get_listing(input_req: GetListingOptions): Promise<GetListingResponseAfterDisplayTransformer & {
|
|
770
735
|
failed?: true;
|
|
771
736
|
}>;
|
|
772
737
|
get_listing_products(input_req: ProductListingRequestV3 & {
|
|
773
738
|
listing_id: string;
|
|
774
|
-
}): Promise<
|
|
739
|
+
}): Promise<ProductListingResponseAfterDisplayTransformer & {
|
|
775
740
|
failed?: true;
|
|
776
741
|
}>;
|
|
777
742
|
get_recommended<T extends Display>(input_req: BaseSearchRequestV3): Promise<{
|
|
@@ -823,7 +788,7 @@ type CategoryConstructorOptionsWithApi<InputDisplay extends Display, OutputDispl
|
|
|
823
788
|
};
|
|
824
789
|
type CategoryConstructorOptionsWithoutApi<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = GeneralCategoryListingOptions & {
|
|
825
790
|
api?: never;
|
|
826
|
-
} &
|
|
791
|
+
} & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
|
|
827
792
|
type DepictCategoryConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay> = CategoryConstructorOptionsWithApi<InputDisplay, OutputDisplay> | CategoryConstructorOptionsWithoutApi<InputDisplay, OutputDisplay>;
|
|
828
793
|
export class DepictCategory<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never = InputDisplay extends ModernDisplay ? ModernDisplayWithPageUrl<InputDisplay> : never> {
|
|
829
794
|
#private;
|
|
@@ -844,7 +809,6 @@ export class DepictCategory<InputDisplay extends Display, OutputDisplay extends
|
|
|
844
809
|
constructor({
|
|
845
810
|
api,
|
|
846
811
|
on_navigation,
|
|
847
|
-
page_url_creator,
|
|
848
812
|
display_transformers,
|
|
849
813
|
unique_instance_key_for_state,
|
|
850
814
|
listing_id_state_key,
|
|
@@ -871,12 +835,12 @@ export function BreadCrumbs<T extends Display>({
|
|
|
871
835
|
depict_category
|
|
872
836
|
}: {
|
|
873
837
|
depict_category: DepictCategory<T>;
|
|
874
|
-
}):
|
|
838
|
+
}): HTMLDivElement;
|
|
875
839
|
export function QuickLinks<T extends Display>({
|
|
876
840
|
depict_category
|
|
877
841
|
}: {
|
|
878
842
|
depict_category: DepictCategory<T>;
|
|
879
|
-
}):
|
|
843
|
+
}): HTMLDivElement;
|
|
880
844
|
/**
|
|
881
845
|
* Gets available listings for a given merchant, market and locale
|
|
882
846
|
*/
|
|
@@ -929,7 +893,7 @@ type ConstructorOptionsWithApi<InputDisplay extends Display, OutputDisplay exten
|
|
|
929
893
|
};
|
|
930
894
|
type ConstructorOptionsWithoutAPI<InputDisplay extends Display, OutputDisplay extends ModernDisplay | never> = GeneralConstructorOptions<InputDisplay, OutputDisplay> & {
|
|
931
895
|
api?: never;
|
|
932
|
-
} &
|
|
896
|
+
} & SomethingTakingADisplayTransformers<InputDisplay, OutputDisplay>;
|
|
933
897
|
type ConstructorOptions<InputDisplay extends Display, OutputDisplay extends ModernDisplay> = ConstructorOptionsWithApi<InputDisplay, OutputDisplay> | ConstructorOptionsWithoutAPI<InputDisplay, OutputDisplay>;
|
|
934
898
|
export type OpenModalArguments = [options_for_modal?: {
|
|
935
899
|
style_props_?: Signal<JSX.CSSProperties>;
|
|
@@ -947,7 +911,6 @@ export class DepictSearch<InputDisplay extends Display, OutputDisplay extends Mo
|
|
|
947
911
|
url_transformer,
|
|
948
912
|
on_navigation,
|
|
949
913
|
enable_category_suggestions,
|
|
950
|
-
page_url_creator,
|
|
951
914
|
display_transformers,
|
|
952
915
|
api,
|
|
953
916
|
disable_scrolling_during_modal,
|
|
@@ -1024,46 +987,16 @@ export type BaseProviderConfig<InputDisplay extends Display, PossibleTransformed
|
|
|
1024
987
|
*/
|
|
1025
988
|
uniqueInstanceKeyForState?: string;
|
|
1026
989
|
} & (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
990
|
/**
|
|
1041
991
|
* 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
992
|
*/
|
|
1043
993
|
displayTransformers: DisplayTransformers<InputDisplay, PossibleTransformedDisplay>;
|
|
1044
994
|
} : {
|
|
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
995
|
/**
|
|
1055
996
|
* 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
997
|
*/
|
|
1057
998
|
displayTransformers: DisplayTransformers<InputDisplay, PossibleTransformedDisplay>;
|
|
1058
|
-
/**
|
|
1059
|
-
* @deprecated use displayTransformers instead
|
|
1060
|
-
*/
|
|
1061
|
-
pageURLCreator?: never;
|
|
1062
999
|
} : {
|
|
1063
|
-
/**
|
|
1064
|
-
* @deprecated use displayTransformers instead
|
|
1065
|
-
*/
|
|
1066
|
-
pageURLCreator?: never;
|
|
1067
1000
|
/**
|
|
1068
1001
|
* 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
1002
|
*/
|
package/latest/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { createStore as $9HbP8$createStore, reconcile as $9HbP8$reconcile } from
|
|
|
7
7
|
/*! Depict.ai search and product listing SDK */
|
|
8
8
|
import { register_es_version } from "../multi_import_deduplicator.mjs";
|
|
9
9
|
register_es_version("ui", "latest");
|
|
10
|
-
const $ec291e0010116877$export$83d89fbfd8236492 = "3.0.
|
|
10
|
+
const $ec291e0010116877$export$83d89fbfd8236492 = "3.0.3";
|
|
11
11
|
const $fbbadcb080ad1d4a$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<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>`);
|
|
12
12
|
function $fbbadcb080ad1d4a$export$8be2714ec7f169ee(props = {}) {
|
|
13
13
|
return (() => {
|
|
@@ -5447,100 +5447,54 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
|
|
|
5447
5447
|
};
|
|
5448
5448
|
#get_metadata;
|
|
5449
5449
|
#get_session_id;
|
|
5450
|
-
#guard_url_creator_length(expected, received) {
|
|
5451
|
-
if (expected.length !== received.length) {
|
|
5452
|
-
const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
|
|
5453
|
-
queueMicrotask(() => {
|
|
5454
|
-
throw e;
|
|
5455
|
-
});
|
|
5456
|
-
throw e;
|
|
5457
|
-
}
|
|
5458
|
-
}
|
|
5459
5450
|
async #run_url_creator_for_suggest(merchant, market, response) {
|
|
5460
|
-
const page_url_creator = this.page_url_creator;
|
|
5461
5451
|
const category_transformer = this.display_transformers?.categories;
|
|
5462
|
-
if (!
|
|
5452
|
+
if (!category_transformer) return response;
|
|
5463
5453
|
// find category suggestions, run thing with them, and then replace them
|
|
5464
5454
|
const category_suggestions = response.suggestions.filter(suggestion => suggestion.type === "category");
|
|
5465
|
-
const
|
|
5455
|
+
const transformed_category_suggestions = await category_transformer({
|
|
5466
5456
|
market: market,
|
|
5467
5457
|
merchant: merchant,
|
|
5468
|
-
data: [...category_suggestions]
|
|
5469
|
-
...(page_url_creator ? {
|
|
5470
|
-
type: "categories"
|
|
5471
|
-
} : {})
|
|
5458
|
+
data: [...category_suggestions]
|
|
5472
5459
|
});
|
|
5473
|
-
|
|
5474
|
-
while (page_urls.length)
|
|
5475
|
-
// Copy over getters so we sneakily can make this reactive
|
|
5476
|
-
Object.defineProperties(category_suggestions.pop(), Object.getOwnPropertyDescriptors(page_urls.pop()));
|
|
5460
|
+
response.suggestions = transformed_category_suggestions;
|
|
5477
5461
|
return response;
|
|
5478
5462
|
}
|
|
5479
5463
|
async #run_display_transformers_for_rest(merchant, market, input_data) {
|
|
5480
5464
|
const {
|
|
5481
|
-
page_url_creator: page_url_creator,
|
|
5482
5465
|
display_transformers: display_transformers
|
|
5483
5466
|
} = this;
|
|
5484
|
-
if (!
|
|
5467
|
+
if (!display_transformers) return input_data;
|
|
5485
5468
|
const product_transformer = display_transformers?.products;
|
|
5486
5469
|
const category_transformer = display_transformers?.categories;
|
|
5487
5470
|
const content_result_transformer = display_transformers?.contentResults;
|
|
5488
5471
|
const displays = input_data.displays;
|
|
5489
|
-
const owner = $9HbP8$getOwner();
|
|
5490
5472
|
const {
|
|
5491
|
-
breadcrumbs: breadcrumbs,
|
|
5492
|
-
quick_links: quick_links,
|
|
5493
5473
|
content_search_links: content_search_links
|
|
5494
5474
|
} = input_data;
|
|
5495
|
-
if (displays &&
|
|
5496
|
-
const
|
|
5475
|
+
if (displays && product_transformer) {
|
|
5476
|
+
const transformed_displays = await product_transformer({
|
|
5497
5477
|
merchant: merchant,
|
|
5498
5478
|
market: market,
|
|
5499
|
-
displays: [...
|
|
5500
|
-
...(page_url_creator ? {
|
|
5501
|
-
type: "products"
|
|
5502
|
-
} : {})
|
|
5479
|
+
displays: [...displays]
|
|
5503
5480
|
});
|
|
5504
|
-
|
|
5505
|
-
for (let i = 0; i < displays.length; i++) {
|
|
5506
|
-
const new_display_or_page_url = page_urls[i];
|
|
5507
|
-
const old_display = displays[i];
|
|
5508
|
-
if ("page_url" in new_display_or_page_url && Object.keys(new_display_or_page_url).length === 1) {
|
|
5509
|
-
// they only returned page_url, let's put it into the display
|
|
5510
|
-
const old_display_was_modern = ("variant_index" in old_display);
|
|
5511
|
-
if (old_display_was_modern) {
|
|
5512
|
-
const variant_displays = old_display.variant_displays;
|
|
5513
|
-
for (let i = 0; i < variant_displays.length; i++) variant_displays[i].page_url = new_display_or_page_url.page_url;
|
|
5514
|
-
} else old_display.page_url = new_display_or_page_url.page_url;
|
|
5515
|
-
} else
|
|
5516
|
-
// We got a whole new display, let's replace it
|
|
5517
|
-
displays[i] = new_display_or_page_url;
|
|
5518
|
-
}
|
|
5481
|
+
input_data.displays = transformed_displays;
|
|
5519
5482
|
}
|
|
5520
|
-
if (
|
|
5483
|
+
if (category_transformer) for (const key of ["breadcrumbs", "quick_links"]) {
|
|
5484
|
+
const category_display_array = input_data[key];
|
|
5521
5485
|
if (!category_display_array) continue;
|
|
5522
|
-
const
|
|
5523
|
-
merchant: merchant,
|
|
5524
|
-
market: market,
|
|
5525
|
-
data: [...category_display_array],
|
|
5526
|
-
...(page_url_creator ? {
|
|
5527
|
-
type: "categories"
|
|
5528
|
-
} : {})
|
|
5529
|
-
}));
|
|
5530
|
-
this.#guard_url_creator_length(category_display_array, page_urls);
|
|
5531
|
-
for (let i = 0; i < category_display_array.length; i++)
|
|
5532
|
-
// Copy over getters so we sneakily can make this reactive
|
|
5533
|
-
Object.defineProperties(category_display_array[i], Object.getOwnPropertyDescriptors(page_urls[i]));
|
|
5534
|
-
}
|
|
5535
|
-
if (content_search_links?.length && content_result_transformer) {
|
|
5536
|
-
const result = await $9HbP8$runWithOwner(owner, () => content_result_transformer({
|
|
5486
|
+
const transformed_category_displays = await category_transformer({
|
|
5537
5487
|
merchant: merchant,
|
|
5538
5488
|
market: market,
|
|
5539
|
-
data: [...
|
|
5540
|
-
})
|
|
5541
|
-
|
|
5542
|
-
input_data.content_search_links = result;
|
|
5489
|
+
data: [...category_display_array]
|
|
5490
|
+
});
|
|
5491
|
+
input_data[key] = transformed_category_displays;
|
|
5543
5492
|
}
|
|
5493
|
+
if (content_search_links?.length && content_result_transformer) input_data.content_search_links = await content_result_transformer({
|
|
5494
|
+
merchant: merchant,
|
|
5495
|
+
market: market,
|
|
5496
|
+
data: [...content_search_links]
|
|
5497
|
+
});
|
|
5544
5498
|
return input_data;
|
|
5545
5499
|
}
|
|
5546
5500
|
async #cached_request({
|
|
@@ -5552,7 +5506,6 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
|
|
|
5552
5506
|
}) {
|
|
5553
5507
|
const cache_obj = this.#get_cache_obj_for_endpoint(endpoint_);
|
|
5554
5508
|
const with_ids = this.#add_ids_to_request(input_req_);
|
|
5555
|
-
const owner = $9HbP8$getOwner();
|
|
5556
5509
|
const metaData = await this.#get_metadata?.();
|
|
5557
5510
|
const request = metaData ? Object.assign(with_ids, {
|
|
5558
5511
|
metadata: metaData
|
|
@@ -5580,7 +5533,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
|
|
|
5580
5533
|
let result;
|
|
5581
5534
|
try {
|
|
5582
5535
|
const unmodified_result = await api_response.json();
|
|
5583
|
-
result = await
|
|
5536
|
+
result = await this.#run_display_transformers_for_rest(input_req_.merchant, input_req_.market, unmodified_result);
|
|
5584
5537
|
} catch (e) {
|
|
5585
5538
|
$9HbP8$dwarn("displayTransformer or json decoding failed", e);
|
|
5586
5539
|
break return_successfully;
|
|
@@ -5611,17 +5564,14 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
|
|
|
5611
5564
|
const {
|
|
5612
5565
|
get_metadata: get_metadata,
|
|
5613
5566
|
get_session_id: get_session_id,
|
|
5614
|
-
page_url_creator: page_url_creator,
|
|
5615
5567
|
display_transformers: display_transformers
|
|
5616
5568
|
} = options ?? {};
|
|
5617
5569
|
this.#get_metadata = get_metadata;
|
|
5618
5570
|
this.#get_session_id = get_session_id;
|
|
5619
|
-
this.page_url_creator = page_url_creator;
|
|
5620
5571
|
this.display_transformers = display_transformers;
|
|
5621
5572
|
}
|
|
5622
5573
|
async suggest(input_req) {
|
|
5623
5574
|
const with_ids = this.#add_ids_to_request(input_req);
|
|
5624
|
-
const owner = $9HbP8$getOwner();
|
|
5625
5575
|
const metaData = await this.#get_metadata?.();
|
|
5626
5576
|
const request = metaData ? Object.assign(with_ids, {
|
|
5627
5577
|
metadata: JSON.stringify(metaData)
|
|
@@ -5633,7 +5583,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
|
|
|
5633
5583
|
const decoded_json = await results.json();
|
|
5634
5584
|
if (!Array.isArray(decoded_json?.suggestions)) break attempt_to_return_api_response;
|
|
5635
5585
|
try {
|
|
5636
|
-
return await
|
|
5586
|
+
return await this.#run_url_creator_for_suggest(input_req.merchant, input_req.market, decoded_json);
|
|
5637
5587
|
} catch (e) {
|
|
5638
5588
|
$9HbP8$dwarn("displayTransformer failed", e);
|
|
5639
5589
|
}
|
|
@@ -8778,7 +8728,6 @@ class $961b5c64bef4662f$export$f34314aa9505732e {
|
|
|
8778
8728
|
constructor({
|
|
8779
8729
|
api: api,
|
|
8780
8730
|
on_navigation: on_navigation,
|
|
8781
|
-
page_url_creator: page_url_creator,
|
|
8782
8731
|
display_transformers: display_transformers,
|
|
8783
8732
|
unique_instance_key_for_state = "",
|
|
8784
8733
|
listing_id_state_key: listing_id_state_key,
|
|
@@ -8829,7 +8778,6 @@ class $961b5c64bef4662f$export$f34314aa9505732e {
|
|
|
8829
8778
|
reset_history_state_: reset_history_state_,
|
|
8830
8779
|
// @ts-ignore
|
|
8831
8780
|
depict_api_: api ?? new (0, $7fa23e2a0079eca4$export$e015ed2f2950f2e3)({
|
|
8832
|
-
page_url_creator: page_url_creator,
|
|
8833
8781
|
display_transformers: display_transformers
|
|
8834
8782
|
}),
|
|
8835
8783
|
router_: this.#router,
|
|
@@ -9164,6 +9112,7 @@ function $897bd4a76f611b38$export$d757d54550ebfb3d({
|
|
|
9164
9112
|
category_suggestion_: category_suggestion_,
|
|
9165
9113
|
router_: router_
|
|
9166
9114
|
}) {
|
|
9115
|
+
const parentTitle = $9HbP8$createMemo(() => category_suggestion_().breadcrumbs.at(-1)?.title);
|
|
9167
9116
|
return (() => {
|
|
9168
9117
|
const _el$ = $9HbP8$getNextElement($897bd4a76f611b38$var$_tmpl$2),
|
|
9169
9118
|
_el$2 = _el$.firstChild,
|
|
@@ -9179,11 +9128,11 @@ function $897bd4a76f611b38$export$d757d54550ebfb3d({
|
|
|
9179
9128
|
$9HbP8$insert(_el$2, () => category_suggestion_().title);
|
|
9180
9129
|
$9HbP8$insert(_el$, $9HbP8$createComponent((0, $9HbP8$Show), {
|
|
9181
9130
|
get when() {
|
|
9182
|
-
return
|
|
9131
|
+
return parentTitle();
|
|
9183
9132
|
},
|
|
9184
9133
|
get children() {
|
|
9185
9134
|
const _el$3 = $9HbP8$getNextElement($897bd4a76f611b38$var$_tmpl$);
|
|
9186
|
-
$9HbP8$insert(_el$3,
|
|
9135
|
+
$9HbP8$insert(_el$3, parentTitle);
|
|
9187
9136
|
return _el$3;
|
|
9188
9137
|
}
|
|
9189
9138
|
}), _el$5, _co$);
|
|
@@ -10005,6 +9954,11 @@ function $cea52f6b24092f05$export$e872e2339fb04a7f({
|
|
|
10005
9954
|
}) : undefined);
|
|
10006
9955
|
const href = $9HbP8$createMemo(() => is_query() ? href_with_changed_params_accessor()() : input_obj().page_url);
|
|
10007
9956
|
const is_selected = $9HbP8$createMemo(() => read_selected_index_()?.[0] === autocomplete_data_index && read_selected_index_()?.[1] === index);
|
|
9957
|
+
const parent_title_if_exists = $9HbP8$createMemo(() => {
|
|
9958
|
+
const item = input_obj();
|
|
9959
|
+
if (!("breadcrumbs" in item)) return;
|
|
9960
|
+
return item.breadcrumbs.at(-1)?.title;
|
|
9961
|
+
});
|
|
10008
9962
|
return (() => {
|
|
10009
9963
|
const _el$ = $9HbP8$getNextElement($cea52f6b24092f05$var$_tmpl$);
|
|
10010
9964
|
$9HbP8$use(element => element.addEventListener("click", $9HbP8$catchify1(ev => {
|
|
@@ -10046,7 +10000,7 @@ function $cea52f6b24092f05$export$e872e2339fb04a7f({
|
|
|
10046
10000
|
},
|
|
10047
10001
|
searching_for_value_: searching_for_value_
|
|
10048
10002
|
})] : [$9HbP8$memo((() => {
|
|
10049
|
-
const _c$2 = $9HbP8$memo(() =>
|
|
10003
|
+
const _c$2 = $9HbP8$memo(() => !!parent_title_if_exists());
|
|
10050
10004
|
return () => _c$2() ? (() => {
|
|
10051
10005
|
const _el$4 = $9HbP8$getNextElement($cea52f6b24092f05$var$_tmpl$4),
|
|
10052
10006
|
_el$6 = _el$4.firstChild,
|
|
@@ -10059,7 +10013,7 @@ function $cea52f6b24092f05$export$e872e2339fb04a7f({
|
|
|
10059
10013
|
},
|
|
10060
10014
|
searching_for_value_: searching_for_value_
|
|
10061
10015
|
}), _el$7, _co$);
|
|
10062
|
-
$9HbP8$insert(_el$5,
|
|
10016
|
+
$9HbP8$insert(_el$5, parent_title_if_exists);
|
|
10063
10017
|
return _el$4;
|
|
10064
10018
|
})() : (() => {
|
|
10065
10019
|
const _c$3 = $9HbP8$memo(() => input_obj().type === "content");
|
|
@@ -10093,7 +10047,7 @@ function $cea52f6b24092f05$export$e872e2339fb04a7f({
|
|
|
10093
10047
|
const _el$3 = $9HbP8$getNextElement($cea52f6b24092f05$var$_tmpl$3);
|
|
10094
10048
|
$9HbP8$insert(_el$3, $9HbP8$createMemo(() => {
|
|
10095
10049
|
if (input_obj().type === "content") return i18n_.content_();
|
|
10096
|
-
if (input_obj().category_type === "
|
|
10050
|
+
if (input_obj().category_type === "brand") return i18n_.brand_();
|
|
10097
10051
|
return i18n_.category_();
|
|
10098
10052
|
}));
|
|
10099
10053
|
return _el$3;
|
|
@@ -11686,7 +11640,6 @@ class $806c97b931758897$export$ac6237957a15b3f0 {
|
|
|
11686
11640
|
url_transformer: url_transformer,
|
|
11687
11641
|
on_navigation: on_navigation,
|
|
11688
11642
|
enable_category_suggestions = true,
|
|
11689
|
-
page_url_creator: page_url_creator,
|
|
11690
11643
|
display_transformers: display_transformers,
|
|
11691
11644
|
api: api,
|
|
11692
11645
|
// Stuff needed for non-standard customer deployments that we shouldn't actually expose
|
|
@@ -11738,7 +11691,6 @@ class $806c97b931758897$export$ac6237957a15b3f0 {
|
|
|
11738
11691
|
});
|
|
11739
11692
|
// @ts-ignore
|
|
11740
11693
|
const depict_api_ = api ?? new (0, $7fa23e2a0079eca4$export$e015ed2f2950f2e3)({
|
|
11741
|
-
page_url_creator: page_url_creator,
|
|
11742
11694
|
display_transformers: display_transformers
|
|
11743
11695
|
});
|
|
11744
11696
|
const previous_searches = $21f51c14cb3f586f$export$84bba84a7b837187(get_search_query_);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@depict-ai/ui",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "Base package containing the actual UI of Depict UI along with translations, with a not-simplified API. We recommend using @depict-ai/js-ui or @depict-ai/react-ui instead.",
|
|
5
5
|
"packageManager": "yarn@3.2.2",
|
|
6
6
|
"sass": "styles.scss",
|