roamjs-components 0.82.4 → 0.82.6
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.
|
@@ -6,8 +6,12 @@ const select_1 = require("@blueprintjs/select");
|
|
|
6
6
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
7
7
|
const MenuItemSelect = (props) => {
|
|
8
8
|
const TypeSelect = select_1.Select.ofType();
|
|
9
|
-
const
|
|
10
|
-
|
|
9
|
+
const itemPredicate = (query, item) => {
|
|
10
|
+
const text = props.transformItem ? props.transformItem(item) : item;
|
|
11
|
+
return String(text).toLowerCase().includes(query.toLowerCase());
|
|
12
|
+
};
|
|
13
|
+
const { activeItem, filterable = false } = props, selectProps = tslib_1.__rest(props, ["activeItem", "filterable"]);
|
|
14
|
+
return (react_1.default.createElement(TypeSelect, Object.assign({}, selectProps, { itemRenderer: (item, { modifiers, handleClick }) => (react_1.default.createElement(core_1.MenuItem, { key: item, text: props.transformItem ? props.transformItem(item) : item, active: modifiers.active, onClick: handleClick })), filterable: filterable, itemPredicate: props.filterable ? itemPredicate : undefined, popoverProps: Object.assign({ minimal: true, captureDismiss: true }, props.popoverProps) }),
|
|
11
15
|
react_1.default.createElement(core_1.Button, Object.assign({ text: activeItem ? (props.transformItem ? (props.transformItem(activeItem)) : (activeItem)) : (react_1.default.createElement("i", { style: { opacity: 0.5 } }, props.emptyValueText || "Choose...")), rightIcon: "double-caret-vertical" }, props.ButtonProps))));
|
|
12
16
|
};
|
|
13
17
|
exports.default = MenuItemSelect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItemSelect.js","sourceRoot":"","sources":["../../src/components/MenuItemSelect.tsx"],"names":[],"mappings":";;;AAAA,4CAAmE;AACnE,gDAA0D;AAC1D,0DAAyC;AAEzC,MAAM,cAAc,GAAG,CACrB,KAE0E,EAC7D,EAAE;IACf,MAAM,UAAU,GAAG,eAAM,CAAC,MAAM,EAAK,CAAC;IACtC,MAAM,EAAE,UAAU,KAAqB,KAAK,EAArB,WAAW,kBAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"MenuItemSelect.js","sourceRoot":"","sources":["../../src/components/MenuItemSelect.tsx"],"names":[],"mappings":";;;AAAA,4CAAmE;AACnE,gDAA0D;AAC1D,0DAAyC;AAEzC,MAAM,cAAc,GAAG,CACrB,KAE0E,EAC7D,EAAE;IACf,MAAM,UAAU,GAAG,eAAM,CAAC,MAAM,EAAK,CAAC;IACtC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,IAAO,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,KAAK,KAAqB,KAAK,EAArB,WAAW,kBAAK,KAAK,EAA1D,4BAAkD,CAAQ,CAAC;IACjE,OAAO,CACL,8BAAC,UAAU,oBACL,WAAW,IACf,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAClD,8BAAC,eAAQ,IACP,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAC5D,MAAM,EAAE,SAAS,CAAC,MAAM,EACxB,OAAO,EAAE,WAAW,GACpB,CACH,EACD,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAC3D,YAAY,kBACV,OAAO,EAAE,IAAI,EACb,cAAc,EAAE,IAAI,IACjB,KAAK,CAAC,YAAY;QAGvB,8BAAC,aAAM,kBACL,IAAI,EACF,UAAU,CAAC,CAAC,CAAC,CACX,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CACpB,KAAK,CAAC,aAAa,CAAC,UAAe,CAAC,CACrC,CAAC,CAAC,CAAC,CACF,UAAU,CACX,CACF,CAAC,CAAC,CAAC,CACF,qCAAG,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IACvB,KAAK,CAAC,cAAc,IAAI,WAAW,CAClC,CACL,EAEH,SAAS,EAAC,uBAAuB,IAC7B,KAAK,CAAC,WAAW,EACrB,CACS,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC","sourcesContent":["import { Button, IButtonProps, MenuItem } from \"@blueprintjs/core\";\nimport { SelectProps, Select } from \"@blueprintjs/select\";\nimport React, { ReactText } from \"react\";\n\nconst MenuItemSelect = <T extends ReactText>(\n props: Omit<SelectProps<T>, \"itemRenderer\"> & {\n ButtonProps?: IButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement>;\n } & { emptyValueText?: string; transformItem?: (s: T) => React.ReactNode }\n): JSX.Element => {\n const TypeSelect = Select.ofType<T>();\n const itemPredicate = (query: string, item: T) => {\n const text = props.transformItem ? props.transformItem(item) : item;\n return String(text).toLowerCase().includes(query.toLowerCase());\n };\n const { activeItem, filterable = false, ...selectProps } = props;\n return (\n <TypeSelect\n {...selectProps}\n itemRenderer={(item, { modifiers, handleClick }) => (\n <MenuItem\n key={item}\n text={props.transformItem ? props.transformItem(item) : item}\n active={modifiers.active}\n onClick={handleClick}\n />\n )}\n filterable={filterable}\n itemPredicate={props.filterable ? itemPredicate : undefined}\n popoverProps={{\n minimal: true,\n captureDismiss: true,\n ...props.popoverProps,\n }}\n >\n <Button\n text={\n activeItem ? (\n props.transformItem ? (\n props.transformItem(activeItem as T)\n ) : (\n activeItem\n )\n ) : (\n <i style={{ opacity: 0.5 }}>\n {props.emptyValueText || \"Choose...\"}\n </i>\n )\n }\n rightIcon=\"double-caret-vertical\"\n {...props.ButtonProps}\n />\n </TypeSelect>\n );\n};\n\nexport default MenuItemSelect;\n"]}
|
package/components.js
CHANGED
|
@@ -11,6 +11,7 @@ const Toast_1 = tslib_1.__importDefault(require("./components/Toast"));
|
|
|
11
11
|
const renderOverlay_1 = tslib_1.__importDefault(require("./util/renderOverlay"));
|
|
12
12
|
const runExtension_1 = tslib_1.__importDefault(require("./util/runExtension"));
|
|
13
13
|
const writes_1 = require("./writes");
|
|
14
|
+
const MenuItemSelect_1 = tslib_1.__importDefault(require("./components/MenuItemSelect"));
|
|
14
15
|
// const blockRender = (Component: React.FC) => {
|
|
15
16
|
// const block = window.roamAlphaAPI.ui.getFocusedBlock();
|
|
16
17
|
// const parent = document.getElementById(
|
|
@@ -30,6 +31,20 @@ const rootRender = (Component) => {
|
|
|
30
31
|
});
|
|
31
32
|
};
|
|
32
33
|
const components = [
|
|
34
|
+
{
|
|
35
|
+
callback: () => rootRender(() => {
|
|
36
|
+
const [value, setValue] = (0, react_1.useState)("");
|
|
37
|
+
const [filterable, setFilterable] = (0, react_1.useState)(false);
|
|
38
|
+
const options = (0, react_1.useMemo)(() => ["apple", "banana", "orange"], []);
|
|
39
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
40
|
+
react_1.default.createElement("div", null,
|
|
41
|
+
"Chosen value: ",
|
|
42
|
+
value),
|
|
43
|
+
react_1.default.createElement(core_1.Checkbox, { checked: filterable, onChange: (e) => setFilterable(e.target.checked), label: "Filterable" }),
|
|
44
|
+
react_1.default.createElement(MenuItemSelect_1.default, { activeItem: value, items: options, onItemSelect: (item) => setValue(item), filterable: filterable })));
|
|
45
|
+
}),
|
|
46
|
+
label: "MenuItemSelect",
|
|
47
|
+
},
|
|
33
48
|
{
|
|
34
49
|
callback: () => rootRender(() => {
|
|
35
50
|
const [value, setValue] = (0, react_1.useState)("");
|
package/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":"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","sourcesContent":["import ReactDOM from \"react-dom\";\nimport React, { useState, useMemo } from \"react\";\nimport { Button } from \"@blueprintjs/core\";\n\nimport AutocompleteInput from \"./components/AutocompleteInput\";\nimport FormDialog from \"./components/FormDialog\";\nimport PageInput from \"./components/PageInput\";\nimport renderToast from \"./components/Toast\";\n\nimport renderOverlay from \"./util/renderOverlay\";\nimport runExtension from \"./util/runExtension\";\n\nimport { createBlock } from \"./writes\";\n\n// const blockRender = (Component: React.FC) => {\n// const block = window.roamAlphaAPI.ui.getFocusedBlock();\n// const parent = document.getElementById(\n// `block-input-${block?.[\"window-id\"]}-${block?.[\"block-uid\"]}`\n// );\n// ReactDOM.render(<Component />, parent);\n// };\n\nconst unloads = new Set<() => void>();\n\nconst rootRender = (Component: React.FC) => {\n const root = document.querySelector(\".roam-article\");\n const parent = document.createElement(\"div\");\n root?.insertBefore(parent, root.firstElementChild);\n ReactDOM.render(<Component />, parent);\n unloads.add(() => {\n ReactDOM.unmountComponentAtNode(parent);\n parent.remove();\n });\n};\n\nconst components = [\n {\n callback: () =>\n rootRender(() => {\n const [value, setValue] = useState(\"\");\n const options = useMemo(() => [\"apple\", \"banana\", \"orange\"], []);\n return (\n <>\n <AutocompleteInput\n value={value}\n setValue={setValue}\n options={options}\n />\n <div>Chosen value: {value}</div>\n </>\n );\n }),\n label: \"AutocompleteInput\",\n },\n {\n callback: () =>\n rootRender(() => {\n const [isOpen, setIsOpen] = useState(false);\n return (\n <>\n <Button onClick={() => setIsOpen(true)} text={\"Open Form\"} />\n <FormDialog\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n onSubmit={(data) =>\n window.roamAlphaAPI.ui.mainWindow\n .getOpenPageOrBlockUid()\n .then((parentUid) =>\n createBlock({\n parentUid:\n parentUid ||\n window.roamAlphaAPI.util.dateToPageUid(new Date()),\n node: {\n text: \"Response\",\n children: Object.entries(data).map(([k, v]) => ({\n text: k,\n children: Array.isArray(v) ? v : [{ text: `${v}` }],\n })),\n },\n })\n )\n }\n fields={{\n text: { type: \"text\", label: \"Text Field\" },\n number: { type: \"number\", label: \"Number Field\" },\n info: { type: \"info\", label: \"Read Only Info Text\" },\n flag: { type: \"flag\", label: \"Flag Field\" },\n conditionalText: {\n type: \"text\",\n label: \"Conditional Text Field\",\n conditional: \"flag\",\n },\n page: { type: \"page\", label: \"Page Field\" },\n block: { type: \"block\", label: \"Block Field\" },\n select: {\n type: \"select\",\n label: \"Select Field\",\n options: [\n \"apple\",\n \"banana\",\n \"orange\",\n \"conditional select 1\",\n ],\n },\n conditionalSelect: {\n type: \"text\",\n label: \"Conditional Text Field\",\n conditional: \"select\",\n conditionalValues: [\"conditional select 1\"],\n },\n autocomplete: {\n type: \"autocomplete\",\n label: \"Autocomplete Field\",\n options: [\"apple\", \"banana\", \"orange\"],\n },\n embed: {\n type: \"embed\",\n label: \"Embed Field\",\n },\n }}\n />\n </>\n );\n }),\n label: \"FormDialog\",\n },\n {\n callback: () =>\n rootRender(() => {\n const [value, setValue] = useState(\"\");\n const [multiline, setMultiline] = useState(false);\n return (\n <>\n <PageInput\n value={value}\n setValue={setValue}\n multiline={multiline}\n />\n <input\n className=\"ml-8 inline-block\"\n checked={multiline}\n onChange={(e) => setMultiline(e.target.checked)}\n type={\"checkbox\"}\n />\n </>\n );\n }),\n label: \"PageInput\",\n },\n];\n\nexport default runExtension(async (args) => {\n components.forEach(({ callback, label }) => {\n args.extensionAPI.ui.commandPalette.addCommand({\n label: `Render RoamJS component ${label}`,\n callback,\n });\n });\n window.roamjs.extension.developer = {\n components: {\n AutocompleteInput,\n FormDialog,\n PageInput,\n renderToast,\n },\n util: {\n renderOverlay,\n runExtension,\n },\n args,\n };\n return () => {\n unloads.forEach((unload) => unload());\n };\n});\n"]}
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":"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","sourcesContent":["import ReactDOM from \"react-dom\";\nimport React, { useState, useMemo } from \"react\";\nimport { Button, Checkbox } from \"@blueprintjs/core\";\n\nimport AutocompleteInput from \"./components/AutocompleteInput\";\nimport FormDialog from \"./components/FormDialog\";\nimport PageInput from \"./components/PageInput\";\nimport renderToast from \"./components/Toast\";\n\nimport renderOverlay from \"./util/renderOverlay\";\nimport runExtension from \"./util/runExtension\";\n\nimport { createBlock } from \"./writes\";\nimport MenuItemSelect from \"./components/MenuItemSelect\";\n\n// const blockRender = (Component: React.FC) => {\n// const block = window.roamAlphaAPI.ui.getFocusedBlock();\n// const parent = document.getElementById(\n// `block-input-${block?.[\"window-id\"]}-${block?.[\"block-uid\"]}`\n// );\n// ReactDOM.render(<Component />, parent);\n// };\n\nconst unloads = new Set<() => void>();\n\nconst rootRender = (Component: React.FC) => {\n const root = document.querySelector(\".roam-article\");\n const parent = document.createElement(\"div\");\n root?.insertBefore(parent, root.firstElementChild);\n ReactDOM.render(<Component />, parent);\n unloads.add(() => {\n ReactDOM.unmountComponentAtNode(parent);\n parent.remove();\n });\n};\n\nconst components = [\n {\n callback: () =>\n rootRender(() => {\n const [value, setValue] = useState(\"\");\n const [filterable, setFilterable] = useState(false);\n const options = useMemo(() => [\"apple\", \"banana\", \"orange\"], []);\n return (\n <>\n <div>Chosen value: {value}</div>\n <Checkbox\n checked={filterable as boolean}\n onChange={(e) =>\n setFilterable((e.target as HTMLInputElement).checked)\n }\n label={\"Filterable\"}\n />\n <MenuItemSelect\n activeItem={value}\n items={options}\n onItemSelect={(item) => setValue(item)}\n filterable={filterable}\n />\n </>\n );\n }),\n label: \"MenuItemSelect\",\n },\n {\n callback: () =>\n rootRender(() => {\n const [value, setValue] = useState(\"\");\n const options = useMemo(() => [\"apple\", \"banana\", \"orange\"], []);\n return (\n <>\n <AutocompleteInput\n value={value}\n setValue={setValue}\n options={options}\n />\n <div>Chosen value: {value}</div>\n </>\n );\n }),\n label: \"AutocompleteInput\",\n },\n {\n callback: () =>\n rootRender(() => {\n const [isOpen, setIsOpen] = useState(false);\n return (\n <>\n <Button onClick={() => setIsOpen(true)} text={\"Open Form\"} />\n <FormDialog\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n onSubmit={(data) =>\n window.roamAlphaAPI.ui.mainWindow\n .getOpenPageOrBlockUid()\n .then((parentUid) =>\n createBlock({\n parentUid:\n parentUid ||\n window.roamAlphaAPI.util.dateToPageUid(new Date()),\n node: {\n text: \"Response\",\n children: Object.entries(data).map(([k, v]) => ({\n text: k,\n children: Array.isArray(v) ? v : [{ text: `${v}` }],\n })),\n },\n })\n )\n }\n fields={{\n text: { type: \"text\", label: \"Text Field\" },\n number: { type: \"number\", label: \"Number Field\" },\n info: { type: \"info\", label: \"Read Only Info Text\" },\n flag: { type: \"flag\", label: \"Flag Field\" },\n conditionalText: {\n type: \"text\",\n label: \"Conditional Text Field\",\n conditional: \"flag\",\n },\n page: { type: \"page\", label: \"Page Field\" },\n block: { type: \"block\", label: \"Block Field\" },\n select: {\n type: \"select\",\n label: \"Select Field\",\n options: [\n \"apple\",\n \"banana\",\n \"orange\",\n \"conditional select 1\",\n ],\n },\n conditionalSelect: {\n type: \"text\",\n label: \"Conditional Text Field\",\n conditional: \"select\",\n conditionalValues: [\"conditional select 1\"],\n },\n autocomplete: {\n type: \"autocomplete\",\n label: \"Autocomplete Field\",\n options: [\"apple\", \"banana\", \"orange\"],\n },\n embed: {\n type: \"embed\",\n label: \"Embed Field\",\n },\n }}\n />\n </>\n );\n }),\n label: \"FormDialog\",\n },\n {\n callback: () =>\n rootRender(() => {\n const [value, setValue] = useState(\"\");\n const [multiline, setMultiline] = useState(false);\n return (\n <>\n <PageInput\n value={value}\n setValue={setValue}\n multiline={multiline}\n />\n <input\n className=\"ml-8 inline-block\"\n checked={multiline}\n onChange={(e) => setMultiline(e.target.checked)}\n type={\"checkbox\"}\n />\n </>\n );\n }),\n label: \"PageInput\",\n },\n];\n\nexport default runExtension(async (args) => {\n components.forEach(({ callback, label }) => {\n args.extensionAPI.ui.commandPalette.addCommand({\n label: `Render RoamJS component ${label}`,\n callback,\n });\n });\n window.roamjs.extension.developer = {\n components: {\n AutocompleteInput,\n FormDialog,\n PageInput,\n renderToast,\n },\n util: {\n renderOverlay,\n runExtension,\n },\n args,\n };\n return () => {\n unloads.forEach((unload) => unload());\n };\n});\n"]}
|
package/package.json
CHANGED
package/writes/createBlock.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { InputTextNode, ActionParams } from "../types";
|
|
|
2
2
|
export declare const gatherActions: ({ node: { text, children, uid, heading, viewType, textAlign, open, props, }, parentUid, order, }: {
|
|
3
3
|
node: InputTextNode;
|
|
4
4
|
parentUid: string;
|
|
5
|
-
order?: number | undefined;
|
|
5
|
+
order?: number | "last" | undefined;
|
|
6
6
|
}) => ActionParams[];
|
|
7
7
|
declare const createBlock: (params: Parameters<typeof gatherActions>[0]) => Promise<string>;
|
|
8
8
|
export default createBlock;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBlock.js","sourceRoot":"","sources":["../../src/writes/createBlock.ts"],"names":[],"mappings":";;;;AACA,4EAA4C;AAErC,MAAM,aAAa,GAAG,CAAC,EAC5B,IAAI,EAAE,EACJ,IAAI,EACJ,QAAQ,GAAG,EAAE,EACb,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAC5C,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,IAAI,EACX,KAAK,GACN,EACD,SAAS,EACT,KAAK,GAAG,CAAC,GAKV,EAAkB,EAAE;IACnB,OAAO;QACL;YACE,QAAQ,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE;YAC5C,KAAK,EAAE;gBACL,GAAG;gBACH,MAAM,EAAE,IAAI;gBACZ,OAAO;gBACP,YAAY,EAAE,SAAS;gBACvB,oBAAoB,EAAE,QAAQ;gBAC9B,IAAI;gBACJ,KAAK;aACN;SACF;QACD,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAClC,IAAA,qBAAa,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAC/C;KACF,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,aAAa,iBAmCxB;AAEF,MAAM,WAAW,GAAG,CAClB,MAA2C,EAC1B,EAAE;IACnB,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,CAAC;IACtC,OAAO,IAAA,uBAAa,EAClB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAC3D,CAAC,IAAI,CAAC,GAAG,EAAE,WAAC,OAAA,CAAA,MAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,0CAAE,GAAG,KAAI,EAAE,CAAA,EAAA,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC","sourcesContent":["import type { InputTextNode, ActionParams } from \"../types\";\nimport submitActions from \"./submitActions\";\n\nexport const gatherActions = ({\n node: {\n text,\n children = [],\n uid = window.roamAlphaAPI.util.generateUID(),\n heading,\n viewType,\n textAlign,\n open = true,\n props,\n },\n parentUid,\n order = 0,\n}: {\n node: InputTextNode;\n parentUid: string;\n order?: number;\n}): ActionParams[] => {\n return [\n {\n location: { \"parent-uid\": parentUid, order },\n block: {\n uid,\n string: text,\n heading,\n \"text-align\": textAlign,\n \"children-view-type\": viewType,\n open,\n props,\n },\n },\n ...children.flatMap((node, order) =>\n gatherActions({ node, parentUid: uid, order })\n ),\n ];\n};\n\nconst createBlock = (\n params: Parameters<typeof gatherActions>[0]\n): Promise<string> => {\n const actions = gatherActions(params);\n return submitActions(\n actions.map((params) => ({ params, type: \"createBlock\" }))\n ).then(() => actions[0].block?.uid || \"\");\n};\n\nexport default createBlock;\n"]}
|
|
1
|
+
{"version":3,"file":"createBlock.js","sourceRoot":"","sources":["../../src/writes/createBlock.ts"],"names":[],"mappings":";;;;AACA,4EAA4C;AAErC,MAAM,aAAa,GAAG,CAAC,EAC5B,IAAI,EAAE,EACJ,IAAI,EACJ,QAAQ,GAAG,EAAE,EACb,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAC5C,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,IAAI,EACX,KAAK,GACN,EACD,SAAS,EACT,KAAK,GAAG,CAAC,GAKV,EAAkB,EAAE;IACnB,OAAO;QACL;YACE,QAAQ,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE;YAC5C,KAAK,EAAE;gBACL,GAAG;gBACH,MAAM,EAAE,IAAI;gBACZ,OAAO;gBACP,YAAY,EAAE,SAAS;gBACvB,oBAAoB,EAAE,QAAQ;gBAC9B,IAAI;gBACJ,KAAK;aACN;SACF;QACD,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAClC,IAAA,qBAAa,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAC/C;KACF,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,aAAa,iBAmCxB;AAEF,MAAM,WAAW,GAAG,CAClB,MAA2C,EAC1B,EAAE;IACnB,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,CAAC;IACtC,OAAO,IAAA,uBAAa,EAClB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAC3D,CAAC,IAAI,CAAC,GAAG,EAAE,WAAC,OAAA,CAAA,MAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,0CAAE,GAAG,KAAI,EAAE,CAAA,EAAA,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC","sourcesContent":["import type { InputTextNode, ActionParams } from \"../types\";\nimport submitActions from \"./submitActions\";\n\nexport const gatherActions = ({\n node: {\n text,\n children = [],\n uid = window.roamAlphaAPI.util.generateUID(),\n heading,\n viewType,\n textAlign,\n open = true,\n props,\n },\n parentUid,\n order = 0,\n}: {\n node: InputTextNode;\n parentUid: string;\n order?: number | \"last\";\n}): ActionParams[] => {\n return [\n {\n location: { \"parent-uid\": parentUid, order },\n block: {\n uid,\n string: text,\n heading,\n \"text-align\": textAlign,\n \"children-view-type\": viewType,\n open,\n props,\n },\n },\n ...children.flatMap((node, order) =>\n gatherActions({ node, parentUid: uid, order })\n ),\n ];\n};\n\nconst createBlock = (\n params: Parameters<typeof gatherActions>[0]\n): Promise<string> => {\n const actions = gatherActions(params);\n return submitActions(\n actions.map((params) => ({ params, type: \"createBlock\" }))\n ).then(() => actions[0].block?.uid || \"\");\n};\n\nexport default createBlock;\n"]}
|