@weavix/tracker-components 0.1.5 → 0.1.7
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/README.md +4 -0
- 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/components/UserAvatar/README.md +28 -0
- package/build/cjs/components/UserAvatar/UserAvatar.d.ts +8 -0
- package/build/cjs/components/UserAvatar/UserAvatar.js +82 -0
- package/build/cjs/components/UserAvatar/UserAvatar.js.map +1 -0
- package/build/cjs/components/UserAvatar/UserAvatarProvider.d.ts +9 -0
- package/build/cjs/components/UserAvatar/UserAvatarProvider.js +111 -0
- package/build/cjs/components/UserAvatar/UserAvatarProvider.js.map +1 -0
- package/build/cjs/components/UserAvatar/index.d.ts +5 -0
- package/build/cjs/components/UserAvatar/index.js +20 -0
- package/build/cjs/components/UserAvatar/index.js.map +1 -0
- package/build/cjs/components/UserAvatar/types.d.ts +5 -0
- package/build/cjs/components/UserAvatar/types.js +6 -0
- package/build/cjs/components/UserAvatar/types.js.map +1 -0
- 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/index.d.ts +1 -0
- package/build/cjs/index.js +12 -0
- package/build/cjs/index.js.map +1 -1
- 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/components/UserAvatar/README.md +28 -0
- package/build/esm/components/UserAvatar/UserAvatar.d.ts +8 -0
- package/build/esm/components/UserAvatar/UserAvatar.js +74 -0
- package/build/esm/components/UserAvatar/UserAvatar.js.map +1 -0
- package/build/esm/components/UserAvatar/UserAvatarProvider.d.ts +9 -0
- package/build/esm/components/UserAvatar/UserAvatarProvider.js +103 -0
- package/build/esm/components/UserAvatar/UserAvatarProvider.js.map +1 -0
- package/build/esm/components/UserAvatar/index.d.ts +5 -0
- package/build/esm/components/UserAvatar/index.js +3 -0
- package/build/esm/components/UserAvatar/index.js.map +1 -0
- package/build/esm/components/UserAvatar/types.d.ts +5 -0
- package/build/esm/components/UserAvatar/types.js +2 -0
- package/build/esm/components/UserAvatar/types.js.map +1 -0
- 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/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- 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 +3 -6
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
|
2
|
+
import "core-js/modules/es.error.to-string.js";
|
|
3
|
+
import "core-js/modules/es.array.every.js";
|
|
4
|
+
import "core-js/modules/es.array.for-each.js";
|
|
5
|
+
import "core-js/modules/es.array.from.js";
|
|
6
|
+
import "core-js/modules/es.array.is-array.js";
|
|
7
|
+
import "core-js/modules/es.array.iterator.js";
|
|
8
|
+
import "core-js/modules/es.array.map.js";
|
|
9
|
+
import "core-js/modules/es.array.push.js";
|
|
10
|
+
import "core-js/modules/es.array.slice.js";
|
|
11
|
+
import "core-js/modules/es.date.to-json.js";
|
|
12
|
+
import "core-js/modules/es.iterator.constructor.js";
|
|
13
|
+
import "core-js/modules/es.iterator.for-each.js";
|
|
14
|
+
import "core-js/modules/es.iterator.map.js";
|
|
15
|
+
import "core-js/modules/es.json.stringify.js";
|
|
16
|
+
import "core-js/modules/es.map.js";
|
|
17
|
+
import "core-js/modules/es.object.to-string.js";
|
|
18
|
+
import "core-js/modules/es.promise.js";
|
|
19
|
+
import "core-js/modules/es.regexp.exec.js";
|
|
20
|
+
import "core-js/modules/es.regexp.test.js";
|
|
21
|
+
import "core-js/modules/es.string.iterator.js";
|
|
22
|
+
import "core-js/modules/es.string.trim.js";
|
|
23
|
+
import "core-js/modules/esnext.map.get-or-insert.js";
|
|
24
|
+
import "core-js/modules/esnext.map.get-or-insert-computed.js";
|
|
25
|
+
import "core-js/modules/web.dom-collections.for-each.js";
|
|
26
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
|
27
|
+
import "core-js/modules/web.queue-microtask.js";
|
|
28
|
+
import React, { createContext, useMemo } from 'react';
|
|
29
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
30
|
+
export var UserAvatarContext = /*#__PURE__*/createContext(undefined);
|
|
31
|
+
function isValidUser(_ref) {
|
|
32
|
+
var uid = _ref.uid,
|
|
33
|
+
login = _ref.login;
|
|
34
|
+
return Boolean(uid || login) && [uid, login].every(function (value) {
|
|
35
|
+
return value === undefined || typeof value === 'string' && value.length <= 1024 && Boolean(value.trim());
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function createLoader(getUserAvatars) {
|
|
39
|
+
var pending = new Map();
|
|
40
|
+
var flush = function flush() {
|
|
41
|
+
var requests = Array.from(pending.values());
|
|
42
|
+
pending = new Map();
|
|
43
|
+
var _loop = function _loop() {
|
|
44
|
+
var batch = requests.slice(offset, offset + 100);
|
|
45
|
+
Promise.resolve().then(function () {
|
|
46
|
+
return getUserAvatars(batch.map(function (_ref2) {
|
|
47
|
+
var user = _ref2.user;
|
|
48
|
+
return user;
|
|
49
|
+
}));
|
|
50
|
+
}).then(function (urls) {
|
|
51
|
+
if (!Array.isArray(urls) || urls.length !== batch.length) {
|
|
52
|
+
throw new Error('Avatar result must match the requested users');
|
|
53
|
+
}
|
|
54
|
+
batch.forEach(function (_ref3, index) {
|
|
55
|
+
var resolve = _ref3.resolve;
|
|
56
|
+
var url = urls[index];
|
|
57
|
+
var avatar = typeof url === 'string' && /^https?:\/\//i.test(url) ? url : null;
|
|
58
|
+
resolve.forEach(function (callback) {
|
|
59
|
+
return callback(avatar);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
})["catch"](function () {
|
|
63
|
+
return batch.forEach(function (_ref4) {
|
|
64
|
+
var resolve = _ref4.resolve;
|
|
65
|
+
return resolve.forEach(function (callback) {
|
|
66
|
+
return callback(null);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
for (var offset = 0; offset < requests.length; offset += 100) {
|
|
72
|
+
_loop();
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
return function (user) {
|
|
76
|
+
if (!isValidUser(user)) return Promise.resolve(null);
|
|
77
|
+
return new Promise(function (resolve) {
|
|
78
|
+
var key = JSON.stringify([user.uid, user.login]);
|
|
79
|
+
var request = pending.get(key);
|
|
80
|
+
if (request) {
|
|
81
|
+
request.resolve.push(resolve);
|
|
82
|
+
} else {
|
|
83
|
+
pending.set(key, {
|
|
84
|
+
user: user,
|
|
85
|
+
resolve: [resolve]
|
|
86
|
+
});
|
|
87
|
+
if (pending.size === 1) queueMicrotask(flush);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
export function UserAvatarProvider(_ref5) {
|
|
93
|
+
var getUserAvatars = _ref5.getUserAvatars,
|
|
94
|
+
children = _ref5.children;
|
|
95
|
+
var load = useMemo(function () {
|
|
96
|
+
return createLoader(getUserAvatars);
|
|
97
|
+
}, [getUserAvatars]);
|
|
98
|
+
return /*#__PURE__*/_jsx(UserAvatarContext.Provider, {
|
|
99
|
+
value: load,
|
|
100
|
+
children: children
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
// #sourceMappingURL=UserAvatarProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createContext","useMemo","jsx","_jsx","UserAvatarContext","undefined","isValidUser","_ref","uid","login","Boolean","every","value","length","trim","createLoader","getUserAvatars","pending","Map","flush","requests","Array","from","values","_loop","batch","slice","offset","Promise","resolve","then","map","_ref2","user","urls","isArray","Error","forEach","_ref3","index","url","avatar","test","callback","_ref4","key","JSON","stringify","request","get","push","set","size","queueMicrotask","UserAvatarProvider","_ref5","children","load","Provider"],"sources":["UserAvatarProvider.tsx"],"sourcesContent":["import React, {createContext, useMemo} from 'react';\n\nimport type {GetUserAvatars, UserAvatarUser} from './types';\n\ntype LoadAvatar = (user: UserAvatarUser) => Promise<string | null>;\ntype PendingAvatar = {user: UserAvatarUser; resolve: Array<(url: string | null) => void>};\n\nexport const UserAvatarContext = createContext<LoadAvatar | undefined>(undefined);\n\nfunction isValidUser({uid, login}: UserAvatarUser): boolean {\n return (\n Boolean(uid || login) &&\n [uid, login].every(\n (value) =>\n value === undefined ||\n (typeof value === 'string' && value.length <= 1024 && Boolean(value.trim())),\n )\n );\n}\n\nfunction createLoader(getUserAvatars: GetUserAvatars): LoadAvatar {\n let pending = new Map<string, PendingAvatar>();\n\n const flush = () => {\n const requests = Array.from(pending.values());\n pending = new Map();\n for (let offset = 0; offset < requests.length; offset += 100) {\n const batch = requests.slice(offset, offset + 100);\n Promise.resolve()\n .then(() => getUserAvatars(batch.map(({user}) => user)))\n .then((urls) => {\n if (!Array.isArray(urls) || urls.length !== batch.length) {\n throw new Error('Avatar result must match the requested users');\n }\n batch.forEach(({resolve}, index) => {\n const url = urls[index];\n const avatar =\n typeof url === 'string' && /^https?:\\/\\//i.test(url) ? url : null;\n resolve.forEach((callback) => callback(avatar));\n });\n })\n .catch(() =>\n batch.forEach(({resolve}) => resolve.forEach((callback) => callback(null))),\n );\n }\n };\n\n return (user) => {\n if (!isValidUser(user)) return Promise.resolve(null);\n return new Promise((resolve) => {\n const key = JSON.stringify([user.uid, user.login]);\n const request = pending.get(key);\n if (request) {\n request.resolve.push(resolve);\n } else {\n pending.set(key, {user, resolve: [resolve]});\n if (pending.size === 1) queueMicrotask(flush);\n }\n });\n };\n}\n\nexport type UserAvatarProviderProps = React.PropsWithChildren<{\n getUserAvatars: GetUserAvatars;\n}>;\n\nexport function UserAvatarProvider({getUserAvatars, children}: UserAvatarProviderProps) {\n const load = useMemo(() => createLoader(getUserAvatars), [getUserAvatars]);\n return <UserAvatarContext.Provider value={load}>{children}</UserAvatarContext.Provider>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { UserAvatar } from './UserAvatar';
|
|
2
|
+
export type { UserAvatarProps } from './UserAvatar';
|
|
3
|
+
export { UserAvatarProvider } from './UserAvatarProvider';
|
|
4
|
+
export type { UserAvatarProviderProps } from './UserAvatarProvider';
|
|
5
|
+
export type { GetUserAvatars, UserAvatarUser } from './types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UserAvatar","UserAvatarProvider"],"sources":["index.ts"],"sourcesContent":["export {UserAvatar} from './UserAvatar';\nexport type {UserAvatarProps} from './UserAvatar';\nexport {UserAvatarProvider} from './UserAvatarProvider';\nexport type {UserAvatarProviderProps} from './UserAvatarProvider';\nexport type {GetUserAvatars, UserAvatarUser} from './types';\n"],"mappings":"AAAA,SAAQA,UAAU;AAElB,SAAQC,kBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type UserAvatarUser = {uid?: string; login?: string};\n\nexport type GetUserAvatars = (users: UserAvatarUser[]) => Promise<Array<string | null>>;\n"],"mappings":"","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":[]}
|
package/build/esm/index.d.ts
CHANGED
package/build/esm/index.js
CHANGED
|
@@ -4,4 +4,5 @@ export * from "./components/PluginFieldsSelect";
|
|
|
4
4
|
export * from "./components/QueueSelect";
|
|
5
5
|
export * from "./components/TrackerDisclosure";
|
|
6
6
|
export { block, cn, NAMESPACE } from "./components/cn";
|
|
7
|
+
export * from "./components/UserAvatar";
|
|
7
8
|
// #sourceMappingURL=index.js.map
|
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["block","cn","NAMESPACE"],"sources":["index.ts"],"sourcesContent":["export * from './components/Icon';\nexport * from './components/MetaEntitiesSelect';\nexport * from './components/PluginFieldsSelect';\nexport * from './components/QueueSelect';\nexport * from './components/TrackerDisclosure';\nexport {block, cn, NAMESPACE} from './components/cn';\nexport type {CnBlock} from './components/cn';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,SAAQA,KAAK,EAAEC,EAAE,EAAEC,SAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["block","cn","NAMESPACE"],"sources":["index.ts"],"sourcesContent":["export * from './components/Icon';\nexport * from './components/MetaEntitiesSelect';\nexport * from './components/PluginFieldsSelect';\nexport * from './components/QueueSelect';\nexport * from './components/TrackerDisclosure';\nexport {block, cn, NAMESPACE} from './components/cn';\nexport type {CnBlock} from './components/cn';\nexport * from './components/UserAvatar';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,SAAQA,KAAK,EAAEC,EAAE,EAAEC,SAAS;AAE5B","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.7",
|
|
4
4
|
"description": "Shared UI components for Yandex Tracker plugins",
|
|
5
5
|
"main": "build/cjs/index.js",
|
|
6
6
|
"module": "build/esm/index.js",
|
|
@@ -39,13 +39,10 @@
|
|
|
39
39
|
"@babel/runtime": "^7.25.0",
|
|
40
40
|
"@bem-react/classname": "^1.6.0",
|
|
41
41
|
"@gravity-ui/illustrations": "^2.1.0",
|
|
42
|
-
"@
|
|
43
|
-
"@weavix/tracker-api-types": "0.0.3",
|
|
42
|
+
"@weavix/tracker-api-types": "0.0.6",
|
|
44
43
|
"bem-cn-lite": "^4.1.0",
|
|
45
44
|
"core-js": "^3.38.0",
|
|
46
|
-
"lodash": "^4.17.22"
|
|
47
|
-
"lodash-es": "^4.17.22",
|
|
48
|
-
"react-use": "17.4.0"
|
|
45
|
+
"lodash": "^4.17.22"
|
|
49
46
|
},
|
|
50
47
|
"peerDependencies": {
|
|
51
48
|
"@gravity-ui/icons": "^2.14.0",
|