@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.
@@ -7,7 +7,7 @@ import { createStore as $i7OB2$createStore, reconcile as $i7OB2$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.0";
10
+ const $ec291e0010116877$export$83d89fbfd8236492 = "3.0.2";
11
11
  const $fbbadcb080ad1d4a$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>'];
12
12
  function $fbbadcb080ad1d4a$export$8be2714ec7f169ee(props = {}) {
13
13
  return $i7OB2$ssr($fbbadcb080ad1d4a$var$_tmpl$, $i7OB2$ssrHydrationKey(), $i7OB2$ssrAttribute("width", $i7OB2$escape(props.width_, true) ?? 14, false) + $i7OB2$ssrAttribute("height", $i7OB2$escape(props.height_, true) ?? 26, false));
@@ -4405,100 +4405,54 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
4405
4405
  };
4406
4406
  #get_metadata;
4407
4407
  #get_session_id;
4408
- #guard_url_creator_length(expected, received) {
4409
- if (expected.length !== received.length) {
4410
- const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
4411
- queueMicrotask(() => {
4412
- throw e;
4413
- });
4414
- throw e;
4415
- }
4416
- }
4417
4408
  async #run_url_creator_for_suggest(merchant, market, response) {
4418
- const page_url_creator = this.page_url_creator;
4419
4409
  const category_transformer = this.display_transformers?.categories;
4420
- if (!page_url_creator && !category_transformer) return response;
4410
+ if (!category_transformer) return response;
4421
4411
  // find category suggestions, run thing with them, and then replace them
4422
4412
  const category_suggestions = response.suggestions.filter(suggestion => suggestion.type === "category");
