@payloadcms/richtext-lexical 0.7.0 → 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/README.md +1 -3
- package/components.d.ts +1 -1
- package/components.js +6 -33
- package/dist/cell/index.d.ts +4 -4
- package/dist/cell/index.d.ts.map +1 -1
- package/dist/cell/index.js +98 -79
- package/dist/exports/components.d.ts +1 -1
- package/dist/exports/components.d.ts.map +1 -1
- package/dist/exports/components.js +6 -33
- package/dist/field/Field.d.ts +8 -3
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +26 -98
- package/dist/field/features/align/feature.client.d.ts +3 -0
- package/dist/field/features/align/feature.client.d.ts.map +1 -0
- package/dist/field/features/align/feature.client.js +71 -0
- package/dist/field/features/align/feature.server.d.ts +3 -0
- package/dist/field/features/align/feature.server.d.ts.map +1 -0
- package/dist/field/features/align/feature.server.js +16 -0
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +1 -1
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +6 -57
- package/dist/field/features/blockquote/feature.client.d.ts +3 -0
- package/dist/field/features/blockquote/feature.client.d.ts.map +1 -0
- package/dist/field/features/blockquote/feature.client.js +67 -0
- package/dist/field/features/blockquote/feature.server.d.ts +3 -0
- package/dist/field/features/blockquote/feature.server.d.ts.map +1 -0
- package/dist/field/features/blockquote/feature.server.js +46 -0
- package/dist/field/features/blockquote/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/blockquote/markdownTransformer.js +40 -0
- package/dist/field/features/blocks/component/BlockContent.d.ts +25 -0
- package/dist/field/features/blocks/component/BlockContent.d.ts.map +1 -0
- package/dist/field/features/blocks/component/BlockContent.js +163 -0
- package/dist/field/features/blocks/component/FormSavePlugin.d.ts +12 -0
- package/dist/field/features/blocks/component/FormSavePlugin.d.ts.map +1 -0
- package/dist/field/features/blocks/component/FormSavePlugin.js +24 -0
- package/dist/field/features/blocks/component/index.d.ts +16 -0
- package/dist/field/features/blocks/component/index.d.ts.map +1 -0
- package/dist/field/features/blocks/component/index.js +121 -0
- package/dist/field/features/blocks/component/index.scss +153 -0
- package/dist/field/features/blocks/drawer/index.d.ts.map +1 -0
- package/dist/field/features/blocks/drawer/index.js +78 -0
- package/dist/field/features/blocks/feature.client.d.ts +7 -0
- package/dist/field/features/blocks/feature.client.d.ts.map +1 -0
- package/dist/field/features/blocks/feature.client.js +61 -0
- package/dist/field/features/blocks/feature.server.d.ts +8 -0
- package/dist/field/features/blocks/feature.server.d.ts.map +1 -0
- package/dist/field/features/blocks/feature.server.js +86 -0
- package/dist/field/features/blocks/nodes/BlocksNode.d.ts.map +1 -0
- package/dist/field/features/blocks/nodes/BlocksNode.js +91 -0
- package/dist/field/features/blocks/plugin/commands.d.ts.map +1 -0
- package/dist/field/features/blocks/plugin/commands.js +4 -0
- package/dist/field/features/blocks/plugin/index.d.ts +5 -0
- package/dist/field/features/blocks/plugin/index.d.ts.map +1 -0
- package/dist/field/features/blocks/plugin/index.js +40 -0
- package/dist/field/features/blocks/populationPromise.d.ts +5 -0
- package/dist/field/features/blocks/populationPromise.d.ts.map +1 -0
- package/dist/field/features/blocks/populationPromise.js +45 -0
- package/dist/field/features/blocks/validate.d.ts +5 -0
- package/dist/field/features/blocks/validate.d.ts.map +1 -0
- package/dist/field/features/blocks/validate.js +49 -0
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +4 -14
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +1 -1
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +6 -57
- package/dist/field/features/converters/html/converter/converters/linebreak.js +2 -12
- package/dist/field/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/converters/paragraph.js +7 -16
- 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.d.ts +11 -2
- package/dist/field/features/converters/html/converter/index.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/index.js +9 -24
- package/dist/field/features/converters/html/converter/types.d.ts +6 -1
- package/dist/field/features/converters/html/converter/types.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/types.js +2 -5
- package/dist/field/features/converters/html/feature.server.d.ts +9 -0
- package/dist/field/features/converters/html/feature.server.d.ts.map +1 -0
- package/dist/field/features/converters/html/feature.server.js +14 -0
- package/dist/field/features/converters/html/field/index.d.ts +2 -2
- package/dist/field/features/converters/html/field/index.d.ts.map +1 -1
- package/dist/field/features/converters/html/field/index.js +18 -31
- package/dist/field/features/createClientComponent.d.ts +7 -0
- package/dist/field/features/createClientComponent.d.ts.map +1 -0
- package/dist/field/features/createClientComponent.js +12 -0
- package/dist/field/features/createFeaturePropComponent.d.ts +6 -0
- package/dist/field/features/createFeaturePropComponent.d.ts.map +1 -0
- package/dist/field/features/createFeaturePropComponent.js +14 -0
- package/dist/field/features/debug/testrecorder/feature.client.d.ts +3 -0
- package/dist/field/features/debug/testrecorder/feature.client.d.ts.map +1 -0
- package/dist/field/features/debug/testrecorder/feature.client.js +20 -0
- package/dist/field/features/debug/testrecorder/feature.server.d.ts +3 -0
- package/dist/field/features/debug/testrecorder/feature.server.d.ts.map +1 -0
- package/dist/field/features/debug/testrecorder/feature.server.js +15 -0
- package/dist/field/features/debug/testrecorder/plugin/index.d.ts.map +1 -0
- package/dist/field/features/debug/testrecorder/plugin/index.js +446 -0
- package/dist/field/features/debug/testrecorder/plugin/index.scss +49 -0
- package/dist/field/features/debug/treeview/feature.client.d.ts +3 -0
- package/dist/field/features/debug/treeview/feature.client.d.ts.map +1 -0
- package/dist/field/features/debug/treeview/feature.client.js +20 -0
- package/dist/field/features/debug/treeview/feature.server.d.ts +3 -0
- package/dist/field/features/debug/treeview/feature.server.d.ts.map +1 -0
- package/dist/field/features/debug/treeview/feature.server.js +15 -0
- package/dist/field/features/debug/treeview/plugin/index.d.ts +4 -0
- package/dist/field/features/debug/treeview/plugin/index.d.ts.map +1 -0
- package/dist/field/features/debug/treeview/plugin/index.js +19 -0
- package/dist/field/features/format/bold/feature.client.d.ts +3 -0
- package/dist/field/features/format/bold/feature.client.d.ts.map +1 -0
- package/dist/field/features/format/bold/feature.client.js +47 -0
- package/dist/field/features/format/bold/feature.server.d.ts +3 -0
- package/dist/field/features/format/bold/feature.server.d.ts.map +1 -0
- package/dist/field/features/format/bold/feature.server.js +27 -0
- package/dist/field/features/format/bold/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/bold/markdownTransformers.js +34 -0
- package/dist/field/features/format/common/floatingSelectToolbarSection.js +4 -14
- package/dist/field/features/format/inlinecode/feature.client.d.ts +3 -0
- package/dist/field/features/format/inlinecode/feature.client.d.ts.map +1 -0
- package/dist/field/features/format/inlinecode/feature.client.js +42 -0
- package/dist/field/features/format/inlinecode/feature.server.d.ts +3 -0
- package/dist/field/features/format/inlinecode/feature.server.d.ts.map +1 -0
- package/dist/field/features/format/inlinecode/feature.server.js +19 -0
- package/dist/field/features/format/inlinecode/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/inlinecode/markdownTransformers.js +9 -0
- package/dist/field/features/format/italic/feature.client.d.ts +3 -0
- package/dist/field/features/format/italic/feature.client.d.ts.map +1 -0
- package/dist/field/features/format/italic/feature.client.js +43 -0
- package/dist/field/features/format/italic/feature.server.d.ts +3 -0
- package/dist/field/features/format/italic/feature.server.d.ts.map +1 -0
- package/dist/field/features/format/italic/feature.server.js +20 -0
- package/dist/field/features/format/italic/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/italic/markdownTransformers.js +17 -0
- package/dist/field/features/format/strikethrough/feature.client.d.ts +3 -0
- package/dist/field/features/format/strikethrough/feature.client.d.ts.map +1 -0
- package/dist/field/features/format/strikethrough/feature.client.js +42 -0
- package/dist/field/features/format/strikethrough/feature.server.d.ts +3 -0
- package/dist/field/features/format/strikethrough/feature.server.d.ts.map +1 -0
- package/dist/field/features/format/strikethrough/feature.server.js +19 -0
- package/dist/field/features/format/strikethrough/markdownTransformers.js +4 -14
- package/dist/field/features/format/subscript/feature.client.d.ts +3 -0
- package/dist/field/features/format/subscript/feature.client.d.ts.map +1 -0
- package/dist/field/features/format/subscript/feature.client.js +38 -0
- package/dist/field/features/format/subscript/feature.server.d.ts +3 -0
- package/dist/field/features/format/subscript/feature.server.d.ts.map +1 -0
- package/dist/field/features/format/subscript/feature.server.js +15 -0
- package/dist/field/features/format/superscript/feature.client.d.ts +3 -0
- package/dist/field/features/format/superscript/feature.client.d.ts.map +1 -0
- package/dist/field/features/format/superscript/feature.client.js +38 -0
- package/dist/field/features/format/superscript/feature.server.d.ts +3 -0
- package/dist/field/features/format/superscript/feature.server.d.ts.map +1 -0
- package/dist/field/features/format/superscript/feature.server.js +15 -0
- package/dist/field/features/format/underline/feature.client.d.ts +3 -0
- package/dist/field/features/format/underline/feature.client.d.ts.map +1 -0
- package/dist/field/features/format/underline/feature.client.js +38 -0
- package/dist/field/features/format/underline/feature.server.d.ts +3 -0
- package/dist/field/features/format/underline/feature.server.d.ts.map +1 -0
- package/dist/field/features/format/underline/feature.server.js +15 -0
- package/dist/field/features/heading/feature.client.d.ts +4 -0
- package/dist/field/features/heading/feature.client.d.ts.map +1 -0
- package/dist/field/features/heading/feature.client.js +95 -0
- package/dist/field/features/heading/feature.server.d.ts +7 -0
- package/dist/field/features/heading/feature.server.d.ts.map +1 -0
- package/dist/field/features/heading/feature.server.js +57 -0
- package/dist/field/features/heading/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/heading/markdownTransformer.js +29 -0
- package/dist/field/features/indent/feature.client.d.ts +3 -0
- package/dist/field/features/indent/feature.client.d.ts.map +1 -0
- package/dist/field/features/indent/feature.client.js +57 -0
- package/dist/field/features/indent/feature.server.d.ts +3 -0
- package/dist/field/features/indent/feature.server.d.ts.map +1 -0
- package/dist/field/features/indent/feature.server.js +16 -0
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +4 -14
- package/dist/field/features/link/drawer/baseFields.d.ts.map +1 -0
- package/dist/field/features/link/drawer/baseFields.js +118 -0
- package/dist/field/features/link/drawer/index.d.ts.map +1 -0
- package/dist/field/features/link/drawer/index.js +83 -0
- package/dist/field/features/link/drawer/index.scss +50 -0
- package/dist/field/features/link/drawer/types.d.ts +8 -0
- package/dist/field/features/link/drawer/types.d.ts.map +1 -0
- package/dist/field/features/link/drawer/types.js +3 -0
- package/dist/field/features/link/feature.client.d.ts +5 -0
- package/dist/field/features/link/feature.client.d.ts.map +1 -0
- package/dist/field/features/link/feature.client.js +88 -0
- package/dist/field/features/link/feature.server.d.ts +33 -0
- package/dist/field/features/link/feature.server.d.ts.map +1 -0
- package/dist/field/features/link/feature.server.js +98 -0
- package/dist/field/features/link/nodes/AutoLinkNode.d.ts +16 -0
- package/dist/field/features/link/nodes/AutoLinkNode.d.ts.map +1 -0
- package/dist/field/features/link/nodes/AutoLinkNode.js +60 -0
- package/dist/field/features/link/nodes/LinkNode.d.ts +35 -0
- package/dist/field/features/link/nodes/LinkNode.d.ts.map +1 -0
- package/dist/field/features/link/nodes/LinkNode.js +299 -0
- package/dist/field/features/link/nodes/types.d.ts +19 -0
- package/dist/field/features/link/nodes/types.d.ts.map +1 -0
- package/dist/field/features/link/nodes/types.js +3 -0
- package/dist/field/features/link/plugins/autoLink/index.d.ts +19 -0
- package/dist/field/features/link/plugins/autoLink/index.d.ts.map +1 -0
- package/dist/field/features/link/plugins/autoLink/index.js +318 -0
- package/dist/field/features/link/plugins/clickableLink/index.d.ts.map +1 -0
- package/dist/field/features/link/plugins/clickableLink/index.js +8 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +4 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.d.ts +5 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +243 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/index.d.ts +6 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/index.d.ts.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/index.js +13 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/index.scss +78 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/types.d.ts +13 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/types.d.ts.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/types.js +6 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.d.ts +12 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.d.ts.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +37 -0
- package/dist/field/features/link/plugins/link/index.d.ts.map +1 -0
- package/dist/field/features/link/plugins/link/index.js +59 -0
- package/dist/field/features/link/populationPromise.d.ts +5 -0
- package/dist/field/features/link/populationPromise.d.ts.map +1 -0
- package/dist/field/features/link/populationPromise.js +46 -0
- package/dist/field/features/lists/checklist/feature.client.d.ts +3 -0
- package/dist/field/features/lists/checklist/feature.client.d.ts.map +1 -0
- package/dist/field/features/lists/checklist/feature.client.js +81 -0
- package/dist/field/features/lists/checklist/feature.server.d.ts +3 -0
- package/dist/field/features/lists/checklist/feature.server.d.ts.map +1 -0
- package/dist/field/features/lists/checklist/feature.server.js +35 -0
- package/dist/field/features/lists/checklist/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/lists/checklist/markdownTransformers.js +16 -0
- package/dist/field/features/lists/checklist/plugin/index.d.ts.map +1 -0
- package/dist/field/features/lists/checklist/plugin/index.js +8 -0
- package/dist/field/features/lists/common/markdown.js +10 -28
- package/dist/field/features/lists/htmlConverter.d.ts.map +1 -1
- package/dist/field/features/lists/htmlConverter.js +15 -31
- package/dist/field/features/lists/orderedlist/feature.client.d.ts +3 -0
- package/dist/field/features/lists/orderedlist/feature.client.d.ts.map +1 -0
- package/dist/field/features/lists/orderedlist/feature.client.js +71 -0
- package/dist/field/features/lists/orderedlist/feature.server.d.ts +3 -0
- package/dist/field/features/lists/orderedlist/feature.server.d.ts.map +1 -0
- package/dist/field/features/lists/orderedlist/feature.server.js +35 -0
- package/dist/field/features/lists/orderedlist/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/lists/orderedlist/markdownTransformer.js +16 -0
- package/dist/field/features/lists/plugin/index.js +5 -20
- package/dist/field/features/lists/unorderedlist/feature.client.d.ts +3 -0
- package/dist/field/features/lists/unorderedlist/feature.client.d.ts.map +1 -0
- package/dist/field/features/lists/unorderedlist/feature.client.js +71 -0
- package/dist/field/features/lists/unorderedlist/feature.server.d.ts +3 -0
- package/dist/field/features/lists/unorderedlist/feature.server.d.ts.map +1 -0
- package/dist/field/features/lists/unorderedlist/feature.server.js +35 -0
- package/dist/field/features/lists/unorderedlist/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js +16 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.d.ts +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +20 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +8 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.d.ts +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +31 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +8 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.d.ts +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +22 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +8 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.d.ts +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +22 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +8 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.d.ts +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +20 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +8 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.d.ts +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +26 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +8 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.d.ts +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +6 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +25 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +8 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +18 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.d.ts +17 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +63 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.d.ts +31 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.d.ts +3 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +34 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.d.ts +9 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +47 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +8 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +69 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +14 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +23 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +29 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +35 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +30 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +25 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +26 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +18 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +27 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +26 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.d.ts +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +6 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +21 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +8 -0
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +24 -0
- package/dist/field/features/migrations/slateToLexical/converter/index.d.ts +19 -0
- package/dist/field/features/migrations/slateToLexical/converter/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/index.js +107 -0
- package/dist/field/features/migrations/slateToLexical/converter/types.d.ts +25 -0
- package/dist/field/features/migrations/slateToLexical/converter/types.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/types.js +3 -0
- package/dist/field/features/migrations/slateToLexical/feature.client.d.ts +3 -0
- package/dist/field/features/migrations/slateToLexical/feature.client.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/feature.client.js +34 -0
- package/dist/field/features/migrations/slateToLexical/feature.server.d.ts +9 -0
- package/dist/field/features/migrations/slateToLexical/feature.server.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/feature.server.js +47 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +8 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +69 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +14 -0
- package/dist/field/features/paragraph/feature.client.d.ts +3 -0
- package/dist/field/features/paragraph/feature.client.d.ts.map +1 -0
- package/dist/field/features/paragraph/feature.client.js +63 -0
- package/dist/field/features/paragraph/feature.server.d.ts +3 -0
- package/dist/field/features/paragraph/feature.server.d.ts.map +1 -0
- package/dist/field/features/paragraph/feature.server.js +16 -0
- package/dist/field/features/relationship/drawer/commands.d.ts.map +1 -0
- package/dist/field/features/relationship/drawer/commands.js +4 -0
- package/dist/field/features/relationship/drawer/index.d.ts.map +1 -0
- package/dist/field/features/relationship/drawer/index.js +79 -0
- package/dist/field/features/relationship/feature.client.d.ts +4 -0
- package/dist/field/features/relationship/feature.client.d.ts.map +1 -0
- package/dist/field/features/relationship/feature.client.js +56 -0
- package/dist/field/features/relationship/feature.server.d.ts +18 -0
- package/dist/field/features/relationship/feature.server.d.ts.map +1 -0
- package/dist/field/features/relationship/feature.server.js +26 -0
- package/dist/field/features/relationship/nodes/RelationshipNode.d.ts.map +1 -0
- package/dist/field/features/relationship/nodes/RelationshipNode.js +110 -0
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts.map +1 -0
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +103 -0
- package/dist/field/features/relationship/nodes/components/index.scss +97 -0
- package/dist/field/features/relationship/plugins/index.d.ts +7 -0
- package/dist/field/features/relationship/plugins/index.d.ts.map +1 -0
- package/dist/field/features/relationship/plugins/index.js +49 -0
- package/dist/field/features/relationship/populationPromise.d.ts.map +1 -0
- package/dist/field/features/relationship/populationPromise.js +24 -0
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.d.ts.map +1 -0
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +33 -0
- package/dist/field/features/types.d.ts +139 -70
- package/dist/field/features/types.d.ts.map +1 -1
- package/dist/field/features/types.js +2 -5
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -0
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +110 -0
- package/dist/field/features/upload/component/index.d.ts.map +1 -0
- package/dist/field/features/upload/component/index.js +135 -0
- package/dist/field/features/upload/component/index.scss +152 -0
- package/dist/field/features/upload/drawer/commands.d.ts.map +1 -0
- package/dist/field/features/upload/drawer/commands.js +5 -0
- package/dist/field/features/upload/drawer/index.d.ts.map +1 -0
- package/dist/field/features/upload/drawer/index.js +76 -0
- package/dist/field/features/upload/feature.client.d.ts +10 -0
- package/dist/field/features/upload/feature.client.d.ts.map +1 -0
- package/dist/field/features/upload/feature.client.js +55 -0
- package/dist/field/features/upload/feature.server.d.ts +12 -0
- package/dist/field/features/upload/feature.server.d.ts.map +1 -0
- package/dist/field/features/upload/feature.server.js +103 -0
- package/dist/field/features/upload/nodes/UploadNode.d.ts +47 -0
- package/dist/field/features/upload/nodes/UploadNode.d.ts.map +1 -0
- package/dist/field/features/upload/nodes/UploadNode.js +98 -0
- package/dist/field/features/upload/plugin/index.d.ts.map +1 -0
- package/dist/field/features/upload/plugin/index.js +52 -0
- package/dist/field/features/upload/populationPromise.d.ts +5 -0
- package/dist/field/features/upload/populationPromise.d.ts.map +1 -0
- package/dist/field/features/upload/populationPromise.js +46 -0
- package/dist/field/features/upload/validate.d.ts.map +1 -0
- package/dist/field/features/upload/validate.js +19 -0
- package/dist/field/index.d.ts +7 -2
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +78 -57
- package/dist/field/index.scss +2 -2
- package/dist/field/lexical/EditorPlugin.d.ts.map +1 -1
- package/dist/field/lexical/EditorPlugin.js +6 -65
- package/dist/field/lexical/LexicalEditor.js +39 -94
- package/dist/field/lexical/LexicalEditor.scss +1 -3
- package/dist/field/lexical/LexicalProvider.d.ts +8 -4
- package/dist/field/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/field/lexical/LexicalProvider.js +30 -83
- package/dist/field/lexical/config/client/EditorConfigProvider.d.ts +24 -0
- package/dist/field/lexical/config/client/EditorConfigProvider.d.ts.map +1 -0
- package/dist/field/lexical/config/client/EditorConfigProvider.js +41 -0
- package/dist/field/lexical/config/client/default.d.ts +3 -0
- package/dist/field/lexical/config/client/default.d.ts.map +1 -0
- package/dist/field/lexical/config/client/default.js +8 -0
- package/dist/field/lexical/config/client/loader.d.ts +11 -0
- package/dist/field/lexical/config/client/loader.d.ts.map +1 -0
- package/dist/field/lexical/config/client/loader.js +46 -0
- package/dist/field/lexical/config/client/sanitize.d.ts +6 -0
- package/dist/field/lexical/config/client/sanitize.d.ts.map +1 -0
- package/dist/field/lexical/config/client/sanitize.js +126 -0
- package/dist/field/lexical/config/server/default.d.ts +8 -0
- package/dist/field/lexical/config/server/default.d.ts.map +1 -0
- package/dist/field/lexical/config/server/default.js +51 -0
- package/dist/field/lexical/config/server/loader.d.ts +7 -0
- package/dist/field/lexical/config/server/loader.d.ts.map +1 -0
- package/dist/field/lexical/config/server/loader.js +118 -0
- package/dist/field/lexical/config/server/sanitize.d.ts +5 -0
- package/dist/field/lexical/config/server/sanitize.d.ts.map +1 -0
- package/dist/field/lexical/config/server/sanitize.js +65 -0
- package/dist/field/lexical/config/types.d.ts +18 -9
- package/dist/field/lexical/config/types.d.ts.map +1 -1
- package/dist/field/lexical/config/types.js +2 -5
- package/dist/field/lexical/nodes/index.d.ts +2 -2
- package/dist/field/lexical/nodes/index.d.ts.map +1 -1
- package/dist/field/lexical/nodes/index.js +8 -13
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +19 -70
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.scss +0 -2
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts +3 -3
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +40 -98
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +12 -85
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.scss +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +57 -127
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.scss +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts +4 -4
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts.map +1 -1
- 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.d.ts +2 -2
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +32 -104
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +6 -6
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +3 -21
- package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/index.js +27 -84
- package/dist/field/lexical/plugins/SlashMenu/index.scss +1 -1
- 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/AddBlockHandlePlugin/index.scss +0 -2
- 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/index.scss +0 -2
- 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/theme/EditorTheme.scss +0 -2
- 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.d.ts +6 -0
- package/dist/generateComponentMap.d.ts.map +1 -0
- package/dist/generateComponentMap.js +77 -0
- package/dist/generateSchemaMap.d.ts +6 -0
- package/dist/generateSchemaMap.d.ts.map +1 -0
- package/dist/generateSchemaMap.js +27 -0
- package/dist/index.d.ts +59 -56
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +130 -488
- package/dist/populate/defaultValue.js +8 -26
- package/dist/populate/populate.js +2 -12
- package/dist/populate/recurseNestedFields.d.ts.map +1 -1
- package/dist/populate/recurseNestedFields.js +6 -14
- package/dist/populate/richTextRelationshipPromise.js +4 -22
- package/dist/scss/app.scss +209 -0
- package/dist/scss/colors.scss +269 -0
- package/dist/scss/custom.css +1 -0
- package/dist/scss/fonts.scss +75 -0
- package/dist/scss/queries.scss +27 -0
- package/dist/scss/resets.scss +17 -0
- package/dist/scss/styles.scss +11 -0
- package/dist/scss/svg.scss +10 -0
- package/dist/scss/toastify.scss +58 -0
- package/dist/scss/type.scss +117 -0
- package/dist/scss/vars.scss +220 -0
- package/dist/scss/z-index.scss +9 -0
- package/dist/types.d.ts +8 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -5
- package/dist/useLexicalFeature.d.ts +3 -0
- package/dist/useLexicalFeature.d.ts.map +1 -0
- package/dist/useLexicalFeature.js +9 -0
- package/dist/validate/index.d.ts +4 -4
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +7 -18
- package/dist/validate/validateNodes.d.ts +2 -4
- package/dist/validate/validateNodes.d.ts.map +1 -1
- package/dist/validate/validateNodes.js +2 -14
- package/package.json +13 -7
- package/dist/field/features/BlockQuote/index.d.ts +0 -3
- package/dist/field/features/BlockQuote/index.d.ts.map +0 -1
- package/dist/field/features/BlockQuote/index.js +0 -140
- package/dist/field/features/BlockQuote/markdownTransformer.d.ts.map +0 -1
- package/dist/field/features/BlockQuote/markdownTransformer.js +0 -50
- package/dist/field/features/Blocks/component/BlockContent.d.ts +0 -20
- package/dist/field/features/Blocks/component/BlockContent.d.ts.map +0 -1
- package/dist/field/features/Blocks/component/BlockContent.js +0 -220
- package/dist/field/features/Blocks/component/FormSavePlugin.d.ts +0 -11
- package/dist/field/features/Blocks/component/FormSavePlugin.d.ts.map +0 -1
- package/dist/field/features/Blocks/component/FormSavePlugin.js +0 -34
- package/dist/field/features/Blocks/component/index.d.ts +0 -15
- package/dist/field/features/Blocks/component/index.d.ts.map +0 -1
- package/dist/field/features/Blocks/component/index.js +0 -150
- package/dist/field/features/Blocks/component/index.scss +0 -153
- package/dist/field/features/Blocks/drawer/index.d.ts.map +0 -1
- package/dist/field/features/Blocks/drawer/index.js +0 -140
- package/dist/field/features/Blocks/index.d.ts +0 -7
- package/dist/field/features/Blocks/index.d.ts.map +0 -1
- package/dist/field/features/Blocks/index.js +0 -147
- package/dist/field/features/Blocks/nodes/BlocksNode.d.ts.map +0 -1
- package/dist/field/features/Blocks/nodes/BlocksNode.js +0 -173
- package/dist/field/features/Blocks/plugin/commands.d.ts.map +0 -1
- package/dist/field/features/Blocks/plugin/commands.js +0 -14
- package/dist/field/features/Blocks/plugin/index.d.ts +0 -5
- package/dist/field/features/Blocks/plugin/index.d.ts.map +0 -1
- package/dist/field/features/Blocks/plugin/index.js +0 -91
- package/dist/field/features/Blocks/populationPromise.d.ts +0 -5
- package/dist/field/features/Blocks/populationPromise.d.ts.map +0 -1
- package/dist/field/features/Blocks/populationPromise.js +0 -55
- package/dist/field/features/Blocks/utils/transformInputFormData.d.ts +0 -11
- package/dist/field/features/Blocks/utils/transformInputFormData.d.ts.map +0 -1
- package/dist/field/features/Blocks/utils/transformInputFormData.js +0 -35
- package/dist/field/features/Blocks/utils/transformInputFormSchema.d.ts +0 -3
- package/dist/field/features/Blocks/utils/transformInputFormSchema.d.ts.map +0 -1
- package/dist/field/features/Blocks/utils/transformInputFormSchema.js +0 -43
- package/dist/field/features/Blocks/validate.d.ts +0 -5
- package/dist/field/features/Blocks/validate.d.ts.map +0 -1
- package/dist/field/features/Blocks/validate.js +0 -62
- package/dist/field/features/Heading/index.d.ts +0 -8
- package/dist/field/features/Heading/index.d.ts.map +0 -1
- package/dist/field/features/Heading/index.js +0 -164
- package/dist/field/features/Heading/markdownTransformer.d.ts.map +0 -1
- package/dist/field/features/Heading/markdownTransformer.js +0 -39
- package/dist/field/features/Link/drawer/baseFields.d.ts.map +0 -1
- package/dist/field/features/Link/drawer/baseFields.js +0 -128
- package/dist/field/features/Link/drawer/index.d.ts.map +0 -1
- package/dist/field/features/Link/drawer/index.js +0 -40
- package/dist/field/features/Link/drawer/index.scss +0 -50
- package/dist/field/features/Link/drawer/types.d.ts +0 -8
- package/dist/field/features/Link/drawer/types.d.ts.map +0 -1
- package/dist/field/features/Link/drawer/types.js +0 -6
- package/dist/field/features/Link/index.d.ts +0 -33
- package/dist/field/features/Link/index.d.ts.map +0 -1
- package/dist/field/features/Link/index.js +0 -201
- package/dist/field/features/Link/nodes/AutoLinkNode.d.ts +0 -16
- package/dist/field/features/Link/nodes/AutoLinkNode.d.ts.map +0 -1
- package/dist/field/features/Link/nodes/AutoLinkNode.js +0 -79
- package/dist/field/features/Link/nodes/LinkNode.d.ts +0 -50
- package/dist/field/features/Link/nodes/LinkNode.d.ts.map +0 -1
- package/dist/field/features/Link/nodes/LinkNode.js +0 -326
- package/dist/field/features/Link/plugins/autoLink/index.d.ts +0 -19
- package/dist/field/features/Link/plugins/autoLink/index.d.ts.map +0 -1
- package/dist/field/features/Link/plugins/autoLink/index.js +0 -336
- package/dist/field/features/Link/plugins/clickableLink/index.d.ts.map +0 -1
- package/dist/field/features/Link/plugins/clickableLink/index.js +0 -23
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +0 -1
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/commands.js +0 -14
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts +0 -6
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +0 -1
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +0 -336
- package/dist/field/features/Link/plugins/floatingLinkEditor/index.d.ts +0 -7
- package/dist/field/features/Link/plugins/floatingLinkEditor/index.d.ts.map +0 -1
- package/dist/field/features/Link/plugins/floatingLinkEditor/index.js +0 -65
- package/dist/field/features/Link/plugins/floatingLinkEditor/index.scss +0 -78
- package/dist/field/features/Link/plugins/floatingLinkEditor/types.d.ts +0 -13
- package/dist/field/features/Link/plugins/floatingLinkEditor/types.d.ts.map +0 -1
- package/dist/field/features/Link/plugins/floatingLinkEditor/types.js +0 -6
- package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.d.ts +0 -12
- package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.d.ts.map +0 -1
- package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.js +0 -45
- package/dist/field/features/Link/plugins/link/index.d.ts.map +0 -1
- package/dist/field/features/Link/plugins/link/index.js +0 -69
- package/dist/field/features/Link/populationPromise.d.ts +0 -5
- package/dist/field/features/Link/populationPromise.d.ts.map +0 -1
- package/dist/field/features/Link/populationPromise.js +0 -56
- package/dist/field/features/Paragraph/index.d.ts +0 -3
- package/dist/field/features/Paragraph/index.d.ts.map +0 -1
- package/dist/field/features/Paragraph/index.js +0 -114
- package/dist/field/features/Relationship/drawer/commands.d.ts.map +0 -1
- package/dist/field/features/Relationship/drawer/commands.js +0 -14
- package/dist/field/features/Relationship/drawer/index.d.ts.map +0 -1
- package/dist/field/features/Relationship/drawer/index.js +0 -130
- package/dist/field/features/Relationship/index.d.ts +0 -18
- package/dist/field/features/Relationship/index.d.ts.map +0 -1
- package/dist/field/features/Relationship/index.js +0 -115
- package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts.map +0 -1
- package/dist/field/features/Relationship/nodes/RelationshipNode.js +0 -172
- package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts.map +0 -1
- package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +0 -161
- package/dist/field/features/Relationship/nodes/components/index.scss +0 -97
- package/dist/field/features/Relationship/plugins/index.d.ts +0 -7
- package/dist/field/features/Relationship/plugins/index.d.ts.map +0 -1
- package/dist/field/features/Relationship/plugins/index.js +0 -107
- package/dist/field/features/Relationship/populationPromise.d.ts.map +0 -1
- package/dist/field/features/Relationship/populationPromise.js +0 -34
- package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.d.ts.map +0 -1
- package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.js +0 -84
- package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts.map +0 -1
- package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +0 -148
- package/dist/field/features/Upload/component/index.d.ts.map +0 -1
- package/dist/field/features/Upload/component/index.js +0 -191
- package/dist/field/features/Upload/component/index.scss +0 -152
- package/dist/field/features/Upload/drawer/commands.d.ts.map +0 -1
- package/dist/field/features/Upload/drawer/commands.js +0 -14
- package/dist/field/features/Upload/drawer/index.d.ts.map +0 -1
- package/dist/field/features/Upload/drawer/index.js +0 -127
- package/dist/field/features/Upload/index.d.ts +0 -11
- package/dist/field/features/Upload/index.d.ts.map +0 -1
- package/dist/field/features/Upload/index.js +0 -168
- package/dist/field/features/Upload/nodes/UploadNode.d.ts +0 -47
- package/dist/field/features/Upload/nodes/UploadNode.d.ts.map +0 -1
- package/dist/field/features/Upload/nodes/UploadNode.js +0 -160
- package/dist/field/features/Upload/plugin/index.d.ts.map +0 -1
- package/dist/field/features/Upload/plugin/index.js +0 -111
- package/dist/field/features/Upload/populationPromise.d.ts +0 -5
- package/dist/field/features/Upload/populationPromise.d.ts.map +0 -1
- package/dist/field/features/Upload/populationPromise.js +0 -56
- package/dist/field/features/Upload/validate.d.ts.map +0 -1
- package/dist/field/features/Upload/validate.js +0 -29
- package/dist/field/features/align/index.d.ts +0 -3
- package/dist/field/features/align/index.d.ts.map +0 -1
- package/dist/field/features/align/index.js +0 -121
- package/dist/field/features/converters/html/index.d.ts +0 -13
- package/dist/field/features/converters/html/index.d.ts.map +0 -1
- package/dist/field/features/converters/html/index.js +0 -25
- package/dist/field/features/debug/TestRecorder/index.d.ts +0 -3
- package/dist/field/features/debug/TestRecorder/index.d.ts.map +0 -1
- package/dist/field/features/debug/TestRecorder/index.js +0 -70
- package/dist/field/features/debug/TestRecorder/plugin/index.d.ts.map +0 -1
- package/dist/field/features/debug/TestRecorder/plugin/index.js +0 -500
- package/dist/field/features/debug/TestRecorder/plugin/index.scss +0 -51
- package/dist/field/features/debug/TreeView/index.d.ts +0 -3
- package/dist/field/features/debug/TreeView/index.d.ts.map +0 -1
- package/dist/field/features/debug/TreeView/index.js +0 -70
- package/dist/field/features/debug/TreeView/plugin.d.ts +0 -4
- package/dist/field/features/debug/TreeView/plugin.d.ts.map +0 -1
- package/dist/field/features/debug/TreeView/plugin.js +0 -70
- package/dist/field/features/format/Bold/index.d.ts +0 -3
- package/dist/field/features/format/Bold/index.d.ts.map +0 -1
- package/dist/field/features/format/Bold/index.js +0 -98
- package/dist/field/features/format/Bold/markdownTransformers.d.ts.map +0 -1
- package/dist/field/features/format/Bold/markdownTransformers.js +0 -58
- package/dist/field/features/format/InlineCode/index.d.ts +0 -3
- package/dist/field/features/format/InlineCode/index.d.ts.map +0 -1
- package/dist/field/features/format/InlineCode/index.js +0 -90
- package/dist/field/features/format/InlineCode/markdownTransformers.d.ts.map +0 -1
- package/dist/field/features/format/InlineCode/markdownTransformers.js +0 -19
- package/dist/field/features/format/Italic/index.d.ts +0 -3
- package/dist/field/features/format/Italic/index.d.ts.map +0 -1
- package/dist/field/features/format/Italic/index.js +0 -91
- package/dist/field/features/format/Italic/markdownTransformers.d.ts.map +0 -1
- package/dist/field/features/format/Italic/markdownTransformers.js +0 -35
- package/dist/field/features/format/strikethrough/index.d.ts +0 -3
- package/dist/field/features/format/strikethrough/index.d.ts.map +0 -1
- package/dist/field/features/format/strikethrough/index.js +0 -90
- package/dist/field/features/format/subscript/index.d.ts +0 -3
- package/dist/field/features/format/subscript/index.d.ts.map +0 -1
- package/dist/field/features/format/subscript/index.js +0 -86
- package/dist/field/features/format/superscript/index.d.ts +0 -3
- package/dist/field/features/format/superscript/index.d.ts.map +0 -1
- package/dist/field/features/format/superscript/index.js +0 -86
- package/dist/field/features/format/underline/index.d.ts +0 -3
- package/dist/field/features/format/underline/index.d.ts.map +0 -1
- package/dist/field/features/format/underline/index.js +0 -86
- package/dist/field/features/indent/index.d.ts +0 -3
- package/dist/field/features/indent/index.d.ts.map +0 -1
- package/dist/field/features/indent/index.js +0 -114
- package/dist/field/features/indent/plugin.d.ts +0 -3
- package/dist/field/features/indent/plugin.d.ts.map +0 -1
- package/dist/field/features/indent/plugin.js +0 -17
- package/dist/field/features/lists/CheckList/index.d.ts +0 -3
- package/dist/field/features/lists/CheckList/index.d.ts.map +0 -1
- package/dist/field/features/lists/CheckList/index.js +0 -135
- package/dist/field/features/lists/CheckList/markdownTransformers.d.ts.map +0 -1
- package/dist/field/features/lists/CheckList/markdownTransformers.js +0 -26
- package/dist/field/features/lists/CheckList/plugin/index.d.ts.map +0 -1
- package/dist/field/features/lists/CheckList/plugin/index.js +0 -23
- package/dist/field/features/lists/OrderedList/index.d.ts +0 -3
- package/dist/field/features/lists/OrderedList/index.d.ts.map +0 -1
- package/dist/field/features/lists/OrderedList/index.js +0 -133
- package/dist/field/features/lists/OrderedList/markdownTransformer.d.ts.map +0 -1
- package/dist/field/features/lists/OrderedList/markdownTransformer.js +0 -26
- package/dist/field/features/lists/UnorderedList/index.d.ts +0 -3
- package/dist/field/features/lists/UnorderedList/index.d.ts.map +0 -1
- package/dist/field/features/lists/UnorderedList/index.js +0 -133
- package/dist/field/features/lists/UnorderedList/markdownTransformer.d.ts.map +0 -1
- package/dist/field/features/lists/UnorderedList/markdownTransformer.js +0 -26
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/heading.d.ts +0 -3
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/heading.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/heading.js +0 -30
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/link.d.ts +0 -3
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/link.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/link.js +0 -41
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/list.d.ts +0 -3
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/list.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/list.js +0 -32
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/listItem.d.ts +0 -3
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/listItem.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/listItem.js +0 -32
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/quote.d.ts +0 -3
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/quote.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/quote.js +0 -30
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/unknown.d.ts +0 -3
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/unknown.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/unknown.js +0 -36
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/upload.d.ts +0 -3
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/upload.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/upload.js +0 -35
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/defaultConverters.d.ts +0 -3
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/defaultConverters.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/defaultConverters.js +0 -28
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/index.d.ts +0 -18
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/index.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/index.js +0 -90
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/types.d.ts +0 -20
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/types.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/types.js +0 -6
- package/dist/field/features/migrations/LexicalPluginToLexical/index.d.ts +0 -10
- package/dist/field/features/migrations/LexicalPluginToLexical/index.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/index.js +0 -50
- package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +0 -23
- package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
- package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.js +0 -131
- package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +0 -16
- package/dist/field/features/migrations/SlateToLexical/converter/converters/blockquote.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/blockquote.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/blockquote.js +0 -33
- package/dist/field/features/migrations/SlateToLexical/converter/converters/heading.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/heading.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/heading.js +0 -39
- package/dist/field/features/migrations/SlateToLexical/converter/converters/indent.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/indent.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/indent.js +0 -57
- package/dist/field/features/migrations/SlateToLexical/converter/converters/link.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/link.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/link.js +0 -40
- package/dist/field/features/migrations/SlateToLexical/converter/converters/listItem.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/listItem.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/listItem.js +0 -35
- package/dist/field/features/migrations/SlateToLexical/converter/converters/orderedList.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/orderedList.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/orderedList.js +0 -36
- package/dist/field/features/migrations/SlateToLexical/converter/converters/relationship.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/relationship.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/relationship.js +0 -28
- package/dist/field/features/migrations/SlateToLexical/converter/converters/unknown.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/unknown.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/unknown.js +0 -37
- package/dist/field/features/migrations/SlateToLexical/converter/converters/unorderedList.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/unorderedList.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/unorderedList.js +0 -36
- package/dist/field/features/migrations/SlateToLexical/converter/converters/upload.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/converters/upload.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/converters/upload.js +0 -31
- package/dist/field/features/migrations/SlateToLexical/converter/defaultConverters.d.ts +0 -3
- package/dist/field/features/migrations/SlateToLexical/converter/defaultConverters.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/defaultConverters.js +0 -34
- package/dist/field/features/migrations/SlateToLexical/converter/index.d.ts +0 -19
- package/dist/field/features/migrations/SlateToLexical/converter/index.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/index.js +0 -131
- package/dist/field/features/migrations/SlateToLexical/converter/types.d.ts +0 -16
- package/dist/field/features/migrations/SlateToLexical/converter/types.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/converter/types.js +0 -6
- package/dist/field/features/migrations/SlateToLexical/index.d.ts +0 -10
- package/dist/field/features/migrations/SlateToLexical/index.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/index.js +0 -50
- package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/Component.js +0 -23
- package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
- package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.js +0 -131
- package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.scss +0 -16
- package/dist/field/lexical/config/EditorConfigProvider.d.ts +0 -16
- package/dist/field/lexical/config/EditorConfigProvider.d.ts.map +0 -1
- package/dist/field/lexical/config/EditorConfigProvider.js +0 -99
- package/dist/field/lexical/config/default.d.ts +0 -6
- package/dist/field/lexical/config/default.d.ts.map +0 -1
- package/dist/field/lexical/config/default.js +0 -112
- package/dist/field/lexical/config/defaultClient.d.ts +0 -3
- package/dist/field/lexical/config/defaultClient.d.ts.map +0 -1
- package/dist/field/lexical/config/defaultClient.js +0 -17
- package/dist/field/lexical/config/loader.d.ts +0 -7
- package/dist/field/lexical/config/loader.d.ts.map +0 -1
- package/dist/field/lexical/config/loader.js +0 -133
- package/dist/field/lexical/config/sanitize.d.ts +0 -5
- package/dist/field/lexical/config/sanitize.d.ts.map +0 -1
- package/dist/field/lexical/config/sanitize.js +0 -170
- /package/dist/field/features/{BlockQuote → blockquote}/markdownTransformer.d.ts +0 -0
- /package/dist/field/features/{Blocks → blocks}/drawer/index.d.ts +0 -0
- /package/dist/field/features/{Blocks → blocks}/nodes/BlocksNode.d.ts +0 -0
- /package/dist/field/features/{Blocks → blocks}/plugin/commands.d.ts +0 -0
- /package/dist/field/features/debug/{TestRecorder → testrecorder}/plugin/index.d.ts +0 -0
- /package/dist/field/features/debug/{TreeView → treeview/plugin}/index.scss +0 -0
- /package/dist/field/features/format/{Bold → bold}/markdownTransformers.d.ts +0 -0
- /package/dist/field/features/format/{InlineCode → inlinecode}/markdownTransformers.d.ts +0 -0
- /package/dist/field/features/format/{Italic → italic}/markdownTransformers.d.ts +0 -0
- /package/dist/field/features/{Heading → heading}/markdownTransformer.d.ts +0 -0
- /package/dist/field/features/{Link → link}/drawer/baseFields.d.ts +0 -0
- /package/dist/field/features/{Link → link}/drawer/index.d.ts +0 -0
- /package/dist/field/features/{Link → link}/plugins/clickableLink/index.d.ts +0 -0
- /package/dist/field/features/{Link → link}/plugins/floatingLinkEditor/LinkEditor/commands.d.ts +0 -0
- /package/dist/field/features/{Link → link}/plugins/link/index.d.ts +0 -0
- /package/dist/field/features/lists/{CheckList → checklist}/markdownTransformers.d.ts +0 -0
- /package/dist/field/features/lists/{CheckList → checklist}/plugin/index.d.ts +0 -0
- /package/dist/field/features/lists/{OrderedList → orderedlist}/markdownTransformer.d.ts +0 -0
- /package/dist/field/features/lists/{UnorderedList → unorderedlist}/markdownTransformer.d.ts +0 -0
- /package/dist/field/features/migrations/{LexicalPluginToLexical → lexicalPluginToLexical}/nodes/unknownConvertedNode/Component.d.ts +0 -0
- /package/dist/field/features/migrations/{LexicalPluginToLexical → lexicalPluginToLexical}/nodes/unknownConvertedNode/index.d.ts +0 -0
- /package/dist/field/features/migrations/{SlateToLexical → slateToLexical}/nodes/unknownConvertedNode/Component.d.ts +0 -0
- /package/dist/field/features/migrations/{SlateToLexical → slateToLexical}/nodes/unknownConvertedNode/index.d.ts +0 -0
- /package/dist/field/features/{Relationship → relationship}/drawer/commands.d.ts +0 -0
- /package/dist/field/features/{Relationship → relationship}/drawer/index.d.ts +0 -0
- /package/dist/field/features/{Relationship → relationship}/nodes/RelationshipNode.d.ts +0 -0
- /package/dist/field/features/{Relationship → relationship}/nodes/components/RelationshipComponent.d.ts +0 -0
- /package/dist/field/features/{Relationship → relationship}/populationPromise.d.ts +0 -0
- /package/dist/field/features/{Relationship → relationship}/utils/EnabledRelationshipsCondition.d.ts +0 -0
- /package/dist/field/features/{Upload → upload}/component/ExtraFieldsDrawer/index.d.ts +0 -0
- /package/dist/field/features/{Upload → upload}/component/index.d.ts +0 -0
- /package/dist/field/features/{Upload → upload}/drawer/commands.d.ts +0 -0
- /package/dist/field/features/{Upload → upload}/drawer/index.d.ts +0 -0
- /package/dist/field/features/{Upload → upload}/plugin/index.d.ts +0 -0
- /package/dist/field/features/{Upload → upload}/validate.d.ts +0 -0
|
@@ -1,66 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
});
|
|
12
|
-
const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
13
|
-
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
14
|
-
const _reactdom = /*#__PURE__*/ _interop_require_wildcard(require("react-dom"));
|
|
15
|
-
const _reacti18next = require("react-i18next");
|
|
16
|
-
const _EditorConfigProvider = require("../../config/EditorConfigProvider");
|
|
17
|
-
const _LexicalTypeaheadMenuPlugin = require("./LexicalTypeaheadMenuPlugin");
|
|
18
|
-
require("./index.scss");
|
|
19
|
-
const _useMenuTriggerMatch = require("./useMenuTriggerMatch");
|
|
20
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
21
|
-
if (typeof WeakMap !== "function") return null;
|
|
22
|
-
var cacheBabelInterop = new WeakMap();
|
|
23
|
-
var cacheNodeInterop = new WeakMap();
|
|
24
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
25
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
26
|
-
})(nodeInterop);
|
|
27
|
-
}
|
|
28
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
29
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
30
|
-
return obj;
|
|
31
|
-
}
|
|
32
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
33
|
-
return {
|
|
34
|
-
default: obj
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
38
|
-
if (cache && cache.has(obj)) {
|
|
39
|
-
return cache.get(obj);
|
|
40
|
-
}
|
|
41
|
-
var newObj = {
|
|
42
|
-
__proto__: null
|
|
43
|
-
};
|
|
44
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
45
|
-
for(var key in obj){
|
|
46
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
47
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
48
|
-
if (desc && (desc.get || desc.set)) {
|
|
49
|
-
Object.defineProperty(newObj, key, desc);
|
|
50
|
-
} else {
|
|
51
|
-
newObj[key] = obj[key];
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
newObj.default = obj;
|
|
56
|
-
if (cache) {
|
|
57
|
-
cache.set(obj, newObj);
|
|
58
|
-
}
|
|
59
|
-
return newObj;
|
|
60
|
-
}
|
|
2
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
3
|
+
import { useTranslation } from '@payloadcms/ui';
|
|
4
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import * as ReactDOM from 'react-dom';
|
|
7
|
+
import { useEditorConfigContext } from '../../config/client/EditorConfigProvider';
|
|
8
|
+
import { LexicalTypeaheadMenuPlugin } from './LexicalTypeaheadMenuPlugin';
|
|
9
|
+
import './index.scss';
|
|
10
|
+
import { useMenuTriggerMatch } from './useMenuTriggerMatch';
|
|
61
11
|
const baseClass = 'slash-menu-popup';
|
|
62
12
|
function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
|
|
63
|
-
const { i18n } =
|
|
13
|
+
const { i18n } = useTranslation();
|
|
64
14
|
let className = `${baseClass}__item ${baseClass}__item-${option.key}`;
|
|
65
15
|
if (isSelected) {
|
|
66
16
|
className += ` ${baseClass}__item--selected`;
|
|
@@ -75,14 +25,7 @@ function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
|
|
|
75
25
|
if (title.length > 25) {
|
|
76
26
|
title = title.substring(0, 25) + '...';
|
|
77
27
|
}
|
|
78
|
-
|
|
79
|
-
return option?.Icon ? /*#__PURE__*/ _react.lazy(()=>option.Icon().then((resolvedIcon)=>({
|
|
80
|
-
default: resolvedIcon
|
|
81
|
-
}))) : null;
|
|
82
|
-
}, [
|
|
83
|
-
option
|
|
84
|
-
]);
|
|
85
|
-
return /*#__PURE__*/ _react.createElement("button", {
|
|
28
|
+
return /*#__PURE__*/ React.createElement("button", {
|
|
86
29
|
"aria-selected": isSelected,
|
|
87
30
|
className: className,
|
|
88
31
|
id: baseClass + '__item-' + option.key,
|
|
@@ -93,19 +36,19 @@ function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
|
|
|
93
36
|
role: "option",
|
|
94
37
|
tabIndex: -1,
|
|
95
38
|
type: "button"
|
|
96
|
-
},
|
|
39
|
+
}, option?.Icon && /*#__PURE__*/ React.createElement(option.Icon, null), /*#__PURE__*/ React.createElement("span", {
|
|
97
40
|
className: `${baseClass}__item-text`
|
|
98
41
|
}, title));
|
|
99
42
|
}
|
|
100
|
-
function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
101
|
-
const [editor] =
|
|
102
|
-
const [queryString, setQueryString] =
|
|
103
|
-
const { editorConfig } =
|
|
104
|
-
const { i18n } =
|
|
105
|
-
const checkForTriggerMatch =
|
|
43
|
+
export function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
44
|
+
const [editor] = useLexicalComposerContext();
|
|
45
|
+
const [queryString, setQueryString] = useState(null);
|
|
46
|
+
const { editorConfig } = useEditorConfigContext();
|
|
47
|
+
const { i18n } = useTranslation();
|
|
48
|
+
const checkForTriggerMatch = useMenuTriggerMatch('/', {
|
|
106
49
|
minLength: 0
|
|
107
50
|
});
|
|
108
|
-
const getDynamicOptions =
|
|
51
|
+
const getDynamicOptions = useCallback(()=>{
|
|
109
52
|
let groupWithOptions = [];
|
|
110
53
|
for (const dynamicOption of editorConfig.features.slashMenu.dynamicOptions){
|
|
111
54
|
const dynamicGroupWithOptions = dynamicOption({
|
|
@@ -120,7 +63,7 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
120
63
|
queryString,
|
|
121
64
|
editorConfig?.features
|
|
122
65
|
]);
|
|
123
|
-
const groups =
|
|
66
|
+
const groups = useMemo(()=>{
|
|
124
67
|
let groupsWithOptions = [];
|
|
125
68
|
for (const groupWithOption of editorConfig?.features.slashMenu.groupsWithOptions ?? []){
|
|
126
69
|
groupsWithOptions.push(groupWithOption);
|
|
@@ -174,7 +117,7 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
174
117
|
editorConfig?.features,
|
|
175
118
|
i18n
|
|
176
119
|
]);
|
|
177
|
-
const onSelectOption =
|
|
120
|
+
const onSelectOption = useCallback((selectedOption, nodeToRemove, closeMenu, matchingString)=>{
|
|
178
121
|
editor.update(()=>{
|
|
179
122
|
if (nodeToRemove) {
|
|
180
123
|
nodeToRemove.remove();
|
|
@@ -188,10 +131,10 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
188
131
|
}, [
|
|
189
132
|
editor
|
|
190
133
|
]);
|
|
191
|
-
return /*#__PURE__*/
|
|
134
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(LexicalTypeaheadMenuPlugin, {
|
|
192
135
|
anchorElem: anchorElem,
|
|
193
136
|
groupsWithOptions: groups,
|
|
194
|
-
menuRenderFn: (anchorElementRef, { selectOptionAndCleanUp, selectedOptionKey, setSelectedOptionKey })=>anchorElementRef.current && groups.length ? /*#__PURE__*/
|
|
137
|
+
menuRenderFn: (anchorElementRef, { selectOptionAndCleanUp, selectedOptionKey, setSelectedOptionKey })=>anchorElementRef.current && groups.length ? /*#__PURE__*/ ReactDOM.createPortal(/*#__PURE__*/ React.createElement("div", {
|
|
195
138
|
className: baseClass
|
|
196
139
|
}, groups.map((group)=>{
|
|
197
140
|
let groupTitle = group.key;
|
|
@@ -200,12 +143,12 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
200
143
|
i18n
|
|
201
144
|
}) : group.displayName;
|
|
202
145
|
}
|
|
203
|
-
return /*#__PURE__*/
|
|
146
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
204
147
|
className: `${baseClass}__group ${baseClass}__group-${group.key}`,
|
|
205
148
|
key: group.key
|
|
206
|
-
}, /*#__PURE__*/
|
|
149
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
207
150
|
className: `${baseClass}__group-title`
|
|
208
|
-
}, groupTitle), group.options.map((option, oi)=>/*#__PURE__*/
|
|
151
|
+
}, groupTitle), group.options.map((option, oi)=>/*#__PURE__*/ React.createElement(SlashMenuItem, {
|
|
209
152
|
index: oi,
|
|
210
153
|
isSelected: selectedOptionKey === option.key,
|
|
211
154
|
key: option.key,
|
|
@@ -225,4 +168,4 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
225
168
|
}));
|
|
226
169
|
}
|
|
227
170
|
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAsIFNsYXNoTWVudU9wdGlvbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcbmltcG9ydCB7IHVzZU1lbnVUcmlnZ2VyTWF0Y2ggfSBmcm9tICcuL3VzZU1lbnVUcmlnZ2VyTWF0Y2gnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdzbGFzaC1tZW51LXBvcHVwJ1xuXG5mdW5jdGlvbiBTbGFzaE1lbnVJdGVtKHtcbiAgaXNTZWxlY3RlZCxcbiAgb25DbGljayxcbiAgb25Nb3VzZUVudGVyLFxuICBvcHRpb24sXG59OiB7XG4gIGluZGV4OiBudW1iZXJcbiAgaXNTZWxlY3RlZDogYm9vbGVhblxuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG4gIG9uTW91c2VFbnRlcjogKCkgPT4gdm9pZFxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufSkge1xuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdmaWVsZHMnKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICBjb25zdCBMYXp5SWNvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBvcHRpb24/Lkljb25cbiAgICAgID8gUmVhY3QubGF6eSgoKSA9PlxuICAgICAgICAgIG9wdGlvbi5JY29uKCkudGhlbigocmVzb2x2ZWRJY29uKSA9PiAoe1xuICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRJY29uLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtvcHRpb25dKVxuXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1zZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaWQ9e2Jhc2VDbGFzcyArICdfX2l0ZW0tJyArIG9wdGlvbi5rZXl9XG4gICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJ9XG4gICAgICByZWY9e29wdGlvbi5zZXRSZWZFbGVtZW50fVxuICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICB7TGF6eUljb24gJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPExhenlJY29uIC8+XG4gICAgICAgIDwvUmVhY3QuU3VzcGVuc2U+XG4gICAgICApfVxuXG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2l0ZW0tdGV4dGB9Pnt0aXRsZX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNsYXNoTWVudVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtxdWVyeVN0cmluZywgc2V0UXVlcnlTdHJpbmddID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcbiAgY29uc3QgeyBlZGl0b3JDb25maWcgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdmaWVsZHMnKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlNsYXNoTWVudVBsdWdpbiIsImJhc2VDbGFzcyIsIlNsYXNoTWVudUl0ZW0iLCJpc1NlbGVjdGVkIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9wdGlvbiIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImNsYXNzTmFtZSIsImtleSIsInRpdGxlIiwiZGlzcGxheU5hbWUiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJMYXp5SWNvbiIsInVzZU1lbW8iLCJJY29uIiwiUmVhY3QiLCJsYXp5IiwidGhlbiIsInJlc29sdmVkSWNvbiIsImRlZmF1bHQiLCJidXR0b24iLCJhcmlhLXNlbGVjdGVkIiwiaWQiLCJyZWYiLCJzZXRSZWZFbGVtZW50Iiwicm9sZSIsInRhYkluZGV4IiwidHlwZSIsIlN1c3BlbnNlIiwic3BhbiIsImFuY2hvckVsZW0iLCJkb2N1bWVudCIsImJvZHkiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsInVzZVN0YXRlIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwidXNlTWVudVRyaWdnZXJNYXRjaCIsIm1pbkxlbmd0aCIsImdldER5bmFtaWNPcHRpb25zIiwidXNlQ2FsbGJhY2siLCJncm91cFdpdGhPcHRpb25zIiwiZHluYW1pY09wdGlvbiIsImZlYXR1cmVzIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJkeW5hbWljR3JvdXBXaXRoT3B0aW9ucyIsImNvbmNhdCIsImdyb3VwcyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiRnJhZ21lbnQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsIm1lbnVSZW5kZXJGbiIsImFuY2hvckVsZW1lbnRSZWYiLCJzZWxlY3RPcHRpb25BbmRDbGVhblVwIiwic2VsZWN0ZWRPcHRpb25LZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleSIsImN1cnJlbnQiLCJSZWFjdERPTSIsImNyZWF0ZVBvcnRhbCIsImRpdiIsImdyb3VwVGl0bGUiLCJvaSIsImluZGV4Iiwib25RdWVyeUNoYW5nZSIsInRyaWdnZXJGbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQWlGZ0JBOzs7ZUFBQUE7Ozt3Q0E5RTBCOytEQUNLO2tFQUVyQjs4QkFDSztzQ0FJUTs0Q0FDSTtRQUNwQztxQ0FDNkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwQyxNQUFNQyxZQUFZO0FBRWxCLFNBQVNDLGNBQWMsRUFDckJDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLE1BQU0sRUFPUDtJQUNDLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7SUFFaEMsSUFBSUMsWUFBWSxDQUFDLEVBQUVSLFVBQVUsT0FBTyxFQUFFQSxVQUFVLE9BQU8sRUFBRUssT0FBT0ksR0FBRyxDQUFDLENBQUM7SUFDckUsSUFBSVAsWUFBWTtRQUNkTSxhQUFhLENBQUMsQ0FBQyxFQUFFUixVQUFVLGdCQUFnQixDQUFDO0lBQzlDO0lBRUEsSUFBSVUsUUFBUUwsT0FBT0ksR0FBRztJQUN0QixJQUFJSixPQUFPTSxXQUFXLEVBQUU7UUFDdEJELFFBQ0UsT0FBT0wsT0FBT00sV0FBVyxLQUFLLGFBQWFOLE9BQU9NLFdBQVcsQ0FBQztZQUFFTDtRQUFLLEtBQUtELE9BQU9NLFdBQVc7SUFDaEc7SUFDQSxtQ0FBbUM7SUFDbkMsSUFBSUQsTUFBTUUsTUFBTSxHQUFHLElBQUk7UUFDckJGLFFBQVFBLE1BQU1HLFNBQVMsQ0FBQyxHQUFHLE1BQU07SUFDbkM7SUFFQSxNQUFNQyxXQUFXQyxJQUFBQSxjQUFPLEVBQUM7UUFDdkIsT0FBT1YsUUFBUVcscUJBQ1hDLE9BQU1DLElBQUksQ0FBQyxJQUNUYixPQUFPVyxJQUFJ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
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIH0gZnJvbSAnLi9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgdXNlTWVudVRyaWdnZXJNYXRjaCB9IGZyb20gJy4vdXNlTWVudVRyaWdnZXJNYXRjaCdcblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmZ1bmN0aW9uIFNsYXNoTWVudUl0ZW0oe1xuICBpc1NlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9wdGlvbixcbn06IHtcbiAgaW5kZXg6IG51bWJlclxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgb25Nb3VzZUVudGVyOiAoKSA9PiB2b2lkXG4gIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uXG59KSB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXtiYXNlQ2xhc3MgKyAnX19pdGVtLScgKyBvcHRpb24ua2V5fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge29wdGlvbj8uSWNvbiAmJiA8b3B0aW9uLkljb24gLz59XG5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faXRlbS10ZXh0YH0+e3RpdGxlfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xhc2hNZW51UGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInVzZVN0YXRlIiwiUmVhY3QiLCJSZWFjdERPTSIsInVzZUVkaXRvckNvbmZpZ0NvbnRleHQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsInVzZU1lbnVUcmlnZ2VyTWF0Y2giLCJiYXNlQ2xhc3MiLCJTbGFzaE1lbnVJdGVtIiwiaXNTZWxlY3RlZCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvcHRpb24iLCJpMThuIiwiY2xhc3NOYW1lIiwia2V5IiwidGl0bGUiLCJkaXNwbGF5TmFtZSIsImxlbmd0aCIsInN1YnN0cmluZyIsImJ1dHRvbiIsImFyaWEtc2VsZWN0ZWQiLCJpZCIsInJlZiIsInNldFJlZkVsZW1lbnQiLCJyb2xlIiwidGFiSW5kZXgiLCJ0eXBlIiwiSWNvbiIsInNwYW4iLCJTbGFzaE1lbnVQbHVnaW4iLCJhbmNob3JFbGVtIiwiZG9jdW1lbnQiLCJib2R5IiwiZWRpdG9yIiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsImVkaXRvckNvbmZpZyIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwibWluTGVuZ3RoIiwiZ2V0RHluYW1pY09wdGlvbnMiLCJncm91cFdpdGhPcHRpb25zIiwiZHluYW1pY09wdGlvbiIsImZlYXR1cmVzIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJkeW5hbWljR3JvdXBXaXRoT3B0aW9ucyIsImNvbmNhdCIsImdyb3VwcyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiRnJhZ21lbnQiLCJtZW51UmVuZGVyRm4iLCJhbmNob3JFbGVtZW50UmVmIiwic2VsZWN0T3B0aW9uQW5kQ2xlYW5VcCIsInNlbGVjdGVkT3B0aW9uS2V5Iiwic2V0U2VsZWN0ZWRPcHRpb25LZXkiLCJjdXJyZW50IiwiY3JlYXRlUG9ydGFsIiwiZGl2IiwiZ3JvdXBUaXRsZSIsIm9pIiwiaW5kZXgiLCJvblF1ZXJ5Q2hhbmdlIiwidHJpZ2dlckZuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLHdDQUF1QztBQUNqRixTQUFTQyxjQUFjLFFBQVEsaUJBQWdCO0FBQy9DLFNBQVNDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUN0RCxZQUFZQyxXQUFXLFFBQU87QUFDOUIsWUFBWUMsY0FBYyxZQUFXO0FBSXJDLFNBQVNDLHNCQUFzQixRQUFRLDJDQUEwQztBQUNqRixTQUFT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
|
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return useMenuTriggerMatch;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _react = require("react");
|
|
12
|
-
const _LexicalTypeaheadMenuPlugin = require("./LexicalTypeaheadMenuPlugin");
|
|
13
|
-
function useMenuTriggerMatch(/**
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { PUNCTUATION } from './LexicalTypeaheadMenuPlugin';
|
|
3
|
+
/**
|
|
4
|
+
* Returns a function which checks if the trigger (e.g. '/') is present in the query and, if so, returns the matching string (text after the trigger)
|
|
5
|
+
*/ export function useMenuTriggerMatch(/**
|
|
14
6
|
* Text which triggers the menu. Everything after this text will be used as the query.
|
|
15
7
|
*/ trigger, { maxLength = 75, minLength = 1 }) {
|
|
16
|
-
return
|
|
17
|
-
const validChars = '[^' + trigger +
|
|
8
|
+
return useCallback(({ query })=>{
|
|
9
|
+
const validChars = '[^' + trigger + PUNCTUATION + '\\s]';
|
|
18
10
|
const TypeaheadTriggerRegex = new RegExp('(^|\\s|\\()(' + '[' + trigger + ']' + '((?:' + validChars + '){0,' + maxLength + '})' + ')$');
|
|
19
11
|
const match = TypeaheadTriggerRegex.exec(query);
|
|
20
12
|
if (match !== null) {
|
|
@@ -38,4 +30,4 @@ function useMenuTriggerMatch(/**
|
|
|
38
30
|
]);
|
|
39
31
|
}
|
|
40
32
|
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/OicgK1xuICAgICAgICAgIHZhbGlkQ2hhcnMgK1xuICAgICAgICAgICcpezAsJyArXG4gICAgICAgICAgbWF4TGVuZ3RoICtcbiAgICAgICAgICAnfSknICtcbiAgICAgICAgICAnKSQnLFxuICAgICAgKVxuICAgICAgY29uc3QgbWF0Y2ggPSBUeXBlYWhlYWRUcmlnZ2VyUmVnZXguZXhlYyhxdWVyeSlcbiAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtYXliZUxlYWRpbmdXaGl0ZXNwYWNlID0gbWF0Y2hbMV1cblxuICAgICAgICAvKipcbiAgICAgICAgICogbWF0Y2hpbmdTdHJpbmcgaXMgb25seSB0aGUgdGV4dCBBRlRFUiB0aGUgdHJpZ2dlciB0ZXh0LiAoU28gZXZlcnl0aGluZyBhZnRlciB0aGUgLylcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gbWF0Y2hbM11cblxuICAgICAgICBpZiAobWF0Y2hpbmdTdHJpbmcubGVuZ3RoID49IG1pbkxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWFkT2Zmc2V0OiBtYXRjaC5pbmRleCArIG1heWJlTGVhZGluZ1doaXRlc3BhY2UubGVuZ3RoLFxuICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmcsXG4gICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogbWF0Y2hbMl0sIC8vIHJlcGxhY2VhYmxlU3RyaW5nIGlzIHRoZSB0cmlnZ2VyIHRleHQgKyB0aGUgbWF0Y2hpbmcgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgW21heExlbmd0aCwgbWluTGVuZ3RoLCB0cmlnZ2VyXSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUNhbGxiYWNrIiwiUFVOQ1RVQVRJT04iLCJ1c2VNZW51VHJpZ2dlck1hdGNoIiwidHJpZ2dlciIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInF1ZXJ5IiwidmFsaWRDaGFycyIsIlR5cGVhaGVhZFRyaWdnZXJSZWdleCIsIlJlZ0V4cCIsIm1hdGNoIiwiZXhlYyIsIm1heWJlTGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGluZ1N0cmluZyIsImxlbmd0aCIsImxlYWRPZmZzZXQiLCJpbmRleCIsInJlcGxhY2VhYmxlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxXQUFXLFFBQVEsUUFBTztBQUVuQyxTQUFTQyxXQUFXLFFBQVEsK0JBQThCO0FBaUIxRDs7Q0FFQyxHQUNELE9BQU8sU0FBU0Msb0JBQ2Q7O0dBRUMsR0FDREMsT0FBZSxFQUNmLEVBQUVDLFlBQVksRUFBRSxFQUFFQyxZQUFZLENBQUMsRUFBOEM7SUFFN0UsT0FBT0wsWUFDTCxDQUFDLEVBQUVNLEtBQUssRUFBRTtRQUNSLE1BQU1DLGFBQWEsT0FBT0osVUFBVUYsY0FBYztRQUNsRCxNQUFNTyx3QkFBd0IsSUFBSUMsT0FDaEMsaUJBQ0UsTUFDQU4sVUFDQSxNQUNBLFNBQ0FJLGFBQ0EsU0FDQUgsWUFDQSxPQUNBO1FBRUosTUFBTU0sUUFBUUYsc0JBQXNCRyxJQUFJLENBQUNMO1FBQ3pDLElBQUlJLFVBQVUsTUFBTTtZQUNsQixNQUFNRSx5QkFBeUJGLEtBQUssQ0FBQyxFQUFFO1lBRXZDOztTQUVDLEdBQ0QsTUFBTUcsaUJBQWlCSCxLQUFLLENBQUMsRUFBRTtZQUUvQixJQUFJRyxlQUFlQyxNQUFNLElBQUlULFdBQVc7Z0JBQ3RDLE9BQU87b0JBQ0xVLFlBQVlMLE1BQU1NLEtBQUssR0FBR0osdUJBQXVCRSxNQUFNO29CQUN2REQ7b0JBQ0FJLG1CQUFtQlAsS0FBSyxDQUFDLEVBQUU7Z0JBQzdCO1lBQ0Y7UUFDRjtRQUNBLE9BQU87SUFDVCxHQUNBO1FBQUNOO1FBQVdDO1FBQVdGO0tBQVE7QUFFbkMifQ==
|
|
@@ -1,68 +1,19 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const _point = require("../../../utils/point");
|
|
18
|
-
const _rect = require("../../../utils/rect");
|
|
19
|
-
const _LexicalTypeaheadMenuPlugin = require("../../SlashMenu/LexicalTypeaheadMenuPlugin");
|
|
20
|
-
const _getCollapsedMargins = require("../utils/getCollapsedMargins");
|
|
21
|
-
const _getTopLevelNodeKeys = require("../utils/getTopLevelNodeKeys");
|
|
22
|
-
const _isOnHandleElement = require("../utils/isOnHandleElement");
|
|
23
|
-
const _setHandlePosition = require("../utils/setHandlePosition");
|
|
24
|
-
require("./index.scss");
|
|
25
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
26
|
-
if (typeof WeakMap !== "function") return null;
|
|
27
|
-
var cacheBabelInterop = new WeakMap();
|
|
28
|
-
var cacheNodeInterop = new WeakMap();
|
|
29
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
30
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
31
|
-
})(nodeInterop);
|
|
32
|
-
}
|
|
33
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
34
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
35
|
-
return obj;
|
|
36
|
-
}
|
|
37
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
38
|
-
return {
|
|
39
|
-
default: obj
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
43
|
-
if (cache && cache.has(obj)) {
|
|
44
|
-
return cache.get(obj);
|
|
45
|
-
}
|
|
46
|
-
var newObj = {
|
|
47
|
-
__proto__: null
|
|
48
|
-
};
|
|
49
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
50
|
-
for(var key in obj){
|
|
51
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
52
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
53
|
-
if (desc && (desc.get || desc.set)) {
|
|
54
|
-
Object.defineProperty(newObj, key, desc);
|
|
55
|
-
} else {
|
|
56
|
-
newObj[key] = obj[key];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
newObj.default = obj;
|
|
61
|
-
if (cache) {
|
|
62
|
-
cache.set(obj, newObj);
|
|
63
|
-
}
|
|
64
|
-
return newObj;
|
|
65
|
-
}
|
|
2
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
3
|
+
import { $createParagraphNode } from 'lexical';
|
|
4
|
+
import { $getNodeByKey } from 'lexical';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
7
|
+
import { createPortal } from 'react-dom';
|
|
8
|
+
import { isHTMLElement } from '../../../utils/guard';
|
|
9
|
+
import { Point } from '../../../utils/point';
|
|
10
|
+
import { Rect } from '../../../utils/rect';
|
|
11
|
+
import { ENABLE_SLASH_MENU_COMMAND } from '../../SlashMenu/LexicalTypeaheadMenuPlugin';
|
|
12
|
+
import { getCollapsedMargins } from '../utils/getCollapsedMargins';
|
|
13
|
+
import { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys';
|
|
14
|
+
import { isOnHandleElement } from '../utils/isOnHandleElement';
|
|
15
|
+
import { setHandlePosition } from '../utils/setHandlePosition';
|
|
16
|
+
import './index.scss';
|
|
66
17
|
const SPACE = -24;
|
|
67
18
|
const ADD_BLOCK_MENU_CLASSNAME = 'add-block-menu';
|
|
68
19
|
const Downward = 1;
|
|
@@ -80,7 +31,7 @@ function getCurrentIndex(keysLength) {
|
|
|
80
31
|
}
|
|
81
32
|
function getBlockElement(anchorElem, editor, event, useEdgeAsDefault = false, horizontalOffset = 0) {
|
|
82
33
|
const anchorElementRect = anchorElem.getBoundingClientRect();
|
|
83
|
-
const topLevelNodeKeys =
|
|
34
|
+
const topLevelNodeKeys = getTopLevelNodeKeys(editor);
|
|
84
35
|
let blockElem = null;
|
|
85
36
|
let blockNode = null;
|
|
86
37
|
// Return null if matching block element is the first or last node
|
|
@@ -116,9 +67,9 @@ function getBlockElement(anchorElem, editor, event, useEdgeAsDefault = false, ho
|
|
|
116
67
|
if (elem === null) {
|
|
117
68
|
break;
|
|
118
69
|
}
|
|
119
|
-
const point = new
|
|
120
|
-
const domRect =
|
|
121
|
-
const { marginBottom, marginTop } =
|
|
70
|
+
const point = new Point(event.x + horizontalOffset, event.y);
|
|
71
|
+
const domRect = Rect.fromDOM(elem);
|
|
72
|
+
const { marginBottom, marginTop } = getCollapsedMargins(elem);
|
|
122
73
|
const rect = domRect.generateNewRect({
|
|
123
74
|
bottom: domRect.bottom + marginBottom,
|
|
124
75
|
left: anchorElementRect.left,
|
|
@@ -128,7 +79,7 @@ function getBlockElement(anchorElem, editor, event, useEdgeAsDefault = false, ho
|
|
|
128
79
|
const { reason: { isOnBottomSide, isOnTopSide }, result } = rect.contains(point);
|
|
129
80
|
if (result) {
|
|
130
81
|
blockElem = elem;
|
|
131
|
-
blockNode =
|
|
82
|
+
blockNode = $getNodeByKey(key);
|
|
132
83
|
prevIndex = index;
|
|
133
84
|
break;
|
|
134
85
|
}
|
|
@@ -152,12 +103,12 @@ function getBlockElement(anchorElem, editor, event, useEdgeAsDefault = false, ho
|
|
|
152
103
|
}
|
|
153
104
|
function useAddBlockHandle(editor, anchorElem, isEditable) {
|
|
154
105
|
const scrollerElem = anchorElem.parentElement;
|
|
155
|
-
const menuRef =
|
|
156
|
-
const [hoveredElement, setHoveredElement] =
|
|
157
|
-
|
|
106
|
+
const menuRef = useRef(null);
|
|
107
|
+
const [hoveredElement, setHoveredElement] = useState(null);
|
|
108
|
+
useEffect(()=>{
|
|
158
109
|
function onDocumentMouseMove(event) {
|
|
159
110
|
const target = event.target;
|
|
160
|
-
if (!
|
|
111
|
+
if (!isHTMLElement(target)) {
|
|
161
112
|
return;
|
|
162
113
|
}
|
|
163
114
|
let distanceFromScrollerElem = 0;
|
|
@@ -179,7 +130,7 @@ function useAddBlockHandle(editor, anchorElem, isEditable) {
|
|
|
179
130
|
distanceFromScrollerElem = pageX < left ? pageX - left : pageX - right;
|
|
180
131
|
}
|
|
181
132
|
}
|
|
182
|
-
if (
|
|
133
|
+
if (isOnHandleElement(target, ADD_BLOCK_MENU_CLASSNAME)) {
|
|
183
134
|
return;
|
|
184
135
|
}
|
|
185
136
|
const { blockElem: _emptyBlockElem, blockNode } = getBlockElement(anchorElem, editor, event, false, -distanceFromScrollerElem);
|
|
@@ -203,7 +154,7 @@ function useAddBlockHandle(editor, anchorElem, isEditable) {
|
|
|
203
154
|
anchorElem,
|
|
204
155
|
editor
|
|
205
156
|
]);
|
|
206
|
-
|
|
157
|
+
useEffect(()=>{
|
|
207
158
|
if (menuRef.current && hoveredElement?.node) {
|
|
208
159
|
editor.getEditorState().read(()=>{
|
|
209
160
|
// Check if blockNode is an empty text node
|
|
@@ -211,7 +162,7 @@ function useAddBlockHandle(editor, anchorElem, isEditable) {
|
|
|
211
162
|
if (hoveredElement.node.getType() !== 'paragraph' || hoveredElement.node.getTextContent() !== '') {
|
|
212
163
|
isEmptyParagraph = false;
|
|
213
164
|
}
|
|
214
|
-
|
|
165
|
+
setHandlePosition(hoveredElement?.elem, menuRef.current, anchorElem, isEmptyParagraph ? SPACE : SPACE - 20);
|
|
215
166
|
});
|
|
216
167
|
}
|
|
217
168
|
}, [
|
|
@@ -219,7 +170,7 @@ function useAddBlockHandle(editor, anchorElem, isEditable) {
|
|
|
219
170
|
hoveredElement,
|
|
220
171
|
editor
|
|
221
172
|
]);
|
|
222
|
-
const handleAddClick =
|
|
173
|
+
const handleAddClick = useCallback((event)=>{
|
|
223
174
|
let hoveredElementToUse = hoveredElement;
|
|
224
175
|
if (!hoveredElementToUse?.node) {
|
|
225
176
|
return;
|
|
@@ -232,7 +183,7 @@ function useAddBlockHandle(editor, anchorElem, isEditable) {
|
|
|
232
183
|
isEmptyParagraph = false;
|
|
233
184
|
}
|
|
234
185
|
if (!isEmptyParagraph) {
|
|
235
|
-
const newParagraph =
|
|
186
|
+
const newParagraph = $createParagraphNode();
|
|
236
187
|
hoveredElementToUse.node.insertAfter(newParagraph);
|
|
237
188
|
setTimeout(()=>{
|
|
238
189
|
hoveredElementToUse = {
|
|
@@ -255,7 +206,7 @@ function useAddBlockHandle(editor, anchorElem, isEditable) {
|
|
|
255
206
|
// Make sure this is called AFTER the focusing has been processed by the browser
|
|
256
207
|
// Otherwise, this won't work
|
|
257
208
|
setTimeout(()=>{
|
|
258
|
-
editor.dispatchCommand(
|
|
209
|
+
editor.dispatchCommand(ENABLE_SLASH_MENU_COMMAND, {
|
|
259
210
|
node: hoveredElementToUse.node
|
|
260
211
|
});
|
|
261
212
|
}, 2);
|
|
@@ -265,20 +216,20 @@ function useAddBlockHandle(editor, anchorElem, isEditable) {
|
|
|
265
216
|
editor,
|
|
266
217
|
hoveredElement
|
|
267
218
|
]);
|
|
268
|
-
return /*#__PURE__*/
|
|
219
|
+
return /*#__PURE__*/ createPortal(/*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("button", {
|
|
269
220
|
className: "icon add-block-menu",
|
|
270
221
|
onClick: (event)=>{
|
|
271
222
|
handleAddClick(event);
|
|
272
223
|
},
|
|
273
224
|
ref: menuRef,
|
|
274
225
|
type: "button"
|
|
275
|
-
}, /*#__PURE__*/
|
|
226
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
276
227
|
className: isEditable ? 'icon' : ''
|
|
277
228
|
}))), anchorElem);
|
|
278
229
|
}
|
|
279
|
-
function AddBlockHandlePlugin({ anchorElem = document.body }) {
|
|
280
|
-
const [editor] =
|
|
230
|
+
export function AddBlockHandlePlugin({ anchorElem = document.body }) {
|
|
231
|
+
const [editor] = useLexicalComposerContext();
|
|
281
232
|
return useAddBlockHandle(editor, anchorElem, editor._editable);
|
|
282
233
|
}
|
|
283
234
|
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7ICRjcmVhdGVQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB7ICRnZXROb2RlQnlLZXksIHR5cGUgTGV4aWNhbEVkaXRvciwgdHlwZSBMZXhpY2FsTm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2d1YXJkJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludCdcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0J1xuaW1wb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4uLy4uL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCB7IGdldENvbGxhcHNlZE1hcmdpbnMgfSBmcm9tICcuLi91dGlscy9nZXRDb2xsYXBzZWRNYXJnaW5zJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMnXG5pbXBvcnQgeyBpc09uSGFuZGxlRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzT25IYW5kbGVFbGVtZW50J1xuaW1wb3J0IHsgc2V0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9zZXRIYW5kbGVQb3NpdGlvbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBTUEFDRSA9IC0yNFxuY29uc3QgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FID0gJ2FkZC1ibG9jay1tZW51J1xuXG5jb25zdCBEb3dud2FyZCA9IDFcbmNvbnN0IFVwd2FyZCA9IC0xXG5jb25zdCBJbmRldGVybWluYXRlID0gMFxuXG5sZXQgcHJldkluZGV4ID0gSW5maW5pdHlcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEluZGV4KGtleXNMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChrZXlzTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEluZmluaXR5XG4gIH1cbiAgaWYgKHByZXZJbmRleCA+PSAwICYmIHByZXZJbmRleCA8IGtleXNMZW5ndGgpIHtcbiAgICByZXR1cm4gcHJldkluZGV4XG4gIH1cblxuICByZXR1cm4gTWF0aC5mbG9vcihrZXlzTGVuZ3RoIC8gMilcbn1cblxuZnVuY3Rpb24gZ2V0QmxvY2tFbGVtZW50KFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBldmVudDogTW91c2VFdmVudCxcbiAgdXNlRWRnZUFzRGVmYXVsdCA9IGZhbHNlLFxuICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbik6IHtcbiAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGxcbn0ge1xuICBjb25zdCBhbmNob3JFbGVtZW50UmVjdCA9IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuXG4gIGxldCBibG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsID0gbnVsbFxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBmaXJzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICBsYXN0Tm9kZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoZXZlbnQueSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQueSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBibG9ja0VsZW0gPSBsYXN0Tm9kZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBibG9ja0VsZW06IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBtYXRjaGluZyBibG9jayBlbGVtZW50XG4gICAgbGV0IGluZGV4ID0gZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKVxuICAgIGxldCBkaXJlY3Rpb24gPSBJbmRldGVybWluYXRlXG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KGV2ZW50LnggKyBob3Jpem9udGFsT2Zmc2V0LCBldmVudC55KVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlYXNvbjogeyBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgfSA9IHJlY3QuY29udGFpbnMocG9pbnQpXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgcHJldkluZGV4ID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoaXNPblRvcFNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBVcHdhcmRcbiAgICAgICAgfSBlbHNlIGlmIChpc09uQm90dG9tU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IERvd253YXJkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RvcCBzZWFyY2ggYmxvY2sgZWxlbWVudFxuICAgICAgICAgIGRpcmVjdGlvbiA9IEluZmluaXR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5kZXggKz0gZGlyZWN0aW9uXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VBZGRCbG9ja0hhbmRsZShcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgaXNFZGl0YWJsZTogYm9vbGVhbixcbik6IEpTWC5FbGVtZW50IHtcbiAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcbiAgY29uc3QgW2hvdmVyZWRFbGVtZW50LCBzZXRIb3ZlcmVkRWxlbWVudF0gPSB1c2VTdGF0ZTx7XG4gICAgZWxlbTogSFRNTEVsZW1lbnRcbiAgICBub2RlOiBMZXhpY2FsTm9kZVxuICB9IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldFxuICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSAwXG4gICAgICAvLyBDYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzY3JvbGxlckVsZW0gYW5kIHRhcmdldCBpZiB0YXJnZXQgaXMgbm90IGluIHNjcm9sbGVyRWxlbVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAmJiAhc2Nyb2xsZXJFbGVtLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgeyBib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3AgfSA9IHNjcm9sbGVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICBjb25zdCB7IHBhZ2VYLCBwYWdlWSB9ID0gZXZlbnRcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbEJ1ZmZlciA9IDUwXG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQnVmZmVyID0gMjVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRUb3AgPSB0b3AgKyB3aW5kb3cuc2Nyb2xsWVxuICAgICAgICBjb25zdCBhZGp1c3RlZEJvdHRvbSA9IGJvdHRvbSArIHdpbmRvdy5zY3JvbGxZXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhZ2VZIDwgYWRqdXN0ZWRUb3AgLSB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VZID4gYWRqdXN0ZWRCb3R0b20gKyB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYIDwgbGVmdCAtIGhvcml6b250YWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA+IHJpZ2h0ICsgaG9yaXpvbnRhbEJ1ZmZlclxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRIb3ZlcmVkRWxlbWVudChudWxsKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGFsbG93IHRoZSBfZW1wdHlCbG9ja0VsZW0gdG8gYmUgZm91bmQgd2hlbiB0aGUgbW91c2UgaXMgaW4gdGhlXG4gICAgICAgIC8vIGJ1ZmZlciB6b25lIGFyb3VuZCB0aGUgc2Nyb2xsZXJFbGVtLlxuICAgICAgICBpZiAocGFnZVggPCBsZWZ0IHx8IHBhZ2VYID4gcmlnaHQpIHtcbiAgICAgICAgICBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBwYWdlWCA8IGxlZnQgPyBwYWdlWCAtIGxlZnQgOiBwYWdlWCAtIHJpZ2h0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzT25IYW5kbGVFbGVtZW50KHRhcmdldCwgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYmxvY2tFbGVtOiBfZW1wdHlCbG9ja0VsZW0sIGJsb2NrTm9kZSB9ID0gZ2V0QmxvY2tFbGVtZW50KFxuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgLWRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICAgIClcbiAgICAgIGlmICghX2VtcHR5QmxvY2tFbGVtKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgc2V0SG92ZXJlZEVsZW1lbnQoe1xuICAgICAgICBlbGVtOiBfZW1wdHlCbG9ja0VsZW0sXG4gICAgICAgIG5vZGU6IGJsb2NrTm9kZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gU2luY2UgdGhlIGRyYWdnYWJsZUJsb2NrRWxlbSBpcyBvdXRzaWRlIHRoZSBhY3R1YWwgZWRpdG9yLCB3ZSBuZWVkIHRvIGxpc3RlbiB0byB0aGUgZG9jdW1lbnRcbiAgICAvLyB0byBiZSBhYmxlIHRvIGRldGVjdCB3aGVuIHRoZSBtb3VzZSBpcyBvdXRzaWRlIHRoZSBlZGl0b3IgYW5kIHJlc3BlY3QgYSBidWZmZXIgYXJvdW5kXG4gICAgLy8gdGhlIHNjcm9sbGVyRWxlbSB0byBhdm9pZCB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGRpc2FwcGVhcmluZyB0b28gZWFybHkuXG4gICAgZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG4gICAgfVxuICB9LCBbc2Nyb2xsZXJFbGVtLCBhbmNob3JFbGVtLCBlZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiBob3ZlcmVkRWxlbWVudD8ubm9kZSkge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFRleHRDb250ZW50KCkgIT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlzRW1wdHlQYXJhZ3JhcGggPSBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SGFuZGxlUG9zaXRpb24oXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQ/LmVsZW0sXG4gICAgICAgICAgbWVudVJlZi5jdXJyZW50LFxuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgaXNFbXB0eVBhcmFncmFwaCA/IFNQQUNFIDogU1BBQ0UgLSAyMCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFthbmNob3JFbGVtLCBob3ZlcmVkRWxlbWVudCwgZWRpdG9yXSlcblxuICBjb25zdCBoYW5kbGVBZGRDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgbGV0IGhvdmVyZWRFbGVtZW50VG9Vc2UgPSBob3ZlcmVkRWxlbWVudFxuICAgICAgaWYgKCFob3ZlcmVkRWxlbWVudFRvVXNlPy5ub2RlKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyAxLiBVcGRhdGUgaG92ZXJlZEVsZW1lbnQubm9kZSB0byBhIG5ldyBwYXJhZ3JhcGggbm9kZSBpZiB0aGUgaG92ZXJlZEVsZW1lbnQubm9kZSBpcyBub3QgYSBwYXJhZ3JhcGggbm9kZVxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuZ2V0VHlwZSgpICE9PSAncGFyYWdyYXBoJyB8fFxuICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5nZXRUZXh0Q29udGVudCgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpc0VtcHR5UGFyYWdyYXBoID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgIGNvbnN0IG5ld1BhcmFncmFwaCA9ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKClcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuaW5zZXJ0QWZ0ZXIobmV3UGFyYWdyYXBoKVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlID0ge1xuICAgICAgICAgICAgICBlbGVtOiBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5ld1BhcmFncmFwaC5nZXRLZXkoKSksXG4gICAgICAgICAgICAgIG5vZGU6IG5ld1BhcmFncmFwaCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KGhvdmVyZWRFbGVtZW50VG9Vc2UpXG4gICAgICAgICAgfSwgMClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gMi4gRm9jdXMgb24gdGhlIG5ldyBwYXJhZ3JhcGggbm9kZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci5mb2N1cygpXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgJiZcbiAgICAgICAgICAgICdzZWxlY3QnIGluIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sIDEpXG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIGNhbGxlZCBBRlRFUiB0aGUgZm9jdXNpbmcgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgd29uJ3Qgd29ya1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCwge1xuICAgICAgICAgIG5vZGU6IGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSBhcyBQYXJhZ3JhcGhOb2RlLFxuICAgICAgICB9KVxuICAgICAgfSwgMilcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIFtlZGl0b3IsIGhvdmVyZWRFbGVtZW50XSxcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGFkZC1ibG9jay1tZW51XCJcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaGFuZGxlQWRkQ2xpY2soZXZlbnQpXG4gICAgICAgIH19XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICBhbmNob3JFbGVtLFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZGRCbG9ja0hhbmRsZVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VBZGRCbG9ja0hhbmRsZShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJTUEFDRSIsIkFERF9CTE9DS19NRU5VX0NMQVNTTkFNRSIsIkRvd253YXJkIiwiVXB3YXJkIiwiSW5kZXRlcm1pbmF0ZSIsInByZXZJbmRleCIsIkluZmluaXR5IiwiZ2V0Q3VycmVudEluZGV4Iiwia2V5c0xlbmd0aCIsIk1hdGgiLCJmbG9vciIsImdldEJsb2NrRWxlbWVudCIsImFuY2hvckVsZW0iLCJlZGl0b3IiLCJldmVudCIsInVzZUVkZ2VBc0RlZmF1bHQiLCJob3Jpem9udGFsT2Zmc2V0IiwiYW5jaG9yRWxlbWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BMZXZlbE5vZGVLZXlzIiwiZ2V0VG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIlBvaW50IiwieCIsImRvbVJlY3QiLCJSZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsImdldENvbGxhcHNlZE1hcmdpbnMiLCJyZWN0IiwiZ2VuZXJhdGVOZXdSZWN0IiwibGVmdCIsInJpZ2h0IiwicmVhc29uIiwiaXNPbkJvdHRvbVNpZGUiLCJpc09uVG9wU2lkZSIsInJlc3VsdCIsImNvbnRhaW5zIiwiJGdldE5vZGVCeUtleSIsInVzZUFkZEJsb2NrSGFuZGxlIiwiaXNFZGl0YWJsZSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJtZW51UmVmIiwidXNlUmVmIiwiaG92ZXJlZEVsZW1lbnQiLCJzZXRIb3ZlcmVkRWxlbWVudCIsInVzZVN0YXRlIiwidXNlRWZmZWN0Iiwib25Eb2N1bWVudE1vdXNlTW92ZSIsInRhcmdldCIsImlzSFRNTEVsZW1lbnQiLCJkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0iLCJwYWdlWCIsInBhZ2VZIiwiaG9yaXpvbnRhbEJ1ZmZlciIsInZlcnRpY2FsQnVmZmVyIiwiYWRqdXN0ZWRUb3AiLCJ3aW5kb3ciLCJzY3JvbGxZIiwiYWRqdXN0ZWRCb3R0b20iLCJpc09uSGFuZGxlRWxlbWVudCIsIl9lbXB0eUJsb2NrRWxlbSIsIm5vZGUiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3VycmVudCIsImlzRW1wdHlQYXJhZ3JhcGgiLCJnZXRUeXBlIiwiZ2V0VGV4dENvbnRlbnQiLCJzZXRIYW5kbGVQb3NpdGlvbiIsImhhbmRsZUFkZENsaWNrIiwidXNlQ2FsbGJhY2siLCJob3ZlcmVkRWxlbWVudFRvVXNlIiwidXBkYXRlIiwibmV3UGFyYWdyYXBoIiwiJGNyZWF0ZVBhcmFncmFwaE5vZGUiLCJpbnNlcnRBZnRlciIsInNldFRpbWVvdXQiLCJnZXRLZXkiLCJmb2N1cyIsInNlbGVjdCIsImRpc3BhdGNoQ29tbWFuZCIsIkVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsImNyZWF0ZVBvcnRhbCIsIlJlYWN0IiwiRnJhZ21lbnQiLCJidXR0b24iLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwicmVmIiwidHlwZSIsImRpdiIsImJvZHkiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBMFRnQkE7OztlQUFBQTs7O3dDQXZUMEI7eUJBQ0w7K0RBRWQ7MEJBRU07dUJBRUM7dUJBQ1I7c0JBQ0Q7NENBQ3FCO3FDQUNOO3FDQUNBO21DQUNGO21DQUNBO1FBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxRQUFRLENBQUM7QUFDZixNQUFNQywyQkFBMkI7QUFFakMsTUFBTUMsV0FBVztBQUNqQixNQUFNQyxTQUFTLENBQUM7QUFDaEIsTUFBTUMsZ0JBQWdCO0FBRXRCLElBQUlDLFlBQVlDO0FBRWhCLFNBQVNDLGdCQUFnQkMsVUFBa0I7SUFDekMsSUFBSUEsZUFBZSxHQUFHO1FBQ3BCLE9BQU9GO0lBQ1Q7SUFDQSxJQUFJRCxhQUFhLEtBQUtBLFlBQVlHLFlBQVk7UUFDNUMsT0FBT0g7SUFDVDtJQUVBLE9B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
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7ICRjcmVhdGVQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB7ICRnZXROb2RlQnlLZXksIHR5cGUgTGV4aWNhbEVkaXRvciwgdHlwZSBMZXhpY2FsTm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2d1YXJkJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludCdcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0J1xuaW1wb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4uLy4uL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCB7IGdldENvbGxhcHNlZE1hcmdpbnMgfSBmcm9tICcuLi91dGlscy9nZXRDb2xsYXBzZWRNYXJnaW5zJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMnXG5pbXBvcnQgeyBpc09uSGFuZGxlRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzT25IYW5kbGVFbGVtZW50J1xuaW1wb3J0IHsgc2V0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9zZXRIYW5kbGVQb3NpdGlvbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBTUEFDRSA9IC0yNFxuY29uc3QgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FID0gJ2FkZC1ibG9jay1tZW51J1xuXG5jb25zdCBEb3dud2FyZCA9IDFcbmNvbnN0IFVwd2FyZCA9IC0xXG5jb25zdCBJbmRldGVybWluYXRlID0gMFxuXG5sZXQgcHJldkluZGV4ID0gSW5maW5pdHlcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEluZGV4KGtleXNMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChrZXlzTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEluZmluaXR5XG4gIH1cbiAgaWYgKHByZXZJbmRleCA+PSAwICYmIHByZXZJbmRleCA8IGtleXNMZW5ndGgpIHtcbiAgICByZXR1cm4gcHJldkluZGV4XG4gIH1cblxuICByZXR1cm4gTWF0aC5mbG9vcihrZXlzTGVuZ3RoIC8gMilcbn1cblxuZnVuY3Rpb24gZ2V0QmxvY2tFbGVtZW50KFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBldmVudDogTW91c2VFdmVudCxcbiAgdXNlRWRnZUFzRGVmYXVsdCA9IGZhbHNlLFxuICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbik6IHtcbiAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGxcbn0ge1xuICBjb25zdCBhbmNob3JFbGVtZW50UmVjdCA9IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuXG4gIGxldCBibG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsID0gbnVsbFxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBmaXJzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICBsYXN0Tm9kZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoZXZlbnQueSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQueSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBibG9ja0VsZW0gPSBsYXN0Tm9kZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBibG9ja0VsZW06IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBtYXRjaGluZyBibG9jayBlbGVtZW50XG4gICAgbGV0IGluZGV4ID0gZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKVxuICAgIGxldCBkaXJlY3Rpb24gPSBJbmRldGVybWluYXRlXG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KGV2ZW50LnggKyBob3Jpem9udGFsT2Zmc2V0LCBldmVudC55KVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlYXNvbjogeyBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgfSA9IHJlY3QuY29udGFpbnMocG9pbnQpXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgcHJldkluZGV4ID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoaXNPblRvcFNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBVcHdhcmRcbiAgICAgICAgfSBlbHNlIGlmIChpc09uQm90dG9tU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IERvd253YXJkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RvcCBzZWFyY2ggYmxvY2sgZWxlbWVudFxuICAgICAgICAgIGRpcmVjdGlvbiA9IEluZmluaXR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5kZXggKz0gZGlyZWN0aW9uXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VBZGRCbG9ja0hhbmRsZShcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgaXNFZGl0YWJsZTogYm9vbGVhbixcbik6IEpTWC5FbGVtZW50IHtcbiAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcbiAgY29uc3QgW2hvdmVyZWRFbGVtZW50LCBzZXRIb3ZlcmVkRWxlbWVudF0gPSB1c2VTdGF0ZTx7XG4gICAgZWxlbTogSFRNTEVsZW1lbnRcbiAgICBub2RlOiBMZXhpY2FsTm9kZVxuICB9IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldFxuICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSAwXG4gICAgICAvLyBDYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzY3JvbGxlckVsZW0gYW5kIHRhcmdldCBpZiB0YXJnZXQgaXMgbm90IGluIHNjcm9sbGVyRWxlbVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAmJiAhc2Nyb2xsZXJFbGVtLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgeyBib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3AgfSA9IHNjcm9sbGVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICBjb25zdCB7IHBhZ2VYLCBwYWdlWSB9ID0gZXZlbnRcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbEJ1ZmZlciA9IDUwXG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQnVmZmVyID0gMjVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRUb3AgPSB0b3AgKyB3aW5kb3cuc2Nyb2xsWVxuICAgICAgICBjb25zdCBhZGp1c3RlZEJvdHRvbSA9IGJvdHRvbSArIHdpbmRvdy5zY3JvbGxZXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhZ2VZIDwgYWRqdXN0ZWRUb3AgLSB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VZID4gYWRqdXN0ZWRCb3R0b20gKyB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYIDwgbGVmdCAtIGhvcml6b250YWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA+IHJpZ2h0ICsgaG9yaXpvbnRhbEJ1ZmZlclxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRIb3ZlcmVkRWxlbWVudChudWxsKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGFsbG93IHRoZSBfZW1wdHlCbG9ja0VsZW0gdG8gYmUgZm91bmQgd2hlbiB0aGUgbW91c2UgaXMgaW4gdGhlXG4gICAgICAgIC8vIGJ1ZmZlciB6b25lIGFyb3VuZCB0aGUgc2Nyb2xsZXJFbGVtLlxuICAgICAgICBpZiAocGFnZVggPCBsZWZ0IHx8IHBhZ2VYID4gcmlnaHQpIHtcbiAgICAgICAgICBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBwYWdlWCA8IGxlZnQgPyBwYWdlWCAtIGxlZnQgOiBwYWdlWCAtIHJpZ2h0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzT25IYW5kbGVFbGVtZW50KHRhcmdldCwgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYmxvY2tFbGVtOiBfZW1wdHlCbG9ja0VsZW0sIGJsb2NrTm9kZSB9ID0gZ2V0QmxvY2tFbGVtZW50KFxuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgLWRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICAgIClcbiAgICAgIGlmICghX2VtcHR5QmxvY2tFbGVtKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgc2V0SG92ZXJlZEVsZW1lbnQoe1xuICAgICAgICBlbGVtOiBfZW1wdHlCbG9ja0VsZW0sXG4gICAgICAgIG5vZGU6IGJsb2NrTm9kZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gU2luY2UgdGhlIGRyYWdnYWJsZUJsb2NrRWxlbSBpcyBvdXRzaWRlIHRoZSBhY3R1YWwgZWRpdG9yLCB3ZSBuZWVkIHRvIGxpc3RlbiB0byB0aGUgZG9jdW1lbnRcbiAgICAvLyB0byBiZSBhYmxlIHRvIGRldGVjdCB3aGVuIHRoZSBtb3VzZSBpcyBvdXRzaWRlIHRoZSBlZGl0b3IgYW5kIHJlc3BlY3QgYSBidWZmZXIgYXJvdW5kXG4gICAgLy8gdGhlIHNjcm9sbGVyRWxlbSB0byBhdm9pZCB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGRpc2FwcGVhcmluZyB0b28gZWFybHkuXG4gICAgZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG4gICAgfVxuICB9LCBbc2Nyb2xsZXJFbGVtLCBhbmNob3JFbGVtLCBlZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiBob3ZlcmVkRWxlbWVudD8ubm9kZSkge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFRleHRDb250ZW50KCkgIT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlzRW1wdHlQYXJhZ3JhcGggPSBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SGFuZGxlUG9zaXRpb24oXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQ/LmVsZW0sXG4gICAgICAgICAgbWVudVJlZi5jdXJyZW50LFxuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgaXNFbXB0eVBhcmFncmFwaCA/IFNQQUNFIDogU1BBQ0UgLSAyMCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFthbmNob3JFbGVtLCBob3ZlcmVkRWxlbWVudCwgZWRpdG9yXSlcblxuICBjb25zdCBoYW5kbGVBZGRDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgbGV0IGhvdmVyZWRFbGVtZW50VG9Vc2UgPSBob3ZlcmVkRWxlbWVudFxuICAgICAgaWYgKCFob3ZlcmVkRWxlbWVudFRvVXNlPy5ub2RlKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyAxLiBVcGRhdGUgaG92ZXJlZEVsZW1lbnQubm9kZSB0byBhIG5ldyBwYXJhZ3JhcGggbm9kZSBpZiB0aGUgaG92ZXJlZEVsZW1lbnQubm9kZSBpcyBub3QgYSBwYXJhZ3JhcGggbm9kZVxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuZ2V0VHlwZSgpICE9PSAncGFyYWdyYXBoJyB8fFxuICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5nZXRUZXh0Q29udGVudCgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpc0VtcHR5UGFyYWdyYXBoID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgIGNvbnN0IG5ld1BhcmFncmFwaCA9ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKClcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuaW5zZXJ0QWZ0ZXIobmV3UGFyYWdyYXBoKVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlID0ge1xuICAgICAgICAgICAgICBlbGVtOiBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5ld1BhcmFncmFwaC5nZXRLZXkoKSksXG4gICAgICAgICAgICAgIG5vZGU6IG5ld1BhcmFncmFwaCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KGhvdmVyZWRFbGVtZW50VG9Vc2UpXG4gICAgICAgICAgfSwgMClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gMi4gRm9jdXMgb24gdGhlIG5ldyBwYXJhZ3JhcGggbm9kZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci5mb2N1cygpXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgJiZcbiAgICAgICAgICAgICdzZWxlY3QnIGluIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sIDEpXG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIGNhbGxlZCBBRlRFUiB0aGUgZm9jdXNpbmcgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgd29uJ3Qgd29ya1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCwge1xuICAgICAgICAgIG5vZGU6IGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSBhcyBQYXJhZ3JhcGhOb2RlLFxuICAgICAgICB9KVxuICAgICAgfSwgMilcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIFtlZGl0b3IsIGhvdmVyZWRFbGVtZW50XSxcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGFkZC1ibG9jay1tZW51XCJcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaGFuZGxlQWRkQ2xpY2soZXZlbnQpXG4gICAgICAgIH19XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICBhbmNob3JFbGVtLFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZGRCbG9ja0hhbmRsZVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VBZGRCbG9ja0hhbmRsZShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsIiRjcmVhdGVQYXJhZ3JhcGhOb2RlIiwiJGdldE5vZGVCeUtleSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsImlzSFRNTEVsZW1lbnQiLCJQb2ludCIsIlJlY3QiLCJFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EIiwiZ2V0Q29sbGFwc2VkTWFyZ2lucyIsImdldFRvcExldmVsTm9kZUtleXMiLCJpc09uSGFuZGxlRWxlbWVudCIsInNldEhhbmRsZVBvc2l0aW9uIiwiU1BBQ0UiLCJBRERfQkxPQ0tfTUVOVV9DTEFTU05BTUUiLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJwcmV2SW5kZXgiLCJJbmZpbml0eSIsImdldEN1cnJlbnRJbmRleCIsImtleXNMZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJnZXRCbG9ja0VsZW1lbnQiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZXZlbnQiLCJ1c2VFZGdlQXNEZWZhdWx0IiwiaG9yaXpvbnRhbE9mZnNldCIsImFuY2hvckVsZW1lbnRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIngiLCJkb21SZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsInJlY3QiLCJnZW5lcmF0ZU5ld1JlY3QiLCJsZWZ0IiwicmlnaHQiLCJyZWFzb24iLCJpc09uQm90dG9tU2lkZSIsImlzT25Ub3BTaWRlIiwicmVzdWx0IiwiY29udGFpbnMiLCJ1c2VBZGRCbG9ja0hhbmRsZSIsImlzRWRpdGFibGUiLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwibWVudVJlZiIsImhvdmVyZWRFbGVtZW50Iiwic2V0SG92ZXJlZEVsZW1lbnQiLCJvbkRvY3VtZW50TW91c2VNb3ZlIiwidGFyZ2V0IiwiZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtIiwicGFnZVgiLCJwYWdlWSIsImhvcml6b250YWxCdWZmZXIiLCJ2ZXJ0aWNhbEJ1ZmZlciIsImFkanVzdGVkVG9wIiwid2luZG93Iiwic2Nyb2xsWSIsImFkanVzdGVkQm90dG9tIiwiX2VtcHR5QmxvY2tFbGVtIiwibm9kZSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50IiwiaXNFbXB0eVBhcmFncmFwaCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCIsImhhbmRsZUFkZENsaWNrIiwiaG92ZXJlZEVsZW1lbnRUb1VzZSIsInVwZGF0ZSIsIm5ld1BhcmFncmFwaCIsImluc2VydEFmdGVyIiwic2V0VGltZW91dCIsImdldEtleSIsImZvY3VzIiwic2VsZWN0IiwiZGlzcGF0Y2hDb21tYW5kIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJGcmFnbWVudCIsImJ1dHRvbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJyZWYiLCJ0eXBlIiwiZGl2IiwiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJib2R5IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLHdDQUF1QztBQUNqRixTQUFTQyxvQkFBb0IsUUFBUSxVQUFTO0FBQzlDLFNBQVNDLGFBQWEsUUFBOEMsVUFBUztBQUM3RSxZQUFZQyxXQUFXLFFBQU87QUFDOUIsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDaEUsU0FBU0MsWUFBWSxRQUFRLFlBQVc7QUFFeEMsU0FBU0MsYUFBYSxRQUFRLHVCQUFzQjtBQUNwRCxTQUFTQyxLQUFLLFFBQVEsdUJBQXNCO0FBQzVDLFNBQVNDLElBQUksUUFBUSxzQkFBcUI7QUFDMUMsU0FBU0MseUJBQXlCLFFBQVEsNkNBQTRDO0FBQ3RGLFNBQVNDLG1CQUFtQixRQUFRLCtCQUE4QjtBQUNsRSxTQUFTQyxtQkFBbUIsUUFBUSwrQkFBOEI7QUFDbEUs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
|