@payloadcms/richtext-lexical 0.6.1 → 3.0.0-alpha.18
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 +5 -5
- package/dist/cell/index.d.ts +4 -4
- package/dist/cell/index.d.ts.map +1 -1
- package/dist/cell/index.js +96 -24
- package/dist/exports/components.d.ts +1 -1
- package/dist/exports/components.d.ts.map +1 -1
- package/dist/exports/components.js +5 -5
- package/dist/field/Field.d.ts +8 -3
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +19 -38
- 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 +81 -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 +26 -0
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +1 -1
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +5 -44
- 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 +77 -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 +56 -0
- package/dist/field/features/blockquote/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/blockquote/markdownTransformer.js +50 -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 +214 -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 +34 -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 +172 -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 +137 -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 +71 -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 +96 -0
- package/dist/field/features/blocks/nodes/BlocksNode.d.ts.map +1 -0
- package/dist/field/features/blocks/nodes/BlocksNode.js +158 -0
- package/dist/field/features/blocks/plugin/commands.d.ts.map +1 -0
- package/dist/field/features/blocks/plugin/commands.js +14 -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 +91 -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 +55 -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 +59 -0
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +3 -3
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +1 -1
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +5 -44
- package/dist/field/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/converters/paragraph.js +4 -3
- 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 +12 -9
- 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/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 +24 -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 +10 -9
- 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 +20 -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 +24 -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 +30 -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 +25 -0
- package/dist/field/features/debug/testrecorder/plugin/index.d.ts.map +1 -0
- package/dist/field/features/debug/testrecorder/plugin/index.js +504 -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 +30 -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 +25 -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 +70 -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 +57 -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 +37 -0
- package/dist/field/features/format/bold/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/bold/markdownTransformers.js +58 -0
- package/dist/field/features/format/common/floatingSelectToolbarSection.js +3 -3
- 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 +52 -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 +29 -0
- package/dist/field/features/format/inlinecode/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/inlinecode/markdownTransformers.js +19 -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 +53 -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 +30 -0
- package/dist/field/features/format/italic/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/format/italic/markdownTransformers.js +35 -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 +52 -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 +29 -0
- package/dist/field/features/format/strikethrough/markdownTransformers.js +3 -3
- 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 +48 -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 +25 -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 +48 -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 +25 -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 +48 -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 +25 -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 +104 -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 +67 -0
- package/dist/field/features/heading/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/heading/markdownTransformer.js +39 -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 +67 -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 +26 -0
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +3 -3
- package/dist/field/features/link/drawer/baseFields.d.ts.map +1 -0
- package/dist/field/features/link/drawer/baseFields.js +128 -0
- package/dist/field/features/link/drawer/index.d.ts.map +1 -0
- package/dist/field/features/link/drawer/index.js +133 -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/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 +98 -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 +108 -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 +79 -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 +326 -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/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 +336 -0
- package/dist/field/features/link/plugins/clickableLink/index.d.ts.map +1 -0
- package/dist/field/features/link/plugins/clickableLink/index.js +23 -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 +14 -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 +293 -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 +64 -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/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 +45 -0
- package/dist/field/features/link/plugins/link/index.d.ts.map +1 -0
- package/dist/field/features/link/plugins/link/index.js +69 -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 +56 -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 +91 -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 +45 -0
- package/dist/field/features/lists/checklist/markdownTransformers.d.ts.map +1 -0
- package/dist/field/features/lists/checklist/markdownTransformers.js +26 -0
- package/dist/field/features/lists/checklist/plugin/index.d.ts.map +1 -0
- package/dist/field/features/lists/checklist/plugin/index.js +23 -0
- package/dist/field/features/lists/common/markdown.js +4 -4
- package/dist/field/features/lists/htmlConverter.d.ts.map +1 -1
- package/dist/field/features/lists/htmlConverter.js +7 -5
- 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 +81 -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 +45 -0
- package/dist/field/features/lists/orderedlist/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/lists/orderedlist/markdownTransformer.js +26 -0
- 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 +81 -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 +45 -0
- package/dist/field/features/lists/unorderedlist/markdownTransformer.d.ts.map +1 -0
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js +26 -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 +16 -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 +30 -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 +18 -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 +16 -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 +41 -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 +18 -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 +16 -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 +32 -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 +18 -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 +16 -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 +32 -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 +18 -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 +16 -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 +30 -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 +18 -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 +16 -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 +36 -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 +18 -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 +16 -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 +35 -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 +18 -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 +28 -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 +87 -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/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 +44 -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 +57 -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 +23 -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 +131 -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 +16 -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 +33 -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 +18 -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 +16 -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 +39 -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 +18 -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 +16 -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 +45 -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 +18 -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 +16 -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 +40 -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 +18 -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 +16 -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 +35 -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 +18 -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 +16 -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 +36 -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 +18 -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 +16 -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 +28 -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 +18 -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 +16 -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 +37 -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 +18 -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 +16 -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 +36 -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 +18 -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 +16 -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 +31 -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 +18 -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 +34 -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 +134 -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 +6 -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 +44 -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 +57 -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 +23 -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 +131 -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 +73 -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 +26 -0
- package/dist/field/features/relationship/drawer/commands.d.ts.map +1 -0
- package/dist/field/features/relationship/drawer/commands.js +14 -0
- package/dist/field/features/relationship/drawer/index.d.ts.map +1 -0
- package/dist/field/features/relationship/drawer/index.js +130 -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 +66 -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 +36 -0
- package/dist/field/features/relationship/nodes/RelationshipNode.d.ts.map +1 -0
- package/dist/field/features/relationship/nodes/RelationshipNode.js +172 -0
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts.map +1 -0
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +154 -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 +107 -0
- package/dist/field/features/relationship/populationPromise.d.ts.map +1 -0
- package/dist/field/features/relationship/populationPromise.js +34 -0
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.d.ts.map +1 -0
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +84 -0
- package/dist/field/features/types.d.ts +139 -70
- package/dist/field/features/types.d.ts.map +1 -1
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -0
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +158 -0
- package/dist/field/features/upload/component/index.d.ts.map +1 -0
- package/dist/field/features/upload/component/index.js +186 -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 +15 -0
- package/dist/field/features/upload/drawer/index.d.ts.map +1 -0
- package/dist/field/features/upload/drawer/index.js +127 -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 +65 -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 +113 -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 +160 -0
- package/dist/field/features/upload/plugin/index.d.ts.map +1 -0
- package/dist/field/features/upload/plugin/index.js +111 -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 +56 -0
- package/dist/field/features/upload/validate.d.ts.map +1 -0
- package/dist/field/features/upload/validate.js +29 -0
- package/dist/field/index.d.ts +7 -2
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +80 -6
- package/dist/field/index.scss +2 -2
- package/dist/field/lexical/EditorPlugin.d.ts.map +1 -1
- package/dist/field/lexical/EditorPlugin.js +7 -13
- package/dist/field/lexical/LexicalEditor.js +5 -3
- 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 +21 -21
- 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 +99 -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 +18 -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 +53 -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 +144 -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 +75 -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 +136 -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 +83 -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/nodes/index.d.ts +2 -2
- package/dist/field/lexical/nodes/index.d.ts.map +1 -1
- package/dist/field/lexical/nodes/index.js +7 -2
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +4 -2
- 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 +15 -13
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +12 -60
- 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 +11 -29
- 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/MarkdownShortcut/index.js +5 -3
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +7 -7
- 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 +10 -15
- 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 +4 -4
- package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/index.js +9 -14
- package/dist/field/lexical/plugins/SlashMenu/index.scss +1 -1
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +59 -35
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +0 -2
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +4 -2
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.scss +0 -2
- package/dist/field/lexical/theme/EditorTheme.d.ts.map +1 -1
- package/dist/field/lexical/theme/EditorTheme.js +2 -1
- package/dist/field/lexical/theme/EditorTheme.scss +0 -2
- package/dist/field/lexical/ui/ContentEditable.js +4 -2
- package/dist/field/lexical/ui/icons/AlignJustify/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/AlignJustify/index.js +40 -0
- package/dist/field/lexical/utils/environment.js +15 -15
- package/dist/field/lexical/utils/nodeFormat.js +19 -19
- package/dist/field/lexical/utils/swipe.js +4 -4
- package/dist/generateComponentMap.d.ts +6 -0
- package/dist/generateComponentMap.d.ts.map +1 -0
- package/dist/generateComponentMap.js +92 -0
- package/dist/generateSchemaMap.d.ts +6 -0
- package/dist/generateSchemaMap.d.ts.map +1 -0
- package/dist/generateSchemaMap.js +37 -0
- package/dist/index.d.ts +59 -56
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +291 -260
- package/dist/populate/defaultValue.js +6 -6
- package/dist/populate/recurseNestedFields.d.ts.map +1 -1
- package/dist/populate/recurseNestedFields.js +3 -1
- package/dist/populate/richTextRelationshipPromise.js +2 -2
- 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/useLexicalFeature.d.ts +3 -0
- package/dist/useLexicalFeature.d.ts.map +1 -0
- package/dist/useLexicalFeature.js +19 -0
- package/dist/validate/index.d.ts +4 -4
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +2 -3
- package/dist/validate/validateNodes.d.ts +2 -4
- package/dist/validate/validateNodes.d.ts.map +1 -1
- package/dist/validate/validateNodes.js +2 -4
- package/package.json +25 -19
- 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 -142
- 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 -218
- 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 -148
- 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 -138
- 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 -145
- package/dist/field/features/Blocks/nodes/BlocksNode.d.ts.map +0 -1
- package/dist/field/features/Blocks/nodes/BlocksNode.js +0 -171
- 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 -88
- 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/index.d.ts +0 -33
- package/dist/field/features/Link/index.d.ts.map +0 -1
- package/dist/field/features/Link/index.js +0 -199
- 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 -335
- 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 -310
- 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 -63
- 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/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 -116
- 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 -128
- 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 -113
- package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts.map +0 -1
- package/dist/field/features/Relationship/nodes/RelationshipNode.js +0 -170
- package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts.map +0 -1
- package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +0 -159
- 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 -104
- 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 -82
- package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts.map +0 -1
- package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +0 -146
- package/dist/field/features/Upload/component/index.d.ts.map +0 -1
- package/dist/field/features/Upload/component/index.js +0 -189
- 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 -125
- 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 -166
- 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 -158
- package/dist/field/features/Upload/plugin/index.d.ts.map +0 -1
- package/dist/field/features/Upload/plugin/index.js +0 -108
- 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 -106
- 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 -68
- package/dist/field/features/debug/TestRecorder/plugin/index.d.ts.map +0 -1
- package/dist/field/features/debug/TestRecorder/plugin/index.js +0 -498
- 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 -68
- 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 -68
- 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 -96
- 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 -88
- 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 -89
- 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 -88
- 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 -84
- 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 -84
- 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 -84
- 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 -112
- 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 -133
- 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 -131
- 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 -131
- 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/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 -129
- 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/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 -129
- 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 -97
- 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 -110
- 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}/drawer/types.js +0 -0
- /package/dist/field/features/{Link/plugins/floatingLinkEditor → link/nodes}/types.js +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/{migrations/LexicalPluginToLexical/converter → link/plugins/floatingLinkEditor}/types.js +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/{SlateToLexical → lexicalPluginToLexical}/converter/types.js +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
|
@@ -14,7 +14,7 @@ const _utils = require("@lexical/utils");
|
|
|
14
14
|
const _lexical = require("lexical");
|
|
15
15
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
16
16
|
const _reactdom = require("react-dom");
|
|
17
|
-
const _EditorConfigProvider = require("../../config/EditorConfigProvider");
|
|
17
|
+
const _EditorConfigProvider = require("../../config/client/EditorConfigProvider");
|
|
18
18
|
const _getDOMRangeRect = require("../../utils/getDOMRangeRect");
|
|
19
19
|
const _setFloatingElemPosition = require("../../utils/setFloatingElemPosition");
|
|
20
20
|
const _ToolbarButton = require("./ToolbarButton");
|
|
@@ -41,7 +41,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
41
41
|
if (cache && cache.has(obj)) {
|
|
42
42
|
return cache.get(obj);
|
|
43
43
|
}
|
|
44
|
-
var newObj = {
|
|
44
|
+
var newObj = {
|
|
45
|
+
__proto__: null
|
|
46
|
+
};
|
|
45
47
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
46
48
|
for(var key in obj){
|
|
47
49
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -60,52 +62,32 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
60
62
|
return newObj;
|
|
61
63
|
}
|
|
62
64
|
function ButtonSectionEntry({ anchorElem, editor, entry }) {
|
|
63
|
-
const Component = (0, _react.useMemo)(()=>{
|
|
64
|
-
return entry?.Component ? /*#__PURE__*/ _react.lazy(()=>entry.Component().then((resolvedComponent)=>({
|
|
65
|
-
default: resolvedComponent
|
|
66
|
-
}))) : null;
|
|
67
|
-
}, [
|
|
68
|
-
entry
|
|
69
|
-
]);
|
|
70
|
-
const ChildComponent = (0, _react.useMemo)(()=>{
|
|
71
|
-
return entry?.ChildComponent ? /*#__PURE__*/ _react.lazy(()=>entry.ChildComponent().then((resolvedChildComponent)=>({
|
|
72
|
-
default: resolvedChildComponent
|
|
73
|
-
}))) : null;
|
|
74
|
-
}, [
|
|
75
|
-
entry
|
|
76
|
-
]);
|
|
77
65
|
if (entry.Component) {
|
|
78
|
-
return Component && /*#__PURE__*/ _react.createElement(
|
|
66
|
+
return entry?.Component && /*#__PURE__*/ _react.createElement(entry.Component, {
|
|
79
67
|
anchorElem: anchorElem,
|
|
80
68
|
editor: editor,
|
|
81
69
|
entry: entry,
|
|
82
70
|
key: entry.key
|
|
83
|
-
})
|
|
71
|
+
});
|
|
84
72
|
}
|
|
85
73
|
return /*#__PURE__*/ _react.createElement(_ToolbarButton.ToolbarButton, {
|
|
86
74
|
entry: entry,
|
|
87
75
|
key: entry.key
|
|
88
|
-
}, ChildComponent && /*#__PURE__*/ _react.createElement(
|
|
76
|
+
}, entry?.ChildComponent && /*#__PURE__*/ _react.createElement(entry.ChildComponent, null));
|
|
89
77
|
}
|
|
90
78
|
function ToolbarSection({ anchorElem, editor, index, section }) {
|
|
91
79
|
const { editorConfig } = (0, _EditorConfigProvider.useEditorConfigContext)();
|
|
92
|
-
const Icon =
|
|
93
|
-
return section?.type === 'dropdown' && section.entries.length && section.ChildComponent ? /*#__PURE__*/ _react.lazy(()=>section.ChildComponent().then((resolvedComponent)=>({
|
|
94
|
-
default: resolvedComponent
|
|
95
|
-
}))) : null;
|
|
96
|
-
}, [
|
|
97
|
-
section
|
|
98
|
-
]);
|
|
80
|
+
const Icon = section?.type === 'dropdown' && section.entries.length && section.ChildComponent ? section.ChildComponent : null;
|
|
99
81
|
return /*#__PURE__*/ _react.createElement("div", {
|
|
100
82
|
className: `floating-select-toolbar-popup__section floating-select-toolbar-popup__section-${section.key}`,
|
|
101
83
|
key: section.key
|
|
102
|
-
}, section.type === 'dropdown' && section.entries.length && (Icon ? /*#__PURE__*/ _react.createElement(
|
|
84
|
+
}, section.type === 'dropdown' && section.entries.length && (Icon ? /*#__PURE__*/ _react.createElement(_ToolbarDropdown.ToolbarDropdown, {
|
|
103
85
|
Icon: Icon,
|
|
104
86
|
anchorElem: anchorElem,
|
|
105
87
|
editor: editor,
|
|
106
88
|
entries: section.entries,
|
|
107
89
|
sectionKey: section.key
|
|
108
|
-
})
|
|
90
|
+
}) : /*#__PURE__*/ _react.createElement(_ToolbarDropdown.ToolbarDropdown, {
|
|
109
91
|
anchorElem: anchorElem,
|
|
110
92
|
editor: editor,
|
|
111
93
|
entries: section.entries,
|
|
@@ -332,4 +314,4 @@ function FloatingSelectToolbarPlugin({ anchorElem = document.body }) {
|
|
|
332
314
|
return useFloatingTextFormatToolbar(editor, anchorElem);
|
|
333
315
|
}
|
|
334
316
|
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gICRpc1RleHROb2RlLFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdUb29sYmFyU2VjdGlvbiwgRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IGdldERPTVJhbmdlUmVjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2dldERPTVJhbmdlUmVjdCdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24nXG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uIH0gZnJvbSAnLi9Ub29sYmFyQnV0dG9uJ1xuaW1wb3J0IHsgVG9vbGJhckRyb3Bkb3duIH0gZnJvbSAnLi9Ub29sYmFyRHJvcGRvd24nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuZnVuY3Rpb24gQnV0dG9uU2VjdGlvbkVudHJ5KHtcbiAgYW5jaG9yRWxlbSxcbiAgZWRpdG9yLFxuICBlbnRyeSxcbn06IHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yXG4gIGVudHJ5OiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IENvbXBvbmVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBlbnRyeT8uQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBlbnRyeS5Db21wb25lbnQoKS50aGVuKChyZXNvbHZlZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJlc29sdmVkQ29tcG9uZW50LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtlbnRyeV0pXG5cbiAgY29uc3QgQ2hpbGRDb21wb25lbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZW50cnk/LkNoaWxkQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBlbnRyeS5DaGlsZENvbXBvbmVudCgpLnRoZW4oKHJlc29sdmVkQ2hpbGRDb21wb25lbnQpID0+ICh7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXNvbHZlZENoaWxkQ29tcG9uZW50LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtlbnRyeV0pXG5cbiAgaWYgKGVudHJ5LkNvbXBvbmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBDb21wb25lbnQgJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPENvbXBvbmVudCBhbmNob3JFbGVtPXthbmNob3JFbGVtfSBlZGl0b3I9e2VkaXRvcn0gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0gLz57JyAnfVxuICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFRvb2xiYXJCdXR0b24gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0+XG4gICAgICB7Q2hpbGRDb21wb25lbnQgJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPENoaWxkQ29tcG9uZW50IC8+XG4gICAgICAgIDwvUmVhY3QuU3VzcGVuc2U+XG4gICAgICApfVxuICAgIDwvVG9vbGJhckJ1dHRvbj5cbiAgKVxufVxuXG5mdW5jdGlvbiBUb29sYmFyU2VjdGlvbih7XG4gIGFuY2hvckVsZW0sXG4gIGVkaXRvcixcbiAgaW5kZXgsXG4gIHNlY3Rpb24sXG59OiB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBpbmRleDogbnVtYmVyXG4gIHNlY3Rpb246IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25cbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IHsgZWRpdG9yQ29uZmlnIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBJY29uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHNlY3Rpb24/LnR5cGUgPT09ICdkcm9wZG93bicgJiYgc2VjdGlvbi5lbnRyaWVzLmxlbmd0aCAmJiBzZWN0aW9uLkNoaWxkQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBzZWN0aW9uLkNoaWxkQ29tcG9uZW50KCkudGhlbigocmVzb2x2ZWRDb21wb25lbnQpID0+ICh7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXNvbHZlZENvbXBvbmVudCxcbiAgICAgICAgICB9KSksXG4gICAgICAgIClcbiAgICAgIDogbnVsbFxuICB9LCBbc2VjdGlvbl0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fc2VjdGlvbiBmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fc2VjdGlvbi0ke3NlY3Rpb24ua2V5fWB9XG4gICAgICBrZXk9e3NlY3Rpb24ua2V5fVxuICAgID5cbiAgICAgIHtzZWN0aW9uLnR5cGUgPT09ICdkcm9wZG93bicgJiZcbiAgICAgICAgc2VjdGlvbi5lbnRyaWVzLmxlbmd0aCAmJlxuICAgICAgICAoSWNvbiA/IChcbiAgICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgICAgIEljb249e0ljb259XG4gICAgICAgICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgICAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgICAgICAgICBlbnRyaWVzPXtzZWN0aW9uLmVudHJpZXN9XG4gICAgICAgICAgICAgIHNlY3Rpb25LZXk9e3NlY3Rpb24ua2V5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVudHJpZXM9e3NlY3Rpb24uZW50cmllc31cbiAgICAgICAgICAgIHNlY3Rpb25LZXk9e3NlY3Rpb24ua2V5fVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAge3NlY3Rpb24udHlwZSA9PT0gJ2J1dHRvbnMnICYmXG4gICAgICAgIHNlY3Rpb24uZW50cmllcy5sZW5ndGggJiZcbiAgICAgICAgc2VjdGlvbi5lbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEJ1dHRvblNlY3Rpb25FbnRyeVxuICAgICAgICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgICAgZW50cnk9e2VudHJ5fVxuICAgICAgICAgICAgICBrZXk9e2VudHJ5LmtleX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIHtpbmRleCA8IGVkaXRvckNvbmZpZy5mZWF0dXJlcy5mbG9hdGluZ1NlbGVjdFRvb2xiYXI/LnNlY3Rpb25zLmxlbmd0aCAtIDEgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpdmlkZXJcIiAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiBGbG9hdGluZ1NlbGVjdFRvb2xiYXIoe1xuICBhbmNob3JFbGVtLFxuICBlZGl0b3IsXG59OiB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgY2FyZXRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHsgZWRpdG9yQ29uZmlnIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjbG9zZUZsb2F0aW5nVG9vbGJhciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmPy5jdXJyZW50KSB7XG4gICAgICBjb25zdCBpc09wYWNpdHlaZXJvID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9PT0gJzAnXG4gICAgICBjb25zdCBpc1BvaW50ZXJFdmVudHNOb25lID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9PT0gJ25vbmUnXG5cbiAgICAgIGlmICghaXNPcGFjaXR5WmVybykge1xuICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICB9XG4gICAgICBpZiAoIWlzUG9pbnRlckV2ZW50c05vbmUpIHtcbiAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJ1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZl0pXG5cbiAgY29uc3QgbW91c2VNb3ZlTGlzdGVuZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZj8uY3VycmVudCAmJiAoZS5idXR0b25zID09PSAxIHx8IGUuYnV0dG9ucyA9PT0gMykpIHtcbiAgICAgICAgY29uc3QgaXNPcGFjaXR5WmVybyA9IHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPT09ICcwJ1xuICAgICAgICBjb25zdCBpc1BvaW50ZXJFdmVudHNOb25lID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9PT0gJ25vbmUnXG4gICAgICAgIGlmICghaXNPcGFjaXR5WmVybyB8fCAhaXNQb2ludGVyRXZlbnRzTm9uZSkge1xuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBtb3VzZSBpcyBub3Qgb3ZlciB0aGUgcG9wdXBcbiAgICAgICAgICBjb25zdCB4ID0gZS5jbGllbnRYXG4gICAgICAgICAgY29uc3QgeSA9IGUuY2xpZW50WVxuICAgICAgICAgIGNvbnN0IGVsZW1lbnRVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KVxuICAgICAgICAgIGlmICghcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuY29udGFpbnMoZWxlbWVudFVuZGVyTW91c2UpKSB7XG4gICAgICAgICAgICAvLyBNb3VzZSBpcyBub3Qgb3ZlciB0aGUgdGFyZ2V0IGVsZW1lbnQgPT4gbm90IGEgbm9ybWFsIGNsaWNrLCBidXQgcHJvYmFibHkgYSBkcmFnXG4gICAgICAgICAgICBjbG9zZUZsb2F0aW5nVG9vbGJhcigpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2xvc2VGbG9hdGluZ1Rvb2xiYXJdLFxuICApXG5cbiAgY29uc3QgbW91c2VVcExpc3RlbmVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWY/LmN1cnJlbnQpIHtcbiAgICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ICE9PSAnMScpIHtcbiAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgfVxuICAgICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgIT09ICdhdXRvJykge1xuICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ2F1dG8nXG4gICAgICB9XG4gICAgfVxuICB9LCBbcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlTW92ZUxpc3RlbmVyKVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBtb3VzZVVwTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW91c2VNb3ZlTGlzdGVuZXIpXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgbW91c2VVcExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZiwgbW91c2VNb3ZlTGlzdGVuZXIsIG1vdXNlVXBMaXN0ZW5lcl0pXG5cbiAgY29uc3QgdXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcblxuICAgIGNvbnN0IHBvcHVwQ2hhclN0eWxlc0VkaXRvckVsZW0gPSBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudFxuICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuXG4gICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvckVsZW0gPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgIW5hdGl2ZVNlbGVjdGlvbi5pc0NvbGxhcHNlZCAmJlxuICAgICAgcm9vdEVsZW1lbnQgIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKVxuICAgICkge1xuICAgICAgY29uc3QgcmFuZ2VSZWN0ID0gZ2V0RE9NUmFuZ2VSZWN0KG5hdGl2ZVNlbGVjdGlvbiwgcm9vdEVsZW1lbnQpXG5cbiAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uKHJhbmdlUmVjdCwgcG9wdXBDaGFyU3R5bGVzRWRpdG9yRWxlbSwgYW5jaG9yRWxlbSwgJ2NlbnRlcicpXG5cbiAgICAgIGlmIChjYXJldFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uKFxuICAgICAgICAgIHJhbmdlUmVjdCwgLy8gc2VsZWN0aW9uIHRvIHBvc2l0aW9uIGFyb3VuZFxuICAgICAgICAgIGNhcmV0UmVmLmN1cnJlbnQsIC8vIHdoYXQgdG8gcG9zaXRpb25cbiAgICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JFbGVtLCAvLyBhbmNob3IgZWxlbVxuICAgICAgICAgICdjZW50ZXInLFxuICAgICAgICAgIDEwLFxuICAgICAgICAgIDUsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgYW5jaG9yRWxlbV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzY3JvbGxlckVsZW0gPSBhbmNob3JFbGVtLnBhcmVudEVsZW1lbnRcblxuICAgIGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcbiAgICBpZiAoc2Nyb2xsZXJFbGVtKSB7XG4gICAgICBzY3JvbGxlckVsZW0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciwgYW5jaG9yRWxlbV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgIH0pXG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoeyBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGVkaXRvclN0YXRlLnJlYWQoKCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvYXRpbmctc2VsZWN0LXRvb2xiYXItcG9wdXBcIiByZWY9e3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZn0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmV0XCIgcmVmPXtjYXJldFJlZn0gLz5cbiAgICAgIHtlZGl0b3IuaXNFZGl0YWJsZSgpICYmIChcbiAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgIHtlZGl0b3JDb25maWc/LmZlYXR1cmVzICYmXG4gICAgICAgICAgICBlZGl0b3JDb25maWcuZmVhdHVyZXM/LmZsb2F0aW5nU2VsZWN0VG9vbGJhcj8uc2VjdGlvbnMubWFwKChzZWN0aW9uLCBpKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFRvb2xiYXJTZWN0aW9uXG4gICAgICAgICAgICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICAgICAgICBpbmRleD17aX1cbiAgICAgICAgICAgICAgICAgIGtleT17c2VjdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICBzZWN0aW9uPXtzZWN0aW9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiB1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyKFxuICBlZGl0b3I6IExleGljYWxFZGl0b3IsXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50LFxuKTogSlNYLkVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgW2lzVGV4dCwgc2V0SXNUZXh0XSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHVwZGF0ZVBvcHVwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgLy8gU2hvdWxkIG5vdCB0byBwb3AgdXAgdGhlIGZsb2F0aW5nIHRvb2xiYXIgd2hlbiB1c2luZyBJTUUgaW5wdXRcbiAgICAgIGlmIChlZGl0b3IuaXNDb21wb3NpbmcoKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgY29uc3QgbmF0aXZlU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG5cbiAgICAgIGlmIChcbiAgICAgICAgbmF0aXZlU2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICAgICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSB8fFxuICAgICAgICAgIHJvb3RFbGVtZW50ID09PSBudWxsIHx8XG4gICAgICAgICAgIXJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKSlcbiAgICAgICkge1xuICAgICAgICBzZXRJc1RleHQoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3Rpb24uZ2V0VGV4dENvbnRlbnQoKSAhPT0gJycpIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBzZWxlY3Rpb24uZ2V0Tm9kZXMoKVxuICAgICAgICBsZXQgZm91bmROb2RlV2l0aFRleHQgPSBmYWxzZVxuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgICBpZiAoJGlzVGV4dE5vZGUobm9kZSkpIHtcbiAgICAgICAgICAgIHNldElzVGV4dCh0cnVlKVxuICAgICAgICAgICAgZm91bmROb2RlV2l0aFRleHQgPSB0cnVlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZvdW5kTm9kZVdpdGhUZXh0KSB7XG4gICAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJc1RleHQoZmFsc2UpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhd1RleHRDb250ZW50ID0gc2VsZWN0aW9uLmdldFRleHRDb250ZW50KCkucmVwbGFjZSgvXFxuL2csICcnKVxuICAgICAgaWYgKCFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSAmJiByYXdUZXh0Q29udGVudCA9PT0gJycpIHtcbiAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9KVxuICB9LCBbZWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIHVwZGF0ZVBvcHVwKVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB1cGRhdGVQb3B1cClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgdXBkYXRlUG9wdXApXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdXBkYXRlUG9wdXApXG4gICAgfVxuICB9LCBbdXBkYXRlUG9wdXBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVBvcHVwKClcbiAgICAgIH0pLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyUm9vdExpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgaWYgKGVkaXRvci5nZXRSb290RWxlbWVudCgpID09PSBudWxsKSB7XG4gICAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZVBvcHVwXSlcblxuICBpZiAoIWlzVGV4dCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKDxGbG9hdGluZ1NlbGVjdFRvb2xiYXIgYW5jaG9yRWxlbT17YW5jaG9yRWxlbX0gZWRpdG9yPXtlZGl0b3J9IC8+LCBhbmNob3JFbGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gRmxvYXRpbmdTZWxlY3RUb29sYmFyUGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyKGVkaXRvciwgYW5jaG9yRWxlbSlcbn1cbiJdLCJuYW1lcyI6WyJGbG9hdGluZ1NlbGVjdFRvb2xiYXJQbHVnaW4iLCJCdXR0b25TZWN0aW9uRW50cnkiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZW50cnkiLCJDb21wb25lbnQiLCJ1c2VNZW1vIiwiUmVhY3QiLCJsYXp5IiwidGhlbiIsInJlc29sdmVkQ29tcG9uZW50IiwiZGVmYXVsdCIsIkNoaWxkQ29tcG9uZW50IiwicmVzb2x2ZWRDaGlsZENvbXBvbmVudCIsIlN1c3BlbnNlIiwia2V5IiwiVG9vbGJhckJ1dHRvbiIsIlRvb2xiYXJTZWN0aW9uIiwiaW5kZXgiLCJzZWN0aW9uIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsIkljb24iLCJ0eXBlIiwiZW50cmllcyIsImxlbmd0aCIsImRpdiIsImNsYXNzTmFtZSIsIlRvb2xiYXJEcm9wZG93biIsInNlY3Rpb25LZXkiLCJtYXAiLCJmZWF0dXJlcyIsImZsb2F0aW5nU2VsZWN0VG9vbGJhciIsInNlY3Rpb25zIiwiRmxvYXRpbmdTZWxlY3RUb29sYmFyIiwicG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmIiwidXNlUmVmIiwiY2FyZXRSZWYiLCJjbG9zZUZsb2F0aW5nVG9vbGJhciIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsImlzT3BhY2l0eVplcm8iLCJzdHlsZSIsIm9wYWNpdHkiLCJpc1BvaW50ZXJFdmVudHNOb25lIiwicG9pbnRlckV2ZW50cyIsIm1vdXNlTW92ZUxpc3RlbmVyIiwiZSIsImJ1dHRvbnMiLCJ4IiwiY2xpZW50WCIsInkiLCJjbGllbnRZIiwiZWxlbWVudFVuZGVyTW91c2UiLCJkb2N1bWVudCIsImVsZW1lbnRGcm9tUG9pbnQiLCJjb250YWlucyIsIm1vdXNlVXBMaXN0ZW5lciIsInVzZUVmZmVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciIsInNlbGVjdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCJwb3B1cENoYXJTdHlsZXNFZGl0b3JFbGVtIiwibmF0aXZlU2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsImlzQ29sbGFwc2VkIiwiYW5jaG9yTm9kZSIsInJhbmdlUmVjdCIsImdldERPTVJhbmdlUmVjdCIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uIiwic2Nyb2xsZXJFbGVtIiwicGFyZW50RWxlbWVudCIsInVwZGF0ZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsIm1lcmdlUmVnaXN0ZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiZWRpdG9yU3RhdGUiLCJyZWdpc3RlckNvbW1hbmQiLCJTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsInJlZiIsImlzRWRpdGFibGUiLCJGcmFnbWVudCIsImkiLCJ1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyIiwiaXNUZXh0Iiwic2V0SXNUZXh0IiwidXNlU3RhdGUiLCJ1cGRhdGVQb3B1cCIsImlzQ29tcG9zaW5nIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJnZXRUZXh0Q29udGVudCIsIm5vZGVzIiwiZ2V0Tm9kZXMiLCJmb3VuZE5vZGVXaXRoVGV4dCIsIm5vZGUiLCIkaXNUZXh0Tm9kZSIsInJhd1RleHRDb250ZW50IiwicmVwbGFjZSIsInJlZ2lzdGVyUm9vdExpc3RlbmVyIiwiY3JlYXRlUG9ydGFsIiwiYm9keSIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkE0WWdCQTs7O2VBQUFBOzs7d0NBelkwQjt1QkFDWjt5QkFPdkI7K0RBQzJEOzBCQUVyQztzQ0FJVTtpQ0FDUDt5Q0FDUTsrQkFDVjtpQ0FDRTtRQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLFNBQVNDLG1CQUFtQixFQUMxQkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLEtBQUssRUFLTjtJQUNDLE1BQU1DLFlBQVlDLElBQUFBLGNBQU8sRUFBQztRQUN4QixPQUFPRixPQUFPQywwQkFDVkUsT0FBTUMsSUFBSSxDQUFDLElBQ1RKLE1BQU1DLFNBQVMsR0FBR0ksSUFBSSxDQUFDLENBQUNDLG9CQUF1QixDQUFBO29CQUM3Q0MsU0FBU0Q7Z0JBQ1gsQ0FBQSxNQUVGO0lBQ04sR0FBRztRQUFDTjtLQUFNO0lBRVYsTUFBTVEsaUJBQWlCTixJQUFBQSxjQUFPLEVBQUM7UUFDN0IsT0FBT0YsT0FBT1EsK0JBQ1ZMLE9BQU1DLElBQUksQ0FBQyxJQUNUSixNQUFNUSxjQUFjLEdBQUdILElBQUksQ0FBQyxDQUFDSSx5QkFBNEIsQ0FBQTtvQkFDdkRGLFNBQVNFO2dCQUNYLENBQUEsTUFFRjtJQUNOLEdBQUc7UUFBQ1Q7S0FBTTtJQUVWLElBQUlBLE1BQU1DLFNBQVMsRUFBRTtRQUNuQixPQUNFQSwyQkFDRSxxQkFBQ0UsT0FBTU8sUUFBUSxzQkFDYixxQkFBQ1Q7WUFBVUgsWUFBWUE7WUFBWUMsUUFBUUE7WUFBUUMsT0FBT0E7WUFBT1csS0FBS1gsTUFBTVcsR0FBRztZQUFLO0lBSTVGO0lBRUEscUJBQ0UscUJBQUNDLDRCQUFhO1FBQUNaLE9BQU9BO1FBQU9XLEtBQUtYLE1BQU1XLEdBQUc7T0FDeENILGdDQUNDLHFCQUFDTCxPQUFNTyxRQUFRLHNC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
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gICRpc1RleHROb2RlLFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdUb29sYmFyU2VjdGlvbiwgRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbmZpZy9jbGllbnQvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRET01SYW5nZVJlY3QgfSBmcm9tICcuLi8uLi91dGlscy9nZXRET01SYW5nZVJlY3QnXG5pbXBvcnQgeyBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3NldEZsb2F0aW5nRWxlbVBvc2l0aW9uJ1xuaW1wb3J0IHsgVG9vbGJhckJ1dHRvbiB9IGZyb20gJy4vVG9vbGJhckJ1dHRvbidcbmltcG9ydCB7IFRvb2xiYXJEcm9wZG93biB9IGZyb20gJy4vVG9vbGJhckRyb3Bkb3duJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmZ1bmN0aW9uIEJ1dHRvblNlY3Rpb25FbnRyeSh7XG4gIGFuY2hvckVsZW0sXG4gIGVkaXRvcixcbiAgZW50cnksXG59OiB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBlbnRyeTogRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5XG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgaWYgKGVudHJ5LkNvbXBvbmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBlbnRyeT8uQ29tcG9uZW50ICYmIChcbiAgICAgICAgPGVudHJ5LkNvbXBvbmVudCBhbmNob3JFbGVtPXthbmNob3JFbGVtfSBlZGl0b3I9e2VkaXRvcn0gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0gLz5cbiAgICAgIClcbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxUb29sYmFyQnV0dG9uIGVudHJ5PXtlbnRyeX0ga2V5PXtlbnRyeS5rZXl9PlxuICAgICAge2VudHJ5Py5DaGlsZENvbXBvbmVudCAmJiA8ZW50cnkuQ2hpbGRDb21wb25lbnQgLz59XG4gICAgPC9Ub29sYmFyQnV0dG9uPlxuICApXG59XG5cbmZ1bmN0aW9uIFRvb2xiYXJTZWN0aW9uKHtcbiAgYW5jaG9yRWxlbSxcbiAgZWRpdG9yLFxuICBpbmRleCxcbiAgc2VjdGlvbixcbn06IHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yXG4gIGluZGV4OiBudW1iZXJcbiAgc2VjdGlvbjogRmxvYXRpbmdUb29sYmFyU2VjdGlvblxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgZWRpdG9yQ29uZmlnIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBJY29uID1cbiAgICBzZWN0aW9uPy50eXBlID09PSAnZHJvcGRvd24nICYmIHNlY3Rpb24uZW50cmllcy5sZW5ndGggJiYgc2VjdGlvbi5DaGlsZENvbXBvbmVudFxuICAgICAgPyBzZWN0aW9uLkNoaWxkQ29tcG9uZW50XG4gICAgICA6IG51bGxcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17YGZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19zZWN0aW9uIGZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19zZWN0aW9uLSR7c2VjdGlvbi5rZXl9YH1cbiAgICAgIGtleT17c2VjdGlvbi5rZXl9XG4gICAgPlxuICAgICAge3NlY3Rpb24udHlwZSA9PT0gJ2Ryb3Bkb3duJyAmJlxuICAgICAgICBzZWN0aW9uLmVudHJpZXMubGVuZ3RoICYmXG4gICAgICAgIChJY29uID8gKFxuICAgICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICAgIEljb249e0ljb259XG4gICAgICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICBlbnRyaWVzPXtzZWN0aW9uLmVudHJpZXN9XG4gICAgICAgICAgICBzZWN0aW9uS2V5PXtzZWN0aW9uLmtleX1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVudHJpZXM9e3NlY3Rpb24uZW50cmllc31cbiAgICAgICAgICAgIHNlY3Rpb25LZXk9e3NlY3Rpb24ua2V5fVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAge3NlY3Rpb24udHlwZSA9PT0gJ2J1dHRvbnMnICYmXG4gICAgICAgIHNlY3Rpb24uZW50cmllcy5sZW5ndGggJiZcbiAgICAgICAgc2VjdGlvbi5lbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEJ1dHRvblNlY3Rpb25FbnRyeVxuICAgICAgICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgICAgZW50cnk9e2VudHJ5fVxuICAgICAgICAgICAgICBrZXk9e2VudHJ5LmtleX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIHtpbmRleCA8IGVkaXRvckNvbmZpZy5mZWF0dXJlcy5mbG9hdGluZ1NlbGVjdFRvb2xiYXI/LnNlY3Rpb25zLmxlbmd0aCAtIDEgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpdmlkZXJcIiAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiBGbG9hdGluZ1NlbGVjdFRvb2xiYXIoe1xuICBhbmNob3JFbGVtLFxuICBlZGl0b3IsXG59OiB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGNhcmV0UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcblxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgY29uc3QgY2xvc2VGbG9hdGluZ1Rvb2xiYXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZj8uY3VycmVudCkge1xuICAgICAgY29uc3QgaXNPcGFjaXR5WmVybyA9IHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPT09ICcwJ1xuICAgICAgY29uc3QgaXNQb2ludGVyRXZlbnRzTm9uZSA9IHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPT09ICdub25lJ1xuXG4gICAgICBpZiAoIWlzT3BhY2l0eVplcm8pIHtcbiAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcwJ1xuICAgICAgfVxuICAgICAgaWYgKCFpc1BvaW50ZXJFdmVudHNOb25lKSB7XG4gICAgICAgIHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSdcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWZdKVxuXG4gIGNvbnN0IG1vdXNlTW92ZUxpc3RlbmVyID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWY/LmN1cnJlbnQgJiYgKGUuYnV0dG9ucyA9PT0gMSB8fCBlLmJ1dHRvbnMgPT09IDMpKSB7XG4gICAgICAgIGNvbnN0IGlzT3BhY2l0eVplcm8gPSBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID09PSAnMCdcbiAgICAgICAgY29uc3QgaXNQb2ludGVyRXZlbnRzTm9uZSA9IHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPT09ICdub25lJ1xuICAgICAgICBpZiAoIWlzT3BhY2l0eVplcm8gfHwgIWlzUG9pbnRlckV2ZW50c05vbmUpIHtcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgbW91c2UgaXMgbm90IG92ZXIgdGhlIHBvcHVwXG4gICAgICAgICAgY29uc3QgeCA9IGUuY2xpZW50WFxuICAgICAgICAgIGNvbnN0IHkgPSBlLmNsaWVudFlcbiAgICAgICAgICBjb25zdCBlbGVtZW50VW5kZXJNb3VzZSA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoeCwgeSlcbiAgICAgICAgICBpZiAoIXBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LmNvbnRhaW5zKGVsZW1lbnRVbmRlck1vdXNlKSkge1xuICAgICAgICAgICAgLy8gTW91c2UgaXMgbm90IG92ZXIgdGhlIHRhcmdldCBlbGVtZW50ID0+IG5vdCBhIG5vcm1hbCBjbGljaywgYnV0IHByb2JhYmx5IGEgZHJhZ1xuICAgICAgICAgICAgY2xvc2VGbG9hdGluZ1Rvb2xiYXIoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2Nsb3NlRmxvYXRpbmdUb29sYmFyXSxcbiAgKVxuXG4gIGNvbnN0IG1vdXNlVXBMaXN0ZW5lciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmPy5jdXJyZW50KSB7XG4gICAgICBpZiAocG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSAhPT0gJzEnKSB7XG4gICAgICAgIHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgICAgIH1cbiAgICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5wb2ludGVyRXZlbnRzICE9PSAnYXV0bycpIHtcbiAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdhdXRvJ1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3VzZU1vdmVMaXN0ZW5lcilcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgbW91c2VVcExpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlTW92ZUxpc3RlbmVyKVxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIG1vdXNlVXBMaXN0ZW5lcilcbiAgICB9XG4gIH0sIFtwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYsIG1vdXNlTW92ZUxpc3RlbmVyLCBtb3VzZVVwTGlzdGVuZXJdKVxuXG4gIGNvbnN0IHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG5cbiAgICBjb25zdCBwb3B1cENoYXJTdHlsZXNFZGl0b3JFbGVtID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnRcbiAgICBjb25zdCBuYXRpdmVTZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcblxuICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JFbGVtID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgaWYgKFxuICAgICAgc2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICBuYXRpdmVTZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgICFuYXRpdmVTZWxlY3Rpb24uaXNDb2xsYXBzZWQgJiZcbiAgICAgIHJvb3RFbGVtZW50ICE9PSBudWxsICYmXG4gICAgICByb290RWxlbWVudC5jb250YWlucyhuYXRpdmVTZWxlY3Rpb24uYW5jaG9yTm9kZSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHJhbmdlUmVjdCA9IGdldERPTVJhbmdlUmVjdChuYXRpdmVTZWxlY3Rpb24sIHJvb3RFbGVtZW50KVxuXG4gICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbihyYW5nZVJlY3QsIHBvcHVwQ2hhclN0eWxlc0VkaXRvckVsZW0sIGFuY2hvckVsZW0sICdjZW50ZXInKVxuXG4gICAgICBpZiAoY2FyZXRSZWYuY3VycmVudCkge1xuICAgICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbihcbiAgICAgICAgICByYW5nZVJlY3QsIC8vIHNlbGVjdGlvbiB0byBwb3NpdGlvbiBhcm91bmRcbiAgICAgICAgICBjYXJldFJlZi5jdXJyZW50LCAvLyB3aGF0IHRvIHBvc2l0aW9uXG4gICAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yRWxlbSwgLy8gYW5jaG9yIGVsZW1cbiAgICAgICAgICAnY2VudGVyJyxcbiAgICAgICAgICAxMCxcbiAgICAgICAgICA1LFxuICAgICAgICAgIHRydWUsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtlZGl0b3IsIGFuY2hvckVsZW1dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgICBjb25zdCB1cGRhdGUgPSAoKSA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgdXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhcigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG4gICAgaWYgKHNjcm9sbGVyRWxlbSkge1xuICAgICAgc2Nyb2xsZXJFbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcbiAgICAgIGlmIChzY3JvbGxlckVsZW0pIHtcbiAgICAgICAgc2Nyb2xsZXJFbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtlZGl0b3IsIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIsIGFuY2hvckVsZW1dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyKClcbiAgICB9KVxuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKHsgZWRpdG9yU3RhdGUgfSkgPT4ge1xuICAgICAgICBlZGl0b3JTdGF0ZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyKClcbiAgICAgICAgfSlcbiAgICAgIH0pLFxuXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyKClcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwXCIgcmVmPXtwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWZ9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJldFwiIHJlZj17Y2FyZXRSZWZ9IC8+XG4gICAgICB7ZWRpdG9yLmlzRWRpdGFibGUoKSAmJiAoXG4gICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICB7ZWRpdG9yQ29uZmlnPy5mZWF0dXJlcyAmJlxuICAgICAgICAgICAgZWRpdG9yQ29uZmlnLmZlYXR1cmVzPy5mbG9hdGluZ1NlbGVjdFRvb2xiYXI/LnNlY3Rpb25zLm1hcCgoc2VjdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxUb29sYmFyU2VjdGlvblxuICAgICAgICAgICAgICAgICAgYW5jaG9yRWxlbT17YW5jaG9yRWxlbX1cbiAgICAgICAgICAgICAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgICAgICAgICAgICAgaW5kZXg9e2l9XG4gICAgICAgICAgICAgICAgICBrZXk9e3NlY3Rpb24ua2V5fVxuICAgICAgICAgICAgICAgICAgc2VjdGlvbj17c2VjdGlvbn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZnVuY3Rpb24gdXNlRmxvYXRpbmdUZXh0Rm9ybWF0VG9vbGJhcihcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbik6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtpc1RleHQsIHNldElzVGV4dF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCB1cGRhdGVQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIC8vIFNob3VsZCBub3QgdG8gcG9wIHVwIHRoZSBmbG9hdGluZyB0b29sYmFyIHdoZW4gdXNpbmcgSU1FIGlucHV0XG4gICAgICBpZiAoZWRpdG9yLmlzQ29tcG9zaW5nKCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuXG4gICAgICBpZiAoXG4gICAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgICAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikgfHxcbiAgICAgICAgICByb290RWxlbWVudCA9PT0gbnVsbCB8fFxuICAgICAgICAgICFyb290RWxlbWVudC5jb250YWlucyhuYXRpdmVTZWxlY3Rpb24uYW5jaG9yTm9kZSkpXG4gICAgICApIHtcbiAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0aW9uLmdldFRleHRDb250ZW50KCkgIT09ICcnKSB7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gc2VsZWN0aW9uLmdldE5vZGVzKClcbiAgICAgICAgbGV0IGZvdW5kTm9kZVdpdGhUZXh0ID0gZmFsc2VcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICAgICAgaWYgKCRpc1RleHROb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICBzZXRJc1RleHQodHJ1ZSlcbiAgICAgICAgICAgIGZvdW5kTm9kZVdpdGhUZXh0ID0gdHJ1ZVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmb3VuZE5vZGVXaXRoVGV4dCkge1xuICAgICAgICAgIHNldElzVGV4dChmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgfVxuXG4gICAgICBjb25zdCByYXdUZXh0Q29udGVudCA9IHNlbGVjdGlvbi5nZXRUZXh0Q29udGVudCgpLnJlcGxhY2UoL1xcbi9nLCAnJylcbiAgICAgIGlmICghc2VsZWN0aW9uLmlzQ29sbGFwc2VkKCkgJiYgcmF3VGV4dENvbnRlbnQgPT09ICcnKSB7XG4gICAgICAgIHNldElzVGV4dChmYWxzZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW2VkaXRvcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb25jaGFuZ2UnLCB1cGRhdGVQb3B1cClcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdXBkYXRlUG9wdXApXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIHVwZGF0ZVBvcHVwKVxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHVwZGF0ZVBvcHVwKVxuICAgIH1cbiAgfSwgW3VwZGF0ZVBvcHVwXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKCkgPT4ge1xuICAgICAgICB1cGRhdGVQb3B1cCgpXG4gICAgICB9KSxcbiAgICAgIGVkaXRvci5yZWdpc3RlclJvb3RMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgIGlmIChlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKSA9PT0gbnVsbCkge1xuICAgICAgICAgIHNldElzVGV4dChmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVQb3B1cF0pXG5cbiAgaWYgKCFpc1RleHQpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCg8RmxvYXRpbmdTZWxlY3RUb29sYmFyIGFuY2hvckVsZW09e2FuY2hvckVsZW19IGVkaXRvcj17ZWRpdG9yfSAvPiwgYW5jaG9yRWxlbSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZsb2F0aW5nU2VsZWN0VG9vbGJhclBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICByZXR1cm4gdXNlRmxvYXRpbmdUZXh0Rm9ybWF0VG9vbGJhcihlZGl0b3IsIGFuY2hvckVsZW0pXG59XG4iXSwibmFtZXMiOlsiRmxvYXRpbmdTZWxlY3RUb29sYmFyUGx1Z2luIiwiQnV0dG9uU2VjdGlvbkVudHJ5IiwiYW5jaG9yRWxlbSIsImVkaXRvciIsImVudHJ5IiwiQ29tcG9uZW50Iiwia2V5IiwiVG9vbGJhckJ1dHRvbiIsIkNoaWxkQ29tcG9uZW50IiwiVG9vbGJhclNlY3Rpb24iLCJpbmRleCIsInNlY3Rpb24iLCJlZGl0b3JDb25maWciLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiSWNvbiIsInR5cGUiLCJlbnRyaWVzIiwibGVuZ3RoIiwiZGl2IiwiY2xhc3NOYW1lIiwiVG9vbGJhckRyb3Bkb3duIiwic2VjdGlvbktleSIsIm1hcCIsImZlYXR1cmVzIiwiZmxvYXRpbmdTZWxlY3RUb29sYmFyIiwic2VjdGlvbnMiLCJGbG9hdGluZ1NlbGVjdFRvb2xiYXIiLCJwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYiLCJ1c2VSZWYiLCJjYXJldFJlZiIsImNsb3NlRmxvYXRpbmdUb29sYmFyIiwidXNlQ2FsbGJhY2siLCJjdXJyZW50IiwiaXNPcGFjaXR5WmVybyIsInN0eWxlIiwib3BhY2l0eSIsImlzUG9pbnRlckV2ZW50c05vbmUiLCJwb2ludGVyRXZlbnRzIiwibW91c2VNb3ZlTGlzdGVuZXIiLCJlIiwiYnV0dG9ucyIsIngiLCJjbGllbnRYIiwieSIsImNsaWVudFkiLCJlbGVtZW50VW5kZXJNb3VzZSIsImRvY3VtZW50IiwiZWxlbWVudEZyb21Qb2ludCIsImNvbnRhaW5zIiwibW91c2VVcExpc3RlbmVyIiwidXNlRWZmZWN0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyIiwic2VsZWN0aW9uIiwiJGdldFNlbGVjdGlvbiIsInBvcHVwQ2hhclN0eWxlc0VkaXRvckVsZW0iLCJuYXRpdmVTZWxlY3Rpb24iLCJ3aW5kb3ciLCJnZXRTZWxlY3Rpb24iLCJyb290RWxlbWVudCIsImdldFJvb3RFbGVtZW50IiwiaXNDb2xsYXBzZWQiLCJhbmNob3JOb2RlIiwicmFuZ2VSZWN0IiwiZ2V0RE9NUmFuZ2VSZWN0Iiwic2V0RmxvYXRpbmdFbGVtUG9zaXRpb24iLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwidXBkYXRlIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJlZGl0b3JTdGF0ZSIsInJlZ2lzdGVyQ29tbWFuZCIsIlNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwicmVmIiwiaXNFZGl0YWJsZSIsIlJlYWN0IiwiRnJhZ21lbnQiLCJpIiwidXNlRmxvYXRpbmdUZXh0Rm9ybWF0VG9vbGJhciIsImlzVGV4dCIsInNldElzVGV4dCIsInVzZVN0YXRlIiwidXBkYXRlUG9wdXAiLCJpc0NvbXBvc2luZyIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiZ2V0VGV4dENvbnRlbnQiLCJub2RlcyIsImdldE5vZGVzIiwiZm91bmROb2RlV2l0aFRleHQiLCJub2RlIiwiJGlzVGV4dE5vZGUiLCJyYXdUZXh0Q29udGVudCIsInJlcGxhY2UiLCJyZWdpc3RlclJvb3RMaXN0ZW5lciIsImNyZWF0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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseSelection, LexicalEditor } from 'lexical';
|
|
2
2
|
import type React from 'react';
|
|
3
3
|
export type FloatingToolbarSection = {
|
|
4
|
-
ChildComponent?:
|
|
4
|
+
ChildComponent?: React.FC;
|
|
5
5
|
entries: Array<FloatingToolbarSectionEntry>;
|
|
6
6
|
key: string;
|
|
7
7
|
order?: number;
|
|
@@ -13,13 +13,13 @@ export type FloatingToolbarSection = {
|
|
|
13
13
|
type: 'buttons';
|
|
14
14
|
};
|
|
15
15
|
export type FloatingToolbarSectionEntry = {
|
|
16
|
-
ChildComponent?:
|
|
16
|
+
ChildComponent?: React.FC;
|
|
17
17
|
/** Use component to ignore the children and onClick properties. It does not use the default, pre-defined format Button component */
|
|
18
|
-
Component?:
|
|
18
|
+
Component?: React.FC<{
|
|
19
19
|
anchorElem: HTMLElement;
|
|
20
20
|
editor: LexicalEditor;
|
|
21
21
|
entry: FloatingToolbarSectionEntry;
|
|
22
|
-
}
|
|
22
|
+
}>;
|
|
23
23
|
isActive?: ({ editor, selection }: {
|
|
24
24
|
editor: LexicalEditor;
|
|
25
25
|
selection: BaseSelection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/FloatingSelectToolbar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,MAAM,sBAAsB,GAC9B;IACE,cAAc,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/FloatingSelectToolbar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,MAAM,sBAAsB,GAC9B;IACE,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACzB,OAAO,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,UAAU,CAAA;CACjB,GACD;IACE,OAAO,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAEL,MAAM,MAAM,2BAA2B,GAAG;IACxC,cAAc,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACzB,oIAAoI;IACpI,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACnB,UAAU,EAAE,WAAW,CAAA;QACvB,MAAM,EAAE,aAAa,CAAA;QACrB,KAAK,EAAE,2BAA2B,CAAA;KACnC,CAAC,CAAA;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,aAAa,CAAA;KAAE,KAAK,OAAO,CAAA;IAClG,SAAS,CAAC,EAAE,CAAC,EACX,MAAM,EACN,SAAS,GACV,EAAE;QACD,MAAM,EAAE,aAAa,CAAA;QACrB,SAAS,EAAE,aAAa,CAAA;KACzB,KAAK,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACtF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
|
|
@@ -11,7 +11,7 @@ Object.defineProperty(exports, "MarkdownShortcutPlugin", {
|
|
|
11
11
|
});
|
|
12
12
|
const _LexicalMarkdownShortcutPlugin = require("@lexical/react/LexicalMarkdownShortcutPlugin");
|
|
13
13
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
14
|
-
const _EditorConfigProvider = require("../../config/EditorConfigProvider");
|
|
14
|
+
const _EditorConfigProvider = require("../../config/client/EditorConfigProvider");
|
|
15
15
|
function _getRequireWildcardCache(nodeInterop) {
|
|
16
16
|
if (typeof WeakMap !== "function") return null;
|
|
17
17
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -33,7 +33,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
33
33
|
if (cache && cache.has(obj)) {
|
|
34
34
|
return cache.get(obj);
|
|
35
35
|
}
|
|
36
|
-
var newObj = {
|
|
36
|
+
var newObj = {
|
|
37
|
+
__proto__: null
|
|
38
|
+
};
|
|
37
39
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
38
40
|
for(var key in obj){
|
|
39
41
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -58,4 +60,4 @@ const MarkdownShortcutPlugin = ()=>{
|
|
|
58
60
|
});
|
|
59
61
|
};
|
|
60
62
|
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvTWFya2Rvd25TaG9ydGN1dC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyBNYXJrZG93blNob3J0Y3V0UGx1Z2luIGFzIExleGljYWxNYXJrZG93blNob3J0Y3V0UGx1Z2luIH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbE1hcmtkb3duU2hvcnRjdXRQbHVnaW4nXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbmZpZy9jbGllbnQvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5cbmV4cG9ydCBjb25zdCBNYXJrZG93blNob3J0Y3V0UGx1Z2luOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgeyBlZGl0b3JDb25maWcgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuXG4gIHJldHVybiA8TGV4aWNhbE1hcmtkb3duU2hvcnRjdXRQbHVnaW4gdHJhbnNmb3JtZXJzPXtlZGl0b3JDb25maWcuZmVhdHVyZXMubWFya2Rvd25UcmFuc2Zvcm1lcnN9IC8+XG59XG4iXSwibmFtZXMiOlsiTWFya2Rvd25TaG9ydGN1dFBsdWdpbiIsImVkaXRvckNvbmZpZyIsInVzZUVkaXRvckNvbmZpZ0NvbnRleHQiLCJMZXhpY2FsTWFya2Rvd25TaG9ydGN1dFBsdWdpbiIsInRyYW5zZm9ybWVycyIsImZlYXR1cmVzIiwibWFya2Rvd25UcmFuc2Zvcm1lcnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFNYUE7OztlQUFBQTs7OytDQUwyRDsrREFDakQ7c0NBRWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEMsTUFBTUEseUJBQW1DO0lBQzlDLE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdDLElBQUFBLDRDQUFzQjtJQUUvQyxxQkFBTyxxQkFBQ0MscURBQTZCO1FBQUNDLGNBQWNILGFBQWFJLFFBQVEsQ0FBQ0Msb0JBQW9COztBQUNoRyJ9
|
|
@@ -10,18 +10,18 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
+
LexicalMenu: function() {
|
|
14
|
+
return LexicalMenu;
|
|
15
|
+
},
|
|
16
|
+
SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: function() {
|
|
17
|
+
return SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND;
|
|
18
|
+
},
|
|
13
19
|
getScrollParent: function() {
|
|
14
20
|
return getScrollParent;
|
|
15
21
|
},
|
|
16
22
|
useDynamicPositioning: function() {
|
|
17
23
|
return useDynamicPositioning;
|
|
18
24
|
},
|
|
19
|
-
SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: function() {
|
|
20
|
-
return SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND;
|
|
21
|
-
},
|
|
22
|
-
LexicalMenu: function() {
|
|
23
|
-
return LexicalMenu;
|
|
24
|
-
},
|
|
25
25
|
useMenuAnchorRef: function() {
|
|
26
26
|
return useMenuAnchorRef;
|
|
27
27
|
}
|
|
@@ -423,4 +423,4 @@ function useMenuAnchorRef(anchorElem, resolution, setResolution, className) {
|
|
|
423
423
|
return anchorElementRef;
|
|
424
424
|
}
|
|
425
425
|
|
|
426
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL0xleGljYWxNZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQsIExleGljYWxFZGl0b3IsIFRleHROb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RQb3J0YWwgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gIEtFWV9BUlJPV19VUF9DT01NQU5ELFxuICBLRVlfRU5URVJfQ09NTUFORCxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBLRVlfVEFCX0NPTU1BTkQsXG4gIGNyZWF0ZUNvbW1hbmQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBNZW51VGV4dE1hdGNoIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBNZW51UmVzb2x1dGlvbiA9IHtcbiAgZ2V0UmVjdDogKCkgPT4gRE9NUmVjdFxuICBtYXRjaD86IE1lbnVUZXh0TWF0Y2hcbn1cblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmV4cG9ydCB0eXBlIE1lbnVSZW5kZXJGbiA9IChcbiAgYW5jaG9yRWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LFxuICBpdGVtUHJvcHM6IHtcbiAgICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcDogKHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24pID0+IHZvaWRcbiAgICBzZWxlY3RlZE9wdGlvbktleTogbnVsbCB8IHN0cmluZ1xuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5OiAob3B0aW9uS2V5OiBzdHJpbmcpID0+IHZvaWRcbiAgfSxcbiAgbWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcsXG4pID0+IEpTWC5FbGVtZW50IHwgUmVhY3RQb3J0YWwgfCBudWxsXG5cbmNvbnN0IHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSAodGFyZ2V0OiBIVE1MRWxlbWVudCkgPT4ge1xuICBjb25zdCB0eXBlYWhlYWRDb250YWluZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NsYXNoLW1lbnUnKVxuICBpZiAoIXR5cGVhaGVhZENvbnRhaW5lck5vZGUpIHJldHVyblxuXG4gIGNvbnN0IHR5cGVhaGVhZFJlY3QgPSB0eXBlYWhlYWRDb250YWluZXJOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wICsgdHlwZWFoZWFkUmVjdC5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICB0eXBlYWhlYWRDb250YWluZXJOb2RlLnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICB9KVxuICB9XG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wIDwgMCkge1xuICAgIHR5cGVhaGVhZENvbnRhaW5lck5vZGUuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgIH0pXG4gIH1cblxuICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pXG59XG5cbi8qKlxuICogV2FsayBiYWNrd2FyZHMgYWxvbmcgdXNlciBpbnB1dCBhbmQgZm9yd2FyZCB0aHJvdWdoIGVudGl0eSB0aXRsZSB0byB0cnlcbiAqIGFuZCByZXBsYWNlIG1vcmUgb2YgdGhlIHVzZXIncyB0ZXh0IHdpdGggZW50aXR5LlxuICovXG5mdW5jdGlvbiBnZXRGdWxsTWF0Y2hPZmZzZXQoZG9jdW1lbnRUZXh0OiBzdHJpbmcsIGVudHJ5VGV4dDogc3RyaW5nLCBvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCB0cmlnZ2VyT2Zmc2V0ID0gb2Zmc2V0XG4gIGZvciAobGV0IGkgPSB0cmlnZ2VyT2Zmc2V0OyBpIDw9IGVudHJ5VGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudFRleHQuc3Vic3RyKC1pKSA9PT0gZW50cnlUZXh0LnN1YnN0cigwLCBpKSkge1xuICAgICAgdHJpZ2dlck9mZnNldCA9IGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRyaWdnZXJPZmZzZXRcbn1cblxuLyoqXG4gKiBTcGxpdCBMZXhpY2FsIFRleHROb2RlIGFuZCByZXR1cm4gYSBuZXcgVGV4dE5vZGUgb25seSBjb250YWluaW5nIG1hdGNoZWQgdGV4dC5cbiAqIENvbW1vbiB1c2UgY2FzZXMgaW5jbHVkZTogcmVtb3ZpbmcgdGhlIG5vZGUsIHJlcGxhY2luZyB3aXRoIGEgbmV3IG5vZGUuXG4gKi9cbmZ1bmN0aW9uICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkobWF0Y2g6IE1lbnVUZXh0TWF0Y2gpOiBUZXh0Tm9kZSB8IG51bGwge1xuICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pIHx8ICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBzZWxlY3Rpb25PZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIGNvbnN0IHRleHRDb250ZW50ID0gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIHNlbGVjdGlvbk9mZnNldClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBjaGFyYWN0ZXJPZmZzZXQgPSBtYXRjaC5yZXBsYWNlYWJsZVN0cmluZy5sZW5ndGhcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBxdWVyeU9mZnNldCA9IGdldEZ1bGxNYXRjaE9mZnNldCh0ZXh0Q29udGVudCwgbWF0Y2gubWF0Y2hpbmdTdHJpbmcsIGNoYXJhY3Rlck9mZnNldClcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBzZWxlY3Rpb25PZmZzZXQgLSBxdWVyeU9mZnNldFxuICBpZiAoc3RhcnRPZmZzZXQgPCAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBsZXQgbmV3Tm9kZVxuICBpZiAoc3RhcnRPZmZzZXQgPT09IDApIHtcbiAgICA7W25ld05vZGVdID0gYW5jaG9yTm9kZS5zcGxpdFRleHQoc2VsZWN0aW9uT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIDtbLCBuZXdOb2RlXSA9IGFuY2hvck5vZGUuc3BsaXRUZXh0KHN0YXJ0T2Zmc2V0LCBzZWxlY3Rpb25PZmZzZXQpXG4gIH1cblxuICByZXR1cm4gbmV3Tm9kZVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmZ1bmN0aW9uIGlzVHJpZ2dlclZpc2libGVJbk5lYXJlc3RTY3JvbGxDb250YWluZXIoXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCB0UmVjdCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgY1JlY3QgPSBjb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiB0UmVjdC50b3AgPiBjUmVjdC50b3AgJiYgdFJlY3QudG9wIDwgY1JlY3QuYm90dG9tXG59XG5cbi8vIFJlcG9zaXRpb24gdGhlIG1lbnUgb24gc2Nyb2xsLCB3aW5kb3cgcmVzaXplLCBhbmQgZWxlbWVudCByZXNpemUuXG5leHBvcnQgZnVuY3Rpb24gdXNlRHluYW1pY1Bvc2l0aW9uaW5nKFxuICByZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbiB8IG51bGwsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgb25SZXBvc2l0aW9uOiAoKSA9PiB2b2lkLFxuICBvblZpc2liaWxpdHlDaGFuZ2U/OiAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHZvaWQsXG4pIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGFyZ2V0RWxlbWVudCAhPSBudWxsICYmIHJlc29sdXRpb24gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuICAgICAgY29uc3Qgcm9vdFNjcm9sbFBhcmVudCA9XG4gICAgICAgIHJvb3RFbGVtZW50ICE9IG51bGwgPyBnZXRTY3JvbGxQYXJlbnQocm9vdEVsZW1lbnQsIGZhbHNlKSA6IGRvY3VtZW50LmJvZHlcbiAgICAgIGxldCB0aWNraW5nID0gZmFsc2VcbiAgICAgIGxldCBwcmV2aW91c0lzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcihcbiAgICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgcm9vdFNjcm9sbFBhcmVudCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aWNraW5nKSB7XG4gICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvblJlcG9zaXRpb24oKVxuICAgICAgICAgICAgdGlja2luZyA9IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aWNraW5nID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcih0YXJnZXRFbGVtZW50LCByb290U2Nyb2xsUGFyZW50KVxuICAgICAgICBpZiAoaXNJblZpZXcgIT09IHByZXZpb3VzSXNJblZpZXcpIHtcbiAgICAgICAgICBwcmV2aW91c0lzSW5WaWV3ID0gaXNJblZpZXdcbiAgICAgICAgICBpZiAob25WaXNpYmlsaXR5Q2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgICAgIG9uVmlzaWJpbGl0eUNoYW5nZShpc0luVmlldylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKG9uUmVwb3NpdGlvbilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlcG9zaXRpb24pXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldEVsZW1lbnQpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUodGFyZ2V0RWxlbWVudClcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVwb3NpdGlvbilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsLCB0cnVlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3RhcmdldEVsZW1lbnQsIGVkaXRvciwgb25WaXNpYmlsaXR5Q2hhbmdlLCBvblJlcG9zaXRpb24sIHJlc29sdXRpb25dKVxufVxuXG5leHBvcnQgY29uc3QgU0NST0xMX1RZUEVBSEVBRF9PUFRJT05fSU5UT19WSUVXX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgaW5kZXg6IG51bWJlclxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufT4gPSBjcmVhdGVDb21tYW5kKCdTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBMZXhpY2FsTWVudSh7XG4gIGFuY2hvckVsZW1lbnRSZWYsXG4gIGNsb3NlLFxuICBlZGl0b3IsXG4gIC8vIGdyb3Vwc1dpdGhPcHRpb25zIGZpbHRlcmluZyBpcyBhbHJlYWR5IGhhbmRsZWQgaW4gU2xhc2hNZW51L2luZGV4LnRzeC4gVGh1cywgZ3JvdXBzV2l0aE9wdGlvbnMgYWx3YXlzIGNvbnRhaW5zIHRoZSBtYXRjaGluZyBvcHRpb25zLlxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvblNlbGVjdE9wdGlvbixcbiAgcmVzb2x1dGlvbixcbiAgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5ID0gZmFsc2UsXG59OiB7XG4gIGFuY2hvckVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+XG4gIGNsb3NlOiAoKSA9PiB2b2lkXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uU2VsZWN0T3B0aW9uOiAoXG4gICAgb3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgdGV4dE5vZGVDb250YWluaW5nUXVlcnk6IFRleHROb2RlIHwgbnVsbCxcbiAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZyxcbiAgKSA9PiB2b2lkXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uXG4gIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeT86IGJvb2xlYW5cbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbc2VsZWN0ZWRPcHRpb25LZXksIHNldFNlbGVjdGVkT3B0aW9uS2V5XSA9IHVzZVN0YXRlPG51bGwgfCBzdHJpbmc+KG51bGwpXG5cbiAgY29uc3QgbWF0Y2hpbmdTdHJpbmcgPSAocmVzb2x1dGlvbi5tYXRjaCAmJiByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nKSB8fCAnJ1xuXG4gIGNvbnN0IHVwZGF0ZVNlbGVjdGVkT3B0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogU2xhc2hNZW51T3B0aW9uKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBgJHtiYXNlQ2xhc3N9X19pdGVtLSR7b3B0aW9uLmtleX1gKVxuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gIClcblxuICBjb25zdCBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBzZXQgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBmaXJzdCBvZiB0aGUgbWF0Y2hpbmcgb25lc1xuICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJiBtYXRjaGluZ1N0cmluZyAhPSBudWxsKSB7XG4gICAgICAvLyBncm91cHNXaXRoT3B0aW9ucyBmaWx0ZXJpbmcgaXMgYWxyZWFkeSBoYW5kbGVkIGluIFNsYXNoTWVudS9pbmRleC50c3guIFRodXMsIGdyb3Vwc1dpdGhPcHRpb25zIGFsd2F5cyBjb250YWlucyB0aGUgbWF0Y2hpbmcgb3B0aW9ucy5cbiAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcblxuICAgICAgaWYgKGFsbE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0TWF0Y2hpbmdPcHRpb24gPSBhbGxPcHRpb25zWzBdXG4gICAgICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKGZpcnN0TWF0Y2hpbmdPcHRpb24pXG4gICAgICB9XG4gICAgfVxuICB9LCBbZ3JvdXBzV2l0aE9wdGlvbnMsIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLCBtYXRjaGluZ1N0cmluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbigpXG4gIH0sIFttYXRjaGluZ1N0cmluZywgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb25dKVxuXG4gIGNvbnN0IHNlbGVjdE9wdGlvbkFuZENsZWFuVXAgPSB1c2VDYWxsYmFjayhcbiAgICAoc2VsZWN0ZWRPcHRpb246IFNsYXNoTWVudU9wdGlvbikgPT4ge1xuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5ID1cbiAgICAgICAgICByZXNvbHV0aW9uLm1hdGNoICE9IG51bGwgJiYgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5XG4gICAgICAgICAgICA/ICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkocmVzb2x1dGlvbi5tYXRjaClcbiAgICAgICAgICAgIDogbnVsbFxuXG4gICAgICAgIG9uU2VsZWN0T3B0aW9uKFxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLFxuICAgICAgICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5LFxuICAgICAgICAgIGNsb3NlLFxuICAgICAgICAgIHJlc29sdXRpb24ubWF0Y2ggPyByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nIDogJycsXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yLCBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnksIHJlc29sdXRpb24ubWF0Y2gsIG9uU2VsZWN0T3B0aW9uLCBjbG9zZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvcl0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5KG51bGwpXG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb24oKVxuICAgIH1cbiAgfSwgW1xuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5VG9GaXJzdE1hdGNoaW5nT3B0aW9uLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCxcbiAgICAgICAgKHsgb3B0aW9uIH0pID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uLnJlZiAmJiBvcHRpb24ucmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChvcHRpb24ucmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVTZWxlY3RlZE9wdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQ8S2V5Ym9hcmRFdmVudD4oXG4gICAgICAgIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25LZXkgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBhbGxPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcblxuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXggIT09IGFsbE9wdGlvbnMubGVuZ3RoIC0gMSA/IHNlbGVjdGVkSW5kZXggKyAxIDogMFxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnNbbmV3U2VsZWN0ZWRJbmRleF1cblxuICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRPcHRpb24obmV3U2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgICBpZiAobmV3U2VsZWN0ZWRPcHRpb24ucmVmICE9IG51bGwgJiYgbmV3U2VsZWN0ZWRPcHRpb24ucmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgIGluZGV4OiBuZXdTZWxlY3RlZEluZGV4LFxuICAgICAgICAgICAgICAgIG9wdGlvbjogbmV3U2VsZWN0ZWRPcHRpb24sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfQVJST1dfVVBfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHBheWxvYWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbktleSAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgYWxsT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZsYXRNYXAoKGdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFsbE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHNlbGVjdGVkT3B0aW9uS2V5KVxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRJbmRleCAhPT0gMCA/IHNlbGVjdGVkSW5kZXggLSAxIDogYWxsT3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkT3B0aW9uID0gYWxsT3B0aW9uc1tuZXdTZWxlY3RlZEluZGV4XVxuXG4gICAgICAgICAgICB1cGRhdGVTZWxlY3RlZE9wdGlvbihuZXdTZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgIGlmIChuZXdTZWxlY3RlZE9wdGlvbi5yZWYgIT0gbnVsbCAmJiBuZXdTZWxlY3RlZE9wdGlvbi5yZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5ld1NlbGVjdGVkT3B0aW9uLnJlZi5jdXJyZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZDxLZXlib2FyZEV2ZW50PihcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gcGF5bG9hZFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfVEFCX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG5cbiAgICAgICAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwgfHwgc2VsZWN0ZWRPcHRpb25LZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhbGxPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmxhdE1hcCgoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMpXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhbGxPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PT0gc2VsZWN0ZWRPcHRpb25LZXkpXG4gICAgICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcChzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRU5URVJfQ09NTUFORCxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyA9PT0gbnVsbCB8fCBzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAoc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW1xuICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgY2xvc2UsXG4gICAgZWRpdG9yLFxuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICBdKVxuXG4gIGNvbnN0IGxpc3RJdGVtUHJvcHMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyxcbiAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgICBzZWxlY3RlZE9wdGlvbktleSxcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIH0pLFxuICAgIFtzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgZ3JvdXBzV2l0aE9wdGlvbnNdLFxuICApXG5cbiAgcmV0dXJuIG1lbnVSZW5kZXJGbihcbiAgICBhbmNob3JFbGVtZW50UmVmLFxuICAgIGxpc3RJdGVtUHJvcHMsXG4gICAgcmVzb2x1dGlvbi5tYXRjaCA/IHJlc29sdXRpb24ubWF0Y2gubWF0Y2hpbmdTdHJpbmcgOiAnJyxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTWVudUFuY2hvclJlZihcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCxcbiAgc2V0UmVzb2x1dGlvbjogKHI6IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCkgPT4gdm9pZCxcbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuKTogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudD4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBhbmNob3JFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50Pihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgY29uc3QgcG9zaXRpb25NZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcblxuICAgIGNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDMyIGFzIGNvbnN0XG5cbiAgICBjb25zdCBtZW51RWxlID0gY29udGFpbmVyRGl2LmZpcnN0Q2hpbGQgYXMgRWxlbWVudFxuICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGhlaWdodCwgd2lkdGggfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG4gICAgICBsZXQgeyBsZWZ0LCB0b3AgfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG5cbiAgICAgIGNvbnN0IHJhd1RvcCA9IHRvcFxuICAgICAgdG9wIC09IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFlcbiAgICAgIGxlZnQgLT0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgd2luZG93LnNjcm9sbFhcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5sZWZ0ID0gYCR7bGVmdCArIHdpbmRvdy5zY3JvbGxYfXB4YFxuICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGBcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YFxuICAgICAgaWYgKG1lbnVFbGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbWVudVJlY3QgPSBtZW51RWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBtZW51UmVjdC5oZWlnaHRcbiAgICAgICAgY29uc3QgbWVudVdpZHRoID0gbWVudVJlY3Qud2lkdGhcblxuICAgICAgICBjb25zdCByb290RWxlbWVudFJlY3QgPSByb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICAgIGlmIChsZWZ0ICsgbWVudVdpZHRoID4gcm9vdEVsZW1lbnRSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmxlZnQgPSBgJHtyb290RWxlbWVudFJlY3QucmlnaHQgLSBtZW51V2lkdGggKyB3aW5kb3cuc2Nyb2xsWH1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdvdWxkR29PZmZCb3R0b21PZlNjcmVlbiA9IHJhd1RvcCArIG1lbnVIZWlnaHQgKyBWRVJUSUNBTF9PRkZTRVQgPiB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICAgLy9jb25zdCB3b3VsZEdvT2ZmQm90dG9tT2ZDb250YWluZXIgPSB0b3AgKyBtZW51SGVpZ2h0ID4gcm9vdEVsZW1lbnRSZWN0LmJvdHRvbVxuICAgICAgICBjb25zdCB3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4gPSByYXdUb3AgPCAwXG5cbiAgICAgICAgLy8gUG9zaXRpb24gc2xhc2ggbWVudSBhYm92ZSB0aGUgY3Vyc29yIGluc3RlYWQgb2YgYmVsb3cgKGRlZmF1bHQpIGlmIGl0IHdvdWxkIG90aGVyd2lzZSBnbyBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxuICAgICAgICBpZiAod291bGRHb09mZkJvdHRvbU9mU2NyZWVuICYmICF3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4pIHtcbiAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyNFxuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHtcbiAgICAgICAgICAgIHRvcCArIFZFUlRJQ0FMX09GRlNFVCAtIG1lbnVIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSAtIChoZWlnaHQgKyBtYXJnaW4pXG4gICAgICAgICAgfXB4YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHt0b3AgKyB3aW5kb3cuc2Nyb2xsWSArIFZFUlRJQ0FMX09GRlNFVH1weGBcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbnRhaW5lckRpdi5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBpZiAoY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYuY2xhc3NOYW1lID0gY2xhc3NOYW1lXG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdTbGFzaCBtZW51JylcbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnaWQnLCAnc2xhc2gtbWVudScpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnbGlzdGJveCcpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJ1xuICAgICAgICBjb250YWluZXJEaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gICAgICAgIGFuY2hvckVsZW0uYXBwZW5kKGNvbnRhaW5lckRpdilcbiAgICAgIH1cbiAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCA9IGNvbnRhaW5lckRpdlxuICAgICAgcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgJ3NsYXNoLW1lbnUnKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcmVzb2x1dGlvbiwgY2xhc3NOYW1lLCBhbmNob3JFbGVtXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAocmVzb2x1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgcG9zaXRpb25NZW51KClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGNvbnRhaW5lckRpdiAhPT0gbnVsbCAmJiBjb250YWluZXJEaXYuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYucmVtb3ZlKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcG9zaXRpb25NZW51LCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvblZpc2liaWxpdHlDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChyZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghaXNJblZpZXcpIHtcbiAgICAgICAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSxcbiAgKVxuXG4gIHVzZUR5bmFtaWNQb3NpdGlvbmluZyhyZXNvbHV0aW9uLCBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnQsIHBvc2l0aW9uTWVudSwgb25WaXNpYmlsaXR5Q2hhbmdlKVxuXG4gIHJldHVybiBhbmNob3JFbGVtZW50UmVmXG59XG4iXSwibmFtZXMiOlsiZ2V0U2Nyb2xsUGFyZW50IiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiU0NST0xMX1RZUEVBSEVBRF9PUFRJT05fSU5UT19WSUVXX0NPTU1BTkQiLCJMZXhpY2FsTWVudSIsInVzZU1lbnVBbmNob3JSZWYiLCJiYXNlQ2xhc3MiLCJzY3JvbGxJbnRvVmlld0lmTmVlZGVkIiwidGFyZ2V0IiwidHlwZWFoZWFkQ29udGFpbmVyTm9kZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0eXBlYWhlYWRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwiaGVpZ2h0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwiZ2V0RnVsbE1hdGNoT2Zmc2V0IiwiZG9jdW1lbnRUZXh0IiwiZW50cnlUZXh0Iiwib2Zmc2V0IiwidHJpZ2dlck9mZnNldCIsImkiLCJsZW5ndGgiLCJzdWJzdHIiLCIkc3BsaXROb2RlQ29udGFpbmluZ1F1ZXJ5IiwibWF0Y2giLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJpc0NvbGxhcHNlZCIsImFuY2hvciIsInR5cGUiLCJhbmNob3JOb2RlIiwiZ2V0Tm9kZSIsImlzU2ltcGxlVGV4dCIsInNlbGVjdGlvbk9mZnNldCIsInRleHRDb250ZW50IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsImNoYXJhY3Rlck9mZnNldCIsInJlcGxhY2VhYmxlU3RyaW5nIiwicXVlcnlPZmZzZXQiLCJtYXRjaGluZ1N0cmluZyIsInN0YXJ0T2Zmc2V0IiwibmV3Tm9kZSIsInNwbGl0VGV4dCIsImVsZW1lbnQiLCJpbmNsdWRlSGlkZGVuIiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsInBvc2l0aW9uIiwib3ZlcmZsb3dSZWdleCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lciIsInRhcmdldEVsZW1lbnQiLCJjb250YWluZXJFbGVtZW50IiwidFJlY3QiLCJjUmVjdCIsImJvdHRvbSIsInJlc29sdXRpb24iLCJvblJlcG9zaXRpb24iLCJvblZpc2liaWxpdHlDaGFuZ2UiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwidXNlRWZmZWN0Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsInJvb3RTY3JvbGxQYXJlbnQiLCJ0aWNraW5nIiwicHJldmlvdXNJc0luVmlldyIsImhhbmRsZVNjcm9sbCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzSW5WaWV3IiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm9ic2VydmUiLCJ1bm9ic2VydmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckVsZW1lbnRSZWYiLCJjbG9zZSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25TZWxlY3RPcHRpb24iLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwidXNlU3RhdGUiLCJ1cGRhdGVTZWxlY3RlZE9wdGlvbiIsInVzZUNhbGxiYWNrIiwib3B0aW9uIiwicm9vdEVsZW0iLCJzZXRBdHRyaWJ1dGUiLCJrZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiIsImFsbE9wdGlvbnMiLCJmbGF0TWFwIiwiZ3JvdXAiLCJvcHRpb25zIiwiZmlyc3RNYXRjaGluZ09wdGlvbiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbiIsInVwZGF0ZSIsInRleHROb2RlQ29udGFpbmluZ1F1ZXJ5IiwicmVtb3ZlQXR0cmlidXRlIiwidXNlTGF5b3V0RWZmZWN0IiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyQ29tbWFuZCIsInJlZiIsImN1cnJlbnQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsIktFWV9BUlJPV19ET1dOX0NPTU1BTkQiLCJwYXlsb2FkIiwiZXZlbnQiLCJzZWxlY3RlZEluZGV4IiwiZmluZEluZGV4IiwibmV3U2VsZWN0ZWRJbmRleCIsIm5ld1NlbGVjdGVkT3B0aW9uIiwiZGlzcGF0Y2hDb21tYW5kIiwiaW5kZXgiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsIktFWV9BUlJPV19VUF9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiS0VZX1RBQl9DT01NQU5EIiwiZmluZCIsIktFWV9FTlRFUl9DT01NQU5EIiwibGlzdEl0ZW1Qcm9wcyIsInVzZU1lbW8iLCJhbmNob3JFbGVtIiwic2V0UmVzb2x1dGlvbiIsImNsYXNzTmFtZSIsInVzZVJlZiIsImNyZWF0ZUVsZW1lbnQiLCJwb3NpdGlvbk1lbnUiLCJjb250YWluZXJEaXYiLCJWRVJUSUNBTF9PRkZTRVQiLCJtZW51RWxlIiwiZmlyc3RDaGlsZCIsIndpZHRoIiwiZ2V0UmVjdCIsImxlZnQiLCJyYXdUb3AiLCJzY3JvbGxZIiwic2Nyb2xsWCIsIm1lbnVSZWN0IiwibWVudUhlaWdodCIsIm1lbnVXaWR0aCIsInJvb3RFbGVtZW50UmVjdCIsInJpZ2h0Iiwid291bGRHb09mZkJvdHRvbU9mU2NyZWVuIiwid291bGRHb09mZlRvcE9mU2NyZWVuIiwibWFyZ2luIiwiaXNDb25uZWN0ZWQiLCJkaXNwbGF5IiwiYXBwZW5kIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBa0hnQkEsZUFBZTtlQUFmQTs7SUFnQ0FDLHFCQUFxQjtlQUFyQkE7O0lBaURIQyx5Q0FBeUM7ZUFBekNBOztJQUtHQyxXQUFXO2VBQVhBOztJQThQQUMsZ0JBQWdCO2VBQWhCQTs7O3dDQWxjMEI7dUJBQ1o7eUJBV3ZCO3VCQUM0RTtBQVduRixNQUFNQyxZQUFZO0FBYWxCLE1BQU1DLHlCQUF5QixDQUFDQztJQUM5QixNQUFNQyx5QkFBeUJDLFNBQVNDLGNBQWMsQ0FBQztJQUN2RCxJQUFJLENBQUNGLHdCQUF3QjtJQUU3QixNQUFNRyxnQkFBZ0JILHVCQUF1QkkscUJBQXFCO0lBRWxFLElBQUlELGNBQWNFLEdBQUcsR0FBR0YsY0FBY0csTUFBTSxHQUFHQyxPQUFPQyxXQUFXLEVBQUU7UUFDakVSLHVC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
|
|
426
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL0xleGljYWxNZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQsIExleGljYWxFZGl0b3IsIFRleHROb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RQb3J0YWwgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gIEtFWV9BUlJPV19VUF9DT01NQU5ELFxuICBLRVlfRU5URVJfQ09NTUFORCxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBLRVlfVEFCX0NPTU1BTkQsXG4gIGNyZWF0ZUNvbW1hbmQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBNZW51VGV4dE1hdGNoIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBNZW51UmVzb2x1dGlvbiA9IHtcbiAgZ2V0UmVjdDogKCkgPT4gRE9NUmVjdFxuICBtYXRjaD86IE1lbnVUZXh0TWF0Y2hcbn1cblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmV4cG9ydCB0eXBlIE1lbnVSZW5kZXJGbiA9IChcbiAgYW5jaG9yRWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LFxuICBpdGVtUHJvcHM6IHtcbiAgICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcDogKHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24pID0+IHZvaWRcbiAgICBzZWxlY3RlZE9wdGlvbktleTogbnVsbCB8IHN0cmluZ1xuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5OiAob3B0aW9uS2V5OiBzdHJpbmcpID0+IHZvaWRcbiAgfSxcbiAgbWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcsXG4pID0+IEpTWC5FbGVtZW50IHwgUmVhY3RQb3J0YWwgfCBudWxsXG5cbmNvbnN0IHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSAodGFyZ2V0OiBIVE1MRWxlbWVudCkgPT4ge1xuICBjb25zdCB0eXBlYWhlYWRDb250YWluZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NsYXNoLW1lbnUnKVxuICBpZiAoIXR5cGVhaGVhZENvbnRhaW5lck5vZGUpIHJldHVyblxuXG4gIGNvbnN0IHR5cGVhaGVhZFJlY3QgPSB0eXBlYWhlYWRDb250YWluZXJOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wICsgdHlwZWFoZWFkUmVjdC5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICB0eXBlYWhlYWRDb250YWluZXJOb2RlLnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICB9KVxuICB9XG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wIDwgMCkge1xuICAgIHR5cGVhaGVhZENvbnRhaW5lck5vZGUuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgIH0pXG4gIH1cblxuICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pXG59XG5cbi8qKlxuICogV2FsayBiYWNrd2FyZHMgYWxvbmcgdXNlciBpbnB1dCBhbmQgZm9yd2FyZCB0aHJvdWdoIGVudGl0eSB0aXRsZSB0byB0cnlcbiAqIGFuZCByZXBsYWNlIG1vcmUgb2YgdGhlIHVzZXIncyB0ZXh0IHdpdGggZW50aXR5LlxuICovXG5mdW5jdGlvbiBnZXRGdWxsTWF0Y2hPZmZzZXQoZG9jdW1lbnRUZXh0OiBzdHJpbmcsIGVudHJ5VGV4dDogc3RyaW5nLCBvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCB0cmlnZ2VyT2Zmc2V0ID0gb2Zmc2V0XG4gIGZvciAobGV0IGkgPSB0cmlnZ2VyT2Zmc2V0OyBpIDw9IGVudHJ5VGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudFRleHQuc3Vic3RyKC1pKSA9PT0gZW50cnlUZXh0LnN1YnN0cigwLCBpKSkge1xuICAgICAgdHJpZ2dlck9mZnNldCA9IGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRyaWdnZXJPZmZzZXRcbn1cblxuLyoqXG4gKiBTcGxpdCBMZXhpY2FsIFRleHROb2RlIGFuZCByZXR1cm4gYSBuZXcgVGV4dE5vZGUgb25seSBjb250YWluaW5nIG1hdGNoZWQgdGV4dC5cbiAqIENvbW1vbiB1c2UgY2FzZXMgaW5jbHVkZTogcmVtb3ZpbmcgdGhlIG5vZGUsIHJlcGxhY2luZyB3aXRoIGEgbmV3IG5vZGUuXG4gKi9cbmZ1bmN0aW9uICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkobWF0Y2g6IE1lbnVUZXh0TWF0Y2gpOiBUZXh0Tm9kZSB8IG51bGwge1xuICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pIHx8ICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBzZWxlY3Rpb25PZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIGNvbnN0IHRleHRDb250ZW50ID0gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIHNlbGVjdGlvbk9mZnNldClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBjaGFyYWN0ZXJPZmZzZXQgPSBtYXRjaC5yZXBsYWNlYWJsZVN0cmluZy5sZW5ndGhcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBxdWVyeU9mZnNldCA9IGdldEZ1bGxNYXRjaE9mZnNldCh0ZXh0Q29udGVudCwgbWF0Y2gubWF0Y2hpbmdTdHJpbmcsIGNoYXJhY3Rlck9mZnNldClcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBzZWxlY3Rpb25PZmZzZXQgLSBxdWVyeU9mZnNldFxuICBpZiAoc3RhcnRPZmZzZXQgPCAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBsZXQgbmV3Tm9kZVxuICBpZiAoc3RhcnRPZmZzZXQgPT09IDApIHtcbiAgICA7W25ld05vZGVdID0gYW5jaG9yTm9kZS5zcGxpdFRleHQoc2VsZWN0aW9uT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIDtbLCBuZXdOb2RlXSA9IGFuY2hvck5vZGUuc3BsaXRUZXh0KHN0YXJ0T2Zmc2V0LCBzZWxlY3Rpb25PZmZzZXQpXG4gIH1cblxuICByZXR1cm4gbmV3Tm9kZVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmZ1bmN0aW9uIGlzVHJpZ2dlclZpc2libGVJbk5lYXJlc3RTY3JvbGxDb250YWluZXIoXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCB0UmVjdCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgY1JlY3QgPSBjb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiB0UmVjdC50b3AgPiBjUmVjdC50b3AgJiYgdFJlY3QudG9wIDwgY1JlY3QuYm90dG9tXG59XG5cbi8vIFJlcG9zaXRpb24gdGhlIG1lbnUgb24gc2Nyb2xsLCB3aW5kb3cgcmVzaXplLCBhbmQgZWxlbWVudCByZXNpemUuXG5leHBvcnQgZnVuY3Rpb24gdXNlRHluYW1pY1Bvc2l0aW9uaW5nKFxuICByZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbiB8IG51bGwsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgb25SZXBvc2l0aW9uOiAoKSA9PiB2b2lkLFxuICBvblZpc2liaWxpdHlDaGFuZ2U/OiAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHZvaWQsXG4pIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGFyZ2V0RWxlbWVudCAhPSBudWxsICYmIHJlc29sdXRpb24gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuICAgICAgY29uc3Qgcm9vdFNjcm9sbFBhcmVudCA9XG4gICAgICAgIHJvb3RFbGVtZW50ICE9IG51bGwgPyBnZXRTY3JvbGxQYXJlbnQocm9vdEVsZW1lbnQsIGZhbHNlKSA6IGRvY3VtZW50LmJvZHlcbiAgICAgIGxldCB0aWNraW5nID0gZmFsc2VcbiAgICAgIGxldCBwcmV2aW91c0lzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcihcbiAgICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgcm9vdFNjcm9sbFBhcmVudCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aWNraW5nKSB7XG4gICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvblJlcG9zaXRpb24oKVxuICAgICAgICAgICAgdGlja2luZyA9IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aWNraW5nID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcih0YXJnZXRFbGVtZW50LCByb290U2Nyb2xsUGFyZW50KVxuICAgICAgICBpZiAoaXNJblZpZXcgIT09IHByZXZpb3VzSXNJblZpZXcpIHtcbiAgICAgICAgICBwcmV2aW91c0lzSW5WaWV3ID0gaXNJblZpZXdcbiAgICAgICAgICBpZiAob25WaXNpYmlsaXR5Q2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgICAgIG9uVmlzaWJpbGl0eUNoYW5nZShpc0luVmlldylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKG9uUmVwb3NpdGlvbilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlcG9zaXRpb24pXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldEVsZW1lbnQpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUodGFyZ2V0RWxlbWVudClcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVwb3NpdGlvbilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsLCB0cnVlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3RhcmdldEVsZW1lbnQsIGVkaXRvciwgb25WaXNpYmlsaXR5Q2hhbmdlLCBvblJlcG9zaXRpb24sIHJlc29sdXRpb25dKVxufVxuXG5leHBvcnQgY29uc3QgU0NST0xMX1RZUEVBSEVBRF9PUFRJT05fSU5UT19WSUVXX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgaW5kZXg6IG51bWJlclxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufT4gPSBjcmVhdGVDb21tYW5kKCdTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBMZXhpY2FsTWVudSh7XG4gIGFuY2hvckVsZW1lbnRSZWYsXG4gIGNsb3NlLFxuICBlZGl0b3IsXG4gIC8vIGdyb3Vwc1dpdGhPcHRpb25zIGZpbHRlcmluZyBpcyBhbHJlYWR5IGhhbmRsZWQgaW4gU2xhc2hNZW51L2luZGV4LnRzeC4gVGh1cywgZ3JvdXBzV2l0aE9wdGlvbnMgYWx3YXlzIGNvbnRhaW5zIHRoZSBtYXRjaGluZyBvcHRpb25zLlxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvblNlbGVjdE9wdGlvbixcbiAgcmVzb2x1dGlvbixcbiAgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5ID0gZmFsc2UsXG59OiB7XG4gIGFuY2hvckVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+XG4gIGNsb3NlOiAoKSA9PiB2b2lkXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uU2VsZWN0T3B0aW9uOiAoXG4gICAgb3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgdGV4dE5vZGVDb250YWluaW5nUXVlcnk6IFRleHROb2RlIHwgbnVsbCxcbiAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZyxcbiAgKSA9PiB2b2lkXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uXG4gIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeT86IGJvb2xlYW5cbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbc2VsZWN0ZWRPcHRpb25LZXksIHNldFNlbGVjdGVkT3B0aW9uS2V5XSA9IHVzZVN0YXRlPG51bGwgfCBzdHJpbmc+KG51bGwpXG5cbiAgY29uc3QgbWF0Y2hpbmdTdHJpbmcgPSAocmVzb2x1dGlvbi5tYXRjaCAmJiByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nKSB8fCAnJ1xuXG4gIGNvbnN0IHVwZGF0ZVNlbGVjdGVkT3B0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogU2xhc2hNZW51T3B0aW9uKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBgJHtiYXNlQ2xhc3N9X19pdGVtLSR7b3B0aW9uLmtleX1gKVxuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gIClcblxuICBjb25zdCBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBzZXQgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBmaXJzdCBvZiB0aGUgbWF0Y2hpbmcgb25lc1xuICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJiBtYXRjaGluZ1N0cmluZyAhPSBudWxsKSB7XG4gICAgICAvLyBncm91cHNXaXRoT3B0aW9ucyBmaWx0ZXJpbmcgaXMgYWxyZWFkeSBoYW5kbGVkIGluIFNsYXNoTWVudS9pbmRleC50c3guIFRodXMsIGdyb3Vwc1dpdGhPcHRpb25zIGFsd2F5cyBjb250YWlucyB0aGUgbWF0Y2hpbmcgb3B0aW9ucy5cbiAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcblxuICAgICAgaWYgKGFsbE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0TWF0Y2hpbmdPcHRpb24gPSBhbGxPcHRpb25zWzBdXG4gICAgICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKGZpcnN0TWF0Y2hpbmdPcHRpb24pXG4gICAgICB9XG4gICAgfVxuICB9LCBbZ3JvdXBzV2l0aE9wdGlvbnMsIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLCBtYXRjaGluZ1N0cmluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbigpXG4gIH0sIFttYXRjaGluZ1N0cmluZywgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb25dKVxuXG4gIGNvbnN0IHNlbGVjdE9wdGlvbkFuZENsZWFuVXAgPSB1c2VDYWxsYmFjayhcbiAgICAoc2VsZWN0ZWRPcHRpb246IFNsYXNoTWVudU9wdGlvbikgPT4ge1xuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5ID1cbiAgICAgICAgICByZXNvbHV0aW9uLm1hdGNoICE9IG51bGwgJiYgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5XG4gICAgICAgICAgICA/ICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkocmVzb2x1dGlvbi5tYXRjaClcbiAgICAgICAgICAgIDogbnVsbFxuXG4gICAgICAgIG9uU2VsZWN0T3B0aW9uKFxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLFxuICAgICAgICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5LFxuICAgICAgICAgIGNsb3NlLFxuICAgICAgICAgIHJlc29sdXRpb24ubWF0Y2ggPyByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nIDogJycsXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yLCBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnksIHJlc29sdXRpb24ubWF0Y2gsIG9uU2VsZWN0T3B0aW9uLCBjbG9zZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvcl0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5KG51bGwpXG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb24oKVxuICAgIH1cbiAgfSwgW1xuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5VG9GaXJzdE1hdGNoaW5nT3B0aW9uLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCxcbiAgICAgICAgKHsgb3B0aW9uIH0pID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uLnJlZiAmJiBvcHRpb24ucmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChvcHRpb24ucmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVTZWxlY3RlZE9wdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQ8S2V5Ym9hcmRFdmVudD4oXG4gICAgICAgIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25LZXkgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBhbGxPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcblxuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXggIT09IGFsbE9wdGlvbnMubGVuZ3RoIC0gMSA/IHNlbGVjdGVkSW5kZXggKyAxIDogMFxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnNbbmV3U2VsZWN0ZWRJbmRleF1cblxuICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRPcHRpb24obmV3U2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgICBpZiAobmV3U2VsZWN0ZWRPcHRpb24ucmVmICE9IG51bGwgJiYgbmV3U2VsZWN0ZWRPcHRpb24ucmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgIGluZGV4OiBuZXdTZWxlY3RlZEluZGV4LFxuICAgICAgICAgICAgICAgIG9wdGlvbjogbmV3U2VsZWN0ZWRPcHRpb24sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfQVJST1dfVVBfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHBheWxvYWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbktleSAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgYWxsT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZsYXRNYXAoKGdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFsbE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHNlbGVjdGVkT3B0aW9uS2V5KVxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRJbmRleCAhPT0gMCA/IHNlbGVjdGVkSW5kZXggLSAxIDogYWxsT3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkT3B0aW9uID0gYWxsT3B0aW9uc1tuZXdTZWxlY3RlZEluZGV4XVxuXG4gICAgICAgICAgICB1cGRhdGVTZWxlY3RlZE9wdGlvbihuZXdTZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgIGlmIChuZXdTZWxlY3RlZE9wdGlvbi5yZWYgIT0gbnVsbCAmJiBuZXdTZWxlY3RlZE9wdGlvbi5yZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5ld1NlbGVjdGVkT3B0aW9uLnJlZi5jdXJyZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZDxLZXlib2FyZEV2ZW50PihcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gcGF5bG9hZFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfVEFCX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG5cbiAgICAgICAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwgfHwgc2VsZWN0ZWRPcHRpb25LZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhbGxPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmxhdE1hcCgoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMpXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhbGxPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PT0gc2VsZWN0ZWRPcHRpb25LZXkpXG4gICAgICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcChzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRU5URVJfQ09NTUFORCxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyA9PT0gbnVsbCB8fCBzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAoc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW1xuICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgY2xvc2UsXG4gICAgZWRpdG9yLFxuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICBdKVxuXG4gIGNvbnN0IGxpc3RJdGVtUHJvcHMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyxcbiAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgICBzZWxlY3RlZE9wdGlvbktleSxcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIH0pLFxuICAgIFtzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgZ3JvdXBzV2l0aE9wdGlvbnNdLFxuICApXG5cbiAgcmV0dXJuIG1lbnVSZW5kZXJGbihcbiAgICBhbmNob3JFbGVtZW50UmVmLFxuICAgIGxpc3RJdGVtUHJvcHMsXG4gICAgcmVzb2x1dGlvbi5tYXRjaCA/IHJlc29sdXRpb24ubWF0Y2gubWF0Y2hpbmdTdHJpbmcgOiAnJyxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTWVudUFuY2hvclJlZihcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCxcbiAgc2V0UmVzb2x1dGlvbjogKHI6IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCkgPT4gdm9pZCxcbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuKTogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudD4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBhbmNob3JFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50Pihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgY29uc3QgcG9zaXRpb25NZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcblxuICAgIGNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDMyIGFzIGNvbnN0XG5cbiAgICBjb25zdCBtZW51RWxlID0gY29udGFpbmVyRGl2LmZpcnN0Q2hpbGQgYXMgRWxlbWVudFxuICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGhlaWdodCwgd2lkdGggfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG4gICAgICBsZXQgeyBsZWZ0LCB0b3AgfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG5cbiAgICAgIGNvbnN0IHJhd1RvcCA9IHRvcFxuICAgICAgdG9wIC09IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFlcbiAgICAgIGxlZnQgLT0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgd2luZG93LnNjcm9sbFhcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5sZWZ0ID0gYCR7bGVmdCArIHdpbmRvdy5zY3JvbGxYfXB4YFxuICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGBcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YFxuICAgICAgaWYgKG1lbnVFbGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbWVudVJlY3QgPSBtZW51RWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBtZW51UmVjdC5oZWlnaHRcbiAgICAgICAgY29uc3QgbWVudVdpZHRoID0gbWVudVJlY3Qud2lkdGhcblxuICAgICAgICBjb25zdCByb290RWxlbWVudFJlY3QgPSByb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICAgIGlmIChsZWZ0ICsgbWVudVdpZHRoID4gcm9vdEVsZW1lbnRSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmxlZnQgPSBgJHtyb290RWxlbWVudFJlY3QucmlnaHQgLSBtZW51V2lkdGggKyB3aW5kb3cuc2Nyb2xsWH1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdvdWxkR29PZmZCb3R0b21PZlNjcmVlbiA9IHJhd1RvcCArIG1lbnVIZWlnaHQgKyBWRVJUSUNBTF9PRkZTRVQgPiB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICAgLy9jb25zdCB3b3VsZEdvT2ZmQm90dG9tT2ZDb250YWluZXIgPSB0b3AgKyBtZW51SGVpZ2h0ID4gcm9vdEVsZW1lbnRSZWN0LmJvdHRvbVxuICAgICAgICBjb25zdCB3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4gPSByYXdUb3AgPCAwXG5cbiAgICAgICAgLy8gUG9zaXRpb24gc2xhc2ggbWVudSBhYm92ZSB0aGUgY3Vyc29yIGluc3RlYWQgb2YgYmVsb3cgKGRlZmF1bHQpIGlmIGl0IHdvdWxkIG90aGVyd2lzZSBnbyBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxuICAgICAgICBpZiAod291bGRHb09mZkJvdHRvbU9mU2NyZWVuICYmICF3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4pIHtcbiAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyNFxuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHtcbiAgICAgICAgICAgIHRvcCArIFZFUlRJQ0FMX09GRlNFVCAtIG1lbnVIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSAtIChoZWlnaHQgKyBtYXJnaW4pXG4gICAgICAgICAgfXB4YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHt0b3AgKyB3aW5kb3cuc2Nyb2xsWSArIFZFUlRJQ0FMX09GRlNFVH1weGBcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbnRhaW5lckRpdi5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBpZiAoY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYuY2xhc3NOYW1lID0gY2xhc3NOYW1lXG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdTbGFzaCBtZW51JylcbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnaWQnLCAnc2xhc2gtbWVudScpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnbGlzdGJveCcpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJ1xuICAgICAgICBjb250YWluZXJEaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gICAgICAgIGFuY2hvckVsZW0uYXBwZW5kKGNvbnRhaW5lckRpdilcbiAgICAgIH1cbiAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCA9IGNvbnRhaW5lckRpdlxuICAgICAgcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgJ3NsYXNoLW1lbnUnKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcmVzb2x1dGlvbiwgY2xhc3NOYW1lLCBhbmNob3JFbGVtXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAocmVzb2x1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgcG9zaXRpb25NZW51KClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGNvbnRhaW5lckRpdiAhPT0gbnVsbCAmJiBjb250YWluZXJEaXYuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYucmVtb3ZlKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcG9zaXRpb25NZW51LCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvblZpc2liaWxpdHlDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChyZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghaXNJblZpZXcpIHtcbiAgICAgICAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSxcbiAgKVxuXG4gIHVzZUR5bmFtaWNQb3NpdGlvbmluZyhyZXNvbHV0aW9uLCBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnQsIHBvc2l0aW9uTWVudSwgb25WaXNpYmlsaXR5Q2hhbmdlKVxuXG4gIHJldHVybiBhbmNob3JFbGVtZW50UmVmXG59XG4iXSwibmFtZXMiOlsiTGV4aWNhbE1lbnUiLCJTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCIsImdldFNjcm9sbFBhcmVudCIsInVzZUR5bmFtaWNQb3NpdGlvbmluZyIsInVzZU1lbnVBbmNob3JSZWYiLCJiYXNlQ2xhc3MiLCJzY3JvbGxJbnRvVmlld0lmTmVlZGVkIiwidGFyZ2V0IiwidHlwZWFoZWFkQ29udGFpbmVyTm9kZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0eXBlYWhlYWRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwiaGVpZ2h0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwiZ2V0RnVsbE1hdGNoT2Zmc2V0IiwiZG9jdW1lbnRUZXh0IiwiZW50cnlUZXh0Iiwib2Zmc2V0IiwidHJpZ2dlck9mZnNldCIsImkiLCJsZW5ndGgiLCJzdWJzdHIiLCIkc3BsaXROb2RlQ29udGFpbmluZ1F1ZXJ5IiwibWF0Y2giLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJpc0NvbGxhcHNlZCIsImFuY2hvciIsInR5cGUiLCJhbmNob3JOb2RlIiwiZ2V0Tm9kZSIsImlzU2ltcGxlVGV4dCIsInNlbGVjdGlvbk9mZnNldCIsInRleHRDb250ZW50IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsImNoYXJhY3Rlck9mZnNldCIsInJlcGxhY2VhYmxlU3RyaW5nIiwicXVlcnlPZmZzZXQiLCJtYXRjaGluZ1N0cmluZyIsInN0YXJ0T2Zmc2V0IiwibmV3Tm9kZSIsInNwbGl0VGV4dCIsImVsZW1lbnQiLCJpbmNsdWRlSGlkZGVuIiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsInBvc2l0aW9uIiwib3ZlcmZsb3dSZWdleCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lciIsInRhcmdldEVsZW1lbnQiLCJjb250YWluZXJFbGVtZW50IiwidFJlY3QiLCJjUmVjdCIsImJvdHRvbSIsInJlc29sdXRpb24iLCJvblJlcG9zaXRpb24iLCJvblZpc2liaWxpdHlDaGFuZ2UiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwidXNlRWZmZWN0Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsInJvb3RTY3JvbGxQYXJlbnQiLCJ0aWNraW5nIiwicHJldmlvdXNJc0luVmlldyIsImhhbmRsZVNjcm9sbCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzSW5WaWV3IiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm9ic2VydmUiLCJ1bm9ic2VydmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckVsZW1lbnRSZWYiLCJjbG9zZSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25TZWxlY3RPcHRpb24iLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwidXNlU3RhdGUiLCJ1cGRhdGVTZWxlY3RlZE9wdGlvbiIsInVzZUNhbGxiYWNrIiwib3B0aW9uIiwicm9vdEVsZW0iLCJzZXRBdHRyaWJ1dGUiLCJrZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiIsImFsbE9wdGlvbnMiLCJmbGF0TWFwIiwiZ3JvdXAiLCJvcHRpb25zIiwiZmlyc3RNYXRjaGluZ09wdGlvbiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbiIsInVwZGF0ZSIsInRleHROb2RlQ29udGFpbmluZ1F1ZXJ5IiwicmVtb3ZlQXR0cmlidXRlIiwidXNlTGF5b3V0RWZmZWN0IiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyQ29tbWFuZCIsInJlZiIsImN1cnJlbnQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsIktFWV9BUlJPV19ET1dOX0NPTU1BTkQiLCJwYXlsb2FkIiwiZXZlbnQiLCJzZWxlY3RlZEluZGV4IiwiZmluZEluZGV4IiwibmV3U2VsZWN0ZWRJbmRleCIsIm5ld1NlbGVjdGVkT3B0aW9uIiwiZGlzcGF0Y2hDb21tYW5kIiwiaW5kZXgiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsIktFWV9BUlJPV19VUF9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiS0VZX1RBQl9DT01NQU5EIiwiZmluZCIsIktFWV9FTlRFUl9DT01NQU5EIiwibGlzdEl0ZW1Qcm9wcyIsInVzZU1lbW8iLCJhbmNob3JFbGVtIiwic2V0UmVzb2x1dGlvbiIsImNsYXNzTmFtZSIsInVzZVJlZiIsImNyZWF0ZUVsZW1lbnQiLCJwb3NpdGlvbk1lbnUiLCJjb250YWluZXJEaXYiLCJWRVJUSUNBTF9PRkZTRVQiLCJtZW51RWxlIiwiZmlyc3RDaGlsZCIsIndpZHRoIiwiZ2V0UmVjdCIsImxlZnQiLCJyYXdUb3AiLCJzY3JvbGxZIiwic2Nyb2xsWCIsIm1lbnVSZWN0IiwibWVudUhlaWdodCIsIm1lbnVXaWR0aCIsInJvb3RFbGVtZW50UmVjdCIsInJpZ2h0Iiwid291bGRHb09mZkJvdHRvbU9mU2NyZWVuIiwid291bGRHb09mZlRvcE9mU2NyZWVuIiwibWFyZ2luIiwiaXNDb25uZWN0ZWQiLCJkaXNwbGF5IiwiYXBwZW5kIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBd01nQkEsV0FBVztlQUFYQTs7SUFMSEMseUNBQXlDO2VBQXpDQTs7SUFqRkdDLGVBQWU7ZUFBZkE7O0lBZ0NBQyxxQkFBcUI7ZUFBckJBOztJQW9UQUMsZ0JBQWdCO2VBQWhCQTs7O3dDQWxjMEI7dUJBQ1o7eUJBV3ZCO3VCQUM0RTtBQVduRixNQUFNQyxZQUFZO0FBYWxCLE1BQU1DLHlCQUF5QixDQUFDQztJQUM5QixNQUFNQyx5QkFBeUJDLFNBQVNDLGNBQWMsQ0FBQztJQUN2RCxJQUFJLENBQUNGLHdCQUF3QjtJQUU3QixNQUFNRyxnQkFBZ0JILHVCQUF1QkkscUJBQXFCO0lBRWxFLElBQUlELGNBQWNFLEdBQUcsR0FBR0YsY0FBY0csTUFBTSxHQUFHQyxPQUFPQyxXQUFXLEVBQUU7UUFDakVSLHVC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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { LexicalCommand, ParagraphNode, TextNode } from 'lexical';
|
|
3
|
+
import type { MenuTextMatch, TriggerFn } from '../useMenuTriggerMatch';
|
|
3
4
|
import type { MenuRenderFn, MenuResolution } from './LexicalMenu';
|
|
4
5
|
import type { SlashMenuGroup, SlashMenuOption } from './types';
|
|
5
|
-
import { MenuTextMatch, TriggerFn } from '../useMenuTriggerMatch';
|
|
6
6
|
export declare const PUNCTUATION = "\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%'\"~=<>_:;";
|
|
7
7
|
export declare function getScrollParent(element: HTMLElement, includeHidden: boolean): HTMLBodyElement | HTMLElement;
|
|
8
8
|
export { useDynamicPositioning } from './LexicalMenu';
|
|
@@ -21,5 +21,5 @@ export declare const ENABLE_SLASH_MENU_COMMAND: LexicalCommand<{
|
|
|
21
21
|
node: ParagraphNode;
|
|
22
22
|
}>;
|
|
23
23
|
export declare function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOptions, menuRenderFn, onClose, onOpen, onQueryChange, onSelectOption, triggerFn, }: TypeaheadMenuPluginProps): JSX.Element | null;
|
|
24
|
-
export { MenuRenderFn, MenuResolution, MenuTextMatch, TriggerFn };
|
|
24
|
+
export type { MenuRenderFn, MenuResolution, MenuTextMatch, TriggerFn };
|
|
25
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EAEb,QAAQ,EACT,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EAEb,QAAQ,EACT,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9D,eAAO,MAAM,WAAW,iEAAiE,CAAA;AA4EzF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,OAAO,GACrB,eAAe,GAAG,WAAW,CAiB/B;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,WAAW,CAAA;IACvB,iBAAiB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;IACxC,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAA;IAC7C,aAAa,EAAE,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAA;IACtD,cAAc,EAAE,CACd,MAAM,EAAE,eAAe,EACvB,uBAAuB,EAAE,QAAQ,GAAG,IAAI,EACxC,SAAS,EAAE,MAAM,IAAI,EACrB,cAAc,EAAE,MAAM,KACnB,IAAI,CAAA;IACT,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,cAAc,CAAC;IACrD,IAAI,EAAE,aAAa,CAAA;CACpB,CAA8C,CAAA;AAE/C,wBAAgB,0BAA0B,CAAC,EACzC,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,MAAM,EACN,aAAa,EACb,cAAc,EACd,SAAS,GACV,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAyH/C;AAED,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
|