roamjs-components 0.53.2 → 0.53.5
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/LICENSE +21 -21
- package/README.md +154 -154
- package/backend/emailCatch.d.ts +4 -4
- package/backend/emailCatch.js +11 -11
- package/backend/emailError.d.ts +4 -4
- package/backend/emailError.js +56 -56
- package/backend/getRoamJSUser.d.ts +11 -11
- package/backend/getRoamJSUser.js +30 -30
- package/backend/headers.d.ts +5 -5
- package/backend/headers.js +7 -7
- package/backend/index.d.ts +6 -6
- package/backend/index.js +20 -20
- package/backend/meterRoamJSUser.d.ts +4 -4
- package/backend/meterRoamJSUser.js +14 -14
- package/backend/putRoamJSUser.d.ts +10 -10
- package/backend/putRoamJSUser.js +25 -25
- package/components/BlockErrorBoundary.d.ts +15 -15
- package/components/BlockErrorBoundary.js +27 -27
- package/components/BlockInput.d.ts +12 -12
- package/components/BlockInput.js +53 -53
- package/components/ComponentContainer.d.ts +9 -9
- package/components/ComponentContainer.js +46 -46
- package/components/ConfigPage.d.ts +99 -99
- package/components/ConfigPage.js +751 -751
- package/components/CursorMenu.d.ts +21 -21
- package/components/CursorMenu.js +181 -181
- package/components/Description.d.ts +5 -5
- package/components/Description.js +16 -16
- package/components/ExternalLogin.d.ts +18 -18
- package/components/ExternalLogin.js +131 -131
- package/components/Filter.d.ts +14 -14
- package/components/Filter.js +147 -147
- package/components/Loading.d.ts +4 -4
- package/components/Loading.js +33 -33
- package/components/MenuItemSelect.d.ts +10 -10
- package/components/MenuItemSelect.js +13 -13
- package/components/OauthSelect.d.ts +5 -5
- package/components/OauthSelect.js +25 -25
- package/components/PageInput.d.ts +10 -10
- package/components/PageInput.js +69 -69
- package/components/ServiceComponents.d.ts +49 -49
- package/components/ServiceComponents.js +277 -277
- package/components/SimpleAlert.d.ts +12 -12
- package/components/SimpleAlert.js +38 -38
- package/components/Toast.d.ts +10 -10
- package/components/Toast.js +41 -41
- package/components/TokenDialog.d.ts +11 -11
- package/components/TokenDialog.js +100 -100
- package/components/index.d.ts +15 -15
- package/components/index.js +60 -60
- package/date/constants.d.ts +2 -2
- package/date/constants.js +5 -5
- package/date/index.d.ts +5 -5
- package/date/index.js +13 -13
- package/date/parseRoamDate.d.ts +2 -2
- package/date/parseRoamDate.js +6 -6
- package/date/parseRoamDateUid.d.ts +2 -2
- package/date/parseRoamDateUid.js +6 -6
- package/date/toRoamDate.d.ts +2 -2
- package/date/toRoamDate.js +6 -6
- package/date/toRoamDateUid.d.ts +2 -2
- package/date/toRoamDateUid.js +6 -6
- package/dom/addBlockCommand.d.ts +5 -5
- package/dom/addBlockCommand.js +53 -53
- package/dom/addOldRoamJSDependency.d.ts +2 -2
- package/dom/addOldRoamJSDependency.js +10 -10
- package/dom/addRoamJSDependency.d.ts +2 -2
- package/dom/addRoamJSDependency.js +8 -8
- package/dom/addScriptAsDependency.d.ts +6 -6
- package/dom/addScriptAsDependency.js +16 -16
- package/dom/addStyle.d.ts +2 -2
- package/dom/addStyle.js +14 -14
- package/dom/constants.d.ts +1 -1
- package/dom/constants.js +4 -4
- package/dom/createBlockObserver.d.ts +7 -7
- package/dom/createBlockObserver.js +43 -43
- package/dom/createButtonObserver.d.ts +6 -6
- package/dom/createButtonObserver.js +21 -21
- package/dom/createDivObserver.d.ts +2 -2
- package/dom/createDivObserver.js +8 -8
- package/dom/createHTMLObserver.d.ts +8 -8
- package/dom/createHTMLObserver.js +24 -24
- package/dom/createHashtagObserver.d.ts +5 -5
- package/dom/createHashtagObserver.js +16 -16
- package/dom/createIconButton.d.ts +2 -2
- package/dom/createIconButton.js +12 -12
- package/dom/createObserver.d.ts +2 -2
- package/dom/createObserver.js +6 -6
- package/dom/createOverlayObserver.d.ts +2 -2
- package/dom/createOverlayObserver.js +6 -6
- package/dom/createPageObserver.d.ts +2 -2
- package/dom/createPageObserver.js +34 -34
- package/dom/createPageTitleObserver.d.ts +6 -6
- package/dom/createPageTitleObserver.js +29 -29
- package/dom/genericError.d.ts +4 -4
- package/dom/genericError.js +16 -16
- package/dom/getActiveUids.d.ts +3 -3
- package/dom/getActiveUids.js +6 -6
- package/dom/getBlockUidFromTarget.d.ts +2 -2
- package/dom/getBlockUidFromTarget.js +33 -33
- package/dom/getCurrentPageUid.d.ts +2 -2
- package/dom/getCurrentPageUid.js +6 -6
- package/dom/getDomRefs.d.ts +2 -2
- package/dom/getDomRefs.js +12 -12
- package/dom/getDropUidOffset.d.ts +5 -5
- package/dom/getDropUidOffset.js +27 -27
- package/dom/getMutatedNodes.d.ts +7 -7
- package/dom/getMutatedNodes.js +11 -11
- package/dom/getPageTitleByHtmlElement.d.ts +2 -2
- package/dom/getPageTitleByHtmlElement.js +12 -12
- package/dom/getPageTitleValueByHtmlElement.d.ts +2 -2
- package/dom/getPageTitleValueByHtmlElement.js +27 -27
- package/dom/getReferenceBlockUid.d.ts +2 -2
- package/dom/getReferenceBlockUid.js +18 -18
- package/dom/getRoamUrl.d.ts +2 -2
- package/dom/getRoamUrl.js +4 -4
- package/dom/getRoamUrlByPage.d.ts +2 -2
- package/dom/getRoamUrlByPage.js +10 -10
- package/dom/getUids.d.ts +3 -3
- package/dom/getUids.js +8 -8
- package/dom/getUidsFromButton.d.ts +3 -3
- package/dom/getUidsFromButton.js +9 -9
- package/dom/getUidsFromId.d.ts +5 -5
- package/dom/getUidsFromId.js +15 -15
- package/dom/index.d.ts +31 -31
- package/dom/index.js +65 -65
- package/dom/openBlock.d.ts +2 -2
- package/dom/openBlock.js +6 -6
- package/dom/openBlockElement.d.ts +2 -2
- package/dom/openBlockElement.js +16 -16
- package/dom/parseRoamBlocksToHtml.d.ts +9 -9
- package/dom/parseRoamBlocksToHtml.js +75 -75
- package/dom/resolveRefs.d.ts +2 -2
- package/dom/resolveRefs.js +24 -24
- package/events/index.d.ts +1 -1
- package/events/index.js +8 -8
- package/events/watchOnce.d.ts +3 -3
- package/events/watchOnce.js +11 -11
- package/hooks/index.d.ts +3 -3
- package/hooks/index.js +12 -12
- package/hooks/useArrowKeyDown.d.ts +8 -8
- package/hooks/useArrowKeyDown.js +31 -31
- package/hooks/useRoamJSTokenWarning.d.ts +2 -2
- package/hooks/useRoamJSTokenWarning.js +11 -11
- package/hooks/useSubTree.d.ts +3 -3
- package/hooks/useSubTree.js +11 -11
- package/index.d.ts +11 -11
- package/index.js +14 -14
- package/marked/index.d.ts +14 -14
- package/marked/index.js +518 -518
- package/package.json +86 -86
- package/queries/getAllBlockUids.d.ts +2 -2
- package/queries/getAllBlockUids.js +6 -6
- package/queries/getAllBlockUidsAndTexts.d.ts +5 -5
- package/queries/getAllBlockUidsAndTexts.js +6 -6
- package/queries/getAllPageNames.d.ts +2 -2
- package/queries/getAllPageNames.js +6 -6
- package/queries/getAttributeValueByBlockAndName.d.ts +5 -5
- package/queries/getAttributeValueByBlockAndName.js +11 -11
- package/queries/getBasicTreeByParentUid.d.ts +3 -3
- package/queries/getBasicTreeByParentUid.js +13 -13
- package/queries/getBlockUidAndTextIncludingText.d.ts +5 -5
- package/queries/getBlockUidAndTextIncludingText.js +6 -6
- package/queries/getBlockUidByTextOnPage.d.ts +5 -5
- package/queries/getBlockUidByTextOnPage.js +7 -7
- package/queries/getBlockUidsAndTextsReferencingPage.d.ts +5 -5
- package/queries/getBlockUidsAndTextsReferencingPage.js +11 -11
- package/queries/getBlockUidsByPageTitle.d.ts +2 -2
- package/queries/getBlockUidsByPageTitle.js +8 -8
- package/queries/getBlockUidsReferencingBlock.d.ts +2 -2
- package/queries/getBlockUidsReferencingBlock.js +6 -6
- package/queries/getBlockUidsReferencingPage.d.ts +2 -2
- package/queries/getBlockUidsReferencingPage.js +8 -8
- package/queries/getBlockUidsWithParentUid.d.ts +2 -2
- package/queries/getBlockUidsWithParentUid.js +6 -6
- package/queries/getChildrenLengthByPageUid.d.ts +2 -2
- package/queries/getChildrenLengthByPageUid.js +4 -4
- package/queries/getCreateTimeByBlockUid.d.ts +2 -2
- package/queries/getCreateTimeByBlockUid.js +7 -7
- package/queries/getCurrentUser.d.ts +2 -2
- package/queries/getCurrentUser.js +11 -11
- package/queries/getCurrentUserDisplayName.d.ts +2 -2
- package/queries/getCurrentUserDisplayName.js +13 -13
- package/queries/getCurrentUserEmail.d.ts +2 -2
- package/queries/getCurrentUserEmail.js +13 -13
- package/queries/getCurrentUserUid.d.ts +2 -2
- package/queries/getCurrentUserUid.js +13 -13
- package/queries/getDisplayNameByEmail.d.ts +2 -2
- package/queries/getDisplayNameByEmail.js +7 -7
- package/queries/getDisplayNameByUid.d.ts +2 -2
- package/queries/getDisplayNameByUid.js +7 -7
- package/queries/getEditTimeByBlockUid.d.ts +2 -2
- package/queries/getEditTimeByBlockUid.js +7 -7
- package/queries/getEditedUserEmailByBlockUid.d.ts +2 -2
- package/queries/getEditedUserEmailByBlockUid.js +7 -7
- package/queries/getFirstChildTextByBlockUid.d.ts +2 -2
- package/queries/getFirstChildTextByBlockUid.js +7 -7
- package/queries/getFirstChildUidByBlockUid.d.ts +2 -2
- package/queries/getFirstChildUidByBlockUid.js +5 -5
- package/queries/getFullTreeByParentUid.d.ts +3 -3
- package/queries/getFullTreeByParentUid.js +26 -26
- package/queries/getLinkedPageTitlesUnderUid.d.ts +2 -2
- package/queries/getLinkedPageTitlesUnderUid.js +6 -6
- package/queries/getNthChildUidByBlockUid.d.ts +5 -5
- package/queries/getNthChildUidByBlockUid.js +7 -7
- package/queries/getOrderByBlockUid.d.ts +2 -2
- package/queries/getOrderByBlockUid.js +7 -7
- package/queries/getPageTitleByBlockUid.d.ts +2 -2
- package/queries/getPageTitleByBlockUid.js +7 -7
- package/queries/getPageTitleByPageUid.d.ts +2 -2
- package/queries/getPageTitleByPageUid.js +9 -9
- package/queries/getPageTitleReferencesByPageTitle.d.ts +2 -2
- package/queries/getPageTitleReferencesByPageTitle.js +8 -8
- package/queries/getPageTitlesAndBlockUidsReferencingPage.d.ts +5 -5
- package/queries/getPageTitlesAndBlockUidsReferencingPage.js +8 -8
- package/queries/getPageTitlesAndUidsDirectlyReferencingPage.d.ts +5 -5
- package/queries/getPageTitlesAndUidsDirectlyReferencingPage.js +8 -8
- package/queries/getPageTitlesReferencingBlockUid.d.ts +2 -2
- package/queries/getPageTitlesReferencingBlockUid.js +6 -6
- package/queries/getPageTitlesStartingWithPrefix.d.ts +2 -2
- package/queries/getPageTitlesStartingWithPrefix.js +6 -6
- package/queries/getPageUidByPageTitle.d.ts +2 -2
- package/queries/getPageUidByPageTitle.js +9 -9
- package/queries/getPageViewType.d.ts +3 -3
- package/queries/getPageViewType.js +9 -9
- package/queries/getParentTextByBlockUid.d.ts +2 -2
- package/queries/getParentTextByBlockUid.js +7 -7
- package/queries/getParentTextByBlockUidAndTag.d.ts +5 -5
- package/queries/getParentTextByBlockUidAndTag.js +7 -7
- package/queries/getParentUidByBlockUid.d.ts +2 -2
- package/queries/getParentUidByBlockUid.js +7 -7
- package/queries/getParentUidsOfBlockUid.d.ts +2 -2
- package/queries/getParentUidsOfBlockUid.js +6 -6
- package/queries/getSettingsByEmail.d.ts +3 -3
- package/queries/getSettingsByEmail.js +7 -7
- package/queries/getShallowTreeByParentUid.d.ts +5 -5
- package/queries/getShallowTreeByParentUid.js +10 -10
- package/queries/getTextByBlockUid.d.ts +2 -2
- package/queries/getTextByBlockUid.js +7 -7
- package/queries/index.d.ts +45 -45
- package/queries/index.js +96 -96
- package/queries/isTagOnPage.d.ts +5 -5
- package/queries/isTagOnPage.js +9 -9
- package/queries/normalizePageTitle.d.ts +2 -2
- package/queries/normalizePageTitle.js +4 -4
- package/types/index.d.ts +461 -459
- package/types/index.js +2 -2
- package/types/query-builder.d.ts +16 -16
- package/types/query-builder.js +2 -2
- package/util/addInputSetting.d.ts +7 -7
- package/util/addInputSetting.js +25 -25
- package/util/apiDelete.d.ts +2 -2
- package/util/apiDelete.js +9 -9
- package/util/apiGet.d.ts +2 -2
- package/util/apiGet.js +9 -9
- package/util/apiPost.d.ts +2 -2
- package/util/apiPost.js +9 -9
- package/util/apiPut.d.ts +2 -2
- package/util/apiPut.js +9 -9
- package/util/createOverlayRender.d.ts +6 -6
- package/util/createOverlayRender.js +18 -18
- package/util/createTagRegex.d.ts +2 -2
- package/util/createTagRegex.js +4 -4
- package/util/extractRef.d.ts +2 -2
- package/util/extractRef.js +8 -8
- package/util/extractTag.d.ts +2 -2
- package/util/extractTag.js +12 -12
- package/util/getAuthorizationHeader.d.ts +2 -2
- package/util/getAuthorizationHeader.js +12 -12
- package/util/getGraph.d.ts +2 -2
- package/util/getGraph.js +8 -8
- package/util/getLocalStorageKey.d.ts +2 -2
- package/util/getLocalStorageKey.js +6 -6
- package/util/getOauth.d.ts +2 -2
- package/util/getOauth.js +50 -50
- package/util/getOauthAccounts.d.ts +2 -2
- package/util/getOauthAccounts.js +21 -21
- package/util/getRenderRoot.d.ts +2 -2
- package/util/getRenderRoot.js +11 -11
- package/util/getSettingIntFromTree.d.ts +7 -7
- package/util/getSettingIntFromTree.js +11 -11
- package/util/getSettingValueFromTree.d.ts +7 -7
- package/util/getSettingValueFromTree.js +13 -13
- package/util/getSettingValuesFromTree.d.ts +7 -7
- package/util/getSettingValuesFromTree.js +12 -12
- package/util/getSubTree.d.ts +8 -8
- package/util/getSubTree.js +19 -19
- package/util/getToken.d.ts +2 -2
- package/util/getToken.js +9 -9
- package/util/getTokenFromTree.d.ts +2 -2
- package/util/getTokenFromTree.js +5 -5
- package/util/idToTitle.d.ts +2 -2
- package/util/idToTitle.js +8 -8
- package/util/index.d.ts +23 -23
- package/util/index.js +52 -52
- package/util/isControl.d.ts +2 -2
- package/util/isControl.js +6 -6
- package/util/localStorageGet.d.ts +2 -2
- package/util/localStorageGet.js +8 -8
- package/util/localStorageRemove.d.ts +2 -2
- package/util/localStorageRemove.js +6 -6
- package/util/localStorageSet.d.ts +2 -2
- package/util/localStorageSet.js +8 -8
- package/util/registerSmartBlocksCommand.d.ts +8 -8
- package/util/registerSmartBlocksCommand.js +24 -24
- package/util/runExtension.d.ts +4 -4
- package/util/runExtension.js +40 -40
- package/util/setInputSetting.d.ts +7 -7
- package/util/setInputSetting.js +33 -33
- package/util/setInputSettings.d.ts +7 -7
- package/util/setInputSettings.js +28 -28
- package/util/toConfigPageName.d.ts +2 -2
- package/util/toConfigPageName.js +4 -4
- package/util/toFlexRegex.d.ts +2 -2
- package/util/toFlexRegex.js +4 -4
- package/writes/clearBlockById.d.ts +2 -2
- package/writes/clearBlockById.js +11 -11
- package/writes/clearBlockByUid.d.ts +2 -2
- package/writes/clearBlockByUid.js +9 -9
- package/writes/createBlock.d.ts +9 -9
- package/writes/createBlock.js +61 -61
- package/writes/createPage.d.ts +7 -7
- package/writes/createPage.js +18 -18
- package/writes/deleteBlock.d.ts +2 -2
- package/writes/deleteBlock.js +6 -6
- package/writes/index.d.ts +8 -8
- package/writes/index.js +22 -22
- package/writes/openBlockInSidebar.d.ts +2 -2
- package/writes/openBlockInSidebar.js +13 -13
- package/writes/updateActiveBlock.d.ts +2 -2
- package/writes/updateActiveBlock.js +11 -11
- package/writes/updateBlock.d.ts +5 -5
- package/writes/updateBlock.js +17 -17
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export declare const getCoordsFromTextarea: (t: HTMLTextAreaElement) => {
|
|
3
|
-
top: number;
|
|
4
|
-
left: number;
|
|
5
|
-
};
|
|
6
|
-
declare type Props<T> = {
|
|
7
|
-
textarea: HTMLTextAreaElement;
|
|
8
|
-
onItemSelect: (item: {
|
|
9
|
-
text: string;
|
|
10
|
-
id: string;
|
|
11
|
-
} & T) => void;
|
|
12
|
-
initialItems: ({
|
|
13
|
-
text: string;
|
|
14
|
-
id: string;
|
|
15
|
-
} & T)[];
|
|
16
|
-
};
|
|
17
|
-
declare const CursorMenu: <T extends Record<string, string>>({ textarea, onClose, onItemSelect, initialItems, }: {
|
|
18
|
-
onClose: () => void;
|
|
19
|
-
} & Props<T>) => React.ReactElement;
|
|
20
|
-
export declare const render: <T extends Record<string, string>>(props: Props<T>) => void;
|
|
21
|
-
export default CursorMenu;
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const getCoordsFromTextarea: (t: HTMLTextAreaElement) => {
|
|
3
|
+
top: number;
|
|
4
|
+
left: number;
|
|
5
|
+
};
|
|
6
|
+
declare type Props<T> = {
|
|
7
|
+
textarea: HTMLTextAreaElement;
|
|
8
|
+
onItemSelect: (item: {
|
|
9
|
+
text: string;
|
|
10
|
+
id: string;
|
|
11
|
+
} & T) => void;
|
|
12
|
+
initialItems: ({
|
|
13
|
+
text: string;
|
|
14
|
+
id: string;
|
|
15
|
+
} & T)[];
|
|
16
|
+
};
|
|
17
|
+
declare const CursorMenu: <T extends Record<string, string>>({ textarea, onClose, onItemSelect, initialItems, }: {
|
|
18
|
+
onClose: () => void;
|
|
19
|
+
} & Props<T>) => React.ReactElement;
|
|
20
|
+
export declare const render: <T extends Record<string, string>>(props: Props<T>) => void;
|
|
21
|
+
export default CursorMenu;
|
package/components/CursorMenu.js
CHANGED
|
@@ -1,182 +1,182 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.render = exports.getCoordsFromTextarea = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const core_1 = require("@blueprintjs/core");
|
|
6
|
-
const react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
7
|
-
const react_dom_1 = (0, tslib_1.__importDefault)(require("react-dom"));
|
|
8
|
-
const fuzzy_1 = (0, tslib_1.__importDefault)(require("fuzzy"));
|
|
9
|
-
const dom_1 = require("../dom");
|
|
10
|
-
const writes_1 = require("../writes");
|
|
11
|
-
// inspired by https://github.com/zurb/tribute/blob/master/src/TributeRange.js#L446-L556
|
|
12
|
-
const getCoordsFromTextarea = (t) => {
|
|
13
|
-
const properties = [
|
|
14
|
-
"direction",
|
|
15
|
-
"boxSizing",
|
|
16
|
-
"width",
|
|
17
|
-
"height",
|
|
18
|
-
"overflowX",
|
|
19
|
-
"overflowY",
|
|
20
|
-
"borderTopWidth",
|
|
21
|
-
"borderRightWidth",
|
|
22
|
-
"borderBottomWidth",
|
|
23
|
-
"borderLeftWidth",
|
|
24
|
-
"paddingTop",
|
|
25
|
-
"paddingRight",
|
|
26
|
-
"paddingBottom",
|
|
27
|
-
"paddingLeft",
|
|
28
|
-
"fontStyle",
|
|
29
|
-
"fontVariant",
|
|
30
|
-
"fontWeight",
|
|
31
|
-
"fontStretch",
|
|
32
|
-
"fontSize",
|
|
33
|
-
"fontSizeAdjust",
|
|
34
|
-
"lineHeight",
|
|
35
|
-
"fontFamily",
|
|
36
|
-
"textAlign",
|
|
37
|
-
"textTransform",
|
|
38
|
-
"textIndent",
|
|
39
|
-
"textDecoration",
|
|
40
|
-
"letterSpacing",
|
|
41
|
-
"wordSpacing",
|
|
42
|
-
];
|
|
43
|
-
const div = document.createElement("div");
|
|
44
|
-
div.id = "input-textarea-caret-position-mirror-div";
|
|
45
|
-
document.body.appendChild(div);
|
|
46
|
-
const style = div.style;
|
|
47
|
-
const computed = getComputedStyle(t);
|
|
48
|
-
style.whiteSpace = "pre-wrap";
|
|
49
|
-
style.wordWrap = "break-word";
|
|
50
|
-
// position off-screen
|
|
51
|
-
style.position = "absolute";
|
|
52
|
-
style.visibility = "hidden";
|
|
53
|
-
style.overflow = "hidden";
|
|
54
|
-
// transfer the element's properties to the div
|
|
55
|
-
properties.forEach((prop) => {
|
|
56
|
-
style[prop] = computed[prop];
|
|
57
|
-
});
|
|
58
|
-
div.textContent = t.value.substring(0, t.selectionStart);
|
|
59
|
-
const span = document.createElement("span");
|
|
60
|
-
span.textContent = t.value.substring(t.selectionStart) || ".";
|
|
61
|
-
div.appendChild(span);
|
|
62
|
-
const doc = document.documentElement;
|
|
63
|
-
const windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);
|
|
64
|
-
const windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
|
|
65
|
-
const coordinates = {
|
|
66
|
-
top: windowTop +
|
|
67
|
-
span.offsetTop +
|
|
68
|
-
parseInt(computed.borderTopWidth) +
|
|
69
|
-
parseInt(computed.fontSize) -
|
|
70
|
-
t.scrollTop -
|
|
71
|
-
9,
|
|
72
|
-
left: windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth) - 1,
|
|
73
|
-
};
|
|
74
|
-
document.body.removeChild(div);
|
|
75
|
-
return coordinates;
|
|
76
|
-
};
|
|
77
|
-
exports.getCoordsFromTextarea = getCoordsFromTextarea;
|
|
78
|
-
const VALID_FILTER = /^[\w\d\s_-]$/;
|
|
79
|
-
const CursorMenu = ({ textarea, onClose, onItemSelect, initialItems, }) => {
|
|
80
|
-
const itemsById = (0, react_1.useMemo)(() => Object.fromEntries(initialItems.map((item) => [item.id, item])), [initialItems]);
|
|
81
|
-
const menuRef = (0, react_1.useRef)(null);
|
|
82
|
-
const [activeIndex, setActiveIndex] = (0, react_1.useState)(0);
|
|
83
|
-
const [filter, setFilter] = (0, react_1.useState)("");
|
|
84
|
-
const onPopoverClose = (0, react_1.useCallback)(() => {
|
|
85
|
-
if (menuRef.current) {
|
|
86
|
-
const value = menuRef.current.getAttribute("data-filter");
|
|
87
|
-
const text = `${textarea.value.substring(0, textarea.selectionStart)}${value}${textarea.value.substring(textarea.selectionStart)}`;
|
|
88
|
-
(0, writes_1.updateBlock)({ uid: (0, dom_1.getUids)(textarea).blockUid, text });
|
|
89
|
-
setTimeout(() => {
|
|
90
|
-
textarea.setSelectionRange(textarea.selectionStart + text.length, textarea.selectionEnd + text.length);
|
|
91
|
-
onClose();
|
|
92
|
-
}, 1);
|
|
93
|
-
}
|
|
94
|
-
}, [onClose, textarea, menuRef]);
|
|
95
|
-
const items = (0, react_1.useMemo)(() => (filter
|
|
96
|
-
? fuzzy_1.default
|
|
97
|
-
.filter(filter, initialItems, {
|
|
98
|
-
extract: (s) => s.text,
|
|
99
|
-
pre: "<b>",
|
|
100
|
-
post: "</b>",
|
|
101
|
-
})
|
|
102
|
-
.map((r) => (Object.assign(Object.assign({}, r.original), { displayName: r.string })))
|
|
103
|
-
: initialItems.map((r) => (Object.assign(Object.assign({}, r), { displayName: r.text })))).slice(0, 10), [filter, initialItems]);
|
|
104
|
-
const onSelect = (0, react_1.useCallback)((item) => {
|
|
105
|
-
if (menuRef.current) {
|
|
106
|
-
onItemSelect(item);
|
|
107
|
-
onClose();
|
|
108
|
-
}
|
|
109
|
-
}, [menuRef, onClose, textarea, onItemSelect]);
|
|
110
|
-
const keydownListener = (0, react_1.useCallback)((e) => {
|
|
111
|
-
var _a;
|
|
112
|
-
if (menuRef.current &&
|
|
113
|
-
(e.key === "ArrowRight" || e.key === "ArrowDown")) {
|
|
114
|
-
const index = Number(menuRef.current.getAttribute("data-active-index"));
|
|
115
|
-
const count = menuRef.current.childElementCount;
|
|
116
|
-
setActiveIndex((index + 1) % count);
|
|
117
|
-
}
|
|
118
|
-
else if (menuRef.current &&
|
|
119
|
-
(e.key === "ArrowLeft" || e.key === "ArrowUp")) {
|
|
120
|
-
const index = Number(menuRef.current.getAttribute("data-active-index"));
|
|
121
|
-
const count = menuRef.current.childElementCount;
|
|
122
|
-
setActiveIndex((index - 1 + count) % count);
|
|
123
|
-
}
|
|
124
|
-
else if (menuRef.current && e.key === "Enter") {
|
|
125
|
-
const index = Number(menuRef.current.getAttribute("data-active-index"));
|
|
126
|
-
const id = ((_a = menuRef.current.children[index]
|
|
127
|
-
.querySelector(".bp3-menu-item")) === null || _a === void 0 ? void 0 : _a.getAttribute("data-id")) || "";
|
|
128
|
-
onSelect(itemsById[id]);
|
|
129
|
-
}
|
|
130
|
-
else if (menuRef.current && VALID_FILTER.test(e.key)) {
|
|
131
|
-
const value = menuRef.current.getAttribute("data-filter");
|
|
132
|
-
setFilter(`${value}${e.key}`);
|
|
133
|
-
}
|
|
134
|
-
else if (menuRef.current && e.key === "Backspace") {
|
|
135
|
-
const value = menuRef.current.getAttribute("data-filter");
|
|
136
|
-
if (value) {
|
|
137
|
-
setFilter(value.slice(0, -1));
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
onClose();
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
else if (e.key !== "Shift") {
|
|
145
|
-
onPopoverClose();
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
e.stopPropagation();
|
|
149
|
-
e.preventDefault();
|
|
150
|
-
}, [menuRef, setActiveIndex, onClose, onPopoverClose]);
|
|
151
|
-
(0, react_1.useEffect)(() => {
|
|
152
|
-
textarea.addEventListener("keydown", keydownListener);
|
|
153
|
-
return () => {
|
|
154
|
-
textarea.removeEventListener("keydown", keydownListener);
|
|
155
|
-
};
|
|
156
|
-
}, [keydownListener]);
|
|
157
|
-
return (react_1.default.createElement(core_1.Popover, { onClose: onPopoverClose, isOpen: true, canEscapeKeyClose: true, minimal: true, target: react_1.default.createElement("span", null), position: core_1.Position.BOTTOM_LEFT, modifiers: {
|
|
158
|
-
flip: { enabled: false },
|
|
159
|
-
preventOverflow: { enabled: false },
|
|
160
|
-
}, autoFocus: false, content: react_1.default.createElement(core_1.Menu, { ulRef: menuRef, "data-active-index": activeIndex, "data-filter": filter, style: { width: 300 } }, items.length ? (items.map(({ id, displayName }, i) => {
|
|
161
|
-
return (react_1.default.createElement(core_1.MenuItem, { key: id, "data-id": id, text: displayName
|
|
162
|
-
.split(/<b>(.*?)<\/b>/)
|
|
163
|
-
.map((part, i) => i % 2 === 1 ? (react_1.default.createElement("b", { key: i }, part)) : (react_1.default.createElement("span", { key: i }, part))), active: i === activeIndex, onMouseEnter: () => setActiveIndex(i), onClick: () => onSelect(itemsById[id]) }));
|
|
164
|
-
})) : (react_1.default.createElement(core_1.MenuItem, { text: react_1.default.createElement("span", { style: { opacity: 0.75 } },
|
|
165
|
-
react_1.default.createElement("i", null, "None")), active: false, disabled: true }))) }));
|
|
166
|
-
};
|
|
167
|
-
const render = (props) => {
|
|
168
|
-
var _a;
|
|
169
|
-
const parent = document.createElement("span");
|
|
170
|
-
const coords = (0, exports.getCoordsFromTextarea)(props.textarea);
|
|
171
|
-
parent.style.position = "absolute";
|
|
172
|
-
parent.style.left = `${coords.left}px`;
|
|
173
|
-
parent.style.top = `${coords.top}px`;
|
|
174
|
-
(_a = props.textarea.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(parent, props.textarea);
|
|
175
|
-
react_dom_1.default.render(react_1.default.createElement(CursorMenu, Object.assign({}, props, { onClose: () => {
|
|
176
|
-
react_dom_1.default.unmountComponentAtNode(parent);
|
|
177
|
-
parent.remove();
|
|
178
|
-
} })), parent);
|
|
179
|
-
};
|
|
180
|
-
exports.render = render;
|
|
181
|
-
exports.default = CursorMenu;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.render = exports.getCoordsFromTextarea = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@blueprintjs/core");
|
|
6
|
+
const react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
7
|
+
const react_dom_1 = (0, tslib_1.__importDefault)(require("react-dom"));
|
|
8
|
+
const fuzzy_1 = (0, tslib_1.__importDefault)(require("fuzzy"));
|
|
9
|
+
const dom_1 = require("../dom");
|
|
10
|
+
const writes_1 = require("../writes");
|
|
11
|
+
// inspired by https://github.com/zurb/tribute/blob/master/src/TributeRange.js#L446-L556
|
|
12
|
+
const getCoordsFromTextarea = (t) => {
|
|
13
|
+
const properties = [
|
|
14
|
+
"direction",
|
|
15
|
+
"boxSizing",
|
|
16
|
+
"width",
|
|
17
|
+
"height",
|
|
18
|
+
"overflowX",
|
|
19
|
+
"overflowY",
|
|
20
|
+
"borderTopWidth",
|
|
21
|
+
"borderRightWidth",
|
|
22
|
+
"borderBottomWidth",
|
|
23
|
+
"borderLeftWidth",
|
|
24
|
+
"paddingTop",
|
|
25
|
+
"paddingRight",
|
|
26
|
+
"paddingBottom",
|
|
27
|
+
"paddingLeft",
|
|
28
|
+
"fontStyle",
|
|
29
|
+
"fontVariant",
|
|
30
|
+
"fontWeight",
|
|
31
|
+
"fontStretch",
|
|
32
|
+
"fontSize",
|
|
33
|
+
"fontSizeAdjust",
|
|
34
|
+
"lineHeight",
|
|
35
|
+
"fontFamily",
|
|
36
|
+
"textAlign",
|
|
37
|
+
"textTransform",
|
|
38
|
+
"textIndent",
|
|
39
|
+
"textDecoration",
|
|
40
|
+
"letterSpacing",
|
|
41
|
+
"wordSpacing",
|
|
42
|
+
];
|
|
43
|
+
const div = document.createElement("div");
|
|
44
|
+
div.id = "input-textarea-caret-position-mirror-div";
|
|
45
|
+
document.body.appendChild(div);
|
|
46
|
+
const style = div.style;
|
|
47
|
+
const computed = getComputedStyle(t);
|
|
48
|
+
style.whiteSpace = "pre-wrap";
|
|
49
|
+
style.wordWrap = "break-word";
|
|
50
|
+
// position off-screen
|
|
51
|
+
style.position = "absolute";
|
|
52
|
+
style.visibility = "hidden";
|
|
53
|
+
style.overflow = "hidden";
|
|
54
|
+
// transfer the element's properties to the div
|
|
55
|
+
properties.forEach((prop) => {
|
|
56
|
+
style[prop] = computed[prop];
|
|
57
|
+
});
|
|
58
|
+
div.textContent = t.value.substring(0, t.selectionStart);
|
|
59
|
+
const span = document.createElement("span");
|
|
60
|
+
span.textContent = t.value.substring(t.selectionStart) || ".";
|
|
61
|
+
div.appendChild(span);
|
|
62
|
+
const doc = document.documentElement;
|
|
63
|
+
const windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);
|
|
64
|
+
const windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
|
|
65
|
+
const coordinates = {
|
|
66
|
+
top: windowTop +
|
|
67
|
+
span.offsetTop +
|
|
68
|
+
parseInt(computed.borderTopWidth) +
|
|
69
|
+
parseInt(computed.fontSize) -
|
|
70
|
+
t.scrollTop -
|
|
71
|
+
9,
|
|
72
|
+
left: windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth) - 1,
|
|
73
|
+
};
|
|
74
|
+
document.body.removeChild(div);
|
|
75
|
+
return coordinates;
|
|
76
|
+
};
|
|
77
|
+
exports.getCoordsFromTextarea = getCoordsFromTextarea;
|
|
78
|
+
const VALID_FILTER = /^[\w\d\s_-]$/;
|
|
79
|
+
const CursorMenu = ({ textarea, onClose, onItemSelect, initialItems, }) => {
|
|
80
|
+
const itemsById = (0, react_1.useMemo)(() => Object.fromEntries(initialItems.map((item) => [item.id, item])), [initialItems]);
|
|
81
|
+
const menuRef = (0, react_1.useRef)(null);
|
|
82
|
+
const [activeIndex, setActiveIndex] = (0, react_1.useState)(0);
|
|
83
|
+
const [filter, setFilter] = (0, react_1.useState)("");
|
|
84
|
+
const onPopoverClose = (0, react_1.useCallback)(() => {
|
|
85
|
+
if (menuRef.current) {
|
|
86
|
+
const value = menuRef.current.getAttribute("data-filter");
|
|
87
|
+
const text = `${textarea.value.substring(0, textarea.selectionStart)}${value}${textarea.value.substring(textarea.selectionStart)}`;
|
|
88
|
+
(0, writes_1.updateBlock)({ uid: (0, dom_1.getUids)(textarea).blockUid, text });
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
textarea.setSelectionRange(textarea.selectionStart + text.length, textarea.selectionEnd + text.length);
|
|
91
|
+
onClose();
|
|
92
|
+
}, 1);
|
|
93
|
+
}
|
|
94
|
+
}, [onClose, textarea, menuRef]);
|
|
95
|
+
const items = (0, react_1.useMemo)(() => (filter
|
|
96
|
+
? fuzzy_1.default
|
|
97
|
+
.filter(filter, initialItems, {
|
|
98
|
+
extract: (s) => s.text,
|
|
99
|
+
pre: "<b>",
|
|
100
|
+
post: "</b>",
|
|
101
|
+
})
|
|
102
|
+
.map((r) => (Object.assign(Object.assign({}, r.original), { displayName: r.string })))
|
|
103
|
+
: initialItems.map((r) => (Object.assign(Object.assign({}, r), { displayName: r.text })))).slice(0, 10), [filter, initialItems]);
|
|
104
|
+
const onSelect = (0, react_1.useCallback)((item) => {
|
|
105
|
+
if (menuRef.current) {
|
|
106
|
+
onItemSelect(item);
|
|
107
|
+
onClose();
|
|
108
|
+
}
|
|
109
|
+
}, [menuRef, onClose, textarea, onItemSelect]);
|
|
110
|
+
const keydownListener = (0, react_1.useCallback)((e) => {
|
|
111
|
+
var _a;
|
|
112
|
+
if (menuRef.current &&
|
|
113
|
+
(e.key === "ArrowRight" || e.key === "ArrowDown")) {
|
|
114
|
+
const index = Number(menuRef.current.getAttribute("data-active-index"));
|
|
115
|
+
const count = menuRef.current.childElementCount;
|
|
116
|
+
setActiveIndex((index + 1) % count);
|
|
117
|
+
}
|
|
118
|
+
else if (menuRef.current &&
|
|
119
|
+
(e.key === "ArrowLeft" || e.key === "ArrowUp")) {
|
|
120
|
+
const index = Number(menuRef.current.getAttribute("data-active-index"));
|
|
121
|
+
const count = menuRef.current.childElementCount;
|
|
122
|
+
setActiveIndex((index - 1 + count) % count);
|
|
123
|
+
}
|
|
124
|
+
else if (menuRef.current && e.key === "Enter") {
|
|
125
|
+
const index = Number(menuRef.current.getAttribute("data-active-index"));
|
|
126
|
+
const id = ((_a = menuRef.current.children[index]
|
|
127
|
+
.querySelector(".bp3-menu-item")) === null || _a === void 0 ? void 0 : _a.getAttribute("data-id")) || "";
|
|
128
|
+
onSelect(itemsById[id]);
|
|
129
|
+
}
|
|
130
|
+
else if (menuRef.current && VALID_FILTER.test(e.key)) {
|
|
131
|
+
const value = menuRef.current.getAttribute("data-filter");
|
|
132
|
+
setFilter(`${value}${e.key}`);
|
|
133
|
+
}
|
|
134
|
+
else if (menuRef.current && e.key === "Backspace") {
|
|
135
|
+
const value = menuRef.current.getAttribute("data-filter");
|
|
136
|
+
if (value) {
|
|
137
|
+
setFilter(value.slice(0, -1));
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
onClose();
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else if (e.key !== "Shift") {
|
|
145
|
+
onPopoverClose();
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
e.stopPropagation();
|
|
149
|
+
e.preventDefault();
|
|
150
|
+
}, [menuRef, setActiveIndex, onClose, onPopoverClose]);
|
|
151
|
+
(0, react_1.useEffect)(() => {
|
|
152
|
+
textarea.addEventListener("keydown", keydownListener);
|
|
153
|
+
return () => {
|
|
154
|
+
textarea.removeEventListener("keydown", keydownListener);
|
|
155
|
+
};
|
|
156
|
+
}, [keydownListener]);
|
|
157
|
+
return (react_1.default.createElement(core_1.Popover, { onClose: onPopoverClose, isOpen: true, canEscapeKeyClose: true, minimal: true, target: react_1.default.createElement("span", null), position: core_1.Position.BOTTOM_LEFT, modifiers: {
|
|
158
|
+
flip: { enabled: false },
|
|
159
|
+
preventOverflow: { enabled: false },
|
|
160
|
+
}, autoFocus: false, content: react_1.default.createElement(core_1.Menu, { ulRef: menuRef, "data-active-index": activeIndex, "data-filter": filter, style: { width: 300 } }, items.length ? (items.map(({ id, displayName }, i) => {
|
|
161
|
+
return (react_1.default.createElement(core_1.MenuItem, { key: id, "data-id": id, text: displayName
|
|
162
|
+
.split(/<b>(.*?)<\/b>/)
|
|
163
|
+
.map((part, i) => i % 2 === 1 ? (react_1.default.createElement("b", { key: i }, part)) : (react_1.default.createElement("span", { key: i }, part))), active: i === activeIndex, onMouseEnter: () => setActiveIndex(i), onClick: () => onSelect(itemsById[id]) }));
|
|
164
|
+
})) : (react_1.default.createElement(core_1.MenuItem, { text: react_1.default.createElement("span", { style: { opacity: 0.75 } },
|
|
165
|
+
react_1.default.createElement("i", null, "None")), active: false, disabled: true }))) }));
|
|
166
|
+
};
|
|
167
|
+
const render = (props) => {
|
|
168
|
+
var _a;
|
|
169
|
+
const parent = document.createElement("span");
|
|
170
|
+
const coords = (0, exports.getCoordsFromTextarea)(props.textarea);
|
|
171
|
+
parent.style.position = "absolute";
|
|
172
|
+
parent.style.left = `${coords.left}px`;
|
|
173
|
+
parent.style.top = `${coords.top}px`;
|
|
174
|
+
(_a = props.textarea.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(parent, props.textarea);
|
|
175
|
+
react_dom_1.default.render(react_1.default.createElement(CursorMenu, Object.assign({}, props, { onClose: () => {
|
|
176
|
+
react_dom_1.default.unmountComponentAtNode(parent);
|
|
177
|
+
parent.remove();
|
|
178
|
+
} })), parent);
|
|
179
|
+
};
|
|
180
|
+
exports.render = render;
|
|
181
|
+
exports.default = CursorMenu;
|
|
182
182
|
//# sourceMappingURL=CursorMenu.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
declare const Description: ({ description, }: {
|
|
3
|
-
description: string;
|
|
4
|
-
}) => React.ReactElement;
|
|
5
|
-
export default Description;
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const Description: ({ description, }: {
|
|
3
|
+
description: string;
|
|
4
|
+
}) => React.ReactElement;
|
|
5
|
+
export default Description;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const core_1 = require("@blueprintjs/core");
|
|
5
|
-
const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
|
-
const Description = ({ description, }) => {
|
|
7
|
-
return (react_1.default.createElement("span", { style: {
|
|
8
|
-
marginLeft: 12,
|
|
9
|
-
display: "inline-block",
|
|
10
|
-
opacity: 0.8,
|
|
11
|
-
verticalAlign: "text-bottom",
|
|
12
|
-
} },
|
|
13
|
-
react_1.default.createElement(core_1.Tooltip, { content: react_1.default.createElement("span", { style: { maxWidth: 400, display: "inline-block" } }, description) },
|
|
14
|
-
react_1.default.createElement(core_1.Icon, { icon: "info-sign", iconSize: 12 }))));
|
|
15
|
-
};
|
|
16
|
-
exports.default = Description;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const core_1 = require("@blueprintjs/core");
|
|
5
|
+
const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
|
+
const Description = ({ description, }) => {
|
|
7
|
+
return (react_1.default.createElement("span", { style: {
|
|
8
|
+
marginLeft: 12,
|
|
9
|
+
display: "inline-block",
|
|
10
|
+
opacity: 0.8,
|
|
11
|
+
verticalAlign: "text-bottom",
|
|
12
|
+
} },
|
|
13
|
+
react_1.default.createElement(core_1.Tooltip, { content: react_1.default.createElement("span", { style: { maxWidth: 400, display: "inline-block" } }, description) },
|
|
14
|
+
react_1.default.createElement(core_1.Icon, { icon: "info-sign", iconSize: 12 }))));
|
|
15
|
+
};
|
|
16
|
+
exports.default = Description;
|
|
17
17
|
//# sourceMappingURL=Description.js.map
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export declare type ExternalLoginOptions = {
|
|
3
|
-
service: string;
|
|
4
|
-
getPopoutUrl: (state: string) => Promise<string>;
|
|
5
|
-
getAuthData: (d: string) => Promise<Record<string, string>>;
|
|
6
|
-
ServiceIcon: React.FunctionComponent<React.SVGAttributes<SVGElement>>;
|
|
7
|
-
};
|
|
8
|
-
declare const ExternalLogin: ({ onSuccess, useLocal, parentUid, service, getPopoutUrl, getAuthData, ServiceIcon, loggedIn, }: {
|
|
9
|
-
onSuccess: (block: {
|
|
10
|
-
text: string;
|
|
11
|
-
uid: string;
|
|
12
|
-
data: string;
|
|
13
|
-
}) => void;
|
|
14
|
-
parentUid: string;
|
|
15
|
-
useLocal?: boolean | undefined;
|
|
16
|
-
loggedIn?: boolean | undefined;
|
|
17
|
-
} & ExternalLoginOptions) => React.ReactElement;
|
|
18
|
-
export default ExternalLogin;
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare type ExternalLoginOptions = {
|
|
3
|
+
service: string;
|
|
4
|
+
getPopoutUrl: (state: string) => Promise<string>;
|
|
5
|
+
getAuthData: (d: string) => Promise<Record<string, string>>;
|
|
6
|
+
ServiceIcon: React.FunctionComponent<React.SVGAttributes<SVGElement>>;
|
|
7
|
+
};
|
|
8
|
+
declare const ExternalLogin: ({ onSuccess, useLocal, parentUid, service, getPopoutUrl, getAuthData, ServiceIcon, loggedIn, }: {
|
|
9
|
+
onSuccess: (block: {
|
|
10
|
+
text: string;
|
|
11
|
+
uid: string;
|
|
12
|
+
data: string;
|
|
13
|
+
}) => void;
|
|
14
|
+
parentUid: string;
|
|
15
|
+
useLocal?: boolean | undefined;
|
|
16
|
+
loggedIn?: boolean | undefined;
|
|
17
|
+
} & ExternalLoginOptions) => React.ReactElement;
|
|
18
|
+
export default ExternalLogin;
|