@haklex/rich-editor 0.2.0 → 0.3.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/dist/{SubmitShortcutPlugin-D-7XrQfm.js → SubmitShortcutPlugin-DhyVFzoj.js} +3 -3
- package/dist/components/decorators/PollEditDecorator.d.ts +13 -0
- package/dist/components/decorators/PollEditDecorator.d.ts.map +1 -0
- package/dist/components/renderers/PollRenderer.d.ts +3 -0
- package/dist/components/renderers/PollRenderer.d.ts.map +1 -0
- package/dist/{config-CNiK9v2M.js → config-B5BuLljq.js} +390 -3
- package/dist/config-edit.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/context/PollDataContext.d.ts +11 -0
- package/dist/context/PollDataContext.d.ts.map +1 -0
- package/dist/{PresentDialogContext-DKNicgia.js → extractPolls-DO31LNrp.js} +43 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/{node-registry-DOYK_WIp.js → node-registry-Dz5OTkh4.js} +281 -4
- package/dist/nodes/PollEditNode.d.ts +14 -0
- package/dist/nodes/PollEditNode.d.ts.map +1 -0
- package/dist/nodes/PollNode.d.ts +52 -0
- package/dist/nodes/PollNode.d.ts.map +1 -0
- package/dist/nodes-entry.d.ts +3 -0
- package/dist/nodes-entry.d.ts.map +1 -1
- package/dist/nodes-entry.mjs +3 -3
- package/dist/plugins-entry.mjs +1 -1
- package/dist/rich-editor.css +1 -1
- package/dist/static-entry.d.ts +5 -0
- package/dist/static-entry.d.ts.map +1 -1
- package/dist/static-entry.mjs +3 -3
- package/dist/styles/index.d.ts +2 -0
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/styles/poll-edit.css.d.ts +35 -0
- package/dist/styles/poll-edit.css.d.ts.map +1 -0
- package/dist/styles/poll.css.d.ts +43 -0
- package/dist/styles/poll.css.d.ts.map +1 -0
- package/dist/types/poll.d.ts +36 -0
- package/dist/types/poll.d.ts.map +1 -0
- package/dist/types/renderer-config.d.ts +3 -0
- package/dist/types/renderer-config.d.ts.map +1 -1
- package/dist/utils/extractPolls.d.ts +4 -0
- package/dist/utils/extractPolls.d.ts.map +1 -0
- package/package.json +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { C as ImageNode, E as FootnoteNode, _ as KaTeXInlineNode, b as KaTeXBlockNode, c as SpoilerNode, d as MermaidNode, i as TagNode, j as _defineProperty, m as MentionNode, t as editorTheme } from "./theme-B5B2EOWM.js";
|
|
2
2
|
import { l as RendererWrapper, s as useFootnoteDefinitions } from "./KaTeXRenderer-CQQT3BMw.js";
|
|
3
3
|
import { l as semanticClassNames, r as clsx, u as sharedStyles } from "./katex.css-CIOEOXyd.js";
|
|
4
|
-
import { C as
|
|
4
|
+
import { C as GridContainerNode, E as FootnoteSectionNode, F as CodeBlockRenderer, H as normalizeBannerType, M as CommentNode, N as $isCodeBlockNode, O as DetailsNode, P as CodeBlockNode, R as $isBannerNode, S as $isGridContainerNode, U as BannerRenderer, V as BannerNode, b as LinkCardNode, i as VideoNode, l as $isPollNode, n as builtinNodes, s as RubyNode, u as PollNode } from "./config-B5BuLljq.js";
|
|
5
5
|
import { n as gridStyles, t as gridClassNames } from "./grid.css-CJCkLTZc.js";
|
|
6
6
|
import { n as AlertQuoteEditNode, r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-C55sxsR3.js";
|
|
7
7
|
import { LinkPlugin } from "@lexical/react/LexicalLinkPlugin";
|
|
@@ -10,7 +10,8 @@ import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext
|
|
|
10
10
|
import { createElement, useCallback, useEffect, useState } from "react";
|
|
11
11
|
import { $createNodeSelection, $createParagraphNode, $getNodeByKey, $getRoot, $getSelection, $insertNodes, $isDecoratorNode, $isElementNode, $isNodeSelection, $nodesOfType, $setSelection, createEditor } from "lexical";
|
|
12
12
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { Flag, LayoutGrid, Minus, Plus } from "lucide-react";
|
|
13
|
+
import { Flag, LayoutGrid, Minus, Plus, Vote } from "lucide-react";
|
|
14
|
+
import { customAlphabet } from "nanoid";
|
|
14
15
|
import { ContentEditable } from "@lexical/react/LexicalContentEditable";
|
|
15
16
|
import { LexicalErrorBoundary } from "@lexical/react/LexicalErrorBoundary";
|
|
16
17
|
import { LexicalNestedComposer } from "@lexical/react/LexicalNestedComposer";
|
|
@@ -634,6 +635,281 @@ function $isGridEditNode(node) {
|
|
|
634
635
|
return node instanceof GridEditNode;
|
|
635
636
|
}
|
|
636
637
|
//#endregion
|
|
638
|
+
//#region src/styles/poll-edit.css.ts
|
|
639
|
+
var pollEditClasses = {
|
|
640
|
+
container: "_15l32q50",
|
|
641
|
+
meta: "_15l32q51",
|
|
642
|
+
question: "_15l32q52",
|
|
643
|
+
optionList: "_15l32q53",
|
|
644
|
+
optionRow: "_15l32q54",
|
|
645
|
+
reorderColumn: "_15l32q55",
|
|
646
|
+
reorderButton: "_15l32q56",
|
|
647
|
+
optionInput: "_15l32q57",
|
|
648
|
+
removeButton: "_15l32q58",
|
|
649
|
+
addOption: "_15l32q59",
|
|
650
|
+
advancedSummary: "_15l32q5a",
|
|
651
|
+
advancedGrid: "_15l32q5b",
|
|
652
|
+
advancedLabel: "_15l32q5c",
|
|
653
|
+
advancedInput: "_15l32q5d",
|
|
654
|
+
modeRow: "_15l32q5e",
|
|
655
|
+
modeLabel: "_15l32q5f"
|
|
656
|
+
};
|
|
657
|
+
//#endregion
|
|
658
|
+
//#region src/components/decorators/PollEditDecorator.tsx
|
|
659
|
+
var makeOptionId = customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789", 6);
|
|
660
|
+
function moveItem(arr, from, to) {
|
|
661
|
+
if (to < 0 || to >= arr.length) return arr;
|
|
662
|
+
const next = arr.slice();
|
|
663
|
+
const [item] = next.splice(from, 1);
|
|
664
|
+
next.splice(to, 0, item);
|
|
665
|
+
return next;
|
|
666
|
+
}
|
|
667
|
+
function PollEditDecorator({ closeAt, mode, nodeKey, options, pollId, question, showResults }) {
|
|
668
|
+
const [editor] = useLexicalComposerContext();
|
|
669
|
+
const editable = editor.isEditable();
|
|
670
|
+
const updatePoll = useCallback((mutate) => {
|
|
671
|
+
editor.update(() => {
|
|
672
|
+
const node = $getNodeByKey(nodeKey);
|
|
673
|
+
if ($isPollNode(node)) mutate(node);
|
|
674
|
+
});
|
|
675
|
+
}, [editor, nodeKey]);
|
|
676
|
+
const handleQuestionChange = useCallback((value) => {
|
|
677
|
+
updatePoll((node) => node.setQuestion(value));
|
|
678
|
+
}, [updatePoll]);
|
|
679
|
+
const handleOptionLabelChange = useCallback((id, label) => {
|
|
680
|
+
updatePoll((node) => node.setOptions(node.getOptions().map((o) => o.id === id ? {
|
|
681
|
+
...o,
|
|
682
|
+
label
|
|
683
|
+
} : o)));
|
|
684
|
+
}, [updatePoll]);
|
|
685
|
+
const handleOptionRemove = useCallback((id) => {
|
|
686
|
+
updatePoll((node) => node.setOptions(node.getOptions().filter((o) => o.id !== id)));
|
|
687
|
+
}, [updatePoll]);
|
|
688
|
+
const handleOptionAdd = useCallback(() => {
|
|
689
|
+
updatePoll((node) => node.setOptions([...node.getOptions(), {
|
|
690
|
+
id: `o_${makeOptionId()}`,
|
|
691
|
+
label: ""
|
|
692
|
+
}]));
|
|
693
|
+
}, [updatePoll]);
|
|
694
|
+
const handleOptionMove = useCallback((index, direction) => {
|
|
695
|
+
updatePoll((node) => {
|
|
696
|
+
const current = node.getOptions();
|
|
697
|
+
const next = moveItem(current, index, index + direction);
|
|
698
|
+
if (next !== current) node.setOptions(next);
|
|
699
|
+
});
|
|
700
|
+
}, [updatePoll]);
|
|
701
|
+
const handleModeChange = useCallback((next) => {
|
|
702
|
+
updatePoll((node) => node.setMode(next));
|
|
703
|
+
}, [updatePoll]);
|
|
704
|
+
const handleCloseAtChange = useCallback((value) => {
|
|
705
|
+
updatePoll((node) => node.setCloseAt(value || void 0));
|
|
706
|
+
}, [updatePoll]);
|
|
707
|
+
const handleShowResultsChange = useCallback((value) => {
|
|
708
|
+
updatePoll((node) => {
|
|
709
|
+
if (value === "always" || value === "after-vote" || value === "after-close") node.setShowResults(value);
|
|
710
|
+
else node.setShowResults(void 0);
|
|
711
|
+
});
|
|
712
|
+
}, [updatePoll]);
|
|
713
|
+
const handleOptionKeyDown = useCallback((event, index) => {
|
|
714
|
+
if (event.key === "Enter") {
|
|
715
|
+
event.preventDefault();
|
|
716
|
+
if (index === options.length - 1) handleOptionAdd();
|
|
717
|
+
}
|
|
718
|
+
}, [handleOptionAdd, options.length]);
|
|
719
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
720
|
+
className: pollEditClasses.container,
|
|
721
|
+
"data-poll-id": pollId,
|
|
722
|
+
children: [
|
|
723
|
+
/* @__PURE__ */ jsxs("div", {
|
|
724
|
+
className: pollEditClasses.meta,
|
|
725
|
+
children: ["Poll · ", mode === "single" ? "Single choice" : "Multiple choice"]
|
|
726
|
+
}),
|
|
727
|
+
/* @__PURE__ */ jsx("input", {
|
|
728
|
+
"aria-label": "Poll question",
|
|
729
|
+
className: pollEditClasses.question,
|
|
730
|
+
disabled: !editable,
|
|
731
|
+
placeholder: "Question",
|
|
732
|
+
value: question,
|
|
733
|
+
onChange: (event) => handleQuestionChange(event.target.value)
|
|
734
|
+
}),
|
|
735
|
+
/* @__PURE__ */ jsx("ul", {
|
|
736
|
+
className: pollEditClasses.optionList,
|
|
737
|
+
children: options.map((option, index) => /* @__PURE__ */ jsxs("li", {
|
|
738
|
+
className: pollEditClasses.optionRow,
|
|
739
|
+
children: [
|
|
740
|
+
editable && options.length > 1 && /* @__PURE__ */ jsxs("span", {
|
|
741
|
+
className: pollEditClasses.reorderColumn,
|
|
742
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
743
|
+
"aria-label": "Move option up",
|
|
744
|
+
className: pollEditClasses.reorderButton,
|
|
745
|
+
disabled: index === 0,
|
|
746
|
+
type: "button",
|
|
747
|
+
onClick: () => handleOptionMove(index, -1),
|
|
748
|
+
children: "▲"
|
|
749
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
750
|
+
"aria-label": "Move option down",
|
|
751
|
+
className: pollEditClasses.reorderButton,
|
|
752
|
+
disabled: index === options.length - 1,
|
|
753
|
+
type: "button",
|
|
754
|
+
onClick: () => handleOptionMove(index, 1),
|
|
755
|
+
children: "▼"
|
|
756
|
+
})]
|
|
757
|
+
}),
|
|
758
|
+
/* @__PURE__ */ jsx("input", {
|
|
759
|
+
"aria-label": "Option label",
|
|
760
|
+
className: pollEditClasses.optionInput,
|
|
761
|
+
disabled: !editable,
|
|
762
|
+
placeholder: "Option",
|
|
763
|
+
value: option.label,
|
|
764
|
+
onChange: (event) => handleOptionLabelChange(option.id, event.target.value),
|
|
765
|
+
onKeyDown: (event) => handleOptionKeyDown(event, index)
|
|
766
|
+
}),
|
|
767
|
+
editable && options.length > 2 && /* @__PURE__ */ jsx("button", {
|
|
768
|
+
"aria-label": "Remove option",
|
|
769
|
+
className: pollEditClasses.removeButton,
|
|
770
|
+
type: "button",
|
|
771
|
+
onClick: () => handleOptionRemove(option.id),
|
|
772
|
+
children: "×"
|
|
773
|
+
})
|
|
774
|
+
]
|
|
775
|
+
}, option.id))
|
|
776
|
+
}),
|
|
777
|
+
editable && /* @__PURE__ */ jsx("button", {
|
|
778
|
+
className: pollEditClasses.addOption,
|
|
779
|
+
type: "button",
|
|
780
|
+
onClick: handleOptionAdd,
|
|
781
|
+
children: "+ Add option"
|
|
782
|
+
}),
|
|
783
|
+
editable && /* @__PURE__ */ jsxs("div", {
|
|
784
|
+
className: pollEditClasses.modeRow,
|
|
785
|
+
children: [/* @__PURE__ */ jsxs("label", {
|
|
786
|
+
className: pollEditClasses.modeLabel,
|
|
787
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
788
|
+
checked: mode === "single",
|
|
789
|
+
name: `poll-mode-${nodeKey}`,
|
|
790
|
+
type: "radio",
|
|
791
|
+
onChange: () => handleModeChange("single")
|
|
792
|
+
}), "Single"]
|
|
793
|
+
}), /* @__PURE__ */ jsxs("label", {
|
|
794
|
+
className: pollEditClasses.modeLabel,
|
|
795
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
796
|
+
checked: mode === "multiple",
|
|
797
|
+
name: `poll-mode-${nodeKey}`,
|
|
798
|
+
type: "radio",
|
|
799
|
+
onChange: () => handleModeChange("multiple")
|
|
800
|
+
}), "Multiple"]
|
|
801
|
+
})]
|
|
802
|
+
}),
|
|
803
|
+
editable && /* @__PURE__ */ jsxs("details", { children: [/* @__PURE__ */ jsx("summary", {
|
|
804
|
+
className: pollEditClasses.advancedSummary,
|
|
805
|
+
children: "Advanced"
|
|
806
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
807
|
+
className: pollEditClasses.advancedGrid,
|
|
808
|
+
children: [
|
|
809
|
+
/* @__PURE__ */ jsx("span", {
|
|
810
|
+
className: pollEditClasses.advancedLabel,
|
|
811
|
+
children: "Close at"
|
|
812
|
+
}),
|
|
813
|
+
/* @__PURE__ */ jsx("input", {
|
|
814
|
+
"aria-label": "Closing time",
|
|
815
|
+
className: pollEditClasses.advancedInput,
|
|
816
|
+
type: "datetime-local",
|
|
817
|
+
value: closeAt ?? "",
|
|
818
|
+
onChange: (event) => handleCloseAtChange(event.target.value)
|
|
819
|
+
}),
|
|
820
|
+
/* @__PURE__ */ jsx("span", {
|
|
821
|
+
className: pollEditClasses.advancedLabel,
|
|
822
|
+
children: "Show results"
|
|
823
|
+
}),
|
|
824
|
+
/* @__PURE__ */ jsxs("select", {
|
|
825
|
+
"aria-label": "Show results policy",
|
|
826
|
+
className: pollEditClasses.advancedInput,
|
|
827
|
+
value: showResults ?? "always",
|
|
828
|
+
onChange: (event) => handleShowResultsChange(event.target.value),
|
|
829
|
+
children: [
|
|
830
|
+
/* @__PURE__ */ jsx("option", {
|
|
831
|
+
value: "always",
|
|
832
|
+
children: "Always"
|
|
833
|
+
}),
|
|
834
|
+
/* @__PURE__ */ jsx("option", {
|
|
835
|
+
value: "after-vote",
|
|
836
|
+
children: "After vote"
|
|
837
|
+
}),
|
|
838
|
+
/* @__PURE__ */ jsx("option", {
|
|
839
|
+
value: "after-close",
|
|
840
|
+
children: "After close"
|
|
841
|
+
})
|
|
842
|
+
]
|
|
843
|
+
})
|
|
844
|
+
]
|
|
845
|
+
})] })
|
|
846
|
+
]
|
|
847
|
+
});
|
|
848
|
+
}
|
|
849
|
+
//#endregion
|
|
850
|
+
//#region src/nodes/PollEditNode.ts
|
|
851
|
+
var PollEditNode = class PollEditNode extends PollNode {
|
|
852
|
+
static getType() {
|
|
853
|
+
return "poll";
|
|
854
|
+
}
|
|
855
|
+
static clone(node) {
|
|
856
|
+
return new PollEditNode({
|
|
857
|
+
pollId: node.__pollId,
|
|
858
|
+
question: node.__question,
|
|
859
|
+
options: node.__options,
|
|
860
|
+
mode: node.__mode,
|
|
861
|
+
closeAt: node.__closeAt,
|
|
862
|
+
showResults: node.__showResults
|
|
863
|
+
}, node.__key);
|
|
864
|
+
}
|
|
865
|
+
constructor(payload, key) {
|
|
866
|
+
super(payload, key);
|
|
867
|
+
}
|
|
868
|
+
static importJSON(serializedNode) {
|
|
869
|
+
return new PollEditNode({
|
|
870
|
+
pollId: serializedNode.pollId,
|
|
871
|
+
question: serializedNode.question,
|
|
872
|
+
options: serializedNode.options,
|
|
873
|
+
mode: serializedNode.mode,
|
|
874
|
+
closeAt: serializedNode.closeAt,
|
|
875
|
+
showResults: serializedNode.showResults
|
|
876
|
+
});
|
|
877
|
+
}
|
|
878
|
+
decorate(_editor, _config) {
|
|
879
|
+
return createElement(PollEditDecorator, {
|
|
880
|
+
nodeKey: this.__key,
|
|
881
|
+
pollId: this.__pollId,
|
|
882
|
+
question: this.__question,
|
|
883
|
+
options: this.__options,
|
|
884
|
+
mode: this.__mode,
|
|
885
|
+
closeAt: this.__closeAt,
|
|
886
|
+
showResults: this.__showResults
|
|
887
|
+
});
|
|
888
|
+
}
|
|
889
|
+
};
|
|
890
|
+
_defineProperty(PollEditNode, "commandItems", [{
|
|
891
|
+
title: "Poll",
|
|
892
|
+
icon: createElement(Vote, { size: 20 }),
|
|
893
|
+
description: "Reader-facing vote widget",
|
|
894
|
+
keywords: [
|
|
895
|
+
"poll",
|
|
896
|
+
"vote",
|
|
897
|
+
"survey",
|
|
898
|
+
"choice"
|
|
899
|
+
],
|
|
900
|
+
section: "ADVANCED",
|
|
901
|
+
placement: ["slash", "toolbar"],
|
|
902
|
+
group: "insert",
|
|
903
|
+
onSelect: (editor) => {
|
|
904
|
+
editor.update(() => {
|
|
905
|
+
$insertNodes([$createPollEditNode()]);
|
|
906
|
+
});
|
|
907
|
+
}
|
|
908
|
+
}]);
|
|
909
|
+
function $createPollEditNode(payload) {
|
|
910
|
+
return new PollEditNode(payload);
|
|
911
|
+
}
|
|
912
|
+
//#endregion
|
|
637
913
|
//#region src/config-edit.ts
|
|
638
914
|
var customEditNodes = [
|
|
639
915
|
SpoilerNode,
|
|
@@ -653,7 +929,8 @@ var customEditNodes = [
|
|
|
653
929
|
BannerEditNode,
|
|
654
930
|
MermaidNode,
|
|
655
931
|
RubyNode,
|
|
656
|
-
TagNode
|
|
932
|
+
TagNode,
|
|
933
|
+
PollEditNode
|
|
657
934
|
];
|
|
658
935
|
var allEditNodes = [...builtinNodes, ...customEditNodes];
|
|
659
936
|
//#endregion
|
|
@@ -666,4 +943,4 @@ function getResolvedEditNodes() {
|
|
|
666
943
|
return _resolvedEditNodes ?? allEditNodes;
|
|
667
944
|
}
|
|
668
945
|
//#endregion
|
|
669
|
-
export {
|
|
946
|
+
export { $createPollEditNode as a, FootnoteSectionEditNode as c, setCodeBlockCursorIntent as d, customEditNodes as i, $createCodeBlockEditNode as l, setResolvedEditNodes as n, PollEditNode as o, allEditNodes as r, pollEditClasses as s, getResolvedEditNodes as t, $createBannerEditNode as u };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EditorConfig, LexicalEditor, NodeKey } from 'lexical';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
import { CommandItemConfig } from '../types/slash-menu';
|
|
4
|
+
import { PollNode, PollNodePayload, SerializedPollNode } from './PollNode';
|
|
5
|
+
export declare class PollEditNode extends PollNode {
|
|
6
|
+
static commandItems: CommandItemConfig[];
|
|
7
|
+
static getType(): string;
|
|
8
|
+
static clone(node: PollEditNode): PollEditNode;
|
|
9
|
+
constructor(payload?: PollNodePayload, key?: NodeKey);
|
|
10
|
+
static importJSON(serializedNode: SerializedPollNode): PollEditNode;
|
|
11
|
+
decorate(_editor: LexicalEditor, _config: EditorConfig): ReactElement;
|
|
12
|
+
}
|
|
13
|
+
export declare function $createPollEditNode(payload?: PollNodePayload): PollEditNode;
|
|
14
|
+
//# sourceMappingURL=PollEditNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PollEditNode.d.ts","sourceRoot":"","sources":["../../src/nodes/PollEditNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErF,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAetC;IAEF,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;gBAclC,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,OAAO;IAIpD,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,kBAAkB,GAAG,YAAY;IAWnE,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAWtE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,YAAY,CAE3E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { EditorConfig, LexicalEditor, LexicalNode, NodeKey, SerializedLexicalNode, Spread, DecoratorNode } from 'lexical';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
import { PollMode, PollOption, PollShowResults } from '../types/poll';
|
|
4
|
+
export declare function createPollId(): string;
|
|
5
|
+
export declare function createOptionId(): string;
|
|
6
|
+
export interface PollNodePayload {
|
|
7
|
+
closeAt?: string;
|
|
8
|
+
mode?: PollMode;
|
|
9
|
+
options?: PollOption[];
|
|
10
|
+
pollId?: string;
|
|
11
|
+
question?: string;
|
|
12
|
+
showResults?: PollShowResults;
|
|
13
|
+
}
|
|
14
|
+
export type SerializedPollNode = Spread<{
|
|
15
|
+
pollId: string;
|
|
16
|
+
question: string;
|
|
17
|
+
options: PollOption[];
|
|
18
|
+
mode: PollMode;
|
|
19
|
+
closeAt?: string;
|
|
20
|
+
showResults?: PollShowResults;
|
|
21
|
+
}, SerializedLexicalNode>;
|
|
22
|
+
export declare class PollNode extends DecoratorNode<ReactElement> {
|
|
23
|
+
__pollId: string;
|
|
24
|
+
__question: string;
|
|
25
|
+
__options: PollOption[];
|
|
26
|
+
__mode: PollMode;
|
|
27
|
+
__closeAt?: string;
|
|
28
|
+
__showResults?: PollShowResults;
|
|
29
|
+
static getType(): string;
|
|
30
|
+
static clone(node: PollNode): PollNode;
|
|
31
|
+
constructor(payload?: PollNodePayload, key?: NodeKey);
|
|
32
|
+
createDOM(_config: EditorConfig): HTMLElement;
|
|
33
|
+
updateDOM(): boolean;
|
|
34
|
+
isInline(): boolean;
|
|
35
|
+
getPollId(): string;
|
|
36
|
+
getQuestion(): string;
|
|
37
|
+
setQuestion(question: string): void;
|
|
38
|
+
getOptions(): PollOption[];
|
|
39
|
+
setOptions(options: PollOption[]): void;
|
|
40
|
+
getMode(): PollMode;
|
|
41
|
+
setMode(mode: PollMode): void;
|
|
42
|
+
getCloseAt(): string | undefined;
|
|
43
|
+
setCloseAt(closeAt: string | undefined): void;
|
|
44
|
+
getShowResults(): PollShowResults | undefined;
|
|
45
|
+
setShowResults(showResults: PollShowResults | undefined): void;
|
|
46
|
+
static importJSON(serializedNode: SerializedPollNode): PollNode;
|
|
47
|
+
exportJSON(): SerializedPollNode;
|
|
48
|
+
decorate(_editor: LexicalEditor, _config: EditorConfig): ReactElement;
|
|
49
|
+
}
|
|
50
|
+
export declare function $createPollNode(payload?: PollNodePayload): PollNode;
|
|
51
|
+
export declare function $isPollNode(node: LexicalNode | null | undefined): node is PollNode;
|
|
52
|
+
//# sourceMappingURL=PollNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PollNode.d.ts","sourceRoot":"","sources":["../../src/nodes/PollNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAM3E,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACrC;IACE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,EACD,qBAAqB,CACtB,CAAC;AAEF,qBAAa,QAAS,SAAQ,aAAa,CAAC,YAAY,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,eAAe,CAAC;IAEhC,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;gBAc1B,OAAO,GAAE,eAAoB,EAAE,GAAG,CAAC,EAAE,OAAO;IAgBxD,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAM7C,SAAS,IAAI,OAAO;IAIpB,QAAQ,IAAI,OAAO;IAInB,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,MAAM;IAIrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,UAAU,IAAI,UAAU,EAAE;IAI1B,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAKvC,OAAO,IAAI,QAAQ;IAInB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAK7B,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAK7C,cAAc,IAAI,eAAe,GAAG,SAAS;IAI7C,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI;IAK9D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,kBAAkB,GAAG,QAAQ;IAW/D,UAAU,IAAI,kBAAkB;IAchC,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAUtE;AAED,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,CAEnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAElF"}
|
package/dist/nodes-entry.d.ts
CHANGED
|
@@ -14,6 +14,9 @@ export type { SerializedMentionNode } from './nodes/MentionNode';
|
|
|
14
14
|
export { $createMentionNode, $isMentionNode, MentionNode } from './nodes/MentionNode';
|
|
15
15
|
export type { SerializedMermaidNode } from './nodes/MermaidNode';
|
|
16
16
|
export { $createMermaidNode, $isMermaidNode, MermaidNode } from './nodes/MermaidNode';
|
|
17
|
+
export { $createPollEditNode, PollEditNode } from './nodes/PollEditNode';
|
|
18
|
+
export type { PollNodePayload, SerializedPollNode } from './nodes/PollNode';
|
|
19
|
+
export { $createPollNode, $isPollNode, createOptionId, createPollId, PollNode, } from './nodes/PollNode';
|
|
17
20
|
export type { SerializedRubyNode } from './nodes/RubyNode';
|
|
18
21
|
export { $createRubyNode, $isRubyNode, RubyNode } from './nodes/RubyNode';
|
|
19
22
|
export type { SerializedGridContainerNode } from './nodes/GridContainerNode';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes-entry.d.ts","sourceRoot":"","sources":["../src/nodes-entry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrD,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9E,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC3E,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG9E,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG1F,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGtF,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,YAAY,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGtE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"nodes-entry.d.ts","sourceRoot":"","sources":["../src/nodes-entry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrD,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9E,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC3E,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG9E,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG1F,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGtF,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGtF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,WAAW,EACX,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,YAAY,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGtE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/nodes-entry.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as FootnoteSectionEditNode, i as customEditNodes, n as setResolvedEditNodes, r as allEditNodes, t as getResolvedEditNodes } from "./node-registry-
|
|
1
|
+
import { a as $createPollEditNode, c as FootnoteSectionEditNode, i as customEditNodes, n as setResolvedEditNodes, o as PollEditNode, r as allEditNodes, t as getResolvedEditNodes } from "./node-registry-Dz5OTkh4.js";
|
|
2
2
|
import { C as ImageNode, O as ALERT_LABELS, S as $isImageNode, _ as KaTeXInlineNode, b as KaTeXBlockNode, d as MermaidNode, f as $createMentionNode, g as $isKaTeXInlineNode, i as TagNode, k as ALERT_TYPES, l as $createMermaidNode, m as MentionNode, n as $createTagNode, p as $isMentionNode, r as $isTagNode, u as $isMermaidNode, x as $createImageNode, y as $isKaTeXBlockNode } from "./theme-B5B2EOWM.js";
|
|
3
|
-
import {
|
|
3
|
+
import { B as BANNER_TYPES, C as GridContainerNode, E as FootnoteSectionNode, M as CommentNode, S as $isGridContainerNode, T as $isFootnoteSectionNode, a as $createRubyNode, b as LinkCardNode, c as $createPollNode, d as createOptionId, f as createPollId, j as $isCommentNode, k as $createCommentNode, l as $isPollNode, n as builtinNodes, o as $isRubyNode, r as customNodes, s as RubyNode, t as allNodes, u as PollNode, v as $createLinkCardNode, w as $createFootnoteSectionNode, x as $createGridContainerNode, y as $isLinkCardNode, z as BANNER_LABELS } from "./config-B5BuLljq.js";
|
|
4
4
|
import { r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-C55sxsR3.js";
|
|
5
|
-
export { $createCommentNode, $createFootnoteSectionNode, $createGridContainerNode, $createImageNode, $createLinkCardNode, $createMentionNode, $createMermaidNode, $createRubyNode, $createTagNode, $isCommentNode, $isFootnoteSectionNode, $isGridContainerNode, $isImageNode, $isKaTeXBlockNode, $isKaTeXInlineNode, $isLinkCardNode, $isMentionNode, $isMermaidNode, $isRubyNode, $isTagNode, ALERT_LABELS, ALERT_TYPES, BANNER_LABELS, BANNER_TYPES, CommentNode, FootnoteSectionEditNode, FootnoteSectionNode, GridContainerNode, ImageNode, KaTeXBlockNode, KaTeXInlineNode, LinkCardNode, MentionNode, MermaidNode, NESTED_EDITOR_NODES, RubyNode, TagNode, allEditNodes, allNodes, builtinNodes, customEditNodes, customNodes, getResolvedEditNodes, setResolvedEditNodes };
|
|
5
|
+
export { $createCommentNode, $createFootnoteSectionNode, $createGridContainerNode, $createImageNode, $createLinkCardNode, $createMentionNode, $createMermaidNode, $createPollEditNode, $createPollNode, $createRubyNode, $createTagNode, $isCommentNode, $isFootnoteSectionNode, $isGridContainerNode, $isImageNode, $isKaTeXBlockNode, $isKaTeXInlineNode, $isLinkCardNode, $isMentionNode, $isMermaidNode, $isPollNode, $isRubyNode, $isTagNode, ALERT_LABELS, ALERT_TYPES, BANNER_LABELS, BANNER_TYPES, CommentNode, FootnoteSectionEditNode, FootnoteSectionNode, GridContainerNode, ImageNode, KaTeXBlockNode, KaTeXInlineNode, LinkCardNode, MentionNode, MermaidNode, NESTED_EDITOR_NODES, PollEditNode, PollNode, RubyNode, TagNode, allEditNodes, allNodes, builtinNodes, createOptionId, createPollId, customEditNodes, customNodes, getResolvedEditNodes, setResolvedEditNodes };
|
package/dist/plugins-entry.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as ImageUploadProvider, D as defaultImageUpload, E as ImageUploadPlugin, F as ALL_TRANSFORMERS, I as HorizontalRulePlugin, L as BlockExitPlugin, M as CorePlugins, N as MarkdownShortcutsPlugin, O as BlockIdPlugin, P as MarkdownPastePlugin, R as AutoLinkPlugin, T as LinkFaviconPlugin, a as AutoFocusPlugin, i as EditorRefPlugin, j as useImageUpload, k as blockIdState, n as OnChangePlugin, o as TextSelectionPlugin, r as FootnotePlugin, t as SubmitShortcutPlugin } from "./SubmitShortcutPlugin-
|
|
1
|
+
import { A as ImageUploadProvider, D as defaultImageUpload, E as ImageUploadPlugin, F as ALL_TRANSFORMERS, I as HorizontalRulePlugin, L as BlockExitPlugin, M as CorePlugins, N as MarkdownShortcutsPlugin, O as BlockIdPlugin, P as MarkdownPastePlugin, R as AutoLinkPlugin, T as LinkFaviconPlugin, a as AutoFocusPlugin, i as EditorRefPlugin, j as useImageUpload, k as blockIdState, n as OnChangePlugin, o as TextSelectionPlugin, r as FootnotePlugin, t as SubmitShortcutPlugin } from "./SubmitShortcutPlugin-DhyVFzoj.js";
|
|
2
2
|
import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin-BrOr-wQi.js";
|
|
3
3
|
export { ALL_TRANSFORMERS, AlertPlugin, AutoFocusPlugin, AutoLinkPlugin, BlockExitPlugin, BlockIdPlugin, CorePlugins, EditorRefPlugin, FootnotePlugin, HorizontalRulePlugin, ImagePlugin, ImageUploadPlugin, ImageUploadProvider, KaTeXPlugin, LinkFaviconPlugin, MarkdownPastePlugin, MarkdownShortcutsPlugin, MermaidPlugin, OnChangePlugin, SubmitShortcutPlugin, TextSelectionPlugin, blockIdState, defaultImageUpload, useImageUpload };
|