@payloadcms/richtext-lexical 3.0.0-alpha.18 → 3.0.0-alpha.19
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/components.js +6 -33
- package/dist/cell/index.js +29 -80
- package/dist/exports/components.js +6 -33
- package/dist/field/Field.js +15 -66
- package/dist/field/features/align/feature.client.js +21 -31
- package/dist/field/features/align/feature.server.js +4 -14
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +4 -14
- package/dist/field/features/blockquote/feature.client.js +20 -30
- package/dist/field/features/blockquote/feature.server.js +11 -21
- package/dist/field/features/blockquote/markdownTransformer.js +9 -19
- package/dist/field/features/blocks/component/BlockContent.js +34 -85
- package/dist/field/features/blocks/component/FormSavePlugin.js +7 -17
- package/dist/field/features/blocks/component/index.js +25 -76
- package/dist/field/features/blocks/drawer/index.js +25 -84
- package/dist/field/features/blocks/feature.client.js +15 -25
- package/dist/field/features/blocks/feature.server.js +16 -26
- package/dist/field/features/blocks/nodes/BlocksNode.js +11 -78
- package/dist/field/features/blocks/plugin/commands.js +3 -13
- package/dist/field/features/blocks/plugin/index.js +20 -71
- package/dist/field/features/blocks/populationPromise.js +6 -16
- package/dist/field/features/blocks/validate.js +4 -14
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +2 -12
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +4 -14
- package/dist/field/features/converters/html/converter/converters/linebreak.js +2 -12
- package/dist/field/features/converters/html/converter/converters/paragraph.js +4 -14
- package/dist/field/features/converters/html/converter/converters/text.js +10 -20
- package/dist/field/features/converters/html/converter/defaultConverters.js +8 -18
- package/dist/field/features/converters/html/converter/index.js +3 -21
- package/dist/field/features/converters/html/converter/types.js +2 -5
- package/dist/field/features/converters/html/feature.server.js +2 -12
- package/dist/field/features/converters/html/field/index.js +11 -25
- package/dist/field/features/createClientComponent.js +6 -14
- package/dist/field/features/createFeaturePropComponent.js +5 -15
- package/dist/field/features/debug/testrecorder/feature.client.js +5 -15
- package/dist/field/features/debug/testrecorder/feature.server.js +4 -14
- package/dist/field/features/debug/testrecorder/plugin/index.js +41 -99
- package/dist/field/features/debug/treeview/feature.client.js +5 -15
- package/dist/field/features/debug/treeview/feature.server.js +4 -14
- package/dist/field/features/debug/treeview/plugin/index.js +8 -59
- package/dist/field/features/format/bold/feature.client.js +14 -24
- package/dist/field/features/format/bold/feature.server.js +8 -18
- package/dist/field/features/format/bold/markdownTransformers.js +5 -29
- package/dist/field/features/format/common/floatingSelectToolbarSection.js +2 -12
- package/dist/field/features/format/inlinecode/feature.client.js +12 -22
- package/dist/field/features/format/inlinecode/feature.server.js +6 -16
- package/dist/field/features/format/inlinecode/markdownTransformers.js +2 -12
- package/dist/field/features/format/italic/feature.client.js +13 -23
- package/dist/field/features/format/italic/feature.server.js +7 -17
- package/dist/field/features/format/italic/markdownTransformers.js +3 -21
- package/dist/field/features/format/strikethrough/feature.client.js +12 -22
- package/dist/field/features/format/strikethrough/feature.server.js +6 -16
- package/dist/field/features/format/strikethrough/markdownTransformers.js +2 -12
- package/dist/field/features/format/subscript/feature.client.js +10 -20
- package/dist/field/features/format/subscript/feature.server.js +4 -14
- package/dist/field/features/format/superscript/feature.client.js +10 -20
- package/dist/field/features/format/superscript/feature.server.js +4 -14
- package/dist/field/features/format/underline/feature.client.js +10 -20
- package/dist/field/features/format/underline/feature.server.js +4 -14
- package/dist/field/features/heading/feature.client.js +28 -37
- package/dist/field/features/heading/feature.server.js +12 -22
- package/dist/field/features/heading/markdownTransformer.js +8 -18
- package/dist/field/features/indent/feature.client.js +13 -23
- package/dist/field/features/indent/feature.server.js +4 -14
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +2 -12
- package/dist/field/features/link/drawer/baseFields.js +6 -16
- package/dist/field/features/link/drawer/index.js +24 -74
- package/dist/field/features/link/drawer/types.js +2 -5
- package/dist/field/features/link/feature.client.js +29 -39
- package/dist/field/features/link/feature.server.js +22 -32
- package/dist/field/features/link/nodes/AutoLinkNode.js +10 -29
- package/dist/field/features/link/nodes/LinkNode.js +18 -45
- package/dist/field/features/link/nodes/types.js +2 -5
- package/dist/field/features/link/plugins/autoLink/index.js +33 -51
- package/dist/field/features/link/plugins/clickableLink/index.js +5 -20
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +3 -13
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +64 -114
- package/dist/field/features/link/plugins/floatingLinkEditor/index.js +7 -58
- package/dist/field/features/link/plugins/floatingLinkEditor/types.js +5 -5
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +6 -14
- package/dist/field/features/link/plugins/link/index.js +21 -31
- package/dist/field/features/link/populationPromise.js +6 -16
- package/dist/field/features/lists/checklist/feature.client.js +21 -31
- package/dist/field/features/lists/checklist/feature.server.js +12 -22
- package/dist/field/features/lists/checklist/markdownTransformers.js +8 -18
- package/dist/field/features/lists/checklist/plugin/index.js +5 -20
- package/dist/field/features/lists/common/markdown.js +10 -28
- package/dist/field/features/lists/htmlConverter.js +9 -27
- package/dist/field/features/lists/orderedlist/feature.client.js +19 -29
- package/dist/field/features/lists/orderedlist/feature.server.js +12 -22
- package/dist/field/features/lists/orderedlist/markdownTransformer.js +8 -18
- package/dist/field/features/lists/plugin/index.js +5 -20
- package/dist/field/features/lists/unorderedlist/feature.client.js +19 -29
- package/dist/field/features/lists/unorderedlist/feature.server.js +12 -22
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js +8 -18
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +2 -12
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +16 -26
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +5 -29
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +2 -5
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +7 -17
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +9 -19
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +5 -20
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +11 -73
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +2 -12
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +2 -12
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +22 -32
- package/dist/field/features/migrations/slateToLexical/converter/index.js +14 -41
- package/dist/field/features/migrations/slateToLexical/converter/types.js +2 -5
- package/dist/field/features/migrations/slateToLexical/feature.client.js +7 -17
- package/dist/field/features/migrations/slateToLexical/feature.server.js +9 -19
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +5 -20
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +11 -73
- package/dist/field/features/paragraph/feature.client.js +16 -26
- package/dist/field/features/paragraph/feature.server.js +4 -14
- package/dist/field/features/relationship/drawer/commands.js +3 -13
- package/dist/field/features/relationship/drawer/index.js +24 -75
- package/dist/field/features/relationship/feature.client.js +15 -25
- package/dist/field/features/relationship/feature.server.js +8 -18
- package/dist/field/features/relationship/nodes/RelationshipNode.js +9 -71
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +35 -86
- package/dist/field/features/relationship/plugins/index.js +22 -80
- package/dist/field/features/relationship/populationPromise.js +4 -14
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +8 -59
- package/dist/field/features/types.js +2 -5
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +36 -84
- package/dist/field/features/upload/component/index.js +47 -98
- package/dist/field/features/upload/drawer/commands.js +3 -13
- package/dist/field/features/upload/drawer/index.js +23 -74
- package/dist/field/features/upload/feature.client.js +13 -23
- package/dist/field/features/upload/feature.server.js +11 -21
- package/dist/field/features/upload/nodes/UploadNode.js +10 -72
- package/dist/field/features/upload/plugin/index.js +22 -81
- package/dist/field/features/upload/populationPromise.js +6 -16
- package/dist/field/features/upload/validate.js +9 -19
- package/dist/field/index.js +23 -74
- package/dist/field/lexical/EditorPlugin.js +5 -56
- package/dist/field/lexical/LexicalEditor.js +39 -94
- package/dist/field/lexical/LexicalProvider.js +15 -66
- package/dist/field/lexical/config/client/EditorConfigProvider.js +11 -69
- package/dist/field/lexical/config/client/default.js +4 -14
- package/dist/field/lexical/config/client/loader.js +5 -12
- package/dist/field/lexical/config/client/sanitize.js +3 -21
- package/dist/field/lexical/config/server/default.js +44 -68
- package/dist/field/lexical/config/server/loader.js +3 -21
- package/dist/field/lexical/config/server/sanitize.js +5 -23
- package/dist/field/lexical/config/types.js +2 -5
- package/dist/field/lexical/nodes/index.js +2 -12
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +19 -70
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +40 -98
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +11 -34
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +55 -105
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +2 -5
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js +7 -58
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +39 -64
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +32 -97
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +3 -21
- package/dist/field/lexical/plugins/SlashMenu/index.js +27 -77
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +8 -16
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +35 -84
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +2 -12
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +2 -12
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +18 -28
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +4 -14
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +52 -102
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +8 -18
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +2 -12
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +4 -14
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +2 -12
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +2 -12
- package/dist/field/lexical/theme/EditorTheme.js +3 -13
- package/dist/field/lexical/ui/ContentEditable.js +6 -57
- package/dist/field/lexical/ui/icons/AI/index.js +7 -22
- package/dist/field/lexical/ui/icons/AlignCenter/index.js +6 -21
- package/dist/field/lexical/ui/icons/AlignJustify/index.js +6 -21
- package/dist/field/lexical/ui/icons/AlignLeft/index.js +6 -21
- package/dist/field/lexical/ui/icons/AlignRight/index.js +6 -21
- package/dist/field/lexical/ui/icons/Block/index.js +6 -21
- package/dist/field/lexical/ui/icons/Blockquote/index.js +4 -19
- package/dist/field/lexical/ui/icons/Bold/index.js +4 -19
- package/dist/field/lexical/ui/icons/Checklist/index.js +5 -20
- package/dist/field/lexical/ui/icons/Code/index.js +5 -20
- package/dist/field/lexical/ui/icons/CodeBlock/index.js +5 -20
- package/dist/field/lexical/ui/icons/H1/index.js +4 -19
- package/dist/field/lexical/ui/icons/H2/index.js +4 -19
- package/dist/field/lexical/ui/icons/H3/index.js +4 -19
- package/dist/field/lexical/ui/icons/H4/index.js +4 -19
- package/dist/field/lexical/ui/icons/H5/index.js +4 -19
- package/dist/field/lexical/ui/icons/H6/index.js +4 -19
- package/dist/field/lexical/ui/icons/IndentDecrease/index.js +7 -22
- package/dist/field/lexical/ui/icons/IndentIncrease/index.js +7 -22
- package/dist/field/lexical/ui/icons/Italic/index.js +4 -19
- package/dist/field/lexical/ui/icons/Link/index.js +7 -22
- package/dist/field/lexical/ui/icons/OrderedList/index.js +8 -23
- package/dist/field/lexical/ui/icons/Relationship/index.js +7 -22
- package/dist/field/lexical/ui/icons/Strikethrough/index.js +5 -20
- package/dist/field/lexical/ui/icons/Subscript/index.js +4 -19
- package/dist/field/lexical/ui/icons/Superscript/index.js +4 -19
- package/dist/field/lexical/ui/icons/Text/index.js +4 -19
- package/dist/field/lexical/ui/icons/Underline/index.js +5 -20
- package/dist/field/lexical/ui/icons/UnorderedList/index.js +9 -24
- package/dist/field/lexical/ui/icons/Upload/index.js +6 -21
- package/dist/field/lexical/utils/canUseDOM.js +2 -12
- package/dist/field/lexical/utils/cloneDeep.js +2 -12
- package/dist/field/lexical/utils/environment.js +13 -51
- package/dist/field/lexical/utils/getDOMRangeRect.js +2 -12
- package/dist/field/lexical/utils/getSelectedNode.js +5 -15
- package/dist/field/lexical/utils/guard.js +2 -12
- package/dist/field/lexical/utils/invariant.js +2 -12
- package/dist/field/lexical/utils/joinClasses.js +2 -12
- package/dist/field/lexical/utils/markdown/createBlockNode.js +2 -12
- package/dist/field/lexical/utils/nodeFormat.js +17 -61
- package/dist/field/lexical/utils/point.js +3 -21
- package/dist/field/lexical/utils/rect.js +4 -14
- package/dist/field/lexical/utils/setFloatingElemPosition.js +5 -12
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +2 -12
- package/dist/field/lexical/utils/swipe.js +5 -29
- package/dist/field/lexical/utils/url.js +3 -21
- package/dist/generateComponentMap.js +10 -25
- package/dist/generateSchemaMap.js +4 -14
- package/dist/index.js +102 -489
- package/dist/populate/defaultValue.js +3 -21
- package/dist/populate/populate.js +2 -12
- package/dist/populate/recurseNestedFields.js +4 -14
- package/dist/populate/richTextRelationshipPromise.js +3 -21
- package/dist/types.js +2 -5
- package/dist/useLexicalFeature.js +6 -16
- package/dist/validate/index.js +6 -16
- package/dist/validate/validateNodes.js +2 -12
- package/package.json +7 -7
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "AlignFeature", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return AlignFeature;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _featureclient = require("./feature.client");
|
|
12
|
-
const AlignFeature = (props)=>{
|
|
1
|
+
import { AlignFeatureClientComponent } from './feature.client';
|
|
2
|
+
export const AlignFeature = (props)=>{
|
|
13
3
|
return {
|
|
14
4
|
feature: ()=>{
|
|
15
5
|
return {
|
|
16
|
-
ClientComponent:
|
|
6
|
+
ClientComponent: AlignFeatureClientComponent,
|
|
17
7
|
clientFeatureProps: null,
|
|
18
8
|
serverFeatureProps: props
|
|
19
9
|
};
|
|
@@ -23,4 +13,4 @@ const AlignFeature = (props)=>{
|
|
|
23
13
|
};
|
|
24
14
|
};
|
|
25
15
|
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9hbGlnbi9mZWF0dXJlLnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlclByb3ZpZGVyU2VydmVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IEFsaWduRmVhdHVyZUNsaWVudENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZS5jbGllbnQnXG5cbmV4cG9ydCBjb25zdCBBbGlnbkZlYXR1cmU6IEZlYXR1cmVQcm92aWRlclByb3ZpZGVyU2VydmVyPHVuZGVmaW5lZCwgdW5kZWZpbmVkPiA9IChwcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgIGZlYXR1cmU6ICgpID0+
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9hbGlnbi9mZWF0dXJlLnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlclByb3ZpZGVyU2VydmVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IEFsaWduRmVhdHVyZUNsaWVudENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZS5jbGllbnQnXG5cbmV4cG9ydCBjb25zdCBBbGlnbkZlYXR1cmU6IEZlYXR1cmVQcm92aWRlclByb3ZpZGVyU2VydmVyPHVuZGVmaW5lZCwgdW5kZWZpbmVkPiA9IChwcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgIGZlYXR1cmU6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIENsaWVudENvbXBvbmVudDogQWxpZ25GZWF0dXJlQ2xpZW50Q29tcG9uZW50LFxuICAgICAgICBjbGllbnRGZWF0dXJlUHJvcHM6IG51bGwsXG4gICAgICAgIHNlcnZlckZlYXR1cmVQcm9wczogcHJvcHMsXG4gICAgICB9XG4gICAgfSxcbiAgICBrZXk6ICdhbGlnbicsXG4gICAgc2VydmVyRmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkFsaWduRmVhdHVyZUNsaWVudENvbXBvbmVudCIsIkFsaWduRmVhdHVyZSIsInByb3BzIiwiZmVhdHVyZSIsIkNsaWVudENvbXBvbmVudCIsImNsaWVudEZlYXR1cmVQcm9wcyIsInNlcnZlckZlYXR1cmVQcm9wcyIsImtleSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsMkJBQTJCLFFBQVEsbUJBQWtCO0FBRTlELE9BQU8sTUFBTUMsZUFBb0UsQ0FBQ0M7SUFDaEYsT0FBTztRQUNMQyxTQUFTO1lBQ1AsT0FBTztnQkFDTEMsaUJBQWlCSjtnQkFDakJLLG9CQUFvQjtnQkFDcEJDLG9CQUFvQko7WUFDdEI7UUFDRjtRQUNBSyxLQUFLO1FBQ0xELG9CQUFvQko7SUFDdEI7QUFDRixFQUFDIn0=
|
|
@@ -1,22 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "AlignDropdownSectionWithEntries", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return AlignDropdownSectionWithEntries;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _AlignLeft = require("../../lexical/ui/icons/AlignLeft");
|
|
12
|
-
const AlignDropdownSectionWithEntries = (entries)=>{
|
|
1
|
+
import { AlignLeftIcon } from '../../lexical/ui/icons/AlignLeft';
|
|
2
|
+
export const AlignDropdownSectionWithEntries = (entries)=>{
|
|
13
3
|
return {
|
|
14
4
|
type: 'dropdown',
|
|
15
|
-
ChildComponent:
|
|
5
|
+
ChildComponent: AlignLeftIcon,
|
|
16
6
|
entries,
|
|
17
7
|
key: 'dropdown-align',
|
|
18
8
|
order: 2
|
|
19
9
|
};
|
|
20
10
|
};
|
|
21
11
|
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9hbGlnbi9mbG9hdGluZ1NlbGVjdFRvb2xiYXJBbGlnbkRyb3Bkb3duU2VjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nVG9vbGJhclNlY3Rpb24sXG4gIEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSxcbn0gZnJvbSAnLi4vLi4vbGV4aWNhbC9wbHVnaW5zL0Zsb2F0aW5nU2VsZWN0VG9vbGJhci90eXBlcydcblxuaW1wb3J0IHsgQWxpZ25MZWZ0SWNvbiB9IGZyb20gJy4uLy4uL2xleGljYWwvdWkvaWNvbnMvQWxpZ25MZWZ0J1xuXG5leHBvcnQgY29uc3QgQWxpZ25Ecm9wZG93blNlY3Rpb25XaXRoRW50cmllcyA9IChcbiAgZW50cmllczogRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5W10sXG4pOiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uID0+
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9hbGlnbi9mbG9hdGluZ1NlbGVjdFRvb2xiYXJBbGlnbkRyb3Bkb3duU2VjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nVG9vbGJhclNlY3Rpb24sXG4gIEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSxcbn0gZnJvbSAnLi4vLi4vbGV4aWNhbC9wbHVnaW5zL0Zsb2F0aW5nU2VsZWN0VG9vbGJhci90eXBlcydcblxuaW1wb3J0IHsgQWxpZ25MZWZ0SWNvbiB9IGZyb20gJy4uLy4uL2xleGljYWwvdWkvaWNvbnMvQWxpZ25MZWZ0J1xuXG5leHBvcnQgY29uc3QgQWxpZ25Ecm9wZG93blNlY3Rpb25XaXRoRW50cmllcyA9IChcbiAgZW50cmllczogRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5W10sXG4pOiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZHJvcGRvd24nLFxuICAgIENoaWxkQ29tcG9uZW50OiBBbGlnbkxlZnRJY29uLFxuICAgIGVudHJpZXMsXG4gICAga2V5OiAnZHJvcGRvd24tYWxpZ24nLFxuICAgIG9yZGVyOiAyLFxuICB9XG59XG4iXSwibmFtZXMiOlsiQWxpZ25MZWZ0SWNvbiIsIkFsaWduRHJvcGRvd25TZWN0aW9uV2l0aEVudHJpZXMiLCJlbnRyaWVzIiwidHlwZSIsIkNoaWxkQ29tcG9uZW50Iiwia2V5Iiwib3JkZXIiXSwibWFwcGluZ3MiOiJBQUtBLFNBQVNBLGFBQWEsUUFBUSxtQ0FBa0M7QUFFaEUsT0FBTyxNQUFNQyxrQ0FBa0MsQ0FDN0NDO0lBRUEsT0FBTztRQUNMQyxNQUFNO1FBQ05DLGdCQUFnQko7UUFDaEJFO1FBQ0FHLEtBQUs7UUFDTEMsT0FBTztJQUNUO0FBQ0YsRUFBQyJ9
|
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
const _richtext = require("@lexical/rich-text");
|
|
13
|
-
const _selection = require("@lexical/selection");
|
|
14
|
-
const _lexical = require("lexical");
|
|
15
|
-
const _types = require("../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types");
|
|
16
|
-
const _Blockquote = require("../../lexical/ui/icons/Blockquote");
|
|
17
|
-
const _floatingSelectToolbarTextDropdownSection = require("../common/floatingSelectToolbarTextDropdownSection");
|
|
18
|
-
const _createClientComponent = require("../createClientComponent");
|
|
19
|
-
const _markdownTransformer = require("./markdownTransformer");
|
|
2
|
+
import { $createQuoteNode, QuoteNode } from '@lexical/rich-text';
|
|
3
|
+
import { $setBlocksType } from '@lexical/selection';
|
|
4
|
+
import { $getSelection } from 'lexical';
|
|
5
|
+
import { SlashMenuOption } from '../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types';
|
|
6
|
+
import { BlockquoteIcon } from '../../lexical/ui/icons/Blockquote';
|
|
7
|
+
import { TextDropdownSectionWithEntries } from '../common/floatingSelectToolbarTextDropdownSection';
|
|
8
|
+
import { createClientComponent } from '../createClientComponent';
|
|
9
|
+
import { MarkdownTransformer } from './markdownTransformer';
|
|
20
10
|
const BlockQuoteFeatureClient = (props)=>{
|
|
21
11
|
return {
|
|
22
12
|
clientFeatureProps: props,
|
|
@@ -24,16 +14,16 @@ const BlockQuoteFeatureClient = (props)=>{
|
|
|
24
14
|
clientFeatureProps: props,
|
|
25
15
|
floatingSelectToolbar: {
|
|
26
16
|
sections: [
|
|
27
|
-
|
|
17
|
+
TextDropdownSectionWithEntries([
|
|
28
18
|
{
|
|
29
|
-
ChildComponent:
|
|
19
|
+
ChildComponent: BlockquoteIcon,
|
|
30
20
|
isActive: ()=>false,
|
|
31
21
|
key: 'blockquote',
|
|
32
22
|
label: `Blockquote`,
|
|
33
23
|
onClick: ({ editor })=>{
|
|
34
24
|
editor.update(()=>{
|
|
35
|
-
const selection =
|
|
36
|
-
|
|
25
|
+
const selection = $getSelection();
|
|
26
|
+
$setBlocksType(selection, ()=>$createQuoteNode());
|
|
37
27
|
});
|
|
38
28
|
},
|
|
39
29
|
order: 20
|
|
@@ -42,10 +32,10 @@ const BlockQuoteFeatureClient = (props)=>{
|
|
|
42
32
|
]
|
|
43
33
|
},
|
|
44
34
|
markdownTransformers: [
|
|
45
|
-
|
|
35
|
+
MarkdownTransformer
|
|
46
36
|
],
|
|
47
37
|
nodes: [
|
|
48
|
-
|
|
38
|
+
QuoteNode
|
|
49
39
|
],
|
|
50
40
|
slashMenu: {
|
|
51
41
|
options: [
|
|
@@ -53,16 +43,16 @@ const BlockQuoteFeatureClient = (props)=>{
|
|
|
53
43
|
displayName: 'Basic',
|
|
54
44
|
key: 'basic',
|
|
55
45
|
options: [
|
|
56
|
-
new
|
|
57
|
-
Icon:
|
|
46
|
+
new SlashMenuOption(`blockquote`, {
|
|
47
|
+
Icon: BlockquoteIcon,
|
|
58
48
|
displayName: `Blockquote`,
|
|
59
49
|
keywords: [
|
|
60
50
|
'quote',
|
|
61
51
|
'blockquote'
|
|
62
52
|
],
|
|
63
53
|
onSelect: ()=>{
|
|
64
|
-
const selection =
|
|
65
|
-
|
|
54
|
+
const selection = $getSelection();
|
|
55
|
+
$setBlocksType(selection, ()=>$createQuoteNode());
|
|
66
56
|
}
|
|
67
57
|
})
|
|
68
58
|
]
|
|
@@ -72,6 +62,6 @@ const BlockQuoteFeatureClient = (props)=>{
|
|
|
72
62
|
})
|
|
73
63
|
};
|
|
74
64
|
};
|
|
75
|
-
const BlockQuoteFeatureClientComponent =
|
|
65
|
+
export const BlockQuoteFeatureClientComponent = createClientComponent(BlockQuoteFeatureClient);
|
|
76
66
|
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3F1b3RlL2ZlYXR1cmUuY2xpZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgJGNyZWF0ZVF1b3RlTm9kZSwgUXVvdGVOb2RlIH0gZnJvbSAnQGxleGljYWwvcmljaC10ZXh0J1xuaW1wb3J0IHsgJHNldEJsb2Nrc1R5cGUgfSBmcm9tICdAbGV4aWNhbC9zZWxlY3Rpb24nXG5pbXBvcnQgeyAkZ2V0U2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXJQcm92aWRlckNsaWVudCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuLi8uLi9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuaW1wb3J0IHsgQmxvY2txdW90ZUljb24gfSBmcm9tICcuLi8uLi9sZXhpY2FsL3VpL2ljb25zL0Jsb2NrcXVvdGUnXG5pbXBvcnQgeyBUZXh0RHJvcGRvd25TZWN0aW9uV2l0aEVudHJpZXMgfSBmcm9tICcuLi9jb21tb24vZmxvYXRpbmdTZWxlY3RUb29sYmFyVGV4dERyb3Bkb3duU2VjdGlvbidcbmltcG9ydCB7IGNyZWF0ZUNsaWVudENvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZUNsaWVudENvbXBvbmVudCdcbmltcG9ydCB7IE1hcmtkb3duVHJhbnNmb3JtZXIgfSBmcm9tICcuL21hcmtkb3duVHJhbnNmb3JtZXInXG5cbmNvbnN0IEJsb2NrUXVvdGVGZWF0dXJlQ2xpZW50OiBGZWF0dXJlUHJvdmlkZXJQcm92aWRlckNsaWVudDx1bmRlZmluZWQ+ID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgY2xpZW50RmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgICBmZWF0dXJlOiAoKSA9PiAoe1xuICAgICAgY2xpZW50RmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgICAgIGZsb2F0aW5nU2VsZWN0VG9vbGJhcjoge1xuICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgIFRleHREcm9wZG93blNlY3Rpb25XaXRoRW50cmllcyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIENoaWxkQ29tcG9uZW50OiBCbG9ja3F1b3RlSWNvbixcbiAgICAgICAgICAgICAgaXNBY3RpdmU6ICgpID0+IGZhbHNlLFxuICAgICAgICAgICAgICBrZXk6ICdibG9ja3F1b3RlJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGBCbG9ja3F1b3RlYCxcbiAgICAgICAgICAgICAgb25DbGljazogKHsgZWRpdG9yIH0pID0+IHtcbiAgICAgICAgICAgICAgICBlZGl0b3IudXBkYXRlKCgpID0+
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3F1b3RlL2ZlYXR1cmUuY2xpZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgJGNyZWF0ZVF1b3RlTm9kZSwgUXVvdGVOb2RlIH0gZnJvbSAnQGxleGljYWwvcmljaC10ZXh0J1xuaW1wb3J0IHsgJHNldEJsb2Nrc1R5cGUgfSBmcm9tICdAbGV4aWNhbC9zZWxlY3Rpb24nXG5pbXBvcnQgeyAkZ2V0U2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXJQcm92aWRlckNsaWVudCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuLi8uLi9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuaW1wb3J0IHsgQmxvY2txdW90ZUljb24gfSBmcm9tICcuLi8uLi9sZXhpY2FsL3VpL2ljb25zL0Jsb2NrcXVvdGUnXG5pbXBvcnQgeyBUZXh0RHJvcGRvd25TZWN0aW9uV2l0aEVudHJpZXMgfSBmcm9tICcuLi9jb21tb24vZmxvYXRpbmdTZWxlY3RUb29sYmFyVGV4dERyb3Bkb3duU2VjdGlvbidcbmltcG9ydCB7IGNyZWF0ZUNsaWVudENvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZUNsaWVudENvbXBvbmVudCdcbmltcG9ydCB7IE1hcmtkb3duVHJhbnNmb3JtZXIgfSBmcm9tICcuL21hcmtkb3duVHJhbnNmb3JtZXInXG5cbmNvbnN0IEJsb2NrUXVvdGVGZWF0dXJlQ2xpZW50OiBGZWF0dXJlUHJvdmlkZXJQcm92aWRlckNsaWVudDx1bmRlZmluZWQ+ID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgY2xpZW50RmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgICBmZWF0dXJlOiAoKSA9PiAoe1xuICAgICAgY2xpZW50RmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgICAgIGZsb2F0aW5nU2VsZWN0VG9vbGJhcjoge1xuICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgIFRleHREcm9wZG93blNlY3Rpb25XaXRoRW50cmllcyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIENoaWxkQ29tcG9uZW50OiBCbG9ja3F1b3RlSWNvbixcbiAgICAgICAgICAgICAgaXNBY3RpdmU6ICgpID0+IGZhbHNlLFxuICAgICAgICAgICAgICBrZXk6ICdibG9ja3F1b3RlJyxcbiAgICAgICAgICAgICAgbGFiZWw6IGBCbG9ja3F1b3RlYCxcbiAgICAgICAgICAgICAgb25DbGljazogKHsgZWRpdG9yIH0pID0+IHtcbiAgICAgICAgICAgICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgICAgICAgICAgICAgJHNldEJsb2Nrc1R5cGUoc2VsZWN0aW9uLCAoKSA9PiAkY3JlYXRlUXVvdGVOb2RlKCkpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb3JkZXI6IDIwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBtYXJrZG93blRyYW5zZm9ybWVyczogW01hcmtkb3duVHJhbnNmb3JtZXJdLFxuXG4gICAgICBub2RlczogW1F1b3RlTm9kZV0sXG4gICAgICBzbGFzaE1lbnU6IHtcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQmFzaWMnLFxuICAgICAgICAgICAga2V5OiAnYmFzaWMnLFxuICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICBuZXcgU2xhc2hNZW51T3B0aW9uKGBibG9ja3F1b3RlYCwge1xuICAgICAgICAgICAgICAgIEljb246IEJsb2NrcXVvdGVJY29uLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBgQmxvY2txdW90ZWAsXG4gICAgICAgICAgICAgICAga2V5d29yZHM6IFsncXVvdGUnLCAnYmxvY2txdW90ZSddLFxuICAgICAgICAgICAgICAgIG9uU2VsZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgICAgICAgICRzZXRCbG9ja3NUeXBlKHNlbGVjdGlvbiwgKCkgPT4gJGNyZWF0ZVF1b3RlTm9kZSgpKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQmxvY2tRdW90ZUZlYXR1cmVDbGllbnRDb21wb25lbnQgPSBjcmVhdGVDbGllbnRDb21wb25lbnQoQmxvY2tRdW90ZUZlYXR1cmVDbGllbnQpXG4iXSwibmFtZXMiOlsiJGNyZWF0ZVF1b3RlTm9kZSIsIlF1b3RlTm9kZSIsIiRzZXRCbG9ja3NUeXBlIiwiJGdldFNlbGVjdGlvbiIsIlNsYXNoTWVudU9wdGlvbiIsIkJsb2NrcXVvdGVJY29uIiwiVGV4dERyb3Bkb3duU2VjdGlvbldpdGhFbnRyaWVzIiwiY3JlYXRlQ2xpZW50Q29tcG9uZW50IiwiTWFya2Rvd25UcmFuc2Zvcm1lciIsIkJsb2NrUXVvdGVGZWF0dXJlQ2xpZW50IiwicHJvcHMiLCJjbGllbnRGZWF0dXJlUHJvcHMiLCJmZWF0dXJlIiwiZmxvYXRpbmdTZWxlY3RUb29sYmFyIiwic2VjdGlvbnMiLCJDaGlsZENvbXBvbmVudCIsImlzQWN0aXZlIiwia2V5IiwibGFiZWwiLCJvbkNsaWNrIiwiZWRpdG9yIiwidXBkYXRlIiwic2VsZWN0aW9uIiwib3JkZXIiLCJtYXJrZG93blRyYW5zZm9ybWVycyIsIm5vZGVzIiwic2xhc2hNZW51Iiwib3B0aW9ucyIsImRpc3BsYXlOYW1lIiwiSWNvbiIsImtleXdvcmRzIiwib25TZWxlY3QiLCJCbG9ja1F1b3RlRmVhdHVyZUNsaWVudENvbXBvbmVudCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxTQUFTQSxnQkFBZ0IsRUFBRUMsU0FBUyxRQUFRLHFCQUFvQjtBQUNoRSxTQUFTQyxjQUFjLFFBQVEscUJBQW9CO0FBQ25ELFNBQVNDLGFBQWEsUUFBUSxVQUFTO0FBSXZDLFNBQVNDLGVBQWUsUUFBUSxtRUFBa0U7QUFDbEcsU0FBU0MsY0FBYyxRQUFRLG9DQUFtQztBQUNsRSxTQUFTQyw4QkFBOEIsUUFBUSxxREFBb0Q7QUFDbkcsU0FBU0MscUJBQXFCLFFBQVEsMkJBQTBCO0FBQ2hFLFNBQVNDLG1CQUFtQixRQUFRLHdCQUF1QjtBQUUzRCxNQUFNQywwQkFBb0UsQ0FBQ0M7SUFDekUsT0FBTztRQUNMQyxvQkFBb0JEO1FBQ3BCRSxTQUFTLElBQU8sQ0FBQTtnQkFDZEQsb0JBQW9CRDtnQkFDcEJHLHVCQUF1QjtvQkFDckJDLFVBQVU7d0JBQ1JSLCtCQUErQjs0QkFDN0I7Z0NBQ0VTLGdCQUFnQlY7Z0NBQ2hCVyxVQUFVLElBQU07Z0NBQ2hCQyxLQUFLO2dDQUNMQyxPQUFPLENBQUMsVUFBVSxDQUFDO2dDQUNuQkMsU0FBUyxDQUFDLEVBQUVDLE1BQU0sRUFBRTtvQ0FDbEJBLE9BQU9DLE1BQU0sQ0FBQzt3Q0FDWixNQUFNQyxZQUFZbkI7d0NBQ2xCRCxlQUFlb0IsV0FBVyxJQUFNdEI7b0NBQ2xDO2dDQUNGO2dDQUNBdUIsT0FBTzs0QkFDVDt5QkFDRDtxQkFDRjtnQkFDSDtnQkFDQUMsc0JBQXNCO29CQUFDaEI7aUJBQW9CO2dCQUUzQ2lCLE9BQU87b0JBQUN4QjtpQkFBVTtnQkFDbEJ5QixXQUFXO29CQUNUQyxTQUFTO3dCQUNQOzRCQUNFQyxhQUFhOzRCQUNiWCxLQUFLOzRCQUNMVSxTQUFTO2dDQUNQLElBQUl2QixnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtvQ0FDaEN5QixNQUFNeEI7b0NBQ051QixhQUFhLENBQUMsVUFBVSxDQUFDO29DQUN6QkUsVUFBVTt3Q0FBQzt3Q0FBUztxQ0FBYTtvQ0FDakNDLFVBQVU7d0NBQ1IsTUFBTVQsWUFBWW5CO3dDQUNsQkQsZUFBZW9CLFdBQVcsSUFBTXRCO29DQUNsQztnQ0FDRjs2QkFDRDt3QkFDSDtxQkFDRDtnQkFDSDtZQUNGLENBQUE7SUFDRjtBQUNGO0FBRUEsT0FBTyxNQUFNZ0MsbUNBQW1DekIsc0JBQXNCRSx5QkFBd0IifQ==
|
|
@@ -1,32 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return BlockQuoteFeature;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _richtext = require("@lexical/rich-text");
|
|
12
|
-
const _converter = require("../converters/html/converter");
|
|
13
|
-
const _featureclient = require("./feature.client");
|
|
14
|
-
const _markdownTransformer = require("./markdownTransformer");
|
|
15
|
-
const BlockQuoteFeature = (props)=>{
|
|
1
|
+
import { QuoteNode } from '@lexical/rich-text';
|
|
2
|
+
import { convertLexicalNodesToHTML } from '../converters/html/converter';
|
|
3
|
+
import { BlockQuoteFeatureClientComponent } from './feature.client';
|
|
4
|
+
import { MarkdownTransformer } from './markdownTransformer';
|
|
5
|
+
export const BlockQuoteFeature = (props)=>{
|
|
16
6
|
return {
|
|
17
7
|
feature: ()=>{
|
|
18
8
|
return {
|
|
19
|
-
ClientComponent:
|
|
9
|
+
ClientComponent: BlockQuoteFeatureClientComponent,
|
|
20
10
|
clientFeatureProps: null,
|
|
21
11
|
markdownTransformers: [
|
|
22
|
-
|
|
12
|
+
MarkdownTransformer
|
|
23
13
|
],
|
|
24
14
|
nodes: [
|
|
25
15
|
{
|
|
26
16
|
converters: {
|
|
27
17
|
html: {
|
|
28
18
|
converter: async ({ converters, node, parent, payload })=>{
|
|
29
|
-
const childrenText = await
|
|
19
|
+
const childrenText = await convertLexicalNodesToHTML({
|
|
30
20
|
converters,
|
|
31
21
|
lexicalNodes: node.children,
|
|
32
22
|
parent: {
|
|
@@ -38,11 +28,11 @@ const BlockQuoteFeature = (props)=>{
|
|
|
38
28
|
return `<blockquote>${childrenText}</blockquote>`;
|
|
39
29
|
},
|
|
40
30
|
nodeTypes: [
|
|
41
|
-
|
|
31
|
+
QuoteNode.getType()
|
|
42
32
|
]
|
|
43
33
|
}
|
|
44
34
|
},
|
|
45
|
-
node:
|
|
35
|
+
node: QuoteNode
|
|
46
36
|
}
|
|
47
37
|
],
|
|
48
38
|
serverFeatureProps: props
|
|
@@ -53,4 +43,4 @@ const BlockQuoteFeature = (props)=>{
|
|
|
53
43
|
};
|
|
54
44
|
};
|
|
55
45
|
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3F1b3RlL2ZlYXR1cmUuc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1b3RlTm9kZSwgdHlwZSBTZXJpYWxpemVkUXVvdGVOb2RlIH0gZnJvbSAnQGxleGljYWwvcmljaC10ZXh0J1xuXG5pbXBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuLi9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXJQcm92aWRlclNlcnZlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBjb252ZXJ0TGV4aWNhbE5vZGVzVG9IVE1MIH0gZnJvbSAnLi4vY29udmVydGVycy9odG1sL2NvbnZlcnRlcidcbmltcG9ydCB7IEJsb2NrUXVvdGVGZWF0dXJlQ2xpZW50Q29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlLmNsaWVudCdcbmltcG9ydCB7IE1hcmtkb3duVHJhbnNmb3JtZXIgfSBmcm9tICcuL21hcmtkb3duVHJhbnNmb3JtZXInXG5cbmV4cG9ydCBjb25zdCBCbG9ja1F1b3RlRmVhdHVyZTogRmVhdHVyZVByb3ZpZGVyUHJvdmlkZXJTZXJ2ZXI8dW5kZWZpbmVkLCB1bmRlZmluZWQ+ID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZmVhdHVyZTogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgQ2xpZW50Q29tcG9uZW50OiBCbG9ja1F1b3RlRmVhdHVyZUNsaWVudENvbXBvbmVudCxcbiAgICAgICAgY2xpZW50RmVhdHVyZVByb3BzOiBudWxsLFxuICAgICAgICBtYXJrZG93blRyYW5zZm9ybWVyczogW01hcmtkb3duVHJhbnNmb3JtZXJdLFxuICAgICAgICBub2RlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnZlcnRlcnM6IHtcbiAgICAgICAgICAgICAgaHRtbDoge1xuICAgICAgICAgICAgICAgIGNvbnZlcnRlcjogYXN5bmMgKHsgY29udmVydGVycywgbm9kZSwgcGFyZW50LCBwYXlsb2FkIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuVGV4dCA9IGF3YWl0IGNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwoe1xuICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZXJzLFxuICAgICAgICAgICAgICAgICAgICBsZXhpY2FsTm9kZXM6IG5vZGUuY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDoge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLm5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGA8YmxvY2txdW90ZT4ke2NoaWxkcmVuVGV4dH08L2Jsb2NrcXVvdGU+
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3F1b3RlL2ZlYXR1cmUuc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1b3RlTm9kZSwgdHlwZSBTZXJpYWxpemVkUXVvdGVOb2RlIH0gZnJvbSAnQGxleGljYWwvcmljaC10ZXh0J1xuXG5pbXBvcnQgdHlwZSB7IEhUTUxDb252ZXJ0ZXIgfSBmcm9tICcuLi9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXJQcm92aWRlclNlcnZlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBjb252ZXJ0TGV4aWNhbE5vZGVzVG9IVE1MIH0gZnJvbSAnLi4vY29udmVydGVycy9odG1sL2NvbnZlcnRlcidcbmltcG9ydCB7IEJsb2NrUXVvdGVGZWF0dXJlQ2xpZW50Q29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlLmNsaWVudCdcbmltcG9ydCB7IE1hcmtkb3duVHJhbnNmb3JtZXIgfSBmcm9tICcuL21hcmtkb3duVHJhbnNmb3JtZXInXG5cbmV4cG9ydCBjb25zdCBCbG9ja1F1b3RlRmVhdHVyZTogRmVhdHVyZVByb3ZpZGVyUHJvdmlkZXJTZXJ2ZXI8dW5kZWZpbmVkLCB1bmRlZmluZWQ+ID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZmVhdHVyZTogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgQ2xpZW50Q29tcG9uZW50OiBCbG9ja1F1b3RlRmVhdHVyZUNsaWVudENvbXBvbmVudCxcbiAgICAgICAgY2xpZW50RmVhdHVyZVByb3BzOiBudWxsLFxuICAgICAgICBtYXJrZG93blRyYW5zZm9ybWVyczogW01hcmtkb3duVHJhbnNmb3JtZXJdLFxuICAgICAgICBub2RlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnZlcnRlcnM6IHtcbiAgICAgICAgICAgICAgaHRtbDoge1xuICAgICAgICAgICAgICAgIGNvbnZlcnRlcjogYXN5bmMgKHsgY29udmVydGVycywgbm9kZSwgcGFyZW50LCBwYXlsb2FkIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuVGV4dCA9IGF3YWl0IGNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwoe1xuICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZXJzLFxuICAgICAgICAgICAgICAgICAgICBsZXhpY2FsTm9kZXM6IG5vZGUuY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDoge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLm5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGA8YmxvY2txdW90ZT4ke2NoaWxkcmVuVGV4dH08L2Jsb2NrcXVvdGU+YFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbm9kZVR5cGVzOiBbUXVvdGVOb2RlLmdldFR5cGUoKV0sXG4gICAgICAgICAgICAgIH0gYXMgSFRNTENvbnZlcnRlcjxTZXJpYWxpemVkUXVvdGVOb2RlPixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBub2RlOiBRdW90ZU5vZGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgc2VydmVyRmVhdHVyZVByb3BzOiBwcm9wcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGtleTogJ2Jsb2NrcXVvdGUnLFxuICAgIHNlcnZlckZlYXR1cmVQcm9wczogcHJvcHMsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJRdW90ZU5vZGUiLCJjb252ZXJ0TGV4aWNhbE5vZGVzVG9IVE1MIiwiQmxvY2tRdW90ZUZlYXR1cmVDbGllbnRDb21wb25lbnQiLCJNYXJrZG93blRyYW5zZm9ybWVyIiwiQmxvY2tRdW90ZUZlYXR1cmUiLCJwcm9wcyIsImZlYXR1cmUiLCJDbGllbnRDb21wb25lbnQiLCJjbGllbnRGZWF0dXJlUHJvcHMiLCJtYXJrZG93blRyYW5zZm9ybWVycyIsIm5vZGVzIiwiY29udmVydGVycyIsImh0bWwiLCJjb252ZXJ0ZXIiLCJub2RlIiwicGFyZW50IiwicGF5bG9hZCIsImNoaWxkcmVuVGV4dCIsImxleGljYWxOb2RlcyIsImNoaWxkcmVuIiwibm9kZVR5cGVzIiwiZ2V0VHlwZSIsInNlcnZlckZlYXR1cmVQcm9wcyIsImtleSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxRQUFrQyxxQkFBb0I7QUFLeEUsU0FBU0MseUJBQXlCLFFBQVEsK0JBQThCO0FBQ3hFLFNBQVNDLGdDQUFnQyxRQUFRLG1CQUFrQjtBQUNuRSxTQUFTQyxtQkFBbUIsUUFBUSx3QkFBdUI7QUFFM0QsT0FBTyxNQUFNQyxvQkFBeUUsQ0FBQ0M7SUFDckYsT0FBTztRQUNMQyxTQUFTO1lBQ1AsT0FBTztnQkFDTEMsaUJBQWlCTDtnQkFDakJNLG9CQUFvQjtnQkFDcEJDLHNCQUFzQjtvQkFBQ047aUJBQW9CO2dCQUMzQ08sT0FBTztvQkFDTDt3QkFDRUMsWUFBWTs0QkFDVkMsTUFBTTtnQ0FDSkMsV0FBVyxPQUFPLEVBQUVGLFVBQVUsRUFBRUcsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRTtvQ0FDckQsTUFBTUMsZUFBZSxNQUFNaEIsMEJBQTBCO3dDQUNuRFU7d0NBQ0FPLGNBQWNKLEtBQUtLLFFBQVE7d0NBQzNCSixRQUFROzRDQUNOLEdBQUdELElBQUk7NENBQ1BDO3dDQUNGO3dDQUNBQztvQ0FDRjtvQ0FFQSxPQUFPLENBQUMsWUFBWSxFQUFFQyxhQUFhLGFBQWEsQ0FBQztnQ0FDbkQ7Z0NBQ0FHLFdBQVc7b0NBQUNwQixVQUFVcUIsT0FBTztpQ0FBRzs0QkFDbEM7d0JBQ0Y7d0JBQ0FQLE1BQU1kO29CQUNSO2lCQUNEO2dCQUNEc0Isb0JBQW9CakI7WUFDdEI7UUFDRjtRQUNBa0IsS0FBSztRQUNMRCxvQkFBb0JqQjtJQUN0QjtBQUNGLEVBQUMifQ==
|
|
@@ -1,22 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "MarkdownTransformer", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return MarkdownTransformer;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _richtext = require("@lexical/rich-text");
|
|
12
|
-
const _lexical = require("lexical");
|
|
13
|
-
const MarkdownTransformer = {
|
|
1
|
+
import { $createQuoteNode, $isQuoteNode, QuoteNode } from '@lexical/rich-text';
|
|
2
|
+
import { $createLineBreakNode } from 'lexical';
|
|
3
|
+
export const MarkdownTransformer = {
|
|
14
4
|
type: 'element',
|
|
15
5
|
dependencies: [
|
|
16
|
-
|
|
6
|
+
QuoteNode
|
|
17
7
|
],
|
|
18
8
|
export: (node, exportChildren)=>{
|
|
19
|
-
if (
|
|
9
|
+
if (!$isQuoteNode(node)) {
|
|
20
10
|
return null;
|
|
21
11
|
}
|
|
22
12
|
const lines = exportChildren(node).split('\n');
|
|
@@ -30,9 +20,9 @@ const MarkdownTransformer = {
|
|
|
30
20
|
replace: (parentNode, children, _match, isImport)=>{
|
|
31
21
|
if (isImport) {
|
|
32
22
|
const previousNode = parentNode.getPreviousSibling();
|
|
33
|
-
if (
|
|
23
|
+
if ($isQuoteNode(previousNode)) {
|
|
34
24
|
previousNode.splice(previousNode.getChildrenSize(), 0, [
|
|
35
|
-
|
|
25
|
+
$createLineBreakNode(),
|
|
36
26
|
...children
|
|
37
27
|
]);
|
|
38
28
|
previousNode.select(0, 0);
|
|
@@ -40,11 +30,11 @@ const MarkdownTransformer = {
|
|
|
40
30
|
return;
|
|
41
31
|
}
|
|
42
32
|
}
|
|
43
|
-
const node =
|
|
33
|
+
const node = $createQuoteNode();
|
|
44
34
|
node.append(...children);
|
|
45
35
|
parentNode.replace(node);
|
|
46
36
|
node.select(0, 0);
|
|
47
37
|
}
|
|
48
38
|
};
|
|
49
39
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3F1b3RlL21hcmtkb3duVHJhbnNmb3JtZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbGVtZW50VHJhbnNmb3JtZXIgfSBmcm9tICdAbGV4aWNhbC9tYXJrZG93bidcblxuaW1wb3J0IHsgJGNyZWF0ZVF1b3RlTm9kZSwgJGlzUXVvdGVOb2RlLCBRdW90ZU5vZGUgfSBmcm9tICdAbGV4aWNhbC9yaWNoLXRleHQnXG5pbXBvcnQgeyAkY3JlYXRlTGluZUJyZWFrTm9kZSB9IGZyb20gJ2xleGljYWwnXG5leHBvcnQgY29uc3QgTWFya2Rvd25UcmFuc2Zvcm1lcjogRWxlbWVudFRyYW5zZm9ybWVyID0ge1xuICB0eXBlOiAnZWxlbWVudCcsXG4gIGRlcGVuZGVuY2llczogW1F1b3RlTm9kZV0sXG4gIGV4cG9ydDogKG5vZGUsIGV4cG9ydENoaWxkcmVuKSA9PiB7XG4gICAgaWYgKCEkaXNRdW90ZU5vZGUobm9kZSkpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgbGluZXMgPSBleHBvcnRDaGlsZHJlbihub2RlKS5zcGxpdCgnXFxuJylcbiAgICBjb25zdCBvdXRwdXQgPSBbXVxuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgb3V0cHV0LnB1c2goJz4gJyArIGxpbmUpXG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQuam9pbignXFxuJylcbiAgfSxcbiAgcmVnRXhwOiAvXj5cXHMvLFxuICByZXBsYWNlOiAocGFyZW50Tm9kZSwgY2hpbGRyZW4sIF9tYXRjaCwgaXNJbXBvcnQpID0+
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3F1b3RlL21hcmtkb3duVHJhbnNmb3JtZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbGVtZW50VHJhbnNmb3JtZXIgfSBmcm9tICdAbGV4aWNhbC9tYXJrZG93bidcblxuaW1wb3J0IHsgJGNyZWF0ZVF1b3RlTm9kZSwgJGlzUXVvdGVOb2RlLCBRdW90ZU5vZGUgfSBmcm9tICdAbGV4aWNhbC9yaWNoLXRleHQnXG5pbXBvcnQgeyAkY3JlYXRlTGluZUJyZWFrTm9kZSB9IGZyb20gJ2xleGljYWwnXG5leHBvcnQgY29uc3QgTWFya2Rvd25UcmFuc2Zvcm1lcjogRWxlbWVudFRyYW5zZm9ybWVyID0ge1xuICB0eXBlOiAnZWxlbWVudCcsXG4gIGRlcGVuZGVuY2llczogW1F1b3RlTm9kZV0sXG4gIGV4cG9ydDogKG5vZGUsIGV4cG9ydENoaWxkcmVuKSA9PiB7XG4gICAgaWYgKCEkaXNRdW90ZU5vZGUobm9kZSkpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgbGluZXMgPSBleHBvcnRDaGlsZHJlbihub2RlKS5zcGxpdCgnXFxuJylcbiAgICBjb25zdCBvdXRwdXQgPSBbXVxuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgb3V0cHV0LnB1c2goJz4gJyArIGxpbmUpXG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQuam9pbignXFxuJylcbiAgfSxcbiAgcmVnRXhwOiAvXj5cXHMvLFxuICByZXBsYWNlOiAocGFyZW50Tm9kZSwgY2hpbGRyZW4sIF9tYXRjaCwgaXNJbXBvcnQpID0+IHtcbiAgICBpZiAoaXNJbXBvcnQpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzTm9kZSA9IHBhcmVudE5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgICAgIGlmICgkaXNRdW90ZU5vZGUocHJldmlvdXNOb2RlKSkge1xuICAgICAgICBwcmV2aW91c05vZGUuc3BsaWNlKHByZXZpb3VzTm9kZS5nZXRDaGlsZHJlblNpemUoKSwgMCwgW1xuICAgICAgICAgICRjcmVhdGVMaW5lQnJlYWtOb2RlKCksXG4gICAgICAgICAgLi4uY2hpbGRyZW4sXG4gICAgICAgIF0pXG4gICAgICAgIHByZXZpb3VzTm9kZS5zZWxlY3QoMCwgMClcbiAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmUoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gJGNyZWF0ZVF1b3RlTm9kZSgpXG4gICAgbm9kZS5hcHBlbmQoLi4uY2hpbGRyZW4pXG4gICAgcGFyZW50Tm9kZS5yZXBsYWNlKG5vZGUpXG4gICAgbm9kZS5zZWxlY3QoMCwgMClcbiAgfSxcbn1cbiJdLCJuYW1lcyI6WyIkY3JlYXRlUXVvdGVOb2RlIiwiJGlzUXVvdGVOb2RlIiwiUXVvdGVOb2RlIiwiJGNyZWF0ZUxpbmVCcmVha05vZGUiLCJNYXJrZG93blRyYW5zZm9ybWVyIiwidHlwZSIsImRlcGVuZGVuY2llcyIsImV4cG9ydCIsIm5vZGUiLCJleHBvcnRDaGlsZHJlbiIsImxpbmVzIiwic3BsaXQiLCJvdXRwdXQiLCJsaW5lIiwicHVzaCIsImpvaW4iLCJyZWdFeHAiLCJyZXBsYWNlIiwicGFyZW50Tm9kZSIsImNoaWxkcmVuIiwiX21hdGNoIiwiaXNJbXBvcnQiLCJwcmV2aW91c05vZGUiLCJnZXRQcmV2aW91c1NpYmxpbmciLCJzcGxpY2UiLCJnZXRDaGlsZHJlblNpemUiLCJzZWxlY3QiLCJyZW1vdmUiLCJhcHBlbmQiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLGdCQUFnQixFQUFFQyxZQUFZLEVBQUVDLFNBQVMsUUFBUSxxQkFBb0I7QUFDOUUsU0FBU0Msb0JBQW9CLFFBQVEsVUFBUztBQUM5QyxPQUFPLE1BQU1DLHNCQUEwQztJQUNyREMsTUFBTTtJQUNOQyxjQUFjO1FBQUNKO0tBQVU7SUFDekJLLFFBQVEsQ0FBQ0MsTUFBTUM7UUFDYixJQUFJLENBQUNSLGFBQWFPLE9BQU87WUFDdkIsT0FBTztRQUNUO1FBRUEsTUFBTUUsUUFBUUQsZUFBZUQsTUFBTUcsS0FBSyxDQUFDO1FBQ3pDLE1BQU1DLFNBQVMsRUFBRTtRQUNqQixLQUFLLE1BQU1DLFFBQVFILE1BQU87WUFDeEJFLE9BQU9FLElBQUksQ0FBQyxPQUFPRDtRQUNyQjtRQUNBLE9BQU9ELE9BQU9HLElBQUksQ0FBQztJQUNyQjtJQUNBQyxRQUFRO0lBQ1JDLFNBQVMsQ0FBQ0MsWUFBWUMsVUFBVUMsUUFBUUM7UUFDdEMsSUFBSUEsVUFBVTtZQUNaLE1BQU1DLGVBQWVKLFdBQVdLLGtCQUFrQjtZQUNsRCxJQUFJdEIsYUFBYXFCLGVBQWU7Z0JBQzlCQSxhQUFhRSxNQUFNLENBQUNGLGFBQWFHLGVBQWUsSUFBSSxHQUFHO29CQUNyRHRCO3VCQUNHZ0I7aUJBQ0o7Z0JBQ0RHLGFBQWFJLE1BQU0sQ0FBQyxHQUFHO2dCQUN2QlIsV0FBV1MsTUFBTTtnQkFDakI7WUFDRjtRQUNGO1FBRUEsTUFBTW5CLE9BQU9SO1FBQ2JRLEtBQUtvQixNQUFNLElBQUlUO1FBQ2ZELFdBQVdELE9BQU8sQ0FBQ1Q7UUFDbkJBLEtBQUtrQixNQUFNLENBQUMsR0FBRztJQUNqQjtBQUNGLEVBQUMifQ==
|
|
@@ -1,75 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const _deepequal = /*#__PURE__*/ _interop_require_default(require("deep-equal"));
|
|
15
|
-
const _lexical = require("lexical");
|
|
16
|
-
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
17
|
-
const _FormSavePlugin = require("./FormSavePlugin");
|
|
18
|
-
function _interop_require_default(obj) {
|
|
19
|
-
return obj && obj.__esModule ? obj : {
|
|
20
|
-
default: obj
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
24
|
-
if (typeof WeakMap !== "function") return null;
|
|
25
|
-
var cacheBabelInterop = new WeakMap();
|
|
26
|
-
var cacheNodeInterop = new WeakMap();
|
|
27
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
28
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
29
|
-
})(nodeInterop);
|
|
30
|
-
}
|
|
31
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
32
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
33
|
-
return obj;
|
|
34
|
-
}
|
|
35
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
36
|
-
return {
|
|
37
|
-
default: obj
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
41
|
-
if (cache && cache.has(obj)) {
|
|
42
|
-
return cache.get(obj);
|
|
43
|
-
}
|
|
44
|
-
var newObj = {
|
|
45
|
-
__proto__: null
|
|
46
|
-
};
|
|
47
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
48
|
-
for(var key in obj){
|
|
49
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
50
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
51
|
-
if (desc && (desc.get || desc.set)) {
|
|
52
|
-
Object.defineProperty(newObj, key, desc);
|
|
53
|
-
} else {
|
|
54
|
-
newObj[key] = obj[key];
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
newObj.default = obj;
|
|
59
|
-
if (cache) {
|
|
60
|
-
cache.set(obj, newObj);
|
|
61
|
-
}
|
|
62
|
-
return newObj;
|
|
63
|
-
}
|
|
64
|
-
const BlockContent = (props)=>{
|
|
1
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
2
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
3
|
+
import { RenderFields } from '@payloadcms/ui';
|
|
4
|
+
import { Button, Collapsible, ErrorPill, Pill, SectionTitle, useDocumentInfo, useFormSubmitted, useTranslation } from '@payloadcms/ui';
|
|
5
|
+
import isDeepEqual from 'deep-equal';
|
|
6
|
+
import { $getNodeByKey } from 'lexical';
|
|
7
|
+
import React, { useCallback } from 'react';
|
|
8
|
+
import { FormSavePlugin } from './FormSavePlugin';
|
|
9
|
+
/**
|
|
10
|
+
* The actual content of the Block. This should be INSIDE a Form component,
|
|
11
|
+
* scoped to the block. All format operations in here are thus scoped to the block's form, and
|
|
12
|
+
* not the whole document.
|
|
13
|
+
*/ export const BlockContent = (props)=>{
|
|
65
14
|
const { baseClass, field, formData, formSchema, nodeKey, reducedBlock: { labels } } = props;
|
|
66
|
-
const { i18n } =
|
|
67
|
-
const [editor] =
|
|
15
|
+
const { i18n } = useTranslation();
|
|
16
|
+
const [editor] = useLexicalComposerContext();
|
|
68
17
|
// Used for saving collapsed to preferences (and gettin' it from there again)
|
|
69
18
|
// Remember, these preferences are scoped to the whole document, not just this form. This
|
|
70
19
|
// is important to consider for the data path used in setDocFieldPreferences
|
|
71
|
-
const { getDocPreferences, setDocFieldPreferences } =
|
|
72
|
-
const [collapsed, setCollapsed] =
|
|
20
|
+
const { getDocPreferences, setDocFieldPreferences } = useDocumentInfo();
|
|
21
|
+
const [collapsed, setCollapsed] = React.useState(()=>{
|
|
73
22
|
let initialState = false;
|
|
74
23
|
getDocPreferences().then((currentDocPreferences)=>{
|
|
75
24
|
const currentFieldPreferences = currentDocPreferences?.fields[field.name];
|
|
@@ -81,14 +30,14 @@ const BlockContent = (props)=>{
|
|
|
81
30
|
});
|
|
82
31
|
return initialState;
|
|
83
32
|
});
|
|
84
|
-
const hasSubmitted =
|
|
85
|
-
const [errorCount, setErrorCount] =
|
|
33
|
+
const hasSubmitted = useFormSubmitted();
|
|
34
|
+
const [errorCount, setErrorCount] = React.useState(0);
|
|
86
35
|
const fieldHasErrors = hasSubmitted && errorCount > 0;
|
|
87
36
|
const classNames = [
|
|
88
37
|
`${baseClass}__row`,
|
|
89
38
|
fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`
|
|
90
39
|
].filter(Boolean).join(' ');
|
|
91
|
-
const onFormChange =
|
|
40
|
+
const onFormChange = useCallback(({ fullFieldsWithValues, newFormData })=>{
|
|
92
41
|
newFormData = {
|
|
93
42
|
...newFormData,
|
|
94
43
|
id: formData.id,
|
|
@@ -113,14 +62,14 @@ const BlockContent = (props)=>{
|
|
|
113
62
|
removeUndefinedAndNullRecursively(formData);
|
|
114
63
|
// Only update if the data has actually changed. Otherwise, we may be triggering an unnecessary value change,
|
|
115
64
|
// which would trigger the "Leave without saving" dialog unnecessarily
|
|
116
|
-
if (!(
|
|
65
|
+
if (!isDeepEqual(formData, newFormData)) {
|
|
117
66
|
// Running this in the next tick in the meantime fixes this issue: https://github.com/payloadcms/payload/issues/4108
|
|
118
67
|
// I don't know why. When this is called immediately, it might focus out of a nested lexical editor field if an update is made there.
|
|
119
68
|
// My hypothesis is that the nested editor might not have fully finished its update cycle yet. By updating in the next tick, we
|
|
120
69
|
// ensure that the nested editor has finished its update cycle before we update the block node.
|
|
121
70
|
setTimeout(()=>{
|
|
122
71
|
editor.update(()=>{
|
|
123
|
-
const node =
|
|
72
|
+
const node = $getNodeByKey(nodeKey);
|
|
124
73
|
if (node) {
|
|
125
74
|
node.setFields(newFormData);
|
|
126
75
|
}
|
|
@@ -143,7 +92,7 @@ const BlockContent = (props)=>{
|
|
|
143
92
|
hasSubmitted,
|
|
144
93
|
formData
|
|
145
94
|
]);
|
|
146
|
-
const onCollapsedChange =
|
|
95
|
+
const onCollapsedChange = useCallback(()=>{
|
|
147
96
|
getDocPreferences().then((currentDocPreferences)=>{
|
|
148
97
|
const currentFieldPreferences = currentDocPreferences?.fields[field.name];
|
|
149
98
|
const collapsedMap = currentFieldPreferences?.collapsed;
|
|
@@ -160,31 +109,31 @@ const BlockContent = (props)=>{
|
|
|
160
109
|
setDocFieldPreferences,
|
|
161
110
|
formData.id
|
|
162
111
|
]);
|
|
163
|
-
const removeBlock =
|
|
112
|
+
const removeBlock = useCallback(()=>{
|
|
164
113
|
editor.update(()=>{
|
|
165
|
-
|
|
114
|
+
$getNodeByKey(nodeKey).remove();
|
|
166
115
|
});
|
|
167
116
|
}, [
|
|
168
117
|
editor,
|
|
169
118
|
nodeKey
|
|
170
119
|
]);
|
|
171
|
-
return /*#__PURE__*/
|
|
120
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Collapsible, {
|
|
172
121
|
className: classNames,
|
|
173
122
|
collapsed: collapsed,
|
|
174
123
|
collapsibleStyle: fieldHasErrors ? 'error' : 'default',
|
|
175
|
-
header: /*#__PURE__*/
|
|
124
|
+
header: /*#__PURE__*/ React.createElement("div", {
|
|
176
125
|
className: `${baseClass}__block-header`
|
|
177
|
-
}, /*#__PURE__*/
|
|
126
|
+
}, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement(Pill, {
|
|
178
127
|
className: `${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`,
|
|
179
128
|
pillStyle: "white"
|
|
180
|
-
}, typeof labels.singular === 'string' ?
|
|
129
|
+
}, typeof labels.singular === 'string' ? getTranslation(labels.singular, i18n) : '[Singular Label]'), /*#__PURE__*/ React.createElement(SectionTitle, {
|
|
181
130
|
path: "blockName2",
|
|
182
131
|
readOnly: field?.readOnly
|
|
183
|
-
}), fieldHasErrors && /*#__PURE__*/
|
|
132
|
+
}), fieldHasErrors && /*#__PURE__*/ React.createElement(ErrorPill, {
|
|
184
133
|
count: errorCount,
|
|
185
134
|
i18n: i18n,
|
|
186
135
|
withMessage: true
|
|
187
|
-
})), editor.isEditable() && /*#__PURE__*/
|
|
136
|
+
})), editor.isEditable() && /*#__PURE__*/ React.createElement(Button, {
|
|
188
137
|
buttonStyle: "icon-label",
|
|
189
138
|
className: `${baseClass}__removeButton`,
|
|
190
139
|
disabled: field?.readOnly,
|
|
@@ -201,14 +150,14 @@ const BlockContent = (props)=>{
|
|
|
201
150
|
setCollapsed(collapsed);
|
|
202
151
|
onCollapsedChange();
|
|
203
152
|
}
|
|
204
|
-
}, /*#__PURE__*/
|
|
153
|
+
}, /*#__PURE__*/ React.createElement(RenderFields, {
|
|
205
154
|
className: `${baseClass}__fields`,
|
|
206
155
|
fieldMap: Array.isArray(formSchema) ? formSchema : [],
|
|
207
156
|
forceRender: true,
|
|
208
157
|
margins: "small"
|
|
209
|
-
})), /*#__PURE__*/
|
|
158
|
+
})), /*#__PURE__*/ React.createElement(FormSavePlugin, {
|
|
210
159
|
onChange: onFormChange
|
|
211
160
|
}));
|
|
212
161
|
};
|
|
213
162
|
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3MvY29tcG9uZW50L0Jsb2NrQ29udGVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDbGllbnRFZGl0b3JDb25maWcgfSBmcm9tICdAcGF5bG9hZGNtcy9yaWNodGV4dC1sZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZE1hcCwgRm9ybUZpZWxkQmFzZSB9IGZyb20gJ0BwYXlsb2FkY21zL3VpJ1xuaW1wb3J0IHR5cGUgeyBSZWR1Y2VkQmxvY2sgfSBmcm9tICdAcGF5bG9hZGNtcy91aS90eXBlcydcbmltcG9ydCB0eXBlIHsgRm9ybVN0YXRlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICdAcGF5bG9hZGNtcy90cmFuc2xhdGlvbnMnXG5pbXBvcnQgeyBSZW5kZXJGaWVsZHMgfSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCB7XG4gIEJ1dHRvbixcbiAgQ29sbGFwc2libGUsXG4gIEVycm9yUGlsbCxcbiAgUGlsbCxcbiAgU2VjdGlvblRpdGxlLFxuICB1c2VEb2N1bWVudEluZm8sXG4gIHVzZUZvcm1TdWJtaXR0ZWQsXG4gIHVzZVRyYW5zbGF0aW9uLFxufSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCBpc0RlZXBFcXVhbCBmcm9tICdkZWVwLWVxdWFsJ1xuaW1wb3J0IHsgJGdldE5vZGVCeUtleSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBCbG9ja0ZpZWxkcywgQmxvY2tOb2RlIH0gZnJvbSAnLi4vbm9kZXMvQmxvY2tzTm9kZSdcblxuaW1wb3J0IHsgRm9ybVNhdmVQbHVnaW4gfSBmcm9tICcuL0Zvcm1TYXZlUGx1Z2luJ1xuXG50eXBlIFByb3BzID0ge1xuICBiYXNlQ2xhc3M6IHN0cmluZ1xuICBmaWVsZDogRm9ybUZpZWxkQmFzZSAmIHtcbiAgICBlZGl0b3JDb25maWc6IFNhbml0aXplZENsaWVudEVkaXRvckNvbmZpZyAvLyBXaXRoIHJlbmRlcmVkIGZlYXR1cmVzIG4gc3R1ZmZcbiAgICBuYW1lOiBzdHJpbmdcbiAgICByaWNoVGV4dENvbXBvbmVudE1hcDogTWFwPHN0cmluZywgUmVhY3QuUmVhY3ROb2RlPlxuICB9XG4gIGZvcm1EYXRhOiBCbG9ja0ZpZWxkc1xuICBmb3JtU2NoZW1hOiBGaWVsZE1hcFxuICBub2RlS2V5OiBzdHJpbmdcbiAgcmVkdWNlZEJsb2NrOiBSZWR1Y2VkQmxvY2tcbn1cblxuLyoqXG4gKiBUaGUgYWN0dWFsIGNvbnRlbnQgb2YgdGhlIEJsb2NrLiBUaGlzIHNob3VsZCBiZSBJTlNJREUgYSBGb3JtIGNvbXBvbmVudCxcbiAqIHNjb3BlZCB0byB0aGUgYmxvY2suIEFsbCBmb3JtYXQgb3BlcmF0aW9ucyBpbiBoZXJlIGFyZSB0aHVzIHNjb3BlZCB0byB0aGUgYmxvY2sncyBmb3JtLCBhbmRcbiAqIG5vdCB0aGUgd2hvbGUgZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBCbG9ja0NvbnRlbnQ6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYmFzZUNsYXNzLFxuICAgIGZpZWxkLFxuICAgIGZvcm1EYXRhLFxuICAgIGZvcm1TY2hlbWEsXG4gICAgbm9kZUtleSxcbiAgICByZWR1Y2VkQmxvY2s6IHsgbGFiZWxzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICAvLyBVc2VkIGZvciBzYXZpbmcgY29sbGFwc2VkIHRvIHByZWZlcmVuY2VzIChhbmQgZ2V0dGluJyBpdCBmcm9tIHRoZXJlIGFnYWluKVxuICAvLyBSZW1lbWJlciwgdGhlc2UgcHJlZmVyZW5jZXMgYXJlIHNjb3BlZCB0byB0aGUgd2hvbGUgZG9jdW1lbnQsIG5vdCBqdXN0IHRoaXMgZm9ybS4gVGhpc1xuICAvLyBpcyBpbXBvcnRhbnQgdG8gY29uc2lkZXIgZm9yIHRoZSBkYXRhIHBhdGggdXNlZCBpbiBzZXREb2NGaWVsZFByZWZlcmVuY2VzXG4gIGNvbnN0IHsgZ2V0RG9jUHJlZmVyZW5jZXMsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG5cbiAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IFJlYWN0LnVzZVN0YXRlPGJvb2xlYW4+KCgpID0+IHtcbiAgICBsZXQgaW5pdGlhbFN0YXRlID0gZmFsc2VcblxuICAgIGdldERvY1ByZWZlcmVuY2VzKCkudGhlbigoY3VycmVudERvY1ByZWZlcmVuY2VzKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50RmllbGRQcmVmZXJlbmNlcyA9IGN1cnJlbnREb2NQcmVmZXJlbmNlcz8uZmllbGRzW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGNvbnN0IGNvbGxhcHNlZE1hcDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSBjdXJyZW50RmllbGRQcmVmZXJlbmNlcz8uY29sbGFwc2VkXG5cbiAgICAgIGlmIChjb2xsYXBzZWRNYXAgJiYgY29sbGFwc2VkTWFwW2Zvcm1EYXRhLmlkXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldENvbGxhcHNlZChjb2xsYXBzZWRNYXBbZm9ybURhdGEuaWRdKVxuICAgICAgICBpbml0aWFsU3RhdGUgPSBjb2xsYXBzZWRNYXBbZm9ybURhdGEuaWRdXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gaW5pdGlhbFN0YXRlXG4gIH0pXG4gIGNvbnN0IGhhc1N1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuXG4gIGNvbnN0IFtlcnJvckNvdW50LCBzZXRFcnJvckNvdW50XSA9IFJlYWN0LnVzZVN0YXRlKDApXG5cbiAgY29uc3QgZmllbGRIYXNFcnJvcnMgPSBoYXNTdWJtaXR0ZWQgJiYgZXJyb3JDb3VudCA+IDBcblxuICBjb25zdCBjbGFzc05hbWVzID0gW1xuICAgIGAke2Jhc2VDbGFzc31fX3Jvd2AsXG4gICAgZmllbGRIYXNFcnJvcnMgPyBgJHtiYXNlQ2xhc3N9X19yb3ctLWhhcy1lcnJvcnNgIDogYCR7YmFzZUNsYXNzfV9fcm93LS1uby1lcnJvcnNgLFxuICBdXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5qb2luKCcgJylcblxuICBjb25zdCBvbkZvcm1DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZnVsbEZpZWxkc1dpdGhWYWx1ZXMsXG4gICAgICBuZXdGb3JtRGF0YSxcbiAgICB9OiB7XG4gICAgICBmdWxsRmllbGRzV2l0aFZhbHVlczogRm9ybVN0YXRlXG4gICAgICBuZXdGb3JtRGF0YTogRGF0YVxuICAgIH0pID0+IHtcbiAgICAgIG5ld0Zvcm1EYXRhID0ge1xuICAgICAgICAuLi5uZXdGb3JtRGF0YSxcbiAgICAgICAgaWQ6IGZvcm1EYXRhLmlkLFxuICAgICAgICBibG9ja05hbWU6IG5ld0Zvcm1EYXRhLmJsb2NrTmFtZTIsIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgc29sdXRpb24gZm9yIHRoaXMuIFdlIGhhdmUgdG8gd3JhcCBpdCBpbiBibG9ja05hbWUyIHdoZW4gdXNpbmcgaXQgaGVyZSwgYXMgYmxvY2tOYW1lIGRvZXMgbm90IGFjY2VwdCBvciBwcm92aWRlIGFueSB1cGRhdGVkIHZhbHVlcyBmb3Igc29tZSByZWFzb24uXG4gICAgICAgIGJsb2NrVHlwZTogZm9ybURhdGEuYmxvY2tUeXBlLFxuICAgICAgfVxuXG4gICAgICAvLyBSZWN1cnNpdmVseSByZW1vdmUgYWxsIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBldmVuIGJlaW5nIHByZXNlbnQgaW4gZm9ybURhdGEsIGFzIHRoZXkgd2lsbFxuICAgICAgLy8gY2F1c2UgaXNEZWVwRXF1YWwgdG8gcmV0dXJuIGZhbHNlIGlmLCBmb3IgZXhhbXBsZSwgZm9ybURhdGEgaGFzIGEga2V5IHRoYXQgZmllbGRzLmRhdGFcbiAgICAgIC8vIGRvZXMgbm90IGhhdmUsIGV2ZW4gaWYgaXQncyB1bmRlZmluZWQuXG4gICAgICAvLyBDdXJyZW50bHksIHRoaXMgaGFwcGVucyBpZiBhIGJsb2NrIGhhcyBhbm90aGVyIHN1Yi1ibG9ja3MgZmllbGQuIEluc2lkZSBmb3JtRGF0YSwgdGhhdCBzdWItYmxvY2tzIGZpZWxkIGhhcyBhbiB1bmRlZmluZWQgYmxvY2tOYW1lIHByb3BlcnR5LlxuICAgICAgLy8gSW5zaWRlIG9mIGZpZWxkcy5kYXRhIGhvd2V2ZXIsIHRoYXQgc3ViLWJsb2NrcyBibG9ja05hbWUgcHJvcGVydHkgZG9lcyBub3QgZXhpc3QgYXQgYWxsLlxuICAgICAgZnVuY3Rpb24gcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbFJlY3Vyc2l2ZWx5KG9iajogb2JqZWN0KSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKG9ialtrZXldICYmIHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShvYmpba2V5XSlcbiAgICAgICAgICB9IGVsc2UgaWYgKG9ialtrZXldID09PSB1bmRlZmluZWQgfHwgb2JqW2tleV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBvYmpba2V5XVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShuZXdGb3JtRGF0YSlcbiAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShmb3JtRGF0YSlcblxuICAgICAgLy8gT25seSB1cGRhdGUgaWYgdGhlIGRhdGEgaGFzIGFjdHVhbGx5IGNoYW5nZWQuIE90aGVyd2lzZSwgd2UgbWF5IGJlIHRyaWdnZXJpbmcgYW4gdW5uZWNlc3NhcnkgdmFsdWUgY2hhbmdlLFxuICAgICAgLy8gd2hpY2ggd291bGQgdHJpZ2dlciB0aGUgXCJMZWF2ZSB3aXRob3V0IHNhdmluZ1wiIGRpYWxvZyB1bm5lY2Vzc2FyaWx5XG4gICAgICBpZiAoIWlzRGVlcEVxdWFsKGZvcm1EYXRhLCBuZXdGb3JtRGF0YSkpIHtcbiAgICAgICAgLy8gUnVubmluZyB0aGlzIGluIHRoZSBuZXh0IHRpY2sgaW4gdGhlIG1lYW50aW1lIGZpeGVzIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvaXNzdWVzLzQxMDhcbiAgICAgICAgLy8gSSBkb24ndCBrbm93IHdoeS4gV2hlbiB0aGlzIGlzIGNhbGxlZCBpbW1lZGlhdGVseSwgaXQgbWlnaHQgZm9jdXMgb3V0IG9mIGEgbmVzdGVkIGxleGljYWwgZWRpdG9yIGZpZWxkIGlmIGFuIHVwZGF0ZSBpcyBtYWRlIHRoZXJlLlxuICAgICAgICAvLyBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhlIG5lc3RlZCBlZGl0b3IgbWlnaHQgbm90IGhhdmUgZnVsbHkgZmluaXNoZWQgaXRzIHVwZGF0ZSBjeWNsZSB5ZXQuIEJ5IHVwZGF0aW5nIGluIHRoZSBuZXh0IHRpY2ssIHdlXG4gICAgICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBuZXN0ZWQgZWRpdG9yIGhhcyBmaW5pc2hlZCBpdHMgdXBkYXRlIGN5Y2xlIGJlZm9yZSB3ZSB1cGRhdGUgdGhlIGJsb2NrIG5vZGUuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZTogQmxvY2tOb2RlID0gJGdldE5vZGVCeUtleShub2RlS2V5KVxuICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgbm9kZS5zZXRGaWVsZHMobmV3Rm9ybURhdGEgYXMgQmxvY2tGaWVsZHMpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSwgMClcbiAgICAgIH1cblxuICAgICAgLy8gdXBkYXRlIGVycm9yIGNvdW50XG4gICAgICBpZiAoaGFzU3VibWl0dGVkKSB7XG4gICAgICAgIGxldCByb3dFcnJvckNvdW50ID0gMFxuICAgICAgICBmb3IgKGNvbnN0IGZvcm1GaWVsZCBvZiBPYmplY3QudmFsdWVzKGZ1bGxGaWVsZHNXaXRoVmFsdWVzKSkge1xuICAgICAgICAgIGlmIChmb3JtRmllbGQ/LnZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcm93RXJyb3JDb3VudCsrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNldEVycm9yQ291bnQocm93RXJyb3JDb3VudClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtlZGl0b3IsIG5vZGVLZXksIGhhc1N1Ym1pdHRlZCwgZm9ybURhdGFdLFxuICApXG5cbiAgY29uc3Qgb25Db2xsYXBzZWRDaGFuZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZ2V0RG9jUHJlZmVyZW5jZXMoKS50aGVuKChjdXJyZW50RG9jUHJlZmVyZW5jZXMpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWVsZFByZWZlcmVuY2VzID0gY3VycmVudERvY1ByZWZlcmVuY2VzPy5maWVsZHNbZmllbGQubmFtZV1cblxuICAgICAgY29uc3QgY29sbGFwc2VkTWFwOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IGN1cnJlbnRGaWVsZFByZWZlcmVuY2VzPy5jb2xsYXBzZWRcblxuICAgICAgY29uc3QgbmV3Q29sbGFwc2VkOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9XG4gICAgICAgIGNvbGxhcHNlZE1hcCAmJiBjb2xsYXBzZWRNYXA/LnNpemUgPyBjb2xsYXBzZWRNYXAgOiB7fVxuXG4gICAgICBuZXdDb2xsYXBzZWRbZm9ybURhdGEuaWRdID0gIWNvbGxhcHNlZFxuXG4gICAgICBzZXREb2NGaWVsZFByZWZlcmVuY2VzKGZpZWxkLm5hbWUsIHtcbiAgICAgICAgY29sbGFwc2VkOiBuZXdDb2xsYXBzZWQsXG4gICAgICB9KVxuICAgIH0pXG4gIH0sIFtjb2xsYXBzZWQsIGdldERvY1ByZWZlcmVuY2VzLCBmaWVsZC5uYW1lLCBzZXREb2NGaWVsZFByZWZlcmVuY2VzLCBmb3JtRGF0YS5pZF0pXG5cbiAgY29uc3QgcmVtb3ZlQmxvY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAkZ2V0Tm9kZUJ5S2V5KG5vZGVLZXkpLnJlbW92ZSgpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgbm9kZUtleV0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8Q29sbGFwc2libGVcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzfVxuICAgICAgICBjb2xsYXBzZWQ9e2NvbGxhcHNlZH1cbiAgICAgICAgY29sbGFwc2libGVTdHlsZT17ZmllbGRIYXNFcnJvcnMgPyAnZXJyb3InIDogJ2RlZmF1bHQnfVxuICAgICAgICBoZWFkZXI9e1xuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ibG9jay1oZWFkZXJgfT5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxQaWxsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ibG9jay1waWxsICR7YmFzZUNsYXNzfV9fYmxvY2stcGlsbC0ke2Zvcm1EYXRhPy5ibG9ja1R5cGV9YH1cbiAgICAgICAgICAgICAgICBwaWxsU3R5bGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dHlwZW9mIGxhYmVscy5zaW5ndWxhciA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gZ2V0VHJhbnNsYXRpb24obGFiZWxzLnNpbmd1bGFyLCBpMThuKVxuICAgICAgICAgICAgICAgICAgOiAnW1Npbmd1bGFyIExhYmVsXSd9XG4gICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICAgPFNlY3Rpb25UaXRsZSBwYXRoPVwiYmxvY2tOYW1lMlwiIHJlYWRPbmx5PXtmaWVsZD8ucmVhZE9ubHl9IC8+XG4gICAgICAgICAgICAgIHtmaWVsZEhhc0Vycm9ycyAmJiA8RXJyb3JQaWxsIGNvdW50PXtlcnJvckNvdW50fSBpMThuPXtpMThufSB3aXRoTWVzc2FnZSAvPn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2VkaXRvci5pc0VkaXRhYmxlKCkgJiYgKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJpY29uLWxhYmVsXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3JlbW92ZUJ1dHRvbmB9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpZWxkPy5yZWFkT25seX1cbiAgICAgICAgICAgICAgICBpY29uPVwieFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgcmVtb3ZlQmxvY2soKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcm91bmRcbiAgICAgICAgICAgICAgICB0b29sdGlwPVwiUmVtb3ZlIEJsb2NrXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAga2V5PXswfVxuICAgICAgICBvblRvZ2dsZT17KGNvbGxhcHNlZCkgPT4ge1xuICAgICAgICAgIHNldENvbGxhcHNlZChjb2xsYXBzZWQpXG4gICAgICAgICAgb25Db2xsYXBzZWRDaGFuZ2UoKVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8UmVuZGVyRmllbGRzXG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19maWVsZHNgfVxuICAgICAgICAgIGZpZWxkTWFwPXtBcnJheS5pc0FycmF5KGZvcm1TY2hlbWEpID8gZm9ybVNjaGVtYSA6IFtdfVxuICAgICAgICAgIGZvcmNlUmVuZGVyXG4gICAgICAgICAgbWFyZ2lucz1cInNtYWxsXCJcbiAgICAgICAgLz5cbiAgICAgIDwvQ29sbGFwc2libGU+XG5cbiAgICAgIDxGb3JtU2F2ZVBsdWdpbiBvbkNoYW5nZT17b25Gb3JtQ2hhbmdlfSAvPlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJCbG9ja0NvbnRlbnQiLCJwcm9wcyIsImJhc2VDbGFzcyIsImZpZWxkIiwiZm9ybURhdGEiLCJmb3JtU2NoZW1hIiwibm9kZUtleSIsInJlZHVjZWRCbG9jayIsImxhYmVscyIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImVkaXRvciIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJnZXREb2NQcmVmZXJlbmNlcyIsInNldERvY0ZpZWxkUHJlZmVyZW5jZXMiLCJ1c2VEb2N1bWVudEluZm8iLCJjb2xsYXBzZWQiLCJzZXRDb2xsYXBzZWQiLCJSZWFjdCIsInVzZVN0YXRlIiwiaW5pdGlhbFN0YXRlIiwidGhlbiIsImN1cnJlbnREb2NQcmVmZXJlbmNlcyIsImN1cnJlbnRGaWVsZFByZWZlcmVuY2VzIiwiZmllbGRzIiwibmFtZSIsImNvbGxhcHNlZE1hcCIsImlkIiwidW5kZWZpbmVkIiwiaGFzU3VibWl0dGVkIiwidXNlRm9ybVN1Ym1pdHRlZCIsImVycm9yQ291bnQiLCJzZXRFcnJvckNvdW50IiwiZmllbGRIYXNFcnJvcnMiLCJjbGFzc05hbWVzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJvbkZvcm1DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImZ1bGxGaWVsZHNXaXRoVmFsdWVzIiwibmV3Rm9ybURhdGEiLCJibG9ja05hbWUiLCJibG9ja05hbWUyIiwiYmxvY2tUeXBlIiwicmVtb3ZlVW5kZWZpbmVkQW5kTnVsbFJlY3Vyc2l2ZWx5Iiwib2JqIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJpc0RlZXBFcXVhbCIsInNldFRpbWVvdXQiLCJ1cGRhdGUiLCJub2RlIiwiJGdldE5vZGVCeUtleSIsInNldEZpZWxkcyIsInJvd0Vycm9yQ291bnQiLCJmb3JtRmllbGQiLCJ2YWx1ZXMiLCJ2YWxpZCIsIm9uQ29sbGFwc2VkQ2hhbmdlIiwibmV3Q29sbGFwc2VkIiwic2l6ZSIsInJlbW92ZUJsb2NrIiwicmVtb3ZlIiwiRnJhZ21lbnQiLCJDb2xsYXBzaWJsZSIsImNsYXNzTmFtZSIsImNvbGxhcHNpYmxlU3R5bGUiLCJoZWFkZXIiLCJkaXYiLCJQaWxsIiwicGlsbFN0eWxlIiwic2luZ3VsYXIiLCJnZXRUcmFuc2xhdGlvbiIsIlNlY3Rpb25UaXRsZSIsInBhdGgiLCJyZWFkT25seSIsIkVycm9yUGlsbCIsImNvdW50Iiwid2l0aE1lc3NhZ2UiLCJpc0VkaXRhYmxlIiwiQnV0dG9uIiwiYnV0dG9uU3R5bGUiLCJkaXNhYmxlZCIsImljb24iLCJvbkNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0Iiwicm91bmQiLCJ0b29sdGlwIiwib25Ub2dnbGUiLCJSZW5kZXJGaWVsZHMiLCJmaWVsZE1hcCIsIkFycmF5IiwiaXNBcnJheSIsImZvcmNlUmVuZGVyIiwibWFyZ2lucyIsIkZvcm1TYXZlUGx1Z2luIiwib25DaGFuZ2UiXSwibWFwcGluZ3MiOiI7Ozs7K0JBNkNhQTs7O2VBQUFBOzs7d0NBdkM2Qjs4QkFDWDtvQkFDRjtrRUFXTDt5QkFDTTsrREFDSztnQ0FJSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQnhCLE1BQU1BLGVBQWdDLENBQUNDO0lBQzVDLE1BQU0sRUFDSkMs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
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9ibG9ja3MvY29tcG9uZW50L0Jsb2NrQ29udGVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDbGllbnRFZGl0b3JDb25maWcgfSBmcm9tICdAcGF5bG9hZGNtcy9yaWNodGV4dC1sZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZE1hcCwgRm9ybUZpZWxkQmFzZSB9IGZyb20gJ0BwYXlsb2FkY21zL3VpJ1xuaW1wb3J0IHR5cGUgeyBSZWR1Y2VkQmxvY2sgfSBmcm9tICdAcGF5bG9hZGNtcy91aS90eXBlcydcbmltcG9ydCB0eXBlIHsgRm9ybVN0YXRlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICdAcGF5bG9hZGNtcy90cmFuc2xhdGlvbnMnXG5pbXBvcnQgeyBSZW5kZXJGaWVsZHMgfSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCB7XG4gIEJ1dHRvbixcbiAgQ29sbGFwc2libGUsXG4gIEVycm9yUGlsbCxcbiAgUGlsbCxcbiAgU2VjdGlvblRpdGxlLFxuICB1c2VEb2N1bWVudEluZm8sXG4gIHVzZUZvcm1TdWJtaXR0ZWQsXG4gIHVzZVRyYW5zbGF0aW9uLFxufSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCBpc0RlZXBFcXVhbCBmcm9tICdkZWVwLWVxdWFsJ1xuaW1wb3J0IHsgJGdldE5vZGVCeUtleSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBCbG9ja0ZpZWxkcywgQmxvY2tOb2RlIH0gZnJvbSAnLi4vbm9kZXMvQmxvY2tzTm9kZSdcblxuaW1wb3J0IHsgRm9ybVNhdmVQbHVnaW4gfSBmcm9tICcuL0Zvcm1TYXZlUGx1Z2luJ1xuXG50eXBlIFByb3BzID0ge1xuICBiYXNlQ2xhc3M6IHN0cmluZ1xuICBmaWVsZDogRm9ybUZpZWxkQmFzZSAmIHtcbiAgICBlZGl0b3JDb25maWc6IFNhbml0aXplZENsaWVudEVkaXRvckNvbmZpZyAvLyBXaXRoIHJlbmRlcmVkIGZlYXR1cmVzIG4gc3R1ZmZcbiAgICBuYW1lOiBzdHJpbmdcbiAgICByaWNoVGV4dENvbXBvbmVudE1hcDogTWFwPHN0cmluZywgUmVhY3QuUmVhY3ROb2RlPlxuICB9XG4gIGZvcm1EYXRhOiBCbG9ja0ZpZWxkc1xuICBmb3JtU2NoZW1hOiBGaWVsZE1hcFxuICBub2RlS2V5OiBzdHJpbmdcbiAgcmVkdWNlZEJsb2NrOiBSZWR1Y2VkQmxvY2tcbn1cblxuLyoqXG4gKiBUaGUgYWN0dWFsIGNvbnRlbnQgb2YgdGhlIEJsb2NrLiBUaGlzIHNob3VsZCBiZSBJTlNJREUgYSBGb3JtIGNvbXBvbmVudCxcbiAqIHNjb3BlZCB0byB0aGUgYmxvY2suIEFsbCBmb3JtYXQgb3BlcmF0aW9ucyBpbiBoZXJlIGFyZSB0aHVzIHNjb3BlZCB0byB0aGUgYmxvY2sncyBmb3JtLCBhbmRcbiAqIG5vdCB0aGUgd2hvbGUgZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBCbG9ja0NvbnRlbnQ6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYmFzZUNsYXNzLFxuICAgIGZpZWxkLFxuICAgIGZvcm1EYXRhLFxuICAgIGZvcm1TY2hlbWEsXG4gICAgbm9kZUtleSxcbiAgICByZWR1Y2VkQmxvY2s6IHsgbGFiZWxzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICAvLyBVc2VkIGZvciBzYXZpbmcgY29sbGFwc2VkIHRvIHByZWZlcmVuY2VzIChhbmQgZ2V0dGluJyBpdCBmcm9tIHRoZXJlIGFnYWluKVxuICAvLyBSZW1lbWJlciwgdGhlc2UgcHJlZmVyZW5jZXMgYXJlIHNjb3BlZCB0byB0aGUgd2hvbGUgZG9jdW1lbnQsIG5vdCBqdXN0IHRoaXMgZm9ybS4gVGhpc1xuICAvLyBpcyBpbXBvcnRhbnQgdG8gY29uc2lkZXIgZm9yIHRoZSBkYXRhIHBhdGggdXNlZCBpbiBzZXREb2NGaWVsZFByZWZlcmVuY2VzXG4gIGNvbnN0IHsgZ2V0RG9jUHJlZmVyZW5jZXMsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG5cbiAgY29uc3QgW2NvbGxhcHNlZCwgc2V0Q29sbGFwc2VkXSA9IFJlYWN0LnVzZVN0YXRlPGJvb2xlYW4+KCgpID0+IHtcbiAgICBsZXQgaW5pdGlhbFN0YXRlID0gZmFsc2VcblxuICAgIGdldERvY1ByZWZlcmVuY2VzKCkudGhlbigoY3VycmVudERvY1ByZWZlcmVuY2VzKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50RmllbGRQcmVmZXJlbmNlcyA9IGN1cnJlbnREb2NQcmVmZXJlbmNlcz8uZmllbGRzW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGNvbnN0IGNvbGxhcHNlZE1hcDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSBjdXJyZW50RmllbGRQcmVmZXJlbmNlcz8uY29sbGFwc2VkXG5cbiAgICAgIGlmIChjb2xsYXBzZWRNYXAgJiYgY29sbGFwc2VkTWFwW2Zvcm1EYXRhLmlkXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldENvbGxhcHNlZChjb2xsYXBzZWRNYXBbZm9ybURhdGEuaWRdKVxuICAgICAgICBpbml0aWFsU3RhdGUgPSBjb2xsYXBzZWRNYXBbZm9ybURhdGEuaWRdXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gaW5pdGlhbFN0YXRlXG4gIH0pXG4gIGNvbnN0IGhhc1N1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuXG4gIGNvbnN0IFtlcnJvckNvdW50LCBzZXRFcnJvckNvdW50XSA9IFJlYWN0LnVzZVN0YXRlKDApXG5cbiAgY29uc3QgZmllbGRIYXNFcnJvcnMgPSBoYXNTdWJtaXR0ZWQgJiYgZXJyb3JDb3VudCA+IDBcblxuICBjb25zdCBjbGFzc05hbWVzID0gW1xuICAgIGAke2Jhc2VDbGFzc31fX3Jvd2AsXG4gICAgZmllbGRIYXNFcnJvcnMgPyBgJHtiYXNlQ2xhc3N9X19yb3ctLWhhcy1lcnJvcnNgIDogYCR7YmFzZUNsYXNzfV9fcm93LS1uby1lcnJvcnNgLFxuICBdXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5qb2luKCcgJylcblxuICBjb25zdCBvbkZvcm1DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZnVsbEZpZWxkc1dpdGhWYWx1ZXMsXG4gICAgICBuZXdGb3JtRGF0YSxcbiAgICB9OiB7XG4gICAgICBmdWxsRmllbGRzV2l0aFZhbHVlczogRm9ybVN0YXRlXG4gICAgICBuZXdGb3JtRGF0YTogRGF0YVxuICAgIH0pID0+IHtcbiAgICAgIG5ld0Zvcm1EYXRhID0ge1xuICAgICAgICAuLi5uZXdGb3JtRGF0YSxcbiAgICAgICAgaWQ6IGZvcm1EYXRhLmlkLFxuICAgICAgICBibG9ja05hbWU6IG5ld0Zvcm1EYXRhLmJsb2NrTmFtZTIsIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgc29sdXRpb24gZm9yIHRoaXMuIFdlIGhhdmUgdG8gd3JhcCBpdCBpbiBibG9ja05hbWUyIHdoZW4gdXNpbmcgaXQgaGVyZSwgYXMgYmxvY2tOYW1lIGRvZXMgbm90IGFjY2VwdCBvciBwcm92aWRlIGFueSB1cGRhdGVkIHZhbHVlcyBmb3Igc29tZSByZWFzb24uXG4gICAgICAgIGJsb2NrVHlwZTogZm9ybURhdGEuYmxvY2tUeXBlLFxuICAgICAgfVxuXG4gICAgICAvLyBSZWN1cnNpdmVseSByZW1vdmUgYWxsIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBldmVuIGJlaW5nIHByZXNlbnQgaW4gZm9ybURhdGEsIGFzIHRoZXkgd2lsbFxuICAgICAgLy8gY2F1c2UgaXNEZWVwRXF1YWwgdG8gcmV0dXJuIGZhbHNlIGlmLCBmb3IgZXhhbXBsZSwgZm9ybURhdGEgaGFzIGEga2V5IHRoYXQgZmllbGRzLmRhdGFcbiAgICAgIC8vIGRvZXMgbm90IGhhdmUsIGV2ZW4gaWYgaXQncyB1bmRlZmluZWQuXG4gICAgICAvLyBDdXJyZW50bHksIHRoaXMgaGFwcGVucyBpZiBhIGJsb2NrIGhhcyBhbm90aGVyIHN1Yi1ibG9ja3MgZmllbGQuIEluc2lkZSBmb3JtRGF0YSwgdGhhdCBzdWItYmxvY2tzIGZpZWxkIGhhcyBhbiB1bmRlZmluZWQgYmxvY2tOYW1lIHByb3BlcnR5LlxuICAgICAgLy8gSW5zaWRlIG9mIGZpZWxkcy5kYXRhIGhvd2V2ZXIsIHRoYXQgc3ViLWJsb2NrcyBibG9ja05hbWUgcHJvcGVydHkgZG9lcyBub3QgZXhpc3QgYXQgYWxsLlxuICAgICAgZnVuY3Rpb24gcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbFJlY3Vyc2l2ZWx5KG9iajogb2JqZWN0KSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKG9ialtrZXldICYmIHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShvYmpba2V5XSlcbiAgICAgICAgICB9IGVsc2UgaWYgKG9ialtrZXldID09PSB1bmRlZmluZWQgfHwgb2JqW2tleV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBvYmpba2V5XVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShuZXdGb3JtRGF0YSlcbiAgICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseShmb3JtRGF0YSlcblxuICAgICAgLy8gT25seSB1cGRhdGUgaWYgdGhlIGRhdGEgaGFzIGFjdHVhbGx5IGNoYW5nZWQuIE90aGVyd2lzZSwgd2UgbWF5IGJlIHRyaWdnZXJpbmcgYW4gdW5uZWNlc3NhcnkgdmFsdWUgY2hhbmdlLFxuICAgICAgLy8gd2hpY2ggd291bGQgdHJpZ2dlciB0aGUgXCJMZWF2ZSB3aXRob3V0IHNhdmluZ1wiIGRpYWxvZyB1bm5lY2Vzc2FyaWx5XG4gICAgICBpZiAoIWlzRGVlcEVxdWFsKGZvcm1EYXRhLCBuZXdGb3JtRGF0YSkpIHtcbiAgICAgICAgLy8gUnVubmluZyB0aGlzIGluIHRoZSBuZXh0IHRpY2sgaW4gdGhlIG1lYW50aW1lIGZpeGVzIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvaXNzdWVzLzQxMDhcbiAgICAgICAgLy8gSSBkb24ndCBrbm93IHdoeS4gV2hlbiB0aGlzIGlzIGNhbGxlZCBpbW1lZGlhdGVseSwgaXQgbWlnaHQgZm9jdXMgb3V0IG9mIGEgbmVzdGVkIGxleGljYWwgZWRpdG9yIGZpZWxkIGlmIGFuIHVwZGF0ZSBpcyBtYWRlIHRoZXJlLlxuICAgICAgICAvLyBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhlIG5lc3RlZCBlZGl0b3IgbWlnaHQgbm90IGhhdmUgZnVsbHkgZmluaXNoZWQgaXRzIHVwZGF0ZSBjeWNsZSB5ZXQuIEJ5IHVwZGF0aW5nIGluIHRoZSBuZXh0IHRpY2ssIHdlXG4gICAgICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBuZXN0ZWQgZWRpdG9yIGhhcyBmaW5pc2hlZCBpdHMgdXBkYXRlIGN5Y2xlIGJlZm9yZSB3ZSB1cGRhdGUgdGhlIGJsb2NrIG5vZGUuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZTogQmxvY2tOb2RlID0gJGdldE5vZGVCeUtleShub2RlS2V5KVxuICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgbm9kZS5zZXRGaWVsZHMobmV3Rm9ybURhdGEgYXMgQmxvY2tGaWVsZHMpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSwgMClcbiAgICAgIH1cblxuICAgICAgLy8gdXBkYXRlIGVycm9yIGNvdW50XG4gICAgICBpZiAoaGFzU3VibWl0dGVkKSB7XG4gICAgICAgIGxldCByb3dFcnJvckNvdW50ID0gMFxuICAgICAgICBmb3IgKGNvbnN0IGZvcm1GaWVsZCBvZiBPYmplY3QudmFsdWVzKGZ1bGxGaWVsZHNXaXRoVmFsdWVzKSkge1xuICAgICAgICAgIGlmIChmb3JtRmllbGQ/LnZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcm93RXJyb3JDb3VudCsrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNldEVycm9yQ291bnQocm93RXJyb3JDb3VudClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtlZGl0b3IsIG5vZGVLZXksIGhhc1N1Ym1pdHRlZCwgZm9ybURhdGFdLFxuICApXG5cbiAgY29uc3Qgb25Db2xsYXBzZWRDaGFuZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZ2V0RG9jUHJlZmVyZW5jZXMoKS50aGVuKChjdXJyZW50RG9jUHJlZmVyZW5jZXMpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWVsZFByZWZlcmVuY2VzID0gY3VycmVudERvY1ByZWZlcmVuY2VzPy5maWVsZHNbZmllbGQubmFtZV1cblxuICAgICAgY29uc3QgY29sbGFwc2VkTWFwOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IGN1cnJlbnRGaWVsZFByZWZlcmVuY2VzPy5jb2xsYXBzZWRcblxuICAgICAgY29uc3QgbmV3Q29sbGFwc2VkOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9XG4gICAgICAgIGNvbGxhcHNlZE1hcCAmJiBjb2xsYXBzZWRNYXA/LnNpemUgPyBjb2xsYXBzZWRNYXAgOiB7fVxuXG4gICAgICBuZXdDb2xsYXBzZWRbZm9ybURhdGEuaWRdID0gIWNvbGxhcHNlZFxuXG4gICAgICBzZXREb2NGaWVsZFByZWZlcmVuY2VzKGZpZWxkLm5hbWUsIHtcbiAgICAgICAgY29sbGFwc2VkOiBuZXdDb2xsYXBzZWQsXG4gICAgICB9KVxuICAgIH0pXG4gIH0sIFtjb2xsYXBzZWQsIGdldERvY1ByZWZlcmVuY2VzLCBmaWVsZC5uYW1lLCBzZXREb2NGaWVsZFByZWZlcmVuY2VzLCBmb3JtRGF0YS5pZF0pXG5cbiAgY29uc3QgcmVtb3ZlQmxvY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAkZ2V0Tm9kZUJ5S2V5KG5vZGVLZXkpLnJlbW92ZSgpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgbm9kZUtleV0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8Q29sbGFwc2libGVcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzfVxuICAgICAgICBjb2xsYXBzZWQ9e2NvbGxhcHNlZH1cbiAgICAgICAgY29sbGFwc2libGVTdHlsZT17ZmllbGRIYXNFcnJvcnMgPyAnZXJyb3InIDogJ2RlZmF1bHQnfVxuICAgICAgICBoZWFkZXI9e1xuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ibG9jay1oZWFkZXJgfT5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxQaWxsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ibG9jay1waWxsICR7YmFzZUNsYXNzfV9fYmxvY2stcGlsbC0ke2Zvcm1EYXRhPy5ibG9ja1R5cGV9YH1cbiAgICAgICAgICAgICAgICBwaWxsU3R5bGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dHlwZW9mIGxhYmVscy5zaW5ndWxhciA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gZ2V0VHJhbnNsYXRpb24obGFiZWxzLnNpbmd1bGFyLCBpMThuKVxuICAgICAgICAgICAgICAgICAgOiAnW1Npbmd1bGFyIExhYmVsXSd9XG4gICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICAgPFNlY3Rpb25UaXRsZSBwYXRoPVwiYmxvY2tOYW1lMlwiIHJlYWRPbmx5PXtmaWVsZD8ucmVhZE9ubHl9IC8+XG4gICAgICAgICAgICAgIHtmaWVsZEhhc0Vycm9ycyAmJiA8RXJyb3JQaWxsIGNvdW50PXtlcnJvckNvdW50fSBpMThuPXtpMThufSB3aXRoTWVzc2FnZSAvPn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2VkaXRvci5pc0VkaXRhYmxlKCkgJiYgKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJpY29uLWxhYmVsXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3JlbW92ZUJ1dHRvbmB9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpZWxkPy5yZWFkT25seX1cbiAgICAgICAgICAgICAgICBpY29uPVwieFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgcmVtb3ZlQmxvY2soKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcm91bmRcbiAgICAgICAgICAgICAgICB0b29sdGlwPVwiUmVtb3ZlIEJsb2NrXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAga2V5PXswfVxuICAgICAgICBvblRvZ2dsZT17KGNvbGxhcHNlZCkgPT4ge1xuICAgICAgICAgIHNldENvbGxhcHNlZChjb2xsYXBzZWQpXG4gICAgICAgICAgb25Db2xsYXBzZWRDaGFuZ2UoKVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8UmVuZGVyRmllbGRzXG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19maWVsZHNgfVxuICAgICAgICAgIGZpZWxkTWFwPXtBcnJheS5pc0FycmF5KGZvcm1TY2hlbWEpID8gZm9ybVNjaGVtYSA6IFtdfVxuICAgICAgICAgIGZvcmNlUmVuZGVyXG4gICAgICAgICAgbWFyZ2lucz1cInNtYWxsXCJcbiAgICAgICAgLz5cbiAgICAgIDwvQ29sbGFwc2libGU+XG5cbiAgICAgIDxGb3JtU2F2ZVBsdWdpbiBvbkNoYW5nZT17b25Gb3JtQ2hhbmdlfSAvPlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiZ2V0VHJhbnNsYXRpb24iLCJSZW5kZXJGaWVsZHMiLCJCdXR0b24iLCJDb2xsYXBzaWJsZSIsIkVycm9yUGlsbCIsIlBpbGwiLCJTZWN0aW9uVGl0bGUiLCJ1c2VEb2N1bWVudEluZm8iLCJ1c2VGb3JtU3VibWl0dGVkIiwidXNlVHJhbnNsYXRpb24iLCJpc0RlZXBFcXVhbCIsIiRnZXROb2RlQnlLZXkiLCJSZWFjdCIsInVzZUNhbGxiYWNrIiwiRm9ybVNhdmVQbHVnaW4iLCJCbG9ja0NvbnRlbnQiLCJwcm9wcyIsImJhc2VDbGFzcyIsImZpZWxkIiwiZm9ybURhdGEiLCJmb3JtU2NoZW1hIiwibm9kZUtleSIsInJlZHVjZWRCbG9jayIsImxhYmVscyIsImkxOG4iLCJlZGl0b3IiLCJnZXREb2NQcmVmZXJlbmNlcyIsInNldERvY0ZpZWxkUHJlZmVyZW5jZXMiLCJjb2xsYXBzZWQiLCJzZXRDb2xsYXBzZWQiLCJ1c2VTdGF0ZSIsImluaXRpYWxTdGF0ZSIsInRoZW4iLCJjdXJyZW50RG9jUHJlZmVyZW5jZXMiLCJjdXJyZW50RmllbGRQcmVmZXJlbmNlcyIsImZpZWxkcyIsIm5hbWUiLCJjb2xsYXBzZWRNYXAiLCJpZCIsInVuZGVmaW5lZCIsImhhc1N1Ym1pdHRlZCIsImVycm9yQ291bnQiLCJzZXRFcnJvckNvdW50IiwiZmllbGRIYXNFcnJvcnMiLCJjbGFzc05hbWVzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJvbkZvcm1DaGFuZ2UiLCJmdWxsRmllbGRzV2l0aFZhbHVlcyIsIm5ld0Zvcm1EYXRhIiwiYmxvY2tOYW1lIiwiYmxvY2tOYW1lMiIsImJsb2NrVHlwZSIsInJlbW92ZVVuZGVmaW5lZEFuZE51bGxSZWN1cnNpdmVseSIsIm9iaiIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5Iiwic2V0VGltZW91dCIsInVwZGF0ZSIsIm5vZGUiLCJzZXRGaWVsZHMiLCJyb3dFcnJvckNvdW50IiwiZm9ybUZpZWxkIiwidmFsdWVzIiwidmFsaWQiLCJvbkNvbGxhcHNlZENoYW5nZSIsIm5ld0NvbGxhcHNlZCIsInNpemUiLCJyZW1vdmVCbG9jayIsInJlbW92ZSIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwiY29sbGFwc2libGVTdHlsZSIsImhlYWRlciIsImRpdiIsInBpbGxTdHlsZSIsInNpbmd1bGFyIiwicGF0aCIsInJlYWRPbmx5IiwiY291bnQiLCJ3aXRoTWVzc2FnZSIsImlzRWRpdGFibGUiLCJidXR0b25TdHlsZSIsImRpc2FibGVkIiwiaWNvbiIsIm9uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJyb3VuZCIsInRvb2x0aXAiLCJvblRvZ2dsZSIsImZpZWxkTWFwIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9yY2VSZW5kZXIiLCJtYXJnaW5zIiwib25DaGFuZ2UiXSwibWFwcGluZ3MiOiJBQU1BLFNBQVNBLHlCQUF5QixRQUFRLHdDQUF1QztBQUNqRixTQUFTQyxjQUFjLFFBQVEsMkJBQTBCO0FBQ3pELFNBQVNDLFlBQVksUUFBUSxpQkFBZ0I7QUFDN0MsU0FDRUMsTUFBTSxFQUNOQyxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsSUFBSSxFQUNKQyxZQUFZLEVBQ1pD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
|