@weavix/tracker-plugin-sdk-react 0.0.25 → 0.0.26
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/API_REFERENCE.md +2 -0
- package/dist/components/TrackerPluginProvider.d.ts +4 -0
- package/dist/components/TrackerPluginProvider.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +14 -14
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
package/API_REFERENCE.md
CHANGED
|
@@ -411,6 +411,7 @@ interface BasicTrackerPluginContextValue<TSlot extends keyof SlotContextMap = ke
|
|
|
411
411
|
service: string;
|
|
412
412
|
userId?: string;
|
|
413
413
|
isYateam?: boolean;
|
|
414
|
+
isOrbita?: boolean;
|
|
414
415
|
origin: string;
|
|
415
416
|
/** Имя слота, в котором открыт плагин */
|
|
416
417
|
slot: TSlot;
|
|
@@ -457,6 +458,7 @@ interface FullTrackerPluginContextValue<TSlot extends keyof SlotContextMap = key
|
|
|
457
458
|
service: string;
|
|
458
459
|
userId?: string;
|
|
459
460
|
isYateam?: boolean;
|
|
461
|
+
isOrbita?: boolean;
|
|
460
462
|
origin: string;
|
|
461
463
|
/** Имя слота, в котором открыт плагин */
|
|
462
464
|
slot: TSlot;
|
|
@@ -21,6 +21,8 @@ export interface BasicTrackerPluginContextValue<TSlot extends TrackerSlotKey = T
|
|
|
21
21
|
userId?: string;
|
|
22
22
|
/** Это ятим? */
|
|
23
23
|
isYateam?: boolean;
|
|
24
|
+
/** Включена ли Орбита */
|
|
25
|
+
isOrbita?: boolean;
|
|
24
26
|
/** Origin родительского окна (хоста). */
|
|
25
27
|
origin: string;
|
|
26
28
|
/** Слот, в котором открыт плагин. */
|
|
@@ -51,6 +53,8 @@ export interface FullTrackerPluginContextValue<TSlot extends TrackerSlotKey = Tr
|
|
|
51
53
|
userId?: string;
|
|
52
54
|
/** Это ятим? */
|
|
53
55
|
isYateam?: boolean;
|
|
56
|
+
/** Включена ли Орбита */
|
|
57
|
+
isOrbita?: boolean;
|
|
54
58
|
/** Origin родительского окна (хоста). */
|
|
55
59
|
origin: string;
|
|
56
60
|
/** Слот, в котором открыт плагин. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackerPluginProvider.d.ts","sourceRoot":"","sources":["../../src/components/TrackerPluginProvider.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TrackerPluginProvider.d.ts","sourceRoot":"","sources":["../../src/components/TrackerPluginProvider.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export type { PluginErrorProps } from '@weavix/sdk-react';
|
|
|
3
3
|
export { PluginLoader } from '@weavix/sdk-react';
|
|
4
4
|
export { TrackerPluginProvider, useTrackerPluginContext } from './components/TrackerPluginProvider';
|
|
5
5
|
export type { BasicTrackerPluginContextValue, FullTrackerPluginContextValue, RegisterHandlerFunction, TrackerPluginProviderProps, } from './components/TrackerPluginProvider';
|
|
6
|
-
export { useConfirm, useLanguage, useLocalizedString, useTheme, useToaster, } from '@weavix/sdk-react';
|
|
6
|
+
export { useConfirm, useLanguage, useLocalizedString, useTheme, useToaster, useIsOrbita, } from '@weavix/sdk-react';
|
|
7
7
|
export { getField, getLocalizedString, hostApi, METHOD_NOT_SUPPORTED, MISSING_REQUIRED_SCOPE, PLUGIN_ID_IS_NOT_CORRECT, PLUGIN_ID_OR_SLOT_NOT_PROVIDED, PluginActionError, storageApi, trackerApi, uiApi, UNKNOWN_ERROR, VALIDATION_ERROR, } from '@weavix/tracker-plugin-sdk';
|
|
8
8
|
export type { Attachment, BasicContext, ConfirmOptions, ConfirmResult, ContextLevel, ContentSizeUpdateRequest, ExternalApiAuthCheckAndRequestPayload, ExternalApiAuthCheckAndRequestResult, ExternalApiAuthGetStatusDomain, ExternalApiAuthGetStatusPayload, ExternalApiAuthGetStatusResult, ExternalApiAuthRequestPayload, ExternalApiAuthRequestResult, ExternalApiAuthRevokePayload, ExternalApiAuthRevokeResult, ExternalApiCallPayload, ExternalApiCallResult, HostEventCallback, HostEventContract, HostEventMethod, Issue, LocalizedString, MetaEntityV2, SlotContextMap, StorageContextType, StorageGetPayload, StoragePatchPayload, StorageRecord, Theme, ToastAction, ToastOptions, TrackerApi, TrackerApiCallOptions, TrackerApiInitOptions, TrackerApiV3, TriggerActionData, Unsubscribe, } from '@weavix/tracker-plugin-sdk';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACpG,YAAY,EACR,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,0BAA0B,GAC7B,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACH,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACpG,YAAY,EACR,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,0BAA0B,GAC7B,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACH,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,WAAW,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,QAAQ,EACR,kBAAkB,EAClB,OAAO,EACP,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,KAAK,EACL,aAAa,EACb,gBAAgB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACR,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,qCAAqC,EACrC,oCAAoC,EACpC,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,6BAA6B,EAC7B,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,KAAK,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,WAAW,GACd,MAAM,4BAA4B,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { PluginError as e, PluginLoader as t, PluginProvider as n, useConfirm as r,
|
|
2
|
-
import { createContext as
|
|
3
|
-
import { jsx as
|
|
4
|
-
import { METHOD_NOT_SUPPORTED as
|
|
1
|
+
import { PluginError as e, PluginLoader as t, PluginProvider as n, useConfirm as r, useIsOrbita as i, useLanguage as a, useLocalizedString as o, usePluginContext as s, useTheme as c, useToaster as l } from "@weavix/sdk-react";
|
|
2
|
+
import { createContext as u, useContext as d, useMemo as f } from "react";
|
|
3
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
4
|
+
import { METHOD_NOT_SUPPORTED as m, MISSING_REQUIRED_SCOPE as h, PLUGIN_ID_IS_NOT_CORRECT as g, PLUGIN_ID_OR_SLOT_NOT_PROVIDED as _, PluginActionError as v, UNKNOWN_ERROR as y, VALIDATION_ERROR as b, getField as x, getLocalizedString as S, hostApi as C, storageApi as w, trackerApi as T, uiApi as E } from "@weavix/tracker-plugin-sdk";
|
|
5
5
|
//#region src/components/TrackerPluginProvider.tsx
|
|
6
|
-
var
|
|
7
|
-
function
|
|
8
|
-
let { registerHandler: t } =
|
|
9
|
-
return /* @__PURE__ */
|
|
6
|
+
var D = u(null);
|
|
7
|
+
function O({ children: e }) {
|
|
8
|
+
let { registerHandler: t } = s("basic"), n = f(() => ((e, n) => t(e, n)), [t]), r = f(() => ({ registerHandler: n }), [n]);
|
|
9
|
+
return /* @__PURE__ */ p(D.Provider, {
|
|
10
10
|
value: r,
|
|
11
11
|
children: e
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
function
|
|
15
|
-
return /* @__PURE__ */
|
|
14
|
+
function k(e) {
|
|
15
|
+
return /* @__PURE__ */ p(n, {
|
|
16
16
|
...e,
|
|
17
|
-
children: /* @__PURE__ */
|
|
17
|
+
children: /* @__PURE__ */ p(O, { children: e.children })
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
function
|
|
21
|
-
let t =
|
|
20
|
+
function A(e = "basic") {
|
|
21
|
+
let t = s(e), n = d(D);
|
|
22
22
|
if (!n) throw Error("useTrackerPluginContext must be used within TrackerPluginProvider (Tracker service layer). Use PluginProvider only with usePluginContext, or wrap the app with TrackerPluginProvider.");
|
|
23
23
|
let r = t.slot;
|
|
24
24
|
return e === "full" ? {
|
|
@@ -33,6 +33,6 @@ function k(e = "basic") {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
//#endregion
|
|
36
|
-
export {
|
|
36
|
+
export { m as METHOD_NOT_SUPPORTED, h as MISSING_REQUIRED_SCOPE, g as PLUGIN_ID_IS_NOT_CORRECT, _ as PLUGIN_ID_OR_SLOT_NOT_PROVIDED, v as PluginActionError, e as PluginError, t as PluginLoader, k as TrackerPluginProvider, y as UNKNOWN_ERROR, b as VALIDATION_ERROR, x as getField, S as getLocalizedString, C as hostApi, w as storageApi, T as trackerApi, E as uiApi, r as useConfirm, i as useIsOrbita, a as useLanguage, o as useLocalizedString, c as useTheme, l as useToaster, A as useTrackerPluginContext };
|
|
37
37
|
|
|
38
38
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/components/TrackerPluginProvider.tsx"],"sourcesContent":["import {\n type BasicContext,\n type BasicPluginContextValue,\n type ContextLevel,\n type FullPluginContextValue,\n PluginProvider,\n type PluginProviderProps,\n type Theme,\n usePluginContext,\n} from '@weavix/sdk-react';\nimport type {\n GetDataResultMap,\n HandlerFunction,\n Handlers,\n SlotContextMap,\n} from '@weavix/tracker-plugin-sdk';\nimport { type ReactNode, createContext, useContext, useMemo } from 'react';\n\n/** Строковые ключи слота (для индексных типов без `symbol` в keyof). */\ntype TrackerSlotKey = Extract<keyof SlotContextMap, string>;\n\n/**\n * Сигнатура registerHandler: для 'getData' тип handler зависит от слота (GetDataResultMap[TSlot]).\n */\nexport type RegisterHandlerFunction<TSlot extends TrackerSlotKey> = <TKey extends keyof Handlers>(\n methodName: TKey,\n handler: TKey extends 'getData'\n ? TSlot extends keyof GetDataResultMap\n ? () => GetDataResultMap[TSlot]\n : never\n : HandlerFunction<TKey>,\n) => void;\n\n/**\n * Контекст плагина при contextLevel = 'basic'.\n * slotContext содержит только entityId.\n */\nexport interface BasicTrackerPluginContextValue<TSlot extends TrackerSlotKey = TrackerSlotKey> {\n /** Текущая тема хоста. Обновляется реактивно при получении theme.changed. */\n theme: Theme | undefined;\n /** Текущий язык хоста. Обновляется реактивно при получении language.changed. */\n language: string | undefined;\n /** Сервис, в котором открылся плагин. */\n service: string;\n /** Id пользователя. */\n userId?: string;\n /** Это ятим? */\n isYateam?: boolean;\n /** Origin родительского окна (хоста). */\n origin: string;\n /** Слот, в котором открыт плагин. */\n slot: TSlot;\n /** URL внутри плагина. */\n innerUrl: string;\n /** Query-параметры плагина */\n queryParams: Record<string, string>;\n /** Контекст страницы — только entityId при basic уровне. */\n slotContext: BasicContext | undefined;\n /** Регистрация обработчика для ответов на запросы хоста. */\n registerHandler: RegisterHandlerFunction<TSlot>;\n /** Уровень контекста, объявленный в манифесте. */\n contextLevel: 'basic';\n}\n\n/**\n * Контекст плагина при contextLevel = 'full'.\n * slotContext содержит полный объект слота (Issue, TriggerContext и т.д.).\n */\nexport interface FullTrackerPluginContextValue<TSlot extends TrackerSlotKey = TrackerSlotKey> {\n /** Текущая тема хоста. Обновляется реактивно при получении theme.changed. */\n theme: Theme | undefined;\n /** Текущий язык хоста. Обновляется реактивно при получении language.changed. */\n language: string | undefined;\n /** Сервис, в котором открылся плагин. */\n service: string;\n /** Id пользователя. */\n userId?: string;\n /** Это ятим? */\n isYateam?: boolean;\n /** Origin родительского окна (хоста). */\n origin: string;\n /** Слот, в котором открыт плагин. */\n slot: TSlot;\n /** URL внутри плагина. */\n innerUrl: string;\n /** Query-параметры плагина */\n queryParams: Record<string, string>;\n /** Контекст страницы — полный объект слота при full уровне. */\n slotContext: SlotContextMap[TSlot] | undefined;\n /** Регистрация обработчика для ответов на запросы хоста. */\n registerHandler: RegisterHandlerFunction<TSlot>;\n /** Уровень контекста, объявленный в манифесте. */\n contextLevel: 'full';\n}\n\ntype TrackerServiceContextValue = {\n registerHandler: RegisterHandlerFunction<TrackerSlotKey>;\n};\n\nconst TrackerServiceContext = createContext<TrackerServiceContextValue | null>(null);\n\n/**\n * Сервисный слой поверх {@link PluginProvider}: типизированный под Tracker `registerHandler`\n * и обязательная обёртка для {@link useTrackerPluginContext}.\n */\nfunction TrackerPluginServiceLayer({ children }: { children: ReactNode }) {\n const { registerHandler: baseRegisterHandler } = usePluginContext('basic');\n\n const typedRegisterHandler = useMemo<RegisterHandlerFunction<TrackerSlotKey>>(() => {\n return ((methodName, handler) =>\n baseRegisterHandler(\n methodName as string,\n handler as (...args: unknown[]) => unknown,\n )) as RegisterHandlerFunction<TrackerSlotKey>;\n }, [baseRegisterHandler]);\n\n const value = useMemo(\n () => ({ registerHandler: typedRegisterHandler }),\n [typedRegisterHandler],\n );\n\n return (\n <TrackerServiceContext.Provider value={value}>{children}</TrackerServiceContext.Provider>\n );\n}\n\n/**\n * Обёртка над стандартным {@link PluginProvider}: инициализация и общий контракт хоста в SDK,\n * поверх — трекер-специфичный контекст (типизированный `registerHandler` и проверка для\n * {@link useTrackerPluginContext}).\n */\nexport function TrackerPluginProvider(props: PluginProviderProps) {\n return (\n <PluginProvider {...props}>\n <TrackerPluginServiceLayer>{props.children}</TrackerPluginServiceLayer>\n </PluginProvider>\n );\n}\n\nexport type TrackerPluginProviderProps = PluginProviderProps;\n\n/**\n * Хук для получения темы, языка, слота и контекста слота из TrackerPluginProvider.\n */\nexport function useTrackerPluginContext(): {\n [K in TrackerSlotKey]: BasicTrackerPluginContextValue<K>;\n}[TrackerSlotKey];\nexport function useTrackerPluginContext(level: 'basic'): {\n [K in TrackerSlotKey]: BasicTrackerPluginContextValue<K>;\n}[TrackerSlotKey];\nexport function useTrackerPluginContext(level: 'full'): {\n [K in TrackerSlotKey]: FullTrackerPluginContextValue<K>;\n}[TrackerSlotKey];\nexport function useTrackerPluginContext<TSlot extends TrackerSlotKey>(\n level?: 'basic',\n): BasicTrackerPluginContextValue<TSlot>;\nexport function useTrackerPluginContext<TSlot extends TrackerSlotKey>(\n level: 'full',\n): FullTrackerPluginContextValue<TSlot>;\nexport function useTrackerPluginContext(\n level: ContextLevel = 'basic',\n): BasicTrackerPluginContextValue | FullTrackerPluginContextValue {\n const base = usePluginContext(level as 'basic') as\n | BasicPluginContextValue\n | FullPluginContextValue;\n const service = useContext(TrackerServiceContext);\n if (!service) {\n throw new Error(\n 'useTrackerPluginContext must be used within TrackerPluginProvider (Tracker service layer). ' +\n 'Use PluginProvider only with usePluginContext, or wrap the app with TrackerPluginProvider.',\n );\n }\n\n const slot = base.slot as TrackerSlotKey;\n\n if (level === 'full') {\n return {\n ...base,\n slot,\n registerHandler: service.registerHandler as RegisterHandlerFunction<typeof slot>,\n slotContext: base.slotContext as SlotContextMap[typeof slot] | undefined,\n } as FullTrackerPluginContextValue;\n }\n\n return {\n ...base,\n slot,\n registerHandler: service.registerHandler as RegisterHandlerFunction<typeof slot>,\n } as BasicTrackerPluginContextValue;\n}\n\nexport { isInternalUrl } from '@weavix/sdk-react';\n"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/components/TrackerPluginProvider.tsx"],"sourcesContent":["import {\n type BasicContext,\n type BasicPluginContextValue,\n type ContextLevel,\n type FullPluginContextValue,\n PluginProvider,\n type PluginProviderProps,\n type Theme,\n usePluginContext,\n} from '@weavix/sdk-react';\nimport type {\n GetDataResultMap,\n HandlerFunction,\n Handlers,\n SlotContextMap,\n} from '@weavix/tracker-plugin-sdk';\nimport { type ReactNode, createContext, useContext, useMemo } from 'react';\n\n/** Строковые ключи слота (для индексных типов без `symbol` в keyof). */\ntype TrackerSlotKey = Extract<keyof SlotContextMap, string>;\n\n/**\n * Сигнатура registerHandler: для 'getData' тип handler зависит от слота (GetDataResultMap[TSlot]).\n */\nexport type RegisterHandlerFunction<TSlot extends TrackerSlotKey> = <TKey extends keyof Handlers>(\n methodName: TKey,\n handler: TKey extends 'getData'\n ? TSlot extends keyof GetDataResultMap\n ? () => GetDataResultMap[TSlot]\n : never\n : HandlerFunction<TKey>,\n) => void;\n\n/**\n * Контекст плагина при contextLevel = 'basic'.\n * slotContext содержит только entityId.\n */\nexport interface BasicTrackerPluginContextValue<TSlot extends TrackerSlotKey = TrackerSlotKey> {\n /** Текущая тема хоста. Обновляется реактивно при получении theme.changed. */\n theme: Theme | undefined;\n /** Текущий язык хоста. Обновляется реактивно при получении language.changed. */\n language: string | undefined;\n /** Сервис, в котором открылся плагин. */\n service: string;\n /** Id пользователя. */\n userId?: string;\n /** Это ятим? */\n isYateam?: boolean;\n /** Включена ли Орбита */\n isOrbita?: boolean;\n /** Origin родительского окна (хоста). */\n origin: string;\n /** Слот, в котором открыт плагин. */\n slot: TSlot;\n /** URL внутри плагина. */\n innerUrl: string;\n /** Query-параметры плагина */\n queryParams: Record<string, string>;\n /** Контекст страницы — только entityId при basic уровне. */\n slotContext: BasicContext | undefined;\n /** Регистрация обработчика для ответов на запросы хоста. */\n registerHandler: RegisterHandlerFunction<TSlot>;\n /** Уровень контекста, объявленный в манифесте. */\n contextLevel: 'basic';\n}\n\n/**\n * Контекст плагина при contextLevel = 'full'.\n * slotContext содержит полный объект слота (Issue, TriggerContext и т.д.).\n */\nexport interface FullTrackerPluginContextValue<TSlot extends TrackerSlotKey = TrackerSlotKey> {\n /** Текущая тема хоста. Обновляется реактивно при получении theme.changed. */\n theme: Theme | undefined;\n /** Текущий язык хоста. Обновляется реактивно при получении language.changed. */\n language: string | undefined;\n /** Сервис, в котором открылся плагин. */\n service: string;\n /** Id пользователя. */\n userId?: string;\n /** Это ятим? */\n isYateam?: boolean;\n /** Включена ли Орбита */\n isOrbita?: boolean;\n /** Origin родительского окна (хоста). */\n origin: string;\n /** Слот, в котором открыт плагин. */\n slot: TSlot;\n /** URL внутри плагина. */\n innerUrl: string;\n /** Query-параметры плагина */\n queryParams: Record<string, string>;\n /** Контекст страницы — полный объект слота при full уровне. */\n slotContext: SlotContextMap[TSlot] | undefined;\n /** Регистрация обработчика для ответов на запросы хоста. */\n registerHandler: RegisterHandlerFunction<TSlot>;\n /** Уровень контекста, объявленный в манифесте. */\n contextLevel: 'full';\n}\n\ntype TrackerServiceContextValue = {\n registerHandler: RegisterHandlerFunction<TrackerSlotKey>;\n};\n\nconst TrackerServiceContext = createContext<TrackerServiceContextValue | null>(null);\n\n/**\n * Сервисный слой поверх {@link PluginProvider}: типизированный под Tracker `registerHandler`\n * и обязательная обёртка для {@link useTrackerPluginContext}.\n */\nfunction TrackerPluginServiceLayer({ children }: { children: ReactNode }) {\n const { registerHandler: baseRegisterHandler } = usePluginContext('basic');\n\n const typedRegisterHandler = useMemo<RegisterHandlerFunction<TrackerSlotKey>>(() => {\n return ((methodName, handler) =>\n baseRegisterHandler(\n methodName as string,\n handler as (...args: unknown[]) => unknown,\n )) as RegisterHandlerFunction<TrackerSlotKey>;\n }, [baseRegisterHandler]);\n\n const value = useMemo(\n () => ({ registerHandler: typedRegisterHandler }),\n [typedRegisterHandler],\n );\n\n return (\n <TrackerServiceContext.Provider value={value}>{children}</TrackerServiceContext.Provider>\n );\n}\n\n/**\n * Обёртка над стандартным {@link PluginProvider}: инициализация и общий контракт хоста в SDK,\n * поверх — трекер-специфичный контекст (типизированный `registerHandler` и проверка для\n * {@link useTrackerPluginContext}).\n */\nexport function TrackerPluginProvider(props: PluginProviderProps) {\n return (\n <PluginProvider {...props}>\n <TrackerPluginServiceLayer>{props.children}</TrackerPluginServiceLayer>\n </PluginProvider>\n );\n}\n\nexport type TrackerPluginProviderProps = PluginProviderProps;\n\n/**\n * Хук для получения темы, языка, слота и контекста слота из TrackerPluginProvider.\n */\nexport function useTrackerPluginContext(): {\n [K in TrackerSlotKey]: BasicTrackerPluginContextValue<K>;\n}[TrackerSlotKey];\nexport function useTrackerPluginContext(level: 'basic'): {\n [K in TrackerSlotKey]: BasicTrackerPluginContextValue<K>;\n}[TrackerSlotKey];\nexport function useTrackerPluginContext(level: 'full'): {\n [K in TrackerSlotKey]: FullTrackerPluginContextValue<K>;\n}[TrackerSlotKey];\nexport function useTrackerPluginContext<TSlot extends TrackerSlotKey>(\n level?: 'basic',\n): BasicTrackerPluginContextValue<TSlot>;\nexport function useTrackerPluginContext<TSlot extends TrackerSlotKey>(\n level: 'full',\n): FullTrackerPluginContextValue<TSlot>;\nexport function useTrackerPluginContext(\n level: ContextLevel = 'basic',\n): BasicTrackerPluginContextValue | FullTrackerPluginContextValue {\n const base = usePluginContext(level as 'basic') as\n | BasicPluginContextValue\n | FullPluginContextValue;\n const service = useContext(TrackerServiceContext);\n if (!service) {\n throw new Error(\n 'useTrackerPluginContext must be used within TrackerPluginProvider (Tracker service layer). ' +\n 'Use PluginProvider only with usePluginContext, or wrap the app with TrackerPluginProvider.',\n );\n }\n\n const slot = base.slot as TrackerSlotKey;\n\n if (level === 'full') {\n return {\n ...base,\n slot,\n registerHandler: service.registerHandler as RegisterHandlerFunction<typeof slot>,\n slotContext: base.slotContext as SlotContextMap[typeof slot] | undefined,\n } as FullTrackerPluginContextValue;\n }\n\n return {\n ...base,\n slot,\n registerHandler: service.registerHandler as RegisterHandlerFunction<typeof slot>,\n } as BasicTrackerPluginContextValue;\n}\n\nexport { isInternalUrl } from '@weavix/sdk-react';\n"],"mappings":";;;;;AAuGA,IAAM,IAAwB,EAAiD,IAAI;AAMnF,SAAS,EAA0B,EAAE,eAAqC;CACtE,IAAM,EAAE,iBAAiB,MAAwB,EAAiB,OAAO,GAEnE,IAAuB,UAChB,GAAY,MACjB,EACI,GACA,CACJ,IACL,CAAC,CAAmB,CAAC,GAElB,IAAQ,SACH,EAAE,iBAAiB,EAAqB,IAC/C,CAAC,CAAoB,CACzB;CAEA,OACI,kBAAC,EAAsB,UAAvB;EAAuC;EAAQ;CAAyC,CAAA;AAEhG;AAOA,SAAgB,EAAsB,GAA4B;CAC9D,OACI,kBAAC,GAAD;EAAgB,GAAI;YAChB,kBAAC,GAAD,EAAA,UAA4B,EAAM,SAAoC,CAAA;CAC1D,CAAA;AAExB;AAsBA,SAAgB,EACZ,IAAsB,SACwC;CAC9D,IAAM,IAAO,EAAiB,CAAgB,GAGxC,IAAU,EAAW,CAAqB;CAChD,IAAI,CAAC,GACD,MAAU,MACN,uLAEJ;CAGJ,IAAM,IAAO,EAAK;CAWlB,OATI,MAAU,SACH;EACH,GAAG;EACH;EACA,iBAAiB,EAAQ;EACzB,aAAa,EAAK;CACtB,IAGG;EACH,GAAG;EACH;EACA,iBAAiB,EAAQ;CAC7B;AACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weavix/tracker-plugin-sdk-react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.26",
|
|
4
4
|
"exports": {
|
|
5
5
|
".": {
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@weavix/tracker-plugin-sdk": "^0.0.
|
|
26
|
-
"@weavix/sdk-core": "^0.0.
|
|
27
|
-
"@weavix/sdk-react": "^0.0.
|
|
28
|
-
"@weavix/tracker-core": "^0.0.
|
|
25
|
+
"@weavix/tracker-plugin-sdk": "^0.0.26",
|
|
26
|
+
"@weavix/sdk-core": "^0.0.28",
|
|
27
|
+
"@weavix/sdk-react": "^0.0.28",
|
|
28
|
+
"@weavix/tracker-core": "^0.0.26"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": "^18.0.0",
|
|
32
|
-
"@weavix/tracker-core": "^0.0.
|
|
32
|
+
"@weavix/tracker-core": "^0.0.26"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@testing-library/jest-dom": "*",
|