@synerise/ds-utils 1.3.0 → 1.3.1

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 (31) hide show
  1. package/CHANGELOG.md +197 -861
  2. package/README.md +1 -0
  3. package/dist/doubleClickListener/doubleClickListener.d.ts +2 -2
  4. package/dist/doubleClickListener/doubleClickListener.js +0 -2
  5. package/dist/focusWithArrowKeys/focusWithArrowKeys.d.ts +1 -1
  6. package/dist/getPopupContainer/getPopupContainer.js +3 -1
  7. package/dist/index.d.ts +1 -2
  8. package/dist/index.js +1 -1
  9. package/dist/regex/regex.js +1 -2
  10. package/dist/renderWithHighlight/renderWithHighlight.d.ts +1 -1
  11. package/dist/selectColorByLetter/selectColorByLetter.js +4 -2
  12. package/dist/testing/index.js +0 -1
  13. package/dist/testing/renderWithProvider/renderWithProvider.d.ts +4 -4
  14. package/dist/testing/renderWithProvider/renderWithProvider.js +1 -1
  15. package/dist/types/types.d.ts +1 -1
  16. package/dist/useCombinedRefs/useCombinedRefs.d.ts +1 -1
  17. package/dist/useCombinedRefs/useCombinedRefs.js +0 -1
  18. package/dist/useElementInView/useElementInView.d.ts +1 -1
  19. package/dist/useOnClickOutside/useOnClickOutside.d.ts +9 -4
  20. package/dist/useOnClickOutside/useOnClickOutside.js +2 -2
  21. package/dist/useResize/useResize.js +3 -3
  22. package/dist/useResizeObserver/useResizeObserver.d.ts +1 -1
  23. package/dist/useResizeObserver/useResizeObserver.js +1 -1
  24. package/dist/useResizeToFit/useResizeToFit.d.ts +1 -1
  25. package/dist/useResizeToFit/useResizeToFit.js +1 -1
  26. package/dist/useSearchResults/search.utils.d.ts +2 -2
  27. package/dist/useSearchResults/search.utils.js +3 -1
  28. package/dist/useSearchResults/useSearchResults.d.ts +1 -1
  29. package/dist/useSearchResults/useSearchResults.js +3 -1
  30. package/dist/useTraceUpdate/index.js +0 -3
  31. package/package.json +3 -3
package/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
  Package contains utils used across different DS components:
3
3
 
4
4
  List of utils:
5
+
5
6
  - doubleClickListener,
6
7
  - focusWithArrowKeys,
7
8
  - getInitials,
@@ -1,3 +1,3 @@
1
- import React from 'react';
2
- declare function doubleClickListener<T extends any>(onClick: (e: React.SyntheticEvent<T>) => void, onDblClick: (e: React.SyntheticEvent<T>) => void, delay?: number): React.ReactEventHandler<T>;
1
+ import type React from 'react';
2
+ declare function doubleClickListener<T>(onClick: (e: React.SyntheticEvent<T>) => void, onDblClick: (e: React.SyntheticEvent<T>) => void, delay?: number): React.ReactEventHandler<T>;
3
3
  export default doubleClickListener;
@@ -1,6 +1,4 @@
1
1
  var DEFAULT_DELAY = 250;
