@knocklabs/react-core 0.6.14-canary.0 → 0.6.14
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/CHANGELOG.md +28 -0
- package/package.json +2 -2
- 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 -34
- 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
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
const n = {
|
|
2
|
-
translations: {
|
|
3
|
-
archiveNotification: "Archive this notification",
|
|
4
|
-
archiveRead: "Archive Read",
|
|
5
|
-
markAllAsRead: "Mark all as read",
|
|
6
|
-
notifications: "Notifications",
|
|
7
|
-
emptyFeedTitle: "No notifications yet",
|
|
8
|
-
emptyFeedBody: "We'll let you know when we've got something new for you.",
|
|
9
|
-
all: "All",
|
|
10
|
-
unread: "Unread",
|
|
11
|
-
read: "Read",
|
|
12
|
-
unseen: "Unseen",
|
|
13
|
-
msTeamsChannelSetError: "Error setting channel.",
|
|
14
|
-
msTeamsConnect: "Connect to Microsoft Teams",
|
|
15
|
-
msTeamsConnected: "Connected",
|
|
16
|
-
msTeamsConnecting: "Connecting to Microsoft Teams…",
|
|
17
|
-
msTeamsConnectionErrorExists: "Try reconnecting to Microsoft Teams to find and select channels from your teams.",
|
|
18
|
-
msTeamsConnectionErrorOccurred: "There was an error connecting to Microsoft Teams. Try reconnecting to find and select channels from your teams.",
|
|
19
|
-
msTeamsConnectContainerDescription: "Connect to get notifications in Microsoft Teams",
|
|
20
|
-
msTeamsDisconnect: "Disconnect",
|
|
21
|
-
msTeamsDisconnecting: "Disconnecting from Microsoft Teams…",
|
|
22
|
-
msTeamsError: "Error",
|
|
23
|
-
msTeamsReconnect: "Reconnect",
|
|
24
|
-
msTeamsTenantIdNotSet: "Microsoft Teams tenant ID not set.",
|
|
25
|
-
slackConnectChannel: "Connect channel",
|
|
26
|
-
slackChannelId: "Slack channel ID",
|
|
27
|
-
slackConnecting: "Connecting to Slack...",
|
|
28
|
-
slackDisconnecting: "Disconnecting...",
|
|
29
|
-
slackConnect: "Connect to Slack",
|
|
30
|
-
slackConnected: "Connected",
|
|
31
|
-
slackConnectContainerDescription: "Connect to get notifications in your Slack workspace.",
|
|
32
|
-
slackSearchbarDisconnected: "Slack is not connected.",
|
|
33
|
-
slackSearchbarNoChannelsConnected: "Search channels",
|
|
34
|
-
slackSearchbarNoChannelsFound: "No slack channels.",
|
|
35
|
-
slackSearchbarChannelsError: "Error fetching channels.",
|
|
36
|
-
slackSearchChannels: "Search channels",
|
|
37
|
-
slackConnectionErrorExists: "Try reconnecting to Slack to find and select channels from your workspace.",
|
|
38
|
-
slackConnectionErrorOccurred: "There was an error connecting to Slack. Try reconnecting to find and select channels from your workspace.",
|
|
39
|
-
slackChannelAlreadyConnected: "Error: already connected",
|
|
40
|
-
slackError: "Error",
|
|
41
|
-
slackDisconnect: "Disconnect",
|
|
42
|
-
slackChannelSetError: "Error setting channel.",
|
|
43
|
-
slackAccessTokenNotSet: "Access token not set.",
|
|
44
|
-
slackReconnect: "Reconnect"
|
|
45
|
-
},
|
|
46
|
-
locale: "en"
|
|
47
|
-
};
|
|
48
|
-
export {
|
|
49
|
-
n as default
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=en.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"en.mjs","sources":["../../../../../src/modules/i18n/languages/en.ts"],"sourcesContent":["import { I18nContent } from \".\";\n\nconst en: I18nContent = {\n translations: {\n archiveNotification: \"Archive this notification\",\n archiveRead: \"Archive Read\",\n markAllAsRead: \"Mark all as read\",\n notifications: \"Notifications\",\n emptyFeedTitle: \"No notifications yet\",\n emptyFeedBody: \"We'll let you know when we've got something new for you.\",\n all: \"All\",\n unread: \"Unread\",\n read: \"Read\",\n unseen: \"Unseen\",\n msTeamsChannelSetError: \"Error setting channel.\",\n msTeamsConnect: \"Connect to Microsoft Teams\",\n msTeamsConnected: \"Connected\",\n msTeamsConnecting: \"Connecting to Microsoft Teams…\",\n msTeamsConnectionErrorExists:\n \"Try reconnecting to Microsoft Teams to find and select channels from your teams.\",\n msTeamsConnectionErrorOccurred:\n \"There was an error connecting to Microsoft Teams. Try reconnecting to find and select channels from your teams.\",\n msTeamsConnectContainerDescription:\n \"Connect to get notifications in Microsoft Teams\",\n msTeamsDisconnect: \"Disconnect\",\n msTeamsDisconnecting: \"Disconnecting from Microsoft Teams…\",\n msTeamsError: \"Error\",\n msTeamsReconnect: \"Reconnect\",\n msTeamsTenantIdNotSet: \"Microsoft Teams tenant ID not set.\",\n slackConnectChannel: \"Connect channel\",\n slackChannelId: \"Slack channel ID\",\n slackConnecting: \"Connecting to Slack...\",\n slackDisconnecting: \"Disconnecting...\",\n slackConnect: \"Connect to Slack\",\n slackConnected: \"Connected\",\n slackConnectContainerDescription:\n \"Connect to get notifications in your Slack workspace.\",\n slackSearchbarDisconnected: \"Slack is not connected.\",\n slackSearchbarNoChannelsConnected: \"Search channels\",\n slackSearchbarNoChannelsFound: \"No slack channels.\",\n slackSearchbarChannelsError: \"Error fetching channels.\",\n slackSearchChannels: \"Search channels\",\n slackConnectionErrorExists:\n \"Try reconnecting to Slack to find and select channels from your workspace.\",\n slackConnectionErrorOccurred:\n \"There was an error connecting to Slack. Try reconnecting to find and select channels from your workspace.\",\n slackChannelAlreadyConnected: \"Error: already connected\",\n slackError: \"Error\",\n slackDisconnect: \"Disconnect\",\n slackChannelSetError: \"Error setting channel.\",\n slackAccessTokenNotSet: \"Access token not set.\",\n slackReconnect: \"Reconnect\",\n },\n locale: \"en\",\n};\n\nexport default en;\n"],"names":["en","translations","archiveNotification","archiveRead","markAllAsRead","notifications","emptyFeedTitle","emptyFeedBody","all","unread","read","unseen","msTeamsChannelSetError","msTeamsConnect","msTeamsConnected","msTeamsConnecting","msTeamsConnectionErrorExists","msTeamsConnectionErrorOccurred","msTeamsConnectContainerDescription","msTeamsDisconnect","msTeamsDisconnecting","msTeamsError","msTeamsReconnect","msTeamsTenantIdNotSet","slackConnectChannel","slackChannelId","slackConnecting","slackDisconnecting","slackConnect","slackConnected","slackConnectContainerDescription","slackSearchbarDisconnected","slackSearchbarNoChannelsConnected","slackSearchbarNoChannelsFound","slackSearchbarChannelsError","slackSearchChannels","slackConnectionErrorExists","slackConnectionErrorOccurred","slackChannelAlreadyConnected","slackError","slackDisconnect","slackChannelSetError","slackAccessTokenNotSet","slackReconnect","locale"],"mappings":"AAEA,MAAMA,IAAkB;AAAA,EACtBC,cAAc;AAAA,IACZC,qBAAqB;AAAA,IACrBC,aAAa;AAAA,IACbC,eAAe;AAAA,IACfC,eAAe;AAAA,IACfC,gBAAgB;AAAA,IAChBC,eAAe;AAAA,IACfC,KAAK;AAAA,IACLC,QAAQ;AAAA,IACRC,MAAM;AAAA,IACNC,QAAQ;AAAA,IACRC,wBAAwB;AAAA,IACxBC,gBAAgB;AAAA,IAChBC,kBAAkB;AAAA,IAClBC,mBAAmB;AAAA,IACnBC,8BACE;AAAA,IACFC,gCACE;AAAA,IACFC,oCACE;AAAA,IACFC,mBAAmB;AAAA,IACnBC,sBAAsB;AAAA,IACtBC,cAAc;AAAA,IACdC,kBAAkB;AAAA,IAClBC,uBAAuB;AAAA,IACvBC,qBAAqB;AAAA,IACrBC,gBAAgB;AAAA,IAChBC,iBAAiB;AAAA,IACjBC,oBAAoB;AAAA,IACpBC,cAAc;AAAA,IACdC,gBAAgB;AAAA,IAChBC,kCACE;AAAA,IACFC,4BAA4B;AAAA,IAC5BC,mCAAmC;AAAA,IACnCC,+BAA+B;AAAA,IAC/BC,6BAA6B;AAAA,IAC7BC,qBAAqB;AAAA,IACrBC,4BACE;AAAA,IACFC,8BACE;AAAA,IACFC,8BAA8B;AAAA,IAC9BC,YAAY;AAAA,IACZC,iBAAiB;AAAA,IACjBC,sBAAsB;AAAA,IACtBC,wBAAwB;AAAA,IACxBC,gBAAgB;AAAA,EAClB;AAAA,EACAC,QAAQ;AACV;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../src/modules/i18n/languages/index.ts"],"sourcesContent":["import de from \"./de\";\nimport en from \"./en\";\n\nexport interface Translations {\n readonly archiveRead: string;\n readonly emptyFeedTitle: string;\n readonly emptyFeedBody: string;\n readonly notifications: string;\n readonly poweredBy: string;\n readonly markAllAsRead: string;\n readonly archiveNotification: string;\n readonly all: string;\n readonly unread: string;\n readonly read: string;\n readonly unseen: string;\n readonly msTeamsChannelSetError: string;\n readonly msTeamsConnect: string;\n readonly msTeamsConnected: string;\n readonly msTeamsConnecting: string;\n readonly msTeamsConnectionErrorExists: string;\n readonly msTeamsConnectionErrorOccurred: string;\n readonly msTeamsConnectContainerDescription: string;\n readonly msTeamsDisconnect: string;\n readonly msTeamsDisconnecting: string;\n readonly msTeamsError: string;\n readonly msTeamsReconnect: string;\n readonly msTeamsTenantIdNotSet: string;\n readonly slackConnectChannel: string;\n readonly slackChannelId: string;\n readonly slackConnecting: string;\n readonly slackDisconnecting: string;\n readonly slackConnect: string;\n readonly slackConnected: string;\n readonly slackConnectContainerDescription: string;\n readonly slackSearchbarDisconnected: string;\n readonly slackSearchbarNoChannelsConnected: string;\n readonly slackSearchbarNoChannelsFound: string;\n readonly slackSearchbarChannelsError: string;\n readonly slackSearchChannels: string;\n readonly slackConnectionErrorOccurred: string;\n readonly slackConnectionErrorExists: string;\n readonly slackChannelAlreadyConnected: string;\n readonly slackError: string;\n readonly slackDisconnect: string;\n readonly slackChannelSetError: string;\n readonly slackAccessTokenNotSet: string;\n readonly slackReconnect: string;\n}\n\nexport interface I18nContent {\n readonly translations: Partial<Translations>;\n readonly locale: string;\n}\n\nexport const locales = { en, de };\n"],"names":["locales","en","de"],"mappings":";;AAsDO,MAAMA,IAAU;AAAA,EAAEC,IAAAA;AAAAA,EAAIC,IAAAA;AAAG;"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import * as o from "react";
|
|
2
|
-
import { useKnockClient as l } from "../../core/context/KnockProvider.mjs";
|
|
3
|
-
import "@knocklabs/client";
|
|
4
|
-
import "fast-deep-equal";
|
|
5
|
-
import { msTeamsProviderKey as v } from "../../core/utils.mjs";
|
|
6
|
-
import C from "../hooks/useMsTeamsConnectionStatus.mjs";
|
|
7
|
-
import "swr/infinite";
|
|
8
|
-
import "swr";
|
|
9
|
-
import "../../i18n/context/KnockI18nProvider.mjs";
|
|
10
|
-
const n = o.createContext(null), M = ({
|
|
11
|
-
knockMsTeamsChannelId: t,
|
|
12
|
-
tenantId: e,
|
|
13
|
-
children: i
|
|
14
|
-
}) => {
|
|
15
|
-
const m = l(), {
|
|
16
|
-
connectionStatus: r,
|
|
17
|
-
setConnectionStatus: c,
|
|
18
|
-
errorLabel: s,
|
|
19
|
-
setErrorLabel: a,
|
|
20
|
-
actionLabel: u,
|
|
21
|
-
setActionLabel: p
|
|
22
|
-
} = C(m, t, e);
|
|
23
|
-
return /* @__PURE__ */ o.createElement(n.Provider, { key: v({
|
|
24
|
-
knockMsTeamsChannelId: t,
|
|
25
|
-
tenantId: e,
|
|
26
|
-
connectionStatus: r,
|
|
27
|
-
errorLabel: s
|
|
28
|
-
}), value: {
|
|
29
|
-
connectionStatus: r,
|
|
30
|
-
setConnectionStatus: c,
|
|
31
|
-
errorLabel: s,
|
|
32
|
-
setErrorLabel: a,
|
|
33
|
-
actionLabel: u,
|
|
34
|
-
setActionLabel: p,
|
|
35
|
-
knockMsTeamsChannelId: t,
|
|
36
|
-
tenantId: e
|
|
37
|
-
} }, i);
|
|
38
|
-
}, S = () => {
|
|
39
|
-
const t = o.useContext(n);
|
|
40
|
-
if (!t)
|
|
41
|
-
throw new Error("useKnockMsTeamsClient must be used within a KnockMsTeamsProvider");
|
|
42
|
-
return t;
|
|
43
|
-
};
|
|
44
|
-
export {
|
|
45
|
-
M as KnockMsTeamsProvider,
|
|
46
|
-
S as useKnockMsTeamsClient
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=KnockMsTeamsProvider.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KnockMsTeamsProvider.mjs","sources":["../../../../../src/modules/ms-teams/context/KnockMsTeamsProvider.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\n\nimport { useKnockClient } from \"../../core\";\nimport { msTeamsProviderKey } from \"../../core/utils\";\nimport { useMsTeamsConnectionStatus } from \"../hooks\";\nimport { ConnectionStatus } from \"../hooks/useMsTeamsConnectionStatus\";\n\nexport interface KnockMsTeamsProviderState {\n knockMsTeamsChannelId: string;\n tenantId: string;\n connectionStatus: ConnectionStatus;\n setConnectionStatus: (connectionStatus: ConnectionStatus) => void;\n errorLabel: string | null;\n setErrorLabel: (label: string) => void;\n actionLabel: string | null;\n setActionLabel: (label: string | null) => void;\n}\n\nconst MsTeamsProviderStateContext =\n React.createContext<KnockMsTeamsProviderState | null>(null);\n\nexport interface KnockMsTeamsProviderProps {\n knockMsTeamsChannelId: string;\n tenantId: string;\n}\n\nexport const KnockMsTeamsProvider: React.FC<\n PropsWithChildren<KnockMsTeamsProviderProps>\n> = ({ knockMsTeamsChannelId, tenantId, children }) => {\n const knock = useKnockClient();\n\n const {\n connectionStatus,\n setConnectionStatus,\n errorLabel,\n setErrorLabel,\n actionLabel,\n setActionLabel,\n } = useMsTeamsConnectionStatus(knock, knockMsTeamsChannelId, tenantId);\n\n return (\n <MsTeamsProviderStateContext.Provider\n key={msTeamsProviderKey({\n knockMsTeamsChannelId,\n tenantId,\n connectionStatus,\n errorLabel,\n })}\n value={{\n connectionStatus,\n setConnectionStatus,\n errorLabel,\n setErrorLabel,\n actionLabel,\n setActionLabel,\n knockMsTeamsChannelId,\n tenantId,\n }}\n >\n {children}\n </MsTeamsProviderStateContext.Provider>\n );\n};\n\nexport const useKnockMsTeamsClient = (): KnockMsTeamsProviderState => {\n const context = React.useContext(MsTeamsProviderStateContext);\n if (!context) {\n throw new Error(\n \"useKnockMsTeamsClient must be used within a KnockMsTeamsProvider\",\n );\n }\n return context;\n};\n"],"names":["MsTeamsProviderStateContext","React","createContext","KnockMsTeamsProvider","knockMsTeamsChannelId","tenantId","children","knock","useKnockClient","connectionStatus","setConnectionStatus","errorLabel","setErrorLabel","actionLabel","setActionLabel","useMsTeamsConnectionStatus","msTeamsProviderKey","useKnockMsTeamsClient","context","useContext","Error"],"mappings":";;;;;;;;;AAmBA,MAAMA,IACJC,EAAMC,cAAgD,IAAI,GAO/CC,IAETA,CAAC;AAAA,EAAEC,uBAAAA;AAAAA,EAAuBC,UAAAA;AAAAA,EAAUC,UAAAA;AAAS,MAAM;AACrD,QAAMC,IAAQC,EAAe,GAEvB;AAAA,IACJC,kBAAAA;AAAAA,IACAC,qBAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,EACEC,IAAAA,EAA2BR,GAAOH,GAAuBC,CAAQ;AAErE,SACG,gBAAAJ,EAAA,cAAAD,EAA4B,UAA5B,EACC,KAAKgB,EAAmB;AAAA,IACtBZ,uBAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAI,kBAAAA;AAAAA,IACAE,YAAAA;AAAAA,EACD,CAAA,GACD,OAAO;AAAA,IACLF,kBAAAA;AAAAA,IACAC,qBAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAV,uBAAAA;AAAAA,IACAC,UAAAA;AAAAA,OAGDC,CACH;AAEJ,GAEaW,IAAwBA,MAAiC;AAC9DC,QAAAA,IAAUjB,EAAMkB,WAAWnB,CAA2B;AAC5D,MAAI,CAACkB;AACG,UAAA,IAAIE,MACR,kEACF;AAEKF,SAAAA;AACT;"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { useKnockMsTeamsClient as g } from "../context/KnockMsTeamsProvider.mjs";
|
|
2
|
-
import { useState as l } from "react";
|
|
3
|
-
import "../../i18n/context/KnockI18nProvider.mjs";
|
|
4
|
-
import { useTranslations as S } from "../../i18n/hooks/useTranslations.mjs";
|
|
5
|
-
import "@knocklabs/client";
|
|
6
|
-
import { useKnockClient as T } from "../../core/context/KnockProvider.mjs";
|
|
7
|
-
import "fast-deep-equal";
|
|
8
|
-
import "date-fns";
|
|
9
|
-
import "swr/infinite";
|
|
10
|
-
import k from "swr";
|
|
11
|
-
const M = "MS_TEAMS_CONNECTED_CHANNELS";
|
|
12
|
-
function Y({
|
|
13
|
-
msTeamsChannelsRecipientObject: {
|
|
14
|
-
objectId: e,
|
|
15
|
-
collection: a
|
|
16
|
-
}
|
|
17
|
-
}) {
|
|
18
|
-
const {
|
|
19
|
-
t: m
|
|
20
|
-
} = S(), o = T(), {
|
|
21
|
-
connectionStatus: u,
|
|
22
|
-
knockMsTeamsChannelId: s
|
|
23
|
-
} = g(), [d, r] = l(null), [p, c] = l(!1), {
|
|
24
|
-
data: C,
|
|
25
|
-
mutate: h,
|
|
26
|
-
isValidating: f,
|
|
27
|
-
isLoading: E
|
|
28
|
-
} = k(
|
|
29
|
-
// Only fetch when Microsoft Teams is connected
|
|
30
|
-
u === "connected" ? [M, s, a, e] : null,
|
|
31
|
-
async () => o.objects.getChannelData({
|
|
32
|
-
collection: a,
|
|
33
|
-
objectId: e,
|
|
34
|
-
channelId: s
|
|
35
|
-
}).then((t) => {
|
|
36
|
-
var n;
|
|
37
|
-
return ((n = t.data) == null ? void 0 : n.connections) ?? [];
|
|
38
|
-
}).catch(() => []),
|
|
39
|
-
{
|
|
40
|
-
onSuccess: () => {
|
|
41
|
-
r(null);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
return {
|
|
46
|
-
data: C ?? null,
|
|
47
|
-
updateConnectedChannels: async (t) => {
|
|
48
|
-
c(!0);
|
|
49
|
-
try {
|
|
50
|
-
await h(() => o.objects.setChannelData({
|
|
51
|
-
objectId: e,
|
|
52
|
-
collection: a,
|
|
53
|
-
channelId: s,
|
|
54
|
-
data: {
|
|
55
|
-
connections: t
|
|
56
|
-
}
|
|
57
|
-
}).then((n) => {
|
|
58
|
-
var i;
|
|
59
|
-
return ((i = n.data) == null ? void 0 : i.connections) ?? [];
|
|
60
|
-
}), {
|
|
61
|
-
populateCache: !0,
|
|
62
|
-
revalidate: !1,
|
|
63
|
-
optimisticData: t
|
|
64
|
-
});
|
|
65
|
-
} catch {
|
|
66
|
-
r(m("msTeamsChannelSetError") || "");
|
|
67
|
-
}
|
|
68
|
-
c(!1);
|
|
69
|
-
},
|
|
70
|
-
updating: p,
|
|
71
|
-
loading: E || f,
|
|
72
|
-
error: d
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
export {
|
|
76
|
-
Y as default
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=useConnectedMsTeamsChannels.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useConnectedMsTeamsChannels.mjs","sources":["../../../../../src/modules/ms-teams/hooks/useConnectedMsTeamsChannels.ts"],"sourcesContent":["import { useKnockMsTeamsClient } from \"..\";\nimport { MsTeamsChannelConnection } from \"@knocklabs/client\";\nimport { GenericData } from \"@knocklabs/types\";\nimport { useState } from \"react\";\nimport useSWR from \"swr\";\n\nimport { RecipientObject } from \"../../..\";\nimport { useKnockClient } from \"../../core\";\nimport { useTranslations } from \"../../i18n\";\n\nconst QUERY_KEY = \"MS_TEAMS_CONNECTED_CHANNELS\";\n\ntype UseConnectedMsTeamsChannelsProps = {\n msTeamsChannelsRecipientObject: RecipientObject;\n};\n\ntype UseConnectedMsTeamsChannelsOutput = {\n data: MsTeamsChannelConnection[] | null;\n updateConnectedChannels: (\n connectedChannels: MsTeamsChannelConnection[],\n ) => Promise<void>;\n loading: boolean;\n error: string | null;\n updating: boolean;\n};\n\nfunction useConnectedMsTeamsChannels({\n msTeamsChannelsRecipientObject: { objectId, collection },\n}: UseConnectedMsTeamsChannelsProps): UseConnectedMsTeamsChannelsOutput {\n const { t } = useTranslations();\n const knock = useKnockClient();\n const { connectionStatus, knockMsTeamsChannelId } = useKnockMsTeamsClient();\n\n const [error, setError] = useState<string | null>(null);\n const [isUpdating, setIsUpdating] = useState(false);\n\n const {\n data: connectedChannels,\n mutate,\n isValidating,\n isLoading,\n } = useSWR<MsTeamsChannelConnection[]>(\n // Only fetch when Microsoft Teams is connected\n connectionStatus === \"connected\"\n ? [QUERY_KEY, knockMsTeamsChannelId, collection, objectId]\n : null,\n async () => {\n return knock.objects\n .getChannelData({\n collection,\n objectId,\n channelId: knockMsTeamsChannelId,\n })\n .then((res) => res.data?.connections ?? [])\n .catch(() => []);\n },\n {\n onSuccess: () => {\n setError(null);\n },\n },\n );\n\n const updateConnectedChannels = async (\n channelsToSendToKnock: MsTeamsChannelConnection[],\n ) => {\n setIsUpdating(true);\n try {\n await mutate(\n () =>\n knock.objects\n .setChannelData({\n objectId,\n collection,\n channelId: knockMsTeamsChannelId,\n data: { connections: channelsToSendToKnock },\n })\n .then((res) => (res as GenericData).data?.connections ?? []),\n {\n populateCache: true,\n revalidate: false,\n optimisticData: channelsToSendToKnock,\n },\n );\n } catch (_error) {\n setError(t(\"msTeamsChannelSetError\") || \"\");\n }\n setIsUpdating(false);\n };\n\n return {\n data: connectedChannels ?? null,\n updateConnectedChannels,\n updating: isUpdating,\n loading: isLoading || isValidating,\n error,\n };\n}\n\nexport default useConnectedMsTeamsChannels;\n"],"names":["QUERY_KEY","useConnectedMsTeamsChannels","msTeamsChannelsRecipientObject","objectId","collection","t","useTranslations","knock","useKnockClient","connectionStatus","knockMsTeamsChannelId","useKnockMsTeamsClient","error","setError","useState","isUpdating","setIsUpdating","data","connectedChannels","mutate","isValidating","isLoading","useSWR","objects","getChannelData","channelId","then","res","connections","catch","onSuccess","updateConnectedChannels","channelsToSendToKnock","setChannelData","populateCache","revalidate","optimisticData","updating","loading"],"mappings":";;;;;;;;;;AAUA,MAAMA,IAAY;AAgBlB,SAASC,EAA4B;AAAA,EACnCC,gCAAgC;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,YAAAA;AAAAA,EAAAA;AACZ,GAAsC;AAChE,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAgB,GACxBC,IAAQC,EAAe,GACvB;AAAA,IAAEC,kBAAAA;AAAAA,IAAkBC,uBAAAA;AAAAA,MAA0BC,EAAsB,GAEpE,CAACC,GAAOC,CAAQ,IAAIC,EAAwB,IAAI,GAChD,CAACC,GAAYC,CAAa,IAAIF,EAAS,EAAK,GAE5C;AAAA,IACJG,MAAMC;AAAAA,IACNC,QAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACAC,WAAAA;AAAAA,EAAAA,IACEC;AAAAA;AAAAA,IAEFb,MAAqB,cACjB,CAACT,GAAWU,GAAuBN,GAAYD,CAAQ,IACvD;AAAA,IACJ,YACSI,EAAMgB,QACVC,eAAe;AAAA,MACdpB,YAAAA;AAAAA,MACAD,UAAAA;AAAAA,MACAsB,WAAWf;AAAAA,IACZ,CAAA,EACAgB,KAAMC,CAAAA,MAAAA;;AAAQA,eAAAA,IAAAA,EAAIV,SAAJU,gBAAAA,EAAUC,gBAAe;KAAE,EACzCC,MAAM,MAAM,EAAE;AAAA,IAEnB;AAAA,MACEC,WAAWA,MAAM;AACfjB,QAAAA,EAAS,IAAI;AAAA,MAAA;AAAA,IACf;AAAA,EAEJ;AA6BO,SAAA;AAAA,IACLI,MAAMC,KAAqB;AAAA,IAC3Ba,yBA7B8B,OAC9BC,MACG;AACHhB,MAAAA,EAAc,EAAI;AACd,UAAA;AACF,cAAMG,EACJ,MACEZ,EAAMgB,QACHU,eAAe;AAAA,UACd9B,UAAAA;AAAAA,UACAC,YAAAA;AAAAA,UACAqB,WAAWf;AAAAA,UACXO,MAAM;AAAA,YAAEW,aAAaI;AAAAA,UAAAA;AAAAA,QAAsB,CAC5C,EACAN,KAAMC,CAAAA,MAAAA;;AAASA,mBAAAA,IAAAA,EAAoBV,SAApBU,gBAAAA,EAA0BC,gBAAe,CAAA;AAAA,SAAE,GAC/D;AAAA,UACEM,eAAe;AAAA,UACfC,YAAY;AAAA,UACZC,gBAAgBJ;AAAAA,QAAAA,CAEpB;AAAA,cACe;AACN3B,QAAAA,EAAAA,EAAE,wBAAwB,KAAK,EAAE;AAAA,MAAA;AAE5CW,MAAAA,EAAc,EAAK;AAAA,IACrB;AAAA,IAKEqB,UAAUtB;AAAAA,IACVuB,SAASjB,KAAaD;AAAAA,IACtBR,OAAAA;AAAAA,EACF;AACF;"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { useKnockMsTeamsClient as T } from "../context/KnockMsTeamsProvider.mjs";
|
|
2
|
-
import { useMemo as _, useCallback as m } from "react";
|
|
3
|
-
import "../../i18n/context/KnockI18nProvider.mjs";
|
|
4
|
-
import { TENANT_OBJECT_COLLECTION as k } from "@knocklabs/client";
|
|
5
|
-
import { useKnockClient as d } from "../../core/context/KnockProvider.mjs";
|
|
6
|
-
import "fast-deep-equal";
|
|
7
|
-
import "date-fns";
|
|
8
|
-
import "swr/infinite";
|
|
9
|
-
import "swr";
|
|
10
|
-
const p = "https://login.microsoftonline.com/organizations/adminconsent", h = "/providers/ms-teams/authenticate";
|
|
11
|
-
function S(r, c) {
|
|
12
|
-
const e = d(), {
|
|
13
|
-
setConnectionStatus: t,
|
|
14
|
-
knockMsTeamsChannelId: n,
|
|
15
|
-
tenantId: o,
|
|
16
|
-
setActionLabel: i
|
|
17
|
-
} = T(), a = _(() => e.host + h, [e.host]), u = m(() => {
|
|
18
|
-
const s = {
|
|
19
|
-
state: JSON.stringify({
|
|
20
|
-
redirect_url: c,
|
|
21
|
-
ms_teams_tenant_object: {
|
|
22
|
-
object_id: o,
|
|
23
|
-
collection: k
|
|
24
|
-
},
|
|
25
|
-
channel_id: n,
|
|
26
|
-
public_key: e.apiKey,
|
|
27
|
-
user_token: e.userToken
|
|
28
|
-
}),
|
|
29
|
-
client_id: r,
|
|
30
|
-
redirect_uri: a
|
|
31
|
-
};
|
|
32
|
-
return `${p}?${new URLSearchParams(s)}`;
|
|
33
|
-
}, [c, o, n, e.apiKey, e.userToken, r, a]), l = m(async () => {
|
|
34
|
-
i(null), t("disconnecting");
|
|
35
|
-
try {
|
|
36
|
-
const s = await e.msTeams.revokeAccessToken({
|
|
37
|
-
tenant: o,
|
|
38
|
-
knockChannelId: n
|
|
39
|
-
});
|
|
40
|
-
t(s === "ok" ? "disconnected" : "error");
|
|
41
|
-
} catch {
|
|
42
|
-
t("error");
|
|
43
|
-
}
|
|
44
|
-
}, [t, e.msTeams, o, n, i]);
|
|
45
|
-
return {
|
|
46
|
-
buildMsTeamsAuthUrl: u,
|
|
47
|
-
disconnectFromMsTeams: l
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
export {
|
|
51
|
-
S as default
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=useMsTeamsAuth.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMsTeamsAuth.mjs","sources":["../../../../../src/modules/ms-teams/hooks/useMsTeamsAuth.ts"],"sourcesContent":["import { useKnockMsTeamsClient } from \"..\";\nimport { TENANT_OBJECT_COLLECTION } from \"@knocklabs/client\";\nimport { useCallback, useMemo } from \"react\";\n\nimport { useKnockClient } from \"../../core\";\n\nconst MS_TEAMS_ADMINCONSENT_URL =\n \"https://login.microsoftonline.com/organizations/adminconsent\";\n\nconst AUTH_REDIRECT_PATH = \"/providers/ms-teams/authenticate\";\n\ninterface UseMsTeamsAuthOutput {\n buildMsTeamsAuthUrl: () => string;\n disconnectFromMsTeams: () => void;\n}\n\nfunction useMsTeamsAuth(\n msTeamsBotId: string,\n redirectUrl?: string,\n): UseMsTeamsAuthOutput {\n const knock = useKnockClient();\n const {\n setConnectionStatus,\n knockMsTeamsChannelId,\n tenantId,\n setActionLabel,\n } = useKnockMsTeamsClient();\n\n const authRedirectUri = useMemo(\n () => knock.host + AUTH_REDIRECT_PATH,\n [knock.host],\n );\n\n const buildMsTeamsAuthUrl = useCallback(() => {\n const rawParams = {\n state: JSON.stringify({\n redirect_url: redirectUrl,\n ms_teams_tenant_object: {\n object_id: tenantId,\n collection: TENANT_OBJECT_COLLECTION,\n },\n channel_id: knockMsTeamsChannelId,\n public_key: knock.apiKey,\n user_token: knock.userToken,\n }),\n client_id: msTeamsBotId,\n redirect_uri: authRedirectUri,\n };\n return `${MS_TEAMS_ADMINCONSENT_URL}?${new URLSearchParams(rawParams)}`;\n }, [\n redirectUrl,\n tenantId,\n knockMsTeamsChannelId,\n knock.apiKey,\n knock.userToken,\n msTeamsBotId,\n authRedirectUri,\n ]);\n\n const disconnectFromMsTeams = useCallback(async () => {\n setActionLabel(null);\n setConnectionStatus(\"disconnecting\");\n try {\n const revokeResult = await knock.msTeams.revokeAccessToken({\n tenant: tenantId,\n knockChannelId: knockMsTeamsChannelId,\n });\n\n setConnectionStatus(revokeResult === \"ok\" ? \"disconnected\" : \"error\");\n } catch (_error) {\n setConnectionStatus(\"error\");\n }\n }, [\n setConnectionStatus,\n knock.msTeams,\n tenantId,\n knockMsTeamsChannelId,\n setActionLabel,\n ]);\n\n return { buildMsTeamsAuthUrl, disconnectFromMsTeams };\n}\n\nexport default useMsTeamsAuth;\n"],"names":["MS_TEAMS_ADMINCONSENT_URL","AUTH_REDIRECT_PATH","useMsTeamsAuth","msTeamsBotId","redirectUrl","knock","useKnockClient","setConnectionStatus","knockMsTeamsChannelId","tenantId","setActionLabel","useKnockMsTeamsClient","authRedirectUri","useMemo","host","buildMsTeamsAuthUrl","useCallback","rawParams","state","JSON","stringify","redirect_url","ms_teams_tenant_object","object_id","collection","TENANT_OBJECT_COLLECTION","channel_id","public_key","apiKey","user_token","userToken","client_id","redirect_uri","URLSearchParams","disconnectFromMsTeams","revokeResult","msTeams","revokeAccessToken","tenant","knockChannelId"],"mappings":";;;;;;;;;AAMA,MAAMA,IACJ,gEAEIC,IAAqB;AAO3B,SAASC,EACPC,GACAC,GACsB;AACtB,QAAMC,IAAQC,EAAe,GACvB;AAAA,IACJC,qBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,gBAAAA;AAAAA,MACEC,EAAsB,GAEpBC,IAAkBC,EACtB,MAAMR,EAAMS,OAAOb,GACnB,CAACI,EAAMS,IAAI,CACb,GAEMC,IAAsBC,EAAY,MAAM;AAC5C,UAAMC,IAAY;AAAA,MAChBC,OAAOC,KAAKC,UAAU;AAAA,QACpBC,cAAcjB;AAAAA,QACdkB,wBAAwB;AAAA,UACtBC,WAAWd;AAAAA,UACXe,YAAYC;AAAAA,QACd;AAAA,QACAC,YAAYlB;AAAAA,QACZmB,YAAYtB,EAAMuB;AAAAA,QAClBC,YAAYxB,EAAMyB;AAAAA,MAAAA,CACnB;AAAA,MACDC,WAAW5B;AAAAA,MACX6B,cAAcpB;AAAAA,IAChB;AACA,WAAO,GAAGZ,CAAyB,IAAI,IAAIiC,gBAAgBhB,CAAS,CAAC;AAAA,EACvE,GAAG,CACDb,GACAK,GACAD,GACAH,EAAMuB,QACNvB,EAAMyB,WACN3B,GACAS,CAAe,CAChB,GAEKsB,IAAwBlB,EAAY,YAAY;AACpDN,IAAAA,EAAe,IAAI,GACnBH,EAAoB,eAAe;AAC/B,QAAA;AACF,YAAM4B,IAAe,MAAM9B,EAAM+B,QAAQC,kBAAkB;AAAA,QACzDC,QAAQ7B;AAAAA,QACR8B,gBAAgB/B;AAAAA,MAAAA,CACjB;AAEmB2B,MAAAA,EAAAA,MAAiB,OAAO,iBAAiB,OAAO;AAAA,YACrD;AACf5B,MAAAA,EAAoB,OAAO;AAAA,IAAA;AAAA,EAC7B,GACC,CACDA,GACAF,EAAM+B,SACN3B,GACAD,GACAE,CAAc,CACf;AAEM,SAAA;AAAA,IAAEK,qBAAAA;AAAAA,IAAqBmB,uBAAAA;AAAAA,EAAsB;AACtD;"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import f from "swr";
|
|
2
|
-
import { useKnockClient as r } from "../../core/context/KnockProvider.mjs";
|
|
3
|
-
import "@knocklabs/client";
|
|
4
|
-
import "react";
|
|
5
|
-
import "fast-deep-equal";
|
|
6
|
-
import "date-fns";
|
|
7
|
-
import { useKnockMsTeamsClient as h } from "../context/KnockMsTeamsProvider.mjs";
|
|
8
|
-
const k = "MS_TEAMS_CHANNELS";
|
|
9
|
-
function S({
|
|
10
|
-
teamId: e,
|
|
11
|
-
queryOptions: n
|
|
12
|
-
}) {
|
|
13
|
-
const s = r(), {
|
|
14
|
-
knockMsTeamsChannelId: a,
|
|
15
|
-
tenantId: l
|
|
16
|
-
} = h(), c = () => s.msTeams.getChannels({
|
|
17
|
-
knockChannelId: a,
|
|
18
|
-
tenant: l,
|
|
19
|
-
teamId: e,
|
|
20
|
-
queryOptions: {
|
|
21
|
-
$filter: n == null ? void 0 : n.filter,
|
|
22
|
-
$select: n == null ? void 0 : n.select
|
|
23
|
-
}
|
|
24
|
-
}), {
|
|
25
|
-
data: t,
|
|
26
|
-
isLoading: o,
|
|
27
|
-
isValidating: m,
|
|
28
|
-
mutate: i
|
|
29
|
-
} = f(e ? [k, e] : null, c, {
|
|
30
|
-
revalidateOnFocus: !1
|
|
31
|
-
});
|
|
32
|
-
return {
|
|
33
|
-
data: (t == null ? void 0 : t.ms_teams_channels) ?? [],
|
|
34
|
-
isLoading: o || m,
|
|
35
|
-
refetch: () => i()
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
export {
|
|
39
|
-
S as default
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=useMsTeamsChannels.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMsTeamsChannels.mjs","sources":["../../../../../src/modules/ms-teams/hooks/useMsTeamsChannels.ts"],"sourcesContent":["import { GetMsTeamsChannelsResponse, MsTeamsChannel } from \"@knocklabs/client\";\nimport useSWR from \"swr\";\n\nimport { useKnockClient } from \"../../core\";\nimport { useKnockMsTeamsClient } from \"../context\";\nimport { MsTeamsChannelQueryOptions } from \"../interfaces\";\n\nconst QUERY_KEY = \"MS_TEAMS_CHANNELS\";\n\ntype UseMsTeamsChannelsProps = {\n teamId?: string;\n queryOptions?: MsTeamsChannelQueryOptions;\n};\n\ntype UseMsTeamsChannelsOutput = {\n data: MsTeamsChannel[];\n isLoading: boolean;\n refetch: () => void;\n};\n\nfunction useMsTeamsChannels({\n teamId,\n queryOptions,\n}: UseMsTeamsChannelsProps): UseMsTeamsChannelsOutput {\n const knock = useKnockClient();\n const { knockMsTeamsChannelId, tenantId } = useKnockMsTeamsClient();\n\n const fetchChannels = () =>\n knock.msTeams.getChannels({\n knockChannelId: knockMsTeamsChannelId,\n tenant: tenantId,\n teamId: teamId!,\n queryOptions: {\n $filter: queryOptions?.filter,\n $select: queryOptions?.select,\n },\n });\n\n const { data, isLoading, isValidating, mutate } =\n useSWR<GetMsTeamsChannelsResponse>(\n teamId ? [QUERY_KEY, teamId] : null,\n fetchChannels,\n { revalidateOnFocus: false },\n );\n\n return {\n data: data?.ms_teams_channels ?? [],\n isLoading: isLoading || isValidating,\n refetch: () => mutate(),\n };\n}\n\nexport default useMsTeamsChannels;\n"],"names":["QUERY_KEY","useMsTeamsChannels","teamId","queryOptions","knock","useKnockClient","knockMsTeamsChannelId","tenantId","useKnockMsTeamsClient","fetchChannels","msTeams","getChannels","knockChannelId","tenant","$filter","filter","$select","select","data","isLoading","isValidating","mutate","useSWR","revalidateOnFocus","ms_teams_channels","refetch"],"mappings":";;;;;;;AAOA,MAAMA,IAAY;AAalB,SAASC,EAAmB;AAAA,EAC1BC,QAAAA;AAAAA,EACAC,cAAAA;AACuB,GAA6B;AACpD,QAAMC,IAAQC,EAAe,GACvB;AAAA,IAAEC,uBAAAA;AAAAA,IAAuBC,UAAAA;AAAAA,MAAaC,EAAsB,GAE5DC,IAAgBA,MACpBL,EAAMM,QAAQC,YAAY;AAAA,IACxBC,gBAAgBN;AAAAA,IAChBO,QAAQN;AAAAA,IACRL,QAAAA;AAAAA,IACAC,cAAc;AAAA,MACZW,SAASX,KAAAA,gBAAAA,EAAcY;AAAAA,MACvBC,SAASb,KAAAA,gBAAAA,EAAcc;AAAAA,IAAAA;AAAAA,EACzB,CACD,GAEG;AAAA,IAAEC,MAAAA;AAAAA,IAAMC,WAAAA;AAAAA,IAAWC,cAAAA;AAAAA,IAAcC,QAAAA;AAAAA,EAAAA,IACrCC,EACEpB,IAAS,CAACF,GAAWE,CAAM,IAAI,MAC/BO,GACA;AAAA,IAAEc,mBAAmB;AAAA,EAAA,CACvB;AAEK,SAAA;AAAA,IACLL,OAAMA,KAAAA,gBAAAA,EAAMM,sBAAqB,CAAE;AAAA,IACnCL,WAAWA,KAAaC;AAAAA,IACxBK,SAASA,MAAMJ,EAAO;AAAA,EACxB;AACF;"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { useState as o, useEffect as T } from "react";
|
|
2
|
-
import "../../i18n/context/KnockI18nProvider.mjs";
|
|
3
|
-
import { useTranslations as p } from "../../i18n/hooks/useTranslations.mjs";
|
|
4
|
-
function R(c, s, r) {
|
|
5
|
-
const {
|
|
6
|
-
t: a
|
|
7
|
-
} = p(), [n, t] = o("connecting"), [l, d] = o(null), [h, S] = o(null);
|
|
8
|
-
return T(() => {
|
|
9
|
-
(async () => {
|
|
10
|
-
var u, i, m, f;
|
|
11
|
-
if (n === "connecting")
|
|
12
|
-
try {
|
|
13
|
-
const e = await c.msTeams.authCheck({
|
|
14
|
-
tenant: r,
|
|
15
|
-
knockChannelId: s
|
|
16
|
-
});
|
|
17
|
-
if (((u = e.connection) == null ? void 0 : u.ok) === !0)
|
|
18
|
-
return t("connected");
|
|
19
|
-
if (((i = e.connection) == null ? void 0 : i.ok) === !1 || e.code === "ERR_BAD_REQUEST" && ((f = (m = e.response) == null ? void 0 : m.data) == null ? void 0 : f.message) === a("msTeamsTenantIdNotSet"))
|
|
20
|
-
return t("disconnected");
|
|
21
|
-
t("error");
|
|
22
|
-
} catch {
|
|
23
|
-
t("error");
|
|
24
|
-
}
|
|
25
|
-
})();
|
|
26
|
-
}, [n, r, s, c.msTeams, a]), {
|
|
27
|
-
connectionStatus: n,
|
|
28
|
-
setConnectionStatus: t,
|
|
29
|
-
errorLabel: l,
|
|
30
|
-
setErrorLabel: d,
|
|
31
|
-
actionLabel: h,
|
|
32
|
-
setActionLabel: S
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
export {
|
|
36
|
-
R as default
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=useMsTeamsConnectionStatus.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMsTeamsConnectionStatus.mjs","sources":["../../../../../src/modules/ms-teams/hooks/useMsTeamsConnectionStatus.ts"],"sourcesContent":["import Knock from \"@knocklabs/client\";\nimport { useEffect, useState } from \"react\";\n\nimport { useTranslations } from \"../../i18n\";\n\nexport type ConnectionStatus =\n | \"connecting\"\n | \"connected\"\n | \"disconnected\"\n | \"error\"\n | \"disconnecting\";\n\ntype UseMsTeamsConnectionStatusOutput = {\n connectionStatus: ConnectionStatus;\n setConnectionStatus: (status: ConnectionStatus) => void;\n errorLabel: string | null;\n setErrorLabel: (errorLabel: string) => void;\n actionLabel: string | null;\n setActionLabel: (actionLabel: string | null) => void;\n};\n\nfunction useMsTeamsConnectionStatus(\n knock: Knock,\n knockMsTeamsChannelId: string,\n tenantId: string,\n): UseMsTeamsConnectionStatusOutput {\n const { t } = useTranslations();\n\n const [connectionStatus, setConnectionStatus] =\n useState<ConnectionStatus>(\"connecting\");\n const [errorLabel, setErrorLabel] = useState<string | null>(null);\n const [actionLabel, setActionLabel] = useState<string | null>(null);\n\n useEffect(() => {\n const checkAuthStatus = async () => {\n if (connectionStatus !== \"connecting\") return;\n\n try {\n const authRes = await knock.msTeams.authCheck({\n tenant: tenantId,\n knockChannelId: knockMsTeamsChannelId,\n });\n\n if (authRes.connection?.ok === true) {\n return setConnectionStatus(\"connected\");\n }\n\n if (authRes.connection?.ok === false) {\n return setConnectionStatus(\"disconnected\");\n }\n\n // This is a normal response for a tenant that doesn't have\n // ms_teams_tenant_id set on it, meaning it's not connected to MS Teams,\n // so we give it a \"disconnected\" status instead of an error status.\n if (\n authRes.code === \"ERR_BAD_REQUEST\" &&\n authRes.response?.data?.message === t(\"msTeamsTenantIdNotSet\")\n ) {\n return setConnectionStatus(\"disconnected\");\n }\n\n // This is for any Knock errors that would require a reconnect.\n setConnectionStatus(\"error\");\n } catch (_error) {\n setConnectionStatus(\"error\");\n }\n };\n\n checkAuthStatus();\n }, [connectionStatus, tenantId, knockMsTeamsChannelId, knock.msTeams, t]);\n\n return {\n connectionStatus,\n setConnectionStatus,\n errorLabel,\n setErrorLabel,\n actionLabel,\n setActionLabel,\n };\n}\n\nexport default useMsTeamsConnectionStatus;\n"],"names":["useMsTeamsConnectionStatus","knock","knockMsTeamsChannelId","tenantId","t","useTranslations","connectionStatus","setConnectionStatus","useState","errorLabel","setErrorLabel","actionLabel","setActionLabel","useEffect","authRes","msTeams","authCheck","tenant","knockChannelId","connection","ok","code","response","data","message"],"mappings":";;;AAqBA,SAASA,EACPC,GACAC,GACAC,GACkC;AAC5B,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAgB,GAExB,CAACC,GAAkBC,CAAmB,IAC1CC,EAA2B,YAAY,GACnC,CAACC,GAAYC,CAAa,IAAIF,EAAwB,IAAI,GAC1D,CAACG,GAAaC,CAAc,IAAIJ,EAAwB,IAAI;AAElEK,SAAAA,EAAU,MAAM;AAmCE,KAlCQ,YAAY;;AAClC,UAAIP,MAAqB;AAErB,YAAA;AACF,gBAAMQ,IAAU,MAAMb,EAAMc,QAAQC,UAAU;AAAA,YAC5CC,QAAQd;AAAAA,YACRe,gBAAgBhB;AAAAA,UAAAA,CACjB;AAEGY,gBAAAA,IAAAA,EAAQK,eAARL,gBAAAA,EAAoBM,QAAO;AAC7B,mBAAOb,EAAoB,WAAW;AAWtCO,gBAREA,IAAAA,EAAQK,eAARL,gBAAAA,EAAoBM,QAAO,MAQ7BN,EAAQO,SAAS,uBACjBP,KAAAA,IAAAA,EAAQQ,aAARR,gBAAAA,EAAkBS,SAAlBT,gBAAAA,EAAwBU,aAAYpB,EAAE,uBAAuB;AAE7D,mBAAOG,EAAoB,cAAc;AAI3CA,UAAAA,EAAoB,OAAO;AAAA,gBACZ;AACfA,UAAAA,EAAoB,OAAO;AAAA,QAAA;AAAA,IAE/B,GAEgB;AAAA,EAAA,GACf,CAACD,GAAkBH,GAAUD,GAAuBD,EAAMc,SAASX,CAAC,CAAC,GAEjE;AAAA,IACLE,kBAAAA;AAAAA,IACAC,qBAAAA;AAAAA,IACAE,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,EACF;AACF;"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { useMemo as C, useEffect as S } from "react";
|
|
2
|
-
import g from "swr/infinite";
|
|
3
|
-
import { useKnockClient as E } from "../../core/context/KnockProvider.mjs";
|
|
4
|
-
import "@knocklabs/client";
|
|
5
|
-
import "fast-deep-equal";
|
|
6
|
-
import "date-fns";
|
|
7
|
-
import { useKnockMsTeamsClient as x } from "../context/KnockMsTeamsProvider.mjs";
|
|
8
|
-
const I = 1e3, T = "MS_TEAMS_TEAMS";
|
|
9
|
-
function $(t, n) {
|
|
10
|
-
return t === 0 ? [T, ""] : n && ["", null].includes(n.skip_token) ? null : [T, n.skip_token ?? ""];
|
|
11
|
-
}
|
|
12
|
-
function R({
|
|
13
|
-
queryOptions: t = {}
|
|
14
|
-
}) {
|
|
15
|
-
const n = E(), {
|
|
16
|
-
knockMsTeamsChannelId: M,
|
|
17
|
-
tenantId: _,
|
|
18
|
-
connectionStatus: l
|
|
19
|
-
} = x(), r = (e) => n.msTeams.getTeams({
|
|
20
|
-
knockChannelId: M,
|
|
21
|
-
tenant: _,
|
|
22
|
-
queryOptions: {
|
|
23
|
-
$skiptoken: e == null ? void 0 : e[1],
|
|
24
|
-
$top: t == null ? void 0 : t.limitPerPage,
|
|
25
|
-
$filter: t == null ? void 0 : t.filter,
|
|
26
|
-
$select: t == null ? void 0 : t.select
|
|
27
|
-
}
|
|
28
|
-
}), {
|
|
29
|
-
data: a,
|
|
30
|
-
error: o,
|
|
31
|
-
isLoading: s,
|
|
32
|
-
isValidating: c,
|
|
33
|
-
setSize: i,
|
|
34
|
-
mutate: h
|
|
35
|
-
} = g($, r, {
|
|
36
|
-
initialSize: 0,
|
|
37
|
-
revalidateOnFocus: !1,
|
|
38
|
-
revalidateFirstPage: !1
|
|
39
|
-
}), f = a == null ? void 0 : a.at(-1), k = f === void 0 || !!f.skip_token, m = C(() => (a ?? []).flatMap((e) => e == null ? void 0 : e.ms_teams_teams).filter((e) => !!e), [a]), d = (t == null ? void 0 : t.maxCount) || I;
|
|
40
|
-
return S(() => {
|
|
41
|
-
l === "connected" && !o && k && !s && !c && m.length < d && i((e) => e + 1);
|
|
42
|
-
}, [m.length, i, k, s, c, d, o, l]), {
|
|
43
|
-
data: m,
|
|
44
|
-
isLoading: s || c,
|
|
45
|
-
refetch: () => h()
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
export {
|
|
49
|
-
R as default
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=useMsTeamsTeams.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMsTeamsTeams.mjs","sources":["../../../../../src/modules/ms-teams/hooks/useMsTeamsTeams.ts"],"sourcesContent":["import { GetMsTeamsTeamsResponse, MsTeamsTeam } from \"@knocklabs/client\";\nimport { useEffect, useMemo } from \"react\";\nimport useSWRInfinite from \"swr/infinite\";\n\nimport { useKnockClient } from \"../../core\";\nimport { useKnockMsTeamsClient } from \"../context\";\nimport { MsTeamsTeamQueryOptions } from \"../interfaces\";\n\nconst MAX_COUNT = 1000;\n\nconst QUERY_KEY = \"MS_TEAMS_TEAMS\";\n\ntype UseMsTeamsTeamsOptions = {\n queryOptions?: MsTeamsTeamQueryOptions;\n};\n\ntype UseMsTeamsTeamsOutput = {\n data: MsTeamsTeam[];\n isLoading: boolean;\n refetch: () => void;\n};\n\ntype QueryKey = [key: string, skiptoken: string] | null;\n\nfunction getQueryKey(\n pageIndex: number,\n previousPageData: GetMsTeamsTeamsResponse,\n): QueryKey {\n // First page so just pass empty\n if (pageIndex === 0) {\n return [QUERY_KEY, \"\"];\n }\n\n // If there's no more data then return an empty next skiptoken\n if (previousPageData && [\"\", null].includes(previousPageData.skip_token)) {\n return null;\n }\n\n // Next skiptoken exists so pass it\n return [QUERY_KEY, previousPageData.skip_token ?? \"\"];\n}\n\nfunction useMsTeamsTeams({\n queryOptions = {},\n}: UseMsTeamsTeamsOptions): UseMsTeamsTeamsOutput {\n const knock = useKnockClient();\n const { knockMsTeamsChannelId, tenantId, connectionStatus } =\n useKnockMsTeamsClient();\n\n const fetchTeams = (queryKey: QueryKey) =>\n knock.msTeams.getTeams({\n knockChannelId: knockMsTeamsChannelId,\n tenant: tenantId,\n queryOptions: {\n $skiptoken: queryKey?.[1],\n $top: queryOptions?.limitPerPage,\n $filter: queryOptions?.filter,\n $select: queryOptions?.select,\n },\n });\n\n const { data, error, isLoading, isValidating, setSize, mutate } =\n useSWRInfinite<GetMsTeamsTeamsResponse>(getQueryKey, fetchTeams, {\n initialSize: 0,\n revalidateOnFocus: false,\n revalidateFirstPage: false,\n });\n\n const lastPage = data?.at(-1);\n const hasNextPage = lastPage === undefined || !!lastPage.skip_token;\n\n const teams = useMemo(\n () =>\n (data ?? [])\n .flatMap((page) => page?.ms_teams_teams)\n .filter((team) => !!team),\n [data],\n );\n\n const maxCount = queryOptions?.maxCount || MAX_COUNT;\n\n useEffect(() => {\n if (\n connectionStatus === \"connected\" &&\n !error &&\n hasNextPage &&\n !isLoading &&\n !isValidating &&\n teams.length < maxCount\n ) {\n // Fetch a page at a time until we have nothing else left to fetch\n // or we've already hit the max amount of teams to fetch\n setSize((size) => size + 1);\n }\n }, [\n teams.length,\n setSize,\n hasNextPage,\n isLoading,\n isValidating,\n maxCount,\n error,\n connectionStatus,\n ]);\n\n return {\n data: teams,\n isLoading: isLoading || isValidating,\n refetch: () => mutate(),\n };\n}\n\nexport default useMsTeamsTeams;\n"],"names":["MAX_COUNT","QUERY_KEY","getQueryKey","pageIndex","previousPageData","includes","skip_token","useMsTeamsTeams","queryOptions","knock","useKnockClient","knockMsTeamsChannelId","tenantId","connectionStatus","useKnockMsTeamsClient","fetchTeams","queryKey","msTeams","getTeams","knockChannelId","tenant","$skiptoken","$top","limitPerPage","$filter","filter","$select","select","data","error","isLoading","isValidating","setSize","mutate","useSWRInfinite","initialSize","revalidateOnFocus","revalidateFirstPage","lastPage","at","hasNextPage","undefined","teams","useMemo","flatMap","page","ms_teams_teams","team","maxCount","useEffect","length","size","refetch"],"mappings":";;;;;;;AAQA,MAAMA,IAAY,KAEZC,IAAY;AAclB,SAASC,EACPC,GACAC,GACU;AAEV,SAAID,MAAc,IACT,CAACF,GAAW,EAAE,IAInBG,KAAoB,CAAC,IAAI,IAAI,EAAEC,SAASD,EAAiBE,UAAU,IAC9D,OAIF,CAACL,GAAWG,EAAiBE,cAAc,EAAE;AACtD;AAEA,SAASC,EAAgB;AAAA,EACvBC,cAAAA,IAAe,CAAA;AACO,GAA0B;AAChD,QAAMC,IAAQC,EAAe,GACvB;AAAA,IAAEC,uBAAAA;AAAAA,IAAuBC,UAAAA;AAAAA,IAAUC,kBAAAA;AAAAA,MACvCC,EAAsB,GAElBC,IAAaA,CAACC,MAClBP,EAAMQ,QAAQC,SAAS;AAAA,IACrBC,gBAAgBR;AAAAA,IAChBS,QAAQR;AAAAA,IACRJ,cAAc;AAAA,MACZa,YAAYL,KAAAA,gBAAAA,EAAW;AAAA,MACvBM,MAAMd,KAAAA,gBAAAA,EAAce;AAAAA,MACpBC,SAAShB,KAAAA,gBAAAA,EAAciB;AAAAA,MACvBC,SAASlB,KAAAA,gBAAAA,EAAcmB;AAAAA,IAAAA;AAAAA,EACzB,CACD,GAEG;AAAA,IAAEC,MAAAA;AAAAA,IAAMC,OAAAA;AAAAA,IAAOC,WAAAA;AAAAA,IAAWC,cAAAA;AAAAA,IAAcC,SAAAA;AAAAA,IAASC,QAAAA;AAAAA,EAAAA,IACrDC,EAAwChC,GAAaa,GAAY;AAAA,IAC/DoB,aAAa;AAAA,IACbC,mBAAmB;AAAA,IACnBC,qBAAqB;AAAA,EAAA,CACtB,GAEGC,IAAWV,KAAAA,gBAAAA,EAAMW,GAAG,KACpBC,IAAcF,MAAaG,UAAa,CAAC,CAACH,EAAShC,YAEnDoC,IAAQC,EACZ,OACGf,KAAQ,IACNgB,QAASC,CAASA,MAAAA,KAAAA,gBAAAA,EAAMC,cAAc,EACtCrB,OAAQsB,OAAS,CAAC,CAACA,CAAI,GAC5B,CAACnB,CAAI,CACP,GAEMoB,KAAWxC,KAAAA,gBAAAA,EAAcwC,aAAYhD;AAE3CiD,SAAAA,EAAU,MAAM;AAEZpC,IAAAA,MAAqB,eACrB,CAACgB,KACDW,KACA,CAACV,KACD,CAACC,KACDW,EAAMQ,SAASF,KAING,EAAAA,CAAAA,MAASA,IAAO,CAAC;AAAA,EAE9B,GAAG,CACDT,EAAMQ,QACNlB,GACAQ,GACAV,GACAC,GACAiB,GACAnB,GACAhB,CAAgB,CACjB,GAEM;AAAA,IACLe,MAAMc;AAAAA,IACNZ,WAAWA,KAAaC;AAAAA,IACxBqB,SAASA,MAAMnB,EAAO;AAAA,EACxB;AACF;"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import d from "../hooks/useSlackConnectionStatus.mjs";
|
|
2
|
-
import * as o from "react";
|
|
3
|
-
import "swr/infinite";
|
|
4
|
-
import { useKnockClient as S } from "../../core/context/KnockProvider.mjs";
|
|
5
|
-
import "@knocklabs/client";
|
|
6
|
-
import "fast-deep-equal";
|
|
7
|
-
import { slackProviderKey as C } from "../../core/utils.mjs";
|
|
8
|
-
import "swr";
|
|
9
|
-
import "../../i18n/context/KnockI18nProvider.mjs";
|
|
10
|
-
const a = o.createContext(null), I = (t) => {
|
|
11
|
-
const {
|
|
12
|
-
knockSlackChannelId: e,
|
|
13
|
-
children: i
|
|
14
|
-
} = t, n = "tenantId" in t ? t.tenantId : t.tenant, l = S(), {
|
|
15
|
-
connectionStatus: r,
|
|
16
|
-
setConnectionStatus: s,
|
|
17
|
-
errorLabel: c,
|
|
18
|
-
setErrorLabel: k,
|
|
19
|
-
actionLabel: m,
|
|
20
|
-
setActionLabel: u
|
|
21
|
-
} = d(l, e, n);
|
|
22
|
-
return /* @__PURE__ */ o.createElement(a.Provider, { key: C({
|
|
23
|
-
knockSlackChannelId: e,
|
|
24
|
-
tenantId: n,
|
|
25
|
-
connectionStatus: r,
|
|
26
|
-
errorLabel: c
|
|
27
|
-
}), value: {
|
|
28
|
-
connectionStatus: r,
|
|
29
|
-
setConnectionStatus: s,
|
|
30
|
-
errorLabel: c,
|
|
31
|
-
setErrorLabel: k,
|
|
32
|
-
actionLabel: m,
|
|
33
|
-
setActionLabel: u,
|
|
34
|
-
knockSlackChannelId: e,
|
|
35
|
-
// Assign the same value to both tenant and tenantId for backwards compatibility
|
|
36
|
-
tenant: n,
|
|
37
|
-
tenantId: n
|
|
38
|
-
} }, i);
|
|
39
|
-
}, L = () => {
|
|
40
|
-
const t = o.useContext(a);
|
|
41
|
-
if (t === void 0)
|
|
42
|
-
throw new Error("useKnockSlackClient must be used within a KnockSlackProvider");
|
|
43
|
-
return t;
|
|
44
|
-
};
|
|
45
|
-
export {
|
|
46
|
-
I as KnockSlackProvider,
|
|
47
|
-
L as useKnockSlackClient
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=KnockSlackProvider.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KnockSlackProvider.mjs","sources":["../../../../../src/modules/slack/context/KnockSlackProvider.tsx"],"sourcesContent":["import { useSlackConnectionStatus } from \"..\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\n\nimport { slackProviderKey } from \"../../core\";\nimport { useKnockClient } from \"../../core\";\nimport { ConnectionStatus } from \"../hooks/useSlackConnectionStatus\";\n\nexport interface KnockSlackProviderState {\n knockSlackChannelId: string;\n tenantId: string;\n /**\n * @deprecated Use `tenantId` instead. This field will be removed in a future release.\n */\n tenant: string;\n connectionStatus: ConnectionStatus;\n setConnectionStatus: (connectionStatus: ConnectionStatus) => void;\n errorLabel: string | null;\n setErrorLabel: (label: string) => void;\n actionLabel: string | null;\n setActionLabel: (label: string | null) => void;\n}\n\nconst SlackProviderStateContext =\n React.createContext<KnockSlackProviderState | null>(null);\n\nexport type KnockSlackProviderProps =\n | {\n knockSlackChannelId: string;\n /**\n * @deprecated Use `tenantId` instead. This field will be removed in a future release.\n */\n tenant: string;\n }\n | {\n knockSlackChannelId: string;\n tenantId: string;\n };\n\nexport const KnockSlackProvider: React.FC<\n PropsWithChildren<KnockSlackProviderProps>\n> = (props) => {\n const { knockSlackChannelId, children } = props;\n const tenantId = \"tenantId\" in props ? props.tenantId : props.tenant;\n\n const knock = useKnockClient();\n\n const {\n connectionStatus,\n setConnectionStatus,\n errorLabel,\n setErrorLabel,\n actionLabel,\n setActionLabel,\n } = useSlackConnectionStatus(knock, knockSlackChannelId, tenantId);\n\n return (\n <SlackProviderStateContext.Provider\n key={slackProviderKey({\n knockSlackChannelId,\n tenantId,\n connectionStatus,\n errorLabel,\n })}\n value={{\n connectionStatus,\n setConnectionStatus,\n errorLabel,\n setErrorLabel,\n actionLabel,\n setActionLabel,\n knockSlackChannelId,\n // Assign the same value to both tenant and tenantId for backwards compatibility\n tenant: tenantId,\n tenantId,\n }}\n >\n {children}\n </SlackProviderStateContext.Provider>\n );\n};\n\nexport const useKnockSlackClient = (): KnockSlackProviderState => {\n const context = React.useContext(\n SlackProviderStateContext,\n ) as KnockSlackProviderState;\n if (context === undefined) {\n throw new Error(\n \"useKnockSlackClient must be used within a KnockSlackProvider\",\n );\n }\n return context as KnockSlackProviderState;\n};\n"],"names":["SlackProviderStateContext","React","createContext","KnockSlackProvider","props","knockSlackChannelId","children","tenantId","tenant","knock","useKnockClient","connectionStatus","setConnectionStatus","errorLabel","setErrorLabel","actionLabel","setActionLabel","useSlackConnectionStatus","slackProviderKey","useKnockSlackClient","context","useContext","undefined","Error"],"mappings":";;;;;;;;;AAuBA,MAAMA,IACJC,EAAMC,cAA8C,IAAI,GAe7CC,IAERC,CAAUA,MAAA;AACP,QAAA;AAAA,IAAEC,qBAAAA;AAAAA,IAAqBC,UAAAA;AAAAA,EAAAA,IAAaF,GACpCG,IAAW,cAAcH,IAAQA,EAAMG,WAAWH,EAAMI,QAExDC,IAAQC,EAAe,GAEvB;AAAA,IACJC,kBAAAA;AAAAA,IACAC,qBAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,EACEC,IAAAA,EAAyBR,GAAOJ,GAAqBE,CAAQ;AAEjE,SACG,gBAAAN,EAAA,cAAAD,EAA0B,UAA1B,EACC,KAAKkB,EAAiB;AAAA,IACpBb,qBAAAA;AAAAA,IACAE,UAAAA;AAAAA,IACAI,kBAAAA;AAAAA,IACAE,YAAAA;AAAAA,EACD,CAAA,GACD,OAAO;AAAA,IACLF,kBAAAA;AAAAA,IACAC,qBAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAX,qBAAAA;AAAAA;AAAAA,IAEAG,QAAQD;AAAAA,IACRA,UAAAA;AAAAA,OAGDD,CACH;AAEJ,GAEaa,IAAsBA,MAA+B;AAC1DC,QAAAA,IAAUnB,EAAMoB,WACpBrB,CACF;AACA,MAAIoB,MAAYE;AACR,UAAA,IAAIC,MACR,8DACF;AAEKH,SAAAA;AACT;"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { useKnockSlackClient as S } from "../context/KnockSlackProvider.mjs";
|
|
2
|
-
import { useState as l } from "react";
|
|
3
|
-
import "../../i18n/context/KnockI18nProvider.mjs";
|
|
4
|
-
import { useTranslations as g } from "../../i18n/hooks/useTranslations.mjs";
|
|
5
|
-
import "swr/infinite";
|
|
6
|
-
import { useKnockClient as E } from "../../core/context/KnockProvider.mjs";
|
|
7
|
-
import "@knocklabs/client";
|
|
8
|
-
import "fast-deep-equal";
|
|
9
|
-
import "date-fns";
|
|
10
|
-
import D from "swr";
|
|
11
|
-
const N = "SLACK_CONNECTED_CHANNELS";
|
|
12
|
-
function j({
|
|
13
|
-
slackChannelsRecipientObject: {
|
|
14
|
-
objectId: a,
|
|
15
|
-
collection: e
|
|
16
|
-
}
|
|
17
|
-
}) {
|
|
18
|
-
const {
|
|
19
|
-
t: u
|
|
20
|
-
} = g(), s = E(), {
|
|
21
|
-
connectionStatus: d,
|
|
22
|
-
knockSlackChannelId: o
|
|
23
|
-
} = S(), [p, c] = l(null), [C, r] = l(!1), {
|
|
24
|
-
data: m,
|
|
25
|
-
mutate: h,
|
|
26
|
-
isValidating: f,
|
|
27
|
-
isLoading: k
|
|
28
|
-
} = D(
|
|
29
|
-
// Only fetch when Slack is connected
|
|
30
|
-
d === "connected" ? [N, o, e, a] : null,
|
|
31
|
-
async () => s.objects.getChannelData({
|
|
32
|
-
collection: e,
|
|
33
|
-
objectId: a,
|
|
34
|
-
channelId: o
|
|
35
|
-
}).then((t) => {
|
|
36
|
-
var n;
|
|
37
|
-
return ((n = t.data) == null ? void 0 : n.connections) ?? [];
|
|
38
|
-
}).catch(() => []),
|
|
39
|
-
{
|
|
40
|
-
onSuccess: () => {
|
|
41
|
-
c(null);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
return {
|
|
46
|
-
data: m ?? null,
|
|
47
|
-
updateConnectedChannels: async (t) => {
|
|
48
|
-
r(!0);
|
|
49
|
-
try {
|
|
50
|
-
await h(() => s.objects.setChannelData({
|
|
51
|
-
objectId: a,
|
|
52
|
-
collection: e,
|
|
53
|
-
channelId: o,
|
|
54
|
-
data: {
|
|
55
|
-
connections: t
|
|
56
|
-
}
|
|
57
|
-
}).then((n) => {
|
|
58
|
-
var i;
|
|
59
|
-
return ((i = n.data) == null ? void 0 : i.connections) ?? [];
|
|
60
|
-
}), {
|
|
61
|
-
populateCache: !0,
|
|
62
|
-
revalidate: !1,
|
|
63
|
-
optimisticData: t
|
|
64
|
-
});
|
|
65
|
-
} catch {
|
|
66
|
-
c(u("slackChannelSetError") || "");
|
|
67
|
-
}
|
|
68
|
-
r(!1);
|
|
69
|
-
},
|
|
70
|
-
updating: C,
|
|
71
|
-
loading: k || f,
|
|
72
|
-
error: p
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
export {
|
|
76
|
-
j as default
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=useConnectedSlackChannels.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useConnectedSlackChannels.mjs","sources":["../../../../../src/modules/slack/hooks/useConnectedSlackChannels.ts"],"sourcesContent":["import { useKnockSlackClient } from \"..\";\nimport { SlackChannelConnection } from \"@knocklabs/client\";\nimport { GenericData } from \"@knocklabs/types\";\nimport { useState } from \"react\";\nimport useSWR from \"swr\";\n\nimport { RecipientObject } from \"../../..\";\nimport { useKnockClient } from \"../../core\";\nimport { useTranslations } from \"../../i18n\";\n\nconst QUERY_KEY = \"SLACK_CONNECTED_CHANNELS\";\n\ntype UseConnectedSlackChannelsProps = {\n slackChannelsRecipientObject: RecipientObject;\n};\n\ntype UseConnectedSlackChannelsOutput = {\n data: SlackChannelConnection[] | null;\n updateConnectedChannels: (\n connectedChannels: SlackChannelConnection[],\n ) => Promise<void>;\n loading: boolean;\n error: string | null;\n updating: boolean;\n};\n\nfunction useConnectedSlackChannels({\n slackChannelsRecipientObject: { objectId, collection },\n}: UseConnectedSlackChannelsProps): UseConnectedSlackChannelsOutput {\n const { t } = useTranslations();\n const knock = useKnockClient();\n const { connectionStatus, knockSlackChannelId } = useKnockSlackClient();\n\n const [error, setError] = useState<string | null>(null);\n const [isUpdating, setIsUpdating] = useState(false);\n\n const {\n data: connectedChannels,\n mutate,\n isValidating,\n isLoading,\n } = useSWR<SlackChannelConnection[]>(\n // Only fetch when Slack is connected\n connectionStatus === \"connected\"\n ? [QUERY_KEY, knockSlackChannelId, collection, objectId]\n : null,\n async () => {\n return knock.objects\n .getChannelData({\n collection,\n objectId,\n channelId: knockSlackChannelId,\n })\n .then((res) => res.data?.connections ?? [])\n .catch(() => []);\n },\n {\n onSuccess: () => {\n setError(null);\n },\n },\n );\n\n const updateConnectedChannels = async (\n channelsToSendToKnock: SlackChannelConnection[],\n ) => {\n setIsUpdating(true);\n try {\n await mutate(\n () =>\n knock.objects\n .setChannelData({\n objectId,\n collection,\n channelId: knockSlackChannelId,\n data: { connections: channelsToSendToKnock },\n })\n .then((res) => (res as GenericData).data?.connections ?? []),\n {\n populateCache: true,\n revalidate: false,\n optimisticData: channelsToSendToKnock,\n },\n );\n } catch (_error) {\n setError(t(\"slackChannelSetError\") || \"\");\n }\n setIsUpdating(false);\n };\n\n return {\n data: connectedChannels ?? null,\n updateConnectedChannels,\n updating: isUpdating,\n loading: isLoading || isValidating,\n error,\n };\n}\n\nexport default useConnectedSlackChannels;\n"],"names":["QUERY_KEY","useConnectedSlackChannels","slackChannelsRecipientObject","objectId","collection","t","useTranslations","knock","useKnockClient","connectionStatus","knockSlackChannelId","useKnockSlackClient","error","setError","useState","isUpdating","setIsUpdating","data","connectedChannels","mutate","isValidating","isLoading","useSWR","objects","getChannelData","channelId","then","res","connections","catch","onSuccess","updateConnectedChannels","channelsToSendToKnock","setChannelData","populateCache","revalidate","optimisticData","updating","loading"],"mappings":";;;;;;;;;;AAUA,MAAMA,IAAY;AAgBlB,SAASC,EAA0B;AAAA,EACjCC,8BAA8B;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,YAAAA;AAAAA,EAAAA;AACZ,GAAoC;AAC5D,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAgB,GACxBC,IAAQC,EAAe,GACvB;AAAA,IAAEC,kBAAAA;AAAAA,IAAkBC,qBAAAA;AAAAA,MAAwBC,EAAoB,GAEhE,CAACC,GAAOC,CAAQ,IAAIC,EAAwB,IAAI,GAChD,CAACC,GAAYC,CAAa,IAAIF,EAAS,EAAK,GAE5C;AAAA,IACJG,MAAMC;AAAAA,IACNC,QAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACAC,WAAAA;AAAAA,EAAAA,IACEC;AAAAA;AAAAA,IAEFb,MAAqB,cACjB,CAACT,GAAWU,GAAqBN,GAAYD,CAAQ,IACrD;AAAA,IACJ,YACSI,EAAMgB,QACVC,eAAe;AAAA,MACdpB,YAAAA;AAAAA,MACAD,UAAAA;AAAAA,MACAsB,WAAWf;AAAAA,IACZ,CAAA,EACAgB,KAAMC,CAAAA,MAAAA;;AAAQA,eAAAA,IAAAA,EAAIV,SAAJU,gBAAAA,EAAUC,gBAAe;KAAE,EACzCC,MAAM,MAAM,EAAE;AAAA,IAEnB;AAAA,MACEC,WAAWA,MAAM;AACfjB,QAAAA,EAAS,IAAI;AAAA,MAAA;AAAA,IACf;AAAA,EAEJ;AA6BO,SAAA;AAAA,IACLI,MAAMC,KAAqB;AAAA,IAC3Ba,yBA7B8B,OAC9BC,MACG;AACHhB,MAAAA,EAAc,EAAI;AACd,UAAA;AACF,cAAMG,EACJ,MACEZ,EAAMgB,QACHU,eAAe;AAAA,UACd9B,UAAAA;AAAAA,UACAC,YAAAA;AAAAA,UACAqB,WAAWf;AAAAA,UACXO,MAAM;AAAA,YAAEW,aAAaI;AAAAA,UAAAA;AAAAA,QAAsB,CAC5C,EACAN,KAAMC,CAAAA,MAAAA;;AAASA,mBAAAA,IAAAA,EAAoBV,SAApBU,gBAAAA,EAA0BC,gBAAe,CAAA;AAAA,SAAE,GAC/D;AAAA,UACEM,eAAe;AAAA,UACfC,YAAY;AAAA,UACZC,gBAAgBJ;AAAAA,QAAAA,CAEpB;AAAA,cACe;AACN3B,QAAAA,EAAAA,EAAE,sBAAsB,KAAK,EAAE;AAAA,MAAA;AAE1CW,MAAAA,EAAc,EAAK;AAAA,IACrB;AAAA,IAKEqB,UAAUtB;AAAAA,IACVuB,SAASjB,KAAaD;AAAAA,IACtBR,OAAAA;AAAAA,EACF;AACF;"}
|