@weavix/tracker-components 0.1.4 → 0.1.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/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.d.ts +6 -2
- package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.js +5 -0
- package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.js.map +1 -1
- package/build/cjs/components/MetaEntitiesSelect/README.md +5 -0
- package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js +8 -2
- package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js.map +1 -1
- package/build/cjs/components/QueueSelect/QueueSelect.d.ts +1 -1
- package/build/cjs/components/QueueSelect/QueueSelect.js +5 -5
- package/build/cjs/components/QueueSelect/QueueSelect.js.map +1 -1
- package/build/cjs/components/QueueSelect/README.md +4 -6
- package/build/cjs/components/Select/MultiSelect.js.map +1 -1
- package/build/cjs/components/Select/hooks/useAutocomplete.d.ts +1 -1
- package/build/cjs/components/Select/hooks/useAutocomplete.js +23 -22
- package/build/cjs/components/Select/hooks/useAutocomplete.js.map +1 -1
- package/build/cjs/hooks/useUpdateEffect.d.ts +2 -0
- package/build/cjs/hooks/useUpdateEffect.js +26 -0
- package/build/cjs/hooks/useUpdateEffect.js.map +1 -0
- package/build/cjs/utils/cancellablePromise.d.ts +7 -0
- package/build/cjs/utils/cancellablePromise.js +27 -0
- package/build/cjs/utils/cancellablePromise.js.map +1 -0
- package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.d.ts +6 -2
- package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.js +4 -0
- package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.js.map +1 -1
- package/build/esm/components/MetaEntitiesSelect/README.md +5 -0
- package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js +7 -2
- package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js.map +1 -1
- package/build/esm/components/QueueSelect/QueueSelect.d.ts +1 -1
- package/build/esm/components/QueueSelect/QueueSelect.js +4 -4
- package/build/esm/components/QueueSelect/QueueSelect.js.map +1 -1
- package/build/esm/components/QueueSelect/README.md +4 -6
- package/build/esm/components/Select/MultiSelect.js.map +1 -1
- package/build/esm/components/Select/hooks/useAutocomplete.d.ts +1 -1
- package/build/esm/components/Select/hooks/useAutocomplete.js +23 -22
- package/build/esm/components/Select/hooks/useAutocomplete.js.map +1 -1
- package/build/esm/hooks/useUpdateEffect.d.ts +2 -0
- package/build/esm/hooks/useUpdateEffect.js +20 -0
- package/build/esm/hooks/useUpdateEffect.js.map +1 -0
- package/build/esm/utils/cancellablePromise.d.ts +7 -0
- package/build/esm/utils/cancellablePromise.js +20 -0
- package/build/esm/utils/cancellablePromise.js.map +1 -0
- package/package.json +4 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","debounce","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","debounce","useAutocomplete","getData","searchDelay","arguments","length","undefined","useBoostedValues","_useState","_useState2","_slicedToArray","filteredItems","setFilteredItems","_useState3","_useState4","isLoading","setIsLoading","_useState5","_useState6","searchText","setSearchText","searchRequestRef","searchDebounced","search","request","then","items","current","error","isCancelled","console","cancelSearch","cancel","resetFilteredItems","handleFilterChange","force","emitFilterChange"],"sources":["useAutocomplete.ts"],"sourcesContent":["import {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport debounce from 'lodash/debounce';\n\nimport type {CancellablePromise} from '../../../utils/cancellablePromise';\n\nexport function useAutocomplete<T>(\n getData: (search: string) => CancellablePromise<T>,\n searchDelay = 300,\n useBoostedValues = false,\n) {\n const [filteredItems, setFilteredItems] = useState<T | undefined>();\n const [isLoading, setIsLoading] = useState(false);\n const [searchText, setSearchText] = useState('');\n const searchRequestRef = useRef<CancellablePromise<void>>();\n\n const searchDebounced = useMemo(\n () =>\n debounce((search: string) => {\n setSearchText(search);\n const request = getData(search)\n .then((items) => {\n if (searchRequestRef.current === request) {\n setFilteredItems(items);\n }\n })\n .catch((error) => {\n if (searchRequestRef.current === request && !error?.isCancelled) {\n console.error(error);\n }\n })\n .finally(() => {\n if (searchRequestRef.current === request) {\n setIsLoading(false);\n }\n });\n searchRequestRef.current = request;\n }, searchDelay),\n [getData, searchDelay],\n );\n\n const cancelSearch = useCallback(() => {\n const request = searchRequestRef.current;\n searchRequestRef.current = undefined;\n request?.cancel();\n searchDebounced.cancel();\n }, [searchDebounced]);\n\n useEffect(() => {\n setIsLoading(false);\n if (useBoostedValues) {\n setIsLoading(true);\n searchDebounced('');\n }\n // Also dispose the old debounce/request when getData or searchDelay changes.\n return cancelSearch;\n }, [useBoostedValues, searchDebounced, cancelSearch]);\n\n const resetFilteredItems = useCallback(() => {\n cancelSearch();\n setFilteredItems(undefined);\n setIsLoading(false);\n }, [cancelSearch]);\n\n const handleFilterChange = useCallback(\n (search: string, force?: boolean) => {\n cancelSearch();\n\n if (!search && !useBoostedValues && !force) {\n setSearchText('');\n resetFilteredItems();\n\n return;\n }\n\n setIsLoading(true);\n searchDebounced(search);\n },\n [cancelSearch, resetFilteredItems, searchDebounced, useBoostedValues],\n );\n\n const emitFilterChange = useCallback(() => {\n handleFilterChange(searchText, true);\n }, [handleFilterChange, searchText]);\n\n return {\n filteredItems,\n resetFilteredItems,\n handleFilterChange,\n isLoading,\n searchText,\n emitFilterChange,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
export function useUpdateEffect(effect, deps) {
|
|
3
|
+
var mounted = useRef(false);
|
|
4
|
+
useEffect(function () {
|
|
5
|
+
return function () {
|
|
6
|
+
// React StrictMode replays mount effects; skip both mount setups.
|
|
7
|
+
mounted.current = false;
|
|
8
|
+
};
|
|
9
|
+
}, []);
|
|
10
|
+
useEffect(function () {
|
|
11
|
+
if (mounted.current) {
|
|
12
|
+
return effect();
|
|
13
|
+
}
|
|
14
|
+
mounted.current = true;
|
|
15
|
+
return undefined;
|
|
16
|
+
// The caller controls when this effect runs, just as with useEffect.
|
|
17
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
18
|
+
}, deps);
|
|
19
|
+
}
|
|
20
|
+
// #sourceMappingURL=useUpdateEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useUpdateEffect","effect","deps","mounted","current","undefined"],"sources":["useUpdateEffect.ts"],"sourcesContent":["import type {DependencyList, EffectCallback} from 'react';\nimport {useEffect, useRef} from 'react';\n\nexport function useUpdateEffect(effect: EffectCallback, deps: DependencyList) {\n const mounted = useRef(false);\n\n useEffect(\n () => () => {\n // React StrictMode replays mount effects; skip both mount setups.\n mounted.current = false;\n },\n [],\n );\n\n useEffect(() => {\n if (mounted.current) {\n return effect();\n }\n mounted.current = true;\n return undefined;\n // The caller controls when this effect runs, just as with useEffect.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n"],"mappings":"AACA,SAAQA,SAAS,EAAEC,MAAM,QAAO,OAAO;AAEvC,OAAO,SAASC,eAAeA,CAACC,MAAsB,EAAEC,IAAoB,EAAE;EAC1E,IAAMC,OAAO,GAAGJ,MAAM,CAAC,KAAK,CAAC;EAE7BD,SAAS,CACL;IAAA,OAAM,YAAM;MACR;MACAK,OAAO,CAACC,OAAO,GAAG,KAAK;IAC3B,CAAC;EAAA,GACD,EACJ,CAAC;EAEDN,SAAS,CAAC,YAAM;IACZ,IAAIK,OAAO,CAACC,OAAO,EAAE;MACjB,OAAOH,MAAM,CAAC,CAAC;IACnB;IACAE,OAAO,CAACC,OAAO,GAAG,IAAI;IACtB,OAAOC,SAAS;IAChB;IACA;EACJ,CAAC,EAAEH,IAAI,CAAC;AACZ","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface CancellablePromise<T> extends Promise<T> {
|
|
2
|
+
cancel: () => void;
|
|
3
|
+
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): CancellablePromise<TResult1 | TResult2>;
|
|
4
|
+
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): CancellablePromise<T | TResult>;
|
|
5
|
+
finally(onfinally?: (() => void) | null): CancellablePromise<T>;
|
|
6
|
+
}
|
|
7
|
+
export declare function cancellablePromise<T>(promise: Promise<T>, cancel?: () => void): CancellablePromise<T>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import "core-js/modules/es.symbol.to-string-tag.js";
|
|
3
|
+
import "core-js/modules/es.json.to-string-tag.js";
|
|
4
|
+
import "core-js/modules/es.math.to-string-tag.js";
|
|
5
|
+
import "core-js/modules/es.object.to-string.js";
|
|
6
|
+
import "core-js/modules/es.promise.js";
|
|
7
|
+
import "core-js/modules/es.promise.finally.js";
|
|
8
|
+
// Structural contract: SDK promises remain assignable without their private fields.
|
|
9
|
+
|
|
10
|
+
export function cancellablePromise(promise) {
|
|
11
|
+
var cancel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
|
|
12
|
+
return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, Symbol.toStringTag, 'CancellablePromise'), "cancel", cancel), "then", function then(onfulfilled, onrejected) {
|
|
13
|
+
return cancellablePromise(promise.then(onfulfilled, onrejected), cancel);
|
|
14
|
+
}), "catch", function _catch(onrejected) {
|
|
15
|
+
return cancellablePromise(promise["catch"](onrejected), cancel);
|
|
16
|
+
}), "finally", function _finally(onfinally) {
|
|
17
|
+
return cancellablePromise(promise["finally"](onfinally), cancel);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
// #sourceMappingURL=cancellablePromise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cancellablePromise","promise","cancel","arguments","length","undefined","_defineProperty","Symbol","toStringTag","then","onfulfilled","onrejected","catch","finally","onfinally"],"sources":["cancellablePromise.ts"],"sourcesContent":["// Structural contract: SDK promises remain assignable without their private fields.\nexport interface CancellablePromise<T> extends Promise<T> {\n cancel: () => void;\n then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null,\n ): CancellablePromise<TResult1 | TResult2>;\n catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null,\n ): CancellablePromise<T | TResult>;\n finally(onfinally?: (() => void) | null): CancellablePromise<T>;\n}\n\nexport function cancellablePromise<T>(\n promise: Promise<T>,\n cancel: () => void = () => {},\n): CancellablePromise<T> {\n return {\n [Symbol.toStringTag]: 'CancellablePromise',\n cancel,\n then: (onfulfilled, onrejected) =>\n cancellablePromise(promise.then(onfulfilled, onrejected), cancel),\n catch: (onrejected) => cancellablePromise(promise.catch(onrejected), cancel),\n finally: (onfinally) => cancellablePromise(promise.finally(onfinally), cancel),\n };\n}\n"],"mappings":";;;;;;;AAAA;;AAaA,OAAO,SAASA,kBAAkBA,CAC9BC,OAAmB,EAEE;EAAA,IADrBC,MAAkB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,YAAM,CAAC,CAAC;EAE7B,OAAAG,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,KACKC,MAAM,CAACC,WAAW,EAAG,oBAAoB,aAC1CN,MAAM,WACA,SAANO,IAAIA,CAAGC,WAAW,EAAEC,UAAU;IAAA,OAC1BX,kBAAkB,CAACC,OAAO,CAACQ,IAAI,CAACC,WAAW,EAAEC,UAAU,CAAC,EAAET,MAAM,CAAC;EAAA,aAC9D,SAAPU,MAAKA,CAAGD,UAAU;IAAA,OAAKX,kBAAkB,CAACC,OAAO,SAAM,CAACU,UAAU,CAAC,EAAET,MAAM,CAAC;EAAA,eACnE,SAATW,QAAOA,CAAGC,SAAS;IAAA,OAAKd,kBAAkB,CAACC,OAAO,WAAQ,CAACa,SAAS,CAAC,EAAEZ,MAAM,CAAC;EAAA;AAEtF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weavix/tracker-components",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Shared UI components for Yandex Tracker plugins",
|
|
5
5
|
"main": "build/cjs/index.js",
|
|
6
6
|
"module": "build/esm/index.js",
|
|
@@ -33,22 +33,16 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"engines": {
|
|
36
|
-
"
|
|
37
|
-
"node": ">= 20.0.0",
|
|
38
|
-
"yarn": "Please use pnpm instead of yarn to install dependencies",
|
|
39
|
-
"npm": "Please use pnpm instead of npm to install dependencies"
|
|
36
|
+
"node": ">= 20.0.0"
|
|
40
37
|
},
|
|
41
38
|
"dependencies": {
|
|
42
39
|
"@babel/runtime": "^7.25.0",
|
|
43
40
|
"@bem-react/classname": "^1.6.0",
|
|
44
41
|
"@gravity-ui/illustrations": "^2.1.0",
|
|
45
|
-
"@
|
|
46
|
-
"@weavix/tracker-api-types": "0.0.3",
|
|
42
|
+
"@weavix/tracker-api-types": "0.0.6",
|
|
47
43
|
"bem-cn-lite": "^4.1.0",
|
|
48
44
|
"core-js": "^3.38.0",
|
|
49
|
-
"lodash": "^4.17.22"
|
|
50
|
-
"lodash-es": "^4.17.22",
|
|
51
|
-
"react-use": "17.4.0"
|
|
45
|
+
"lodash": "^4.17.22"
|
|
52
46
|
},
|
|
53
47
|
"peerDependencies": {
|
|
54
48
|
"@gravity-ui/icons": "^2.14.0",
|
|
@@ -103,7 +97,6 @@
|
|
|
103
97
|
"typescript": "5.8.3"
|
|
104
98
|
},
|
|
105
99
|
"scripts": {
|
|
106
|
-
"preinstall": "npx only-allow pnpm",
|
|
107
100
|
"build": "app-builder build --config ./app-builder.config.ts",
|
|
108
101
|
"postbuild": "node scripts/copy-readmes.mjs",
|
|
109
102
|
"build:compile": "tsc -p tsconfig.publish.json",
|