@depict-ai/ui 2.0.4 → 2.0.6

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/latest/index.cjs CHANGED
@@ -61,7 +61,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $a3280f0aad997933$expo
61
61
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $a3280f0aad997933$export$7bf543b9d9be2c22);
62
62
  $parcel$export(module.exports, "version", () => $b757f75811f3261f$export$83d89fbfd8236492);
63
63
  /*! Depict.ai search and product listing SDK */
64
- const $b757f75811f3261f$export$83d89fbfd8236492 = "2.0.4";
64
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "2.0.6";
65
65
 
66
66
  /** @jsxImportSource solid-js */
67
67
 
@@ -1740,6 +1740,9 @@ function $0b7222ba8a8bb72f$export$e0d834a0ad870cda({
1740
1740
  selected_filters_: selected_filters_,
1741
1741
  i18n_: i18n_
1742
1742
  }) {
1743
+ // If you ever attempt to implement that one can drag one range "knob" over the other like on prisjakt, see https://gitlab.com/depict-ai/depict.ai/-/merge_requests/8458/diffs?commit_id=c52dbdd15ca073489bee138b15d27bb6bf2992df
1744
+ // The issue with it is that one wants to discard the changes to the lower value as soon as the lower value has become the upper value when dragging the initially lower knob over the initially upper knob
1745
+ // But we can't reliably know when we've started dragging/changing the value (or at least I gave up at that point for now)
1743
1746
  const current_range = $gVhhF$solidjs.createSignal($gVhhF$solidjs.untrack(() => filter_().data));
1744
1747
  const selected_filter = $gVhhF$solidjs.createMemo(() => selected_filters_[0]().find(({
1745
1748
  field: checking_field,
@@ -1804,6 +1807,7 @@ function $0b7222ba8a8bb72f$var$RangeSelector({
1804
1807
  const [get_current_range] = current_range_;
1805
1808
  const pre_price = $gVhhF$solidjs.createMemo(() => price_formatting_().pre_);
1806
1809
  const post_price = $gVhhF$solidjs.createMemo(() => price_formatting_().post_);
1810
+ const should_be_disabled_ = $gVhhF$solidjs.createMemo(() => Math.abs(min_() - max_()) < 2);
1807
1811
  return (() => {
1808
1812
  const _el$ = $gVhhF$solidjsweb.getNextElement($0b7222ba8a8bb72f$var$_tmpl$),
1809
1813
  _el$2 = _el$.firstChild,
@@ -1849,7 +1853,8 @@ function $0b7222ba8a8bb72f$var$RangeSelector({
1849
1853
  max_: max_,
1850
1854
  min_: min_,
1851
1855
  current_range_: current_range_,
1852
- i18n_: i18n_
1856
+ i18n_: i18n_,
1857
+ should_be_disabled_: should_be_disabled_
1853
1858
  }), _el$24, _co$7);
1854
1859
  $gVhhF$solidjsweb.insert(_el$9, pre_price, _el$11, _co$);
1855
1860
  $gVhhF$solidjsweb.insert(_el$9, $gVhhF$solidjsweb.createComponent((0, $d659702496cb72ea$export$a71e92cfbb498adc), {
@@ -1872,18 +1877,24 @@ function $0b7222ba8a8bb72f$var$RangeSelector({
1872
1877
  }), _el$20, _co$5);
1873
1878
  $gVhhF$solidjsweb.insert(_el$16, post_price, _el$22, _co$6);
1874
1879
  $gVhhF$solidjsweb.effect(_p$ => {
1875
- const _v$ = i18n_.range_filter_low_point_aria_label_(),
1876
- _v$2 = min_(),
1877
- _v$3 = max_(),
1878
- _v$4 = i18n_.range_filter_high_point_aria_label_(),
1879
- _v$5 = min_(),
1880
- _v$6 = max_();
1881
- _v$ !== _p$._v$ && $gVhhF$solidjsweb.setAttribute(_el$4, "aria-label", _p$._v$ = _v$);
1882
- _v$2 !== _p$._v$2 && $gVhhF$solidjsweb.setAttribute(_el$4, "min", _p$._v$2 = _v$2);
1883
- _v$3 !== _p$._v$3 && $gVhhF$solidjsweb.setAttribute(_el$4, "max", _p$._v$3 = _v$3);
1884
- _v$4 !== _p$._v$4 && $gVhhF$solidjsweb.setAttribute(_el$7, "aria-label", _p$._v$4 = _v$4);
1885
- _v$5 !== _p$._v$5 && $gVhhF$solidjsweb.setAttribute(_el$7, "min", _p$._v$5 = _v$5);
1886
- _v$6 !== _p$._v$6 && $gVhhF$solidjsweb.setAttribute(_el$7, "max", _p$._v$6 = _v$6);
1880
+ const _v$ = !!(min_() === max_()),
1881
+ _v$2 = should_be_disabled_(),
1882
+ _v$3 = i18n_.range_filter_low_point_aria_label_(),
1883
+ _v$4 = min_(),
1884
+ _v$5 = max_(),
1885
+ _v$6 = should_be_disabled_(),
1886
+ _v$7 = i18n_.range_filter_high_point_aria_label_(),
1887
+ _v$8 = min_(),
1888
+ _v$9 = max_();
1889
+ _v$ !== _p$._v$ && _el$.classList.toggle("disabled", _p$._v$ = _v$);
1890
+ _v$2 !== _p$._v$2 && (_el$4.disabled = _p$._v$2 = _v$2);
1891
+ _v$3 !== _p$._v$3 && $gVhhF$solidjsweb.setAttribute(_el$4, "aria-label", _p$._v$3 = _v$3);
1892
+ _v$4 !== _p$._v$4 && $gVhhF$solidjsweb.setAttribute(_el$4, "min", _p$._v$4 = _v$4);
1893
+ _v$5 !== _p$._v$5 && $gVhhF$solidjsweb.setAttribute(_el$4, "max", _p$._v$5 = _v$5);
1894
+ _v$6 !== _p$._v$6 && (_el$7.disabled = _p$._v$6 = _v$6);
1895
+ _v$7 !== _p$._v$7 && $gVhhF$solidjsweb.setAttribute(_el$7, "aria-label", _p$._v$7 = _v$7);
1896
+ _v$8 !== _p$._v$8 && $gVhhF$solidjsweb.setAttribute(_el$7, "min", _p$._v$8 = _v$8);
1897
+ _v$9 !== _p$._v$9 && $gVhhF$solidjsweb.setAttribute(_el$7, "max", _p$._v$9 = _v$9);
1887
1898
  return _p$;
1888
1899
  }, {
1889
1900
  _v$: undefined,
@@ -1891,7 +1902,10 @@ function $0b7222ba8a8bb72f$var$RangeSelector({
1891
1902
  _v$3: undefined,
1892
1903
  _v$4: undefined,
1893
1904
  _v$5: undefined,
1894
- _v$6: undefined
1905
+ _v$6: undefined,
1906
+ _v$7: undefined,
1907
+ _v$8: undefined,
1908
+ _v$9: undefined
1895
1909
  });
1896
1910
  $gVhhF$solidjsweb.effect(() => _el$4.value = get_current_range()[0]);
1897
1911
  $gVhhF$solidjsweb.effect(() => _el$7.value = get_current_range()[1]);
@@ -1903,13 +1917,13 @@ function $0b7222ba8a8bb72f$var$ExponentialSlider({
1903
1917
  current_range_: current_range_,
1904
1918
  min_: min_,
1905
1919
  i18n_: i18n_,
1906
- max_: max_
1920
+ max_: max_,
1921
+ should_be_disabled_: should_be_disabled_
1907
1922
  }) {
1908
1923
  // inspired by https://observablehq.com/@mbostock/nonlinear-slider
1909
1924
  const transform_linear_to_nonlinear = ([smaller, larger]) => [Math.sqrt(smaller), Math.sqrt(larger)];
1910
1925
  const [read_current_range, write_current_range] = current_range_;
1911
- const modified_range = $gVhhF$solidjs.createSignal(transform_linear_to_nonlinear($gVhhF$solidjs.untrack(read_current_range)));
1912
- const [read_modified_range, write_modified_range] = modified_range;
1926
+ const modified_range_accessor = $gVhhF$solidjs.createMemo(() => transform_linear_to_nonlinear(read_current_range()));
1913
1927
  const modified_max = $gVhhF$solidjs.createMemo(() => Math.sqrt(max_()));
1914
1928
  const modified_min = $gVhhF$solidjs.createMemo(() => Math.sqrt(min_()));
1915
1929
  const offset_value_calculator_ = (value, how_many) => {
@@ -1917,23 +1931,28 @@ function $0b7222ba8a8bb72f$var$ExponentialSlider({
1917
1931
  const changed = number_in_linear + how_many;
1918
1932
  return Math.sqrt(changed);
1919
1933
  };
1920
- $gVhhF$solidjs.createComputed($gVhhF$solidjs.on(read_current_range, new_range_from_above => {
1921
- // to prevent from infinite looping, don't write if it's around the same
1922
- const new_modified_range = transform_linear_to_nonlinear(new_range_from_above);
1923
- const current_modified_range = read_modified_range();
1924
- if (!current_modified_range.every((item, index) => Math.round(item) === Math.round(new_modified_range[index]))) write_modified_range(new_modified_range);
1925
- }, {
1926
- defer: true
1927
- }));
1928
- $gVhhF$solidjs.createComputed($gVhhF$solidjs.on(read_modified_range, ([smaller, larger]) => write_current_range([Math.round(smaller * smaller), Math.round(larger * larger)]), {
1929
- defer: true
1930
- }));
1934
+ const convert_back = (smaller, larger) => [Math.round(smaller * smaller), Math.round(larger * larger)];
1935
+ const modified_range_setter = new_range_or_function => {
1936
+ const old_range = $gVhhF$solidjs.untrack(modified_range_accessor);
1937
+ const new_range = typeof new_range_or_function === "function" ? new_range_or_function(old_range) : new_range_or_function;
1938
+ const [smaller, larger] = new_range;
1939
+ const [old_smaller, old_larger] = old_range;
1940
+ const new_range_converted = convert_back(smaller, larger);
1941
+ const old_range_converted = convert_back(old_smaller, old_larger);
1942
+ if (new_range_converted[0] === old_range_converted[0] && new_range_converted[1] === old_range_converted[1])
1943
+ // If the new value gets identical rounding errors to the old value when being converted back, don't write it to the signal since it would cause an infinite loop
1944
+ return new_range;
1945
+ write_current_range(new_range_converted);
1946
+ return new_range;
1947
+ };
1931
1948
  return $0b7222ba8a8bb72f$var$LinearSlider({
1932
- current_range_: modified_range,
1949
+ current_range_: [modified_range_accessor, modified_range_setter],
1950
+ // "Lie" to the actual slider so we don't have to implement exponential handling in there
1933
1951
  min_: modified_min,
1934
1952
  max_: modified_max,
1935
1953
  offset_value_calculator_: offset_value_calculator_,
1936
- i18n_: i18n_
1954
+ i18n_: i18n_,
1955
+ should_be_disabled_: should_be_disabled_
1937
1956
  });
1938
1957
  }
1939
1958
  function $0b7222ba8a8bb72f$var$LinearSlider({
@@ -1941,14 +1960,19 @@ function $0b7222ba8a8bb72f$var$LinearSlider({
1941
1960
  min_: min_,
1942
1961
  current_range_: current_range_,
1943
1962
  offset_value_calculator_: offset_value_calculator_,
1944
- i18n_: i18n_
1963
+ i18n_: i18n_,
1964
+ should_be_disabled_: should_be_disabled_
1945
1965
  }) {
1946
1966
  let range_input_1;
1947
1967
  let range_input_2;
1948
1968
  let clickable_slider;
1949
1969
  const [get_current_range, set_current_range] = current_range_;
1950
1970
  const progress_styling = $gVhhF$solidjs.createMemo(() => {
1951
- return `left:${get_current_range()[0] / max_() * 100}%;right:${100 - get_current_range()[1] / max_() * 100}%`;
1971
+ const min = min_();
1972
+ const span = max_() - min;
1973
+ const [start, end] = get_current_range();
1974
+ if (should_be_disabled_()) return `left:50%;right:50%`;
1975
+ return `left:${(start - min) / span * 100}%;right:${100 - (end - min) / span * 100}%`;
1952
1976
  });
1953
1977
  const set_value = (el, index) => {
1954
1978
  // initially I set the value on the elements by just having value={get_current_range()[0]}
@@ -1971,7 +1995,7 @@ function $0b7222ba8a8bb72f$var$LinearSlider({
1971
1995
  const click_from_left_in_slider = e.clientX - slider_beginning_left; // both of these value contain scroll position so this should work regardless of horisontal scroll if there is any
1972
1996
  const place_of_click_in_percent = click_from_left_in_slider / slider_width * 100;
1973
1997
  const one_percent_of_range = (max_() - min_()) / 100;
1974
- const place_of_click = Math.round(min_() + one_percent_of_range * place_of_click_in_percent);
1998
+ const place_of_click = min_() + one_percent_of_range * place_of_click_in_percent;
1975
1999
  const [lower, upper] = get_current_range();
1976
2000
  const distance_to_lower_point = Math.abs(place_of_click - lower);
1977
2001
  const distance_to_upper_point = Math.abs(upper - place_of_click);
@@ -1997,26 +2021,32 @@ function $0b7222ba8a8bb72f$var$LinearSlider({
1997
2021
  }, _el$29);
1998
2022
  $gVhhF$solidjsweb.addEventListener(_el$29, "input", $gVhhF$depictaiutilishared.catchify(() => $0b7222ba8a8bb72f$var$set_range_with_sanitation(min_, max_, current_range_, 1, range_input_2, offset_value_calculator_)), true);
1999
2023
  $gVhhF$solidjsweb.effect(_p$ => {
2000
- const _v$7 = i18n_.range_filter_low_point_aria_label_(),
2001
- _v$8 = min_(),
2002
- _v$9 = max_(),
2003
- _v$10 = i18n_.range_filter_high_point_aria_label_(),
2004
- _v$11 = min_(),
2005
- _v$12 = max_();
2006
- _v$7 !== _p$._v$7 && $gVhhF$solidjsweb.setAttribute(_el$28, "aria-label", _p$._v$7 = _v$7);
2007
- _v$8 !== _p$._v$8 && $gVhhF$solidjsweb.setAttribute(_el$28, "min", _p$._v$8 = _v$8);
2008
- _v$9 !== _p$._v$9 && $gVhhF$solidjsweb.setAttribute(_el$28, "max", _p$._v$9 = _v$9);
2009
- _v$10 !== _p$._v$10 && $gVhhF$solidjsweb.setAttribute(_el$29, "aria-label", _p$._v$10 = _v$10);
2010
- _v$11 !== _p$._v$11 && $gVhhF$solidjsweb.setAttribute(_el$29, "min", _p$._v$11 = _v$11);
2011
- _v$12 !== _p$._v$12 && $gVhhF$solidjsweb.setAttribute(_el$29, "max", _p$._v$12 = _v$12);
2024
+ const _v$10 = should_be_disabled_(),
2025
+ _v$11 = i18n_.range_filter_low_point_aria_label_(),
2026
+ _v$12 = min_(),
2027
+ _v$13 = max_(),
2028
+ _v$14 = should_be_disabled_(),
2029
+ _v$15 = i18n_.range_filter_high_point_aria_label_(),
2030
+ _v$16 = min_(),
2031
+ _v$17 = max_();
2032
+ _v$10 !== _p$._v$10 && (_el$28.disabled = _p$._v$10 = _v$10);
2033
+ _v$11 !== _p$._v$11 && $gVhhF$solidjsweb.setAttribute(_el$28, "aria-label", _p$._v$11 = _v$11);
2034
+ _v$12 !== _p$._v$12 && $gVhhF$solidjsweb.setAttribute(_el$28, "min", _p$._v$12 = _v$12);
2035
+ _v$13 !== _p$._v$13 && $gVhhF$solidjsweb.setAttribute(_el$28, "max", _p$._v$13 = _v$13);
2036
+ _v$14 !== _p$._v$14 && (_el$29.disabled = _p$._v$14 = _v$14);
2037
+ _v$15 !== _p$._v$15 && $gVhhF$solidjsweb.setAttribute(_el$29, "aria-label", _p$._v$15 = _v$15);
2038
+ _v$16 !== _p$._v$16 && $gVhhF$solidjsweb.setAttribute(_el$29, "min", _p$._v$16 = _v$16);
2039
+ _v$17 !== _p$._v$17 && $gVhhF$solidjsweb.setAttribute(_el$29, "max", _p$._v$17 = _v$17);
2012
2040
  return _p$;
2013
2041
  }, {
2014
- _v$7: undefined,
2015
- _v$8: undefined,
2016
- _v$9: undefined,
2017
2042
  _v$10: undefined,
2018
2043
  _v$11: undefined,
2019
- _v$12: undefined
2044
+ _v$12: undefined,
2045
+ _v$13: undefined,
2046
+ _v$14: undefined,
2047
+ _v$15: undefined,
2048
+ _v$16: undefined,
2049
+ _v$17: undefined
2020
2050
  });
2021
2051
  $gVhhF$solidjsweb.effect(() => _el$28.value = $gVhhF$solidjs.createMemo(() => {
2022
2052
  min_();
@@ -2306,47 +2336,50 @@ function $3bdc00a1353c1150$var$render_stuff(data, existing_filter, i18n_) {
2306
2336
  return has_expandable();
2307
2337
  },
2308
2338
  get children() {
2309
- return $gVhhF$solidjsweb.createComponent((0, $a69e505a12a77874$export$6c6d7a51fa9aa15d), {
2310
- get details_() {
2311
- return $gVhhF$solidjsweb.getNextElement($3bdc00a1353c1150$var$_tmpl$3);
2312
- },
2313
- get summary_() {
2314
- return (() => {
2315
- const _el$12 = $gVhhF$solidjsweb.getNextElement($3bdc00a1353c1150$var$_tmpl$4),
2316
- _el$13 = _el$12.firstChild,
2317
- _el$14 = _el$13.firstChild,
2318
- _el$15 = _el$14.nextSibling,
2319
- [_el$16, _co$5] = $gVhhF$solidjsweb.getNextMarker(_el$15.nextSibling);
2320
- $gVhhF$solidjsweb.insert(_el$14, () => value()?.count_);
2321
- $gVhhF$solidjsweb.insert(_el$13, $gVhhF$solidjsweb.createComponent((0, $7567511a7c3e4bd7$export$e5c2828934226505), {
2322
- i18n_: i18n_,
2323
- get expanded_() {
2324
- return $gVhhF$solidjs.createMemo(() => value()?.is_expanded_?.ui_should_show_expanded_?.() ?? false);
2325
- }
2326
- }), _el$16, _co$5);
2327
- $gVhhF$solidjsweb.effect(() => _el$14.classList.toggle("count-0", !!(value()?.count_ === 0)));
2328
- return _el$12;
2329
- })();
2330
- },
2331
- get is_open_() {
2332
- return $gVhhF$solidjs.createMemo(() => {
2333
- const v = value();
2334
- if (!v)
2335
- // only to prevent cleanup errors
2336
- return $gVhhF$solidjs.createSignal(false);
2337
- const {
2338
- is_expanded_: {
2339
- ui_should_show_expanded_: ui_should_show_expanded_,
2340
- set_user_expanded_: set_user_expanded_
2341
- }
2342
- } = v;
2343
- return [ui_should_show_expanded_, set_user_expanded_];
2344
- })();
2345
- },
2346
- get children() {
2347
- return $3bdc00a1353c1150$var$render_stuff($gVhhF$solidjs.createMemo(() => value()?.children_ || {}), existing_filter, i18n_);
2348
- }
2349
- });
2339
+ return (() => {
2340
+ const is_open = $gVhhF$solidjs.createMemo(() => {
2341
+ const v = value();
2342
+ if (!v)
2343
+ // only to prevent cleanup errors
2344
+ return $gVhhF$solidjs.createSignal(false);
2345
+ const {
2346
+ is_expanded_: {
2347
+ ui_should_show_expanded_: ui_should_show_expanded_,
2348
+ set_user_expanded_: set_user_expanded_
2349
+ }
2350
+ } = v;
2351
+ return [ui_should_show_expanded_, set_user_expanded_];
2352
+ });
2353
+ return $gVhhF$solidjsweb.createComponent((0, $a69e505a12a77874$export$6c6d7a51fa9aa15d), {
2354
+ get details_() {
2355
+ return $gVhhF$solidjsweb.getNextElement($3bdc00a1353c1150$var$_tmpl$3);
2356
+ },
2357
+ get summary_() {
2358
+ return (() => {
2359
+ const _el$12 = $gVhhF$solidjsweb.getNextElement($3bdc00a1353c1150$var$_tmpl$4),
2360
+ _el$13 = _el$12.firstChild,
2361
+ _el$14 = _el$13.firstChild,
2362
+ _el$15 = _el$14.nextSibling,
2363
+ [_el$16, _co$5] = $gVhhF$solidjsweb.getNextMarker(_el$15.nextSibling);
2364
+ $gVhhF$solidjsweb.insert(_el$14, () => value()?.count_);
2365
+ $gVhhF$solidjsweb.insert(_el$13, $gVhhF$solidjsweb.createComponent((0, $7567511a7c3e4bd7$export$e5c2828934226505), {
2366
+ i18n_: i18n_,
2367
+ get expanded_() {
2368
+ return $gVhhF$solidjs.createMemo(() => value()?.is_expanded_?.ui_should_show_expanded_?.() ?? false);
2369
+ }
2370
+ }), _el$16, _co$5);
2371
+ $gVhhF$solidjsweb.effect(() => _el$14.classList.toggle("count-0", !!(value()?.count_ === 0)));
2372
+ return _el$12;
2373
+ })();
2374
+ },
2375
+ get is_open_() {
2376
+ return is_open();
2377
+ },
2378
+ get children() {
2379
+ return $3bdc00a1353c1150$var$render_stuff($gVhhF$solidjs.createMemo(() => value()?.children_ || {}), existing_filter, i18n_);
2380
+ }
2381
+ });
2382
+ })();
2350
2383
  }
2351
2384
  }), _el$10, _co$4);
2352
2385
  $gVhhF$solidjsweb.effect(() => _el$6.classList.toggle("expandable", !!has_expandable()));
@@ -2412,7 +2445,7 @@ function $3bdc00a1353c1150$var$create_updating_signal({
2412
2445
  // wait for the children to have populated and us to have received the correct value_ and name_ values
2413
2446
  let updating_blocked = false;
2414
2447
  const index_of_us_in_selected_filter = existing_filter_?.data?.findIndex?.(el => el.length === self_.value_.length && el.every((sub_el, index) => self_.value_[index] === sub_el));
2415
- signal_.push(...$gVhhF$solidjs.createSignal(index_of_us_in_selected_filter >= 0 ? true : false));
2448
+ signal_.push(...$gVhhF$solidjs.createSignal(index_of_us_in_selected_filter >= 0));
2416
2449
  const [read_checked, write_checked] = signal_;
2417
2450
  const child_objects = Object.values(self_.children_);
2418
2451
  const get_child_object_values = child_objects.map(({
package/latest/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { CategorySuggestion, SearchSuggestionsResponse } from "@depict-ai/types/
7
7
  import { BaseSearchRequest } from "@depict-ai/types/api/BaseSearchRequest";
8
8
  import { SearchSuggestionsRequest } from "@depict-ai/types/api/SearchSuggestionsRequest";
9
9
  import { ProductListingRequest } from "@depict-ai/types/api/ProductListingRequest";
10
- export const version = "2.0.4";
10
+ export const version = "2.0.6";
11
11
  /**
12
12
  * Returns accessor with the size of the provided element, including padding and border (I think)
13
13
  */