@synerise/ds-search 1.5.8 → 1.5.10

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +47 -42
  3. package/dist/Elements/SearchButton/SearchButton.d.ts +2 -2
  4. package/dist/Elements/SearchButton/SearchButton.js +16 -28
  5. package/dist/Elements/SearchButton/SearchButton.types.js +1 -1
  6. package/dist/Elements/SearchHeader/SearchHeader.d.ts +2 -2
  7. package/dist/Elements/SearchHeader/SearchHeader.js +15 -15
  8. package/dist/Elements/SearchHeader/SearchHeader.types.js +1 -1
  9. package/dist/Elements/SearchInput/SearchInput.d.ts +2 -2
  10. package/dist/Elements/SearchInput/SearchInput.js +74 -117
  11. package/dist/Elements/SearchInput/SearchInput.types.d.ts +3 -3
  12. package/dist/Elements/SearchInput/SearchInput.types.js +1 -1
  13. package/dist/Elements/SearchItems/SearchItems.d.ts +2 -2
  14. package/dist/Elements/SearchItems/SearchItems.js +54 -58
  15. package/dist/Elements/SearchItems/SearchItems.types.d.ts +1 -1
  16. package/dist/Elements/SearchItems/SearchItems.types.js +1 -1
  17. package/dist/Elements/SearchRenderer/SearchRenderer.d.ts +1 -1
  18. package/dist/Elements/SearchRenderer/SearchRenderer.js +22 -33
  19. package/dist/Elements/SearchRenderer/SearchRenderer.types.d.ts +2 -2
  20. package/dist/Elements/SearchRenderer/SearchRenderer.types.js +1 -1
  21. package/dist/Elements/index.js +12 -4
  22. package/dist/Elements/utils/searchUtils.d.ts +1 -1
  23. package/dist/Elements/utils/searchUtils.js +16 -17
  24. package/dist/Search.d.ts +2 -3
  25. package/dist/Search.js +145 -230
  26. package/dist/Search.styles.d.ts +15 -15
  27. package/dist/Search.styles.js +59 -62
  28. package/dist/Search.types.d.ts +4 -4
  29. package/dist/Search.types.js +8 -7
  30. package/dist/assets/style/index-tn0RQdqM.css +0 -0
  31. package/dist/const.js +16 -7
  32. package/dist/index.js +14 -2
  33. package/dist/modules.d.js +1 -1
  34. package/dist/modules.d.ts +0 -0
  35. package/package.json +11 -11
@@ -1,48 +1,51 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { cloneElement, useEffect, useMemo, useRef } from 'react';
3
- import { FixedSizeList as List } from 'react-window';
4
- import { ListContextProvider } from '@synerise/ds-list-item';
5
- import Menu from '@synerise/ds-menu';
6
- var listStyle = {
7
- overflowX: 'unset',
8
- overflowY: 'unset'
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useRef, useMemo, useEffect, cloneElement } from "react";
3
+ import { FixedSizeList } from "react-window";
4
+ import { ListContextProvider } from "@synerise/ds-list-item";
5
+ import Menu from "@synerise/ds-menu";
6
+ const listStyle = {
7
+ overflowX: "unset",
8
+ overflowY: "unset"
9
9
  };