2
-
3
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
2
  function doubleClickListener(onClick, onDblClick, delay) {
5
3
  if (delay === void 0) {
6
4
  delay = DEFAULT_DELAY;
@@ -1,3 +1,3 @@
1
- import { KeyboardEvent } from 'react';
1
+ import { type KeyboardEvent } from 'react';
2
2
  declare const focusWithArrowKeys: (keyDownEvent: KeyboardEvent, focusableItemClass: string, fallback: () => void) => void;
3
3
  export default focusWithArrowKeys;
@@ -1,6 +1,8 @@
1
1
  export function getClosest(elem, selector) {
2
2
  for (var node = elem; node && node !== document.body; node = node.parentElement) {
3
- if (node.matches(selector)) return node;
3
+ if (node.matches(selector)) {
4
+ return node;
5
+ }
4
6
  }
5
7
  return null;
6
8
  }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { default as hexToRgba } from './hexToRgba/hexToRgba';
2
2
  export { default as toCamelCase } from './toCamelCase/toCamelCase';
3
- export { useOnClickOutside } from './useOnClickOutside/useOnClickOutside';
3
+ export { useOnClickOutside, type HandledEventsType, } from './useOnClickOutside/useOnClickOutside';
4
4
  export { renderWithHighlight } from './renderWithHighlight/renderWithHighlight';
5
5
  export { default as selectColorByLetter } from './selectColorByLetter/selectColorByLetter';
6
6
  export { default as focusWithArrowKeys } from './focusWithArrowKeys/focusWithArrowKeys';
@@ -24,5 +24,4 @@ export * from './useTraceUpdate';
24
24
  export * from './getPopupContainer';
25
25
  export * from './useLatestRef';
26
26
  export declare const NOOP: () => void;
27
- export type { HandledEventsType } from './useOnClickOutside/useOnClickOutside';
28
27
  export type { DataAttributes, ExactlyOne, LiteralStringUnion, WithHTMLAttributes, DeepPartial, RequiredProps, } from './types/types';
package/dist/index.js CHANGED
@@ -23,4 +23,4 @@ export * from './omitKeys/omitKeys';
23
23
  export * from './useTraceUpdate';
24
24
  export * from './getPopupContainer';
25
25
  export * from './useLatestRef';
26
- export var NOOP = function NOOP() {}; // eslint-disable-line @typescript-eslint/no-empty-function
26
+ export var NOOP = function NOOP() {};
@@ -1,5 +1,4 @@
1
- // eslint-disable-next-line no-useless-escape
2
1
  var escapeRegEx = function escapeRegEx(s) {
3
- return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
2
+ return s.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
4
3
  };
5
4
  export default escapeRegEx;
@@ -1,2 +1,2 @@
1
- import { ReactNode } from 'react';
1
+ import { type ReactNode } from 'react';
2
2
  export declare const renderWithHighlight: (name: string, highlight?: string, className?: string, testId?: string) => ReactNode;
@@ -1,5 +1,5 @@
1
- import { theme } from '@synerise/ds-core';
2
1
  import latinize from 'latinize';
2
+ import { theme } from '@synerise/ds-core';
3
3
  export var palette = ['blue', 'cyan', 'fern', 'green', 'orange', 'yellow', 'red', 'mars', 'pink', 'violet', 'purple'];
4
4
  function getColorByLetter() {
5
5
  var colors = {};
@@ -10,7 +10,9 @@ function getColorByLetter() {
10
10
  }
11
11
  export var colorByLetter = getColorByLetter();
12
12
  export function getColor(colorString, forAvatar) {
13
- if (!forAvatar) return theme.palette[colorString];
13
+ if (!forAvatar) {
14
+ return theme.palette[colorString];
15
+ }
14
16
  return {
15
17
  color: colorString.split('-')[0],
16
18
  hue: colorString.split('-')[1]
@@ -1,3 +1,2 @@
1
- // eslint-disable-next-line import/prefer-default-export
2
1
  export { default as renderWithProvider } from './renderWithProvider/renderWithProvider';
3
2
  export { sleep } from './sleep';
@@ -1,7 +1,7 @@
1
- import { ReactNode } from 'react';
2
- import { RenderOptions, RenderResult } from '@testing-library/react';
3
- import { DSProviderProps } from '@synerise/ds-core';
4
- import { DataFormatNotationType } from '@synerise/ds-data-format';
1
+ import { type ReactNode } from 'react';
2
+ import { type DSProviderProps } from '@synerise/ds-core';
3
+ import { type DataFormatNotationType } from '@synerise/ds-data-format';
4
+ import { type RenderOptions, type RenderResult } from '@testing-library/react';
5
5
  type Options = Omit<RenderOptions, 'queries'>;
6
6
  declare const renderWithProvider: (node: ReactNode, options?: Options, props?: Partial<Omit<DSProviderProps, 'onErrorIntl' | 'dataFormatConfig'>> & {
7
7
  notation?: DataFormatNotationType;
@@ -2,9 +2,9 @@ var _excluded = ["notation"];
2
2
  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); }
3
3
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
4
4
  import React from 'react';
5
- import { render } from '@testing-library/react';
6
5
  import { DSProvider } from '@synerise/ds-core';
7
6
  import { getDataFormatConfigFromNotation } from '@synerise/ds-data-format';
7
+ import { render } from '@testing-library/react';
8
8
  import { NOOP } from '../../index';
9
9
  var _renderWithProvider = function renderWithProvider(node, options, props) {
10
10
  var _ref = props || {},
@@ -1,4 +1,4 @@
1
- import { HTMLAttributes } from 'react';
1
+ import { type HTMLAttributes } from 'react';
2
2
  /**
3
3
  * Allows creating a literal string union type with auto-completion in IDEs
4
4
  */
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- declare const useCombinedRefs: <T extends unknown>(...refs: React.Ref<T | null>[]) => React.MutableRefObject<T | null>;
2
+ declare const useCombinedRefs: <T>(...refs: React.Ref<T | null>[]) => React.MutableRefObject<T | null>;
3
3
  export default useCombinedRefs;
@@ -12,7 +12,6 @@ var useCombinedRefs = function useCombinedRefs() {
12
12
  if (typeof ref === 'function') {
13
13
  ref(targetRef.current);
14
14
  } else {
15
- // eslint-disable-next-line no-param-reassign
16
15
  ref.current = targetRef.current;
17
16
  }
18
17
  });
@@ -1,4 +1,4 @@
1
- import { MutableRefObject } from 'react';
1
+ import { type MutableRefObject } from 'react';
2
2
  type IntersectionObserverOptions = {
3
3
  rootMargin?: string;
4
4
  threshold?: number | number[];
@@ -1,9 +1,14 @@
1
- import { RefObject } from 'react';
1
+ import { type RefObject } from 'react';
2
2
  declare const MOUSEDOWN = "mousedown";
3
3
  declare const TOUCHSTART = "touchstart";
4
- declare const CLICK = "click";
5
- declare const CONTEXTMENU = "contextmenu";
6
- type HandledEvents = [typeof MOUSEDOWN, typeof TOUCHSTART, typeof CLICK, typeof CONTEXTMENU];
4
+ declare const _CLICK = "click";
5
+ declare const _CONTEXTMENU = "contextmenu";
6
+ type HandledEvents = [
7
+ typeof MOUSEDOWN,
8
+ typeof TOUCHSTART,
9
+ typeof _CLICK,
10
+ typeof _CONTEXTMENU
11
+ ];
7
12
  export type HandledEventsType = HandledEvents[number];
8
13
  type PossibleEvent = {
9
14
  [Type in HandledEventsType]: HTMLElementEventMap[Type];
@@ -1,8 +1,8 @@
1
1
  import { useEffect, useRef } from 'react';
2
2
  var MOUSEDOWN = 'mousedown';
3
3
  var TOUCHSTART = 'touchstart';
4
- var CLICK = 'click';
5
- var CONTEXTMENU = 'contextmenu';
4
+ var _CLICK = 'click';
5
+ var _CONTEXTMENU = 'contextmenu';
6
6
  var defaultEvents = [MOUSEDOWN, TOUCHSTART];
7
7
 
8
8
  /**
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
2
  var useResize = function useResize(componentRef, visible) {
4
3
  if (visible === void 0) {
5
4
  visible = true;
@@ -12,9 +11,10 @@ var useResize = function useResize(componentRef, visible) {
12
11
  setDimensions = _React$useState[1];
13
12
  React.useEffect(function () {
14
13
  var getDimensions = function getDimensions() {
14
+ var _componentRef$current, _componentRef$current2;
15
15
  return {
16
- width: (componentRef == null ? void 0 : componentRef.current.offsetWidth) || 0,
17
- height: (componentRef == null ? void 0 : componentRef.current.offsetHeight) || 0
16
+ width: (componentRef == null || (_componentRef$current = componentRef.current) == null ? void 0 : _componentRef$current.offsetWidth) || 0,
17
+ height: (componentRef == null || (_componentRef$current2 = componentRef.current) == null ? void 0 : _componentRef$current2.offsetHeight) || 0
18
18
  };
19
19
  };
20
20
  var handleResize = function handleResize() {
@@ -1,3 +1,3 @@
1
- import { RefObject } from 'react';
1
+ import { type RefObject } from 'react';
2
2
  declare const useResizeObserver: (elementRef: RefObject<HTMLElement | undefined>, resizeHandler?: ((dimensions: DOMRect) => void) | undefined) => DOMRect;
3
3
  export default useResizeObserver;
@@ -1,4 +1,4 @@
1
- import { useEffect, useState, useRef, useCallback } from 'react';
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
2
  var useResizeObserver = function useResizeObserver(elementRef, resizeHandler) {
3
3
  var _useState = useState(new DOMRect()),
4
4
  dimensions = _useState[0],
@@ -3,7 +3,7 @@ type useResizeToFitProps = {
3
3
  onResize: (width: number) => void;
4
4
  autoObserve?: boolean;
5
5
  };
6
- declare const useResizeToFit: <T extends HTMLElement = HTMLDivElement>({ onResize, autoObserve }: useResizeToFitProps) => {
6
+ declare const useResizeToFit: <T extends HTMLElement = HTMLDivElement>({ onResize, autoObserve, }: useResizeToFitProps) => {
7
7
  elementRef: import("react").RefObject<T>;
8
8
  disconnect: () => void;
9
9
  observe: () => void;
@@ -1,4 +1,4 @@
1
- import { useEffect, useRef, useCallback } from 'react';
1
+ import { useCallback, useEffect, useRef } from 'react';
2
2
  var useResizeToFit = function useResizeToFit(_ref) {
3
3
  var onResize = _ref.onResize,
4
4
  autoObserve = _ref.autoObserve;
@@ -1,5 +1,5 @@
1
- import { ReactText } from 'react';
2
- import { BaseGroupType } from './useSearchResults';
1
+ import { type ReactText } from 'react';
2
+ import { type BaseGroupType } from './useSearchResults';
3
3
  export declare const isItemInGroup: <GroupType extends BaseGroupType<GroupType>>(groupId?: ReactText, currentGroup?: GroupType | undefined) => boolean;
4
4
  export declare const getActiveTabGroup: <GroupType extends BaseGroupType<GroupType>>(tabIndex: number, groups?: GroupType[] | undefined) => GroupType | undefined;
5
5
  export declare const getGroupName: <GroupType extends BaseGroupType<GroupType>>(groupId: ReactText, groups: BaseGroupType<GroupType>[]) => string | undefined;
@@ -1,5 +1,7 @@
1
1
  export var isItemInGroup = function isItemInGroup(groupId, currentGroup) {
2
- if (!currentGroup || !groupId) return true;
2
+ if (!currentGroup || !groupId) {
3
+ return true;
4
+ }
3
5
  return currentGroup.subGroups ? (currentGroup == null ? void 0 : currentGroup.subGroups.findIndex(function (group) {
4
6
  return group.id === groupId;
5
7
  })) > -1 : groupId === currentGroup.id;
@@ -1,4 +1,4 @@
1
- import { ReactText } from 'react';
1
+ import { type ReactText } from 'react';
2
2
  export type BaseItemType = {
3
3
  id: ReactText | null;
4
4
  groupId?: ReactText;
@@ -14,7 +14,9 @@ export var useSearchResults = function useSearchResults(items, groups, activeTab
14
14
  });
15
15
  }, [groups]);
16
16
  var searchResults = useMemo(function () {
17
- if (!searchQuery) return [];
17
+ if (!searchQuery) {
18
+ return [];
19
+ }
18
20
  var result = [];
19
21
  var itemsNumber = items.length;
20
22
  for (var i = 0; i < itemsNumber; i += 1) {
@@ -1,6 +1,4 @@
1
1
  import { useEffect, useRef } from 'react';
2
-
3
- // eslint-disable-next-line import/prefer-default-export
4
2
  export var useTraceUpdate = function useTraceUpdate(props) {
5
3
  var prev = useRef(props);
6
4
  useEffect(function () {
@@ -8,7 +6,6 @@ export var useTraceUpdate = function useTraceUpdate(props) {
8
6
  var k = _ref[0],
9
7
  v = _ref[1];
10
8
  if (prev.current[k] !== v) {
11
- // eslint-disable-next-line no-param-reassign
12
9
  ps[k] = [prev.current[k], v];
13
10
  }
14
11
  return ps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-utils",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "Utils UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "synerise/synerise-design",
@@ -33,7 +33,7 @@
33
33
  ],
34
34
  "types": "dist/index.d.ts",
35
35
  "dependencies": {
36
- "@synerise/ds-data-format": "^1.0.0",
36
+ "@synerise/ds-data-format": "^1.0.1",
37
37
  "latinize": "^0.5.0"
38
38
  },
39
39
  "peerDependencies": {
@@ -41,5 +41,5 @@
41
41
  "react": ">=16.9.0 <= 18.3.1",
42
42
  "styled-components": "^5.3.3"
43
43
  },
44
- "gitHead": "f2713cd35cfe22f63a159f05144585834897a132"
44
+ "gitHead": "4512641033ba3581a3df208143c547fcfed45895"
45
45
  }