@knocklabs/react-core 0.6.13 → 0.6.14-canary.2
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/package.json +5 -6
- package/src/modules/feed/context/KnockFeedProvider.tsx +2 -7
- package/src/modules/feed/hooks/useNotificationStore.ts +15 -13
- package/src/modules/feed/hooks/useNotifications.ts +0 -4
- package/CHANGELOG.md +0 -477
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/modules/core/constants.js +0 -2
- package/dist/cjs/modules/core/constants.js.map +0 -1
- package/dist/cjs/modules/core/context/KnockProvider.js +0 -2
- package/dist/cjs/modules/core/context/KnockProvider.js.map +0 -1
- package/dist/cjs/modules/core/hooks/useAuthenticatedKnockClient.js +0 -2
- package/dist/cjs/modules/core/hooks/useAuthenticatedKnockClient.js.map +0 -1
- package/dist/cjs/modules/core/hooks/useStableOptions.js +0 -2
- package/dist/cjs/modules/core/hooks/useStableOptions.js.map +0 -1
- package/dist/cjs/modules/core/utils.js +0 -2
- package/dist/cjs/modules/core/utils.js.map +0 -1
- package/dist/cjs/modules/feed/context/KnockFeedProvider.js +0 -2
- package/dist/cjs/modules/feed/context/KnockFeedProvider.js.map +0 -1
- package/dist/cjs/modules/feed/hooks/useFeedSettings.js +0 -2
- package/dist/cjs/modules/feed/hooks/useFeedSettings.js.map +0 -1
- package/dist/cjs/modules/feed/hooks/useNotificationStore.js +0 -2
- package/dist/cjs/modules/feed/hooks/useNotificationStore.js.map +0 -1
- package/dist/cjs/modules/feed/hooks/useNotifications.js +0 -2
- package/dist/cjs/modules/feed/hooks/useNotifications.js.map +0 -1
- package/dist/cjs/modules/guide/context/KnockGuideProvider.js +0 -2
- package/dist/cjs/modules/guide/context/KnockGuideProvider.js.map +0 -1
- package/dist/cjs/modules/guide/hooks/useGuide.js +0 -2
- package/dist/cjs/modules/guide/hooks/useGuide.js.map +0 -1
- package/dist/cjs/modules/guide/hooks/useGuideContext.js +0 -2
- package/dist/cjs/modules/guide/hooks/useGuideContext.js.map +0 -1
- package/dist/cjs/modules/i18n/context/KnockI18nProvider.js +0 -2
- package/dist/cjs/modules/i18n/context/KnockI18nProvider.js.map +0 -1
- package/dist/cjs/modules/i18n/hooks/useTranslations.js +0 -2
- package/dist/cjs/modules/i18n/hooks/useTranslations.js.map +0 -1
- package/dist/cjs/modules/i18n/languages/de.js +0 -2
- package/dist/cjs/modules/i18n/languages/de.js.map +0 -1
- package/dist/cjs/modules/i18n/languages/en.js +0 -2
- package/dist/cjs/modules/i18n/languages/en.js.map +0 -1
- package/dist/cjs/modules/i18n/languages/index.js +0 -2
- package/dist/cjs/modules/i18n/languages/index.js.map +0 -1
- package/dist/cjs/modules/ms-teams/context/KnockMsTeamsProvider.js +0 -2
- package/dist/cjs/modules/ms-teams/context/KnockMsTeamsProvider.js.map +0 -1
- package/dist/cjs/modules/ms-teams/hooks/useConnectedMsTeamsChannels.js +0 -2
- package/dist/cjs/modules/ms-teams/hooks/useConnectedMsTeamsChannels.js.map +0 -1
- package/dist/cjs/modules/ms-teams/hooks/useMsTeamsAuth.js +0 -2
- package/dist/cjs/modules/ms-teams/hooks/useMsTeamsAuth.js.map +0 -1
- package/dist/cjs/modules/ms-teams/hooks/useMsTeamsChannels.js +0 -2
- package/dist/cjs/modules/ms-teams/hooks/useMsTeamsChannels.js.map +0 -1
- package/dist/cjs/modules/ms-teams/hooks/useMsTeamsConnectionStatus.js +0 -2
- package/dist/cjs/modules/ms-teams/hooks/useMsTeamsConnectionStatus.js.map +0 -1
- package/dist/cjs/modules/ms-teams/hooks/useMsTeamsTeams.js +0 -2
- package/dist/cjs/modules/ms-teams/hooks/useMsTeamsTeams.js.map +0 -1
- package/dist/cjs/modules/slack/context/KnockSlackProvider.js +0 -2
- package/dist/cjs/modules/slack/context/KnockSlackProvider.js.map +0 -1
- package/dist/cjs/modules/slack/hooks/useConnectedSlackChannels.js +0 -2
- package/dist/cjs/modules/slack/hooks/useConnectedSlackChannels.js.map +0 -1
- package/dist/cjs/modules/slack/hooks/useSlackAuth.js +0 -2
- package/dist/cjs/modules/slack/hooks/useSlackAuth.js.map +0 -1
- package/dist/cjs/modules/slack/hooks/useSlackChannels.js +0 -2
- package/dist/cjs/modules/slack/hooks/useSlackChannels.js.map +0 -1
- package/dist/cjs/modules/slack/hooks/useSlackConnectionStatus.js +0 -2
- package/dist/cjs/modules/slack/hooks/useSlackConnectionStatus.js.map +0 -1
- package/dist/esm/index.mjs +0 -66
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/modules/core/constants.mjs +0 -5
- package/dist/esm/modules/core/constants.mjs.map +0 -1
- package/dist/esm/modules/core/context/KnockProvider.mjs +0 -35
- package/dist/esm/modules/core/context/KnockProvider.mjs.map +0 -1
- package/dist/esm/modules/core/hooks/useAuthenticatedKnockClient.mjs +0 -29
- package/dist/esm/modules/core/hooks/useAuthenticatedKnockClient.mjs.map +0 -1
- package/dist/esm/modules/core/hooks/useStableOptions.mjs +0 -13
- package/dist/esm/modules/core/hooks/useStableOptions.mjs.map +0 -1
- package/dist/esm/modules/core/utils.mjs +0 -49
- package/dist/esm/modules/core/utils.mjs.map +0 -1
- package/dist/esm/modules/feed/context/KnockFeedProvider.mjs +0 -37
- package/dist/esm/modules/feed/context/KnockFeedProvider.mjs.map +0 -1
- package/dist/esm/modules/feed/hooks/useFeedSettings.mjs +0 -23
- package/dist/esm/modules/feed/hooks/useFeedSettings.mjs.map +0 -1
- package/dist/esm/modules/feed/hooks/useNotificationStore.mjs +0 -12
- package/dist/esm/modules/feed/hooks/useNotificationStore.mjs.map +0 -1
- package/dist/esm/modules/feed/hooks/useNotifications.mjs +0 -34
- package/dist/esm/modules/feed/hooks/useNotifications.mjs.map +0 -1
- package/dist/esm/modules/guide/context/KnockGuideProvider.mjs +0 -33
- package/dist/esm/modules/guide/context/KnockGuideProvider.mjs.map +0 -1
- package/dist/esm/modules/guide/hooks/useGuide.mjs +0 -21
- package/dist/esm/modules/guide/hooks/useGuide.mjs.map +0 -1
- package/dist/esm/modules/guide/hooks/useGuideContext.mjs +0 -12
- package/dist/esm/modules/guide/hooks/useGuideContext.mjs.map +0 -1
- package/dist/esm/modules/i18n/context/KnockI18nProvider.mjs +0 -11
- package/dist/esm/modules/i18n/context/KnockI18nProvider.mjs.map +0 -1
- package/dist/esm/modules/i18n/hooks/useTranslations.mjs +0 -17
- package/dist/esm/modules/i18n/hooks/useTranslations.mjs.map +0 -1
- package/dist/esm/modules/i18n/languages/de.mjs +0 -39
- package/dist/esm/modules/i18n/languages/de.mjs.map +0 -1
- package/dist/esm/modules/i18n/languages/en.mjs +0 -51
- package/dist/esm/modules/i18n/languages/en.mjs.map +0 -1
- package/dist/esm/modules/i18n/languages/index.mjs +0 -10
- package/dist/esm/modules/i18n/languages/index.mjs.map +0 -1
- package/dist/esm/modules/ms-teams/context/KnockMsTeamsProvider.mjs +0 -48
- package/dist/esm/modules/ms-teams/context/KnockMsTeamsProvider.mjs.map +0 -1
- package/dist/esm/modules/ms-teams/hooks/useConnectedMsTeamsChannels.mjs +0 -78
- package/dist/esm/modules/ms-teams/hooks/useConnectedMsTeamsChannels.mjs.map +0 -1
- package/dist/esm/modules/ms-teams/hooks/useMsTeamsAuth.mjs +0 -53
- package/dist/esm/modules/ms-teams/hooks/useMsTeamsAuth.mjs.map +0 -1
- package/dist/esm/modules/ms-teams/hooks/useMsTeamsChannels.mjs +0 -41
- package/dist/esm/modules/ms-teams/hooks/useMsTeamsChannels.mjs.map +0 -1
- package/dist/esm/modules/ms-teams/hooks/useMsTeamsConnectionStatus.mjs +0 -38
- package/dist/esm/modules/ms-teams/hooks/useMsTeamsConnectionStatus.mjs.map +0 -1
- package/dist/esm/modules/ms-teams/hooks/useMsTeamsTeams.mjs +0 -51
- package/dist/esm/modules/ms-teams/hooks/useMsTeamsTeams.mjs.map +0 -1
- package/dist/esm/modules/slack/context/KnockSlackProvider.mjs +0 -49
- package/dist/esm/modules/slack/context/KnockSlackProvider.mjs.map +0 -1
- package/dist/esm/modules/slack/hooks/useConnectedSlackChannels.mjs +0 -78
- package/dist/esm/modules/slack/hooks/useConnectedSlackChannels.mjs.map +0 -1
- package/dist/esm/modules/slack/hooks/useSlackAuth.mjs +0 -68
- package/dist/esm/modules/slack/hooks/useSlackAuth.mjs.map +0 -1
- package/dist/esm/modules/slack/hooks/useSlackChannels.mjs +0 -52
- package/dist/esm/modules/slack/hooks/useSlackChannels.mjs.map +0 -1
- package/dist/esm/modules/slack/hooks/useSlackConnectionStatus.mjs +0 -47
- package/dist/esm/modules/slack/hooks/useSlackConnectionStatus.mjs.map +0 -1
- package/dist/types/index.d.ts +0 -8
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/interfaces.d.ts +0 -5
- package/dist/types/interfaces.d.ts.map +0 -1
- package/dist/types/modules/core/constants.d.ts +0 -8
- package/dist/types/modules/core/constants.d.ts.map +0 -1
- package/dist/types/modules/core/context/KnockProvider.d.ts +0 -20
- package/dist/types/modules/core/context/KnockProvider.d.ts.map +0 -1
- package/dist/types/modules/core/context/index.d.ts +0 -2
- package/dist/types/modules/core/context/index.d.ts.map +0 -1
- package/dist/types/modules/core/hooks/index.d.ts +0 -3
- package/dist/types/modules/core/hooks/index.d.ts.map +0 -1
- package/dist/types/modules/core/hooks/useAuthenticatedKnockClient.d.ts +0 -5
- package/dist/types/modules/core/hooks/useAuthenticatedKnockClient.d.ts.map +0 -1
- package/dist/types/modules/core/hooks/useStableOptions.d.ts +0 -2
- package/dist/types/modules/core/hooks/useStableOptions.d.ts.map +0 -1
- package/dist/types/modules/core/index.d.ts +0 -5
- package/dist/types/modules/core/index.d.ts.map +0 -1
- package/dist/types/modules/core/utils.d.ts +0 -24
- package/dist/types/modules/core/utils.d.ts.map +0 -1
- package/dist/types/modules/feed/context/KnockFeedProvider.d.ts +0 -19
- package/dist/types/modules/feed/context/KnockFeedProvider.d.ts.map +0 -1
- package/dist/types/modules/feed/context/index.d.ts +0 -2
- package/dist/types/modules/feed/context/index.d.ts.map +0 -1
- package/dist/types/modules/feed/hooks/index.d.ts +0 -4
- package/dist/types/modules/feed/hooks/index.d.ts.map +0 -1
- package/dist/types/modules/feed/hooks/useFeedSettings.d.ts +0 -12
- package/dist/types/modules/feed/hooks/useFeedSettings.d.ts.map +0 -1
- package/dist/types/modules/feed/hooks/useNotificationStore.d.ts +0 -35
- package/dist/types/modules/feed/hooks/useNotificationStore.d.ts.map +0 -1
- package/dist/types/modules/feed/hooks/useNotifications.d.ts +0 -4
- package/dist/types/modules/feed/hooks/useNotifications.d.ts.map +0 -1
- package/dist/types/modules/feed/index.d.ts +0 -3
- package/dist/types/modules/feed/index.d.ts.map +0 -1
- package/dist/types/modules/guide/context/KnockGuideProvider.d.ts +0 -19
- package/dist/types/modules/guide/context/KnockGuideProvider.d.ts.map +0 -1
- package/dist/types/modules/guide/context/index.d.ts +0 -2
- package/dist/types/modules/guide/context/index.d.ts.map +0 -1
- package/dist/types/modules/guide/hooks/index.d.ts +0 -2
- package/dist/types/modules/guide/hooks/index.d.ts.map +0 -1
- package/dist/types/modules/guide/hooks/useGuide.d.ts +0 -9
- package/dist/types/modules/guide/hooks/useGuide.d.ts.map +0 -1
- package/dist/types/modules/guide/hooks/useGuideContext.d.ts +0 -7
- package/dist/types/modules/guide/hooks/useGuideContext.d.ts.map +0 -1
- package/dist/types/modules/guide/index.d.ts +0 -3
- package/dist/types/modules/guide/index.d.ts.map +0 -1
- package/dist/types/modules/i18n/context/KnockI18nProvider.d.ts +0 -8
- package/dist/types/modules/i18n/context/KnockI18nProvider.d.ts.map +0 -1
- package/dist/types/modules/i18n/context/index.d.ts +0 -2
- package/dist/types/modules/i18n/context/index.d.ts.map +0 -1
- package/dist/types/modules/i18n/hooks/index.d.ts +0 -2
- package/dist/types/modules/i18n/hooks/index.d.ts.map +0 -1
- package/dist/types/modules/i18n/hooks/useTranslations.d.ts +0 -5
- package/dist/types/modules/i18n/hooks/useTranslations.d.ts.map +0 -1
- package/dist/types/modules/i18n/index.d.ts +0 -4
- package/dist/types/modules/i18n/index.d.ts.map +0 -1
- package/dist/types/modules/i18n/languages/de.d.ts +0 -4
- package/dist/types/modules/i18n/languages/de.d.ts.map +0 -1
- package/dist/types/modules/i18n/languages/en.d.ts +0 -4
- package/dist/types/modules/i18n/languages/en.d.ts.map +0 -1
- package/dist/types/modules/i18n/languages/index.d.ts +0 -54
- package/dist/types/modules/i18n/languages/index.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/context/KnockMsTeamsProvider.d.ts +0 -20
- package/dist/types/modules/ms-teams/context/KnockMsTeamsProvider.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/context/index.d.ts +0 -2
- package/dist/types/modules/ms-teams/context/index.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/hooks/index.d.ts +0 -6
- package/dist/types/modules/ms-teams/hooks/index.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/hooks/useConnectedMsTeamsChannels.d.ts +0 -15
- package/dist/types/modules/ms-teams/hooks/useConnectedMsTeamsChannels.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/hooks/useMsTeamsAuth.d.ts +0 -7
- package/dist/types/modules/ms-teams/hooks/useMsTeamsAuth.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/hooks/useMsTeamsChannels.d.ts +0 -14
- package/dist/types/modules/ms-teams/hooks/useMsTeamsChannels.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/hooks/useMsTeamsConnectionStatus.d.ts +0 -13
- package/dist/types/modules/ms-teams/hooks/useMsTeamsConnectionStatus.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/hooks/useMsTeamsTeams.d.ts +0 -13
- package/dist/types/modules/ms-teams/hooks/useMsTeamsTeams.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/index.d.ts +0 -4
- package/dist/types/modules/ms-teams/index.d.ts.map +0 -1
- package/dist/types/modules/ms-teams/interfaces.d.ts +0 -11
- package/dist/types/modules/ms-teams/interfaces.d.ts.map +0 -1
- package/dist/types/modules/slack/context/KnockSlackProvider.d.ts +0 -30
- package/dist/types/modules/slack/context/KnockSlackProvider.d.ts.map +0 -1
- package/dist/types/modules/slack/context/index.d.ts +0 -2
- package/dist/types/modules/slack/context/index.d.ts.map +0 -1
- package/dist/types/modules/slack/hooks/index.d.ts +0 -5
- package/dist/types/modules/slack/hooks/index.d.ts.map +0 -1
- package/dist/types/modules/slack/hooks/useConnectedSlackChannels.d.ts +0 -15
- package/dist/types/modules/slack/hooks/useConnectedSlackChannels.d.ts.map +0 -1
- package/dist/types/modules/slack/hooks/useSlackAuth.d.ts +0 -11
- package/dist/types/modules/slack/hooks/useSlackAuth.d.ts.map +0 -1
- package/dist/types/modules/slack/hooks/useSlackChannels.d.ts +0 -13
- package/dist/types/modules/slack/hooks/useSlackChannels.d.ts.map +0 -1
- package/dist/types/modules/slack/hooks/useSlackConnectionStatus.d.ts +0 -13
- package/dist/types/modules/slack/hooks/useSlackConnectionStatus.d.ts.map +0 -1
- package/dist/types/modules/slack/index.d.ts +0 -4
- package/dist/types/modules/slack/index.d.ts.map +0 -1
- package/dist/types/modules/slack/interfaces.d.ts +0 -10
- package/dist/types/modules/slack/interfaces.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@knocklabs/react-core",
|
|
3
3
|
"description": "A set of React components to build notification experiences powered by Knock",
|
|
4
4
|
"author": "@knocklabs",
|
|
5
|
-
"version": "0.6.
|
|
5
|
+
"version": "0.6.14-canary.2",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/cjs/index.js",
|
|
8
8
|
"module": "dist/esm/index.mjs",
|
|
@@ -47,12 +47,11 @@
|
|
|
47
47
|
"react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@knocklabs/client": "
|
|
51
|
-
"@tanstack/react-store": "0.
|
|
50
|
+
"@knocklabs/client": "workspace:^",
|
|
51
|
+
"@tanstack/react-store": "^0.7.1",
|
|
52
52
|
"date-fns": "^4.0.0",
|
|
53
53
|
"fast-deep-equal": "^3.1.3",
|
|
54
|
-
"swr": "^2.3.3"
|
|
55
|
-
"zustand": "^4.5.6"
|
|
54
|
+
"swr": "^2.3.3"
|
|
56
55
|
},
|
|
57
56
|
"devDependencies": {
|
|
58
57
|
"@testing-library/dom": "^10.4.0",
|
|
@@ -76,4 +75,4 @@
|
|
|
76
75
|
"vite-plugin-no-bundle": "^4.0.0",
|
|
77
76
|
"vitest": "^3.1.1"
|
|
78
77
|
}
|
|
79
|
-
}
|
|
78
|
+
}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import Knock, {
|
|
2
|
-
Feed,
|
|
3
|
-
FeedClientOptions,
|
|
4
|
-
FeedStoreState,
|
|
5
|
-
} from "@knocklabs/client";
|
|
1
|
+
import Knock, { Feed, FeedClientOptions } from "@knocklabs/client";
|
|
6
2
|
import * as React from "react";
|
|
7
3
|
import { PropsWithChildren } from "react";
|
|
8
|
-
import type { StoreApi, UseBoundStore } from "zustand";
|
|
9
4
|
|
|
10
5
|
import { useKnockClient } from "../../core";
|
|
11
6
|
import { ColorMode } from "../../core/constants";
|
|
@@ -16,7 +11,7 @@ import useNotifications from "../hooks/useNotifications";
|
|
|
16
11
|
export interface KnockFeedProviderState {
|
|
17
12
|
knock: Knock;
|
|
18
13
|
feedClient: Feed;
|
|
19
|
-
useFeedStore:
|
|
14
|
+
useFeedStore: ReturnType<typeof useCreateNotificationStore>;
|
|
20
15
|
colorMode: ColorMode;
|
|
21
16
|
}
|
|
22
17
|
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import { Feed, type FeedStoreState } from "@knocklabs/client";
|
|
2
|
-
import {
|
|
2
|
+
import { useStore } from "@tanstack/react-store";
|
|
3
3
|
|
|
4
4
|
export type Selector<T> = (state: FeedStoreState) => T;
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* Create a hook factory that provides access to the TanStack Store with optional selector support.
|
|
8
|
+
* This pattern allows for flexible store access with or without selectors while maintaining
|
|
9
|
+
* type safety. The selector can be passed either to useCreateNotificationStore or
|
|
10
|
+
* useNotificationStore, with the latter taking precedence.
|
|
11
11
|
*/
|
|
12
|
-
function useCreateNotificationStore
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
function useCreateNotificationStore(feedClient: Feed) {
|
|
13
|
+
return <T = FeedStoreState>(selector?: Selector<T>) => {
|
|
14
|
+
// Keep selector optional for external use
|
|
15
|
+
// useStore requires a selector so we'll pass in a default one when not provided
|
|
16
|
+
// eslint-disable-next-line
|
|
17
|
+
return useStore(
|
|
18
|
+
feedClient.store.store,
|
|
19
|
+
selector ?? ((state) => state as T),
|
|
20
|
+
);
|
|
21
|
+
};
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
/**
|
|
@@ -17,10 +17,6 @@ function useNotifications(
|
|
|
17
17
|
(feedChannelId: string, options: FeedClientOptions) => {
|
|
18
18
|
const feedClient = knock.feeds.initialize(feedChannelId, options);
|
|
19
19
|
|
|
20
|
-
// In development, we need to introduce this extra set state to force a render
|
|
21
|
-
// for Zustand as otherwise the state doesn't get reflected correctly
|
|
22
|
-
feedClient.store.subscribe((t) => feedClient.store.setState(t));
|
|
23
|
-
|
|
24
20
|
feedClient.listenForUpdates();
|
|
25
21
|
|
|
26
22
|
return feedClient;
|
package/CHANGELOG.md
DELETED
|
@@ -1,477 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 0.6.13
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- bea5604: update @knocklabs/react & @knocklabs/react-core to use named exports instead of barrel exports
|
|
8
|
-
|
|
9
|
-
## 0.6.12
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- Updated dependencies [4e73f12]
|
|
14
|
-
- @knocklabs/client@0.14.9
|
|
15
|
-
|
|
16
|
-
## 0.6.11
|
|
17
|
-
|
|
18
|
-
### Patch Changes
|
|
19
|
-
|
|
20
|
-
- dbbbaf7: Dispose of feed on unmount in `useNotifications` hook
|
|
21
|
-
|
|
22
|
-
Previously, the `useNotifications` hook did not clean up old instances of `Feed`
|
|
23
|
-
on unmount. This has been fixed.
|
|
24
|
-
|
|
25
|
-
## 0.6.10
|
|
26
|
-
|
|
27
|
-
### Patch Changes
|
|
28
|
-
|
|
29
|
-
- 337bade: feat: introduce ability to override slack scopes
|
|
30
|
-
|
|
31
|
-
## 0.6.9
|
|
32
|
-
|
|
33
|
-
### Patch Changes
|
|
34
|
-
|
|
35
|
-
- 329ee05: downgrade tanstack store deps to 0.6.x to work in older TS version
|
|
36
|
-
- Updated dependencies [329ee05]
|
|
37
|
-
- @knocklabs/client@0.14.8
|
|
38
|
-
|
|
39
|
-
## 0.6.8
|
|
40
|
-
|
|
41
|
-
### Patch Changes
|
|
42
|
-
|
|
43
|
-
- Updated dependencies [efd1005]
|
|
44
|
-
- @knocklabs/client@0.14.7
|
|
45
|
-
|
|
46
|
-
## 0.6.7
|
|
47
|
-
|
|
48
|
-
### Patch Changes
|
|
49
|
-
|
|
50
|
-
- Updated dependencies [a5c615e]
|
|
51
|
-
- @knocklabs/client@0.14.6
|
|
52
|
-
|
|
53
|
-
## 0.6.6
|
|
54
|
-
|
|
55
|
-
### Patch Changes
|
|
56
|
-
|
|
57
|
-
- 8f00623: activation location rules support for guides
|
|
58
|
-
- Updated dependencies [8f00623]
|
|
59
|
-
- @knocklabs/client@0.14.5
|
|
60
|
-
|
|
61
|
-
## 0.6.5
|
|
62
|
-
|
|
63
|
-
### Patch Changes
|
|
64
|
-
|
|
65
|
-
- e800896: feat: typescript fixes + quality of life improvements
|
|
66
|
-
- Updated dependencies [e800896]
|
|
67
|
-
- @knocklabs/client@0.14.4
|
|
68
|
-
|
|
69
|
-
## 0.6.4
|
|
70
|
-
|
|
71
|
-
### Patch Changes
|
|
72
|
-
|
|
73
|
-
- 96d70bc: fixes memory leak when unmounting the useNotifications hook
|
|
74
|
-
|
|
75
|
-
## 0.6.3
|
|
76
|
-
|
|
77
|
-
### Patch Changes
|
|
78
|
-
|
|
79
|
-
- c97a1d9: Update TanStack Store
|
|
80
|
-
- Updated dependencies [c97a1d9]
|
|
81
|
-
- @knocklabs/client@0.14.3
|
|
82
|
-
|
|
83
|
-
## 0.6.2
|
|
84
|
-
|
|
85
|
-
### Patch Changes
|
|
86
|
-
|
|
87
|
-
- Updated dependencies [00439a2]
|
|
88
|
-
- @knocklabs/client@0.14.2
|
|
89
|
-
|
|
90
|
-
## 0.6.1
|
|
91
|
-
|
|
92
|
-
### Patch Changes
|
|
93
|
-
|
|
94
|
-
- Updated dependencies [4c41841]
|
|
95
|
-
- @knocklabs/client@0.14.1
|
|
96
|
-
|
|
97
|
-
## 0.6.0
|
|
98
|
-
|
|
99
|
-
### Minor Changes
|
|
100
|
-
|
|
101
|
-
- 711948c: feat: add guide client, hooks, provider, and components
|
|
102
|
-
|
|
103
|
-
### Patch Changes
|
|
104
|
-
|
|
105
|
-
- Updated dependencies [711948c]
|
|
106
|
-
- @knocklabs/client@0.14.0
|
|
107
|
-
|
|
108
|
-
## 0.5.2
|
|
109
|
-
|
|
110
|
-
### Patch Changes
|
|
111
|
-
|
|
112
|
-
- Updated dependencies [187abc1]
|
|
113
|
-
- @knocklabs/client@0.13.1
|
|
114
|
-
|
|
115
|
-
## 0.5.1
|
|
116
|
-
|
|
117
|
-
### Patch Changes
|
|
118
|
-
|
|
119
|
-
- Updated dependencies [4cd1b1e]
|
|
120
|
-
- @knocklabs/client@0.13.0
|
|
121
|
-
|
|
122
|
-
## 0.5.0
|
|
123
|
-
|
|
124
|
-
### Minor Changes
|
|
125
|
-
|
|
126
|
-
- 8ba5dcb: [JS] Support React 19 in React SDKs
|
|
127
|
-
|
|
128
|
-
### Patch Changes
|
|
129
|
-
|
|
130
|
-
- Updated dependencies [8ba5dcb]
|
|
131
|
-
- @knocklabs/client@0.12.0
|
|
132
|
-
|
|
133
|
-
## 0.4.2
|
|
134
|
-
|
|
135
|
-
### Patch Changes
|
|
136
|
-
|
|
137
|
-
- 226e319: Fix unnecessary refetches of first page by `useSlackChannels` and `useMsTeamsTeams` hooks
|
|
138
|
-
|
|
139
|
-
Previously, both the `useSlackChannels` and `useMsTeamsTeams` hooks would unnecessarily refetch the first page of data whenever multiple pages of data were loaded. This has been fixed.
|
|
140
|
-
|
|
141
|
-
## 0.4.1
|
|
142
|
-
|
|
143
|
-
### Patch Changes
|
|
144
|
-
|
|
145
|
-
- 1b86a0c: fix: correct pagination logic in useSlackChannels hook (KNO-7995)
|
|
146
|
-
|
|
147
|
-
## 0.4.0
|
|
148
|
-
|
|
149
|
-
### Minor Changes
|
|
150
|
-
|
|
151
|
-
- 7904b65: Remove `slackSearchbarMultipleChannels` from translations strings
|
|
152
|
-
|
|
153
|
-
## 0.3.4
|
|
154
|
-
|
|
155
|
-
### Patch Changes
|
|
156
|
-
|
|
157
|
-
- Updated dependencies [8ea25f4]
|
|
158
|
-
- @knocklabs/client@0.11.4
|
|
159
|
-
|
|
160
|
-
## 0.3.3
|
|
161
|
-
|
|
162
|
-
### Patch Changes
|
|
163
|
-
|
|
164
|
-
- 12bc993: Use SWR in `useConnectedSlackChannels` hook
|
|
165
|
-
|
|
166
|
-
`useConnectedSlackChannels` now uses [SWR](https://swr.vercel.app/) under the hood. The returned array of connections (`data`) will now update optimistically when `updateConnectedChannels` is called.
|
|
167
|
-
|
|
168
|
-
- Updated dependencies [4f76cd6]
|
|
169
|
-
- @knocklabs/client@0.11.3
|
|
170
|
-
|
|
171
|
-
## 0.3.2
|
|
172
|
-
|
|
173
|
-
### Patch Changes
|
|
174
|
-
|
|
175
|
-
- 85418a0: rename constants.ts to interfaces.ts
|
|
176
|
-
- 8cc9338: Fix types in useConnectedSlackChannels.ts
|
|
177
|
-
- da84a75: deprecate tenant in favor of tenantId in KnockSlackProvider and useKnockSlackClient
|
|
178
|
-
- 2161d3f: Use SWR for data fetching in useConnectedMsTeamsChannels hook
|
|
179
|
-
- 1ba1393: add TeamsKit hooks for teams and channels
|
|
180
|
-
- Updated dependencies [2161d3f]
|
|
181
|
-
- Updated dependencies [2161d3f]
|
|
182
|
-
- Updated dependencies [1ba1393]
|
|
183
|
-
- Updated dependencies [b4b5c02]
|
|
184
|
-
- @knocklabs/client@0.11.2
|
|
185
|
-
|
|
186
|
-
## 0.3.1
|
|
187
|
-
|
|
188
|
-
### Patch Changes
|
|
189
|
-
|
|
190
|
-
- b9f6712: fix: types for userId should handle undefined and null
|
|
191
|
-
- Updated dependencies [b9f6712]
|
|
192
|
-
- @knocklabs/client@0.11.1
|
|
193
|
-
|
|
194
|
-
## 0.3.0
|
|
195
|
-
|
|
196
|
-
### Minor Changes
|
|
197
|
-
|
|
198
|
-
- 013ad8d: feat: add MsTeamsAuthButton
|
|
199
|
-
|
|
200
|
-
### Patch Changes
|
|
201
|
-
|
|
202
|
-
- Updated dependencies [013ad8d]
|
|
203
|
-
- @knocklabs/client@0.11.0
|
|
204
|
-
|
|
205
|
-
## 0.2.29
|
|
206
|
-
|
|
207
|
-
### Patch Changes
|
|
208
|
-
|
|
209
|
-
- Updated dependencies [26db496]
|
|
210
|
-
- Updated dependencies [988aaf9]
|
|
211
|
-
- @knocklabs/client@0.10.17
|
|
212
|
-
|
|
213
|
-
## 0.2.28
|
|
214
|
-
|
|
215
|
-
### Patch Changes
|
|
216
|
-
|
|
217
|
-
- Updated dependencies [bc99374]
|
|
218
|
-
- @knocklabs/client@0.10.16
|
|
219
|
-
|
|
220
|
-
## 0.2.27
|
|
221
|
-
|
|
222
|
-
### Patch Changes
|
|
223
|
-
|
|
224
|
-
- Updated dependencies [26166e3]
|
|
225
|
-
- @knocklabs/client@0.10.15
|
|
226
|
-
|
|
227
|
-
## 0.2.26
|
|
228
|
-
|
|
229
|
-
### Patch Changes
|
|
230
|
-
|
|
231
|
-
- Updated dependencies [7510909]
|
|
232
|
-
- @knocklabs/client@0.10.14
|
|
233
|
-
|
|
234
|
-
## 0.2.25
|
|
235
|
-
|
|
236
|
-
### Patch Changes
|
|
237
|
-
|
|
238
|
-
- 47a88da: feature: allow passing additional OAuth scope to SlackAuthButton
|
|
239
|
-
|
|
240
|
-
## 0.2.24
|
|
241
|
-
|
|
242
|
-
### Patch Changes
|
|
243
|
-
|
|
244
|
-
- 1d440f7: feat: add prebuilt In App Feed Components for React Native
|
|
245
|
-
- Updated dependencies [1d440f7]
|
|
246
|
-
- @knocklabs/client@0.10.13
|
|
247
|
-
|
|
248
|
-
## 0.2.23
|
|
249
|
-
|
|
250
|
-
### Patch Changes
|
|
251
|
-
|
|
252
|
-
- Updated dependencies [5545f9e]
|
|
253
|
-
- @knocklabs/client@0.10.12
|
|
254
|
-
|
|
255
|
-
## 0.2.22
|
|
256
|
-
|
|
257
|
-
### Patch Changes
|
|
258
|
-
|
|
259
|
-
- Updated dependencies [395f0ca]
|
|
260
|
-
- @knocklabs/client@0.10.11
|
|
261
|
-
|
|
262
|
-
## 0.2.21
|
|
263
|
-
|
|
264
|
-
### Patch Changes
|
|
265
|
-
|
|
266
|
-
- a4d520c: chore: update generic types
|
|
267
|
-
- Updated dependencies [a4d520c]
|
|
268
|
-
- @knocklabs/client@0.10.10
|
|
269
|
-
|
|
270
|
-
## 0.2.20
|
|
271
|
-
|
|
272
|
-
### Patch Changes
|
|
273
|
-
|
|
274
|
-
- Updated dependencies [d0adb14]
|
|
275
|
-
- @knocklabs/client@0.10.9
|
|
276
|
-
|
|
277
|
-
## 0.2.19
|
|
278
|
-
|
|
279
|
-
### Patch Changes
|
|
280
|
-
|
|
281
|
-
- 1e60c19: fix: re-introduce subscribe/setstate call for useNotifications
|
|
282
|
-
|
|
283
|
-
## 0.2.18
|
|
284
|
-
|
|
285
|
-
### Patch Changes
|
|
286
|
-
|
|
287
|
-
- 29e3942: fix: introduce new useNotificationStore hook to prevent issues that prevent state updates
|
|
288
|
-
- Updated dependencies [29e3942]
|
|
289
|
-
- @knocklabs/client@0.10.8
|
|
290
|
-
|
|
291
|
-
## 0.2.17
|
|
292
|
-
|
|
293
|
-
### Patch Changes
|
|
294
|
-
|
|
295
|
-
- f25b112: fix: ensure feed store reference re-renders after changes to user
|
|
296
|
-
- Updated dependencies [f25b112]
|
|
297
|
-
- @knocklabs/client@0.10.7
|
|
298
|
-
|
|
299
|
-
## 0.2.16
|
|
300
|
-
|
|
301
|
-
### Patch Changes
|
|
302
|
-
|
|
303
|
-
- 5d2ddab: fix: ensure options are memoized in useAuthenticatedKnockClient
|
|
304
|
-
|
|
305
|
-
## 0.2.15
|
|
306
|
-
|
|
307
|
-
### Patch Changes
|
|
308
|
-
|
|
309
|
-
- b29a47a: Add KnockExpoPushNotificationProvider to react-native sdk
|
|
310
|
-
- Updated dependencies [b29a47a]
|
|
311
|
-
- @knocklabs/client@0.10.6
|
|
312
|
-
|
|
313
|
-
## 0.2.14
|
|
314
|
-
|
|
315
|
-
### Patch Changes
|
|
316
|
-
|
|
317
|
-
- 5fe3063: Fixes issue where notification data was not updating in react strict mode
|
|
318
|
-
|
|
319
|
-
## 0.2.13
|
|
320
|
-
|
|
321
|
-
### Patch Changes
|
|
322
|
-
|
|
323
|
-
- Updated dependencies [044eb0f]
|
|
324
|
-
- @knocklabs/client@0.10.5
|
|
325
|
-
|
|
326
|
-
## 0.2.12
|
|
327
|
-
|
|
328
|
-
### Patch Changes
|
|
329
|
-
|
|
330
|
-
- Updated dependencies [5a7c56e]
|
|
331
|
-
- @knocklabs/client@0.10.4
|
|
332
|
-
|
|
333
|
-
## 0.2.11
|
|
334
|
-
|
|
335
|
-
### Patch Changes
|
|
336
|
-
|
|
337
|
-
- Updated dependencies [a71ce51]
|
|
338
|
-
- @knocklabs/client@0.10.3
|
|
339
|
-
|
|
340
|
-
## 0.2.10
|
|
341
|
-
|
|
342
|
-
### Patch Changes
|
|
343
|
-
|
|
344
|
-
- 42ba22c: fix: improve typing for react < 18
|
|
345
|
-
- Updated dependencies [42ba22c]
|
|
346
|
-
- @knocklabs/client@0.10.2
|
|
347
|
-
|
|
348
|
-
## 0.2.9
|
|
349
|
-
|
|
350
|
-
### Patch Changes
|
|
351
|
-
|
|
352
|
-
- 354dd1a: fix: move away from jsx runtime to support react 16 + 17
|
|
353
|
-
|
|
354
|
-
## 0.2.8
|
|
355
|
-
|
|
356
|
-
### Patch Changes
|
|
357
|
-
|
|
358
|
-
- 3c277cb: fix: remove react-query and replace with swr for react 16+ support
|
|
359
|
-
- Updated dependencies [3c277cb]
|
|
360
|
-
- Updated dependencies [567e24f]
|
|
361
|
-
- @knocklabs/client@0.10.1
|
|
362
|
-
|
|
363
|
-
## 0.2.7
|
|
364
|
-
|
|
365
|
-
### Patch Changes
|
|
366
|
-
|
|
367
|
-
- Updated dependencies [8bdc75b]
|
|
368
|
-
- @knocklabs/client@0.10.0
|
|
369
|
-
|
|
370
|
-
## 0.2.6
|
|
371
|
-
|
|
372
|
-
### Patch Changes
|
|
373
|
-
|
|
374
|
-
- Updated dependencies [f58371c]
|
|
375
|
-
- @knocklabs/client@0.9.4
|
|
376
|
-
|
|
377
|
-
## 0.2.5
|
|
378
|
-
|
|
379
|
-
### Patch Changes
|
|
380
|
-
|
|
381
|
-
- 10b5646: Include src files for react-core
|
|
382
|
-
|
|
383
|
-
## 0.2.4
|
|
384
|
-
|
|
385
|
-
### Patch Changes
|
|
386
|
-
|
|
387
|
-
- bc69618: Add react-native to package.json files to fix a bug in our React Native SDK
|
|
388
|
-
- Updated dependencies [bc69618]
|
|
389
|
-
- @knocklabs/client@0.9.3
|
|
390
|
-
|
|
391
|
-
## 0.2.3
|
|
392
|
-
|
|
393
|
-
### Patch Changes
|
|
394
|
-
|
|
395
|
-
- Updated dependencies [fed0f8c]
|
|
396
|
-
- @knocklabs/client@0.9.2
|
|
397
|
-
|
|
398
|
-
## 0.2.2
|
|
399
|
-
|
|
400
|
-
### Patch Changes
|
|
401
|
-
|
|
402
|
-
- 282d005: Handle auth disconnected status.
|
|
403
|
-
|
|
404
|
-
## 0.2.1
|
|
405
|
-
|
|
406
|
-
### Patch Changes
|
|
407
|
-
|
|
408
|
-
- Updated dependencies [f37d680]
|
|
409
|
-
- @knocklabs/client@0.9.1
|
|
410
|
-
|
|
411
|
-
## 0.2.0
|
|
412
|
-
|
|
413
|
-
### Minor Changes
|
|
414
|
-
|
|
415
|
-
- 627e643: Add SlackKit components, hooks, client JS functions, and example apps.
|
|
416
|
-
|
|
417
|
-
### Patch Changes
|
|
418
|
-
|
|
419
|
-
- e076109: Fix hover state for connect button.
|
|
420
|
-
- Updated dependencies [627e643]
|
|
421
|
-
- @knocklabs/client@0.9.0
|
|
422
|
-
|
|
423
|
-
## 0.1.6
|
|
424
|
-
|
|
425
|
-
### Patch Changes
|
|
426
|
-
|
|
427
|
-
- c9faba5: fix esm build issues with mjs files
|
|
428
|
-
- Updated dependencies [c9faba5]
|
|
429
|
-
- @knocklabs/client@0.8.21
|
|
430
|
-
|
|
431
|
-
## 0.1.5
|
|
432
|
-
|
|
433
|
-
### Patch Changes
|
|
434
|
-
|
|
435
|
-
- Re-releasing packages
|
|
436
|
-
- Updated dependencies
|
|
437
|
-
- @knocklabs/client@0.8.20
|
|
438
|
-
|
|
439
|
-
## 0.1.4
|
|
440
|
-
|
|
441
|
-
### Patch Changes
|
|
442
|
-
|
|
443
|
-
- 7786ec5: chore: upgrade to yarn modern and update local package references
|
|
444
|
-
- 9dd0d15: feat: add onUserTokenExpiring callback option to client
|
|
445
|
-
- Updated dependencies [7786ec5]
|
|
446
|
-
- Updated dependencies [9dd0d15]
|
|
447
|
-
- @knocklabs/client@0.8.19
|
|
448
|
-
|
|
449
|
-
## 0.1.3
|
|
450
|
-
|
|
451
|
-
### Patch Changes
|
|
452
|
-
|
|
453
|
-
- 1050660: feat: switch timestamp formatting to date-fns intlFormatDistance
|
|
454
|
-
- Updated dependencies [e53c200]
|
|
455
|
-
- Updated dependencies [d4ba1f2]
|
|
456
|
-
- @knocklabs/client@0.8.18
|
|
457
|
-
|
|
458
|
-
## 0.1.2
|
|
459
|
-
|
|
460
|
-
### Patch Changes
|
|
461
|
-
|
|
462
|
-
- 8988230: Fix esm exports and date-fns/locale imports
|
|
463
|
-
- 8315372: Fix cjs build output for React components
|
|
464
|
-
|
|
465
|
-
## 0.1.1
|
|
466
|
-
|
|
467
|
-
### Patch Changes
|
|
468
|
-
|
|
469
|
-
- d8a216e: fix: react-core build process
|
|
470
|
-
fix: remove headless prop from KnockFeedProvider
|
|
471
|
-
fix: move KnockFeedContainer from react-core to react and rename to NotificationFeedContainer
|
|
472
|
-
|
|
473
|
-
## 0.1.0
|
|
474
|
-
|
|
475
|
-
### Patch Changes
|
|
476
|
-
|
|
477
|
-
- bcdbc86: Initialize monorepo
|
package/dist/cjs/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./modules/core/context/KnockProvider.js"),c=require("./modules/core/hooks/useAuthenticatedKnockClient.js"),a=require("./modules/core/hooks/useStableOptions.js"),d=require("./modules/core/constants.js"),e=require("./modules/core/utils.js"),n=require("./modules/feed/context/KnockFeedProvider.js"),l=require("./modules/feed/hooks/useNotifications.js"),k=require("./modules/feed/hooks/useFeedSettings.js"),o=require("./modules/feed/hooks/useNotificationStore.js"),t=require("./modules/guide/context/KnockGuideProvider.js"),K=require("./modules/guide/hooks/useGuide.js"),r=require("./modules/ms-teams/context/KnockMsTeamsProvider.js"),C=require("./modules/ms-teams/hooks/useMsTeamsConnectionStatus.js"),S=require("./modules/ms-teams/hooks/useMsTeamsAuth.js"),m=require("./modules/ms-teams/hooks/useMsTeamsTeams.js"),q=require("./modules/ms-teams/hooks/useMsTeamsChannels.js"),v=require("./modules/ms-teams/hooks/useConnectedMsTeamsChannels.js"),i=require("./modules/slack/context/KnockSlackProvider.js"),P=require("./modules/slack/hooks/useSlackConnectionStatus.js"),T=require("./modules/slack/hooks/useSlackChannels.js"),M=require("./modules/slack/hooks/useConnectedSlackChannels.js"),f=require("./modules/slack/hooks/useSlackAuth.js"),u=require("./modules/i18n/context/KnockI18nProvider.js"),h=require("./modules/i18n/hooks/useTranslations.js"),F=require("./modules/i18n/languages/index.js");exports.KnockProvider=s.KnockProvider;exports.useKnockClient=s.useKnockClient;exports.useAuthenticatedKnockClient=c;exports.useStableOptions=a;exports.FilterStatus=d.FilterStatus;exports.feedProviderKey=e.feedProviderKey;exports.formatBadgeCount=e.formatBadgeCount;exports.formatTimestamp=e.formatTimestamp;exports.msTeamsProviderKey=e.msTeamsProviderKey;exports.renderNodeOrFallback=e.renderNodeOrFallback;exports.slackProviderKey=e.slackProviderKey;exports.toSentenceCase=e.toSentenceCase;exports.KnockFeedProvider=n.KnockFeedProvider;exports.useKnockFeed=n.useKnockFeed;exports.useNotifications=l;exports.useFeedSettings=k;exports.useCreateNotificationStore=o.useCreateNotificationStore;exports.useNotificationStore=o.default;exports.KnockGuideContext=t.KnockGuideContext;exports.KnockGuideProvider=t.KnockGuideProvider;exports.useGuide=K.useGuide;exports.KnockMsTeamsProvider=r.KnockMsTeamsProvider;exports.useKnockMsTeamsClient=r.useKnockMsTeamsClient;exports.useMsTeamsConnectionStatus=C;exports.useMsTeamsAuth=S;exports.useMsTeamsTeams=m;exports.useMsTeamsChannels=q;exports.useConnectedMsTeamsChannels=v;exports.KnockSlackProvider=i.KnockSlackProvider;exports.useKnockSlackClient=i.useKnockSlackClient;exports.useSlackConnectionStatus=P;exports.useSlackChannels=T;exports.useConnectedSlackChannels=M;exports.useSlackAuth=f;exports.I18nContext=u.I18nContext;exports.KnockI18nProvider=u.KnockI18nProvider;exports.useTranslations=h.useTranslations;exports.locales=F.locales;
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/modules/core/constants.ts"],"sourcesContent":["export enum FilterStatus {\n All = \"all\",\n Read = \"read\",\n Unseen = \"unseen\",\n Unread = \"unread\",\n}\n\nexport type ColorMode = \"light\" | \"dark\";\n"],"names":["FilterStatus","All","Read","Unseen","Unread"],"mappings":"gFAAYA,IAAAA,GAAAA,IACVC,EAAAA,IAAM,MACNC,EAAAA,KAAO,OACPC,EAAAA,OAAS,SACTC,EAAAA,OAAS,SAJCJ,IAAAA,GAAAA,CAAAA,CAAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),b=require("../../i18n/context/KnockI18nProvider.js"),K=require("../hooks/useAuthenticatedKnockClient.js");require("fast-deep-equal");function m(e){if(e&&typeof e=="object"&&"default"in e)return e;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const o=m(f),i=o.createContext(null),P=({apiKey:e,host:n,logLevel:t,userId:r,userToken:s,onUserTokenExpiring:c,timeBeforeExpirationInMs:u,children:a,i18n:l})=>{const d=o.useMemo(()=>({host:n,onUserTokenExpiring:c,timeBeforeExpirationInMs:u,logLevel:t}),[n,c,u,t]),k=K(e??"",r,s,d);return o.createElement(i.Provider,{value:{knock:k}},o.createElement(b.KnockI18nProvider,{i18n:l},a))},p=()=>{const e=o.useContext(i);if(!e)throw new Error("useKnockClient must be used within a KnockProvider");return e.knock};exports.KnockProvider=P;exports.useKnockClient=p;
|
|
2
|
-
//# sourceMappingURL=KnockProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KnockProvider.js","sources":["../../../../../src/modules/core/context/KnockProvider.tsx"],"sourcesContent":["import Knock, { AuthenticateOptions, LogLevel } from \"@knocklabs/client\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\n\nimport { I18nContent, KnockI18nProvider } from \"../../i18n\";\nimport { useAuthenticatedKnockClient } from \"../hooks\";\n\nexport interface KnockProviderState {\n knock: Knock;\n}\n\nconst KnockContext = React.createContext<KnockProviderState | null>(null);\n\nexport interface KnockProviderProps {\n // Knock client props\n apiKey: string | undefined;\n host?: string;\n // Authentication props\n userId: Knock[\"userId\"];\n userToken?: Knock[\"userToken\"];\n onUserTokenExpiring?: AuthenticateOptions[\"onUserTokenExpiring\"];\n timeBeforeExpirationInMs?: AuthenticateOptions[\"timeBeforeExpirationInMs\"];\n // i18n translations\n i18n?: I18nContent;\n logLevel?: LogLevel;\n}\n\nexport const KnockProvider: React.FC<PropsWithChildren<KnockProviderProps>> = ({\n apiKey,\n host,\n logLevel,\n userId,\n userToken,\n onUserTokenExpiring,\n timeBeforeExpirationInMs,\n children,\n i18n,\n}) => {\n // We memoize the options here so that we don't create a new object on every re-render\n const authenticateOptions = React.useMemo(\n () => ({\n host,\n onUserTokenExpiring,\n timeBeforeExpirationInMs,\n logLevel,\n }),\n [host, onUserTokenExpiring, timeBeforeExpirationInMs, logLevel],\n );\n\n const knock = useAuthenticatedKnockClient(\n apiKey ?? \"\",\n userId,\n userToken,\n authenticateOptions,\n );\n\n return (\n <KnockContext.Provider value={{ knock }}>\n <KnockI18nProvider i18n={i18n}>{children}</KnockI18nProvider>\n </KnockContext.Provider>\n );\n};\n\nexport const useKnockClient = (): Knock => {\n const context = React.useContext(KnockContext);\n if (!context) {\n throw new Error(\"useKnockClient must be used within a KnockProvider\");\n }\n return context.knock;\n};\n"],"names":["KnockContext","React","createContext","KnockProvider","apiKey","host","logLevel","userId","userToken","onUserTokenExpiring","timeBeforeExpirationInMs","children","i18n","authenticateOptions","useMemo","knock","useAuthenticatedKnockClient","KnockI18nProvider","useKnockClient","context","useContext","Error"],"mappings":"yjBAWMA,EAAeC,EAAMC,cAAyC,IAAI,EAgB3DC,EAAiEA,CAAC,CAC7EC,OAAAA,EACAC,KAAAA,EACAC,SAAAA,EACAC,OAAAA,EACAC,UAAAA,EACAC,oBAAAA,EACAC,yBAAAA,EACAC,SAAAA,EACAC,KAAAA,CACF,IAAM,CAEEC,MAAAA,EAAsBZ,EAAMa,QAChC,KAAO,CACLT,KAAAA,EACAI,oBAAAA,EACAC,yBAAAA,EACAJ,SAAAA,IAEF,CAACD,EAAMI,EAAqBC,EAA0BJ,CAAQ,CAChE,EAEMS,EAAQC,EACZZ,GAAU,GACVG,EACAC,EACAK,CACF,EAEA,OACGZ,EAAA,cAAAD,EAAa,SAAb,CAAsB,MAAO,CAAEe,MAAAA,CAAAA,CAC9B,EAAAd,EAAA,cAACgB,EAAAA,kBAAkB,CAAA,KAAAL,CAAA,EAAaD,CAAS,CAC3C,CAEJ,EAEaO,EAAiBA,IAAa,CACnCC,MAAAA,EAAUlB,EAAMmB,WAAWpB,CAAY,EAC7C,GAAI,CAACmB,EACG,MAAA,IAAIE,MAAM,oDAAoD,EAEtE,OAAOF,EAAQJ,KACjB"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const s=require("@knocklabs/client"),d=require("react");require("../context/KnockProvider.js");const k=require("./useStableOptions.js");require("date-fns");const l=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},h=l(s),o=l(d);function f(e,r,c,t={}){e.authenticate(r,c,{onUserTokenExpiring:t==null?void 0:t.onUserTokenExpiring,timeBeforeExpirationInMs:t==null?void 0:t.timeBeforeExpirationInMs})}function q(e,r,c,t={}){const a=o.default.useRef(),u=k(t);return o.default.useMemo(()=>{const n=a.current;if(n&&n.isAuthenticated()&&(n.userId!==r||n.userToken!==c))return f(n,r,c,u),n;n&&n.teardown();const i=new h.default(e,{host:u.host,logLevel:u.logLevel});return f(i,r,c,u),a.current=i,i},[e,r,c,u])}module.exports=q;
|
|
2
|
-
//# sourceMappingURL=useAuthenticatedKnockClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthenticatedKnockClient.js","sources":["../../../../../src/modules/core/hooks/useAuthenticatedKnockClient.ts"],"sourcesContent":["import Knock, { AuthenticateOptions, KnockOptions } from \"@knocklabs/client\";\nimport React from \"react\";\n\nimport { useStableOptions } from \"../../core\";\n\nfunction authenticateWithOptions(\n knock: Knock,\n userId: Knock[\"userId\"],\n userToken?: Knock[\"userToken\"],\n options: AuthenticateOptions = {},\n) {\n knock.authenticate(userId, userToken, {\n onUserTokenExpiring: options?.onUserTokenExpiring,\n timeBeforeExpirationInMs: options?.timeBeforeExpirationInMs,\n });\n}\n\nexport type AuthenticatedKnockClientOptions = KnockOptions &\n AuthenticateOptions;\n\nfunction useAuthenticatedKnockClient(\n apiKey: string,\n userId: Knock[\"userId\"],\n userToken?: Knock[\"userToken\"],\n options: AuthenticatedKnockClientOptions = {},\n) {\n const knockRef = React.useRef<Knock | undefined>();\n const stableOptions = useStableOptions(options);\n\n return React.useMemo(() => {\n const currentKnock = knockRef.current;\n\n // If the userId and the userToken changes then just reauth\n if (\n currentKnock &&\n currentKnock.isAuthenticated() &&\n (currentKnock.userId !== userId || currentKnock.userToken !== userToken)\n ) {\n authenticateWithOptions(currentKnock, userId, userToken, stableOptions);\n return currentKnock;\n }\n\n if (currentKnock) {\n currentKnock.teardown();\n }\n\n // Otherwise instantiate a new Knock client\n const knock = new Knock(apiKey, {\n host: stableOptions.host,\n logLevel: stableOptions.logLevel,\n });\n\n authenticateWithOptions(knock, userId, userToken, stableOptions);\n knockRef.current = knock;\n\n return knock;\n }, [apiKey, userId, userToken, stableOptions]);\n}\n\nexport default useAuthenticatedKnockClient;\n"],"names":["authenticateWithOptions","knock","userId","userToken","options","authenticate","onUserTokenExpiring","timeBeforeExpirationInMs","useAuthenticatedKnockClient","apiKey","knockRef","React","useRef","stableOptions","useStableOptions","useMemo","currentKnock","current","isAuthenticated","teardown","Knock","host","logLevel"],"mappings":"qPAKA,SAASA,EACPC,EACAC,EACAC,EACAC,EAA+B,CAAA,EAC/B,CACMC,EAAAA,aAAaH,EAAQC,EAAW,CACpCG,oBAAqBF,GAAAA,YAAAA,EAASE,oBAC9BC,yBAA0BH,GAAAA,YAAAA,EAASG,wBAAAA,CACpC,CACH,CAKA,SAASC,EACPC,EACAP,EACAC,EACAC,EAA2C,CAAA,EAC3C,CACMM,MAAAA,EAAWC,UAAMC,OAA0B,EAC3CC,EAAgBC,EAAiBV,CAAO,EAEvCO,OAAAA,EAAAA,QAAMI,QAAQ,IAAM,CACzB,MAAMC,EAAeN,EAASO,QAI5BD,GAAAA,GACAA,EAAaE,gBAAgB,IAC5BF,EAAad,SAAWA,GAAUc,EAAab,YAAcA,GAEtCa,OAAAA,EAAAA,EAAcd,EAAQC,EAAWU,CAAa,EAC/DG,EAGLA,GACFA,EAAaG,SAAS,EAIlBlB,MAAAA,EAAQ,IAAImB,EAAAA,QAAMX,EAAQ,CAC9BY,KAAMR,EAAcQ,KACpBC,SAAUT,EAAcS,QAAAA,CACzB,EAEuBrB,OAAAA,EAAAA,EAAOC,EAAQC,EAAWU,CAAa,EAC/DH,EAASO,QAAUhB,EAEZA,GACN,CAACQ,EAAQP,EAAQC,EAAWU,CAAa,CAAC,CAC/C"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const n=require("fast-deep-equal"),r=require("react"),s=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},c=s(n);function a(t){const u=r.useRef();return r.useMemo(()=>{const e=u.current;return e&&c.default(t,e)?e:(u.current=t,t)},[t])}module.exports=a;
|
|
2
|
-
//# sourceMappingURL=useStableOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useStableOptions.js","sources":["../../../../../src/modules/core/hooks/useStableOptions.ts"],"sourcesContent":["import fastDeepEqual from \"fast-deep-equal\";\nimport { useMemo, useRef } from \"react\";\n\nexport default function useStableOptions<T>(options: T): T {\n const optionsRef = useRef<T>();\n\n return useMemo(() => {\n const currentOptions = optionsRef.current;\n\n if (currentOptions && fastDeepEqual(options, currentOptions)) {\n return currentOptions;\n }\n\n optionsRef.current = options;\n return options;\n }, [options]);\n}\n"],"names":["useStableOptions","options","optionsRef","useRef","useMemo","currentOptions","current","fastDeepEqual"],"mappings":"kIAGA,SAAwBA,EAAoBC,EAAe,CACzD,MAAMC,EAAaC,EAAAA,OAAU,EAE7B,OAAOC,UAAQ,IAAM,CACnB,MAAMC,EAAiBH,EAAWI,QAElC,OAAID,GAAkBE,EAAAA,QAAcN,EAASI,CAAc,EAClDA,GAGTH,EAAWI,QAAUL,EACdA,EAAAA,EACN,CAACA,CAAO,CAAC,CACd"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("date-fns");function i(e){return e>9?"9+":e}function c(e,t={}){try{const r=o.parseISO(e);return o.intlFormatDistance(r,new Date,{locale:t.locale})}catch{return e}}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}function l(e,t){return e!==void 0?e:t}function u(e,t,r={}){return[e,t,r.source,r.tenant,r.has_tenant,r.archived].filter(n=>n!=null).join("-")}function s({knockSlackChannelId:e,tenantId:t,connectionStatus:r,errorLabel:n}){return[e,t,r,n].filter(a=>a!=null).join("-")}function f({knockMsTeamsChannelId:e,tenantId:t,connectionStatus:r,errorLabel:n}){return[e,t,r,n].filter(a=>a!=null).join("-")}exports.feedProviderKey=u;exports.formatBadgeCount=i;exports.formatTimestamp=c;exports.msTeamsProviderKey=f;exports.renderNodeOrFallback=l;exports.slackProviderKey=s;exports.toSentenceCase=d;
|
|
2
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/modules/core/utils.ts"],"sourcesContent":["import Knock, { FeedClientOptions } from \"@knocklabs/client\";\nimport { intlFormatDistance, parseISO } from \"date-fns\";\nimport { ReactNode } from \"react\";\n\nexport function formatBadgeCount(count: number): string | number {\n return count > 9 ? \"9+\" : count;\n}\n\ntype FormatTimestampOptions = {\n locale?: string | string[];\n};\n\nexport function formatTimestamp(\n ts: string,\n options: FormatTimestampOptions = {},\n) {\n try {\n const parsedTs = parseISO(ts);\n const formatted = intlFormatDistance(parsedTs, new Date(), {\n locale: options.locale,\n });\n\n return formatted;\n } catch (_e) {\n return ts;\n }\n}\n\nexport function toSentenceCase(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function renderNodeOrFallback(node: ReactNode, fallback: ReactNode) {\n return node !== undefined ? node : fallback;\n}\n\n/*\n Used to build a consistent key for the KnockFeedProvider so that React knows when\n to trigger a re-render of the context when a key property changes.\n*/\nexport function feedProviderKey(\n userId: Knock[\"userId\"],\n feedId: string,\n options: FeedClientOptions = {},\n) {\n return [\n userId,\n feedId,\n options.source,\n options.tenant,\n options.has_tenant,\n options.archived,\n ]\n .filter((f) => f !== null && f !== undefined)\n .join(\"-\");\n}\n\n/*\n Used to build a consistent key for the KnockSlackProvider so that React knows when\n to trigger a re-render of the context when a key property changes.\n*/\nexport function slackProviderKey({\n knockSlackChannelId,\n tenantId,\n connectionStatus,\n errorLabel,\n}: {\n knockSlackChannelId: string;\n tenantId: string;\n connectionStatus: string;\n errorLabel: string | null;\n}) {\n return [knockSlackChannelId, tenantId, connectionStatus, errorLabel]\n .filter((f) => f !== null && f !== undefined)\n .join(\"-\");\n}\n\n/*\n Used to build a consistent key for the KnockMsTeamsProvider so that React knows when\n to trigger a re-render of the context when a key property changes.\n*/\nexport function msTeamsProviderKey({\n knockMsTeamsChannelId,\n tenantId,\n connectionStatus,\n errorLabel,\n}: {\n knockMsTeamsChannelId: string;\n tenantId: string;\n connectionStatus: string;\n errorLabel: string | null;\n}) {\n return [knockMsTeamsChannelId, tenantId, connectionStatus, errorLabel]\n .filter((f) => f !== null && f !== undefined)\n .join(\"-\");\n}\n"],"names":["formatBadgeCount","count","formatTimestamp","ts","options","parsedTs","parseISO","formatted","intlFormatDistance","Date","locale","toSentenceCase","string","charAt","toUpperCase","slice","renderNodeOrFallback","node","fallback","undefined","feedProviderKey","userId","feedId","source","tenant","has_tenant","archived","filter","f","join","slackProviderKey","knockSlackChannelId","tenantId","connectionStatus","errorLabel","msTeamsProviderKey","knockMsTeamsChannelId"],"mappings":"4GAIO,SAASA,EAAiBC,EAAgC,CACxDA,OAAAA,EAAQ,EAAI,KAAOA,CAC5B,CAMO,SAASC,EACdC,EACAC,EAAkC,GAClC,CACI,GAAA,CACIC,MAAAA,EAAWC,WAASH,CAAE,EAKrBI,OAJWC,EAAAA,mBAAmBH,EAAU,IAAII,KAAQ,CACzDC,OAAQN,EAAQM,MAAAA,CACjB,OAGU,CACJP,OAAAA,CAAAA,CAEX,CAEO,SAASQ,EAAeC,EAAwB,CAC9CA,OAAAA,EAAOC,OAAO,CAAC,EAAEC,cAAgBF,EAAOG,MAAM,CAAC,CACxD,CAEgBC,SAAAA,EAAqBC,EAAiBC,EAAqB,CAClED,OAAAA,IAASE,OAAYF,EAAOC,CACrC,CAMO,SAASE,EACdC,EACAC,EACAlB,EAA6B,CAAA,EAC7B,CACO,MAAA,CACLiB,EACAC,EACAlB,EAAQmB,OACRnB,EAAQoB,OACRpB,EAAQqB,WACRrB,EAAQsB,QAAQ,EAEfC,UAAcC,GAAM,IAAuB,EAC3CC,KAAK,GAAG,CACb,CAMO,SAASC,EAAiB,CAC/BC,oBAAAA,EACAC,SAAAA,EACAC,iBAAAA,EACAC,WAAAA,CAMF,EAAG,CACD,MAAO,CAACH,EAAqBC,EAAUC,EAAkBC,CAAU,EAChEP,OAAcC,GAAAA,GAAM,IAAuB,EAC3CC,KAAK,GAAG,CACb,CAMO,SAASM,EAAmB,CACjCC,sBAAAA,EACAJ,SAAAA,EACAC,iBAAAA,EACAC,WAAAA,CAMF,EAAG,CACD,MAAO,CAACE,EAAuBJ,EAAUC,EAAkBC,CAAU,EAClEP,OAAcC,GAAAA,GAAM,IAAuB,EAC3CC,KAAK,GAAG,CACb"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),a=require("../../core/context/KnockProvider.js");require("@knocklabs/client");require("fast-deep-equal");const l=require("../../core/utils.js"),f=require("../hooks/useNotifications.js"),k=require("../hooks/useNotificationStore.js");function v(e){if(e&&typeof e=="object"&&"default"in e)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const c=v(d),u=c.createContext(void 0),K=({feedId:e,children:r,defaultFeedOptions:t={},colorMode:o="light"})=>{let n;try{n=a.useKnockClient()}catch{throw new Error("KnockFeedProvider must be used within a KnockProvider.")}const i=f(n,e??"",t),s=k.useCreateNotificationStore(i);return c.createElement(u.Provider,{key:l.feedProviderKey(n.userId,e??"",t),value:{knock:n,feedClient:i,useFeedStore:s,colorMode:o}},r)},b=()=>{const e=c.useContext(u);if(!e)throw new Error("useKnockFeed must be used within a KnockFeedProvider");return e};exports.KnockFeedProvider=K;exports.useKnockFeed=b;
|
|
2
|
-
//# sourceMappingURL=KnockFeedProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KnockFeedProvider.js","sources":["../../../../../src/modules/feed/context/KnockFeedProvider.tsx"],"sourcesContent":["import Knock, {\n Feed,\n FeedClientOptions,\n FeedStoreState,\n} from \"@knocklabs/client\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport type { StoreApi, UseBoundStore } from \"zustand\";\n\nimport { useKnockClient } from \"../../core\";\nimport { ColorMode } from \"../../core/constants\";\nimport { feedProviderKey } from \"../../core/utils\";\nimport { useCreateNotificationStore } from \"../hooks\";\nimport useNotifications from \"../hooks/useNotifications\";\n\nexport interface KnockFeedProviderState {\n knock: Knock;\n feedClient: Feed;\n useFeedStore: UseBoundStore<StoreApi<FeedStoreState>>;\n colorMode: ColorMode;\n}\n\nconst KnockFeedContext = React.createContext<\n KnockFeedProviderState | undefined\n>(undefined);\n\nexport interface KnockFeedProviderProps {\n // Feed props\n feedId: string | undefined;\n\n // Extra options\n colorMode?: ColorMode;\n\n // Feed client options\n defaultFeedOptions?: FeedClientOptions;\n}\n\nexport const KnockFeedProvider: React.FC<\n PropsWithChildren<KnockFeedProviderProps>\n> = ({ feedId, children, defaultFeedOptions = {}, colorMode = \"light\" }) => {\n let knock: Knock;\n try {\n knock = useKnockClient();\n } catch (_) {\n throw new Error(\"KnockFeedProvider must be used within a KnockProvider.\");\n }\n\n const feedClient = useNotifications(knock, feedId ?? \"\", defaultFeedOptions);\n const useFeedStore = useCreateNotificationStore(feedClient);\n\n return (\n <KnockFeedContext.Provider\n key={feedProviderKey(knock.userId, feedId ?? \"\", defaultFeedOptions)}\n value={{\n knock,\n feedClient,\n useFeedStore,\n colorMode,\n }}\n >\n {children}\n </KnockFeedContext.Provider>\n );\n};\n\nexport const useKnockFeed = (): KnockFeedProviderState => {\n const context = React.useContext(KnockFeedContext);\n if (!context) {\n throw new Error(\"useKnockFeed must be used within a KnockFeedProvider\");\n }\n\n return context;\n};\n"],"names":["KnockFeedContext","React","createContext","undefined","KnockFeedProvider","feedId","children","defaultFeedOptions","colorMode","knock","useKnockClient","Error","feedClient","useNotifications","useFeedStore","useCreateNotificationStore","feedProviderKey","userId","useKnockFeed","context","useContext"],"mappings":"4pBAsBMA,EAAmBC,EAAMC,cAE7BC,MAAS,EAaEC,EAETA,CAAC,CAAEC,OAAAA,EAAQC,SAAAA,EAAUC,mBAAAA,EAAqB,CAAC,EAAGC,UAAAA,EAAY,OAAQ,IAAM,CACtEC,IAAAA,EACA,GAAA,CACFA,EAAQC,EAAAA,eAAe,OACb,CACJ,MAAA,IAAIC,MAAM,wDAAwD,CAAA,CAG1E,MAAMC,EAAaC,EAAiBJ,EAAOJ,GAAU,GAAIE,CAAkB,EACrEO,EAAeC,6BAA2BH,CAAU,EAE1D,OACGX,EAAA,cAAAD,EAAiB,SAAjB,CACC,IAAKgB,EAAAA,gBAAgBP,EAAMQ,OAAQZ,GAAU,GAAIE,CAAkB,EACnE,MAAO,CACLE,MAAAA,EACAG,WAAAA,EACAE,aAAAA,EACAN,UAAAA,IAGDF,CACH,CAEJ,EAEaY,EAAeA,IAA8B,CAClDC,MAAAA,EAAUlB,EAAMmB,WAAWpB,CAAgB,EACjD,GAAI,CAACmB,EACG,MAAA,IAAIR,MAAM,sDAAsD,EAGjEQ,OAAAA,CACT"}
|