@payloadcms/richtext-lexical 3.0.0-alpha.21 → 3.0.0-alpha.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.d.ts +5 -5
- package/components.js +6 -6
- package/dist/cell/index.d.ts +1 -1
- package/dist/cell/index.d.ts.map +1 -1
- package/dist/cell/index.js +5 -5
- package/dist/exports/components.d.ts +5 -5
- package/dist/exports/components.d.ts.map +1 -1
- package/dist/exports/components.js +6 -6
- package/dist/field/Field.d.ts +1 -1
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +2 -2
- package/dist/field/features/align/feature.client.js +7 -7
- package/dist/field/features/align/feature.server.d.ts +1 -1
- package/dist/field/features/align/feature.server.d.ts.map +1 -1
- package/dist/field/features/align/feature.server.js +2 -2
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts +1 -1
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +1 -1
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +2 -2
- package/dist/field/features/blockquote/feature.client.js +6 -6
- package/dist/field/features/blockquote/feature.server.d.ts +1 -1
- package/dist/field/features/blockquote/feature.server.d.ts.map +1 -1
- package/dist/field/features/blockquote/feature.server.js +4 -4
- package/dist/field/features/blocks/component/BlockContent.d.ts +2 -2
- package/dist/field/features/blocks/component/BlockContent.d.ts.map +1 -1
- package/dist/field/features/blocks/component/BlockContent.js +3 -3
- package/dist/field/features/blocks/component/index.d.ts +1 -1
- package/dist/field/features/blocks/component/index.d.ts.map +1 -1
- package/dist/field/features/blocks/component/index.js +3 -3
- package/dist/field/features/blocks/drawer/index.js +5 -5
- package/dist/field/features/blocks/feature.client.d.ts +1 -1
- package/dist/field/features/blocks/feature.client.d.ts.map +1 -1
- package/dist/field/features/blocks/feature.client.js +7 -7
- package/dist/field/features/blocks/feature.server.d.ts +2 -2
- package/dist/field/features/blocks/feature.server.d.ts.map +1 -1
- package/dist/field/features/blocks/feature.server.js +5 -5
- package/dist/field/features/blocks/nodes/BlocksNode.d.ts +2 -2
- package/dist/field/features/blocks/nodes/BlocksNode.d.ts.map +1 -1
- package/dist/field/features/blocks/nodes/BlocksNode.js +4 -4
- package/dist/field/features/blocks/plugin/commands.d.ts +1 -1
- package/dist/field/features/blocks/plugin/commands.d.ts.map +1 -1
- package/dist/field/features/blocks/plugin/commands.js +1 -1
- package/dist/field/features/blocks/plugin/index.d.ts +1 -1
- package/dist/field/features/blocks/plugin/index.d.ts.map +1 -1
- package/dist/field/features/blocks/plugin/index.js +5 -5
- package/dist/field/features/blocks/populationPromise.d.ts +3 -3
- package/dist/field/features/blocks/populationPromise.d.ts.map +1 -1
- package/dist/field/features/blocks/populationPromise.js +2 -2
- package/dist/field/features/blocks/validate.d.ts +3 -3
- package/dist/field/features/blocks/validate.d.ts.map +1 -1
- package/dist/field/features/blocks/validate.js +1 -1
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts +1 -1
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts.map +1 -1
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +1 -1
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts +1 -1
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +1 -1
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +2 -2
- package/dist/field/features/converters/html/converter/converters/linebreak.d.ts +1 -1
- package/dist/field/features/converters/html/converter/converters/linebreak.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/converters/linebreak.js +1 -1
- package/dist/field/features/converters/html/converter/converters/paragraph.d.ts +1 -1
- package/dist/field/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/converters/paragraph.js +2 -2
- package/dist/field/features/converters/html/converter/converters/text.d.ts +1 -1
- package/dist/field/features/converters/html/converter/converters/text.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/converters/text.js +2 -2
- package/dist/field/features/converters/html/converter/defaultConverters.d.ts +1 -1
- package/dist/field/features/converters/html/converter/defaultConverters.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/defaultConverters.js +4 -4
- package/dist/field/features/converters/html/converter/index.d.ts +1 -1
- package/dist/field/features/converters/html/converter/index.d.ts.map +1 -1
- package/dist/field/features/converters/html/converter/index.js +1 -1
- package/dist/field/features/converters/html/feature.server.d.ts +2 -2
- package/dist/field/features/converters/html/feature.server.d.ts.map +1 -1
- package/dist/field/features/converters/html/feature.server.js +1 -1
- 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 +3 -3
- package/dist/field/features/createClientComponent.d.ts +2 -2
- package/dist/field/features/createClientComponent.d.ts.map +1 -1
- package/dist/field/features/createClientComponent.js +2 -2
- package/dist/field/features/debug/testrecorder/feature.client.js +3 -3
- package/dist/field/features/debug/testrecorder/feature.server.d.ts +1 -1
- package/dist/field/features/debug/testrecorder/feature.server.d.ts.map +1 -1
- package/dist/field/features/debug/testrecorder/feature.server.js +2 -2
- package/dist/field/features/debug/testrecorder/plugin/index.js +3 -3
- package/dist/field/features/debug/treeview/feature.client.js +3 -3
- package/dist/field/features/debug/treeview/feature.server.d.ts +1 -1
- package/dist/field/features/debug/treeview/feature.server.d.ts.map +1 -1
- package/dist/field/features/debug/treeview/feature.server.js +2 -2
- package/dist/field/features/debug/treeview/plugin/index.js +3 -3
- package/dist/field/features/format/bold/feature.client.js +5 -5
- package/dist/field/features/format/bold/feature.server.d.ts +1 -1
- package/dist/field/features/format/bold/feature.server.d.ts.map +1 -1
- package/dist/field/features/format/bold/feature.server.js +3 -3
- package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts +1 -1
- package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts.map +1 -1
- package/dist/field/features/format/common/floatingSelectToolbarSection.js +1 -1
- package/dist/field/features/format/inlinecode/feature.client.js +5 -5
- package/dist/field/features/format/inlinecode/feature.server.d.ts +1 -1
- package/dist/field/features/format/inlinecode/feature.server.d.ts.map +1 -1
- package/dist/field/features/format/inlinecode/feature.server.js +3 -3
- package/dist/field/features/format/italic/feature.client.js +5 -5
- package/dist/field/features/format/italic/feature.server.d.ts +1 -1
- package/dist/field/features/format/italic/feature.server.d.ts.map +1 -1
- package/dist/field/features/format/italic/feature.server.js +3 -3
- package/dist/field/features/format/strikethrough/feature.client.js +5 -5
- package/dist/field/features/format/strikethrough/feature.server.d.ts +1 -1
- package/dist/field/features/format/strikethrough/feature.server.d.ts.map +1 -1
- package/dist/field/features/format/strikethrough/feature.server.js +3 -3
- package/dist/field/features/format/subscript/feature.client.js +4 -4
- package/dist/field/features/format/subscript/feature.server.d.ts +1 -1
- package/dist/field/features/format/subscript/feature.server.d.ts.map +1 -1
- package/dist/field/features/format/subscript/feature.server.js +2 -2
- package/dist/field/features/format/superscript/feature.client.js +4 -4
- package/dist/field/features/format/superscript/feature.server.d.ts +1 -1
- package/dist/field/features/format/superscript/feature.server.d.ts.map +1 -1
- package/dist/field/features/format/superscript/feature.server.js +2 -2
- package/dist/field/features/format/underline/feature.client.js +4 -4
- package/dist/field/features/format/underline/feature.server.d.ts +1 -1
- package/dist/field/features/format/underline/feature.server.d.ts.map +1 -1
- package/dist/field/features/format/underline/feature.server.js +2 -2
- package/dist/field/features/heading/feature.client.d.ts +2 -2
- package/dist/field/features/heading/feature.client.d.ts.map +1 -1
- package/dist/field/features/heading/feature.client.js +11 -11
- package/dist/field/features/heading/feature.server.d.ts +1 -1
- package/dist/field/features/heading/feature.server.d.ts.map +1 -1
- package/dist/field/features/heading/feature.server.js +4 -4
- package/dist/field/features/heading/markdownTransformer.js +2 -2
- package/dist/field/features/indent/feature.client.js +5 -5
- package/dist/field/features/indent/feature.server.d.ts +1 -1
- package/dist/field/features/indent/feature.server.d.ts.map +1 -1
- package/dist/field/features/indent/feature.server.js +2 -2
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts +1 -1
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts.map +1 -1
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +1 -1
- package/dist/field/features/link/drawer/baseFields.js +2 -2
- package/dist/field/features/link/drawer/index.d.ts +1 -1
- package/dist/field/features/link/drawer/index.d.ts.map +1 -1
- package/dist/field/features/link/drawer/index.js +2 -2
- package/dist/field/features/link/drawer/types.d.ts +1 -1
- package/dist/field/features/link/drawer/types.d.ts.map +1 -1
- package/dist/field/features/link/drawer/types.js +1 -1
- package/dist/field/features/link/feature.client.d.ts +2 -2
- package/dist/field/features/link/feature.client.d.ts.map +1 -1
- package/dist/field/features/link/feature.client.js +12 -12
- package/dist/field/features/link/feature.server.d.ts +2 -2
- package/dist/field/features/link/feature.server.d.ts.map +1 -1
- package/dist/field/features/link/feature.server.js +7 -7
- package/dist/field/features/link/nodes/AutoLinkNode.d.ts +2 -2
- package/dist/field/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
- package/dist/field/features/link/nodes/AutoLinkNode.js +2 -2
- package/dist/field/features/link/nodes/LinkNode.d.ts +2 -2
- package/dist/field/features/link/nodes/LinkNode.d.ts.map +1 -1
- package/dist/field/features/link/nodes/LinkNode.js +1 -1
- package/dist/field/features/link/plugins/autoLink/index.d.ts +1 -1
- package/dist/field/features/link/plugins/autoLink/index.d.ts.map +1 -1
- package/dist/field/features/link/plugins/autoLink/index.js +5 -5
- package/dist/field/features/link/plugins/clickableLink/index.d.ts.map +1 -1
- package/dist/field/features/link/plugins/clickableLink/index.js +4 -3
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +10 -10
- package/dist/field/features/link/plugins/floatingLinkEditor/index.js +2 -2
- package/dist/field/features/link/plugins/floatingLinkEditor/types.d.ts +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/types.d.ts.map +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/types.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +2 -2
- package/dist/field/features/link/plugins/link/index.js +4 -4
- package/dist/field/features/link/populationPromise.d.ts +3 -3
- package/dist/field/features/link/populationPromise.d.ts.map +1 -1
- package/dist/field/features/link/populationPromise.js +3 -3
- package/dist/field/features/lists/checklist/feature.client.js +8 -8
- package/dist/field/features/lists/checklist/feature.server.d.ts +1 -1
- package/dist/field/features/lists/checklist/feature.server.d.ts.map +1 -1
- package/dist/field/features/lists/checklist/feature.server.js +4 -4
- package/dist/field/features/lists/checklist/markdownTransformers.js +2 -2
- package/dist/field/features/lists/checklist/plugin/index.js +2 -2
- package/dist/field/features/lists/htmlConverter.d.ts +1 -1
- package/dist/field/features/lists/htmlConverter.d.ts.map +1 -1
- package/dist/field/features/lists/htmlConverter.js +2 -2
- package/dist/field/features/lists/orderedlist/feature.client.js +7 -7
- package/dist/field/features/lists/orderedlist/feature.server.d.ts +1 -1
- package/dist/field/features/lists/orderedlist/feature.server.d.ts.map +1 -1
- package/dist/field/features/lists/orderedlist/feature.server.js +4 -4
- package/dist/field/features/lists/orderedlist/markdownTransformer.js +2 -2
- package/dist/field/features/lists/plugin/index.js +2 -2
- package/dist/field/features/lists/unorderedlist/feature.client.js +7 -7
- package/dist/field/features/lists/unorderedlist/feature.server.d.ts +1 -1
- package/dist/field/features/lists/unorderedlist/feature.server.d.ts.map +1 -1
- package/dist/field/features/lists/unorderedlist/feature.server.js +4 -4
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js +2 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +2 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +2 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +2 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +2 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +2 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +2 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +3 -3
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +8 -8
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +4 -4
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.d.ts +2 -2
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +4 -4
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +2 -2
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +3 -3
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +11 -11
- package/dist/field/features/migrations/slateToLexical/converter/index.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/index.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/index.js +2 -2
- package/dist/field/features/migrations/slateToLexical/feature.client.js +4 -4
- package/dist/field/features/migrations/slateToLexical/feature.server.d.ts +2 -2
- package/dist/field/features/migrations/slateToLexical/feature.server.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/feature.server.js +4 -4
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts +1 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +1 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +2 -2
- package/dist/field/features/paragraph/feature.client.js +5 -5
- package/dist/field/features/paragraph/feature.server.d.ts +1 -1
- package/dist/field/features/paragraph/feature.server.d.ts.map +1 -1
- package/dist/field/features/paragraph/feature.server.js +2 -2
- package/dist/field/features/relationship/drawer/index.js +6 -6
- package/dist/field/features/relationship/feature.client.d.ts +2 -2
- package/dist/field/features/relationship/feature.client.d.ts.map +1 -1
- package/dist/field/features/relationship/feature.client.js +7 -7
- package/dist/field/features/relationship/feature.server.d.ts +1 -1
- package/dist/field/features/relationship/feature.server.d.ts.map +1 -1
- package/dist/field/features/relationship/feature.server.js +4 -4
- package/dist/field/features/relationship/nodes/RelationshipNode.d.ts +1 -1
- package/dist/field/features/relationship/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/field/features/relationship/nodes/RelationshipNode.js +3 -3
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts +1 -1
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts.map +1 -1
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +5 -5
- package/dist/field/features/relationship/plugins/index.d.ts +2 -2
- package/dist/field/features/relationship/plugins/index.d.ts.map +1 -1
- package/dist/field/features/relationship/plugins/index.js +4 -4
- package/dist/field/features/relationship/populationPromise.d.ts +2 -2
- package/dist/field/features/relationship/populationPromise.d.ts.map +1 -1
- package/dist/field/features/relationship/populationPromise.js +2 -2
- package/dist/field/features/types.d.ts +5 -5
- package/dist/field/features/types.d.ts.map +1 -1
- package/dist/field/features/types.js +1 -1
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts +1 -1
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -1
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +3 -3
- package/dist/field/features/upload/component/index.d.ts +1 -1
- package/dist/field/features/upload/component/index.d.ts.map +1 -1
- package/dist/field/features/upload/component/index.js +7 -7
- package/dist/field/features/upload/drawer/index.js +6 -6
- package/dist/field/features/upload/feature.client.d.ts +1 -1
- package/dist/field/features/upload/feature.client.d.ts.map +1 -1
- package/dist/field/features/upload/feature.client.js +7 -7
- package/dist/field/features/upload/feature.server.d.ts +2 -2
- package/dist/field/features/upload/feature.server.d.ts.map +1 -1
- package/dist/field/features/upload/feature.server.js +5 -5
- package/dist/field/features/upload/nodes/UploadNode.d.ts +2 -2
- package/dist/field/features/upload/nodes/UploadNode.d.ts.map +1 -1
- package/dist/field/features/upload/nodes/UploadNode.js +3 -3
- package/dist/field/features/upload/plugin/index.d.ts +1 -1
- package/dist/field/features/upload/plugin/index.d.ts.map +1 -1
- package/dist/field/features/upload/plugin/index.js +4 -4
- package/dist/field/features/upload/populationPromise.d.ts +3 -3
- package/dist/field/features/upload/populationPromise.d.ts.map +1 -1
- package/dist/field/features/upload/populationPromise.js +3 -3
- package/dist/field/features/upload/validate.d.ts +2 -2
- package/dist/field/features/upload/validate.d.ts.map +1 -1
- package/dist/field/features/upload/validate.js +2 -2
- package/dist/field/index.d.ts +1 -1
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +5 -5
- package/dist/field/lexical/EditorPlugin.d.ts +1 -1
- package/dist/field/lexical/EditorPlugin.d.ts.map +1 -1
- package/dist/field/lexical/EditorPlugin.js +1 -1
- package/dist/field/lexical/LexicalEditor.d.ts +1 -1
- package/dist/field/lexical/LexicalEditor.d.ts.map +1 -1
- package/dist/field/lexical/LexicalEditor.js +16 -15
- package/dist/field/lexical/LexicalProvider.d.ts +1 -1
- package/dist/field/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/field/lexical/LexicalProvider.js +5 -5
- package/dist/field/lexical/config/client/EditorConfigProvider.d.ts +1 -1
- package/dist/field/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
- package/dist/field/lexical/config/client/EditorConfigProvider.js +1 -1
- package/dist/field/lexical/config/client/default.d.ts +1 -1
- package/dist/field/lexical/config/client/default.d.ts.map +1 -1
- package/dist/field/lexical/config/client/default.js +2 -2
- package/dist/field/lexical/config/client/loader.d.ts +2 -1
- package/dist/field/lexical/config/client/loader.d.ts.map +1 -1
- package/dist/field/lexical/config/client/loader.js +1 -1
- package/dist/field/lexical/config/client/sanitize.d.ts +3 -3
- package/dist/field/lexical/config/client/sanitize.d.ts.map +1 -1
- package/dist/field/lexical/config/client/sanitize.js +1 -1
- package/dist/field/lexical/config/server/default.d.ts +3 -3
- package/dist/field/lexical/config/server/default.d.ts.map +1 -1
- package/dist/field/lexical/config/server/default.js +21 -21
- package/dist/field/lexical/config/server/loader.d.ts +2 -2
- package/dist/field/lexical/config/server/loader.d.ts.map +1 -1
- package/dist/field/lexical/config/server/loader.js +1 -1
- package/dist/field/lexical/config/server/sanitize.d.ts +2 -2
- package/dist/field/lexical/config/server/sanitize.d.ts.map +1 -1
- package/dist/field/lexical/config/server/sanitize.js +2 -2
- package/dist/field/lexical/config/types.d.ts +2 -2
- package/dist/field/lexical/config/types.d.ts.map +1 -1
- package/dist/field/lexical/config/types.js +1 -1
- package/dist/field/lexical/nodes/index.d.ts +1 -1
- package/dist/field/lexical/nodes/index.d.ts.map +1 -1
- package/dist/field/lexical/nodes/index.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +2 -2
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +2 -2
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +2 -2
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +7 -7
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js +3 -3
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +2 -3
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -2
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +4 -4
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +4 -4
- package/dist/field/lexical/plugins/SlashMenu/index.js +5 -5
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +2 -2
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +10 -10
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts.map +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +6 -6
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +2 -2
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +10 -10
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +4 -4
- package/dist/field/lexical/ui/ContentEditable.js +2 -2
- package/dist/field/lexical/utils/environment.js +2 -2
- package/dist/field/lexical/utils/nodeFormat.d.ts +1 -1
- package/dist/field/lexical/utils/nodeFormat.d.ts.map +1 -1
- package/dist/field/lexical/utils/nodeFormat.js +1 -1
- package/dist/field/lexical/utils/rect.d.ts +1 -1
- package/dist/field/lexical/utils/rect.d.ts.map +1 -1
- package/dist/field/lexical/utils/rect.js +2 -2
- package/dist/generateComponentMap.d.ts +1 -1
- package/dist/generateComponentMap.d.ts.map +1 -1
- package/dist/generateComponentMap.js +1 -1
- package/dist/generateSchemaMap.d.ts +1 -1
- package/dist/generateSchemaMap.d.ts.map +1 -1
- package/dist/generateSchemaMap.js +1 -1
- package/dist/index.d.ts +87 -87
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -86
- package/dist/populate/populate.d.ts +1 -1
- package/dist/populate/populate.d.ts.map +1 -1
- package/dist/populate/populate.js +1 -1
- package/dist/populate/recurseNestedFields.d.ts +1 -1
- package/dist/populate/recurseNestedFields.d.ts.map +1 -1
- package/dist/populate/recurseNestedFields.js +1 -1
- package/dist/populate/richTextRelationshipPromise.d.ts +2 -2
- package/dist/populate/richTextRelationshipPromise.d.ts.map +1 -1
- package/dist/populate/richTextRelationshipPromise.js +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/useLexicalFeature.d.ts +1 -1
- package/dist/useLexicalFeature.d.ts.map +1 -1
- package/dist/useLexicalFeature.js +1 -1
- package/dist/validate/index.d.ts +2 -2
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +3 -3
- package/dist/validate/validateNodes.d.ts +1 -1
- package/dist/validate/validateNodes.d.ts.map +1 -1
- package/dist/validate/validateNodes.js +1 -1
- package/package.json +7 -7
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { $applyNodeReplacement, $isElementNode } from 'lexical';
|
|
2
|
-
import { LinkNode } from './LinkNode';
|
|
2
|
+
import { LinkNode } from './LinkNode.js';
|
|
3
3
|
// Custom node type to override `canInsertTextAfter` that will
|
|
4
4
|
// allow typing within the link
|
|
5
5
|
export class AutoLinkNode extends LinkNode {
|
|
@@ -57,4 +57,4 @@ export function $isAutoLinkNode(node) {
|
|
|
57
57
|
return node instanceof AutoLinkNode;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL25vZGVzL0F1dG9MaW5rTm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAkYXBwbHlOb2RlUmVwbGFjZW1lbnQsXG4gICRpc0VsZW1lbnROb2RlLFxuICB0eXBlIEVsZW1lbnROb2RlLFxuICB0eXBlIExleGljYWxOb2RlLFxuICB0eXBlIFJhbmdlU2VsZWN0aW9uLFxufSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgdHlwZSB7IExpbmtGaWVsZHMsIFNlcmlhbGl6ZWRBdXRvTGlua05vZGUgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyBMaW5rTm9kZSB9IGZyb20gJy4vTGlua05vZGUuanMnXG5cbi8vIEN1c3RvbSBub2RlIHR5cGUgdG8gb3ZlcnJpZGUgYGNhbkluc2VydFRleHRBZnRlcmAgdGhhdCB3aWxsXG4vLyBhbGxvdyB0eXBpbmcgd2l0aGluIHRoZSBsaW5rXG5cbmV4cG9ydCBjbGFzcyBBdXRvTGlua05vZGUgZXh0ZW5kcyBMaW5rTm9kZSB7XG4gIHN0YXRpYyBjbG9uZShub2RlOiBBdXRvTGlua05vZGUpOiBBdXRvTGlua05vZGUge1xuICAgIHJldHVybiBuZXcgQXV0b0xpbmtOb2RlKHsgZmllbGRzOiBub2RlLl9fZmllbGRzLCBrZXk6IG5vZGUuX19rZXkgfSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdhdXRvbGluaydcbiAgfVxuXG4gIHN0YXRpYyBpbXBvcnRET00oKTogbnVsbCB7XG4gICAgLy8gVE9ETzogU2hvdWxkIGxpbmsgbm9kZSBzaG91bGQgaGFuZGxlIHRoZSBpbXBvcnQgb3ZlciBhdXRvbGluaz9cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgc3RhdGljIGltcG9ydEpTT04oc2VyaWFsaXplZE5vZGU6IFNlcmlhbGl6ZWRBdXRvTGlua05vZGUpOiBBdXRvTGlua05vZGUge1xuICAgIGlmIChcbiAgICAgIHNlcmlhbGl6ZWROb2RlLnZlcnNpb24gPT09IDEgJiZcbiAgICAgIHR5cGVvZiBzZXJpYWxpemVkTm9kZS5maWVsZHM/LmRvYz8udmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICBzZXJpYWxpemVkTm9kZS5maWVsZHM/LmRvYz8udmFsdWU/LmlkXG4gICAgKSB7XG4gICAgICBzZXJpYWxpemVkTm9kZS5maWVsZHMuZG9jLnZhbHVlID0gc2VyaWFsaXplZE5vZGUuZmllbGRzLmRvYy52YWx1ZS5pZFxuICAgICAgc2VyaWFsaXplZE5vZGUudmVyc2lvbiA9IDJcbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gJGNyZWF0ZUF1dG9MaW5rTm9kZSh7IGZpZWxkczogc2VyaWFsaXplZE5vZGUuZmllbGRzIH0pXG5cbiAgICBub2RlLnNldEZvcm1hdChzZXJpYWxpemVkTm9kZS5mb3JtYXQpXG4gICAgbm9kZS5zZXRJbmRlbnQoc2VyaWFsaXplZE5vZGUuaW5kZW50KVxuICAgIG5vZGUuc2V0RGlyZWN0aW9uKHNlcmlhbGl6ZWROb2RlLmRpcmVjdGlvbilcbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgZXhwb3J0SlNPTigpOiBTZXJpYWxpemVkQXV0b0xpbmtOb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZXhwb3J0SlNPTigpLFxuICAgICAgdHlwZTogJ2F1dG9saW5rJyxcbiAgICAgIHZlcnNpb246IDIsXG4gICAgfVxuICB9XG5cbiAgaW5zZXJ0TmV3QWZ0ZXIoc2VsZWN0aW9uOiBSYW5nZVNlbGVjdGlvbiwgcmVzdG9yZVNlbGVjdGlvbiA9IHRydWUpOiBFbGVtZW50Tm9kZSB8IG51bGwge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldFBhcmVudE9yVGhyb3coKS5pbnNlcnROZXdBZnRlcihzZWxlY3Rpb24sIHJlc3RvcmVTZWxlY3Rpb24pXG4gICAgaWYgKCRpc0VsZW1lbnROb2RlKGVsZW1lbnQpKSB7XG4gICAgICBjb25zdCBsaW5rTm9kZSA9ICRjcmVhdGVBdXRvTGlua05vZGUoeyBmaWVsZHM6IHRoaXMuX19maWVsZHMgfSlcbiAgICAgIGVsZW1lbnQuYXBwZW5kKGxpbmtOb2RlKVxuICAgICAgcmV0dXJuIGxpbmtOb2RlXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uICRjcmVhdGVBdXRvTGlua05vZGUoeyBmaWVsZHMgfTogeyBmaWVsZHM6IExpbmtGaWVsZHMgfSk6IEF1dG9MaW5rTm9kZSB7XG4gIHJldHVybiAkYXBwbHlOb2RlUmVwbGFjZW1lbnQobmV3IEF1dG9MaW5rTm9kZSh7IGZpZWxkcyB9KSlcbn1cbmV4cG9ydCBmdW5jdGlvbiAkaXNBdXRvTGlua05vZGUobm9kZTogTGV4aWNhbE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogbm9kZSBpcyBBdXRvTGlua05vZGUge1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIEF1dG9MaW5rTm9kZVxufVxuIl0sIm5hbWVzIjpbIiRhcHBseU5vZGVSZXBsYWNlbWVudCIsIiRpc0VsZW1lbnROb2RlIiwiTGlua05vZGUiLCJBdXRvTGlua05vZGUiLCJjbG9uZSIsIm5vZGUiLCJmaWVsZHMiLCJfX2ZpZWxkcyIsImtleSIsIl9fa2V5IiwiZ2V0VHlwZSIsImltcG9ydERPTSIsImltcG9ydEpTT04iLCJzZXJpYWxpemVkTm9kZSIsInZlcnNpb24iLCJkb2MiLCJ2YWx1ZSIsImlkIiwiJGNyZWF0ZUF1dG9MaW5rTm9kZSIsInNldEZvcm1hdCIsImZvcm1hdCIsInNldEluZGVudCIsImluZGVudCIsInNldERpcmVjdGlvbiIsImRpcmVjdGlvbiIsImV4cG9ydEpTT04iLCJ0eXBlIiwiaW5zZXJ0TmV3QWZ0ZXIiLCJzZWxlY3Rpb24iLCJyZXN0b3JlU2VsZWN0aW9uIiwiZWxlbWVudCIsImdldFBhcmVudE9yVGhyb3ciLCJsaW5rTm9kZSIsImFwcGVuZCIsIiRpc0F1dG9MaW5rTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEscUJBQXFCLEVBQ3JCQyxjQUFjLFFBSVQsVUFBUztBQUloQixTQUFTQyxRQUFRLFFBQVEsZ0JBQWU7QUFFeEMsOERBQThEO0FBQzlELCtCQUErQjtBQUUvQixPQUFPLE1BQU1DLHFCQUFxQkQ7SUFDaEMsT0FBT0UsTUFBTUMsSUFBa0IsRUFBZ0I7UUFDN0MsT0FBTyxJQUFJRixhQUFhO1lBQUVHLFFBQVFELEtBQUtFLFFBQVE7WUFBRUMsS0FBS0gsS0FBS0ksS0FBSztRQUFDO0lBQ25FO0lBRUEsT0FBT0MsVUFBa0I7UUFDdkIsT0FBTztJQUNUO0lBRUEsT0FBT0MsWUFBa0I7UUFDdkIsaUVBQWlFO1FBQ2pFLE9BQU87SUFDVDtJQUVBLE9BQU9DLFdBQVdDLGNBQXNDLEVBQWdCO1FBQ3RFLElBQ0VBLGVBQWVDLE9BQU8sS0FBSyxLQUMzQixPQUFPRCxlQUFlUCxNQUFNLEVBQUVTLEtBQUtDLFVBQVUsWUFDN0NILGVBQWVQLE1BQU0sRUFBRVMsS0FBS0MsT0FBT0MsSUFDbkM7WUFDQUosZUFBZVAsTUFBTSxDQUFDUyxHQUFHLENBQUNDLEtBQUssR0FBR0gsZUFBZVAsTUFBTSxDQUFDUyxHQUFHLENBQUNDLEtBQUssQ0FBQ0MsRUFBRTtZQUNwRUosZUFBZUMsT0FBTyxHQUFHO1FBQzNCO1FBRUEsTUFBTVQsT0FBT2Esb0JBQW9CO1lBQUVaLFFBQVFPLGVBQWVQLE1BQU07UUFBQztRQUVqRUQsS0FBS2MsU0FBUyxDQUFDTixlQUFlTyxNQUFNO1FBQ3BDZixLQUFLZ0IsU0FBUyxDQUFDUixlQUFlUyxNQUFNO1FBQ3BDakIsS0FBS2tCLFlBQVksQ0FBQ1YsZUFBZVcsU0FBUztRQUMxQyxPQUFPbkI7SUFDVDtJQUVBb0IsYUFBcUM7UUFDbkMsT0FBTztZQUNMLEdBQUcsS0FBSyxDQUFDQSxZQUFZO1lBQ3JCQyxNQUFNO1lBQ05aLFNBQVM7UUFDWDtJQUNGO0lBRUFhLGVBQWVDLFNBQXlCLEVBQUVDLG1CQUFtQixJQUFJLEVBQXNCO1FBQ3JGLE1BQU1DLFVBQVUsSUFBSSxDQUFDQyxnQkFBZ0IsR0FBR0osY0FBYyxDQUFDQyxXQUFXQztRQUNsRSxJQUFJNUIsZUFBZTZCLFVBQVU7WUFDM0IsTUFBTUUsV0FBV2Qsb0JBQW9CO2dCQUFFWixRQUFRLElBQUksQ0FBQ0MsUUFBUTtZQUFDO1lBQzdEdUIsUUFBUUcsTUFBTSxDQUFDRDtZQUNmLE9BQU9BO1FBQ1Q7UUFDQSxPQUFPO0lBQ1Q7QUFDRjtBQUVBLE9BQU8sU0FBU2Qsb0JBQW9CLEVBQUVaLE1BQU0sRUFBMEI7SUFDcEUsT0FBT04sc0JBQXNCLElBQUlHLGFBQWE7UUFBRUc7SUFBTztBQUN6RDtBQUNBLE9BQU8sU0FBUzRCLGdCQUFnQjdCLElBQW9DO0lBQ2xFLE9BQU9BLGdCQUFnQkY7QUFDekIifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseSelection } from 'lexical';
|
|
2
2
|
import { type DOMConversionMap, type EditorConfig, ElementNode, type LexicalCommand, type LexicalNode, type NodeKey, type RangeSelection } from 'lexical';
|
|
3
|
-
import type { LinkPayload } from '../plugins/floatingLinkEditor/types';
|
|
4
|
-
import type { LinkFields, SerializedLinkNode } from './types';
|
|
3
|
+
import type { LinkPayload } from '../plugins/floatingLinkEditor/types.js';
|
|
4
|
+
import type { LinkFields, SerializedLinkNode } from './types.js';
|
|
5
5
|
/** @noInheritDoc */
|
|
6
6
|
export declare class LinkNode extends ElementNode {
|
|
7
7
|
__fields: LinkFields;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkNode.d.ts","sourceRoot":"","sources":["../../../../../src/field/features/link/nodes/LinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,EAML,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,cAAc,EAEpB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LinkNode.d.ts","sourceRoot":"","sources":["../../../../../src/field/features/link/nodes/LinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,EAML,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,cAAc,EAEpB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIhE,oBAAoB;AACpB,qBAAa,QAAS,SAAQ,WAAW;IACvC,QAAQ,EAAE,UAAU,CAAA;gBAER,EACV,MAKC,EACD,GAAG,GACJ,EAAE;QACD,MAAM,EAAE,UAAU,CAAA;QAClB,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;IAKD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAOtC,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,gBAAgB,GAAG,IAAI;IAS3C,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,kBAAkB,GAAG,QAAQ;IAmB/D,UAAU,IAAI,KAAK;IAInB,kBAAkB,IAAI,KAAK;IAI3B,mBAAmB,IAAI,KAAK;IAI5B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAiBlD,UAAU,IAAI,kBAAkB;IAShC,gBAAgB,CACd,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,OAAO,GAAG,MAAM,GAC5B,OAAO;IAeV,SAAS,IAAI,UAAU;IAIvB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,UAAO,GAAG,WAAW,GAAG,IAAI;IAUtF,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAahC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;CA8BxF;AAoBD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,QAAQ,CAE5E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAElF;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAC7B,CAAA;AAEtC,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CA6GrD"}
|
|
@@ -296,4 +296,4 @@ function manageRel(input, action, value) {
|
|
|
296
296
|
return result;
|
|
297
297
|
}
|
|
298
298
|
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL25vZGVzL0xpbmtOb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFzZVNlbGVjdGlvbiB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB7IGFkZENsYXNzTmFtZXNUb0VsZW1lbnQsIGlzSFRNTEFuY2hvckVsZW1lbnQgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7XG4gICRhcHBseU5vZGVSZXBsYWNlbWVudCxcbiAgJGNyZWF0ZVRleHROb2RlLFxuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNFbGVtZW50Tm9kZSxcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIHR5cGUgRE9NQ29udmVyc2lvbk1hcCxcbiAgdHlwZSBET01Db252ZXJzaW9uT3V0cHV0LFxuICB0eXBlIEVkaXRvckNvbmZpZyxcbiAgRWxlbWVudE5vZGUsXG4gIHR5cGUgTGV4aWNhbENvbW1hbmQsXG4gIHR5cGUgTGV4aWNhbE5vZGUsXG4gIHR5cGUgTm9kZUtleSxcbiAgdHlwZSBSYW5nZVNlbGVjdGlvbixcbiAgY3JlYXRlQ29tbWFuZCxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBMaW5rRmllbGRzLCBTZXJpYWxpemVkTGlua05vZGUgfSBmcm9tICcuL3R5cGVzJ1xuXG5jb25zdCBTVVBQT1JURURfVVJMX1BST1RPQ09MUyA9IG5ldyBTZXQoWydodHRwOicsICdodHRwczonLCAnbWFpbHRvOicsICdzbXM6JywgJ3RlbDonXSlcblxuLyoqIEBub0luaGVyaXREb2MgKi9cbmV4cG9ydCBjbGFzcyBMaW5rTm9kZSBleHRlbmRzIEVsZW1lbnROb2RlIHtcbiAgX19maWVsZHM6IExpbmtGaWVsZHNcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgZmllbGRzID0ge1xuICAgICAgZG9jOiBudWxsLFxuICAgICAgbGlua1R5cGU6ICdjdXN0b20nLFxuICAgICAgbmV3VGFiOiBmYWxzZSxcbiAgICAgIHVybDogdW5kZWZpbmVkLFxuICAgIH0sXG4gICAga2V5LFxuICB9OiB7XG4gICAgZmllbGRzOiBMaW5rRmllbGRzXG4gICAga2V5PzogTm9kZUtleVxuICB9KSB7XG4gICAgc3VwZXIoa2V5KVxuICAgIHRoaXMuX19maWVsZHMgPSBmaWVsZHNcbiAgfVxuXG4gIHN0YXRpYyBjbG9uZShub2RlOiBMaW5rTm9kZSk6IExpbmtOb2RlIHtcbiAgICByZXR1cm4gbmV3IExpbmtOb2RlKHtcbiAgICAgIGZpZWxkczogbm9kZS5fX2ZpZWxkcyxcbiAgICAgIGtleTogbm9kZS5fX2tleSxcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2xpbmsnXG4gIH1cblxuICBzdGF0aWMgaW1wb3J0RE9NKCk6IERPTUNvbnZlcnNpb25NYXAgfCBudWxsIHtcbiAgICByZXR1cm4ge1xuICAgICAgYTogKG5vZGU6IE5vZGUpID0+ICh7XG4gICAgICAgIGNvbnZlcnNpb246IGNvbnZlcnRBbmNob3JFbGVtZW50LFxuICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgIH0pLFxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBpbXBvcnRKU09OKHNlcmlhbGl6ZWROb2RlOiBTZXJpYWxpemVkTGlua05vZGUpOiBMaW5rTm9kZSB7XG4gICAgaWYgKFxuICAgICAgc2VyaWFsaXplZE5vZGUudmVyc2lvbiA9PT0gMSAmJlxuICAgICAgdHlwZW9mIHNlcmlhbGl6ZWROb2RlLmZpZWxkcz8uZG9jPy52YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHNlcmlhbGl6ZWROb2RlLmZpZWxkcz8uZG9jPy52YWx1ZT8uaWRcbiAgICApIHtcbiAgICAgIHNlcmlhbGl6ZWROb2RlLmZpZWxkcy5kb2MudmFsdWUgPSBzZXJpYWxpemVkTm9kZS5maWVsZHMuZG9jLnZhbHVlLmlkXG4gICAgICBzZXJpYWxpemVkTm9kZS52ZXJzaW9uID0gMlxuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSAkY3JlYXRlTGlua05vZGUoe1xuICAgICAgZmllbGRzOiBzZXJpYWxpemVkTm9kZS5maWVsZHMsXG4gICAgfSlcbiAgICBub2RlLnNldEZvcm1hdChzZXJpYWxpemVkTm9kZS5mb3JtYXQpXG4gICAgbm9kZS5zZXRJbmRlbnQoc2VyaWFsaXplZE5vZGUuaW5kZW50KVxuICAgIG5vZGUuc2V0RGlyZWN0aW9uKHNlcmlhbGl6ZWROb2RlLmRpcmVjdGlvbilcbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgY2FuQmVFbXB0eSgpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjYW5JbnNlcnRUZXh0QWZ0ZXIoKTogZmFsc2Uge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY2FuSW5zZXJ0VGV4dEJlZm9yZSgpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjcmVhdGVET00oY29uZmlnOiBFZGl0b3JDb25maWcpOiBIVE1MQW5jaG9yRWxlbWVudCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgIGVsZW1lbnQuaHJlZiA9IHRoaXMuc2FuaXRpemVVcmwodGhpcy5fX2ZpZWxkcy51cmwgPz8gJycpXG4gICAgfVxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5uZXdUYWIgPz8gZmFsc2UpIHtcbiAgICAgIGVsZW1lbnQudGFyZ2V0ID0gJ19ibGFuaydcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubmV3VGFiID09PSB0cnVlICYmIHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgZWxlbWVudC5yZWwgPSBtYW5hZ2VSZWwoZWxlbWVudC5yZWwsICdhZGQnLCAnbm9vcGVuZXInKVxuICAgIH1cblxuICAgIGFkZENsYXNzTmFtZXNUb0VsZW1lbnQoZWxlbWVudCwgY29uZmlnLnRoZW1lLmxpbmspXG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgfVxuXG4gIGV4cG9ydEpTT04oKTogU2VyaWFsaXplZExpbmtOb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZXhwb3J0SlNPTigpLFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlKCksXG4gICAgICBmaWVsZHM6IHRoaXMuZ2V0RmllbGRzKCksXG4gICAgICB2ZXJzaW9uOiAyLFxuICAgIH1cbiAgfVxuXG4gIGV4dHJhY3RXaXRoQ2hpbGQoXG4gICAgY2hpbGQ6IExleGljYWxOb2RlLFxuICAgIHNlbGVjdGlvbjogQmFzZVNlbGVjdGlvbixcbiAgICBkZXN0aW5hdGlvbjogJ2Nsb25lJyB8ICdodG1sJyxcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBhbmNob3JOb2RlID0gc2VsZWN0aW9uLmFuY2hvci5nZXROb2RlKClcbiAgICBjb25zdCBmb2N1c05vZGUgPSBzZWxlY3Rpb24uZm9jdXMuZ2V0Tm9kZSgpXG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc1BhcmVudE9mKGFuY2hvck5vZGUpICYmXG4gICAgICB0aGlzLmlzUGFyZW50T2YoZm9jdXNOb2RlKSAmJlxuICAgICAgc2VsZWN0aW9uLmdldFRleHRDb250ZW50KCkubGVuZ3RoID4gMFxuICAgIClcbiAgfVxuXG4gIGdldEZpZWxkcygpOiBMaW5rRmllbGRzIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMYXRlc3QoKS5fX2ZpZWxkc1xuICB9XG5cbiAgaW5zZXJ0TmV3QWZ0ZXIoc2VsZWN0aW9uOiBSYW5nZVNlbGVjdGlvbiwgcmVzdG9yZVNlbGVjdGlvbiA9IHRydWUpOiBFbGVtZW50Tm9kZSB8IG51bGwge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldFBhcmVudE9yVGhyb3coKS5pbnNlcnROZXdBZnRlcihzZWxlY3Rpb24sIHJlc3RvcmVTZWxlY3Rpb24pXG4gICAgaWYgKCRpc0VsZW1lbnROb2RlKGVsZW1lbnQpKSB7XG4gICAgICBjb25zdCBsaW5rTm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7IGZpZWxkczogdGhpcy5fX2ZpZWxkcyB9KVxuICAgICAgZWxlbWVudC5hcHBlbmQobGlua05vZGUpXG4gICAgICByZXR1cm4gbGlua05vZGVcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzSW5saW5lKCk6IHRydWUge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBzYW5pdGl6ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwodXJsKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNjcmlwdC11cmxcbiAgICAgIGlmICghU1VQUE9SVEVEX1VSTF9QUk9UT0NPTFMuaGFzKHBhcnNlZFVybC5wcm90b2NvbCkpIHtcbiAgICAgICAgcmV0dXJuICdhYm91dDpibGFuaydcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gJ2h0dHBzOi8vJ1xuICAgIH1cbiAgICByZXR1cm4gdXJsXG4gIH1cblxuICBzZXRGaWVsZHMoZmllbGRzOiBMaW5rRmllbGRzKTogdm9pZCB7XG4gICAgY29uc3Qgd3JpdGFibGUgPSB0aGlzLmdldFdyaXRhYmxlKClcbiAgICB3cml0YWJsZS5fX2ZpZWxkcyA9IGZpZWxkc1xuICB9XG5cbiAgdXBkYXRlRE9NKHByZXZOb2RlOiBMaW5rTm9kZSwgYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCwgY29uZmlnOiBFZGl0b3JDb25maWcpOiBib29sZWFuIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLl9fZmllbGRzPy51cmxcbiAgICBjb25zdCBuZXdUYWIgPSB0aGlzLl9fZmllbGRzPy5uZXdUYWJcbiAgICBpZiAodXJsICE9IG51bGwgJiYgdXJsICE9PSBwcmV2Tm9kZS5fX2ZpZWxkcz8udXJsICYmIHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgYW5jaG9yLmhyZWYgPSB1cmxcbiAgICB9XG4gICAgaWYgKHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnaW50ZXJuYWwnICYmIHByZXZOb2RlLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgIGFuY2hvci5yZW1vdmVBdHRyaWJ1dGUoJ2hyZWYnKVxuICAgIH1cblxuICAgIC8vIFRPRE86IG5vdCAxMDAlIHN1cmUgd2h5IHdlJ3JlIHNldHRpZ24gcmVsIHRvICcnIC0gcmV2aXNpdFxuICAgIC8vIFN0YXJ0IHJlbCBjb25maWcgaGVyZSwgdGhlbiBjaGVjayBuZXdUYWIgYmVsb3dcbiAgICBpZiAoYW5jaG9yLnJlbCA9PSBudWxsKSB7XG4gICAgICBhbmNob3IucmVsID0gJydcbiAgICB9XG5cbiAgICBpZiAobmV3VGFiICE9PSBwcmV2Tm9kZS5fX2ZpZWxkcz8ubmV3VGFiKSB7XG4gICAgICBpZiAobmV3VGFiID8/IGZhbHNlKSB7XG4gICAgICAgIGFuY2hvci50YXJnZXQgPSAnX2JsYW5rJ1xuICAgICAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICAgICAgYW5jaG9yLnJlbCA9IG1hbmFnZVJlbChhbmNob3IucmVsLCAnYWRkJywgJ25vb3BlbmVyJylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW5jaG9yLnJlbW92ZUF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgICAgICAgYW5jaG9yLnJlbCA9IG1hbmFnZVJlbChhbmNob3IucmVsLCAncmVtb3ZlJywgJ25vb3BlbmVyJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0QW5jaG9yRWxlbWVudChkb21Ob2RlOiBOb2RlKTogRE9NQ29udmVyc2lvbk91dHB1dCB7XG4gIGxldCBub2RlOiBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG4gIGlmIChpc0hUTUxBbmNob3JFbGVtZW50KGRvbU5vZGUpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGRvbU5vZGUudGV4dENvbnRlbnRcbiAgICBpZiAoY29udGVudCAhPT0gbnVsbCAmJiBjb250ZW50ICE9PSAnJykge1xuICAgICAgbm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7XG4gICAgICAgIGZpZWxkczoge1xuICAgICAgICAgIGRvYzogbnVsbCxcbiAgICAgICAgICBsaW5rVHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgbmV3VGFiOiBkb21Ob2RlLmdldEF0dHJpYnV0ZSgndGFyZ2V0JykgPT09ICdfYmxhbmsnLFxuICAgICAgICAgIHVybDogZG9tTm9kZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSA/PyAnJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG4gIHJldHVybiB7IG5vZGUgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gJGNyZWF0ZUxpbmtOb2RlKHsgZmllbGRzIH06IHsgZmllbGRzOiBMaW5rRmllbGRzIH0pOiBMaW5rTm9kZSB7XG4gIHJldHVybiAkYXBwbHlOb2RlUmVwbGFjZW1lbnQobmV3IExpbmtOb2RlKHsgZmllbGRzIH0pKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gJGlzTGlua05vZGUobm9kZTogTGV4aWNhbE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogbm9kZSBpcyBMaW5rTm9kZSB7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgTGlua05vZGVcbn1cblxuZXhwb3J0IGNvbnN0IFRPR0dMRV9MSU5LX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPExpbmtQYXlsb2FkIHwgbnVsbD4gPVxuICBjcmVhdGVDb21tYW5kKCdUT0dHTEVfTElOS19DT01NQU5EJylcblxuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUxpbmsocGF5bG9hZDogTGlua1BheWxvYWQpOiB2b2lkIHtcbiAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG5cbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3Qgbm9kZXMgPSBzZWxlY3Rpb24uZXh0cmFjdCgpXG5cbiAgaWYgKHBheWxvYWQgPT09IG51bGwpIHtcbiAgICAvLyBSZW1vdmUgTGlua05vZGVzXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZS5nZXRQYXJlbnQoKVxuXG4gICAgICBpZiAoJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5nZXRDaGlsZHJlbigpXG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGRyZW5baV0pXG4gICAgICAgIH1cblxuICAgICAgICBwYXJlbnQucmVtb3ZlKClcbiAgICAgIH1cbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIC8vIEFkZCBvciBtZXJnZSBMaW5rTm9kZXNcbiAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdE5vZGUgPSBub2Rlc1swXVxuICAgICAgLy8gaWYgdGhlIGZpcnN0IG5vZGUgaXMgYSBMaW5rTm9kZSBvciBpZiBpdHNcbiAgICAgIC8vIHBhcmVudCBpcyBhIExpbmtOb2RlLCB3ZSB1cGRhdGUgdGhlIFVSTCwgdGFyZ2V0IGFuZCByZWwuXG4gICAgICBjb25zdCBsaW5rTm9kZTogTGlua05vZGUgfCBudWxsID0gJGlzTGlua05vZGUoZmlyc3ROb2RlKVxuICAgICAgICA/IGZpcnN0Tm9kZVxuICAgICAgICA6ICRnZXRMaW5rQW5jZXN0b3IoZmlyc3ROb2RlKVxuICAgICAgaWYgKGxpbmtOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGxpbmtOb2RlLnNldEZpZWxkcyhwYXlsb2FkLmZpZWxkcylcblxuICAgICAgICBpZiAocGF5bG9hZC50ZXh0ICE9IG51bGwgJiYgcGF5bG9hZC50ZXh0ICE9PSBsaW5rTm9kZS5nZXRUZXh0Q29udGVudCgpKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIGFsbCBjaGlsZHJlbiBhbmQgYWRkIGNoaWxkIHdpdGggbmV3IHRleHRjb250ZW50OlxuICAgICAgICAgIGxpbmtOb2RlLmFwcGVuZCgkY3JlYXRlVGV4dE5vZGUocGF5bG9hZC50ZXh0KSlcbiAgICAgICAgICBsaW5rTm9kZS5nZXRDaGlsZHJlbigpLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQgIT09IGxpbmtOb2RlLmdldExhc3RDaGlsZCgpKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcHJldlBhcmVudDogRWxlbWVudE5vZGUgfCBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG4gICAgbGV0IGxpbmtOb2RlOiBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG5cbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBub2RlLmdldFBhcmVudCgpXG5cbiAgICAgIGlmIChwYXJlbnQgPT09IGxpbmtOb2RlIHx8IHBhcmVudCA9PT0gbnVsbCB8fCAoJGlzRWxlbWVudE5vZGUobm9kZSkgJiYgIW5vZGUuaXNJbmxpbmUoKSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICgkaXNMaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgIGxpbmtOb2RlID0gcGFyZW50XG4gICAgICAgIHBhcmVudC5zZXRGaWVsZHMocGF5bG9hZC5maWVsZHMpXG4gICAgICAgIGlmIChwYXlsb2FkLnRleHQgIT0gbnVsbCAmJiBwYXlsb2FkLnRleHQgIT09IHBhcmVudC5nZXRUZXh0Q29udGVudCgpKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIGFsbCBjaGlsZHJlbiBhbmQgYWRkIGNoaWxkIHdpdGggbmV3IHRleHRjb250ZW50OlxuICAgICAgICAgIHBhcmVudC5hcHBlbmQoJGNyZWF0ZVRleHROb2RlKHBheWxvYWQudGV4dCkpXG4gICAgICAgICAgcGFyZW50LmdldENoaWxkcmVuKCkuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZCAhPT0gcGFyZW50LmdldExhc3RDaGlsZCgpKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFwYXJlbnQuaXMocHJldlBhcmVudCkpIHtcbiAgICAgICAgcHJldlBhcmVudCA9IHBhcmVudFxuICAgICAgICBsaW5rTm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7IGZpZWxkczogcGF5bG9hZC5maWVsZHMgfSlcblxuICAgICAgICBpZiAoJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgIGlmIChub2RlLmdldFByZXZpb3VzU2libGluZygpID09PSBudWxsKSB7XG4gICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGxpbmtOb2RlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QWZ0ZXIobGlua05vZGUpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUuaW5zZXJ0QmVmb3JlKGxpbmtOb2RlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICgkaXNMaW5rTm9kZShub2RlKSkge1xuICAgICAgICBpZiAobm9kZS5pcyhsaW5rTm9kZSkpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAobGlua05vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuZ2V0Q2hpbGRyZW4oKVxuXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgbGlua05vZGUuYXBwZW5kKGNoaWxkcmVuW2ldKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUucmVtb3ZlKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5rTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBsaW5rTm9kZS5hcHBlbmQobm9kZSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uICRnZXRMaW5rQW5jZXN0b3Iobm9kZTogTGV4aWNhbE5vZGUpOiBMaW5rTm9kZSB8IG51bGwge1xuICByZXR1cm4gJGdldEFuY2VzdG9yKG5vZGUsIChhbmNlc3RvcikgPT4gJGlzTGlua05vZGUoYW5jZXN0b3IpKSBhcyBMaW5rTm9kZVxufVxuXG5mdW5jdGlvbiAkZ2V0QW5jZXN0b3IoXG4gIG5vZGU6IExleGljYWxOb2RlLFxuICBwcmVkaWNhdGU6IChhbmNlc3RvcjogTGV4aWNhbE5vZGUpID0+IGJvb2xlYW4sXG4pOiBMZXhpY2FsTm9kZSB8IG51bGwge1xuICBsZXQgcGFyZW50OiBMZXhpY2FsTm9kZSB8IG51bGwgPSBub2RlXG4gIHdoaWxlIChwYXJlbnQgIT09IG51bGwgJiYgKHBhcmVudCA9IHBhcmVudC5nZXRQYXJlbnQoKSkgIT09IG51bGwgJiYgIXByZWRpY2F0ZShwYXJlbnQpKTtcbiAgcmV0dXJuIHBhcmVudFxufVxuXG5mdW5jdGlvbiBtYW5hZ2VSZWwoaW5wdXQ6IHN0cmluZywgYWN0aW9uOiAnYWRkJyB8ICdyZW1vdmUnLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdDogc3RyaW5nXG4gIGxldCBtdXRhYmxlSW5wdXQgPSBgJHtpbnB1dH1gXG4gIGlmIChhY3Rpb24gPT09ICdhZGQnKSB7XG4gICAgLy8gaWYgd2Ugc29tZWhvdyBnb3Qgb3V0IG9mIHN5bmMgLSBjbGVhbiB1cFxuICAgIGlmIChtdXRhYmxlSW5wdXQuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAodmFsdWUsICdnJylcbiAgICAgIG11dGFibGVJbnB1dCA9IG11dGFibGVJbnB1dC5yZXBsYWNlKHJlLCAnJykudHJpbSgpXG4gICAgfVxuICAgIG11dGFibGVJbnB1dCA9IG11dGFibGVJbnB1dC50cmltKClcbiAgICByZXN1bHQgPSBtdXRhYmxlSW5wdXQubGVuZ3RoID09PSAwID8gYCR7dmFsdWV9YCA6IGAke211dGFibGVJbnB1dH0gJHt2YWx1ZX1gXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKHZhbHVlLCAnZycpXG4gICAgcmVzdWx0ID0gbXV0YWJsZUlucHV0LnJlcGxhY2UocmUsICcnKS50cmltKClcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiYWRkQ2xhc3NOYW1lc1RvRWxlbWVudCIsImlzSFRNTEFuY2hvckVsZW1lbnQiLCIkYXBwbHlOb2RlUmVwbGFjZW1lbnQiLCIkY3JlYXRlVGV4dE5vZGUiLCIkZ2V0U2VsZWN0aW9uIiwiJGlzRWxlbWVudE5vZGUiLCIkaXNSYW5nZVNlbGVjdGlvbiIsIkVsZW1lbnROb2RlIiwiY3JlYXRlQ29tbWFuZCIsIlNVUFBPUlRFRF9VUkxfUFJPVE9DT0xTIiwiU2V0IiwiTGlua05vZGUiLCJfX2ZpZWxkcyIsImNvbnN0cnVjdG9yIiwiZmllbGRzIiwiZG9jIiwibGlua1R5cGUiLCJuZXdUYWIiLCJ1cmwiLCJ1bmRlZmluZWQiLCJrZXkiLCJjbG9uZSIsIm5vZGUiLCJfX2tleSIsImdldFR5cGUiLCJpbXBvcnRET00iLCJhIiwiY29udmVyc2lvbiIsImNvbnZlcnRBbmNob3JFbGVtZW50IiwicHJpb3JpdHkiLCJpbXBvcnRKU09OIiwic2VyaWFsaXplZE5vZGUiLCJ2ZXJzaW9uIiwidmFsdWUiLCJpZCIsIiRjcmVhdGVMaW5rTm9kZSIsInNldEZvcm1hdCIsImZvcm1hdCIsInNldEluZGVudCIsImluZGVudCIsInNldERpcmVjdGlvbiIsImRpcmVjdGlvbiIsImNhbkJlRW1wdHkiLCJjYW5JbnNlcnRUZXh0QWZ0ZXIiLCJjYW5JbnNlcnRUZXh0QmVmb3JlIiwiY3JlYXRlRE9NIiwiY29uZmlnIiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImhyZWYiLCJzYW5pdGl6ZVVybCIsInRhcmdldCIsInJlbCIsIm1hbmFnZVJlbCIsInRoZW1lIiwibGluayIsImV4cG9ydEpTT04iLCJ0eXBlIiwiZ2V0RmllbGRzIiwiZXh0cmFjdFdpdGhDaGlsZCIsImNoaWxkIiwic2VsZWN0aW9uIiwiZGVzdGluYXRpb24iLCJhbmNob3JOb2RlIiwiYW5jaG9yIiwiZ2V0Tm9kZSIsImZvY3VzTm9kZSIsImZvY3VzIiwiaXNQYXJlbnRPZiIsImdldFRleHRDb250ZW50IiwibGVuZ3RoIiwiZ2V0TGF0ZXN0IiwiaW5zZXJ0TmV3QWZ0ZXIiLCJyZXN0b3JlU2VsZWN0aW9uIiwiZ2V0UGFyZW50T3JUaHJvdyIsImxpbmtOb2RlIiwiYXBwZW5kIiwiaXNJbmxpbmUiLCJwYXJzZWRVcmwiLCJVUkwiLCJoYXMiLCJwcm90b2NvbCIsImUiLCJzZXRGaWVsZHMiLCJ3cml0YWJsZSIsImdldFdyaXRhYmxlIiwidXBkYXRlRE9NIiwicHJldk5vZGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJkb21Ob2RlIiwiY29udGVudCIsInRleHRDb250ZW50IiwiZ2V0QXR0cmlidXRlIiwiJGlzTGlua05vZGUiLCJUT0dHTEVfTElOS19DT01NQU5EIiwidG9nZ2xlTGluayIsInBheWxvYWQiLCJub2RlcyIsImV4dHJhY3QiLCJmb3JFYWNoIiwicGFyZW50IiwiZ2V0UGFyZW50IiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbiIsImkiLCJpbnNlcnRCZWZvcmUiLCJyZW1vdmUiLCJmaXJzdE5vZGUiLCIkZ2V0TGlua0FuY2VzdG9yIiwidGV4dCIsImdldExhc3RDaGlsZCIsInByZXZQYXJlbnQiLCJpcyIsImdldFByZXZpb3VzU2libGluZyIsImluc2VydEFmdGVyIiwiJGdldEFuY2VzdG9yIiwiYW5jZXN0b3IiLCJwcmVkaWNhdGUiLCJpbnB1dCIsImFjdGlvbiIsInJlc3VsdCIsIm11dGFibGVJbnB1dCIsImluY2x1ZGVzIiwicmUiLCJSZWdFeHAiLCJyZXBsYWNlIiwidHJpbSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0Esc0JBQXNCLEVBQUVDLG1CQUFtQixRQUFRLGlCQUFnQjtBQUM1RSxTQUNFQyxxQkFBcUIsRUFDckJDLGVBQWUsRUFDZkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUlqQkMsV0FBVyxFQUtYQyxhQUFhLFFBQ1IsVUFBUztBQUtoQixNQUFNQywwQkFBMEIsSUFBSUMsSUFBSTtJQUFDO0lBQVM7SUFBVTtJQUFXO0lBQVE7Q0FBTztBQUV0RixrQkFBa0IsR0FDbEIsT0FBTyxNQUFNQyxpQkFBaUJKO0lBQzVCSyxTQUFvQjtJQUVwQkMsWUFBWSxFQUNWQyxTQUFTO1FBQ1BDLEtBQUs7UUFDTEMsVUFBVTtRQUNWQyxRQUFRO1FBQ1JDLEtBQUtDO0lBQ1AsQ0FBQyxFQUNEQyxHQUFHLEVBSUosQ0FBRTtRQUNELEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNSLFFBQVEsR0FBR0U7SUFDbEI7SUFFQSxPQUFPTyxNQUFNQyxJQUFjLEVBQVk7UUFDckMsT0FBTyxJQUFJWCxTQUFTO1lBQ2xCRyxRQUFRUSxLQUFLVixRQUFRO1lBQ3JCUSxLQUFLRSxLQUFLQyxLQUFLO1FBQ2pCO0lBQ0Y7SUFFQSxPQUFPQyxVQUFrQjtRQUN2QixPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxZQUFxQztRQUMxQyxPQUFPO1lBQ0xDLEdBQUcsQ0FBQ0osT0FBZ0IsQ0FBQTtvQkFDbEJLLFlBQVlD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
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL25vZGVzL0xpbmtOb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFzZVNlbGVjdGlvbiB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB7IGFkZENsYXNzTmFtZXNUb0VsZW1lbnQsIGlzSFRNTEFuY2hvckVsZW1lbnQgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7XG4gICRhcHBseU5vZGVSZXBsYWNlbWVudCxcbiAgJGNyZWF0ZVRleHROb2RlLFxuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNFbGVtZW50Tm9kZSxcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIHR5cGUgRE9NQ29udmVyc2lvbk1hcCxcbiAgdHlwZSBET01Db252ZXJzaW9uT3V0cHV0LFxuICB0eXBlIEVkaXRvckNvbmZpZyxcbiAgRWxlbWVudE5vZGUsXG4gIHR5cGUgTGV4aWNhbENvbW1hbmQsXG4gIHR5cGUgTGV4aWNhbE5vZGUsXG4gIHR5cGUgTm9kZUtleSxcbiAgdHlwZSBSYW5nZVNlbGVjdGlvbixcbiAgY3JlYXRlQ29tbWFuZCxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBMaW5rRmllbGRzLCBTZXJpYWxpemVkTGlua05vZGUgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5jb25zdCBTVVBQT1JURURfVVJMX1BST1RPQ09MUyA9IG5ldyBTZXQoWydodHRwOicsICdodHRwczonLCAnbWFpbHRvOicsICdzbXM6JywgJ3RlbDonXSlcblxuLyoqIEBub0luaGVyaXREb2MgKi9cbmV4cG9ydCBjbGFzcyBMaW5rTm9kZSBleHRlbmRzIEVsZW1lbnROb2RlIHtcbiAgX19maWVsZHM6IExpbmtGaWVsZHNcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgZmllbGRzID0ge1xuICAgICAgZG9jOiBudWxsLFxuICAgICAgbGlua1R5cGU6ICdjdXN0b20nLFxuICAgICAgbmV3VGFiOiBmYWxzZSxcbiAgICAgIHVybDogdW5kZWZpbmVkLFxuICAgIH0sXG4gICAga2V5LFxuICB9OiB7XG4gICAgZmllbGRzOiBMaW5rRmllbGRzXG4gICAga2V5PzogTm9kZUtleVxuICB9KSB7XG4gICAgc3VwZXIoa2V5KVxuICAgIHRoaXMuX19maWVsZHMgPSBmaWVsZHNcbiAgfVxuXG4gIHN0YXRpYyBjbG9uZShub2RlOiBMaW5rTm9kZSk6IExpbmtOb2RlIHtcbiAgICByZXR1cm4gbmV3IExpbmtOb2RlKHtcbiAgICAgIGZpZWxkczogbm9kZS5fX2ZpZWxkcyxcbiAgICAgIGtleTogbm9kZS5fX2tleSxcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2xpbmsnXG4gIH1cblxuICBzdGF0aWMgaW1wb3J0RE9NKCk6IERPTUNvbnZlcnNpb25NYXAgfCBudWxsIHtcbiAgICByZXR1cm4ge1xuICAgICAgYTogKG5vZGU6IE5vZGUpID0+ICh7XG4gICAgICAgIGNvbnZlcnNpb246IGNvbnZlcnRBbmNob3JFbGVtZW50LFxuICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgIH0pLFxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBpbXBvcnRKU09OKHNlcmlhbGl6ZWROb2RlOiBTZXJpYWxpemVkTGlua05vZGUpOiBMaW5rTm9kZSB7XG4gICAgaWYgKFxuICAgICAgc2VyaWFsaXplZE5vZGUudmVyc2lvbiA9PT0gMSAmJlxuICAgICAgdHlwZW9mIHNlcmlhbGl6ZWROb2RlLmZpZWxkcz8uZG9jPy52YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHNlcmlhbGl6ZWROb2RlLmZpZWxkcz8uZG9jPy52YWx1ZT8uaWRcbiAgICApIHtcbiAgICAgIHNlcmlhbGl6ZWROb2RlLmZpZWxkcy5kb2MudmFsdWUgPSBzZXJpYWxpemVkTm9kZS5maWVsZHMuZG9jLnZhbHVlLmlkXG4gICAgICBzZXJpYWxpemVkTm9kZS52ZXJzaW9uID0gMlxuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSAkY3JlYXRlTGlua05vZGUoe1xuICAgICAgZmllbGRzOiBzZXJpYWxpemVkTm9kZS5maWVsZHMsXG4gICAgfSlcbiAgICBub2RlLnNldEZvcm1hdChzZXJpYWxpemVkTm9kZS5mb3JtYXQpXG4gICAgbm9kZS5zZXRJbmRlbnQoc2VyaWFsaXplZE5vZGUuaW5kZW50KVxuICAgIG5vZGUuc2V0RGlyZWN0aW9uKHNlcmlhbGl6ZWROb2RlLmRpcmVjdGlvbilcbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgY2FuQmVFbXB0eSgpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjYW5JbnNlcnRUZXh0QWZ0ZXIoKTogZmFsc2Uge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY2FuSW5zZXJ0VGV4dEJlZm9yZSgpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjcmVhdGVET00oY29uZmlnOiBFZGl0b3JDb25maWcpOiBIVE1MQW5jaG9yRWxlbWVudCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgIGVsZW1lbnQuaHJlZiA9IHRoaXMuc2FuaXRpemVVcmwodGhpcy5fX2ZpZWxkcy51cmwgPz8gJycpXG4gICAgfVxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5uZXdUYWIgPz8gZmFsc2UpIHtcbiAgICAgIGVsZW1lbnQudGFyZ2V0ID0gJ19ibGFuaydcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubmV3VGFiID09PSB0cnVlICYmIHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgZWxlbWVudC5yZWwgPSBtYW5hZ2VSZWwoZWxlbWVudC5yZWwsICdhZGQnLCAnbm9vcGVuZXInKVxuICAgIH1cblxuICAgIGFkZENsYXNzTmFtZXNUb0VsZW1lbnQoZWxlbWVudCwgY29uZmlnLnRoZW1lLmxpbmspXG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgfVxuXG4gIGV4cG9ydEpTT04oKTogU2VyaWFsaXplZExpbmtOb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZXhwb3J0SlNPTigpLFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlKCksXG4gICAgICBmaWVsZHM6IHRoaXMuZ2V0RmllbGRzKCksXG4gICAgICB2ZXJzaW9uOiAyLFxuICAgIH1cbiAgfVxuXG4gIGV4dHJhY3RXaXRoQ2hpbGQoXG4gICAgY2hpbGQ6IExleGljYWxOb2RlLFxuICAgIHNlbGVjdGlvbjogQmFzZVNlbGVjdGlvbixcbiAgICBkZXN0aW5hdGlvbjogJ2Nsb25lJyB8ICdodG1sJyxcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBhbmNob3JOb2RlID0gc2VsZWN0aW9uLmFuY2hvci5nZXROb2RlKClcbiAgICBjb25zdCBmb2N1c05vZGUgPSBzZWxlY3Rpb24uZm9jdXMuZ2V0Tm9kZSgpXG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc1BhcmVudE9mKGFuY2hvck5vZGUpICYmXG4gICAgICB0aGlzLmlzUGFyZW50T2YoZm9jdXNOb2RlKSAmJlxuICAgICAgc2VsZWN0aW9uLmdldFRleHRDb250ZW50KCkubGVuZ3RoID4gMFxuICAgIClcbiAgfVxuXG4gIGdldEZpZWxkcygpOiBMaW5rRmllbGRzIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMYXRlc3QoKS5fX2ZpZWxkc1xuICB9XG5cbiAgaW5zZXJ0TmV3QWZ0ZXIoc2VsZWN0aW9uOiBSYW5nZVNlbGVjdGlvbiwgcmVzdG9yZVNlbGVjdGlvbiA9IHRydWUpOiBFbGVtZW50Tm9kZSB8IG51bGwge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldFBhcmVudE9yVGhyb3coKS5pbnNlcnROZXdBZnRlcihzZWxlY3Rpb24sIHJlc3RvcmVTZWxlY3Rpb24pXG4gICAgaWYgKCRpc0VsZW1lbnROb2RlKGVsZW1lbnQpKSB7XG4gICAgICBjb25zdCBsaW5rTm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7IGZpZWxkczogdGhpcy5fX2ZpZWxkcyB9KVxuICAgICAgZWxlbWVudC5hcHBlbmQobGlua05vZGUpXG4gICAgICByZXR1cm4gbGlua05vZGVcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzSW5saW5lKCk6IHRydWUge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBzYW5pdGl6ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwodXJsKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNjcmlwdC11cmxcbiAgICAgIGlmICghU1VQUE9SVEVEX1VSTF9QUk9UT0NPTFMuaGFzKHBhcnNlZFVybC5wcm90b2NvbCkpIHtcbiAgICAgICAgcmV0dXJuICdhYm91dDpibGFuaydcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gJ2h0dHBzOi8vJ1xuICAgIH1cbiAgICByZXR1cm4gdXJsXG4gIH1cblxuICBzZXRGaWVsZHMoZmllbGRzOiBMaW5rRmllbGRzKTogdm9pZCB7XG4gICAgY29uc3Qgd3JpdGFibGUgPSB0aGlzLmdldFdyaXRhYmxlKClcbiAgICB3cml0YWJsZS5fX2ZpZWxkcyA9IGZpZWxkc1xuICB9XG5cbiAgdXBkYXRlRE9NKHByZXZOb2RlOiBMaW5rTm9kZSwgYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCwgY29uZmlnOiBFZGl0b3JDb25maWcpOiBib29sZWFuIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLl9fZmllbGRzPy51cmxcbiAgICBjb25zdCBuZXdUYWIgPSB0aGlzLl9fZmllbGRzPy5uZXdUYWJcbiAgICBpZiAodXJsICE9IG51bGwgJiYgdXJsICE9PSBwcmV2Tm9kZS5fX2ZpZWxkcz8udXJsICYmIHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgYW5jaG9yLmhyZWYgPSB1cmxcbiAgICB9XG4gICAgaWYgKHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnaW50ZXJuYWwnICYmIHByZXZOb2RlLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgIGFuY2hvci5yZW1vdmVBdHRyaWJ1dGUoJ2hyZWYnKVxuICAgIH1cblxuICAgIC8vIFRPRE86IG5vdCAxMDAlIHN1cmUgd2h5IHdlJ3JlIHNldHRpZ24gcmVsIHRvICcnIC0gcmV2aXNpdFxuICAgIC8vIFN0YXJ0IHJlbCBjb25maWcgaGVyZSwgdGhlbiBjaGVjayBuZXdUYWIgYmVsb3dcbiAgICBpZiAoYW5jaG9yLnJlbCA9PSBudWxsKSB7XG4gICAgICBhbmNob3IucmVsID0gJydcbiAgICB9XG5cbiAgICBpZiAobmV3VGFiICE9PSBwcmV2Tm9kZS5fX2ZpZWxkcz8ubmV3VGFiKSB7XG4gICAgICBpZiAobmV3VGFiID8/IGZhbHNlKSB7XG4gICAgICAgIGFuY2hvci50YXJnZXQgPSAnX2JsYW5rJ1xuICAgICAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICAgICAgYW5jaG9yLnJlbCA9IG1hbmFnZVJlbChhbmNob3IucmVsLCAnYWRkJywgJ25vb3BlbmVyJylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW5jaG9yLnJlbW92ZUF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgICAgICAgYW5jaG9yLnJlbCA9IG1hbmFnZVJlbChhbmNob3IucmVsLCAncmVtb3ZlJywgJ25vb3BlbmVyJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0QW5jaG9yRWxlbWVudChkb21Ob2RlOiBOb2RlKTogRE9NQ29udmVyc2lvbk91dHB1dCB7XG4gIGxldCBub2RlOiBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG4gIGlmIChpc0hUTUxBbmNob3JFbGVtZW50KGRvbU5vZGUpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGRvbU5vZGUudGV4dENvbnRlbnRcbiAgICBpZiAoY29udGVudCAhPT0gbnVsbCAmJiBjb250ZW50ICE9PSAnJykge1xuICAgICAgbm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7XG4gICAgICAgIGZpZWxkczoge1xuICAgICAgICAgIGRvYzogbnVsbCxcbiAgICAgICAgICBsaW5rVHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgbmV3VGFiOiBkb21Ob2RlLmdldEF0dHJpYnV0ZSgndGFyZ2V0JykgPT09ICdfYmxhbmsnLFxuICAgICAgICAgIHVybDogZG9tTm9kZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSA/PyAnJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG4gIHJldHVybiB7IG5vZGUgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gJGNyZWF0ZUxpbmtOb2RlKHsgZmllbGRzIH06IHsgZmllbGRzOiBMaW5rRmllbGRzIH0pOiBMaW5rTm9kZSB7XG4gIHJldHVybiAkYXBwbHlOb2RlUmVwbGFjZW1lbnQobmV3IExpbmtOb2RlKHsgZmllbGRzIH0pKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gJGlzTGlua05vZGUobm9kZTogTGV4aWNhbE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogbm9kZSBpcyBMaW5rTm9kZSB7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgTGlua05vZGVcbn1cblxuZXhwb3J0IGNvbnN0IFRPR0dMRV9MSU5LX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPExpbmtQYXlsb2FkIHwgbnVsbD4gPVxuICBjcmVhdGVDb21tYW5kKCdUT0dHTEVfTElOS19DT01NQU5EJylcblxuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUxpbmsocGF5bG9hZDogTGlua1BheWxvYWQpOiB2b2lkIHtcbiAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG5cbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3Qgbm9kZXMgPSBzZWxlY3Rpb24uZXh0cmFjdCgpXG5cbiAgaWYgKHBheWxvYWQgPT09IG51bGwpIHtcbiAgICAvLyBSZW1vdmUgTGlua05vZGVzXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZS5nZXRQYXJlbnQoKVxuXG4gICAgICBpZiAoJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5nZXRDaGlsZHJlbigpXG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGRyZW5baV0pXG4gICAgICAgIH1cblxuICAgICAgICBwYXJlbnQucmVtb3ZlKClcbiAgICAgIH1cbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIC8vIEFkZCBvciBtZXJnZSBMaW5rTm9kZXNcbiAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdE5vZGUgPSBub2Rlc1swXVxuICAgICAgLy8gaWYgdGhlIGZpcnN0IG5vZGUgaXMgYSBMaW5rTm9kZSBvciBpZiBpdHNcbiAgICAgIC8vIHBhcmVudCBpcyBhIExpbmtOb2RlLCB3ZSB1cGRhdGUgdGhlIFVSTCwgdGFyZ2V0IGFuZCByZWwuXG4gICAgICBjb25zdCBsaW5rTm9kZTogTGlua05vZGUgfCBudWxsID0gJGlzTGlua05vZGUoZmlyc3ROb2RlKVxuICAgICAgICA/IGZpcnN0Tm9kZVxuICAgICAgICA6ICRnZXRMaW5rQW5jZXN0b3IoZmlyc3ROb2RlKVxuICAgICAgaWYgKGxpbmtOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGxpbmtOb2RlLnNldEZpZWxkcyhwYXlsb2FkLmZpZWxkcylcblxuICAgICAgICBpZiAocGF5bG9hZC50ZXh0ICE9IG51bGwgJiYgcGF5bG9hZC50ZXh0ICE9PSBsaW5rTm9kZS5nZXRUZXh0Q29udGVudCgpKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIGFsbCBjaGlsZHJlbiBhbmQgYWRkIGNoaWxkIHdpdGggbmV3IHRleHRjb250ZW50OlxuICAgICAgICAgIGxpbmtOb2RlLmFwcGVuZCgkY3JlYXRlVGV4dE5vZGUocGF5bG9hZC50ZXh0KSlcbiAgICAgICAgICBsaW5rTm9kZS5nZXRDaGlsZHJlbigpLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQgIT09IGxpbmtOb2RlLmdldExhc3RDaGlsZCgpKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcHJldlBhcmVudDogRWxlbWVudE5vZGUgfCBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG4gICAgbGV0IGxpbmtOb2RlOiBMaW5rTm9kZSB8IG51bGwgPSBudWxsXG5cbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBub2RlLmdldFBhcmVudCgpXG5cbiAgICAgIGlmIChwYXJlbnQgPT09IGxpbmtOb2RlIHx8IHBhcmVudCA9PT0gbnVsbCB8fCAoJGlzRWxlbWVudE5vZGUobm9kZSkgJiYgIW5vZGUuaXNJbmxpbmUoKSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICgkaXNMaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgIGxpbmtOb2RlID0gcGFyZW50XG4gICAgICAgIHBhcmVudC5zZXRGaWVsZHMocGF5bG9hZC5maWVsZHMpXG4gICAgICAgIGlmIChwYXlsb2FkLnRleHQgIT0gbnVsbCAmJiBwYXlsb2FkLnRleHQgIT09IHBhcmVudC5nZXRUZXh0Q29udGVudCgpKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIGFsbCBjaGlsZHJlbiBhbmQgYWRkIGNoaWxkIHdpdGggbmV3IHRleHRjb250ZW50OlxuICAgICAgICAgIHBhcmVudC5hcHBlbmQoJGNyZWF0ZVRleHROb2RlKHBheWxvYWQudGV4dCkpXG4gICAgICAgICAgcGFyZW50LmdldENoaWxkcmVuKCkuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZCAhPT0gcGFyZW50LmdldExhc3RDaGlsZCgpKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFwYXJlbnQuaXMocHJldlBhcmVudCkpIHtcbiAgICAgICAgcHJldlBhcmVudCA9IHBhcmVudFxuICAgICAgICBsaW5rTm9kZSA9ICRjcmVhdGVMaW5rTm9kZSh7IGZpZWxkczogcGF5bG9hZC5maWVsZHMgfSlcblxuICAgICAgICBpZiAoJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgIGlmIChub2RlLmdldFByZXZpb3VzU2libGluZygpID09PSBudWxsKSB7XG4gICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGxpbmtOb2RlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QWZ0ZXIobGlua05vZGUpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUuaW5zZXJ0QmVmb3JlKGxpbmtOb2RlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICgkaXNMaW5rTm9kZShub2RlKSkge1xuICAgICAgICBpZiAobm9kZS5pcyhsaW5rTm9kZSkpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAobGlua05vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuZ2V0Q2hpbGRyZW4oKVxuXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgbGlua05vZGUuYXBwZW5kKGNoaWxkcmVuW2ldKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUucmVtb3ZlKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5rTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBsaW5rTm9kZS5hcHBlbmQobm9kZSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uICRnZXRMaW5rQW5jZXN0b3Iobm9kZTogTGV4aWNhbE5vZGUpOiBMaW5rTm9kZSB8IG51bGwge1xuICByZXR1cm4gJGdldEFuY2VzdG9yKG5vZGUsIChhbmNlc3RvcikgPT4gJGlzTGlua05vZGUoYW5jZXN0b3IpKSBhcyBMaW5rTm9kZVxufVxuXG5mdW5jdGlvbiAkZ2V0QW5jZXN0b3IoXG4gIG5vZGU6IExleGljYWxOb2RlLFxuICBwcmVkaWNhdGU6IChhbmNlc3RvcjogTGV4aWNhbE5vZGUpID0+IGJvb2xlYW4sXG4pOiBMZXhpY2FsTm9kZSB8IG51bGwge1xuICBsZXQgcGFyZW50OiBMZXhpY2FsTm9kZSB8IG51bGwgPSBub2RlXG4gIHdoaWxlIChwYXJlbnQgIT09IG51bGwgJiYgKHBhcmVudCA9IHBhcmVudC5nZXRQYXJlbnQoKSkgIT09IG51bGwgJiYgIXByZWRpY2F0ZShwYXJlbnQpKTtcbiAgcmV0dXJuIHBhcmVudFxufVxuXG5mdW5jdGlvbiBtYW5hZ2VSZWwoaW5wdXQ6IHN0cmluZywgYWN0aW9uOiAnYWRkJyB8ICdyZW1vdmUnLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdDogc3RyaW5nXG4gIGxldCBtdXRhYmxlSW5wdXQgPSBgJHtpbnB1dH1gXG4gIGlmIChhY3Rpb24gPT09ICdhZGQnKSB7XG4gICAgLy8gaWYgd2Ugc29tZWhvdyBnb3Qgb3V0IG9mIHN5bmMgLSBjbGVhbiB1cFxuICAgIGlmIChtdXRhYmxlSW5wdXQuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAodmFsdWUsICdnJylcbiAgICAgIG11dGFibGVJbnB1dCA9IG11dGFibGVJbnB1dC5yZXBsYWNlKHJlLCAnJykudHJpbSgpXG4gICAgfVxuICAgIG11dGFibGVJbnB1dCA9IG11dGFibGVJbnB1dC50cmltKClcbiAgICByZXN1bHQgPSBtdXRhYmxlSW5wdXQubGVuZ3RoID09PSAwID8gYCR7dmFsdWV9YCA6IGAke211dGFibGVJbnB1dH0gJHt2YWx1ZX1gXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKHZhbHVlLCAnZycpXG4gICAgcmVzdWx0ID0gbXV0YWJsZUlucHV0LnJlcGxhY2UocmUsICcnKS50cmltKClcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiYWRkQ2xhc3NOYW1lc1RvRWxlbWVudCIsImlzSFRNTEFuY2hvckVsZW1lbnQiLCIkYXBwbHlOb2RlUmVwbGFjZW1lbnQiLCIkY3JlYXRlVGV4dE5vZGUiLCIkZ2V0U2VsZWN0aW9uIiwiJGlzRWxlbWVudE5vZGUiLCIkaXNSYW5nZVNlbGVjdGlvbiIsIkVsZW1lbnROb2RlIiwiY3JlYXRlQ29tbWFuZCIsIlNVUFBPUlRFRF9VUkxfUFJPVE9DT0xTIiwiU2V0IiwiTGlua05vZGUiLCJfX2ZpZWxkcyIsImNvbnN0cnVjdG9yIiwiZmllbGRzIiwiZG9jIiwibGlua1R5cGUiLCJuZXdUYWIiLCJ1cmwiLCJ1bmRlZmluZWQiLCJrZXkiLCJjbG9uZSIsIm5vZGUiLCJfX2tleSIsImdldFR5cGUiLCJpbXBvcnRET00iLCJhIiwiY29udmVyc2lvbiIsImNvbnZlcnRBbmNob3JFbGVtZW50IiwicHJpb3JpdHkiLCJpbXBvcnRKU09OIiwic2VyaWFsaXplZE5vZGUiLCJ2ZXJzaW9uIiwidmFsdWUiLCJpZCIsIiRjcmVhdGVMaW5rTm9kZSIsInNldEZvcm1hdCIsImZvcm1hdCIsInNldEluZGVudCIsImluZGVudCIsInNldERpcmVjdGlvbiIsImRpcmVjdGlvbiIsImNhbkJlRW1wdHkiLCJjYW5JbnNlcnRUZXh0QWZ0ZXIiLCJjYW5JbnNlcnRUZXh0QmVmb3JlIiwiY3JlYXRlRE9NIiwiY29uZmlnIiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImhyZWYiLCJzYW5pdGl6ZVVybCIsInRhcmdldCIsInJlbCIsIm1hbmFnZVJlbCIsInRoZW1lIiwibGluayIsImV4cG9ydEpTT04iLCJ0eXBlIiwiZ2V0RmllbGRzIiwiZXh0cmFjdFdpdGhDaGlsZCIsImNoaWxkIiwic2VsZWN0aW9uIiwiZGVzdGluYXRpb24iLCJhbmNob3JOb2RlIiwiYW5jaG9yIiwiZ2V0Tm9kZSIsImZvY3VzTm9kZSIsImZvY3VzIiwiaXNQYXJlbnRPZiIsImdldFRleHRDb250ZW50IiwibGVuZ3RoIiwiZ2V0TGF0ZXN0IiwiaW5zZXJ0TmV3QWZ0ZXIiLCJyZXN0b3JlU2VsZWN0aW9uIiwiZ2V0UGFyZW50T3JUaHJvdyIsImxpbmtOb2RlIiwiYXBwZW5kIiwiaXNJbmxpbmUiLCJwYXJzZWRVcmwiLCJVUkwiLCJoYXMiLCJwcm90b2NvbCIsImUiLCJzZXRGaWVsZHMiLCJ3cml0YWJsZSIsImdldFdyaXRhYmxlIiwidXBkYXRlRE9NIiwicHJldk5vZGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJkb21Ob2RlIiwiY29udGVudCIsInRleHRDb250ZW50IiwiZ2V0QXR0cmlidXRlIiwiJGlzTGlua05vZGUiLCJUT0dHTEVfTElOS19DT01NQU5EIiwidG9nZ2xlTGluayIsInBheWxvYWQiLCJub2RlcyIsImV4dHJhY3QiLCJmb3JFYWNoIiwicGFyZW50IiwiZ2V0UGFyZW50IiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbiIsImkiLCJpbnNlcnRCZWZvcmUiLCJyZW1vdmUiLCJmaXJzdE5vZGUiLCIkZ2V0TGlua0FuY2VzdG9yIiwidGV4dCIsImdldExhc3RDaGlsZCIsInByZXZQYXJlbnQiLCJpcyIsImdldFByZXZpb3VzU2libGluZyIsImluc2VydEFmdGVyIiwiJGdldEFuY2VzdG9yIiwiYW5jZXN0b3IiLCJwcmVkaWNhdGUiLCJpbnB1dCIsImFjdGlvbiIsInJlc3VsdCIsIm11dGFibGVJbnB1dCIsImluY2x1ZGVzIiwicmUiLCJSZWdFeHAiLCJyZXBsYWNlIiwidHJpbSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0Esc0JBQXNCLEVBQUVDLG1CQUFtQixRQUFRLGlCQUFnQjtBQUM1RSxTQUNFQyxxQkFBcUIsRUFDckJDLGVBQWUsRUFDZkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUlqQkMsV0FBVyxFQUtYQyxhQUFhLFFBQ1IsVUFBUztBQUtoQixNQUFNQywwQkFBMEIsSUFBSUMsSUFBSTtJQUFDO0lBQVM7SUFBVTtJQUFXO0lBQVE7Q0FBTztBQUV0RixrQkFBa0IsR0FDbEIsT0FBTyxNQUFNQyxpQkFBaUJKO0lBQzVCSyxTQUFvQjtJQUVwQkMsWUFBWSxFQUNWQyxTQUFTO1FBQ1BDLEtBQUs7UUFDTEMsVUFBVTtRQUNWQyxRQUFRO1FBQ1JDLEtBQUtDO0lBQ1AsQ0FBQyxFQUNEQyxHQUFHLEVBSUosQ0FBRTtRQUNELEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNSLFFBQVEsR0FBR0U7SUFDbEI7SUFFQSxPQUFPTyxNQUFNQyxJQUFjLEVBQVk7UUFDckMsT0FBTyxJQUFJWCxTQUFTO1lBQ2xCRyxRQUFRUSxLQUFLVixRQUFRO1lBQ3JCUSxLQUFLRSxLQUFLQyxLQUFLO1FBQ2pCO0lBQ0Y7SUFFQSxPQUFPQyxVQUFrQjtRQUN2QixPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxZQUFxQztRQUMxQyxPQUFPO1lBQ0xDLEdBQUcsQ0FBQ0osT0FBZ0IsQ0FBQTtvQkFDbEJL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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/link/plugins/autoLink/index.tsx"],"names":[],"mappings":";AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/link/plugins/autoLink/index.tsx"],"names":[],"mappings":";AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAQtD,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAA;AAEpE,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,cAAc,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuB,UAE3C,MAAM;;;;;EAUrB;AA4XD,wBAAgB,cAAc,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAMnD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
2
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
3
3
|
import { mergeRegister } from '@lexical/utils';
|
|
4
4
|
import { $createTextNode, $getSelection, $isElementNode, $isLineBreakNode, $isNodeSelection, $isRangeSelection, $isTextNode, TextNode } from 'lexical';
|
|
5
5
|
import { useEffect } from 'react';
|
|
6
|
-
import { invariant } from '../../../../lexical/utils/invariant';
|
|
7
|
-
import { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode } from '../../nodes/AutoLinkNode';
|
|
8
|
-
import { $isLinkNode } from '../../nodes/LinkNode';
|
|
6
|
+
import { invariant } from '../../../../lexical/utils/invariant.js';
|
|
7
|
+
import { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode } from '../../nodes/AutoLinkNode.js';
|
|
8
|
+
import { $isLinkNode } from '../../nodes/LinkNode.js';
|
|
9
9
|
export function createLinkMatcherWithRegExp(regExp, urlTransformer = (text)=>text) {
|
|
10
10
|
return (text)=>{
|
|
11
11
|
const match = regExp.exec(text);
|
|
@@ -315,4 +315,4 @@ export function AutoLinkPlugin() {
|
|
|
315
315
|
return null;
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvYXV0b0xpbmsvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7XG4gICRjcmVhdGVUZXh0Tm9kZSxcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzRWxlbWVudE5vZGUsXG4gICRpc0xpbmVCcmVha05vZGUsXG4gICRpc05vZGVTZWxlY3Rpb24sXG4gICRpc1JhbmdlU2VsZWN0aW9uLFxuICAkaXNUZXh0Tm9kZSxcbiAgVGV4dE5vZGUsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBMaW5rRmllbGRzIH0gZnJvbSAnLi4vLi4vbm9kZXMvdHlwZXMnXG5cbmltcG9ydCB7IGludmFyaWFudCB9IGZyb20gJy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvaW52YXJpYW50J1xuaW1wb3J0IHsgJGNyZWF0ZUF1dG9MaW5rTm9kZSwgJGlzQXV0b0xpbmtOb2RlLCBBdXRvTGlua05vZGUgfSBmcm9tICcuLi8uLi9ub2Rlcy9BdXRvTGlua05vZGUnXG5pbXBvcnQgeyAkaXNMaW5rTm9kZSB9IGZyb20gJy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuXG50eXBlIENoYW5nZUhhbmRsZXIgPSAodXJsOiBudWxsIHwgc3RyaW5nLCBwcmV2VXJsOiBudWxsIHwgc3RyaW5nKSA9PiB2b2lkXG5cbmludGVyZmFjZSBMaW5rTWF0Y2hlclJlc3VsdCB7XG4gIGZpZWxkcz86IExpbmtGaWVsZHNcbiAgaW5kZXg6IG51bWJlclxuICBsZW5ndGg6IG51bWJlclxuICB0ZXh0OiBzdHJpbmdcbiAgdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTGlua01hdGNoZXIgPSAodGV4dDogc3RyaW5nKSA9PiBMaW5rTWF0Y2hlclJlc3VsdCB8IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cChcbiAgcmVnRXhwOiBSZWdFeHAsXG4gIHVybFRyYW5zZm9ybWVyOiAodGV4dDogc3RyaW5nKSA9PiBzdHJpbmcgPSAodGV4dCkgPT4gdGV4dCxcbikge1xuICByZXR1cm4gKHRleHQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG1hdGNoID0gcmVnRXhwLmV4ZWModGV4dClcbiAgICBpZiAobWF0Y2ggPT09IG51bGwpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGV4OiBtYXRjaC5pbmRleCxcbiAgICAgIGxlbmd0aDogbWF0Y2hbMF0ubGVuZ3RoLFxuICAgICAgdGV4dDogbWF0Y2hbMF0sXG4gICAgICB1cmw6IHVybFRyYW5zZm9ybWVyKG1hdGNoWzBdKSxcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEZpcnN0TWF0Y2godGV4dDogc3RyaW5nLCBtYXRjaGVyczogTGlua01hdGNoZXJbXSk6IExpbmtNYXRjaGVyUmVzdWx0IHwgbnVsbCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0Y2hlcnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBtYXRjaCA9IG1hdGNoZXJzW2ldKHRleHQpXG5cbiAgICBpZiAobWF0Y2ggIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1hdGNoXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgUFVOQ1RVQVRJT05fT1JfU1BBQ0UgPSAvWy4sO1xcc10vXG5cbmZ1bmN0aW9uIGlzU2VwYXJhdG9yKGNoYXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gUFVOQ1RVQVRJT05fT1JfU1BBQ0UudGVzdChjaGFyKVxufVxuXG5mdW5jdGlvbiBlbmRzV2l0aFNlcGFyYXRvcih0ZXh0Q29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcGFyYXRvcih0ZXh0Q29udGVudFt0ZXh0Q29udGVudC5sZW5ndGggLSAxXSlcbn1cblxuZnVuY3Rpb24gc3RhcnRzV2l0aFNlcGFyYXRvcih0ZXh0Q29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcGFyYXRvcih0ZXh0Q29udGVudFswXSlcbn1cblxuZnVuY3Rpb24gaXNQcmV2aW91c05vZGVWYWxpZChub2RlOiBMZXhpY2FsTm9kZSk6IGJvb2xlYW4ge1xuICBsZXQgcHJldmlvdXNOb2RlID0gbm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICBpZiAoJGlzRWxlbWVudE5vZGUocHJldmlvdXNOb2RlKSkge1xuICAgIHByZXZpb3VzTm9kZSA9IHByZXZpb3VzTm9kZS5nZXRMYXN0RGVzY2VuZGFudCgpXG4gIH1cbiAgcmV0dXJuIChcbiAgICBwcmV2aW91c05vZGUgPT09IG51bGwgfHxcbiAgICAkaXNMaW5lQnJlYWtOb2RlKHByZXZpb3VzTm9kZSkgfHxcbiAgICAoJGlzVGV4dE5vZGUocHJldmlvdXNOb2RlKSAmJiBlbmRzV2l0aFNlcGFyYXRvcihwcmV2aW91c05vZGUuZ2V0VGV4dENvbnRlbnQoKSkpXG4gIClcbn1cblxuZnVuY3Rpb24gaXNOZXh0Tm9kZVZhbGlkKG5vZGU6IExleGljYWxOb2RlKTogYm9vbGVhbiB7XG4gIGxldCBuZXh0Tm9kZSA9IG5vZGUuZ2V0TmV4dFNpYmxpbmcoKVxuICBpZiAoJGlzRWxlbWVudE5vZGUobmV4dE5vZGUpKSB7XG4gICAgbmV4dE5vZGUgPSBuZXh0Tm9kZS5nZXRGaXJzdERlc2NlbmRhbnQoKVxuICB9XG4gIHJldHVybiAoXG4gICAgbmV4dE5vZGUgPT09IG51bGwgfHxcbiAgICAkaXNMaW5lQnJlYWtOb2RlKG5leHROb2RlKSB8fFxuICAgICgkaXNUZXh0Tm9kZShuZXh0Tm9kZSkgJiYgc3RhcnRzV2l0aFNlcGFyYXRvcihuZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpKSlcbiAgKVxufVxuXG5mdW5jdGlvbiBpc0NvbnRlbnRBcm91bmRJc1ZhbGlkKFxuICBtYXRjaFN0YXJ0OiBudW1iZXIsXG4gIG1hdGNoRW5kOiBudW1iZXIsXG4gIHRleHQ6IHN0cmluZyxcbiAgbm9kZXM6IFRleHROb2RlW10sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgY29udGVudEJlZm9yZUlzVmFsaWQgPVxuICAgIG1hdGNoU3RhcnQgPiAwID8gaXNTZXBhcmF0b3IodGV4dFttYXRjaFN0YXJ0IC0gMV0pIDogaXNQcmV2aW91c05vZGVWYWxpZChub2Rlc1swXSlcbiAgaWYgKCFjb250ZW50QmVmb3JlSXNWYWxpZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgY29udGVudEFmdGVySXNWYWxpZCA9XG4gICAgbWF0Y2hFbmQgPCB0ZXh0Lmxlbmd0aCA/IGlzU2VwYXJhdG9yKHRleHRbbWF0Y2hFbmRdKSA6IGlzTmV4dE5vZGVWYWxpZChub2Rlc1tub2Rlcy5sZW5ndGggLSAxXSlcbiAgcmV0dXJuIGNvbnRlbnRBZnRlcklzVmFsaWRcbn1cblxuZnVuY3Rpb24gZXh0cmFjdE1hdGNoaW5nTm9kZXMoXG4gIG5vZGVzOiBUZXh0Tm9kZVtdLFxuICBzdGFydEluZGV4OiBudW1iZXIsXG4gIGVuZEluZGV4OiBudW1iZXIsXG4pOiBbXG4gIG1hdGNoaW5nT2Zmc2V0OiBudW1iZXIsXG4gIHVubW9kaWZpZWRCZWZvcmVOb2RlczogVGV4dE5vZGVbXSxcbiAgbWF0Y2hpbmdOb2RlczogVGV4dE5vZGVbXSxcbiAgdW5tb2RpZmllZEFmdGVyTm9kZXM6IFRleHROb2RlW10sXG5dIHtcbiAgY29uc3QgdW5tb2RpZmllZEJlZm9yZU5vZGVzOiBUZXh0Tm9kZVtdID0gW11cbiAgY29uc3QgbWF0Y2hpbmdOb2RlczogVGV4dE5vZGVbXSA9IFtdXG4gIGNvbnN0IHVubW9kaWZpZWRBZnRlck5vZGVzOiBUZXh0Tm9kZVtdID0gW11cbiAgbGV0IG1hdGNoaW5nT2Zmc2V0ID0gMFxuXG4gIGxldCBjdXJyZW50T2Zmc2V0ID0gMFxuICBjb25zdCBjdXJyZW50Tm9kZXMgPSBbLi4ubm9kZXNdXG5cbiAgd2hpbGUgKGN1cnJlbnROb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZXNbMF1cbiAgICBjb25zdCBjdXJyZW50Tm9kZVRleHQgPSBjdXJyZW50Tm9kZS5nZXRUZXh0Q29udGVudCgpXG4gICAgY29uc3QgY3VycmVudE5vZGVMZW5ndGggPSBjdXJyZW50Tm9kZVRleHQubGVuZ3RoXG4gICAgY29uc3QgY3VycmVudE5vZGVTdGFydCA9IGN1cnJlbnRPZmZzZXRcbiAgICBjb25zdCBjdXJyZW50Tm9kZUVuZCA9IGN1cnJlbnRPZmZzZXQgKyBjdXJyZW50Tm9kZUxlbmd0aFxuXG4gICAgaWYgKGN1cnJlbnROb2RlRW5kIDw9IHN0YXJ0SW5kZXgpIHtcbiAgICAgIHVubW9kaWZpZWRCZWZvcmVOb2Rlcy5wdXNoKGN1cnJlbnROb2RlKVxuICAgICAgbWF0Y2hpbmdPZmZzZXQgKz0gY3VycmVudE5vZGVMZW5ndGhcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnROb2RlU3RhcnQgPj0gZW5kSW5kZXgpIHtcbiAgICAgIHVubW9kaWZpZWRBZnRlck5vZGVzLnB1c2goY3VycmVudE5vZGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIG1hdGNoaW5nTm9kZXMucHVzaChjdXJyZW50Tm9kZSlcbiAgICB9XG4gICAgY3VycmVudE9mZnNldCArPSBjdXJyZW50Tm9kZUxlbmd0aFxuICAgIGN1cnJlbnROb2Rlcy5zaGlmdCgpXG4gIH1cbiAgcmV0dXJuIFttYXRjaGluZ09mZnNldCwgdW5tb2RpZmllZEJlZm9yZU5vZGVzLCBtYXRjaGluZ05vZGVzLCB1bm1vZGlmaWVkQWZ0ZXJOb2Rlc11cbn1cblxuZnVuY3Rpb24gY3JlYXRlQXV0b0xpbmtOb2RlKFxuICBub2RlczogVGV4dE5vZGVbXSxcbiAgc3RhcnRJbmRleDogbnVtYmVyLFxuICBlbmRJbmRleDogbnVtYmVyLFxuICBtYXRjaDogTGlua01hdGNoZXJSZXN1bHQsXG4pOiBUZXh0Tm9kZSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGZpZWxkczogTGlua0ZpZWxkcyA9IHtcbiAgICBsaW5rVHlwZTogJ2N1c3RvbScsXG4gICAgdXJsOiBtYXRjaC51cmwsXG4gICAgLi4ubWF0Y2guZmllbGRzLFxuICB9XG5cbiAgY29uc3QgbGlua05vZGUgPSAkY3JlYXRlQXV0b0xpbmtOb2RlKHsgZmllbGRzIH0pXG4gIGlmIChub2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICBsZXQgcmVtYWluaW5nVGV4dE5vZGUgPSBub2Rlc1swXVxuICAgIGxldCBsaW5rVGV4dE5vZGVcbiAgICBpZiAoc3RhcnRJbmRleCA9PT0gMCkge1xuICAgICAgO1tsaW5rVGV4dE5vZGUsIHJlbWFpbmluZ1RleHROb2RlXSA9IHJlbWFpbmluZ1RleHROb2RlLnNwbGl0VGV4dChlbmRJbmRleClcbiAgICB9IGVsc2Uge1xuICAgICAgO1ssIGxpbmtUZXh0Tm9kZSwgcmVtYWluaW5nVGV4dE5vZGVdID0gcmVtYWluaW5nVGV4dE5vZGUuc3BsaXRUZXh0KHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuICAgIH1cbiAgICBjb25zdCB0ZXh0Tm9kZSA9ICRjcmVhdGVUZXh0Tm9kZShtYXRjaC50ZXh0KVxuICAgIHRleHROb2RlLnNldEZvcm1hdChsaW5rVGV4dE5vZGUuZ2V0Rm9ybWF0KCkpXG4gICAgdGV4dE5vZGUuc2V0RGV0YWlsKGxpbmtUZXh0Tm9kZS5nZXREZXRhaWwoKSlcbiAgICBsaW5rTm9kZS5hcHBlbmQodGV4dE5vZGUpXG4gICAgbGlua1RleHROb2RlLnJlcGxhY2UobGlua05vZGUpXG4gICAgcmV0dXJuIHJlbWFpbmluZ1RleHROb2RlXG4gIH0gZWxzZSBpZiAobm9kZXMubGVuZ3RoID4gMSkge1xuICAgIGNvbnN0IGZpcnN0VGV4dE5vZGUgPSBub2Rlc1swXVxuICAgIGxldCBvZmZzZXQgPSBmaXJzdFRleHROb2RlLmdldFRleHRDb250ZW50KCkubGVuZ3RoXG4gICAgbGV0IGZpcnN0TGlua1RleHROb2RlXG4gICAgaWYgKHN0YXJ0SW5kZXggPT09IDApIHtcbiAgICAgIGZpcnN0TGlua1RleHROb2RlID0gZmlyc3RUZXh0Tm9kZVxuICAgIH0gZWxzZSB7XG4gICAgICA7WywgZmlyc3RMaW5rVGV4dE5vZGVdID0gZmlyc3RUZXh0Tm9kZS5zcGxpdFRleHQoc3RhcnRJbmRleClcbiAgICB9XG4gICAgY29uc3QgbGlua05vZGVzID0gW11cbiAgICBsZXQgcmVtYWluaW5nVGV4dE5vZGVcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjdXJyZW50Tm9kZSA9IG5vZGVzW2ldXG4gICAgICBjb25zdCBjdXJyZW50Tm9kZVRleHQgPSBjdXJyZW50Tm9kZS5nZXRUZXh0Q29udGVudCgpXG4gICAgICBjb25zdCBjdXJyZW50Tm9kZUxlbmd0aCA9IGN1cnJlbnROb2RlVGV4dC5sZW5ndGhcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlU3RhcnQgPSBvZmZzZXRcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlRW5kID0gb2Zmc2V0ICsgY3VycmVudE5vZGVMZW5ndGhcbiAgICAgIGlmIChjdXJyZW50Tm9kZVN0YXJ0IDwgZW5kSW5kZXgpIHtcbiAgICAgICAgaWYgKGN1cnJlbnROb2RlRW5kIDw9IGVuZEluZGV4KSB7XG4gICAgICAgICAgbGlua05vZGVzLnB1c2goY3VycmVudE5vZGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgW2xpbmtUZXh0Tm9kZSwgZW5kTm9kZV0gPSBjdXJyZW50Tm9kZS5zcGxpdFRleHQoZW5kSW5kZXggLSBjdXJyZW50Tm9kZVN0YXJ0KVxuICAgICAgICAgIGxpbmtOb2Rlcy5wdXNoKGxpbmtUZXh0Tm9kZSlcbiAgICAgICAgICByZW1haW5pbmdUZXh0Tm9kZSA9IGVuZE5vZGVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb2Zmc2V0ICs9IGN1cnJlbnROb2RlTGVuZ3RoXG4gICAgfVxuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGNvbnN0IHNlbGVjdGVkVGV4dE5vZGUgPSBzZWxlY3Rpb24gPyBzZWxlY3Rpb24uZ2V0Tm9kZXMoKS5maW5kKCRpc1RleHROb2RlKSA6IHVuZGVmaW5lZFxuICAgIGNvbnN0IHRleHROb2RlID0gJGNyZWF0ZVRleHROb2RlKGZpcnN0TGlua1RleHROb2RlLmdldFRleHRDb250ZW50KCkpXG4gICAgdGV4dE5vZGUuc2V0Rm9ybWF0KGZpcnN0TGlua1RleHROb2RlLmdldEZvcm1hdCgpKVxuICAgIHRleHROb2RlLnNldERldGFpbChmaXJzdExpbmtUZXh0Tm9kZS5nZXREZXRhaWwoKSlcbiAgICBsaW5rTm9kZS5hcHBlbmQodGV4dE5vZGUsIC4uLmxpbmtOb2RlcylcbiAgICAvLyBpdCBkb2VzIG5vdCBwcmVzZXJ2ZSBjYXJldCBwb3NpdGlvbiBpZiBjYXJldCB3YXMgYXQgdGhlIGZpcnN0IHRleHQgbm9kZVxuICAgIC8vIHNvIHdlIG5lZWQgdG8gcmVzdG9yZSBjYXJldCBwb3NpdGlvblxuICAgIGlmIChzZWxlY3RlZFRleHROb2RlICYmIHNlbGVjdGVkVGV4dE5vZGUgPT09IGZpcnN0TGlua1RleHROb2RlKSB7XG4gICAgICBpZiAoJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgICB0ZXh0Tm9kZS5zZWxlY3Qoc2VsZWN0aW9uLmFuY2hvci5vZmZzZXQsIHNlbGVjdGlvbi5mb2N1cy5vZmZzZXQpXG4gICAgICB9IGVsc2UgaWYgKCRpc05vZGVTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgICB0ZXh0Tm9kZS5zZWxlY3QoMCwgdGV4dE5vZGUuZ2V0VGV4dENvbnRlbnQoKS5sZW5ndGgpXG4gICAgICB9XG4gICAgfVxuICAgIGZpcnN0TGlua1RleHROb2RlLnJlcGxhY2UobGlua05vZGUpXG4gICAgcmV0dXJuIHJlbWFpbmluZ1RleHROb2RlXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBoYW5kbGVMaW5rQ3JlYXRpb24oXG4gIG5vZGVzOiBUZXh0Tm9kZVtdLFxuICBtYXRjaGVyczogTGlua01hdGNoZXJbXSxcbiAgb25DaGFuZ2U6IENoYW5nZUhhbmRsZXIsXG4pOiB2b2lkIHtcbiAgbGV0IGN1cnJlbnROb2RlcyA9IFsuLi5ub2Rlc11cbiAgY29uc3QgaW5pdGlhbFRleHQgPSBjdXJyZW50Tm9kZXMubWFwKChub2RlKSA9PiBub2RlLmdldFRleHRDb250ZW50KCkpLmpvaW4oJycpXG4gIGxldCB0ZXh0ID0gaW5pdGlhbFRleHRcblxuICBsZXQgbWF0Y2hcbiAgbGV0IGludmFsaWRNYXRjaEVuZCA9IDBcblxuICB3aGlsZSAoKG1hdGNoID0gZmluZEZpcnN0TWF0Y2godGV4dCwgbWF0Y2hlcnMpKSAhPSBudWxsICYmIG1hdGNoICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWF0Y2hTdGFydDogbnVtYmVyID0gbWF0Y2guaW5kZXhcbiAgICBjb25zdCBtYXRjaExlbmd0aDogbnVtYmVyID0gbWF0Y2gubGVuZ3RoXG4gICAgY29uc3QgbWF0Y2hFbmQgPSBtYXRjaFN0YXJ0ICsgbWF0Y2hMZW5ndGhcbiAgICBjb25zdCBpc1ZhbGlkID0gaXNDb250ZW50QXJvdW5kSXNWYWxpZChcbiAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoU3RhcnQsXG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaEVuZCxcbiAgICAgIGluaXRpYWxUZXh0LFxuICAgICAgY3VycmVudE5vZGVzLFxuICAgIClcblxuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICBjb25zdCBbbWF0Y2hpbmdPZmZzZXQsICwgbWF0Y2hpbmdOb2RlcywgdW5tb2RpZmllZEFmdGVyTm9kZXNdID0gZXh0cmFjdE1hdGNoaW5nTm9kZXMoXG4gICAgICAgIGN1cnJlbnROb2RlcyxcbiAgICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hTdGFydCxcbiAgICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hFbmQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGFjdHVhbE1hdGNoU3RhcnQgPSBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0IC0gbWF0Y2hpbmdPZmZzZXRcbiAgICAgIGNvbnN0IGFjdHVhbE1hdGNoRW5kID0gaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hFbmQgLSBtYXRjaGluZ09mZnNldFxuICAgICAgY29uc3QgcmVtYWluaW5nVGV4dE5vZGUgPSBjcmVhdGVBdXRvTGlua05vZGUoXG4gICAgICAgIG1hdGNoaW5nTm9kZXMsXG4gICAgICAgIGFjdHVhbE1hdGNoU3RhcnQsXG4gICAgICAgIGFjdHVhbE1hdGNoRW5kLFxuICAgICAgICBtYXRjaCxcbiAgICAgIClcbiAgICAgIGN1cnJlbnROb2RlcyA9IHJlbWFpbmluZ1RleHROb2RlXG4gICAgICAgID8gW3JlbWFpbmluZ1RleHROb2RlLCAuLi51bm1vZGlmaWVkQWZ0ZXJOb2Rlc11cbiAgICAgICAgOiB1bm1vZGlmaWVkQWZ0ZXJOb2Rlc1xuICAgICAgb25DaGFuZ2UobWF0Y2gudXJsLCBudWxsKVxuICAgICAgaW52YWxpZE1hdGNoRW5kID0gMFxuICAgIH0gZWxzZSB7XG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKz0gbWF0Y2hFbmRcbiAgICB9XG5cbiAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcobWF0Y2hFbmQpXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTGlua0VkaXQoXG4gIGxpbmtOb2RlOiBBdXRvTGlua05vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICAvLyBDaGVjayBjaGlsZHJlbiBhcmUgc2ltcGxlIHRleHRcbiAgY29uc3QgY2hpbGRyZW4gPSBsaW5rTm9kZS5nZXRDaGlsZHJlbigpXG4gIGNvbnN0IGNoaWxkcmVuTGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV1cbiAgICBpZiAoISRpc1RleHROb2RlKGNoaWxkKSB8fCAhY2hpbGQuaXNTaW1wbGVUZXh0KCkpIHtcbiAgICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obGlua05vZGUpXG4gICAgICBvbkNoYW5nZShudWxsLCBsaW5rTm9kZS5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayB0ZXh0IGNvbnRlbnQgZnVsbHkgbWF0Y2hlc1xuICBjb25zdCB0ZXh0ID0gbGlua05vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICBjb25zdCBtYXRjaCA9IGZpbmRGaXJzdE1hdGNoKHRleHQsIG1hdGNoZXJzKVxuICBpZiAobWF0Y2ggPT09IG51bGwgfHwgbWF0Y2gudGV4dCAhPT0gdGV4dCkge1xuICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obGlua05vZGUpXG4gICAgb25DaGFuZ2UobnVsbCwgbGlua05vZGUuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICAgIHJldHVyblxuICB9XG5cbiAgLy8gQ2hlY2sgbmVpZ2hib3JzXG4gIGlmICghaXNQcmV2aW91c05vZGVWYWxpZChsaW5rTm9kZSkgfHwgIWlzTmV4dE5vZGVWYWxpZChsaW5rTm9kZSkpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKGxpbmtOb2RlKVxuICAgIG9uQ2hhbmdlKG51bGwsIGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmwgPz8gbnVsbClcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHVybCA9IGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmxcbiAgaWYgKHVybCAhPT0gbWF0Y2g/LnVybCkge1xuICAgIGNvbnN0IGZsZHMgPSBsaW5rTm9kZS5nZXRGaWVsZHMoKVxuICAgIGZsZHMudXJsID0gbWF0Y2g/LnVybFxuICAgIGxpbmtOb2RlLnNldEZpZWxkcyhmbGRzKVxuICAgIG9uQ2hhbmdlKG1hdGNoLnVybCwgdXJsID8/IG51bGwpXG4gIH1cbn1cblxuLy8gQmFkIG5laWdoYm9ycyBhcmUgZWRpdHMgaW4gbmVpZ2hib3Igbm9kZXMgdGhhdCBtYWtlIEF1dG9MaW5rcyBpbmNvbXBhdGlibGUuXG4vLyBHaXZlbiB0aGUgY3JlYXRpb24gcHJlY29uZGl0aW9ucywgdGhlc2UgY2FuIG9ubHkgYmUgc2ltcGxlIHRleHQgbm9kZXMuXG5mdW5jdGlvbiBoYW5kbGVCYWROZWlnaGJvcnMoXG4gIHRleHROb2RlOiBUZXh0Tm9kZSxcbiAgbWF0Y2hlcnM6IExpbmtNYXRjaGVyW10sXG4gIG9uQ2hhbmdlOiBDaGFuZ2VIYW5kbGVyLFxuKTogdm9pZCB7XG4gIGNvbnN0IHByZXZpb3VzU2libGluZyA9IHRleHROb2RlLmdldFByZXZpb3VzU2libGluZygpXG4gIGNvbnN0IG5leHRTaWJsaW5nID0gdGV4dE5vZGUuZ2V0TmV4dFNpYmxpbmcoKVxuICBjb25zdCB0ZXh0ID0gdGV4dE5vZGUuZ2V0VGV4dENvbnRlbnQoKVxuXG4gIGlmICgkaXNBdXRvTGlua05vZGUocHJldmlvdXNTaWJsaW5nKSAmJiAhc3RhcnRzV2l0aFNlcGFyYXRvcih0ZXh0KSkge1xuICAgIHByZXZpb3VzU2libGluZy5hcHBlbmQodGV4dE5vZGUpXG4gICAgaGFuZGxlTGlua0VkaXQocHJldmlvdXNTaWJsaW5nLCBtYXRjaGVycywgb25DaGFuZ2UpXG4gICAgb25DaGFuZ2UobnVsbCwgcHJldmlvdXNTaWJsaW5nLmdldEZpZWxkcygpPy51cmwgPz8gbnVsbClcbiAgfVxuXG4gIGlmICgkaXNBdXRvTGlua05vZGUobmV4dFNpYmxpbmcpICYmICFlbmRzV2l0aFNlcGFyYXRvcih0ZXh0KSkge1xuICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obmV4dFNpYmxpbmcpXG4gICAgaGFuZGxlTGlua0VkaXQobmV4dFNpYmxpbmcsIG1hdGNoZXJzLCBvbkNoYW5nZSlcbiAgICBvbkNoYW5nZShudWxsLCBuZXh0U2libGluZy5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwbGFjZVdpdGhDaGlsZHJlbihub2RlOiBFbGVtZW50Tm9kZSk6IExleGljYWxOb2RlW10ge1xuICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuZ2V0Q2hpbGRyZW4oKVxuICBjb25zdCBjaGlsZHJlbkxlbmd0aCA9IGNoaWxkcmVuLmxlbmd0aFxuXG4gIGZvciAobGV0IGogPSBjaGlsZHJlbkxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgbm9kZS5pbnNlcnRBZnRlcihjaGlsZHJlbltqXSlcbiAgfVxuXG4gIG5vZGUucmVtb3ZlKClcbiAgcmV0dXJuIGNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGNoaWxkLmdldExhdGVzdCgpKVxufVxuXG5mdW5jdGlvbiBnZXRUZXh0Tm9kZXNUb01hdGNoKHRleHROb2RlOiBUZXh0Tm9kZSk6IFRleHROb2RlW10ge1xuICAvLyBjaGVjayBpZiBuZXh0IHNpYmxpbmdzIGFyZSBzaW1wbGUgdGV4dCBub2RlcyB0aWxsIGEgbm9kZSBjb250YWlucyBhIHNwYWNlIHNlcGFyYXRvclxuICBjb25zdCB0ZXh0Tm9kZXNUb01hdGNoID0gW3RleHROb2RlXVxuICBsZXQgbmV4dFNpYmxpbmcgPSB0ZXh0Tm9kZS5nZXROZXh0U2libGluZygpXG4gIHdoaWxlIChuZXh0U2libGluZyAhPT0gbnVsbCAmJiAkaXNUZXh0Tm9kZShuZXh0U2libGluZykgJiYgbmV4dFNpYmxpbmcuaXNTaW1wbGVUZXh0KCkpIHtcbiAgICB0ZXh0Tm9kZXNUb01hdGNoLnB1c2gobmV4dFNpYmxpbmcpXG4gICAgaWYgKC9cXHMvLnRlc3QobmV4dFNpYmxpbmcuZ2V0VGV4dENvbnRlbnQoKSkpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIG5leHRTaWJsaW5nID0gbmV4dFNpYmxpbmcuZ2V0TmV4dFNpYmxpbmcoKVxuICB9XG4gIHJldHVybiB0ZXh0Tm9kZXNUb01hdGNoXG59XG5cbmZ1bmN0aW9uIHVzZUF1dG9MaW5rKFxuICBlZGl0b3I6IExleGljYWxFZGl0b3IsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZT86IENoYW5nZUhhbmRsZXIsXG4pOiB2b2lkIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVkaXRvci5oYXNOb2RlcyhbQXV0b0xpbmtOb2RlXSkpIHtcbiAgICAgIGludmFyaWFudChmYWxzZSwgJ0xleGljYWxBdXRvTGlua1BsdWdpbjogQXV0b0xpbmtOb2RlIG5vdCByZWdpc3RlcmVkIG9uIGVkaXRvcicpXG4gICAgfVxuXG4gICAgY29uc3Qgb25DaGFuZ2VXcmFwcGVkID0gKHVybDogbnVsbCB8IHN0cmluZywgcHJldlVybDogbnVsbCB8IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgaWYgKG9uQ2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgb25DaGFuZ2UodXJsLCBwcmV2VXJsKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyTm9kZVRyYW5zZm9ybShUZXh0Tm9kZSwgKHRleHROb2RlOiBUZXh0Tm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSB0ZXh0Tm9kZS5nZXRQYXJlbnRPclRocm93KClcbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSB0ZXh0Tm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICAgICAgICBpZiAoJGlzQXV0b0xpbmtOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgICBoYW5kbGVMaW5rRWRpdChwYXJlbnQsIG1hdGNoZXJzLCBvbkNoYW5nZVdyYXBwZWQpXG4gICAgICAgIH0gZWxzZSBpZiAoISRpc0xpbmtOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0ZXh0Tm9kZS5pc1NpbXBsZVRleHQoKSAmJlxuICAgICAgICAgICAgKHN0YXJ0c1dpdGhTZXBhcmF0b3IodGV4dE5vZGUuZ2V0VGV4dENvbnRlbnQoKSkgfHwgISRpc0F1dG9MaW5rTm9kZShwcmV2aW91cykpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZXNUb01hdGNoID0gZ2V0VGV4dE5vZGVzVG9NYXRjaCh0ZXh0Tm9kZSlcbiAgICAgICAgICAgIGhhbmRsZUxpbmtDcmVhdGlvbih0ZXh0Tm9kZXNUb01hdGNoLCBtYXRjaGVycywgb25DaGFuZ2VXcmFwcGVkKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGhhbmRsZUJhZE5laWdoYm9ycyh0ZXh0Tm9kZSwgbWF0Y2hlcnMsIG9uQ2hhbmdlV3JhcHBlZClcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuICB9LCBbZWRpdG9yLCBtYXRjaGVycywgb25DaGFuZ2VdKVxufVxuXG5jb25zdCBVUkxfUkVHRVggPVxuICAvKChodHRwcz86XFwvXFwvKHd3d1xcLik/KXwod3d3XFwuKSlbLVxcd0A6JS4rfiM9XXsxLDI1Nn1cXC5bYS16QS1aXFxkKCldezEsNn1cXGIoWy1cXHcoKUA6JSsufiM/Ji89XSopL1xuXG5jb25zdCBFTUFJTF9SRUdFWCA9XG4gIC8oKFtePD4oKVtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1xcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9XFxdKXwoKFthLXpBLVpcXC1cXGRdK1xcLikrW2EtekEtWl17Mix9KSkvXG5cbmNvbnN0IE1BVENIRVJTID0gW1xuICBjcmVhdGVMaW5rTWF0Y2hlcldpdGhSZWdFeHAoVVJMX1JFR0VYLCAodGV4dCkgPT4ge1xuICAgIHJldHVybiB0ZXh0LnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IHRleHQgOiBgaHR0cHM6Ly8ke3RleHR9YFxuICB9KSxcbiAgY3JlYXRlTGlua01hdGNoZXJXaXRoUmVnRXhwKEVNQUlMX1JFR0VYLCAodGV4dCkgPT4ge1xuICAgIHJldHVybiBgbWFpbHRvOiR7dGV4dH1gXG4gIH0pLFxuXVxuXG5leHBvcnQgZnVuY3Rpb24gQXV0b0xpbmtQbHVnaW4oKTogSlNYLkVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcblxuICB1c2VBdXRvTGluayhlZGl0b3IsIE1BVENIRVJTKVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsIm1lcmdlUmVnaXN0ZXIiLCIkY3JlYXRlVGV4dE5vZGUiLCIkZ2V0U2VsZWN0aW9uIiwiJGlzRWxlbWVudE5vZGUiLCIkaXNMaW5lQnJlYWtOb2RlIiwiJGlzTm9kZVNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiJGlzVGV4dE5vZGUiLCJUZXh0Tm9kZSIsInVzZUVmZmVjdCIsImludmFyaWFudCIsIiRjcmVhdGVBdXRvTGlua05vZGUiLCIkaXNBdXRvTGlua05vZGUiLCJBdXRvTGlua05vZGUiLCIkaXNMaW5rTm9kZSIsImNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cCIsInJlZ0V4cCIsInVybFRyYW5zZm9ybWVyIiwidGV4dCIsIm1hdGNoIiwiZXhlYyIsImluZGV4IiwibGVuZ3RoIiwidXJsIiwiZmluZEZpcnN0TWF0Y2giLCJtYXRjaGVycyIsImkiLCJQVU5DVFVBVElPTl9PUl9TUEFDRSIsImlzU2VwYXJhdG9yIiwiY2hhciIsInRlc3QiLCJlbmRzV2l0aFNlcGFyYXRvciIsInRleHRDb250ZW50Iiwic3RhcnRzV2l0aFNlcGFyYXRvciIsImlzUHJldmlvdXNOb2RlVmFsaWQiLCJub2RlIiwicHJldmlvdXNOb2RlIiwiZ2V0UHJldmlvdXNTaWJsaW5nIiwiZ2V0TGFzdERlc2NlbmRhbnQiLCJnZXRUZXh0Q29udGVudCIsImlzTmV4dE5vZGVWYWxpZCIsIm5leHROb2RlIiwiZ2V0TmV4dFNpYmxpbmciLCJnZXRGaXJzdERlc2NlbmRhbnQiLCJpc0NvbnRlbnRBcm91bmRJc1ZhbGlkIiwibWF0Y2hTdGFydCIsIm1hdGNoRW5kIiwibm9kZXMiLCJjb250ZW50QmVmb3JlSXNWYWxpZCIsImNvbnRlbnRBZnRlcklzVmFsaWQiLCJleHRyYWN0TWF0Y2hpbmdOb2RlcyIsInN0YXJ0SW5kZXgiLCJlbmRJbmRleCIsInVubW9kaWZpZWRCZWZvcmVOb2RlcyIsIm1hdGNoaW5nTm9kZXMiLCJ1bm1vZGlmaWVkQWZ0ZXJOb2RlcyIsIm1hdGNoaW5nT2Zmc2V0IiwiY3VycmVudE9mZnNldCIsImN1cnJlbnROb2RlcyIsImN1cnJlbnROb2RlIiwiY3VycmVudE5vZGVUZXh0IiwiY3VycmVudE5vZGVMZW5ndGgiLCJjdXJyZW50Tm9kZVN0YXJ0IiwiY3VycmVudE5vZGVFbmQiLCJwdXNoIiwic2hpZnQiLCJjcmVhdGVBdXRvTGlua05vZGUiLCJmaWVsZHMiLCJsaW5rVHlwZSIsImxpbmtOb2RlIiwicmVtYWluaW5nVGV4dE5vZGUiLCJsaW5rVGV4dE5vZGUiLCJzcGxpdFRleHQiLCJ0ZXh0Tm9kZSIsInNldEZvcm1hdCIsImdldEZvcm1hdCIsInNldERldGFpbCIsImdldERldGFpbCIsImFwcGVuZCIsInJlcGxhY2UiLCJmaXJzdFRleHROb2RlIiwib2Zmc2V0IiwiZmlyc3RMaW5rVGV4dE5vZGUiLCJsaW5rTm9kZXMiLCJlbmROb2RlIiwic2VsZWN0aW9uIiwic2VsZWN0ZWRUZXh0Tm9kZSIsImdldE5vZGVzIiwiZmluZCIsInVuZGVmaW5lZCIsInNlbGVjdCIsImFuY2hvciIsImZvY3VzIiwiaGFuZGxlTGlua0NyZWF0aW9uIiwib25DaGFuZ2UiLCJpbml0aWFsVGV4dCIsIm1hcCIsImpvaW4iLCJpbnZhbGlkTWF0Y2hFbmQiLCJtYXRjaExlbmd0aCIsImlzVmFsaWQiLCJhY3R1YWxNYXRjaFN0YXJ0IiwiYWN0dWFsTWF0Y2hFbmQiLCJzdWJzdHJpbmciLCJoYW5kbGVMaW5rRWRpdCIsImNoaWxkcmVuIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbkxlbmd0aCIsImNoaWxkIiwiaXNTaW1wbGVUZXh0IiwicmVwbGFjZVdpdGhDaGlsZHJlbiIsImdldEZpZWxkcyIsImZsZHMiLCJzZXRGaWVsZHMiLCJoYW5kbGVCYWROZWlnaGJvcnMiLCJwcmV2aW91c1NpYmxpbmciLCJuZXh0U2libGluZyIsImoiLCJpbnNlcnRBZnRlciIsInJlbW92ZSIsImdldExhdGVzdCIsImdldFRleHROb2Rlc1RvTWF0Y2giLCJ0ZXh0Tm9kZXNUb01hdGNoIiwidXNlQXV0b0xpbmsiLCJlZGl0b3IiLCJoYXNOb2RlcyIsIm9uQ2hhbmdlV3JhcHBlZCIsInByZXZVcmwiLCJyZWdpc3Rlck5vZGVUcmFuc2Zvcm0iLCJwYXJlbnQiLCJnZXRQYXJlbnRPclRocm93IiwicHJldmlvdXMiLCJVUkxfUkVHRVgiLCJFTUFJTF9SRUdFWCIsIk1BVENIRVJTIiwic3RhcnRzV2l0aCIsIkF1dG9MaW5rUGx1Z2luIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLHdDQUF1QztBQUNqRixTQUFTQyxhQUFhLFFBQVEsaUJBQWdCO0FBQzlDLFNBQ0VDLGVBQWUsRUFDZkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEVBQ2hCQyxpQkFBaUIsRUFDakJDLFdBQVcsRUFDWEMsUUFBUSxRQUNILFVBQVM7QUFDaEIsU0FBU0MsU0FBUyxRQUFRLFFBQU87QUFJakMsU0FBU0MsU0FBUyxRQUFRLHNDQUFxQztBQUMvRCxTQUFTQyxtQkFBbUIsRUFBRUMsZUFBZSxFQUFFQyxZQUFZLFFBQVEsMkJBQTBCO0FBQzdGLFNBQVNDLFdBQVcsUUFBUSx1QkFBc0I7QUFjbEQsT0FBTyxTQUFTQyw0QkFDZEMsTUFBYyxFQUNkQyxpQkFBMkMsQ0FBQ0MsT0FBU0EsSUFBSTtJQUV6RCxPQUFPLENBQUNBO1FBQ04sTUFBTUMsUUFBUUgsT0FBT0ksSUFBSSxDQUFDRjtRQUMxQixJQUFJQyxVQUFVLE1B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
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvYXV0b0xpbmsvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7XG4gICRjcmVhdGVUZXh0Tm9kZSxcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzRWxlbWVudE5vZGUsXG4gICRpc0xpbmVCcmVha05vZGUsXG4gICRpc05vZGVTZWxlY3Rpb24sXG4gICRpc1JhbmdlU2VsZWN0aW9uLFxuICAkaXNUZXh0Tm9kZSxcbiAgVGV4dE5vZGUsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBMaW5rRmllbGRzIH0gZnJvbSAnLi4vLi4vbm9kZXMvdHlwZXMuanMnXG5cbmltcG9ydCB7IGludmFyaWFudCB9IGZyb20gJy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvaW52YXJpYW50LmpzJ1xuaW1wb3J0IHsgJGNyZWF0ZUF1dG9MaW5rTm9kZSwgJGlzQXV0b0xpbmtOb2RlLCBBdXRvTGlua05vZGUgfSBmcm9tICcuLi8uLi9ub2Rlcy9BdXRvTGlua05vZGUuanMnXG5pbXBvcnQgeyAkaXNMaW5rTm9kZSB9IGZyb20gJy4uLy4uL25vZGVzL0xpbmtOb2RlLmpzJ1xuXG50eXBlIENoYW5nZUhhbmRsZXIgPSAodXJsOiBudWxsIHwgc3RyaW5nLCBwcmV2VXJsOiBudWxsIHwgc3RyaW5nKSA9PiB2b2lkXG5cbmludGVyZmFjZSBMaW5rTWF0Y2hlclJlc3VsdCB7XG4gIGZpZWxkcz86IExpbmtGaWVsZHNcbiAgaW5kZXg6IG51bWJlclxuICBsZW5ndGg6IG51bWJlclxuICB0ZXh0OiBzdHJpbmdcbiAgdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTGlua01hdGNoZXIgPSAodGV4dDogc3RyaW5nKSA9PiBMaW5rTWF0Y2hlclJlc3VsdCB8IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cChcbiAgcmVnRXhwOiBSZWdFeHAsXG4gIHVybFRyYW5zZm9ybWVyOiAodGV4dDogc3RyaW5nKSA9PiBzdHJpbmcgPSAodGV4dCkgPT4gdGV4dCxcbikge1xuICByZXR1cm4gKHRleHQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG1hdGNoID0gcmVnRXhwLmV4ZWModGV4dClcbiAgICBpZiAobWF0Y2ggPT09IG51bGwpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGV4OiBtYXRjaC5pbmRleCxcbiAgICAgIGxlbmd0aDogbWF0Y2hbMF0ubGVuZ3RoLFxuICAgICAgdGV4dDogbWF0Y2hbMF0sXG4gICAgICB1cmw6IHVybFRyYW5zZm9ybWVyKG1hdGNoWzBdKSxcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEZpcnN0TWF0Y2godGV4dDogc3RyaW5nLCBtYXRjaGVyczogTGlua01hdGNoZXJbXSk6IExpbmtNYXRjaGVyUmVzdWx0IHwgbnVsbCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0Y2hlcnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBtYXRjaCA9IG1hdGNoZXJzW2ldKHRleHQpXG5cbiAgICBpZiAobWF0Y2ggIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1hdGNoXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgUFVOQ1RVQVRJT05fT1JfU1BBQ0UgPSAvWy4sO1xcc10vXG5cbmZ1bmN0aW9uIGlzU2VwYXJhdG9yKGNoYXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gUFVOQ1RVQVRJT05fT1JfU1BBQ0UudGVzdChjaGFyKVxufVxuXG5mdW5jdGlvbiBlbmRzV2l0aFNlcGFyYXRvcih0ZXh0Q29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcGFyYXRvcih0ZXh0Q29udGVudFt0ZXh0Q29udGVudC5sZW5ndGggLSAxXSlcbn1cblxuZnVuY3Rpb24gc3RhcnRzV2l0aFNlcGFyYXRvcih0ZXh0Q29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcGFyYXRvcih0ZXh0Q29udGVudFswXSlcbn1cblxuZnVuY3Rpb24gaXNQcmV2aW91c05vZGVWYWxpZChub2RlOiBMZXhpY2FsTm9kZSk6IGJvb2xlYW4ge1xuICBsZXQgcHJldmlvdXNOb2RlID0gbm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICBpZiAoJGlzRWxlbWVudE5vZGUocHJldmlvdXNOb2RlKSkge1xuICAgIHByZXZpb3VzTm9kZSA9IHByZXZpb3VzTm9kZS5nZXRMYXN0RGVzY2VuZGFudCgpXG4gIH1cbiAgcmV0dXJuIChcbiAgICBwcmV2aW91c05vZGUgPT09IG51bGwgfHxcbiAgICAkaXNMaW5lQnJlYWtOb2RlKHByZXZpb3VzTm9kZSkgfHxcbiAgICAoJGlzVGV4dE5vZGUocHJldmlvdXNOb2RlKSAmJiBlbmRzV2l0aFNlcGFyYXRvcihwcmV2aW91c05vZGUuZ2V0VGV4dENvbnRlbnQoKSkpXG4gIClcbn1cblxuZnVuY3Rpb24gaXNOZXh0Tm9kZVZhbGlkKG5vZGU6IExleGljYWxOb2RlKTogYm9vbGVhbiB7XG4gIGxldCBuZXh0Tm9kZSA9IG5vZGUuZ2V0TmV4dFNpYmxpbmcoKVxuICBpZiAoJGlzRWxlbWVudE5vZGUobmV4dE5vZGUpKSB7XG4gICAgbmV4dE5vZGUgPSBuZXh0Tm9kZS5nZXRGaXJzdERlc2NlbmRhbnQoKVxuICB9XG4gIHJldHVybiAoXG4gICAgbmV4dE5vZGUgPT09IG51bGwgfHxcbiAgICAkaXNMaW5lQnJlYWtOb2RlKG5leHROb2RlKSB8fFxuICAgICgkaXNUZXh0Tm9kZShuZXh0Tm9kZSkgJiYgc3RhcnRzV2l0aFNlcGFyYXRvcihuZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpKSlcbiAgKVxufVxuXG5mdW5jdGlvbiBpc0NvbnRlbnRBcm91bmRJc1ZhbGlkKFxuICBtYXRjaFN0YXJ0OiBudW1iZXIsXG4gIG1hdGNoRW5kOiBudW1iZXIsXG4gIHRleHQ6IHN0cmluZyxcbiAgbm9kZXM6IFRleHROb2RlW10sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgY29udGVudEJlZm9yZUlzVmFsaWQgPVxuICAgIG1hdGNoU3RhcnQgPiAwID8gaXNTZXBhcmF0b3IodGV4dFttYXRjaFN0YXJ0IC0gMV0pIDogaXNQcmV2aW91c05vZGVWYWxpZChub2Rlc1swXSlcbiAgaWYgKCFjb250ZW50QmVmb3JlSXNWYWxpZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgY29udGVudEFmdGVySXNWYWxpZCA9XG4gICAgbWF0Y2hFbmQgPCB0ZXh0Lmxlbmd0aCA/IGlzU2VwYXJhdG9yKHRleHRbbWF0Y2hFbmRdKSA6IGlzTmV4dE5vZGVWYWxpZChub2Rlc1tub2Rlcy5sZW5ndGggLSAxXSlcbiAgcmV0dXJuIGNvbnRlbnRBZnRlcklzVmFsaWRcbn1cblxuZnVuY3Rpb24gZXh0cmFjdE1hdGNoaW5nTm9kZXMoXG4gIG5vZGVzOiBUZXh0Tm9kZVtdLFxuICBzdGFydEluZGV4OiBudW1iZXIsXG4gIGVuZEluZGV4OiBudW1iZXIsXG4pOiBbXG4gIG1hdGNoaW5nT2Zmc2V0OiBudW1iZXIsXG4gIHVubW9kaWZpZWRCZWZvcmVOb2RlczogVGV4dE5vZGVbXSxcbiAgbWF0Y2hpbmdOb2RlczogVGV4dE5vZGVbXSxcbiAgdW5tb2RpZmllZEFmdGVyTm9kZXM6IFRleHROb2RlW10sXG5dIHtcbiAgY29uc3QgdW5tb2RpZmllZEJlZm9yZU5vZGVzOiBUZXh0Tm9kZVtdID0gW11cbiAgY29uc3QgbWF0Y2hpbmdOb2RlczogVGV4dE5vZGVbXSA9IFtdXG4gIGNvbnN0IHVubW9kaWZpZWRBZnRlck5vZGVzOiBUZXh0Tm9kZVtdID0gW11cbiAgbGV0IG1hdGNoaW5nT2Zmc2V0ID0gMFxuXG4gIGxldCBjdXJyZW50T2Zmc2V0ID0gMFxuICBjb25zdCBjdXJyZW50Tm9kZXMgPSBbLi4ubm9kZXNdXG5cbiAgd2hpbGUgKGN1cnJlbnROb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZXNbMF1cbiAgICBjb25zdCBjdXJyZW50Tm9kZVRleHQgPSBjdXJyZW50Tm9kZS5nZXRUZXh0Q29udGVudCgpXG4gICAgY29uc3QgY3VycmVudE5vZGVMZW5ndGggPSBjdXJyZW50Tm9kZVRleHQubGVuZ3RoXG4gICAgY29uc3QgY3VycmVudE5vZGVTdGFydCA9IGN1cnJlbnRPZmZzZXRcbiAgICBjb25zdCBjdXJyZW50Tm9kZUVuZCA9IGN1cnJlbnRPZmZzZXQgKyBjdXJyZW50Tm9kZUxlbmd0aFxuXG4gICAgaWYgKGN1cnJlbnROb2RlRW5kIDw9IHN0YXJ0SW5kZXgpIHtcbiAgICAgIHVubW9kaWZpZWRCZWZvcmVOb2Rlcy5wdXNoKGN1cnJlbnROb2RlKVxuICAgICAgbWF0Y2hpbmdPZmZzZXQgKz0gY3VycmVudE5vZGVMZW5ndGhcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnROb2RlU3RhcnQgPj0gZW5kSW5kZXgpIHtcbiAgICAgIHVubW9kaWZpZWRBZnRlck5vZGVzLnB1c2goY3VycmVudE5vZGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIG1hdGNoaW5nTm9kZXMucHVzaChjdXJyZW50Tm9kZSlcbiAgICB9XG4gICAgY3VycmVudE9mZnNldCArPSBjdXJyZW50Tm9kZUxlbmd0aFxuICAgIGN1cnJlbnROb2Rlcy5zaGlmdCgpXG4gIH1cbiAgcmV0dXJuIFttYXRjaGluZ09mZnNldCwgdW5tb2RpZmllZEJlZm9yZU5vZGVzLCBtYXRjaGluZ05vZGVzLCB1bm1vZGlmaWVkQWZ0ZXJOb2Rlc11cbn1cblxuZnVuY3Rpb24gY3JlYXRlQXV0b0xpbmtOb2RlKFxuICBub2RlczogVGV4dE5vZGVbXSxcbiAgc3RhcnRJbmRleDogbnVtYmVyLFxuICBlbmRJbmRleDogbnVtYmVyLFxuICBtYXRjaDogTGlua01hdGNoZXJSZXN1bHQsXG4pOiBUZXh0Tm9kZSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGZpZWxkczogTGlua0ZpZWxkcyA9IHtcbiAgICBsaW5rVHlwZTogJ2N1c3RvbScsXG4gICAgdXJsOiBtYXRjaC51cmwsXG4gICAgLi4ubWF0Y2guZmllbGRzLFxuICB9XG5cbiAgY29uc3QgbGlua05vZGUgPSAkY3JlYXRlQXV0b0xpbmtOb2RlKHsgZmllbGRzIH0pXG4gIGlmIChub2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICBsZXQgcmVtYWluaW5nVGV4dE5vZGUgPSBub2Rlc1swXVxuICAgIGxldCBsaW5rVGV4dE5vZGVcbiAgICBpZiAoc3RhcnRJbmRleCA9PT0gMCkge1xuICAgICAgO1tsaW5rVGV4dE5vZGUsIHJlbWFpbmluZ1RleHROb2RlXSA9IHJlbWFpbmluZ1RleHROb2RlLnNwbGl0VGV4dChlbmRJbmRleClcbiAgICB9IGVsc2Uge1xuICAgICAgO1ssIGxpbmtUZXh0Tm9kZSwgcmVtYWluaW5nVGV4dE5vZGVdID0gcmVtYWluaW5nVGV4dE5vZGUuc3BsaXRUZXh0KHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuICAgIH1cbiAgICBjb25zdCB0ZXh0Tm9kZSA9ICRjcmVhdGVUZXh0Tm9kZShtYXRjaC50ZXh0KVxuICAgIHRleHROb2RlLnNldEZvcm1hdChsaW5rVGV4dE5vZGUuZ2V0Rm9ybWF0KCkpXG4gICAgdGV4dE5vZGUuc2V0RGV0YWlsKGxpbmtUZXh0Tm9kZS5nZXREZXRhaWwoKSlcbiAgICBsaW5rTm9kZS5hcHBlbmQodGV4dE5vZGUpXG4gICAgbGlua1RleHROb2RlLnJlcGxhY2UobGlua05vZGUpXG4gICAgcmV0dXJuIHJlbWFpbmluZ1RleHROb2RlXG4gIH0gZWxzZSBpZiAobm9kZXMubGVuZ3RoID4gMSkge1xuICAgIGNvbnN0IGZpcnN0VGV4dE5vZGUgPSBub2Rlc1swXVxuICAgIGxldCBvZmZzZXQgPSBmaXJzdFRleHROb2RlLmdldFRleHRDb250ZW50KCkubGVuZ3RoXG4gICAgbGV0IGZpcnN0TGlua1RleHROb2RlXG4gICAgaWYgKHN0YXJ0SW5kZXggPT09IDApIHtcbiAgICAgIGZpcnN0TGlua1RleHROb2RlID0gZmlyc3RUZXh0Tm9kZVxuICAgIH0gZWxzZSB7XG4gICAgICA7WywgZmlyc3RMaW5rVGV4dE5vZGVdID0gZmlyc3RUZXh0Tm9kZS5zcGxpdFRleHQoc3RhcnRJbmRleClcbiAgICB9XG4gICAgY29uc3QgbGlua05vZGVzID0gW11cbiAgICBsZXQgcmVtYWluaW5nVGV4dE5vZGVcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjdXJyZW50Tm9kZSA9IG5vZGVzW2ldXG4gICAgICBjb25zdCBjdXJyZW50Tm9kZVRleHQgPSBjdXJyZW50Tm9kZS5nZXRUZXh0Q29udGVudCgpXG4gICAgICBjb25zdCBjdXJyZW50Tm9kZUxlbmd0aCA9IGN1cnJlbnROb2RlVGV4dC5sZW5ndGhcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlU3RhcnQgPSBvZmZzZXRcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlRW5kID0gb2Zmc2V0ICsgY3VycmVudE5vZGVMZW5ndGhcbiAgICAgIGlmIChjdXJyZW50Tm9kZVN0YXJ0IDwgZW5kSW5kZXgpIHtcbiAgICAgICAgaWYgKGN1cnJlbnROb2RlRW5kIDw9IGVuZEluZGV4KSB7XG4gICAgICAgICAgbGlua05vZGVzLnB1c2goY3VycmVudE5vZGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgW2xpbmtUZXh0Tm9kZSwgZW5kTm9kZV0gPSBjdXJyZW50Tm9kZS5zcGxpdFRleHQoZW5kSW5kZXggLSBjdXJyZW50Tm9kZVN0YXJ0KVxuICAgICAgICAgIGxpbmtOb2Rlcy5wdXNoKGxpbmtUZXh0Tm9kZSlcbiAgICAgICAgICByZW1haW5pbmdUZXh0Tm9kZSA9IGVuZE5vZGVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb2Zmc2V0ICs9IGN1cnJlbnROb2RlTGVuZ3RoXG4gICAgfVxuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGNvbnN0IHNlbGVjdGVkVGV4dE5vZGUgPSBzZWxlY3Rpb24gPyBzZWxlY3Rpb24uZ2V0Tm9kZXMoKS5maW5kKCRpc1RleHROb2RlKSA6IHVuZGVmaW5lZFxuICAgIGNvbnN0IHRleHROb2RlID0gJGNyZWF0ZVRleHROb2RlKGZpcnN0TGlua1RleHROb2RlLmdldFRleHRDb250ZW50KCkpXG4gICAgdGV4dE5vZGUuc2V0Rm9ybWF0KGZpcnN0TGlua1RleHROb2RlLmdldEZvcm1hdCgpKVxuICAgIHRleHROb2RlLnNldERldGFpbChmaXJzdExpbmtUZXh0Tm9kZS5nZXREZXRhaWwoKSlcbiAgICBsaW5rTm9kZS5hcHBlbmQodGV4dE5vZGUsIC4uLmxpbmtOb2RlcylcbiAgICAvLyBpdCBkb2VzIG5vdCBwcmVzZXJ2ZSBjYXJldCBwb3NpdGlvbiBpZiBjYXJldCB3YXMgYXQgdGhlIGZpcnN0IHRleHQgbm9kZVxuICAgIC8vIHNvIHdlIG5lZWQgdG8gcmVzdG9yZSBjYXJldCBwb3NpdGlvblxuICAgIGlmIChzZWxlY3RlZFRleHROb2RlICYmIHNlbGVjdGVkVGV4dE5vZGUgPT09IGZpcnN0TGlua1RleHROb2RlKSB7XG4gICAgICBpZiAoJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgICB0ZXh0Tm9kZS5zZWxlY3Qoc2VsZWN0aW9uLmFuY2hvci5vZmZzZXQsIHNlbGVjdGlvbi5mb2N1cy5vZmZzZXQpXG4gICAgICB9IGVsc2UgaWYgKCRpc05vZGVTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgICB0ZXh0Tm9kZS5zZWxlY3QoMCwgdGV4dE5vZGUuZ2V0VGV4dENvbnRlbnQoKS5sZW5ndGgpXG4gICAgICB9XG4gICAgfVxuICAgIGZpcnN0TGlua1RleHROb2RlLnJlcGxhY2UobGlua05vZGUpXG4gICAgcmV0dXJuIHJlbWFpbmluZ1RleHROb2RlXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBoYW5kbGVMaW5rQ3JlYXRpb24oXG4gIG5vZGVzOiBUZXh0Tm9kZVtdLFxuICBtYXRjaGVyczogTGlua01hdGNoZXJbXSxcbiAgb25DaGFuZ2U6IENoYW5nZUhhbmRsZXIsXG4pOiB2b2lkIHtcbiAgbGV0IGN1cnJlbnROb2RlcyA9IFsuLi5ub2Rlc11cbiAgY29uc3QgaW5pdGlhbFRleHQgPSBjdXJyZW50Tm9kZXMubWFwKChub2RlKSA9PiBub2RlLmdldFRleHRDb250ZW50KCkpLmpvaW4oJycpXG4gIGxldCB0ZXh0ID0gaW5pdGlhbFRleHRcblxuICBsZXQgbWF0Y2hcbiAgbGV0IGludmFsaWRNYXRjaEVuZCA9IDBcblxuICB3aGlsZSAoKG1hdGNoID0gZmluZEZpcnN0TWF0Y2godGV4dCwgbWF0Y2hlcnMpKSAhPSBudWxsICYmIG1hdGNoICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWF0Y2hTdGFydDogbnVtYmVyID0gbWF0Y2guaW5kZXhcbiAgICBjb25zdCBtYXRjaExlbmd0aDogbnVtYmVyID0gbWF0Y2gubGVuZ3RoXG4gICAgY29uc3QgbWF0Y2hFbmQgPSBtYXRjaFN0YXJ0ICsgbWF0Y2hMZW5ndGhcbiAgICBjb25zdCBpc1ZhbGlkID0gaXNDb250ZW50QXJvdW5kSXNWYWxpZChcbiAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoU3RhcnQsXG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaEVuZCxcbiAgICAgIGluaXRpYWxUZXh0LFxuICAgICAgY3VycmVudE5vZGVzLFxuICAgIClcblxuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICBjb25zdCBbbWF0Y2hpbmdPZmZzZXQsICwgbWF0Y2hpbmdOb2RlcywgdW5tb2RpZmllZEFmdGVyTm9kZXNdID0gZXh0cmFjdE1hdGNoaW5nTm9kZXMoXG4gICAgICAgIGN1cnJlbnROb2RlcyxcbiAgICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hTdGFydCxcbiAgICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hFbmQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGFjdHVhbE1hdGNoU3RhcnQgPSBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0IC0gbWF0Y2hpbmdPZmZzZXRcbiAgICAgIGNvbnN0IGFjdHVhbE1hdGNoRW5kID0gaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hFbmQgLSBtYXRjaGluZ09mZnNldFxuICAgICAgY29uc3QgcmVtYWluaW5nVGV4dE5vZGUgPSBjcmVhdGVBdXRvTGlua05vZGUoXG4gICAgICAgIG1hdGNoaW5nTm9kZXMsXG4gICAgICAgIGFjdHVhbE1hdGNoU3RhcnQsXG4gICAgICAgIGFjdHVhbE1hdGNoRW5kLFxuICAgICAgICBtYXRjaCxcbiAgICAgIClcbiAgICAgIGN1cnJlbnROb2RlcyA9IHJlbWFpbmluZ1RleHROb2RlXG4gICAgICAgID8gW3JlbWFpbmluZ1RleHROb2RlLCAuLi51bm1vZGlmaWVkQWZ0ZXJOb2Rlc11cbiAgICAgICAgOiB1bm1vZGlmaWVkQWZ0ZXJOb2Rlc1xuICAgICAgb25DaGFuZ2UobWF0Y2gudXJsLCBudWxsKVxuICAgICAgaW52YWxpZE1hdGNoRW5kID0gMFxuICAgIH0gZWxzZSB7XG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKz0gbWF0Y2hFbmRcbiAgICB9XG5cbiAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcobWF0Y2hFbmQpXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTGlua0VkaXQoXG4gIGxpbmtOb2RlOiBBdXRvTGlua05vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICAvLyBDaGVjayBjaGlsZHJlbiBhcmUgc2ltcGxlIHRleHRcbiAgY29uc3QgY2hpbGRyZW4gPSBsaW5rTm9kZS5nZXRDaGlsZHJlbigpXG4gIGNvbnN0IGNoaWxkcmVuTGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV1cbiAgICBpZiAoISRpc1RleHROb2RlKGNoaWxkKSB8fCAhY2hpbGQuaXNTaW1wbGVUZXh0KCkpIHtcbiAgICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obGlua05vZGUpXG4gICAgICBvbkNoYW5nZShudWxsLCBsaW5rTm9kZS5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayB0ZXh0IGNvbnRlbnQgZnVsbHkgbWF0Y2hlc1xuICBjb25zdCB0ZXh0ID0gbGlua05vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICBjb25zdCBtYXRjaCA9IGZpbmRGaXJzdE1hdGNoKHRleHQsIG1hdGNoZXJzKVxuICBpZiAobWF0Y2ggPT09IG51bGwgfHwgbWF0Y2gudGV4dCAhPT0gdGV4dCkge1xuICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obGlua05vZGUpXG4gICAgb25DaGFuZ2UobnVsbCwgbGlua05vZGUuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICAgIHJldHVyblxuICB9XG5cbiAgLy8gQ2hlY2sgbmVpZ2hib3JzXG4gIGlmICghaXNQcmV2aW91c05vZGVWYWxpZChsaW5rTm9kZSkgfHwgIWlzTmV4dE5vZGVWYWxpZChsaW5rTm9kZSkpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKGxpbmtOb2RlKVxuICAgIG9uQ2hhbmdlKG51bGwsIGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmwgPz8gbnVsbClcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHVybCA9IGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmxcbiAgaWYgKHVybCAhPT0gbWF0Y2g/LnVybCkge1xuICAgIGNvbnN0IGZsZHMgPSBsaW5rTm9kZS5nZXRGaWVsZHMoKVxuICAgIGZsZHMudXJsID0gbWF0Y2g/LnVybFxuICAgIGxpbmtOb2RlLnNldEZpZWxkcyhmbGRzKVxuICAgIG9uQ2hhbmdlKG1hdGNoLnVybCwgdXJsID8/IG51bGwpXG4gIH1cbn1cblxuLy8gQmFkIG5laWdoYm9ycyBhcmUgZWRpdHMgaW4gbmVpZ2hib3Igbm9kZXMgdGhhdCBtYWtlIEF1dG9MaW5rcyBpbmNvbXBhdGlibGUuXG4vLyBHaXZlbiB0aGUgY3JlYXRpb24gcHJlY29uZGl0aW9ucywgdGhlc2UgY2FuIG9ubHkgYmUgc2ltcGxlIHRleHQgbm9kZXMuXG5mdW5jdGlvbiBoYW5kbGVCYWROZWlnaGJvcnMoXG4gIHRleHROb2RlOiBUZXh0Tm9kZSxcbiAgbWF0Y2hlcnM6IExpbmtNYXRjaGVyW10sXG4gIG9uQ2hhbmdlOiBDaGFuZ2VIYW5kbGVyLFxuKTogdm9pZCB7XG4gIGNvbnN0IHByZXZpb3VzU2libGluZyA9IHRleHROb2RlLmdldFByZXZpb3VzU2libGluZygpXG4gIGNvbnN0IG5leHRTaWJsaW5nID0gdGV4dE5vZGUuZ2V0TmV4dFNpYmxpbmcoKVxuICBjb25zdCB0ZXh0ID0gdGV4dE5vZGUuZ2V0VGV4dENvbnRlbnQoKVxuXG4gIGlmICgkaXNBdXRvTGlua05vZGUocHJldmlvdXNTaWJsaW5nKSAmJiAhc3RhcnRzV2l0aFNlcGFyYXRvcih0ZXh0KSkge1xuICAgIHByZXZpb3VzU2libGluZy5hcHBlbmQodGV4dE5vZGUpXG4gICAgaGFuZGxlTGlua0VkaXQocHJldmlvdXNTaWJsaW5nLCBtYXRjaGVycywgb25DaGFuZ2UpXG4gICAgb25DaGFuZ2UobnVsbCwgcHJldmlvdXNTaWJsaW5nLmdldEZpZWxkcygpPy51cmwgPz8gbnVsbClcbiAgfVxuXG4gIGlmICgkaXNBdXRvTGlua05vZGUobmV4dFNpYmxpbmcpICYmICFlbmRzV2l0aFNlcGFyYXRvcih0ZXh0KSkge1xuICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obmV4dFNpYmxpbmcpXG4gICAgaGFuZGxlTGlua0VkaXQobmV4dFNpYmxpbmcsIG1hdGNoZXJzLCBvbkNoYW5nZSlcbiAgICBvbkNoYW5nZShudWxsLCBuZXh0U2libGluZy5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwbGFjZVdpdGhDaGlsZHJlbihub2RlOiBFbGVtZW50Tm9kZSk6IExleGljYWxOb2RlW10ge1xuICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuZ2V0Q2hpbGRyZW4oKVxuICBjb25zdCBjaGlsZHJlbkxlbmd0aCA9IGNoaWxkcmVuLmxlbmd0aFxuXG4gIGZvciAobGV0IGogPSBjaGlsZHJlbkxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgbm9kZS5pbnNlcnRBZnRlcihjaGlsZHJlbltqXSlcbiAgfVxuXG4gIG5vZGUucmVtb3ZlKClcbiAgcmV0dXJuIGNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGNoaWxkLmdldExhdGVzdCgpKVxufVxuXG5mdW5jdGlvbiBnZXRUZXh0Tm9kZXNUb01hdGNoKHRleHROb2RlOiBUZXh0Tm9kZSk6IFRleHROb2RlW10ge1xuICAvLyBjaGVjayBpZiBuZXh0IHNpYmxpbmdzIGFyZSBzaW1wbGUgdGV4dCBub2RlcyB0aWxsIGEgbm9kZSBjb250YWlucyBhIHNwYWNlIHNlcGFyYXRvclxuICBjb25zdCB0ZXh0Tm9kZXNUb01hdGNoID0gW3RleHROb2RlXVxuICBsZXQgbmV4dFNpYmxpbmcgPSB0ZXh0Tm9kZS5nZXROZXh0U2libGluZygpXG4gIHdoaWxlIChuZXh0U2libGluZyAhPT0gbnVsbCAmJiAkaXNUZXh0Tm9kZShuZXh0U2libGluZykgJiYgbmV4dFNpYmxpbmcuaXNTaW1wbGVUZXh0KCkpIHtcbiAgICB0ZXh0Tm9kZXNUb01hdGNoLnB1c2gobmV4dFNpYmxpbmcpXG4gICAgaWYgKC9cXHMvLnRlc3QobmV4dFNpYmxpbmcuZ2V0VGV4dENvbnRlbnQoKSkpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIG5leHRTaWJsaW5nID0gbmV4dFNpYmxpbmcuZ2V0TmV4dFNpYmxpbmcoKVxuICB9XG4gIHJldHVybiB0ZXh0Tm9kZXNUb01hdGNoXG59XG5cbmZ1bmN0aW9uIHVzZUF1dG9MaW5rKFxuICBlZGl0b3I6IExleGljYWxFZGl0b3IsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZT86IENoYW5nZUhhbmRsZXIsXG4pOiB2b2lkIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVkaXRvci5oYXNOb2RlcyhbQXV0b0xpbmtOb2RlXSkpIHtcbiAgICAgIGludmFyaWFudChmYWxzZSwgJ0xleGljYWxBdXRvTGlua1BsdWdpbjogQXV0b0xpbmtOb2RlIG5vdCByZWdpc3RlcmVkIG9uIGVkaXRvcicpXG4gICAgfVxuXG4gICAgY29uc3Qgb25DaGFuZ2VXcmFwcGVkID0gKHVybDogbnVsbCB8IHN0cmluZywgcHJldlVybDogbnVsbCB8IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgaWYgKG9uQ2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgb25DaGFuZ2UodXJsLCBwcmV2VXJsKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyTm9kZVRyYW5zZm9ybShUZXh0Tm9kZSwgKHRleHROb2RlOiBUZXh0Tm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSB0ZXh0Tm9kZS5nZXRQYXJlbnRPclRocm93KClcbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSB0ZXh0Tm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICAgICAgICBpZiAoJGlzQXV0b0xpbmtOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgICBoYW5kbGVMaW5rRWRpdChwYXJlbnQsIG1hdGNoZXJzLCBvbkNoYW5nZVdyYXBwZWQpXG4gICAgICAgIH0gZWxzZSBpZiAoISRpc0xpbmtOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0ZXh0Tm9kZS5pc1NpbXBsZVRleHQoKSAmJlxuICAgICAgICAgICAgKHN0YXJ0c1dpdGhTZXBhcmF0b3IodGV4dE5vZGUuZ2V0VGV4dENvbnRlbnQoKSkgfHwgISRpc0F1dG9MaW5rTm9kZShwcmV2aW91cykpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZXNUb01hdGNoID0gZ2V0VGV4dE5vZGVzVG9NYXRjaCh0ZXh0Tm9kZSlcbiAgICAgICAgICAgIGhhbmRsZUxpbmtDcmVhdGlvbih0ZXh0Tm9kZXNUb01hdGNoLCBtYXRjaGVycywgb25DaGFuZ2VXcmFwcGVkKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGhhbmRsZUJhZE5laWdoYm9ycyh0ZXh0Tm9kZSwgbWF0Y2hlcnMsIG9uQ2hhbmdlV3JhcHBlZClcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuICB9LCBbZWRpdG9yLCBtYXRjaGVycywgb25DaGFuZ2VdKVxufVxuXG5jb25zdCBVUkxfUkVHRVggPVxuICAvKChodHRwcz86XFwvXFwvKHd3d1xcLik/KXwod3d3XFwuKSlbLVxcd0A6JS4rfiM9XXsxLDI1Nn1cXC5bYS16QS1aXFxkKCldezEsNn1cXGIoWy1cXHcoKUA6JSsufiM/Ji89XSopL1xuXG5jb25zdCBFTUFJTF9SRUdFWCA9XG4gIC8oKFtePD4oKVtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1xcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9XFxdKXwoKFthLXpBLVpcXC1cXGRdK1xcLikrW2EtekEtWl17Mix9KSkvXG5cbmNvbnN0IE1BVENIRVJTID0gW1xuICBjcmVhdGVMaW5rTWF0Y2hlcldpdGhSZWdFeHAoVVJMX1JFR0VYLCAodGV4dCkgPT4ge1xuICAgIHJldHVybiB0ZXh0LnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IHRleHQgOiBgaHR0cHM6Ly8ke3RleHR9YFxuICB9KSxcbiAgY3JlYXRlTGlua01hdGNoZXJXaXRoUmVnRXhwKEVNQUlMX1JFR0VYLCAodGV4dCkgPT4ge1xuICAgIHJldHVybiBgbWFpbHRvOiR7dGV4dH1gXG4gIH0pLFxuXVxuXG5leHBvcnQgZnVuY3Rpb24gQXV0b0xpbmtQbHVnaW4oKTogSlNYLkVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcblxuICB1c2VBdXRvTGluayhlZGl0b3IsIE1BVENIRVJTKVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsIm1lcmdlUmVnaXN0ZXIiLCIkY3JlYXRlVGV4dE5vZGUiLCIkZ2V0U2VsZWN0aW9uIiwiJGlzRWxlbWVudE5vZGUiLCIkaXNMaW5lQnJlYWtOb2RlIiwiJGlzTm9kZVNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiJGlzVGV4dE5vZGUiLCJUZXh0Tm9kZSIsInVzZUVmZmVjdCIsImludmFyaWFudCIsIiRjcmVhdGVBdXRvTGlua05vZGUiLCIkaXNBdXRvTGlua05vZGUiLCJBdXRvTGlua05vZGUiLCIkaXNMaW5rTm9kZSIsImNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cCIsInJlZ0V4cCIsInVybFRyYW5zZm9ybWVyIiwidGV4dCIsIm1hdGNoIiwiZXhlYyIsImluZGV4IiwibGVuZ3RoIiwidXJsIiwiZmluZEZpcnN0TWF0Y2giLCJtYXRjaGVycyIsImkiLCJQVU5DVFVBVElPTl9PUl9TUEFDRSIsImlzU2VwYXJhdG9yIiwiY2hhciIsInRlc3QiLCJlbmRzV2l0aFNlcGFyYXRvciIsInRleHRDb250ZW50Iiwic3RhcnRzV2l0aFNlcGFyYXRvciIsImlzUHJldmlvdXNOb2RlVmFsaWQiLCJub2RlIiwicHJldmlvdXNOb2RlIiwiZ2V0UHJldmlvdXNTaWJsaW5nIiwiZ2V0TGFzdERlc2NlbmRhbnQiLCJnZXRUZXh0Q29udGVudCIsImlzTmV4dE5vZGVWYWxpZCIsIm5leHROb2RlIiwiZ2V0TmV4dFNpYmxpbmciLCJnZXRGaXJzdERlc2NlbmRhbnQiLCJpc0NvbnRlbnRBcm91bmRJc1ZhbGlkIiwibWF0Y2hTdGFydCIsIm1hdGNoRW5kIiwibm9kZXMiLCJjb250ZW50QmVmb3JlSXNWYWxpZCIsImNvbnRlbnRBZnRlcklzVmFsaWQiLCJleHRyYWN0TWF0Y2hpbmdOb2RlcyIsInN0YXJ0SW5kZXgiLCJlbmRJbmRleCIsInVubW9kaWZpZWRCZWZvcmVOb2RlcyIsIm1hdGNoaW5nTm9kZXMiLCJ1bm1vZGlmaWVkQWZ0ZXJOb2RlcyIsIm1hdGNoaW5nT2Zmc2V0IiwiY3VycmVudE9mZnNldCIsImN1cnJlbnROb2RlcyIsImN1cnJlbnROb2RlIiwiY3VycmVudE5vZGVUZXh0IiwiY3VycmVudE5vZGVMZW5ndGgiLCJjdXJyZW50Tm9kZVN0YXJ0IiwiY3VycmVudE5vZGVFbmQiLCJwdXNoIiwic2hpZnQiLCJjcmVhdGVBdXRvTGlua05vZGUiLCJmaWVsZHMiLCJsaW5rVHlwZSIsImxpbmtOb2RlIiwicmVtYWluaW5nVGV4dE5vZGUiLCJsaW5rVGV4dE5vZGUiLCJzcGxpdFRleHQiLCJ0ZXh0Tm9kZSIsInNldEZvcm1hdCIsImdldEZvcm1hdCIsInNldERldGFpbCIsImdldERldGFpbCIsImFwcGVuZCIsInJlcGxhY2UiLCJmaXJzdFRleHROb2RlIiwib2Zmc2V0IiwiZmlyc3RMaW5rVGV4dE5vZGUiLCJsaW5rTm9kZXMiLCJlbmROb2RlIiwic2VsZWN0aW9uIiwic2VsZWN0ZWRUZXh0Tm9kZSIsImdldE5vZGVzIiwiZmluZCIsInVuZGVmaW5lZCIsInNlbGVjdCIsImFuY2hvciIsImZvY3VzIiwiaGFuZGxlTGlua0NyZWF0aW9uIiwib25DaGFuZ2UiLCJpbml0aWFsVGV4dCIsIm1hcCIsImpvaW4iLCJpbnZhbGlkTWF0Y2hFbmQiLCJtYXRjaExlbmd0aCIsImlzVmFsaWQiLCJhY3R1YWxNYXRjaFN0YXJ0IiwiYWN0dWFsTWF0Y2hFbmQiLCJzdWJzdHJpbmciLCJoYW5kbGVMaW5rRWRpdCIsImNoaWxkcmVuIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbkxlbmd0aCIsImNoaWxkIiwiaXNTaW1wbGVUZXh0IiwicmVwbGFjZVdpdGhDaGlsZHJlbiIsImdldEZpZWxkcyIsImZsZHMiLCJzZXRGaWVsZHMiLCJoYW5kbGVCYWROZWlnaGJvcnMiLCJwcmV2aW91c1NpYmxpbmciLCJuZXh0U2libGluZyIsImoiLCJpbnNlcnRBZnRlciIsInJlbW92ZSIsImdldExhdGVzdCIsImdldFRleHROb2Rlc1RvTWF0Y2giLCJ0ZXh0Tm9kZXNUb01hdGNoIiwidXNlQXV0b0xpbmsiLCJlZGl0b3IiLCJoYXNOb2RlcyIsIm9uQ2hhbmdlV3JhcHBlZCIsInByZXZVcmwiLCJyZWdpc3Rlck5vZGVUcmFuc2Zvcm0iLCJwYXJlbnQiLCJnZXRQYXJlbnRPclRocm93IiwicHJldmlvdXMiLCJVUkxfUkVHRVgiLCJFTUFJTF9SRUdFWCIsIk1BVENIRVJTIiwic3RhcnRzV2l0aCIsIkF1dG9MaW5rUGx1Z2luIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLDJDQUEwQztBQUNwRixTQUFTQyxhQUFhLFFBQVEsaUJBQWdCO0FBQzlDLFNBQ0VDLGVBQWUsRUFDZkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEVBQ2hCQyxpQkFBaUIsRUFDakJDLFdBQVcsRUFDWEMsUUFBUSxRQUNILFVBQVM7QUFDaEIsU0FBU0MsU0FBUyxRQUFRLFFBQU87QUFJakMsU0FBU0MsU0FBUyxRQUFRLHlDQUF3QztBQUNsRSxTQUFTQyxtQkFBbUIsRUFBRUMsZUFBZSxFQUFFQyxZQUFZLFFBQVEsOEJBQTZCO0FBQ2hHLFNBQVNDLFdBQVcsUUFBUSwwQkFBeUI7QUFjckQsT0FBTyxTQUFTQyw0QkFDZEMsTUFBYyxFQUNkQyxpQkFBMkMsQ0FBQ0MsT0FBU0EsSUFBSTtJQUV6RCxPQUFPLENBQUNBO1FBQ04sTUFBTUMsUUFBUUgsT0FBT0ksSUFBSSxDQUFDRjtRQUMx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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/link/plugins/clickableLink/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/link/plugins/clickableLink/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,wBAAgB,mBAAmB,sBAGlC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import LexicalClickableLinkPlugin from '@lexical/react/LexicalClickableLinkPlugin';
|
|
2
|
+
import LexicalClickableLinkPlugin from '@lexical/react/LexicalClickableLinkPlugin.js';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
export function ClickableLinkPlugin() {
|
|
5
|
-
|
|
5
|
+
const Component = LexicalClickableLinkPlugin.default;
|
|
6
|
+
return /*#__PURE__*/ React.createElement(Component, null);
|
|
6
7
|
}
|
|
7
8
|
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvY2xpY2thYmxlTGluay9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgTGV4aWNhbENsaWNrYWJsZUxpbmtQbHVnaW4gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENsaWNrYWJsZUxpbmtQbHVnaW4uanMnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmV4cG9ydCBmdW5jdGlvbiBDbGlja2FibGVMaW5rUGx1Z2luKCkge1xuICBjb25zdCBDb21wb25lbnQgPSBMZXhpY2FsQ2xpY2thYmxlTGlua1BsdWdpbi5kZWZhdWx0XG4gIHJldHVybiA8Q29tcG9uZW50IC8+XG59XG4iXSwibmFtZXMiOlsiTGV4aWNhbENsaWNrYWJsZUxpbmtQbHVnaW4iLCJSZWFjdCIsIkNsaWNrYWJsZUxpbmtQbHVnaW4iLCJDb21wb25lbnQiLCJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU9BLGdDQUFnQywrQ0FBOEM7QUFDckYsT0FBT0MsV0FBVyxRQUFPO0FBRXpCLE9BQU8sU0FBU0M7SUFDZCxNQUFNQyxZQUFZSCwyQkFBMkJJLE9BQU87SUFDcEQscUJBQU8sb0JBQUNEO0FBQ1YifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LexicalCommand } from 'lexical';
|
|
2
|
-
import type { LinkPayload } from '../types';
|
|
2
|
+
import type { LinkPayload } from '../types.js';
|
|
3
3
|
export declare const TOGGLE_LINK_WITH_MODAL_COMMAND: LexicalCommand<LinkPayload | null>;
|
|
4
4
|
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,eAAO,MAAM,8BAA8B,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAE7E,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createCommand } from 'lexical';
|
|
2
2
|
export const TOGGLE_LINK_WITH_MODAL_COMMAND = createCommand('TOGGLE_LINK_WITH_MODAL_COMMAND');
|
|
3
3
|
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvY29tbWFuZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsQ29tbWFuZCB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB7IGNyZWF0ZUNvbW1hbmQgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgdHlwZSB7IExpbmtQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMuanMnXG5cbmV4cG9ydCBjb25zdCBUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPExpbmtQYXlsb2FkIHwgbnVsbD4gPSBjcmVhdGVDb21tYW5kKFxuICAnVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EJyxcbilcbiJdLCJuYW1lcyI6WyJjcmVhdGVDb21tYW5kIiwiVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxhQUFhLFFBQVEsVUFBUztBQUl2QyxPQUFPLE1BQU1DLGlDQUFxRUQsY0FDaEYsa0NBQ0QifQ==
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useModal } from '@faceless-ui/modal';
|
|
3
|
-
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
3
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
4
4
|
import { $findMatchingParent, mergeRegister } from '@lexical/utils';
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import { formatDrawerSlug, useConfig, useEditDepth, useTranslation } from '@payloadcms/ui';
|
|
7
7
|
import { $getSelection, $isRangeSelection, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, KEY_ESCAPE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
|
|
8
8
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
9
|
-
import { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider';
|
|
10
|
-
import { getSelectedNode } from '../../../../../lexical/utils/getSelectedNode';
|
|
11
|
-
import { setFloatingElemPositionForLinkEditor } from '../../../../../lexical/utils/setFloatingElemPositionForLinkEditor';
|
|
12
|
-
import { LinkDrawer } from '../../../drawer';
|
|
13
|
-
import { $isAutoLinkNode } from '../../../nodes/AutoLinkNode';
|
|
14
|
-
import { $createLinkNode } from '../../../nodes/LinkNode';
|
|
15
|
-
import { $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode';
|
|
16
|
-
import { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands';
|
|
9
|
+
import { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js';
|
|
10
|
+
import { getSelectedNode } from '../../../../../lexical/utils/getSelectedNode.js';
|
|
11
|
+
import { setFloatingElemPositionForLinkEditor } from '../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js';
|
|
12
|
+
import { LinkDrawer } from '../../../drawer/index.js';
|
|
13
|
+
import { $isAutoLinkNode } from '../../../nodes/AutoLinkNode.js';
|
|
14
|
+
import { $createLinkNode } from '../../../nodes/LinkNode.js';
|
|
15
|
+
import { $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js';
|
|
16
|
+
import { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js';
|
|
17
17
|
export function LinkEditor({ anchorElem }) {
|
|
18
18
|
const [editor] = useLexicalComposerContext();
|
|
19
19
|
const editorRef = useRef(null);
|
|
@@ -240,4 +240,4 @@ export function LinkEditor({ anchorElem }) {
|
|
|
240
240
|
}));
|
|
241
241
|
}
|
|
242
242
|
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBGb3JtU3RhdGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7ICRmaW5kTWF0Y2hpbmdQYXJlbnQsIG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZywgdXNlQ29uZmlnLCB1c2VFZGl0RGVwdGgsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9ISUdILFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IExpbmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgdHlwZSB7IExpbmtQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL2NvbmZpZy9jbGllbnQvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZSdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlcidcbmltcG9ydCB7ICRpc0F1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRjcmVhdGVMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHsgJGlzTGlua05vZGUsIFRPR0dMRV9MSU5LX0NPTU1BTkQgfSBmcm9tICcuLi8uLi8uLi9ub2Rlcy9MaW5rTm9kZSdcbmltcG9ydCB7IFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCB9IGZyb20gJy4vY29tbWFuZHMnXG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rRWRpdG9yKHsgYW5jaG9yRWxlbSB9OiB7IGFuY2hvckVsZW06IEhUTUxFbGVtZW50IH0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsaW5rVXJsLCBzZXRMaW5rVXJsXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbGlua0xhYmVsLCBzZXRMaW5rTGFiZWxdID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IFtzdGF0ZURhdGEsIHNldFN0YXRlRGF0YV0gPSB1c2VTdGF0ZTxMaW5rUGF5bG9hZD4obnVsbClcblxuICBjb25zdCB7IGNsb3NlTW9kYWwsIHRvZ2dsZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IGVkaXREZXB0aCA9IHVzZUVkaXREZXB0aCgpXG4gIGNvbnN0IFtpc0xpbmssIHNldElzTGlua10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzQXV0b0xpbmssIHNldElzQXV0b0xpbmtdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgZHJhd2VyU2x1ZyA9IGZvcm1hdERyYXdlclNsdWcoe1xuICAgIHNsdWc6IGBsZXhpY2FsLXJpY2gtdGV4dC1saW5rLWAgKyB1dWlkLFxuICAgIGRlcHRoOiBlZGl0RGVwdGgsXG4gIH0pXG5cbiAgY29uc3QgdXBkYXRlTGlua0VkaXRvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBsZXQgc2VsZWN0ZWROb2RlRG9tUmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZCA9IG51bGxcblxuICAgIC8vIEhhbmRsZSB0aGUgZGF0YSBkaXNwbGF5ZWQgaW4gdGhlIGZsb2F0aW5nIGxpbmsgZWRpdG9yICYgZHJhd2VyIHdoZW4geW91IGNsaWNrIG9uIGEgbGluayBub2RlXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBnZXRTZWxlY3RlZE5vZGUoc2VsZWN0aW9uKVxuICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdCA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkobm9kZS5nZXRLZXkoKSk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBsaW5rUGFyZW50OiBMaW5rTm9kZSA9ICRmaW5kTWF0Y2hpbmdQYXJlbnQobm9kZSwgJGlzTGlua05vZGUpXG4gICAgICBpZiAobGlua1BhcmVudCA9PSBudWxsKSB7XG4gICAgICAgIHNldElzTGluayhmYWxzZSlcbiAgICAgICAgc2V0SXNBdXRvTGluayhmYWxzZSlcbiAgICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSW5pdGlhbCBzdGF0ZTpcbiAgICAgIGNvbnN0IGRhdGE6IExpbmtQYXlsb2FkID0ge1xuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICBkb2M6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsaW5rVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG5ld1RhYjogdW5kZWZpbmVkLFxuICAgICAgICAgIHVybDogJycsXG4gICAgICAgICAgLi4ubGlua1BhcmVudC5nZXRGaWVsZHMoKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGV4dDogbGlua1BhcmVudC5nZXRUZXh0Q29udGVudCgpLFxuICAgICAgfVxuXG4gICAgICBpZiAobGlua1BhcmVudC5nZXRGaWVsZHMoKT8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICAgIHNldExpbmtVcmwobGlua1BhcmVudC5nZXRGaWVsZHMoKT8udXJsID8/ICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpbnRlcm5hbCBsaW5rXG4gICAgICAgIHNldExpbmtVcmwoXG4gICAgICAgICAgYC9hZG1pbi9jb2xsZWN0aW9ucy8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25Ub30vJHtcbiAgICAgICAgICAgIGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8udmFsdWVcbiAgICAgICAgICB9YCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IGNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgIChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25UbyxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBsYWJlbCA9IHQoJ2ZpZWxkczpsaW5rZWRUbycsIHtcbiAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24ocmVsYXRlZEZpZWxkLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICAgIH0pLnJlcGxhY2UoLzxbXj5dKj4/L2csICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwobGFiZWwpXG4gICAgICB9XG5cbiAgICAgIHNldFN0YXRlRGF0YShkYXRhKVxuICAgICAgc2V0SXNMaW5rKHRydWUpXG4gICAgICBpZiAoJGlzQXV0b0xpbmtOb2RlKGxpbmtQYXJlbnQpKSB7XG4gICAgICAgIHNldElzQXV0b0xpbmsodHJ1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldElzQXV0b0xpbmsoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdG9yRWxlbSA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgY29uc3QgbmF0aXZlU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudFxuXG4gICAgaWYgKGVkaXRvckVsZW0gPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgbmF0aXZlU2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICByb290RWxlbWVudCAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQuY29udGFpbnMobmF0aXZlU2VsZWN0aW9uLmFuY2hvck5vZGUpXG4gICAgKSB7XG4gICAgICBpZiAoIXNlbGVjdGVkTm9kZURvbVJlY3QpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBET00gcmVjdCBvZiB0aGUgc2VsZWN0ZWQgbm9kZSB1c2luZyB0aGUgbmF0aXZlIHNlbGVjdGlvbi4gVGhpcyBzb21ldGltZXMgcHJvZHVjZXMgdGhlIHdyb25nXG4gICAgICAgIC8vIHJlc3VsdCwgd2hpY2ggaXMgd2h5IHdlIHVzZSBsZXhpY2FsJ3Mgc2VsZWN0aW9uIHByZWZlcmFibHkuXG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QgPSBuYXRpdmVTZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0ZWROb2RlRG9tUmVjdCAhPSBudWxsKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QueSArPSA0MFxuICAgICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3Ioc2VsZWN0ZWROb2RlRG9tUmVjdCwgZWRpdG9yRWxlbSwgYW5jaG9yRWxlbSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUVsZW1lbnQgPT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50LmNsYXNzTmFtZSAhPT0gJ2xpbmstaW5wdXQnKSB7XG4gICAgICBpZiAocm9vdEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKG51bGwsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgICBzZXRMaW5rVXJsKCcnKVxuICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0sIFthbmNob3JFbGVtLCBlZGl0b3IsIGNvbmZpZywgdCwgaTE4bl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCB0b2dnbGVNb2RhbCwgZHJhd2VyU2x1Z10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTGluayAmJiBlZGl0b3JSZWYpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoLTEwMDAwcHgsIC0xMDAwMHB4KSdcbiAgICB9XG4gIH0sIFtpc0xpbmtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgICBjb25zdCB1cGRhdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgc2Nyb2xsZXJFbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAhPSBudWxsKSB7XG4gICAgICAgIHNjcm9sbGVyRWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50LCBlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoeyBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGVkaXRvclN0YXRlLnJlYWQoKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgIH0pXG4gICAgICB9KSxcblxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRVNDQVBFX0NPTU1BTkQsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNMaW5rKSB7XG4gICAgICAgICAgICBzZXRJc0xpbmsoZmFsc2UpXG4gICAgICAgICAgICBzZXRJc0F1dG9MaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICB7ZWRpdG9yLmlzRWRpdGFibGUoKSAmJiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLWVkaXRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgeyFpc0F1dG9MaW5rICYmIChcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIGxpbmtcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluay10cmFzaFwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbnVsbClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8TGlua0RyYXdlclxuICAgICAgICBkcmF3ZXJTbHVnPXtkcmF3ZXJTbHVnfVxuICAgICAgICBoYW5kbGVNb2RhbFN1Ym1pdD17KGZpZWxkczogRm9ybVN0YXRlLCBkYXRhOiBEYXRhKSA9PiB7XG4gICAgICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuXG4gICAgICAgICAgY29uc3QgbmV3TGlua1BheWxvYWQ6IExpbmtQYXlsb2FkID0gZGF0YSBhcyBMaW5rUGF5bG9hZFxuXG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svbGV4aWNhbC9wdWxsLzU1MzYuIFRoaXMgdXBkYXRlcyBhdXRvbGluayBub2RlcyB0byBsaW5rIG5vZGVzIHdoZW5ldmVyIGEgY2hhbmdlIHdhcyBtYWRlICh3aGljaCBpcyBnb29kISkuXG4gICAgICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pLmdldFBhcmVudCgpXG4gICAgICAgICAgICAgIGlmICgkaXNBdXRvTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUxpbmtOb2RlKHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogbmV3TGlua1BheWxvYWQuZmllbGRzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcGFyZW50LnJlcGxhY2UobGlua05vZGUsIHRydWUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8gTmVlZHMgdG8gaGFwcGVuIEFGVEVSIGEgcG90ZW50aWFsIGF1dG8gbGluayA9PiBsaW5rIG5vZGUgY29udmVyc2lvbiwgYXMgb3RoZXJ3aXNlLCB0aGUgdXBkYXRlZCB0ZXh0IHRvIGRpc3BsYXkgbWF5IGJlIGxvc3QgZHVlIHRvXG4gICAgICAgICAgLy8gaXQgYmVpbmcgYXBwbGllZCB0byB0aGUgYXV0byBsaW5rIG5vZGUgaW5zdGVhZCBvZiB0aGUgbGluayBub2RlLlxuICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbmV3TGlua1BheWxvYWQpXG4gICAgICAgIH19XG4gICAgICAgIHN0YXRlRGF0YT17c3RhdGVEYXRhfVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlTW9kYWwiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiJGZpbmRNYXRjaGluZ1BhcmVudCIsIm1lcmdlUmVnaXN0ZXIiLCJnZXRUcmFuc2xhdGlvbiIsImZvcm1hdERyYXdlclNsdWciLCJ1c2VDb25maWciLCJ1c2VFZGl0RGVwdGgiLCJ1c2VUcmFuc2xhdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCIkaXNSYW5nZVNlbGVjdGlvbiIsIkNPTU1BTkRfUFJJT1JJVFlfSElHSCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5EIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImdldFNlbGVjdGVkTm9kZSIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciIsIkxpbmtEcmF3ZXIiLCIkaXNBdXRvTGlua05vZGUiLCIkY3JlYXRlTGlua05vZGUiLCIkaXNMaW5rTm9kZSIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQiLCJMaW5rRWRpdG9yIiwiYW5jaG9yRWxlbSIsImVkaXRvciIsImVkaXRvclJlZiIsImxpbmtVcmwiLCJzZXRMaW5rVXJsIiwibGlua0xhYmVsIiwic2V0TGlua0xhYmVsIiwidXVpZCIsImNvbmZpZyIsImkxOG4iLCJ0Iiwic3RhdGVEYXRhIiwic2V0U3RhdGVEYXRhIiwiY2xvc2VNb2RhbCIsInRvZ2dsZU1vZGFsIiwiZWRpdERlcHRoIiwiaXNMaW5rIiwic2V0SXNMaW5rIiwiaXNBdXRvTGluayIsInNldElzQXV0b0xpbmsiLCJkcmF3ZXJTbHVnIiwic2x1ZyIsImRlcHRoIiwidXBkYXRlTGlua0VkaXRvciIsInNlbGVjdGlvbiIsInNlbGVjdGVkTm9kZURvbVJlY3QiLCJub2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwiZ2V0S2V5IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGlua1BhcmVudCIsImRhdGEiLCJmaWVsZHMiLCJkb2MiLCJ1bmRlZmluZWQiLCJsaW5rVHlwZSIsIm5ld1RhYiIsInVybCIsImdldEZpZWxkcyIsInRleHQiLCJnZXRUZXh0Q29udGVudCIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsInJlbGF0ZWRGaWVsZCIsImNvbGxlY3Rpb25zIiwiZmluZCIsImNvbGwiLCJsYWJlbCIsImxhYmVscyIsInNpbmd1bGFyIiwicmVwbGFjZSIsImVkaXRvckVsZW0iLCJjdXJyZW50IiwibmF0aXZlU2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwiYWN0aXZlRWxlbWVudCIsImRvY3VtZW50Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsImNvbnRhaW5zIiwiYW5jaG9yTm9kZSIsImdldFJhbmdlQXQiLCJ5IiwiY2xhc3NOYW1lIiwicmVnaXN0ZXJDb21tYW5kIiwicGF5bG9hZCIsImRpc3BhdGNoQ29tbWFuZCIsInN0eWxlIiwib3BhY2l0eSIsInRyYW5zZm9ybSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJ1cGRhdGUiLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJlZGl0b3JTdGF0ZSIsIkZyYWdtZW50IiwiZGl2IiwicmVmIiwiYSIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJsZW5ndGgiLCJpc0VkaXRhYmxlIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YWJJbmRleCIsInR5cGUiLCJoYW5kbGVNb2RhbFN1Ym1pdCIsIm5ld0xpbmtQYXlsb2FkIiwicGFyZW50IiwiZ2V0UGFyZW50IiwibGlua05vZGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBSUEsU0FBU0EsUUFBUSxRQUFRLHFCQUFvQjtBQUM3QyxTQUFTQyx5QkFBeUIsUUFBUSx3Q0FBdUM7QUFDakYsU0FBU0MsbUJBQW1CLEVBQUVDLGFBQWEsUUFBUSxpQkFBZ0I7QUFDbkUsU0FBU0MsY0FBYyxRQUFRLDJCQUEwQjtBQUN6RCxTQUFTQyxnQkFBZ0IsRUFBRUMsU0FBUyxFQUFFQyxZQUFZLEVBQUVDLGNBQWMsUUFBUSxpQkFBZ0I7QUFDMUYsU0FDRUMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLHdCQUF3QixRQUNuQixVQUFTO0FBQ2hCLE9BQU9DLFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxRQUFPO0FBS3ZFLFNBQVNDLHNCQUFzQixRQUFRLDREQUEyRDtBQUNsRyxTQUFTQyxlQUFlLFFBQVEsK0NBQThDO0FBQzlFLFNBQVNDLG9DQUFvQyxRQUFRLG9FQUFtRTtBQUN4SCxTQUFTQyxVQUFVLFFBQVEsa0JBQWlCO0FBQzVDLFNBQVNDLGVBQWUsUUFBUSw4QkFBNkI7QUFDN0QsU0FBU0MsZUFBZSxRQUFRLDBCQUF5QjtBQUN6RCxTQUFTQyxXQUFXLEVBQUVDLG1CQUFtQixRQUFRLDBCQUF5QjtBQUMxRSxTQUFTQyw4QkFBOEIsUUFBUSxhQUFZO0FBRTNELE9BQU8sU0FBU0MsV0FBVyxFQUFFQyxVQUFVLEVBQStCO0lBQ3BFLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHOUI7SUFFakIsTUFBTStCLFlBQVlkLE9BQThCO0lBQ2hELE1BQU0sQ0FBQ2UsU0FB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
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBGb3JtU3RhdGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dC5qcydcbmltcG9ydCB7ICRmaW5kTWF0Y2hpbmdQYXJlbnQsIG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZywgdXNlQ29uZmlnLCB1c2VFZGl0RGVwdGgsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9ISUdILFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IExpbmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUuanMnXG5pbXBvcnQgdHlwZSB7IExpbmtQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMuanMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL2NvbmZpZy9jbGllbnQvRWRpdG9yQ29uZmlnUHJvdmlkZXIuanMnXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZS5qcydcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yLmpzJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlci9pbmRleC5qcydcbmltcG9ydCB7ICRpc0F1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZS5qcydcbmltcG9ydCB7ICRjcmVhdGVMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlLmpzJ1xuaW1wb3J0IHsgJGlzTGlua05vZGUsIFRPR0dMRV9MSU5LX0NPTU1BTkQgfSBmcm9tICcuLi8uLi8uLi9ub2Rlcy9MaW5rTm9kZS5qcydcbmltcG9ydCB7IFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCB9IGZyb20gJy4vY29tbWFuZHMuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rRWRpdG9yKHsgYW5jaG9yRWxlbSB9OiB7IGFuY2hvckVsZW06IEhUTUxFbGVtZW50IH0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsaW5rVXJsLCBzZXRMaW5rVXJsXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbGlua0xhYmVsLCBzZXRMaW5rTGFiZWxdID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IFtzdGF0ZURhdGEsIHNldFN0YXRlRGF0YV0gPSB1c2VTdGF0ZTxMaW5rUGF5bG9hZD4obnVsbClcblxuICBjb25zdCB7IGNsb3NlTW9kYWwsIHRvZ2dsZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IGVkaXREZXB0aCA9IHVzZUVkaXREZXB0aCgpXG4gIGNvbnN0IFtpc0xpbmssIHNldElzTGlua10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzQXV0b0xpbmssIHNldElzQXV0b0xpbmtdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgZHJhd2VyU2x1ZyA9IGZvcm1hdERyYXdlclNsdWcoe1xuICAgIHNsdWc6IGBsZXhpY2FsLXJpY2gtdGV4dC1saW5rLWAgKyB1dWlkLFxuICAgIGRlcHRoOiBlZGl0RGVwdGgsXG4gIH0pXG5cbiAgY29uc3QgdXBkYXRlTGlua0VkaXRvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBsZXQgc2VsZWN0ZWROb2RlRG9tUmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZCA9IG51bGxcblxuICAgIC8vIEhhbmRsZSB0aGUgZGF0YSBkaXNwbGF5ZWQgaW4gdGhlIGZsb2F0aW5nIGxpbmsgZWRpdG9yICYgZHJhd2VyIHdoZW4geW91IGNsaWNrIG9uIGEgbGluayBub2RlXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBnZXRTZWxlY3RlZE5vZGUoc2VsZWN0aW9uKVxuICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdCA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkobm9kZS5nZXRLZXkoKSk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBsaW5rUGFyZW50OiBMaW5rTm9kZSA9ICRmaW5kTWF0Y2hpbmdQYXJlbnQobm9kZSwgJGlzTGlua05vZGUpXG4gICAgICBpZiAobGlua1BhcmVudCA9PSBudWxsKSB7XG4gICAgICAgIHNldElzTGluayhmYWxzZSlcbiAgICAgICAgc2V0SXNBdXRvTGluayhmYWxzZSlcbiAgICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSW5pdGlhbCBzdGF0ZTpcbiAgICAgIGNvbnN0IGRhdGE6IExpbmtQYXlsb2FkID0ge1xuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICBkb2M6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsaW5rVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG5ld1RhYjogdW5kZWZpbmVkLFxuICAgICAgICAgIHVybDogJycsXG4gICAgICAgICAgLi4ubGlua1BhcmVudC5nZXRGaWVsZHMoKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGV4dDogbGlua1BhcmVudC5nZXRUZXh0Q29udGVudCgpLFxuICAgICAgfVxuXG4gICAgICBpZiAobGlua1BhcmVudC5nZXRGaWVsZHMoKT8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICAgIHNldExpbmtVcmwobGlua1BhcmVudC5nZXRGaWVsZHMoKT8udXJsID8/ICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpbnRlcm5hbCBsaW5rXG4gICAgICAgIHNldExpbmtVcmwoXG4gICAgICAgICAgYC9hZG1pbi9jb2xsZWN0aW9ucy8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25Ub30vJHtcbiAgICAgICAgICAgIGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8udmFsdWVcbiAgICAgICAgICB9YCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IGNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgIChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25UbyxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBsYWJlbCA9IHQoJ2ZpZWxkczpsaW5rZWRUbycsIHtcbiAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24ocmVsYXRlZEZpZWxkLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICAgIH0pLnJlcGxhY2UoLzxbXj5dKj4/L2csICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwobGFiZWwpXG4gICAgICB9XG5cbiAgICAgIHNldFN0YXRlRGF0YShkYXRhKVxuICAgICAgc2V0SXNMaW5rKHRydWUpXG4gICAgICBpZiAoJGlzQXV0b0xpbmtOb2RlKGxpbmtQYXJlbnQpKSB7XG4gICAgICAgIHNldElzQXV0b0xpbmsodHJ1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldElzQXV0b0xpbmsoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdG9yRWxlbSA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgY29uc3QgbmF0aXZlU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudFxuXG4gICAgaWYgKGVkaXRvckVsZW0gPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgbmF0aXZlU2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICByb290RWxlbWVudCAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQuY29udGFpbnMobmF0aXZlU2VsZWN0aW9uLmFuY2hvck5vZGUpXG4gICAgKSB7XG4gICAgICBpZiAoIXNlbGVjdGVkTm9kZURvbVJlY3QpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBET00gcmVjdCBvZiB0aGUgc2VsZWN0ZWQgbm9kZSB1c2luZyB0aGUgbmF0aXZlIHNlbGVjdGlvbi4gVGhpcyBzb21ldGltZXMgcHJvZHVjZXMgdGhlIHdyb25nXG4gICAgICAgIC8vIHJlc3VsdCwgd2hpY2ggaXMgd2h5IHdlIHVzZSBsZXhpY2FsJ3Mgc2VsZWN0aW9uIHByZWZlcmFibHkuXG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QgPSBuYXRpdmVTZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0ZWROb2RlRG9tUmVjdCAhPSBudWxsKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QueSArPSA0MFxuICAgICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3Ioc2VsZWN0ZWROb2RlRG9tUmVjdCwgZWRpdG9yRWxlbSwgYW5jaG9yRWxlbSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUVsZW1lbnQgPT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50LmNsYXNzTmFtZSAhPT0gJ2xpbmstaW5wdXQnKSB7XG4gICAgICBpZiAocm9vdEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKG51bGwsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgICBzZXRMaW5rVXJsKCcnKVxuICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0sIFthbmNob3JFbGVtLCBlZGl0b3IsIGNvbmZpZywgdCwgaTE4bl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCB0b2dnbGVNb2RhbCwgZHJhd2VyU2x1Z10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTGluayAmJiBlZGl0b3JSZWYpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoLTEwMDAwcHgsIC0xMDAwMHB4KSdcbiAgICB9XG4gIH0sIFtpc0xpbmtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgICBjb25zdCB1cGRhdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgc2Nyb2xsZXJFbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAhPSBudWxsKSB7XG4gICAgICAgIHNjcm9sbGVyRWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50LCBlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoeyBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGVkaXRvclN0YXRlLnJlYWQoKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgIH0pXG4gICAgICB9KSxcblxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRVNDQVBFX0NPTU1BTkQsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNMaW5rKSB7XG4gICAgICAgICAgICBzZXRJc0xpbmsoZmFsc2UpXG4gICAgICAgICAgICBzZXRJc0F1dG9MaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICB7ZWRpdG9yLmlzRWRpdGFibGUoKSAmJiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLWVkaXRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgeyFpc0F1dG9MaW5rICYmIChcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIGxpbmtcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluay10cmFzaFwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbnVsbClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8TGlua0RyYXdlclxuICAgICAgICBkcmF3ZXJTbHVnPXtkcmF3ZXJTbHVnfVxuICAgICAgICBoYW5kbGVNb2RhbFN1Ym1pdD17KGZpZWxkczogRm9ybVN0YXRlLCBkYXRhOiBEYXRhKSA9PiB7XG4gICAgICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuXG4gICAgICAgICAgY29uc3QgbmV3TGlua1BheWxvYWQ6IExpbmtQYXlsb2FkID0gZGF0YSBhcyBMaW5rUGF5bG9hZFxuXG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svbGV4aWNhbC9wdWxsLzU1MzYuIFRoaXMgdXBkYXRlcyBhdXRvbGluayBub2RlcyB0byBsaW5rIG5vZGVzIHdoZW5ldmVyIGEgY2hhbmdlIHdhcyBtYWRlICh3aGljaCBpcyBnb29kISkuXG4gICAgICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pLmdldFBhcmVudCgpXG4gICAgICAgICAgICAgIGlmICgkaXNBdXRvTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUxpbmtOb2RlKHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogbmV3TGlua1BheWxvYWQuZmllbGRzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcGFyZW50LnJlcGxhY2UobGlua05vZGUsIHRydWUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8gTmVlZHMgdG8gaGFwcGVuIEFGVEVSIGEgcG90ZW50aWFsIGF1dG8gbGluayA9PiBsaW5rIG5vZGUgY29udmVyc2lvbiwgYXMgb3RoZXJ3aXNlLCB0aGUgdXBkYXRlZCB0ZXh0IHRvIGRpc3BsYXkgbWF5IGJlIGxvc3QgZHVlIHRvXG4gICAgICAgICAgLy8gaXQgYmVpbmcgYXBwbGllZCB0byB0aGUgYXV0byBsaW5rIG5vZGUgaW5zdGVhZCBvZiB0aGUgbGluayBub2RlLlxuICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbmV3TGlua1BheWxvYWQpXG4gICAgICAgIH19XG4gICAgICAgIHN0YXRlRGF0YT17c3RhdGVEYXRhfVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlTW9kYWwiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiJGZpbmRNYXRjaGluZ1BhcmVudCIsIm1lcmdlUmVnaXN0ZXIiLCJnZXRUcmFuc2xhdGlvbiIsImZvcm1hdERyYXdlclNsdWciLCJ1c2VDb25maWciLCJ1c2VFZGl0RGVwdGgiLCJ1c2VUcmFuc2xhdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCIkaXNSYW5nZVNlbGVjdGlvbiIsIkNPTU1BTkRfUFJJT1JJVFlfSElHSCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5EIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImdldFNlbGVjdGVkTm9kZSIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciIsIkxpbmtEcmF3ZXIiLCIkaXNBdXRvTGlua05vZGUiLCIkY3JlYXRlTGlua05vZGUiLCIkaXNMaW5rTm9kZSIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQiLCJMaW5rRWRpdG9yIiwiYW5jaG9yRWxlbSIsImVkaXRvciIsImVkaXRvclJlZiIsImxpbmtVcmwiLCJzZXRMaW5rVXJsIiwibGlua0xhYmVsIiwic2V0TGlua0xhYmVsIiwidXVpZCIsImNvbmZpZyIsImkxOG4iLCJ0Iiwic3RhdGVEYXRhIiwic2V0U3RhdGVEYXRhIiwiY2xvc2VNb2RhbCIsInRvZ2dsZU1vZGFsIiwiZWRpdERlcHRoIiwiaXNMaW5rIiwic2V0SXNMaW5rIiwiaXNBdXRvTGluayIsInNldElzQXV0b0xpbmsiLCJkcmF3ZXJTbHVnIiwic2x1ZyIsImRlcHRoIiwidXBkYXRlTGlua0VkaXRvciIsInNlbGVjdGlvbiIsInNlbGVjdGVkTm9kZURvbVJlY3QiLCJub2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwiZ2V0S2V5IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGlua1BhcmVudCIsImRhdGEiLCJmaWVsZHMiLCJkb2MiLCJ1bmRlZmluZWQiLCJsaW5rVHlwZSIsIm5ld1RhYiIsInVybCIsImdldEZpZWxkcyIsInRleHQiLCJnZXRUZXh0Q29udGVudCIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsInJlbGF0ZWRGaWVsZCIsImNvbGxlY3Rpb25zIiwiZmluZCIsImNvbGwiLCJsYWJlbCIsImxhYmVscyIsInNpbmd1bGFyIiwicmVwbGFjZSIsImVkaXRvckVsZW0iLCJjdXJyZW50IiwibmF0aXZlU2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwiYWN0aXZlRWxlbWVudCIsImRvY3VtZW50Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsImNvbnRhaW5zIiwiYW5jaG9yTm9kZSIsImdldFJhbmdlQXQiLCJ5IiwiY2xhc3NOYW1lIiwicmVnaXN0ZXJDb21tYW5kIiwicGF5bG9hZCIsImRpc3BhdGNoQ29tbWFuZCIsInN0eWxlIiwib3BhY2l0eSIsInRyYW5zZm9ybSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJ1cGRhdGUiLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJlZGl0b3JTdGF0ZSIsIkZyYWdtZW50IiwiZGl2IiwicmVmIiwiYSIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJsZW5ndGgiLCJpc0VkaXRhYmxlIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YWJJbmRleCIsInR5cGUiLCJoYW5kbGVNb2RhbFN1Ym1pdCIsIm5ld0xpbmtQYXlsb2FkIiwicGFyZW50IiwiZ2V0UGFyZW50IiwibGlua05vZGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBSUEsU0FBU0EsUUFBUSxRQUFRLHFCQUFvQjtBQUM3QyxTQUFTQyx5QkFBeUIsUUFBUSwyQ0FBMEM7QUFDcEYsU0FBU0MsbUJBQW1CLEVBQUVDLGFBQWEsUUFBUSxpQkFBZ0I7QUFDbkUsU0FBU0MsY0FBYyxRQUFRLDJCQUEwQjtBQUN6RCxTQUFTQyxnQkFBZ0IsRUFBRUMsU0FBUyxFQUFFQyxZQUFZLEVBQUVDLGNBQWMsUUFBUSxpQkFBZ0I7QUFDMUYsU0FDRUMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLHdCQUF3QixRQUNuQixVQUFTO0FBQ2hCLE9BQU9DLFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxRQUFPO0FBS3ZFLFNBQVNDLHNCQUFzQixRQUFRLCtEQUE4RDtBQUNyRyxTQUFTQyxlQUFlLFFBQVEsa0RBQWlEO0FBQ2pGLFNBQVNDLG9DQUFvQyxRQUFRLHVFQUFzRTtBQUMzSCxTQUFTQyxVQUFVLFFBQVEsMkJBQTBCO0FBQ3JELFNBQVNDLGVBQWUsUUFBUSxpQ0FBZ0M7QUFDaEUsU0FBU0MsZUFBZSxRQUFRLDZCQUE0QjtBQUM1RCxTQUFTQyxXQUFXLEVBQUVDLG1CQUFtQixRQUFRLDZCQUE0QjtBQUM3RSxTQUFTQyw4QkFBOEIsUUFBUSxnQkFBZTtBQUU5RCxPQUFPLFNBQVNDLFdBQVcsRUFBRUMsVUFBVSxFQUErQjtJQUNwRSxNQUFNLENBQUNDLE9BQU8sR0FBRzlCO0lBRWpCLE1BQU0rQixZQUFZZCxPQUE4QjtJQUNoRCxNQUFNLENBQUNlLFNBQVNDLFdBQVcsR0FBR2YsU0FBUztJQUN2QyxNQUFNLENBQUNnQixXQUFXQyxhQUFhLEdBQUdqQixTQUFTO0lBRTNDLE1BQU0sRUFBRWtCLElBQUksRUFBRSxHQUFHakI7SUFFakIsTUFBTWtCLFNBQVNoQztJQUVmLE1BQU0sRUFBRWlDLElBQUksRUFBRUMsQ0FBQyxFQUFFLEdBQUdoQztJQUVwQixNQUFNLENBQUNpQyxXQUFXQyxhQUFhLEdBQUd2QixTQUFzQjtJQUV4RCxNQUFNLEVBQUV3QixVQUFVLEVBQUVDLFdBQVcsRUFBRSxHQUFHNUM7SUFDcEMsTUFBTTZDLFlBQVl0QztJQUNsQixNQUFNLENBQUN1QyxRQUFRQyxVQUFVLEdBQUc1QixTQUFTO0lBQ3JDLE1BQU0sQ0FBQzZCLFlBQVlDLGNBQWMsR0FBRzlCLFNBQVM7SUFFN0MsTUFBTStCLGFBQWE3QyxpQkFBaUI7UUFDbEM4QyxNQUFNLENBQUMsdUJBQXVCLENBQUMsR0FBR2Q7UUFDbENlLE9BQU9QO0lBQ1Q7SUFFQSxNQUFNUSxtQkFBbUJyQyxZQUFZO1FBQ25DLE1BQU1zQyxZQUFZN0M7UUFDbEIsSUFBSThDLHNCQUEyQztRQUUvQywrRkFBK0Y7UUFDL0YsSUFBSTdDLGtCQUFrQjRDLFlBQVk7WUFDaEMsTUFBTUUsT0FBT25DLGdCQUFnQmlDO1lBQzdCQyxzQkFBc0J4QixPQUFPMEIsZUFBZSxDQUFDRCxLQUFLRSxNQUFNLEtBQUtDO1lBQzdELE1BQU1DLGFBQXVCMUQsb0JBQW9Cc0QsTUFBTTlCO1lBQ3ZELElBQUlrQyxjQUFjLE1BQU07Z0JBQ3RCYixVQUFVO2dCQUNWRSxjQUFjO2dCQUNkZixXQUFXO2dCQUNYRSxhQUFhO2dCQUNiO1lBQ0Y7WUFFQSxpQkFBaUI7WUFDakIsTUFBTXlCLE9BQW9CO2dCQUN4QkMsUUFBUTtvQkFDTkMsS0FBS0M7b0JBQ0xDLFVBQVVEO29CQUNWRSxRQUFRRjtvQkFDUkcsS0FBSztvQkFDTCxHQUFHUCxXQUFXUSxTQUFTLEVBQUU7Z0JBQzNCO2dCQUNBQyxNQUFNVCxXQUFXVSxjQUFjO1lBQ2pDO1lBRUEsSUFBSVYsV0FBV1EsU0FBUyxJQUFJSCxhQUFhLFVBQVU7Z0JBQ2pEL0IsV0FBVzBCLFdBQVdRLFNBQVMsSUFBSUQsT0FBTztnQkFDMUMvQixhQUFhO1lBQ2YsT0FBTztnQkFDTCxnQkFBZ0I7Z0JBQ2hCRixXQUNFLENBQUMsbUJBQW1CLEVBQUUwQixXQUFXUSxTQUFTLElBQUlMLEtBQUtRLFdBQVcsQ0FBQyxFQUM3RFgsV0FBV1EsU0FBUyxJQUFJTCxLQUFLUyxNQUM5QixDQUFDO2dCQUdKLE1BQU1DLGVBQWVuQyxPQUFPb0MsV0FBVyxDQUFDQyxJQUFJLENBQzFDLENBQUNDLE9BQVNBLEtBQUt6QixJQUFJLEtBQUtTLFdBQVdRLFNBQVMsSUFBSUwsS0FBS1E7Z0JBRXZELE1BQU1NLFFBQVFyQyxFQUFFLG1CQUFtQjtvQkFDakNxQyxPQUFPekUsZUFBZXFFLGFBQWFLLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFeEM7Z0JBQ3RELEdBQUd5QyxPQUFPLENBQUMsYUFBYTtnQkFDeEI1QyxhQUFheUM7WUFDZjtZQUVBbkMsYUFBYW1CO1lBQ2JkLFVBQVU7WUFDVixJQUFJdkIsZ0JBQWdCb0MsYUFBYTtnQkFDL0JYLGNBQWM7WUFDaEIsT0FBTztnQkFDTEEsY0FBYztZQUNoQjtRQUNGO1FBRUEsTUFBTWdDLGFBQWFqRCxVQUFVa0QsT0FBTztRQUNwQyxNQUFNQyxrQkFBa0JDLE9BQU9DLFlBQVk7UUFDM0MsTUFBTSxFQUFFQyxhQUFhLEVBQUUsR0FBR0M7UUFFMUIsSUFBSU4sZUFBZSxNQUFNO1lBQ3ZCO1FBQ0Y7UUFFQSxNQUFNTyxjQUFjekQsT0FBTzBELGNBQWM7UUFFekMsSUFDRW5DLGNBQWMsUUFDZDZCLG9CQUFvQixRQUNwQkssZ0JBQWdCLFFBQ2hCQSxZQUFZRSxRQUFRLENBQUNQLGdCQUFnQlEsVUFBVSxHQUMvQztZQUNBLElBQUksQ0FBQ3BDLHFCQUFxQjtnQkFDeEIsc0dBQXNHO2dCQUN0Ryw4REFBOEQ7Z0JBQzlEQSxzQkFBc0I0QixnQkFBZ0JTLFVBQVUsQ0FBQyxHQUFHakMscUJBQXFCO1lBQzNFO1lBRUEsSUFBSUosdUJBQXVCLE1BQU07Z0JBQy9CQSxvQkFBb0JzQyxDQUFDLElBQUk7Z0JBQ3pCdkUscUNBQXFDaUMscUJBQXFCMEIsWUFBWW5EO1lBQ3hFO1FBQ0YsT0FBTyxJQUFJd0QsaUJBQWlCLFFBQVFBLGNBQWNRLFNBQVMsS0FBSyxjQUFjO1lBQzVFLElBQUlOLGdCQUFnQixNQUFNO2dCQUN4QmxFLHFDQUFxQyxNQUFNMkQsWUFBWW5EO1lBQ3pEO1lBQ0FJLFdBQVc7WUFDWEUsYUFBYTtRQUNmO1FBRUEsT0FBTztJQUNULEdBQUc7UUFBQ047UUFBWUM7UUFBUU87UUFBUUU7UUFBR0Q7S0FBSztJQUV4Q3RCLFVBQVU7UUFDUixPQUFPZCxjQUNMNEIsT0FBT2dFLGVBQWUsQ0FDcEJuRSxnQ0FDQSxDQUFDb0U7WUFDQ2pFLE9BQU9rRSxlQUFlLENBQUN0RSxxQkFBcUJxRTtZQUU1QyxzQkFBc0I7WUFDdEIzQztZQUNBVCxZQUFZTTtZQUVaLE9BQU87UUFDVCxHQUNBdEM7SUFHTixHQUFHO1FBQUNtQjtRQUFRc0I7UUFBa0JUO1FBQWFNO0tBQVc7SUFFdERqQyxVQUFVO1FBQ1IsSUFBSSxDQUFDNkIsVUFBVWQsV0FBVztZQUN4QkEsVUFBVWtELE9BQU8sQ0FBQ2dCLEtBQUssQ0FBQ0MsT0FBTyxHQUFHO1lBQ2xDbkUsVUFBVWtELE9BQU8sQ0FBQ2dCLEtBQUssQ0FBQ0UsU0FBUyxHQUFHO1FBQ3RDO0lBQ0YsR0FBRztRQUFDdEQ7S0FBTztJQUVYN0IsVUFBVTtRQUNSLE1BQU1vRixlQUFldkUsV0FBV3dFLGFBQWE7UUFFN0MsTUFBTUMsU0FBUztZQUNieEUsT0FBT3lFLGNBQWMsR0FBR0MsSUFBSSxDQUFDO2dCQUMzQixLQUFLcEQ7WUFDUDtRQUNGO1FBRUErQixPQUFPc0IsZ0JBQWdCLENBQUMsVUFBVUg7UUFFbEMsSUFBSUYsZ0JBQWdCLE1BQU07WUFDeEJBLGFBQWFLLGdCQUFnQixDQUFDLFVBQVVIO1FBQzFDO1FBRUEsT0FBTztZQUNMbkIsT0FBT3VCLG1CQUFtQixDQUFDLFVBQVVKO1lBRXJDLElBQUlGLGdCQUFnQixNQUFNO2dCQUN4QkEsYUFBYU0sbUJBQW1CLENBQUMsVUFBVUo7WUFDN0M7UUFDRjtJQUNGLEdBQUc7UUFBQ3pFLFdBQVd3RSxhQUFhO1FBQUV2RTtRQUFRc0I7S0FBaUI7SUFFdkRwQyxVQUFVO1FBQ1IsT0FBT2QsY0FDTDRCLE9BQU82RSxzQkFBc0IsQ0FBQyxDQUFDLEVBQUVDLFdBQVcsRUFBRTtZQUM1Q0EsWUFBWUosSUFBSSxDQUFDO2dCQUNmLEtBQUtwRDtZQUNQO1FBQ0YsSUFFQXRCLE9BQU9nRSxlQUFlLENBQ3BCakYsMEJBQ0E7WUFDRSxLQUFLdUM7WUFDTCxPQUFPO1FBQ1QsR0FDQXpDLHVCQUVGbUIsT0FBT2dFLGVBQWUsQ0FDcEJsRixvQkFDQTtZQUNFLElBQUlpQyxRQUFRO2dCQUNWQyxVQUFVO2dCQUNWRSxjQUFjO2dCQUNkLE9BQU87WUFDVDtZQUNBLE9BQU87UUFDVCxHQUNBdEM7SUFHTixHQUFHO1FBQUNvQjtRQUFRc0I7UUFBa0JOO1FBQVdEO0tBQU87SUFFaEQ3QixVQUFVO1FBQ1JjLE9BQU95RSxjQUFjLEdBQUdDLElBQUksQ0FBQztZQUMzQixLQUFLcEQ7UUFDUDtJQUNGLEdBQUc7UUFBQ3RCO1FBQVFzQjtLQUFpQjtJQUU3QixxQkFDRSxvQkFBQ3RDLE1BQU0rRixRQUFRLHNCQUNiLG9CQUFDQztRQUFJakIsV0FBVTtRQUFja0IsS0FBS2hGO3FCQUNoQyxvQkFBQytFO1FBQUlqQixXQUFVO3FCQUNiLG9CQUFDbUI7UUFBRUMsTUFBTWpGO1FBQVNrRixLQUFJO1FBQXNCQyxRQUFPO09BQ2hEakYsYUFBYSxRQUFRQSxVQUFVa0YsTUFBTSxHQUFHLElBQUlsRixZQUFZRixVQUUxREYsT0FBT3VGLFVBQVUsb0JBQ2hCLG9CQUFDdkcsTUFBTStGLFFBQVEsc0JBQ2Isb0JBQUNTO1FBQ0NDLGNBQVc7UUFDWDFCLFdBQVU7UUFDVjJCLFNBQVM7WUFDUDdFLFlBQVlNO1FBQ2Q7UUFDQXdFLGFBQWEsQ0FBQ0M7WUFDWkEsTUFBTUMsY0FBYztRQUN0QjtRQUNBQyxVQUFVO1FBQ1ZDLE1BQUs7UUFFTixDQUFDOUUsNEJBQ0Esb0JBQUN1RTtRQUNDQyxjQUFXO1FBQ1gxQixXQUFVO1FBQ1YyQixTQUFTO1lBQ1AxRixPQUFPa0UsZUFBZSxDQUFDdEUscUJBQXFCO1FBQzlDO1FBQ0ErRixhQUFhLENBQUNDO1lBQ1pBLE1BQU1DLGNBQWM7UUFDdEI7UUFDQUMsVUFBVTtRQUNWQyxNQUFLO3lCQU9qQixvQkFBQ3ZHO1FBQ0MyQixZQUFZQTtRQUNaNkUsbUJBQW1CLENBQUNqRSxRQUFtQkQ7WUFDckNsQixXQUFXTztZQUVYLE1BQU04RSxpQkFBOEJuRTtZQUVwQyw2SUFBNkk7WUFDN0k5QixPQUFPd0UsTUFBTSxDQUFDO2dCQUNaLE1BQU1qRCxZQUFZN0M7Z0JBQ2xCLElBQUlDLGtCQUFrQjRDLFlBQVk7b0JBQ2hDLE1BQU0yRSxTQUFTNUcsZ0JBQWdCaUMsV0FBVzRFLFNBQVM7b0JBQ25ELElBQUkxRyxnQkFBZ0J5RyxTQUFTO3dCQUMzQixNQUFNRSxXQUFXMUcsZ0JBQWdCOzRCQUMvQnFDLFFBQVFrRSxlQUFlbEUsTUFBTTt3QkFDL0I7d0JBQ0FtRSxPQUFPakQsT0FBTyxDQUFDbUQsVUFBVTtvQkFDM0I7Z0JBQ0Y7WUFDRjtZQUVBLG9JQUFvSTtZQUNwSSxtRUFBbUU7WUFDbkVwRyxPQUFPa0UsZUFBZSxDQUFDdEUscUJBQXFCcUc7UUFDOUM7UUFDQXZGLFdBQVdBOztBQUluQiJ9
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { createPortal } from 'react-dom';
|
|
4
|
-
import { LinkEditor } from './LinkEditor';
|
|
4
|
+
import { LinkEditor } from './LinkEditor/index.js';
|
|
5
5
|
import './index.scss';
|
|
6
6
|
export const FloatingLinkEditorPlugin = (props)=>{
|
|
7
7
|
const { anchorElem = document.body } = props;
|
|
@@ -10,4 +10,4 @@ export const FloatingLinkEditorPlugin = (props)=>{
|
|
|
10
10
|
}), anchorElem);
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgeyBMaW5rRWRpdG9yIH0gZnJvbSAnLi9MaW5rRWRpdG9yL2luZGV4LmpzJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmV4cG9ydCBjb25zdCBGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW46IFJlYWN0LkZDPHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbn0+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHkgfSA9IHByb3BzXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCg8TGlua0VkaXRvciBhbmNob3JFbGVtPXthbmNob3JFbGVtfSAvPiwgYW5jaG9yRWxlbSlcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVBvcnRhbCIsIkxpbmtFZGl0b3IiLCJGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4iLCJwcm9wcyIsImFuY2hvckVsZW0iLCJkb2N1bWVudCIsImJvZHkiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsWUFBWUEsV0FBVyxRQUFPO0FBQzlCLFNBQVNDLFlBQVksUUFBUSxZQUFXO0FBRXhDLFNBQVNDLFVBQVUsUUFBUSx3QkFBdUI7QUFDbEQsT0FBTyxlQUFjO0FBRXJCLE9BQU8sTUFBTUMsMkJBRVIsQ0FBQ0M7SUFDSixNQUFNLEVBQUVDLGFBQWFDLFNBQVNDLElBQUksRUFBRSxHQUFHSDtJQUV2QyxxQkFBT0gsMkJBQWEsb0JBQUNDO1FBQVdHLFlBQVlBO1FBQWdCQTtBQUM5RCxFQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/link/plugins/floatingLinkEditor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/link/plugins/floatingLinkEditor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,UAAU,CAAA;IAClB;;OAEG;IACH,IAAI,EAAE,IAAI,GAAG,MAAM,CAAA;CACpB,CAAA"}
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND
|
|
4
4
|
*/ export { };
|
|
5
5
|
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGlua0ZpZWxkcyB9IGZyb20gJy4uLy4uL25vZGVzL3R5cGVzLmpzJ1xuXG4vKipcbiAqIFRoZSBwYXlsb2FkIG9mIGEgbGluayBub2RlXG4gKiBUaGlzIGNhbiBiZSBkZWxpdmVyZWQgZnJvbSB0aGUgbGluayBub2RlIHRvIHRoZSBkcmF3ZXIsIG9yIGZyb20gdGhlIGRyYXdlci9hbnl0aGluZyB0byB0aGUgVE9HR0xFX0xJTktfQ09NTUFORFxuICovXG5leHBvcnQgdHlwZSBMaW5rUGF5bG9hZCA9IHtcbiAgZmllbGRzOiBMaW5rRmllbGRzXG4gIC8qKlxuICAgKiBUaGUgdGV4dCBjb250ZW50IG9mIHRoZSBsaW5rIG5vZGUgLSB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJhd2VyXG4gICAqL1xuICB0ZXh0OiBudWxsIHwgc3RyaW5nXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztDQUdDLEdBQ0QsV0FNQyJ9
|