4423
- const page_urls = await (page_url_creator || category_transformer)({
4413
+ const transformed_category_suggestions = await category_transformer({
4424
4414
  market: market,
4425
4415
  merchant: merchant,
4426
- data: [...category_suggestions],
4427
- ...(page_url_creator ? {
4428
- type: "categories"
4429
- } : {})
4416
+ data: [...category_suggestions]
4430
4417
  });
4431
- this.#guard_url_creator_length(category_suggestions, page_urls);
4432
- while (page_urls.length)
4433
- // Copy over getters so we sneakily can make this reactive
4434
- Object.defineProperties(category_suggestions.pop(), Object.getOwnPropertyDescriptors(page_urls.pop()));
4418
+ response.suggestions = transformed_category_suggestions;
4435
4419
  return response;
4436
4420
  }
4437
4421
  async #run_display_transformers_for_rest(merchant, market, input_data) {
4438
4422
  const {
4439
- page_url_creator: page_url_creator,
4440
4423
  display_transformers: display_transformers
4441
4424
  } = this;
4442
- if (!page_url_creator && !display_transformers) return input_data;
4425
+ if (!display_transformers) return input_data;
4443
4426
  const product_transformer = display_transformers?.products;
4444
4427
  const category_transformer = display_transformers?.categories;
4445
4428
  const content_result_transformer = display_transformers?.contentResults;
4446
4429
  const displays = input_data.displays;
4447
- const owner = $i7OB2$getOwner();
4448
4430
  const {
4449
- breadcrumbs: breadcrumbs,
4450
- quick_links: quick_links,
4451
4431
  content_search_links: content_search_links
4452
4432
  } = input_data;
4453
- if (displays && (page_url_creator || product_transformer)) {
4454
- const page_urls = await (page_url_creator || product_transformer)({
4433
+ if (displays && product_transformer) {
4434
+ const transformed_displays = await product_transformer({
4455
4435
  merchant: merchant,
4456
4436
  market: market,
4457
- displays: [...input_data.displays],
4458
- ...(page_url_creator ? {
4459
- type: "products"
4460
- } : {})
4437
+ displays: [...displays]
4461
4438
  });
4462
- this.#guard_url_creator_length(displays, page_urls);
4463
- for (let i = 0; i < displays.length; i++) {
4464
- const new_display_or_page_url = page_urls[i];
4465
- const old_display = displays[i];
4466
- if ("page_url" in new_display_or_page_url && Object.keys(new_display_or_page_url).length === 1) {
4467
- // they only returned page_url, let's put it into the display
4468
- const old_display_was_modern = ("variant_index" in old_display);
4469
- if (old_display_was_modern) {
4470
- const variant_displays = old_display.variant_displays;
4471
- for (let i = 0; i < variant_displays.length; i++) variant_displays[i].page_url = new_display_or_page_url.page_url;
4472
- } else old_display.page_url = new_display_or_page_url.page_url;
4473
- } else
4474
- // We got a whole new display, let's replace it
4475
- displays[i] = new_display_or_page_url;
4476
- }
4439
+ input_data.displays = transformed_displays;
4477
4440
  }
4478
- if (page_url_creator || category_transformer) for (const category_display_array of [breadcrumbs, quick_links]) {
4441
+ if (category_transformer) for (const key of ["breadcrumbs", "quick_links"]) {
4442
+ const category_display_array = input_data[key];
4479
4443
  if (!category_display_array) continue;
4480
- const page_urls = await (page_url_creator || category_transformer)({
4444
+ const transformed_category_displays = await category_transformer({
4481
4445
  merchant: merchant,
4482
4446
  market: market,
4483
- data: [...category_display_array],
4484
- ...(page_url_creator ? {
4485
- type: "categories"
4486
- } : {})
4447
+ data: [...category_display_array]
4487
4448
  });
4488
- this.#guard_url_creator_length(category_display_array, page_urls);
4489
- for (let i = 0; i < category_display_array.length; i++)
4490
- // Copy over getters so we sneakily can make this reactive
4491
- Object.defineProperties(category_display_array[i], Object.getOwnPropertyDescriptors(page_urls[i]));
4492
- }
4493
- if (content_search_links?.length && content_result_transformer) {
4494
- const result = await $i7OB2$runWithOwner(owner, () => content_result_transformer({
4495
- merchant: merchant,
4496
- market: market,
4497
- data: [...content_search_links]
4498
- }));
4499
- this.#guard_url_creator_length(content_search_links, result);
4500
- input_data.content_search_links = result;
4449
+ input_data[key] = transformed_category_displays;
4501
4450
  }
4451
+ if (content_search_links?.length && content_result_transformer) input_data.content_search_links = await content_result_transformer({
4452
+ merchant: merchant,
4453
+ market: market,
4454
+ data: [...content_search_links]
4455
+ });
4502
4456
  return input_data;
4503
4457
  }
4504
4458
  async #cached_request({
@@ -4510,7 +4464,6 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
4510
4464
  }) {
4511
4465
  const cache_obj = this.#get_cache_obj_for_endpoint(endpoint_);
4512
4466
  const with_ids = this.#add_ids_to_request(input_req_);
4513
- const owner = $i7OB2$getOwner();
4514
4467
  const metaData = await this.#get_metadata?.();
4515
4468
  const request = metaData ? Object.assign(with_ids, {
4516
4469
  metadata: metaData
@@ -4538,7 +4491,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
4538
4491
  let result;
4539
4492
  try {
4540
4493
  const unmodified_result = await api_response.json();
4541
- result = await $i7OB2$runWithOwner(owner, () => this.#run_display_transformers_for_rest(input_req_.merchant, input_req_.market, unmodified_result));
4494
+ result = await this.#run_display_transformers_for_rest(input_req_.merchant, input_req_.market, unmodified_result);
4542
4495
  } catch (e) {
4543
4496
  $i7OB2$dwarn("displayTransformer or json decoding failed", e);
4544
4497
  break return_successfully;
@@ -4569,17 +4522,14 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
4569
4522
  const {
4570
4523
  get_metadata: get_metadata,
4571
4524
  get_session_id: get_session_id,
4572
- page_url_creator: page_url_creator,
4573
4525
  display_transformers: display_transformers
4574
4526
  } = options ?? {};
4575
4527
  this.#get_metadata = get_metadata;
4576
4528
  this.#get_session_id = get_session_id;
4577
- this.page_url_creator = page_url_creator;
4578
4529
  this.display_transformers = display_transformers;
4579
4530
  }
4580
4531
  async suggest(input_req) {
4581
4532
  const with_ids = this.#add_ids_to_request(input_req);
4582
- const owner = $i7OB2$getOwner();
4583
4533
  const metaData = await this.#get_metadata?.();
4584
4534
  const request = metaData ? Object.assign(with_ids, {
4585
4535
  metadata: JSON.stringify(metaData)
@@ -4591,7 +4541,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
4591
4541
  const decoded_json = await results.json();
4592
4542
  if (!Array.isArray(decoded_json?.suggestions)) break attempt_to_return_api_response;
4593
4543
  try {
4594
- return await $i7OB2$runWithOwner(owner, () => this.#run_url_creator_for_suggest(input_req.merchant, input_req.market, decoded_json));
4544
+ return await this.#run_url_creator_for_suggest(input_req.merchant, input_req.market, decoded_json);
4595
4545
  } catch (e) {
4596
4546
  $i7OB2$dwarn("displayTransformer failed", e);
4597
4547
  }
@@ -6201,7 +6151,9 @@ function $dfa5b6f7c5e421df$export$5646050d516e06bc({
6201
6151
  children: (display_accessor, index) => {
6202
6152
  const href = $i7OB2$createMemo(() => $4147651646da990a$export$43cd1e747fecd42e({
6203
6153
  to_url_: display_accessor()?.page_url,
6204
- filter_query_param_prefix_: filter_query_param_prefix_,
6154
+ filter_query_param_prefix_:
6155
+ // page_url here can be a getter if that was added in the display transformers as a way of making this reactive
6156
+ filter_query_param_prefix_,
6205
6157
  sorting_query_param_: sorting_query_param_
6206
6158
  }));
6207
6159
  return [$i7OB2$createComponent((0, $i7OB2$Show), {
@@ -7256,7 +7208,6 @@ class $961b5c64bef4662f$export$f34314aa9505732e {
7256
7208
  constructor({
7257
7209
  api: api,
7258
7210
  on_navigation: on_navigation,
7259
- page_url_creator: page_url_creator,
7260
7211
  display_transformers: display_transformers,
7261
7212
  unique_instance_key_for_state = "",
7262
7213
  listing_id_state_key: listing_id_state_key,
@@ -7307,7 +7258,6 @@ class $961b5c64bef4662f$export$f34314aa9505732e {
7307
7258
  reset_history_state_: reset_history_state_,
7308
7259
  // @ts-ignore
7309
7260
  depict_api_: api ?? new (0, $7fa23e2a0079eca4$export$e015ed2f2950f2e3)({
7310
- page_url_creator: page_url_creator,
7311
7261
  display_transformers: display_transformers
7312
7262
  }),
7313
7263
  router_: this.#router,
@@ -9577,7 +9527,6 @@ class $806c97b931758897$export$ac6237957a15b3f0 {
9577
9527
  url_transformer: url_transformer,
9578
9528
  on_navigation: on_navigation,
9579
9529
  enable_category_suggestions = true,
9580
- page_url_creator: page_url_creator,
9581
9530
  display_transformers: display_transformers,
9582
9531
  api: api,
9583
9532
  // Stuff needed for non-standard customer deployments that we shouldn't actually expose
@@ -9629,7 +9578,6 @@ class $806c97b931758897$export$ac6237957a15b3f0 {
9629
9578
  });
9630
9579
  // @ts-ignore
9631
9580
  const depict_api_ = api ?? new (0, $7fa23e2a0079eca4$export$e015ed2f2950f2e3)({
9632
- page_url_creator: page_url_creator,
9633
9581
  display_transformers: display_transformers
9634
9582
  });
9635
9583
  const previous_searches = $21f51c14cb3f586f$export$84bba84a7b837187(get_search_query_);