10
- export function renderSearchList(props, children) {
11
- return /*#__PURE__*/React.createElement(SearchItems, props, children);
10
+ function renderSearchList(props, children) {
11
+ return /* @__PURE__ */ jsx(SearchItems, { ...props, children });
12
12
  }
13
- var rowRenderer = function rowRenderer(_ref) {
14
- var index = _ref.index,
15
- style = _ref.style,
16
- data = _ref.data;
17
- var item = data && data.items[index];
18
- var itemReturnedFromRenderer = data.itemRender(item);
19
- var rendererCustomStyles = itemReturnedFromRenderer && itemReturnedFromRenderer.props && itemReturnedFromRenderer.props.style || {};
20
- var mergedStyles = _extends({}, rendererCustomStyles, style);
21
- return /*#__PURE__*/cloneElement(itemReturnedFromRenderer, _extends({}, itemReturnedFromRenderer.props, {
13
+ const rowRenderer = ({
14
+ index,
15
+ style,
16
+ data
17
+ }) => {
18
+ const item = data && data.items[index];
19
+ const itemReturnedFromRenderer = data.itemRender(item);
20
+ const rendererCustomStyles = itemReturnedFromRenderer && itemReturnedFromRenderer.props && itemReturnedFromRenderer.props.style || {};
21
+ const mergedStyles = {
22
+ ...rendererCustomStyles,
23
+ ...style
24
+ };
25
+ return cloneElement(itemReturnedFromRenderer, {
26
+ ...itemReturnedFromRenderer.props,
22
27
  style: mergedStyles,
23
28
  highlight: data.highlight,
24
- onClick: function onClick() {
25
- return data.onItemClick && data.onItemClick(item);
26
- },
27
- className: 'ds-search-item'
28
- }));
29
+ onClick: () => data.onItemClick && data.onItemClick(item),
30
+ className: "ds-search-item"
31
+ });
29
32
  };
30
- var SearchItems = function SearchItems(_ref2) {
31
- var data = _ref2.data,
32
- height = _ref2.height,
33
- highlight = _ref2.highlight,
34
- itemRender = _ref2.itemRender,
35
- listProps = _ref2.listProps,
36
- onItemClick = _ref2.onItemClick,
37
- rowHeight = _ref2.rowHeight,
38
- visibleRows = _ref2.visibleRows,
39
- width = _ref2.width,
40
- _ref2$renderInMenu = _ref2.renderInMenu,
41
- renderInMenu = _ref2$renderInMenu === void 0 ? true : _ref2$renderInMenu;
42
- var listRef = useRef(null);
43
- var listHeight = useMemo(function () {
33
+ const SearchItems = ({
34
+ data,
35
+ height,
36
+ highlight,
37
+ itemRender,
38
+ listProps,
39
+ onItemClick,
40
+ rowHeight,
41
+ visibleRows,
42
+ width,
43
+ renderInMenu = true
44
+ }) => {
45
+ const listRef = useRef(null);
46
+ const listHeight = useMemo(() => {
44
47
  if (data) {
45
- var dataHeight = data.length * rowHeight;
48
+ const dataHeight = data.length * rowHeight;
46
49
  if (visibleRows) {
47
50
  return visibleRows < data.length ? visibleRows * rowHeight : dataHeight;
48
51
  }
@@ -53,27 +56,20 @@ var SearchItems = function SearchItems(_ref2) {
53
56
  }
54
57
  return 0;
55
58
  }, [data, height, rowHeight, visibleRows]);
56
- useEffect(function () {
59
+ useEffect(() => {
57
60
  if (listRef.current && listProps) {
58
61
  listRef.current.scrollTo(Math.max(0, listProps.scrollTop || 0));
59
62
  }
60
63
  }, [listProps]);
61
- var list = data && /*#__PURE__*/React.createElement(List, _extends({
62
- height: listHeight,
63
- itemCount: data.length,
64
- itemData: {
65
- highlight: highlight,
66
- itemRender: itemRender,
67
- items: data,
68
- onItemClick: onItemClick
69
- },
70
- itemSize: rowHeight,
71
- ref: listRef,
72
- style: listStyle,
73
- width: width
74
- }, listProps), rowRenderer);
75
- return renderInMenu ? /*#__PURE__*/React.createElement(Menu, {
76
- tabIndex: -1
77
- }, list) : /*#__PURE__*/React.createElement(ListContextProvider, null, list);
64
+ const list = data && /* @__PURE__ */ jsx(FixedSizeList, { height: listHeight, itemCount: data.length, itemData: {
65
+ highlight,
66
+ itemRender,
67
+ items: data,
68
+ onItemClick
69
+ }, itemSize: rowHeight, ref: listRef, style: listStyle, width, ...listProps, children: rowRenderer });
70
+ return renderInMenu ? /* @__PURE__ */ jsx(Menu, { tabIndex: -1, children: list }) : /* @__PURE__ */ jsx(ListContextProvider, { children: list });
71
+ };
72
+ export {
73
+ SearchItems as default,
74
+ renderSearchList
78
75
  };
79
- export default SearchItems;
@@ -1,4 +1,4 @@
1
- import { type ListProps } from 'react-window';
1
+ import { ListProps } from '../../../../../../config/vitest/__mocks__/reactWindowMock.js';
2
2
  type ListPropsEnhanced = Partial<ListProps> & {
3
3
  scrollTop?: number;
4
4
  };
@@ -1 +1 @@
1
- export {};
1
+
@@ -1,3 +1,3 @@
1
- import { type SearchRendererProps } from './SearchRenderer.types';
1
+ import { SearchRendererProps } from './SearchRenderer.types';
2
2
  declare const SearchRenderer: ({ title, tooltip, data, width, height, rowHeight, listProps, itemRender, highlight, onItemClick, }: SearchRendererProps) => JSX.Element | null;
3
3
  export default SearchRenderer;
@@ -1,34 +1,23 @@
1
- import React from 'react';
2
- import SearchHeader from '../SearchHeader/SearchHeader';
3
- import SearchItems from '../SearchItems/SearchItems';
4
- var SearchRenderer = function SearchRenderer(_ref) {
5
- var title = _ref.title,
6
- tooltip = _ref.tooltip,
7
- data = _ref.data,
8
- width = _ref.width,
9
- height = _ref.height,
10
- _ref$rowHeight = _ref.rowHeight,
11
- rowHeight = _ref$rowHeight === void 0 ? 30 : _ref$rowHeight,
12
- listProps = _ref.listProps,
13
- _ref$itemRender = _ref.itemRender,
14
- itemRender = _ref$itemRender === void 0 ? function (item) {
15
- return /*#__PURE__*/React.createElement(React.Fragment, null, item);
16
- } : _ref$itemRender,
17
- highlight = _ref.highlight,
18
- onItemClick = _ref.onItemClick;
19
- return /*#__PURE__*/React.createElement(React.Fragment, null, !!title && /*#__PURE__*/React.createElement(SearchHeader, {
20
- headerText: title,
21
- tooltip: tooltip
22
- }), /*#__PURE__*/React.createElement(SearchItems, {
23
- data: data,
24
- height: height,
25
- highlight: highlight,
26
- width: width,
27
- rowHeight: rowHeight,
28
- itemRender: itemRender,
29
- onItemClick: onItemClick,
30
- listProps: listProps,
31
- renderInMenu: false
32
- }));
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import SearchHeader from "../SearchHeader/SearchHeader.js";
3
+ import SearchItems from "../SearchItems/SearchItems.js";
4
+ const SearchRenderer = ({
5
+ title,
6
+ tooltip,
7
+ data,
8
+ width,
9
+ height,
10
+ rowHeight = 30,
11
+ listProps,
12
+ itemRender = (item) => /* @__PURE__ */ jsx(Fragment, { children: item }),
13
+ highlight,
14
+ onItemClick
15
+ }) => {
16
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
17
+ !!title && /* @__PURE__ */ jsx(SearchHeader, { headerText: title, tooltip }),
18
+ /* @__PURE__ */ jsx(SearchItems, { data, height, highlight, width, rowHeight, itemRender, onItemClick, listProps, renderInMenu: false })
19
+ ] });
20
+ };
21
+ export {
22
+ SearchRenderer as default
33
23
  };
34
- export default SearchRenderer;
@@ -1,5 +1,5 @@
1
- import { type ReactElement } from 'react';
2
- import { type AnyObject } from '../../Search.types';
1
+ import { ReactElement } from 'react';
2
+ import { AnyObject } from '../../Search.types';
3
3
  export type SearchRendererProps = {
4
4
  title?: string;
5
5
  tooltip?: string;
@@ -1 +1 @@
1
- export {};
1
+
@@ -1,4 +1,12 @@
1
- export { default as SearchInput } from './SearchInput/SearchInput';
2
- export { default as SearchHeader } from './SearchHeader/SearchHeader';
3
- export { default as SearchItemList, default as SearchItems, renderSearchList } from './SearchItems/SearchItems';
4
- export { default as SearchButton } from './SearchButton/SearchButton';
1
+ import { default as default2 } from "./SearchInput/SearchInput.js";
2
+ import { default as default3 } from "./SearchHeader/SearchHeader.js";
3
+ import { default as default4, default as default5, renderSearchList } from "./SearchItems/SearchItems.js";
4
+ import { default as default6 } from "./SearchButton/SearchButton.js";
5
+ export {
6
+ default6 as SearchButton,
7
+ default3 as SearchHeader,
8
+ default2 as SearchInput,
9
+ default4 as SearchItemList,
10
+ default5 as SearchItems,
11
+ renderSearchList
12
+ };
@@ -1,4 +1,4 @@
1
- import { type AnyObject } from '../../Search.types';
1
+ import { AnyObject } from '../../Search.types';
2
2
  export declare const getAllElementsFiltered: <T extends AnyObject>(data: T[] | undefined | null, value: string, elementTextLookupKey: keyof T) => T[];
3
3
  export declare const hasSomeElementFiltered: <T extends AnyObject>(data: T[] | undefined | null, currentValue: string, elementTextLookupKey: keyof T) => boolean;
4
4
  export declare const hasSomeElement: (data: Record<string, unknown>[] | undefined) => boolean;
@@ -1,20 +1,19 @@
1
- import { LIST_HEADER_HEIGHT } from '../../const';
2
- export var getAllElementsFiltered = function getAllElementsFiltered(data, value, elementTextLookupKey) {
3
- return data && data.filter(function (el) {
4
- return String(el[elementTextLookupKey]).toLowerCase().includes(value.toLocaleLowerCase());
5
- }) || [];
1
+ import { LIST_HEADER_HEIGHT } from "../../const.js";
2
+ const getAllElementsFiltered = (data, value, elementTextLookupKey) => {
3
+ return data && data.filter((el) => String(el[elementTextLookupKey]).toLowerCase().includes(value.toLocaleLowerCase())) || [];
6
4
  };
7
- export var hasSomeElementFiltered = function hasSomeElementFiltered(data, currentValue, elementTextLookupKey) {
8
- return !!data && data.some(function (el) {
9
- return String(el[elementTextLookupKey]).toLowerCase().includes(currentValue.toLocaleLowerCase());
10
- }) || false;
5
+ const hasSomeElementFiltered = (data, currentValue, elementTextLookupKey) => {
6
+ return !!data && data.some((el) => String(el[elementTextLookupKey]).toLowerCase().includes(currentValue.toLocaleLowerCase())) || false;
11
7
  };
12
- export var hasSomeElement = function hasSomeElement(data) {
13
- return !!data && data.length > 0;
8
+ const hasSomeElement = (data) => !!data && data.length > 0;
9
+ const getParametersScrollTop = ({
10
+ scrollTop,
11
+ rowHeight,
12
+ recent
13
+ }) => scrollTop - LIST_HEADER_HEIGHT - (hasSomeElement(recent) ? recent.length * rowHeight : 0);
14
+ export {
15
+ getAllElementsFiltered,
16
+ getParametersScrollTop,
17
+ hasSomeElement,
18
+ hasSomeElementFiltered
14
19
  };
15
- export var getParametersScrollTop = function getParametersScrollTop(_ref) {
16
- var scrollTop = _ref.scrollTop,
17
- rowHeight = _ref.rowHeight,
18
- recent = _ref.recent;
19
- return scrollTop - LIST_HEADER_HEIGHT - (hasSomeElement(recent) ? recent.length * rowHeight : 0);
20
- };
package/dist/Search.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
- import { type AnyObject, type SearchProps } from './Search.types';
3
- import './style/index.less';
1
+ import { default as React } from 'react';
2
+ import { AnyObject, SearchProps } from './Search.types';
4
3
  export declare function Search<T extends AnyObject, U extends AnyObject, S extends AnyObject>({ divider, dropdownMaxHeight, width, searchWidth, style, dropdownWidth, recent, suggestions, parameters, value, textLookupConfig, hideLabel, parameterValue, onParameterValueChange, alwaysExpanded, onClear, onValueChange, filterLookupKey, recentDisplayProps, parametersDisplayProps, suggestionsDisplayProps, placeholder, clearTooltip, disableInput, inputProps, searchTooltipProps, }: SearchProps<T, U, S>): React.JSX.Element;
5
4
  export default Search;