roamjs-components 0.42.4 → 0.43.0
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/backend/getRoamJSUser.js +11 -6
- package/backend/getRoamJSUser.js.map +1 -1
- package/backend/headers.js +3 -1
- package/backend/headers.js.map +1 -1
- package/backend/index.js +16 -4
- package/backend/index.js.map +1 -1
- package/backend/meterRoamJSUser.js +6 -3
- package/backend/meterRoamJSUser.js.map +1 -1
- package/backend/putRoamJSUser.js +11 -6
- package/backend/putRoamJSUser.js.map +1 -1
- package/components/BlockErrorBoundary.js +9 -6
- package/components/BlockErrorBoundary.js.map +1 -1
- package/components/BlockInput.js +19 -16
- package/components/BlockInput.js.map +1 -1
- package/components/ComponentContainer.js +21 -16
- package/components/ComponentContainer.js.map +1 -1
- package/components/ConfigPage.d.ts +2 -0
- package/components/ConfigPage.js +184 -176
- package/components/ConfigPage.js.map +1 -1
- package/components/CursorMenu.js +35 -29
- package/components/CursorMenu.js.map +1 -1
- package/components/Description.js +9 -6
- package/components/Description.js.map +1 -1
- package/components/ExternalLogin.js +34 -32
- package/components/ExternalLogin.js.map +1 -1
- package/components/Loading.js +13 -8
- package/components/Loading.js.map +1 -1
- package/components/MenuItemSelect.js +11 -9
- package/components/MenuItemSelect.js.map +1 -1
- package/components/OauthSelect.js +16 -11
- package/components/OauthSelect.js.map +1 -1
- package/components/PageInput.js +22 -19
- package/components/PageInput.js.map +1 -1
- package/components/ServiceComponents.js +136 -116
- package/components/ServiceComponents.js.map +1 -1
- package/components/SimpleAlert.js +13 -9
- package/components/SimpleAlert.js.map +1 -1
- package/components/Toast.js +16 -12
- package/components/Toast.js.map +1 -1
- package/components/index.js +55 -13
- package/components/index.js.map +1 -1
- package/date/constants.js +5 -2
- package/date/constants.js.map +1 -1
- package/date/index.js +13 -5
- package/date/index.js.map +1 -1
- package/date/parseRoamDate.js +6 -3
- package/date/parseRoamDate.js.map +1 -1
- package/date/parseRoamDateUid.js +6 -3
- package/date/parseRoamDateUid.js.map +1 -1
- package/date/toRoamDate.js +6 -3
- package/date/toRoamDate.js.map +1 -1
- package/date/toRoamDateUid.js +6 -3
- package/date/toRoamDateUid.js.map +1 -1
- package/dom/addBlockCommand.js +23 -20
- package/dom/addBlockCommand.js.map +1 -1
- package/dom/addOldRoamJSDependency.js +3 -1
- package/dom/addOldRoamJSDependency.js.map +1 -1
- package/dom/addRoamJSDependency.js +6 -3
- package/dom/addRoamJSDependency.js.map +1 -1
- package/dom/addStyle.js +3 -1
- package/dom/addStyle.js.map +1 -1
- package/dom/constants.js +4 -1
- package/dom/constants.js.map +1 -1
- package/dom/createBlockObserver.js +7 -4
- package/dom/createBlockObserver.js.map +1 -1
- package/dom/createButtonObserver.js +6 -3
- package/dom/createButtonObserver.js.map +1 -1
- package/dom/createDivObserver.js +3 -1
- package/dom/createDivObserver.js.map +1 -1
- package/dom/createHTMLObserver.js +7 -4
- package/dom/createHTMLObserver.js.map +1 -1
- package/dom/createHashtagObserver.js +6 -3
- package/dom/createHashtagObserver.js.map +1 -1
- package/dom/createIconButton.js +3 -1
- package/dom/createIconButton.js.map +1 -1
- package/dom/createObserver.js +6 -3
- package/dom/createObserver.js.map +1 -1
- package/dom/createOverlayObserver.js +6 -3
- package/dom/createOverlayObserver.js.map +1 -1
- package/dom/createPageObserver.js +14 -11
- package/dom/createPageObserver.js.map +1 -1
- package/dom/createPageTitleObserver.js +8 -5
- package/dom/createPageTitleObserver.js.map +1 -1
- package/dom/genericError.js +5 -3
- package/dom/genericError.js.map +1 -1
- package/dom/getActiveUids.js +6 -3
- package/dom/getActiveUids.js.map +1 -1
- package/dom/getBlockUidFromTarget.js +11 -8
- package/dom/getBlockUidFromTarget.js.map +1 -1
- package/dom/getCurrentPageUid.js +6 -3
- package/dom/getCurrentPageUid.js.map +1 -1
- package/dom/getDomRefs.js +6 -3
- package/dom/getDomRefs.js.map +1 -1
- package/dom/getDropUidOffset.js +9 -6
- package/dom/getDropUidOffset.js.map +1 -1
- package/dom/getMutatedNodes.js +3 -1
- package/dom/getMutatedNodes.js.map +1 -1
- package/dom/getPageTitleByHtmlElement.js +3 -1
- package/dom/getPageTitleByHtmlElement.js.map +1 -1
- package/dom/getPageTitleValueByHtmlElement.js +6 -3
- package/dom/getPageTitleValueByHtmlElement.js.map +1 -1
- package/dom/getReferenceBlockUid.js +10 -7
- package/dom/getReferenceBlockUid.js.map +1 -1
- package/dom/getRoamUrl.js +3 -1
- package/dom/getRoamUrl.js.map +1 -1
- package/dom/getRoamUrlByPage.js +8 -5
- package/dom/getRoamUrlByPage.js.map +1 -1
- package/dom/getUids.js +6 -3
- package/dom/getUids.js.map +1 -1
- package/dom/getUidsFromButton.js +6 -3
- package/dom/getUidsFromButton.js.map +1 -1
- package/dom/getUidsFromId.js +3 -1
- package/dom/getUidsFromId.js.map +1 -1
- package/dom/index.js +63 -30
- package/dom/index.js.map +1 -1
- package/dom/openBlock.js +6 -3
- package/dom/openBlock.js.map +1 -1
- package/dom/openBlockElement.js +3 -1
- package/dom/openBlockElement.js.map +1 -1
- package/dom/parseRoamBlocksToHtml.js +6 -4
- package/dom/parseRoamBlocksToHtml.js.map +1 -1
- package/dom/resolveRefs.js +14 -11
- package/dom/resolveRefs.js.map +1 -1
- package/events/index.js +8 -1
- package/events/index.js.map +1 -1
- package/events/watchOnce.js +3 -1
- package/events/watchOnce.js.map +1 -1
- package/hooks/index.js +12 -3
- package/hooks/index.js.map +1 -1
- package/hooks/useArrowKeyDown.js +6 -4
- package/hooks/useArrowKeyDown.js.map +1 -1
- package/hooks/useRoamJSTokenWarning.js +41 -38
- package/hooks/useRoamJSTokenWarning.js.map +1 -1
- package/hooks/useSubTree.js +7 -4
- package/hooks/useSubTree.js.map +1 -1
- package/index.js +14 -11
- package/index.js.map +1 -1
- package/marked/index.js +38 -34
- package/marked/index.js.map +1 -1
- package/package.json +1 -1
- package/queries/getAllBlockUids.js +3 -1
- package/queries/getAllBlockUids.js.map +1 -1
- package/queries/getAllBlockUidsAndTexts.js +3 -1
- package/queries/getAllBlockUidsAndTexts.js.map +1 -1
- package/queries/getAllPageNames.js +3 -1
- package/queries/getAllPageNames.js.map +1 -1
- package/queries/getBasicTreeByParentUid.js +5 -3
- package/queries/getBasicTreeByParentUid.js.map +1 -1
- package/queries/getBlockUidAndTextIncludingText.js +3 -1
- package/queries/getBlockUidAndTextIncludingText.js.map +1 -1
- package/queries/getBlockUidByTextOnPage.js +3 -1
- package/queries/getBlockUidByTextOnPage.js.map +1 -1
- package/queries/getBlockUidsAndTextsReferencingPage.js +10 -4
- package/queries/getBlockUidsAndTextsReferencingPage.js.map +1 -1
- package/queries/getBlockUidsByPageTitle.js +6 -3
- package/queries/getBlockUidsByPageTitle.js.map +1 -1
- package/queries/getBlockUidsReferencingBlock.js +3 -1
- package/queries/getBlockUidsReferencingBlock.js.map +1 -1
- package/queries/getBlockUidsReferencingPage.js +6 -3
- package/queries/getBlockUidsReferencingPage.js.map +1 -1
- package/queries/getBlockUidsWithParentUid.js +3 -1
- package/queries/getBlockUidsWithParentUid.js.map +1 -1
- package/queries/getChildrenLengthByPageUid.js +3 -1
- package/queries/getChildrenLengthByPageUid.js.map +1 -1
- package/queries/getCreateTimeByBlockUid.js +3 -1
- package/queries/getCreateTimeByBlockUid.js.map +1 -1
- package/queries/getCurrentUser.js +3 -1
- package/queries/getCurrentUser.js.map +1 -1
- package/queries/getCurrentUserDisplayName.js +6 -3
- package/queries/getCurrentUserDisplayName.js.map +1 -1
- package/queries/getCurrentUserEmail.js +6 -3
- package/queries/getCurrentUserEmail.js.map +1 -1
- package/queries/getCurrentUserUid.js +6 -3
- package/queries/getCurrentUserUid.js.map +1 -1
- package/queries/getDisplayNameByEmail.js +3 -1
- package/queries/getDisplayNameByEmail.js.map +1 -1
- package/queries/getDisplayNameByUid.js +3 -1
- package/queries/getDisplayNameByUid.js.map +1 -1
- package/queries/getEditTimeByBlockUid.js +3 -1
- package/queries/getEditTimeByBlockUid.js.map +1 -1
- package/queries/getEditedUserEmailByBlockUid.js +3 -1
- package/queries/getEditedUserEmailByBlockUid.js.map +1 -1
- package/queries/getFirstChildTextByBlockUid.js +3 -1
- package/queries/getFirstChildTextByBlockUid.js.map +1 -1
- package/queries/getFirstChildUidByBlockUid.js +5 -3
- package/queries/getFirstChildUidByBlockUid.js.map +1 -1
- package/queries/getFullTreeByParentUid.js +6 -4
- package/queries/getFullTreeByParentUid.js.map +1 -1
- package/queries/getLinkedPageTitlesUnderUid.js +3 -1
- package/queries/getLinkedPageTitlesUnderUid.js.map +1 -1
- package/queries/getNthChildUidByBlockUid.js +3 -1
- package/queries/getNthChildUidByBlockUid.js.map +1 -1
- package/queries/getOrderByBlockUid.js +3 -1
- package/queries/getOrderByBlockUid.js.map +1 -1
- package/queries/getPageTitleByBlockUid.js +3 -1
- package/queries/getPageTitleByBlockUid.js.map +1 -1
- package/queries/getPageTitleByPageUid.js +6 -2
- package/queries/getPageTitleByPageUid.js.map +1 -1
- package/queries/getPageTitleReferencesByPageTitle.js +6 -3
- package/queries/getPageTitleReferencesByPageTitle.js.map +1 -1
- package/queries/getPageTitlesAndBlockUidsReferencingPage.js +6 -3
- package/queries/getPageTitlesAndBlockUidsReferencingPage.js.map +1 -1
- package/queries/getPageTitlesAndUidsDirectlyReferencingPage.js +6 -3
- package/queries/getPageTitlesAndUidsDirectlyReferencingPage.js.map +1 -1
- package/queries/getPageTitlesReferencingBlockUid.js +3 -1
- package/queries/getPageTitlesReferencingBlockUid.js.map +1 -1
- package/queries/getPageTitlesStartingWithPrefix.js +3 -1
- package/queries/getPageTitlesStartingWithPrefix.js.map +1 -1
- package/queries/getPageUidByPageTitle.js +6 -3
- package/queries/getPageUidByPageTitle.js.map +1 -1
- package/queries/getPageViewType.js +6 -3
- package/queries/getPageViewType.js.map +1 -1
- package/queries/getParentTextByBlockUid.js +3 -1
- package/queries/getParentTextByBlockUid.js.map +1 -1
- package/queries/getParentTextByBlockUidAndTag.js +3 -1
- package/queries/getParentTextByBlockUidAndTag.js.map +1 -1
- package/queries/getParentUidByBlockUid.js +3 -1
- package/queries/getParentUidByBlockUid.js.map +1 -1
- package/queries/getParentUidsOfBlockUid.js +3 -1
- package/queries/getParentUidsOfBlockUid.js.map +1 -1
- package/queries/getSettingsByEmail.js +3 -1
- package/queries/getSettingsByEmail.js.map +1 -1
- package/queries/getShallowTreeByParentUid.js +3 -1
- package/queries/getShallowTreeByParentUid.js.map +1 -1
- package/queries/getTextByBlockUid.js +3 -1
- package/queries/getTextByBlockUid.js.map +1 -1
- package/queries/index.js +94 -44
- package/queries/index.js.map +1 -1
- package/queries/isTagOnPage.js +6 -3
- package/queries/isTagOnPage.js.map +1 -1
- package/queries/normalizePageTitle.js +3 -1
- package/queries/normalizePageTitle.js.map +1 -1
- package/types/index.js +2 -1
- package/util/addInputSetting.js +11 -8
- package/util/addInputSetting.js.map +1 -1
- package/util/apiDelete.js +8 -5
- package/util/apiDelete.js.map +1 -1
- package/util/apiGet.js +8 -5
- package/util/apiGet.js.map +1 -1
- package/util/apiPost.js +8 -5
- package/util/apiPost.js.map +1 -1
- package/util/apiPut.js +8 -5
- package/util/apiPut.js.map +1 -1
- package/util/createOverlayRender.js +10 -7
- package/util/createOverlayRender.js.map +1 -1
- package/util/createTagRegex.js +3 -1
- package/util/createTagRegex.js.map +1 -1
- package/util/extractRef.js +5 -3
- package/util/extractRef.js.map +1 -1
- package/util/extractTag.js +3 -1
- package/util/extractTag.js.map +1 -1
- package/util/getAuthorizationHeader.js +9 -6
- package/util/getAuthorizationHeader.js.map +1 -1
- package/util/getGraph.js +3 -1
- package/util/getGraph.js.map +1 -1
- package/util/getLocalStorageKey.js +6 -3
- package/util/getLocalStorageKey.js.map +1 -1
- package/util/getOauth.js +17 -15
- package/util/getOauth.js.map +1 -1
- package/util/getOauthAccounts.js +12 -9
- package/util/getOauthAccounts.js.map +1 -1
- package/util/getRenderRoot.js +3 -1
- package/util/getRenderRoot.js.map +1 -1
- package/util/getSettingIntFromTree.js +6 -3
- package/util/getSettingIntFromTree.js.map +1 -1
- package/util/getSettingValueFromTree.js +6 -3
- package/util/getSettingValueFromTree.js.map +1 -1
- package/util/getSettingValuesFromTree.js +6 -3
- package/util/getSettingValuesFromTree.js.map +1 -1
- package/util/getSubTree.js +10 -7
- package/util/getSubTree.js.map +1 -1
- package/util/getToken.js +9 -6
- package/util/getToken.js.map +1 -1
- package/util/getTokenFromTree.js +5 -1
- package/util/getTokenFromTree.js.map +1 -1
- package/util/idToTitle.js +3 -1
- package/util/idToTitle.js.map +1 -1
- package/util/index.js +52 -23
- package/util/index.js.map +1 -1
- package/util/isControl.js +5 -3
- package/util/isControl.js.map +1 -1
- package/util/localStorageGet.js +8 -3
- package/util/localStorageGet.js.map +1 -1
- package/util/localStorageRemove.js +6 -3
- package/util/localStorageRemove.js.map +1 -1
- package/util/localStorageSet.js +8 -3
- package/util/localStorageSet.js.map +1 -1
- package/util/registerSmartBlocksCommand.js +3 -1
- package/util/registerSmartBlocksCommand.js.map +1 -1
- package/util/runExtension.js +11 -8
- package/util/runExtension.js.map +1 -1
- package/util/setInputSetting.js +8 -5
- package/util/setInputSetting.js.map +1 -1
- package/util/setInputSettings.js +15 -10
- package/util/setInputSettings.js.map +1 -1
- package/util/toConfigPageName.js +3 -1
- package/util/toConfigPageName.js.map +1 -1
- package/util/toFlexRegex.js +3 -1
- package/util/toFlexRegex.js.map +1 -1
- package/writes/clearBlockById.js +6 -3
- package/writes/clearBlockById.js.map +1 -1
- package/writes/clearBlockByUid.js +3 -1
- package/writes/clearBlockByUid.js.map +1 -1
- package/writes/createBlock.js +8 -6
- package/writes/createBlock.js.map +1 -1
- package/writes/createPage.js +11 -8
- package/writes/createPage.js.map +1 -1
- package/writes/deleteBlock.js +3 -1
- package/writes/deleteBlock.js.map +1 -1
- package/writes/index.js +22 -8
- package/writes/index.js.map +1 -1
- package/writes/openBlockInSidebar.js +3 -1
- package/writes/openBlockInSidebar.js.map +1 -1
- package/writes/updateActiveBlock.js +6 -3
- package/writes/updateActiveBlock.js.map +1 -1
- package/writes/updateBlock.js +3 -1
- package/writes/updateBlock.js.map +1 -1
package/components/ConfigPage.js
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createConfigObserver = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@blueprintjs/core");
|
|
6
|
+
const datetime_1 = require("@blueprintjs/datetime");
|
|
7
|
+
const react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
8
|
+
const react_dom_1 = (0, tslib_1.__importDefault)(require("react-dom"));
|
|
9
|
+
const dom_1 = require("../dom");
|
|
10
|
+
const writes_1 = require("../writes");
|
|
11
|
+
const queries_1 = require("../queries");
|
|
12
|
+
const localStorageGet_1 = (0, tslib_1.__importDefault)(require("../util/localStorageGet"));
|
|
13
|
+
const localStorageRemove_1 = (0, tslib_1.__importDefault)(require("../util/localStorageRemove"));
|
|
14
|
+
const localStorageSet_1 = (0, tslib_1.__importDefault)(require("../util/localStorageSet"));
|
|
15
|
+
const startOfDay_1 = (0, tslib_1.__importDefault)(require("date-fns/startOfDay"));
|
|
16
|
+
const Description_1 = (0, tslib_1.__importDefault)(require("./Description"));
|
|
17
|
+
const ExternalLogin_1 = (0, tslib_1.__importDefault)(require("./ExternalLogin"));
|
|
18
|
+
const idToTitle_1 = (0, tslib_1.__importDefault)(require("../util/idToTitle"));
|
|
19
|
+
const MenuItemSelect_1 = (0, tslib_1.__importDefault)(require("./MenuItemSelect"));
|
|
20
|
+
const PageInput_1 = (0, tslib_1.__importDefault)(require("./PageInput"));
|
|
21
|
+
const format_1 = (0, tslib_1.__importDefault)(require("date-fns/format"));
|
|
22
|
+
const axios_1 = (0, tslib_1.__importDefault)(require("axios"));
|
|
23
|
+
const color_1 = (0, tslib_1.__importDefault)(require("color"));
|
|
24
|
+
const __1 = require("..");
|
|
25
|
+
const getAuthorizationHeader_1 = (0, tslib_1.__importDefault)(require("../util/getAuthorizationHeader"));
|
|
23
26
|
const useSingleChildValue = ({ defaultValue, uid: initialUid, title, parentUid, order, transform, toStr, }) => {
|
|
24
|
-
const [uid, setUid] = useState(initialUid);
|
|
25
|
-
const [valueUid, setValueUid] = useState(uid && getFirstChildUidByBlockUid(uid));
|
|
26
|
-
const [value, setValue] = useState((valueUid && transform(getTextByBlockUid(valueUid))) || defaultValue);
|
|
27
|
-
const onChange = useCallback((v) => {
|
|
27
|
+
const [uid, setUid] = (0, react_1.useState)(initialUid);
|
|
28
|
+
const [valueUid, setValueUid] = (0, react_1.useState)(uid && (0, queries_1.getFirstChildUidByBlockUid)(uid));
|
|
29
|
+
const [value, setValue] = (0, react_1.useState)((valueUid && transform((0, queries_1.getTextByBlockUid)(valueUid))) || defaultValue);
|
|
30
|
+
const onChange = (0, react_1.useCallback)((v) => {
|
|
28
31
|
setValue(v);
|
|
29
32
|
if (valueUid) {
|
|
30
33
|
window.roamAlphaAPI.updateBlock({
|
|
@@ -57,16 +60,16 @@ const useSingleChildValue = ({ defaultValue, uid: initialUid, title, parentUid,
|
|
|
57
60
|
return { value, onChange };
|
|
58
61
|
};
|
|
59
62
|
const MultiChildPanel = ({ uid: initialUid, title, description, order, parentUid, InputComponent, }) => {
|
|
60
|
-
const [uid, setUid] = useState(initialUid);
|
|
61
|
-
const [texts, setTexts] = useState(() => uid ? getShallowTreeByParentUid(uid) : []);
|
|
62
|
-
const [value, setValue] = useState("");
|
|
63
|
-
return (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
const [uid, setUid] = (0, react_1.useState)(initialUid);
|
|
64
|
+
const [texts, setTexts] = (0, react_1.useState)(() => uid ? (0, queries_1.getShallowTreeByParentUid)(uid) : []);
|
|
65
|
+
const [value, setValue] = (0, react_1.useState)("");
|
|
66
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
67
|
+
react_1.default.createElement(core_1.Label, null,
|
|
68
|
+
(0, idToTitle_1.default)(title),
|
|
69
|
+
react_1.default.createElement(Description_1.default, { description: description }),
|
|
70
|
+
react_1.default.createElement("div", { style: { display: "flex" } },
|
|
71
|
+
react_1.default.createElement(InputComponent, { value: value, setValue: setValue }),
|
|
72
|
+
react_1.default.createElement(core_1.Button, { icon: "plus", minimal: true, disabled: !value, onClick: () => {
|
|
70
73
|
const valueUid = window.roamAlphaAPI.util.generateUID();
|
|
71
74
|
if (uid) {
|
|
72
75
|
window.roamAlphaAPI.createBlock({
|
|
@@ -89,17 +92,17 @@ const MultiChildPanel = ({ uid: initialUid, title, description, order, parentUid
|
|
|
89
92
|
setTexts([...texts, { text: value, uid: valueUid }]);
|
|
90
93
|
setValue("");
|
|
91
94
|
} }))),
|
|
92
|
-
texts.map((p) => (
|
|
95
|
+
texts.map((p) => (react_1.default.createElement("div", { key: p.uid, style: {
|
|
93
96
|
display: "flex",
|
|
94
97
|
alignItems: "center",
|
|
95
98
|
justifyContent: "space-between",
|
|
96
99
|
} },
|
|
97
|
-
|
|
100
|
+
react_1.default.createElement("span", { style: {
|
|
98
101
|
textOverflow: "ellipsis",
|
|
99
102
|
whiteSpace: "nowrap",
|
|
100
103
|
overflow: "hidden",
|
|
101
104
|
} }, p.text),
|
|
102
|
-
|
|
105
|
+
react_1.default.createElement(core_1.Button, { icon: "trash", minimal: true, onClick: () => {
|
|
103
106
|
window.roamAlphaAPI.deleteBlock({ block: { uid: p.uid } });
|
|
104
107
|
setTexts(texts.filter((f) => f.uid !== p.uid));
|
|
105
108
|
} }))))));
|
|
@@ -114,12 +117,12 @@ const TextPanel = ({ title, uid, parentUid, order, description, defaultValue = "
|
|
|
114
117
|
transform: (s) => s,
|
|
115
118
|
toStr: (s) => s,
|
|
116
119
|
});
|
|
117
|
-
return (
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
121
|
+
(0, idToTitle_1.default)(title),
|
|
122
|
+
react_1.default.createElement(Description_1.default, { description: description }),
|
|
123
|
+
react_1.default.createElement(core_1.InputGroup, { value: value, onChange: (e) => onChange(e.target.value) })));
|
|
121
124
|
};
|
|
122
|
-
const TimePanel = ({ title, uid, parentUid, order, description, defaultValue =
|
|
125
|
+
const TimePanel = ({ title, uid, parentUid, order, description, defaultValue = (0, startOfDay_1.default)(new Date()), }) => {
|
|
123
126
|
const { value, onChange } = useSingleChildValue({
|
|
124
127
|
defaultValue,
|
|
125
128
|
title,
|
|
@@ -133,12 +136,12 @@ const TimePanel = ({ title, uid, parentUid, order, description, defaultValue = s
|
|
|
133
136
|
d.setMinutes(Number(minutes));
|
|
134
137
|
return d;
|
|
135
138
|
},
|
|
136
|
-
toStr: (v) =>
|
|
139
|
+
toStr: (v) => (0, format_1.default)(v, "HH:mm"),
|
|
137
140
|
});
|
|
138
|
-
return (
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
141
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
142
|
+
(0, idToTitle_1.default)(title),
|
|
143
|
+
react_1.default.createElement(Description_1.default, { description: description }),
|
|
144
|
+
react_1.default.createElement(datetime_1.TimePicker, { value: value, onChange: onChange, showArrowButtons: true })));
|
|
142
145
|
};
|
|
143
146
|
const NumberPanel = ({ title, uid, parentUid, order, description, defaultValue = 0, }) => {
|
|
144
147
|
const { value, onChange } = useSingleChildValue({
|
|
@@ -150,10 +153,10 @@ const NumberPanel = ({ title, uid, parentUid, order, description, defaultValue =
|
|
|
150
153
|
transform: parseInt,
|
|
151
154
|
toStr: (v) => `${v}`,
|
|
152
155
|
});
|
|
153
|
-
return (
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
156
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
157
|
+
(0, idToTitle_1.default)(title),
|
|
158
|
+
react_1.default.createElement(Description_1.default, { description: description }),
|
|
159
|
+
react_1.default.createElement(core_1.NumericInput, { value: value, onValueChange: onChange })));
|
|
157
160
|
};
|
|
158
161
|
const SelectPanel = ({ title, uid, parentUid, order, description, defaultValue = "", options: { items }, }) => {
|
|
159
162
|
const { value, onChange } = useSingleChildValue({
|
|
@@ -165,14 +168,14 @@ const SelectPanel = ({ title, uid, parentUid, order, description, defaultValue =
|
|
|
165
168
|
transform: (s) => s,
|
|
166
169
|
toStr: (s) => s,
|
|
167
170
|
});
|
|
168
|
-
return (
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
171
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
172
|
+
(0, idToTitle_1.default)(title),
|
|
173
|
+
react_1.default.createElement(Description_1.default, { description: description }),
|
|
174
|
+
react_1.default.createElement(MenuItemSelect_1.default, { activeItem: value, onItemSelect: (e) => onChange(e), items: items })));
|
|
172
175
|
};
|
|
173
176
|
const FlagPanel = ({ title, uid: initialUid, parentUid, order, description, options = {}, }) => {
|
|
174
|
-
const [uid, setUid] = useState(initialUid);
|
|
175
|
-
return (
|
|
177
|
+
const [uid, setUid] = (0, react_1.useState)(initialUid);
|
|
178
|
+
return (react_1.default.createElement(core_1.Checkbox, { checked: !!uid, onChange: (e) => {
|
|
176
179
|
var _a;
|
|
177
180
|
const { checked } = e.target;
|
|
178
181
|
if (checked) {
|
|
@@ -188,23 +191,23 @@ const FlagPanel = ({ title, uid: initialUid, parentUid, order, description, opti
|
|
|
188
191
|
setUid("");
|
|
189
192
|
}
|
|
190
193
|
(_a = options.onChange) === null || _a === void 0 ? void 0 : _a.call(options, checked);
|
|
191
|
-
}, labelElement:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
+
}, labelElement: react_1.default.createElement(react_1.default.Fragment, null,
|
|
195
|
+
(0, idToTitle_1.default)(title),
|
|
196
|
+
react_1.default.createElement(Description_1.default, { description: description })) }));
|
|
194
197
|
};
|
|
195
198
|
const MultiTextPanel = (props) => {
|
|
196
|
-
return (
|
|
199
|
+
return (react_1.default.createElement(MultiChildPanel, Object.assign({}, props, { InputComponent: ({ value, setValue }) => (react_1.default.createElement(core_1.InputGroup, { value: value, onChange: (e) => setValue(e.target.value) })) })));
|
|
197
200
|
};
|
|
198
201
|
const PagesPanel = (props) => {
|
|
199
|
-
return (
|
|
202
|
+
return (react_1.default.createElement(MultiChildPanel, Object.assign({}, props, { InputComponent: (inputProps) => (react_1.default.createElement(PageInput_1.default, Object.assign({ extra: ["{all}"] }, inputProps))) })));
|
|
200
203
|
};
|
|
201
204
|
const OauthPanel = ({ uid, parentUid, options }) => {
|
|
202
205
|
const key = `oauth-${options.service}`;
|
|
203
|
-
const [useLocal, setUseLocal] = useState(!!
|
|
204
|
-
const [accounts, setAccounts] = useState(() => useLocal
|
|
205
|
-
? JSON.parse(
|
|
206
|
+
const [useLocal, setUseLocal] = (0, react_1.useState)(!!(0, localStorageGet_1.default)(key));
|
|
207
|
+
const [accounts, setAccounts] = (0, react_1.useState)(() => useLocal
|
|
208
|
+
? JSON.parse((0, localStorageGet_1.default)(key))
|
|
206
209
|
: uid
|
|
207
|
-
? getBasicTreeByParentUid(uid).map((v) => {
|
|
210
|
+
? (0, queries_1.getBasicTreeByParentUid)(uid).map((v) => {
|
|
208
211
|
var _a, _b;
|
|
209
212
|
return ({
|
|
210
213
|
text: ((_a = v.children[0]) === null || _a === void 0 ? void 0 : _a.text) ? v.text : "Default Account",
|
|
@@ -213,17 +216,17 @@ const OauthPanel = ({ uid, parentUid, options }) => {
|
|
|
213
216
|
});
|
|
214
217
|
})
|
|
215
218
|
: []);
|
|
216
|
-
const onCheck = useCallback((e) => {
|
|
219
|
+
const onCheck = (0, react_1.useCallback)((e) => {
|
|
217
220
|
const checked = e.target.checked;
|
|
218
221
|
setUseLocal(checked);
|
|
219
222
|
if (checked) {
|
|
220
223
|
if (uid) {
|
|
221
|
-
getShallowTreeByParentUid(uid).forEach(({ uid: u }) => deleteBlock(u));
|
|
224
|
+
(0, queries_1.getShallowTreeByParentUid)(uid).forEach(({ uid: u }) => (0, writes_1.deleteBlock)(u));
|
|
222
225
|
}
|
|
223
|
-
|
|
226
|
+
(0, localStorageSet_1.default)(key, JSON.stringify(accounts));
|
|
224
227
|
}
|
|
225
228
|
else {
|
|
226
|
-
|
|
229
|
+
(0, localStorageRemove_1.default)(key);
|
|
227
230
|
if (uid) {
|
|
228
231
|
accounts.forEach(({ text, uid: u, data }, order) => {
|
|
229
232
|
window.roamAlphaAPI.createBlock({
|
|
@@ -238,42 +241,42 @@ const OauthPanel = ({ uid, parentUid, options }) => {
|
|
|
238
241
|
}
|
|
239
242
|
}
|
|
240
243
|
}, [setUseLocal, accounts, uid, key]);
|
|
241
|
-
return (
|
|
242
|
-
|
|
244
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
245
|
+
react_1.default.createElement(core_1.Checkbox, { labelElement: react_1.default.createElement(react_1.default.Fragment, null,
|
|
243
246
|
"Store Locally",
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
!!accounts.length && (
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
247
|
+
react_1.default.createElement(Description_1.default, { description: "If checked, sensitive authentication data will be stored locally on your machine and will require re-logging in per device. If unchecked, sensitive authentication data will be stored in your Roam Graph." })), checked: useLocal, onChange: onCheck }),
|
|
248
|
+
react_1.default.createElement(ExternalLogin_1.default, Object.assign({ useLocal: useLocal, onSuccess: (acc) => setAccounts([...accounts, acc]), parentUid: parentUid, loggedIn: !!accounts.length }, options)),
|
|
249
|
+
!!accounts.length && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
250
|
+
react_1.default.createElement("h5", { style: { marginTop: 8 } }, "Accounts"),
|
|
251
|
+
react_1.default.createElement("hr", null),
|
|
252
|
+
react_1.default.createElement("ul", { style: { marginTop: 8, padding: 0 } }, accounts.map((act) => (react_1.default.createElement("li", { key: act.uid, style: {
|
|
250
253
|
display: "flex",
|
|
251
254
|
justifyContent: "space-between",
|
|
252
255
|
alignItems: "center",
|
|
253
256
|
marginTop: 8,
|
|
254
257
|
} },
|
|
255
|
-
|
|
256
|
-
|
|
258
|
+
react_1.default.createElement("span", { style: { minWidth: 192 } }, act.text),
|
|
259
|
+
react_1.default.createElement(core_1.Button, { text: "Log Out", onClick: () => {
|
|
257
260
|
if (useLocal) {
|
|
258
|
-
const accts = JSON.parse(
|
|
259
|
-
|
|
261
|
+
const accts = JSON.parse((0, localStorageGet_1.default)(key));
|
|
262
|
+
(0, localStorageSet_1.default)(key, JSON.stringify(accts.filter((a) => act.uid !== a.uid)));
|
|
260
263
|
}
|
|
261
264
|
else {
|
|
262
|
-
deleteBlock(act.uid);
|
|
265
|
+
(0, writes_1.deleteBlock)(act.uid);
|
|
263
266
|
}
|
|
264
267
|
setAccounts(accounts.filter((a) => act.uid !== a.uid));
|
|
265
268
|
} })))))))));
|
|
266
269
|
};
|
|
267
270
|
const BlockPanel = ({ uid: initialUid, parentUid, title, defaultValue, description, }) => {
|
|
268
|
-
const containerRef = useRef(null);
|
|
269
|
-
useEffect(() => {
|
|
271
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
272
|
+
(0, react_1.useEffect)(() => {
|
|
270
273
|
if (containerRef.current) {
|
|
271
274
|
const el = containerRef.current;
|
|
272
275
|
(initialUid
|
|
273
276
|
? Promise.resolve(initialUid)
|
|
274
|
-
: createBlock({ node: { text: title, children: [] }, parentUid }))
|
|
275
|
-
.then((formatUid) => getFirstChildUidByBlockUid(formatUid) ||
|
|
276
|
-
createBlock({
|
|
277
|
+
: (0, writes_1.createBlock)({ node: { text: title, children: [] }, parentUid }))
|
|
278
|
+
.then((formatUid) => (0, queries_1.getFirstChildUidByBlockUid)(formatUid) ||
|
|
279
|
+
(0, writes_1.createBlock)({
|
|
277
280
|
node: defaultValue || { text: " " },
|
|
278
281
|
parentUid: formatUid,
|
|
279
282
|
}))
|
|
@@ -285,73 +288,77 @@ const BlockPanel = ({ uid: initialUid, parentUid, title, defaultValue, descripti
|
|
|
285
288
|
});
|
|
286
289
|
}
|
|
287
290
|
}, [containerRef, defaultValue]);
|
|
288
|
-
return (
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
291
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
292
|
+
react_1.default.createElement(core_1.Label, null,
|
|
293
|
+
(0, idToTitle_1.default)(title),
|
|
294
|
+
react_1.default.createElement(Description_1.default, { description: description })),
|
|
295
|
+
react_1.default.createElement("div", { ref: containerRef, style: {
|
|
293
296
|
border: "1px solid #33333333",
|
|
294
297
|
padding: "8px 0",
|
|
295
298
|
borderRadius: 4,
|
|
296
299
|
} })));
|
|
297
300
|
};
|
|
298
301
|
const CustomPanel = ({ description, title, uid: inputUid, options: { component: Component }, parentUid, defaultValue = [], order, }) => {
|
|
299
|
-
const uid = useMemo(() => {
|
|
302
|
+
const uid = (0, react_1.useMemo)(() => {
|
|
300
303
|
if (inputUid)
|
|
301
304
|
return inputUid;
|
|
302
305
|
const newUid = window.roamAlphaAPI.util.generateUID();
|
|
303
|
-
createBlock({ node: { text: title, uid: newUid }, parentUid, order });
|
|
306
|
+
(0, writes_1.createBlock)({ node: { text: title, uid: newUid }, parentUid, order });
|
|
304
307
|
return newUid;
|
|
305
308
|
}, [inputUid]);
|
|
306
|
-
return (
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
309
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
310
|
+
react_1.default.createElement(core_1.Label, null,
|
|
311
|
+
(0, idToTitle_1.default)(title),
|
|
312
|
+
react_1.default.createElement(Description_1.default, { description: description })),
|
|
313
|
+
react_1.default.createElement(Component, { uid: uid, parentUid: parentUid, title: title, defaultValue: defaultValue })));
|
|
311
314
|
};
|
|
312
315
|
const RoamJSTokenWarning = () => {
|
|
313
|
-
useRoamJSTokenWarning();
|
|
314
|
-
return
|
|
316
|
+
(0, __1.useRoamJSTokenWarning)();
|
|
317
|
+
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
315
318
|
};
|
|
316
|
-
const ToggleablePanel = ({ enabled, setEnabled, pageUid, order, id, extensionId, setUid, uid, toggleable, }) => {
|
|
317
|
-
const initialUid = useRef(uid);
|
|
318
|
-
const isPremium = useMemo(() => toggleable !== true, [toggleable]);
|
|
319
|
-
const dev = useMemo(() => ["dev", "ngrok", "localhost"].some((s) => (process.env.API_URL || "").includes(s))
|
|
319
|
+
const ToggleablePanel = ({ enabled, setEnabled, pageUid, order, id, extensionId, setUid, uid, toggleable, onEnable, onDisable, }) => {
|
|
320
|
+
const initialUid = (0, react_1.useRef)(uid);
|
|
321
|
+
const isPremium = (0, react_1.useMemo)(() => toggleable !== true, [toggleable]);
|
|
322
|
+
const dev = (0, react_1.useMemo)(() => ["dev", "ngrok", "localhost"].some((s) => (process.env.API_URL || "").includes(s))
|
|
320
323
|
? "&dev=true"
|
|
321
324
|
: "", []);
|
|
322
|
-
const [pricingMessage, setPricingMessage] = useState("");
|
|
323
|
-
const [productDescription, setProductDescription] = useState("");
|
|
324
|
-
const [error, setError] = useState("");
|
|
325
|
-
const [loading, setLoading] = useState(false);
|
|
326
|
-
const enableCallback = useCallback((checked, uid) => {
|
|
325
|
+
const [pricingMessage, setPricingMessage] = (0, react_1.useState)("");
|
|
326
|
+
const [productDescription, setProductDescription] = (0, react_1.useState)("");
|
|
327
|
+
const [error, setError] = (0, react_1.useState)("");
|
|
328
|
+
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
329
|
+
const enableCallback = (0, react_1.useCallback)((checked, uid) => {
|
|
327
330
|
setEnabled(checked);
|
|
328
331
|
if (checked) {
|
|
329
|
-
createBlock({
|
|
332
|
+
(0, writes_1.createBlock)({
|
|
330
333
|
parentUid: pageUid,
|
|
331
334
|
order,
|
|
332
335
|
node: { text: id },
|
|
333
|
-
})
|
|
336
|
+
})
|
|
337
|
+
.then((newUid) => setUid(newUid))
|
|
338
|
+
.then(() => onEnable === null || onEnable === void 0 ? void 0 : onEnable());
|
|
334
339
|
}
|
|
335
340
|
else {
|
|
336
|
-
|
|
341
|
+
(0, writes_1.deleteBlock)(uid)
|
|
342
|
+
.then(() => setUid(""))
|
|
343
|
+
.then(() => onDisable === null || onDisable === void 0 ? void 0 : onDisable());
|
|
337
344
|
}
|
|
338
|
-
}, [setUid, setEnabled, id, pageUid, order]);
|
|
339
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
340
|
-
const intervalListener = useRef(0);
|
|
341
|
-
const catchError = useCallback((e) => { var _a, _b, _c; return setError(((_b = (_a = e.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || ((_c = e.response) === null || _c === void 0 ? void 0 : _c.data) || e.message); }, [setError]);
|
|
342
|
-
useEffect(() => {
|
|
345
|
+
}, [setUid, setEnabled, id, pageUid, order, onEnable, onDisable]);
|
|
346
|
+
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
347
|
+
const intervalListener = (0, react_1.useRef)(0);
|
|
348
|
+
const catchError = (0, react_1.useCallback)((e) => { var _a, _b, _c; return setError(((_b = (_a = e.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || ((_c = e.response) === null || _c === void 0 ? void 0 : _c.data) || e.message); }, [setError]);
|
|
349
|
+
(0, react_1.useEffect)(() => {
|
|
343
350
|
if (isPremium) {
|
|
344
|
-
|
|
351
|
+
axios_1.default
|
|
345
352
|
.get(`https://lambda.roamjs.com/price?extensionId=${extensionId}${dev}`, {
|
|
346
|
-
headers: { Authorization:
|
|
353
|
+
headers: { Authorization: (0, getAuthorizationHeader_1.default)() },
|
|
347
354
|
})
|
|
348
355
|
.then((r) => {
|
|
349
356
|
setPricingMessage(`$${r.data.price / 100}${r.data.perUse ? " per use" : ""}${r.data.isMonthly ? " per month" : " per year"}`);
|
|
350
357
|
setProductDescription(r.data.description);
|
|
351
358
|
})
|
|
352
359
|
.catch(catchError);
|
|
353
|
-
|
|
354
|
-
.get(`https://lambda.roamjs.com/check?extensionId=${extensionId}${dev}`, { headers: { Authorization:
|
|
360
|
+
axios_1.default
|
|
361
|
+
.get(`https://lambda.roamjs.com/check?extensionId=${extensionId}${dev}`, { headers: { Authorization: (0, getAuthorizationHeader_1.default)() } })
|
|
355
362
|
.then((r) => {
|
|
356
363
|
if (!r.data.success && initialUid.current) {
|
|
357
364
|
enableCallback(false, initialUid.current);
|
|
@@ -373,25 +380,25 @@ const ToggleablePanel = ({ enabled, setEnabled, pageUid, order, id, extensionId,
|
|
|
373
380
|
enableCallback,
|
|
374
381
|
setPricingMessage,
|
|
375
382
|
]);
|
|
376
|
-
return (
|
|
377
|
-
isPremium &&
|
|
378
|
-
|
|
383
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
384
|
+
isPremium && react_1.default.createElement(RoamJSTokenWarning, null),
|
|
385
|
+
react_1.default.createElement(core_1.Switch, { labelElement: "Enabled", checked: enabled, onChange: (e) => isPremium
|
|
379
386
|
? setIsOpen(true)
|
|
380
387
|
: enableCallback(e.target.checked, uid) }),
|
|
381
|
-
|
|
388
|
+
react_1.default.createElement("p", { style: { whiteSpace: "pre-wrap" } }, isPremium &&
|
|
382
389
|
(enabled
|
|
383
390
|
? `You have sucessfully subscribed!\n\nConfigure this feature with the tabs on the left.`
|
|
384
391
|
: `This is a premium feature and will require a paid subscription to enable.\n\n${productDescription}`)),
|
|
385
|
-
|
|
386
|
-
|
|
392
|
+
react_1.default.createElement("p", { style: { color: "red" } }, error),
|
|
393
|
+
react_1.default.createElement(core_1.Alert, { isOpen: isOpen, onConfirm: () => {
|
|
387
394
|
setLoading(true);
|
|
388
395
|
setError("");
|
|
389
396
|
if (enabled) {
|
|
390
|
-
|
|
397
|
+
axios_1.default
|
|
391
398
|
.post(`https://lambda.roamjs.com/unsubscribe`, {
|
|
392
399
|
extensionId,
|
|
393
400
|
dev: !!dev,
|
|
394
|
-
}, { headers: { Authorization:
|
|
401
|
+
}, { headers: { Authorization: (0, getAuthorizationHeader_1.default)() } })
|
|
395
402
|
.then(() => {
|
|
396
403
|
enableCallback(false, uid);
|
|
397
404
|
})
|
|
@@ -402,11 +409,11 @@ const ToggleablePanel = ({ enabled, setEnabled, pageUid, order, id, extensionId,
|
|
|
402
409
|
});
|
|
403
410
|
}
|
|
404
411
|
else {
|
|
405
|
-
|
|
412
|
+
axios_1.default
|
|
406
413
|
.post(`https://lambda.roamjs.com/subscribe`, {
|
|
407
414
|
extensionId,
|
|
408
415
|
dev: !!dev,
|
|
409
|
-
}, { headers: { Authorization:
|
|
416
|
+
}, { headers: { Authorization: (0, getAuthorizationHeader_1.default)() } })
|
|
410
417
|
.then((r) => {
|
|
411
418
|
if (r.data.url) {
|
|
412
419
|
const width = 600;
|
|
@@ -415,8 +422,8 @@ const ToggleablePanel = ({ enabled, setEnabled, pageUid, order, id, extensionId,
|
|
|
415
422
|
const top = window.screenY + (window.innerHeight - height) / 2;
|
|
416
423
|
window.open(r.data.url, `roamjs:roamjs:stripe`, `left=${left},top=${top},width=${width},height=${height},status=1`);
|
|
417
424
|
const authInterval = () => {
|
|
418
|
-
|
|
419
|
-
.get(`https://lambda.roamjs.com/check?extensionId=${extensionId}${dev}`, { headers: { Authorization:
|
|
425
|
+
axios_1.default
|
|
426
|
+
.get(`https://lambda.roamjs.com/check?extensionId=${extensionId}${dev}`, { headers: { Authorization: (0, getAuthorizationHeader_1.default)() } })
|
|
420
427
|
.then((r) => {
|
|
421
428
|
if (r.data.success) {
|
|
422
429
|
enableCallback(true, uid);
|
|
@@ -452,9 +459,9 @@ const ToggleablePanel = ({ enabled, setEnabled, pageUid, order, id, extensionId,
|
|
|
452
459
|
setIsOpen(false);
|
|
453
460
|
});
|
|
454
461
|
}
|
|
455
|
-
}, confirmButtonText: "Submit", cancelButtonText: "Cancel", intent: Intent.PRIMARY, loading: loading, onCancel: () => setIsOpen(false) }, enabled
|
|
456
|
-
? `By clicking submit below, you will unsubscribe from the premium features of the RoamJS Extension: ${
|
|
457
|
-
: `By clicking submit below, you will subscribe to the premium features of the RoamJS Extension: ${
|
|
462
|
+
}, confirmButtonText: "Submit", cancelButtonText: "Cancel", intent: core_1.Intent.PRIMARY, loading: loading, onCancel: () => setIsOpen(false) }, enabled
|
|
463
|
+
? `By clicking submit below, you will unsubscribe from the premium features of the RoamJS Extension: ${(0, idToTitle_1.default)(extensionId)}`
|
|
464
|
+
: `By clicking submit below, you will subscribe to the premium features of the RoamJS Extension: ${(0, idToTitle_1.default)(extensionId)} for ${pricingMessage}. A window may appear for checkout if this is your first premium extension`)));
|
|
458
465
|
};
|
|
459
466
|
const Panels = {
|
|
460
467
|
text: TextPanel,
|
|
@@ -472,15 +479,15 @@ const tryColor = (s) => {
|
|
|
472
479
|
if (!s)
|
|
473
480
|
return undefined;
|
|
474
481
|
try {
|
|
475
|
-
return
|
|
482
|
+
return (0, color_1.default)(s);
|
|
476
483
|
}
|
|
477
484
|
catch (e) {
|
|
478
485
|
return undefined;
|
|
479
486
|
}
|
|
480
487
|
};
|
|
481
|
-
const FieldTabs = ({ id, fields, uid: initialUid, pageUid, order, toggleable, extensionId, }) => {
|
|
482
|
-
const [uid, setUid] = useState(initialUid);
|
|
483
|
-
const parentUid = useMemo(() => {
|
|
488
|
+
const FieldTabs = ({ id, fields, uid: initialUid, pageUid, order, toggleable, extensionId, onEnable, onDisable, }) => {
|
|
489
|
+
const [uid, setUid] = (0, react_1.useState)(initialUid);
|
|
490
|
+
const parentUid = (0, react_1.useMemo)(() => {
|
|
484
491
|
if (/home/i.test(id)) {
|
|
485
492
|
return pageUid;
|
|
486
493
|
}
|
|
@@ -491,28 +498,28 @@ const FieldTabs = ({ id, fields, uid: initialUid, pageUid, order, toggleable, ex
|
|
|
491
498
|
return "";
|
|
492
499
|
}
|
|
493
500
|
const newUid = window.roamAlphaAPI.util.generateUID();
|
|
494
|
-
createBlock({
|
|
501
|
+
(0, writes_1.createBlock)({
|
|
495
502
|
parentUid: pageUid,
|
|
496
503
|
order,
|
|
497
504
|
node: { text: id, uid: newUid },
|
|
498
505
|
});
|
|
499
506
|
return newUid;
|
|
500
507
|
}, [pageUid, uid, id, toggleable]);
|
|
501
|
-
const childUids = Object.fromEntries(getShallowTreeByParentUid(parentUid).map(({ text, uid }) => [
|
|
508
|
+
const childUids = Object.fromEntries((0, queries_1.getShallowTreeByParentUid)(parentUid).map(({ text, uid }) => [
|
|
502
509
|
text.toLowerCase().trim(),
|
|
503
510
|
uid,
|
|
504
511
|
]));
|
|
505
|
-
const [enabled, setEnabled] = useState(!toggleable || !!parentUid);
|
|
506
|
-
const [selectedTabId, setSelectedTabId] = useState(enabled && fields.length && typeof toggleable !== "string"
|
|
512
|
+
const [enabled, setEnabled] = (0, react_1.useState)(!toggleable || !!parentUid);
|
|
513
|
+
const [selectedTabId, setSelectedTabId] = (0, react_1.useState)(enabled && fields.length && typeof toggleable !== "string"
|
|
507
514
|
? fields[0].title
|
|
508
515
|
: "enabled");
|
|
509
|
-
const onTabsChange = useCallback((tabId) => setSelectedTabId(tabId), [setSelectedTabId]);
|
|
510
|
-
return (
|
|
511
|
-
toggleable && (
|
|
516
|
+
const onTabsChange = (0, react_1.useCallback)((tabId) => setSelectedTabId(tabId), [setSelectedTabId]);
|
|
517
|
+
return (react_1.default.createElement(core_1.Tabs, { vertical: true, id: `${id}-field-tabs`, onChange: onTabsChange, selectedTabId: selectedTabId, renderActiveTabPanelOnly: true },
|
|
518
|
+
toggleable && (react_1.default.createElement(core_1.Tab, { id: "enabled", title: "enabled", panel: selectedTabId === "enabled" ? (react_1.default.createElement(ToggleablePanel, { id: id, uid: uid, pageUid: pageUid, extensionId: extensionId, enabled: enabled, order: order, toggleable: toggleable, setUid: setUid, setEnabled: setEnabled, onEnable: onEnable, onDisable: onDisable })) : undefined })),
|
|
512
519
|
fields.map((field, i) => {
|
|
513
520
|
const { type, title, defaultValue } = field;
|
|
514
521
|
const Panel = Panels[type];
|
|
515
|
-
return (
|
|
522
|
+
return (react_1.default.createElement(core_1.Tab, { id: title, key: title, title: (0, idToTitle_1.default)(title), disabled: !enabled, panel: react_1.default.createElement(Panel, Object.assign({}, field, {
|
|
516
523
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
517
524
|
// @ts-ignore 4.3.0
|
|
518
525
|
defaultValue: defaultValue, order: i, parentUid: parentUid, uid: childUids[title.toLowerCase()] })) }));
|
|
@@ -521,14 +528,14 @@ const FieldTabs = ({ id, fields, uid: initialUid, pageUid, order, toggleable, ex
|
|
|
521
528
|
const ConfigPage = ({ id, config, pageUid, }) => {
|
|
522
529
|
var _a;
|
|
523
530
|
const userTabs = config.tabs.filter((t) => t.fields.length || t.toggleable);
|
|
524
|
-
const [selectedTabId, setSelectedTabId] = useState((_a = userTabs[0]) === null || _a === void 0 ? void 0 : _a.id);
|
|
525
|
-
const onTabsChange = useCallback((tabId) => setSelectedTabId(tabId), [setSelectedTabId]);
|
|
526
|
-
const tree = getBasicTreeByParentUid(pageUid);
|
|
527
|
-
const [currentVersion, setCurrentVersion] = useState("");
|
|
528
|
-
useEffect(() => {
|
|
531
|
+
const [selectedTabId, setSelectedTabId] = (0, react_1.useState)((_a = userTabs[0]) === null || _a === void 0 ? void 0 : _a.id);
|
|
532
|
+
const onTabsChange = (0, react_1.useCallback)((tabId) => setSelectedTabId(tabId), [setSelectedTabId]);
|
|
533
|
+
const tree = (0, queries_1.getBasicTreeByParentUid)(pageUid);
|
|
534
|
+
const [currentVersion, setCurrentVersion] = (0, react_1.useState)("");
|
|
535
|
+
(0, react_1.useEffect)(() => {
|
|
529
536
|
var _a, _b;
|
|
530
537
|
if (config.versioning) {
|
|
531
|
-
addOldRoamJSDependency("versioning");
|
|
538
|
+
(0, dom_1.addOldRoamJSDependency)("versioning");
|
|
532
539
|
const scriptVersionMatch = (_b = (_a = window.roamjs) === null || _a === void 0 ? void 0 : _a.version) === null || _b === void 0 ? void 0 : _b[id];
|
|
533
540
|
if (scriptVersionMatch) {
|
|
534
541
|
setCurrentVersion(scriptVersionMatch);
|
|
@@ -539,8 +546,8 @@ const ConfigPage = ({ id, config, pageUid, }) => {
|
|
|
539
546
|
}
|
|
540
547
|
}, [config.versioning, id, setCurrentVersion]);
|
|
541
548
|
const brandColor = tryColor(config.brand);
|
|
542
|
-
return (
|
|
543
|
-
|
|
549
|
+
return (react_1.default.createElement(core_1.Card, { style: { color: "#202B33" }, className: "roamjs-config-panel" },
|
|
550
|
+
react_1.default.createElement("style", null, `.roamjs-config-panel .bp3-tab-panel {
|
|
544
551
|
width: 100%;
|
|
545
552
|
position: relative;
|
|
546
553
|
}
|
|
@@ -568,15 +575,15 @@ ${brandColor &&
|
|
|
568
575
|
.lightness(brandColor.lightness() + 5)
|
|
569
576
|
.toString()}
|
|
570
577
|
}`}`),
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
578
|
+
react_1.default.createElement("div", { style: { display: "flex", justifyContent: "space-between" } },
|
|
579
|
+
react_1.default.createElement("h4", { style: { padding: 4 } },
|
|
580
|
+
(0, idToTitle_1.default)(id),
|
|
574
581
|
" Configuration"),
|
|
575
|
-
currentVersion && (
|
|
576
|
-
|
|
582
|
+
currentVersion && (react_1.default.createElement("span", null,
|
|
583
|
+
react_1.default.createElement("span", { style: { color: "#cccccc", fontSize: 8 } },
|
|
577
584
|
"v",
|
|
578
585
|
currentVersion),
|
|
579
|
-
|
|
586
|
+
react_1.default.createElement(core_1.Button, { icon: "git-branch", minimal: true, onClick: () => {
|
|
580
587
|
var _a, _b;
|
|
581
588
|
return ((_a = window.roamjs) === null || _a === void 0 ? void 0 : _a.extension.versioning) &&
|
|
582
589
|
((_b = window.roamjs) === null || _b === void 0 ? void 0 : _b.extension.versioning.switch({
|
|
@@ -584,10 +591,10 @@ ${brandColor &&
|
|
|
584
591
|
currentVersion,
|
|
585
592
|
}));
|
|
586
593
|
}, style: { marginLeft: 4 } })))),
|
|
587
|
-
|
|
588
|
-
|
|
594
|
+
react_1.default.createElement("style", null, `.roamjs-config-tabs {\npadding: 4px;\n}`),
|
|
595
|
+
react_1.default.createElement(core_1.Tabs, { id: `${id}-config-tabs`, onChange: onTabsChange, selectedTabId: selectedTabId, renderActiveTabPanelOnly: true, className: "roamjs-config-tabs" }, userTabs.map(({ id: tabId, fields, toggleable, development = false, onEnable, onDisable, }, i) => {
|
|
589
596
|
var _a;
|
|
590
|
-
return (
|
|
597
|
+
return (react_1.default.createElement(core_1.Tab, { id: tabId, key: tabId, title: (0, idToTitle_1.default)(tabId), disabled: development, panel: react_1.default.createElement(FieldTabs, { id: tabId, extensionId: id, fields: fields, uid: ((_a = tree.find((t) => new RegExp(tabId, "i").test(t.text))) === null || _a === void 0 ? void 0 : _a.uid) || "", pageUid: pageUid, order: i, toggleable: toggleable, onEnable: onEnable, onDisable: onDisable }) }));
|
|
591
598
|
}))));
|
|
592
599
|
};
|
|
593
600
|
const fieldsToChildren = (t) => t.fields
|
|
@@ -620,26 +627,26 @@ const createConfigPage = ({ title, config, }) => {
|
|
|
620
627
|
children: fieldsToChildren(t),
|
|
621
628
|
})),
|
|
622
629
|
];
|
|
623
|
-
return createPage({
|
|
630
|
+
return (0, writes_1.createPage)({
|
|
624
631
|
title,
|
|
625
632
|
tree: rawTree.length ? rawTree : [{ text: " " }],
|
|
626
633
|
});
|
|
627
634
|
};
|
|
628
|
-
|
|
629
|
-
const pageUid = getPageUidByPageTitle(title) ||
|
|
635
|
+
const createConfigObserver = ({ title, config, }) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
|
636
|
+
const pageUid = (0, queries_1.getPageUidByPageTitle)(title) ||
|
|
630
637
|
(yield createConfigPage({
|
|
631
638
|
title,
|
|
632
639
|
config,
|
|
633
640
|
}));
|
|
634
641
|
if (config.tabs.length) {
|
|
635
|
-
createHTMLObserver({
|
|
642
|
+
(0, dom_1.createHTMLObserver)({
|
|
636
643
|
className: "rm-title-display",
|
|
637
644
|
tag: "H1",
|
|
638
645
|
callback: (d) => {
|
|
639
646
|
var _a, _b;
|
|
640
647
|
const h = d;
|
|
641
648
|
if (h.innerText === title) {
|
|
642
|
-
const uid = getPageUidByPageTitle(title);
|
|
649
|
+
const uid = (0, queries_1.getPageUidByPageTitle)(title);
|
|
643
650
|
const attribute = `data-roamjs-${uid}`;
|
|
644
651
|
const containerParent = (_a = h.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
645
652
|
if (containerParent && !containerParent.hasAttribute(attribute)) {
|
|
@@ -647,7 +654,7 @@ export const createConfigObserver = ({ title, config, }) => __awaiter(void 0, vo
|
|
|
647
654
|
const parent = document.createElement("div");
|
|
648
655
|
parent.id = `${title.replace("roam/js/", "roamjs-")}-config`;
|
|
649
656
|
containerParent.insertBefore(parent, ((_b = d.parentElement) === null || _b === void 0 ? void 0 : _b.nextElementSibling) || null);
|
|
650
|
-
|
|
657
|
+
react_dom_1.default.render(react_1.default.createElement(ConfigPage, { id: title.replace("roam/js/", ""), config: config, pageUid: pageUid }), parent);
|
|
651
658
|
}
|
|
652
659
|
}
|
|
653
660
|
},
|
|
@@ -657,5 +664,6 @@ export const createConfigObserver = ({ title, config, }) => __awaiter(void 0, vo
|
|
|
657
664
|
pageUid,
|
|
658
665
|
};
|
|
659
666
|
});
|
|
660
|
-
|
|
667
|
+
exports.createConfigObserver = createConfigObserver;
|
|
668
|
+
exports.default = ConfigPage;
|
|
661
669
|
//# sourceMappingURL=ConfigPage.js.map
|