@payloadcms/richtext-lexical 3.0.0-alpha.40 → 3.0.0-alpha.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.js +1 -1
- package/dist/cell/index.js +1 -1
- package/dist/cell/index.js.map +1 -0
- package/dist/exports/components.js +1 -1
- package/dist/exports/components.js.map +1 -0
- package/dist/field/Field.js +1 -1
- package/dist/field/Field.js.map +1 -0
- package/dist/field/features/align/feature.client.js +1 -1
- package/dist/field/features/align/feature.client.js.map +1 -0
- package/dist/field/features/align/feature.server.js +1 -1
- package/dist/field/features/align/feature.server.js.map +1 -0
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +1 -1
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js.map +1 -0
- package/dist/field/features/blockquote/feature.client.js +1 -1
- package/dist/field/features/blockquote/feature.client.js.map +1 -0
- package/dist/field/features/blockquote/feature.server.js +1 -1
- package/dist/field/features/blockquote/feature.server.js.map +1 -0
- package/dist/field/features/blockquote/markdownTransformer.js +1 -1
- package/dist/field/features/blockquote/markdownTransformer.js.map +1 -0
- package/dist/field/features/blocks/component/BlockContent.js +1 -1
- package/dist/field/features/blocks/component/BlockContent.js.map +1 -0
- package/dist/field/features/blocks/component/FormSavePlugin.js +1 -1
- package/dist/field/features/blocks/component/FormSavePlugin.js.map +1 -0
- package/dist/field/features/blocks/component/index.js +1 -1
- package/dist/field/features/blocks/component/index.js.map +1 -0
- package/dist/field/features/blocks/drawer/index.js +1 -1
- package/dist/field/features/blocks/drawer/index.js.map +1 -0
- package/dist/field/features/blocks/feature.client.js +1 -1
- package/dist/field/features/blocks/feature.client.js.map +1 -0
- package/dist/field/features/blocks/feature.server.js +1 -1
- package/dist/field/features/blocks/feature.server.js.map +1 -0
- package/dist/field/features/blocks/nodes/BlocksNode.js +1 -1
- package/dist/field/features/blocks/nodes/BlocksNode.js.map +1 -0
- package/dist/field/features/blocks/plugin/commands.js +1 -1
- package/dist/field/features/blocks/plugin/commands.js.map +1 -0
- package/dist/field/features/blocks/plugin/index.js +1 -1
- package/dist/field/features/blocks/plugin/index.js.map +1 -0
- package/dist/field/features/blocks/populationPromise.js +1 -1
- package/dist/field/features/blocks/populationPromise.js.map +1 -0
- package/dist/field/features/blocks/validate.js +1 -1
- package/dist/field/features/blocks/validate.js.map +1 -0
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +1 -1
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js.map +1 -0
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +1 -1
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js.map +1 -0
- package/dist/field/features/converters/html/converter/converters/linebreak.js +1 -1
- package/dist/field/features/converters/html/converter/converters/linebreak.js.map +1 -0
- package/dist/field/features/converters/html/converter/converters/paragraph.js +1 -1
- package/dist/field/features/converters/html/converter/converters/paragraph.js.map +1 -0
- package/dist/field/features/converters/html/converter/converters/text.js +1 -1
- package/dist/field/features/converters/html/converter/converters/text.js.map +1 -0
- package/dist/field/features/converters/html/converter/defaultConverters.js +1 -1
- package/dist/field/features/converters/html/converter/defaultConverters.js.map +1 -0
- package/dist/field/features/converters/html/converter/index.js +1 -1
- package/dist/field/features/converters/html/converter/index.js.map +1 -0
- package/dist/field/features/converters/html/converter/types.js +1 -1
- package/dist/field/features/converters/html/converter/types.js.map +1 -0
- package/dist/field/features/converters/html/feature.server.js +1 -1
- package/dist/field/features/converters/html/feature.server.js.map +1 -0
- package/dist/field/features/converters/html/field/index.js +1 -1
- package/dist/field/features/converters/html/field/index.js.map +1 -0
- package/dist/field/features/createClientComponent.js +1 -1
- package/dist/field/features/createClientComponent.js.map +1 -0
- package/dist/field/features/createFeaturePropComponent.js +1 -1
- package/dist/field/features/createFeaturePropComponent.js.map +1 -0
- package/dist/field/features/debug/testrecorder/feature.client.js +1 -1
- package/dist/field/features/debug/testrecorder/feature.client.js.map +1 -0
- package/dist/field/features/debug/testrecorder/feature.server.js +1 -1
- package/dist/field/features/debug/testrecorder/feature.server.js.map +1 -0
- package/dist/field/features/debug/testrecorder/plugin/index.js +1 -1
- package/dist/field/features/debug/testrecorder/plugin/index.js.map +1 -0
- package/dist/field/features/debug/treeview/feature.client.js +1 -1
- package/dist/field/features/debug/treeview/feature.client.js.map +1 -0
- package/dist/field/features/debug/treeview/feature.server.js +1 -1
- package/dist/field/features/debug/treeview/feature.server.js.map +1 -0
- package/dist/field/features/debug/treeview/plugin/index.js +1 -1
- package/dist/field/features/debug/treeview/plugin/index.js.map +1 -0
- package/dist/field/features/format/bold/feature.client.js +1 -1
- package/dist/field/features/format/bold/feature.client.js.map +1 -0
- package/dist/field/features/format/bold/feature.server.js +1 -1
- package/dist/field/features/format/bold/feature.server.js.map +1 -0
- package/dist/field/features/format/bold/markdownTransformers.js +1 -1
- package/dist/field/features/format/bold/markdownTransformers.js.map +1 -0
- package/dist/field/features/format/common/floatingSelectToolbarSection.js +1 -1
- package/dist/field/features/format/common/floatingSelectToolbarSection.js.map +1 -0
- package/dist/field/features/format/inlinecode/feature.client.js +1 -1
- package/dist/field/features/format/inlinecode/feature.client.js.map +1 -0
- package/dist/field/features/format/inlinecode/feature.server.js +1 -1
- package/dist/field/features/format/inlinecode/feature.server.js.map +1 -0
- package/dist/field/features/format/inlinecode/markdownTransformers.js +1 -1
- package/dist/field/features/format/inlinecode/markdownTransformers.js.map +1 -0
- package/dist/field/features/format/italic/feature.client.js +1 -1
- package/dist/field/features/format/italic/feature.client.js.map +1 -0
- package/dist/field/features/format/italic/feature.server.js +1 -1
- package/dist/field/features/format/italic/feature.server.js.map +1 -0
- package/dist/field/features/format/italic/markdownTransformers.js +1 -1
- package/dist/field/features/format/italic/markdownTransformers.js.map +1 -0
- package/dist/field/features/format/strikethrough/feature.client.js +1 -1
- package/dist/field/features/format/strikethrough/feature.client.js.map +1 -0
- package/dist/field/features/format/strikethrough/feature.server.js +1 -1
- package/dist/field/features/format/strikethrough/feature.server.js.map +1 -0
- package/dist/field/features/format/strikethrough/markdownTransformers.js +1 -1
- package/dist/field/features/format/strikethrough/markdownTransformers.js.map +1 -0
- package/dist/field/features/format/subscript/feature.client.js +1 -1
- package/dist/field/features/format/subscript/feature.client.js.map +1 -0
- package/dist/field/features/format/subscript/feature.server.js +1 -1
- package/dist/field/features/format/subscript/feature.server.js.map +1 -0
- package/dist/field/features/format/superscript/feature.client.js +1 -1
- package/dist/field/features/format/superscript/feature.client.js.map +1 -0
- package/dist/field/features/format/superscript/feature.server.js +1 -1
- package/dist/field/features/format/superscript/feature.server.js.map +1 -0
- package/dist/field/features/format/underline/feature.client.js +1 -1
- package/dist/field/features/format/underline/feature.client.js.map +1 -0
- package/dist/field/features/format/underline/feature.server.js +1 -1
- package/dist/field/features/format/underline/feature.server.js.map +1 -0
- package/dist/field/features/heading/feature.client.js +1 -1
- package/dist/field/features/heading/feature.client.js.map +1 -0
- package/dist/field/features/heading/feature.server.js +1 -1
- package/dist/field/features/heading/feature.server.js.map +1 -0
- package/dist/field/features/heading/markdownTransformer.js +1 -1
- package/dist/field/features/heading/markdownTransformer.js.map +1 -0
- package/dist/field/features/indent/feature.client.js +1 -1
- package/dist/field/features/indent/feature.client.js.map +1 -0
- package/dist/field/features/indent/feature.server.js +1 -1
- package/dist/field/features/indent/feature.server.js.map +1 -0
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +1 -1
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js.map +1 -0
- package/dist/field/features/link/drawer/baseFields.js +1 -1
- package/dist/field/features/link/drawer/baseFields.js.map +1 -0
- package/dist/field/features/link/drawer/index.js +1 -1
- package/dist/field/features/link/drawer/index.js.map +1 -0
- package/dist/field/features/link/drawer/types.js +1 -1
- package/dist/field/features/link/drawer/types.js.map +1 -0
- package/dist/field/features/link/feature.client.js +1 -1
- package/dist/field/features/link/feature.client.js.map +1 -0
- package/dist/field/features/link/feature.server.js +1 -1
- package/dist/field/features/link/feature.server.js.map +1 -0
- package/dist/field/features/link/nodes/AutoLinkNode.js +1 -1
- package/dist/field/features/link/nodes/AutoLinkNode.js.map +1 -0
- package/dist/field/features/link/nodes/LinkNode.js +1 -1
- package/dist/field/features/link/nodes/LinkNode.js.map +1 -0
- package/dist/field/features/link/nodes/types.js +1 -1
- package/dist/field/features/link/nodes/types.js.map +1 -0
- package/dist/field/features/link/plugins/autoLink/index.js +1 -1
- package/dist/field/features/link/plugins/autoLink/index.js.map +1 -0
- package/dist/field/features/link/plugins/clickableLink/index.js +1 -1
- package/dist/field/features/link/plugins/clickableLink/index.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/index.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/index.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/types.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/types.js.map +1 -0
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +1 -1
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js.map +1 -0
- package/dist/field/features/link/plugins/link/index.js +1 -1
- package/dist/field/features/link/plugins/link/index.js.map +1 -0
- package/dist/field/features/link/populationPromise.js +1 -1
- package/dist/field/features/link/populationPromise.js.map +1 -0
- package/dist/field/features/lists/checklist/feature.client.js +1 -1
- package/dist/field/features/lists/checklist/feature.client.js.map +1 -0
- package/dist/field/features/lists/checklist/feature.server.js +1 -1
- package/dist/field/features/lists/checklist/feature.server.js.map +1 -0
- package/dist/field/features/lists/checklist/markdownTransformers.js +1 -1
- package/dist/field/features/lists/checklist/markdownTransformers.js.map +1 -0
- package/dist/field/features/lists/checklist/plugin/index.js +1 -1
- package/dist/field/features/lists/checklist/plugin/index.js.map +1 -0
- package/dist/field/features/lists/common/markdown.js +1 -1
- package/dist/field/features/lists/common/markdown.js.map +1 -0
- package/dist/field/features/lists/htmlConverter.js +1 -1
- package/dist/field/features/lists/htmlConverter.js.map +1 -0
- package/dist/field/features/lists/orderedlist/feature.client.js +1 -1
- package/dist/field/features/lists/orderedlist/feature.client.js.map +1 -0
- package/dist/field/features/lists/orderedlist/feature.server.js +1 -1
- package/dist/field/features/lists/orderedlist/feature.server.js.map +1 -0
- package/dist/field/features/lists/orderedlist/markdownTransformer.js +1 -1
- package/dist/field/features/lists/orderedlist/markdownTransformer.js.map +1 -0
- package/dist/field/features/lists/plugin/index.js +1 -1
- package/dist/field/features/lists/plugin/index.js.map +1 -0
- package/dist/field/features/lists/unorderedlist/feature.client.js +1 -1
- package/dist/field/features/lists/unorderedlist/feature.client.js.map +1 -0
- package/dist/field/features/lists/unorderedlist/feature.server.js +1 -1
- package/dist/field/features/lists/unorderedlist/feature.server.js.map +1 -0
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js +1 -1
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -0
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +1 -1
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/index.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/converter/types.js +1 -1
- package/dist/field/features/migrations/slateToLexical/converter/types.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/feature.client.js +1 -1
- package/dist/field/features/migrations/slateToLexical/feature.client.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/feature.server.js +1 -1
- package/dist/field/features/migrations/slateToLexical/feature.server.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +1 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -0
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +1 -1
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -0
- package/dist/field/features/paragraph/feature.client.js +1 -1
- package/dist/field/features/paragraph/feature.client.js.map +1 -0
- package/dist/field/features/paragraph/feature.server.js +1 -1
- package/dist/field/features/paragraph/feature.server.js.map +1 -0
- package/dist/field/features/relationship/drawer/commands.js +1 -1
- package/dist/field/features/relationship/drawer/commands.js.map +1 -0
- package/dist/field/features/relationship/drawer/index.js +1 -1
- package/dist/field/features/relationship/drawer/index.js.map +1 -0
- package/dist/field/features/relationship/feature.client.js +1 -1
- package/dist/field/features/relationship/feature.client.js.map +1 -0
- package/dist/field/features/relationship/feature.server.js +1 -1
- package/dist/field/features/relationship/feature.server.js.map +1 -0
- package/dist/field/features/relationship/nodes/RelationshipNode.js +1 -1
- package/dist/field/features/relationship/nodes/RelationshipNode.js.map +1 -0
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +1 -1
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js.map +1 -0
- package/dist/field/features/relationship/plugins/index.js +1 -1
- package/dist/field/features/relationship/plugins/index.js.map +1 -0
- package/dist/field/features/relationship/populationPromise.js +1 -1
- package/dist/field/features/relationship/populationPromise.js.map +1 -0
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +1 -1
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js.map +1 -0
- package/dist/field/features/types.js +1 -1
- package/dist/field/features/types.js.map +1 -0
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +1 -1
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js.map +1 -0
- package/dist/field/features/upload/component/index.js +1 -1
- package/dist/field/features/upload/component/index.js.map +1 -0
- package/dist/field/features/upload/drawer/commands.js +1 -1
- package/dist/field/features/upload/drawer/commands.js.map +1 -0
- package/dist/field/features/upload/drawer/index.js +1 -1
- package/dist/field/features/upload/drawer/index.js.map +1 -0
- package/dist/field/features/upload/feature.client.js +1 -1
- package/dist/field/features/upload/feature.client.js.map +1 -0
- package/dist/field/features/upload/feature.server.js +1 -1
- package/dist/field/features/upload/feature.server.js.map +1 -0
- package/dist/field/features/upload/nodes/UploadNode.js +1 -1
- package/dist/field/features/upload/nodes/UploadNode.js.map +1 -0
- package/dist/field/features/upload/plugin/index.js +1 -1
- package/dist/field/features/upload/plugin/index.js.map +1 -0
- package/dist/field/features/upload/populationPromise.js +1 -1
- package/dist/field/features/upload/populationPromise.js.map +1 -0
- package/dist/field/features/upload/validate.js +1 -1
- package/dist/field/features/upload/validate.js.map +1 -0
- package/dist/field/index.js +1 -1
- package/dist/field/index.js.map +1 -0
- package/dist/field/lexical/EditorPlugin.js +1 -1
- package/dist/field/lexical/EditorPlugin.js.map +1 -0
- package/dist/field/lexical/LexicalEditor.js +1 -1
- package/dist/field/lexical/LexicalEditor.js.map +1 -0
- package/dist/field/lexical/LexicalProvider.js +1 -1
- package/dist/field/lexical/LexicalProvider.js.map +1 -0
- package/dist/field/lexical/config/client/EditorConfigProvider.js +1 -1
- package/dist/field/lexical/config/client/EditorConfigProvider.js.map +1 -0
- package/dist/field/lexical/config/client/default.js +1 -1
- package/dist/field/lexical/config/client/default.js.map +1 -0
- package/dist/field/lexical/config/client/loader.js +1 -1
- package/dist/field/lexical/config/client/loader.js.map +1 -0
- package/dist/field/lexical/config/client/sanitize.js +1 -1
- package/dist/field/lexical/config/client/sanitize.js.map +1 -0
- package/dist/field/lexical/config/server/default.js +1 -1
- package/dist/field/lexical/config/server/default.js.map +1 -0
- package/dist/field/lexical/config/server/loader.js +1 -1
- package/dist/field/lexical/config/server/loader.js.map +1 -0
- package/dist/field/lexical/config/server/sanitize.js +1 -1
- package/dist/field/lexical/config/server/sanitize.js.map +1 -0
- package/dist/field/lexical/config/types.js +1 -1
- package/dist/field/lexical/config/types.js.map +1 -0
- package/dist/field/lexical/nodes/index.js +1 -1
- package/dist/field/lexical/nodes/index.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js.map +1 -0
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js.map +1 -0
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js +1 -1
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/index.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/index.js.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +1 -1
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -0
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +1 -1
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -0
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +1 -1
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +1 -1
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +1 -1
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +1 -1
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -0
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +1 -1
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -0
- package/dist/field/lexical/theme/EditorTheme.js +1 -1
- package/dist/field/lexical/theme/EditorTheme.js.map +1 -0
- package/dist/field/lexical/ui/ContentEditable.js +1 -1
- package/dist/field/lexical/ui/ContentEditable.js.map +1 -0
- package/dist/field/lexical/ui/icons/AI/index.js +1 -1
- package/dist/field/lexical/ui/icons/AI/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/AlignCenter/index.js +1 -1
- package/dist/field/lexical/ui/icons/AlignCenter/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/AlignJustify/index.js +1 -1
- package/dist/field/lexical/ui/icons/AlignJustify/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/AlignLeft/index.js +1 -1
- package/dist/field/lexical/ui/icons/AlignLeft/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/AlignRight/index.js +1 -1
- package/dist/field/lexical/ui/icons/AlignRight/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Block/index.js +1 -1
- package/dist/field/lexical/ui/icons/Block/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Blockquote/index.js +1 -1
- package/dist/field/lexical/ui/icons/Blockquote/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Bold/index.js +1 -1
- package/dist/field/lexical/ui/icons/Bold/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Checklist/index.js +1 -1
- package/dist/field/lexical/ui/icons/Checklist/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Code/index.js +1 -1
- package/dist/field/lexical/ui/icons/Code/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/CodeBlock/index.js +1 -1
- package/dist/field/lexical/ui/icons/CodeBlock/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H1/index.js +1 -1
- package/dist/field/lexical/ui/icons/H1/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H2/index.js +1 -1
- package/dist/field/lexical/ui/icons/H2/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H3/index.js +1 -1
- package/dist/field/lexical/ui/icons/H3/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H4/index.js +1 -1
- package/dist/field/lexical/ui/icons/H4/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H5/index.js +1 -1
- package/dist/field/lexical/ui/icons/H5/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/H6/index.js +1 -1
- package/dist/field/lexical/ui/icons/H6/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/IndentDecrease/index.js +1 -1
- package/dist/field/lexical/ui/icons/IndentDecrease/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/IndentIncrease/index.js +1 -1
- package/dist/field/lexical/ui/icons/IndentIncrease/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Italic/index.js +1 -1
- package/dist/field/lexical/ui/icons/Italic/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Link/index.js +1 -1
- package/dist/field/lexical/ui/icons/Link/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/OrderedList/index.js +1 -1
- package/dist/field/lexical/ui/icons/OrderedList/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Relationship/index.js +1 -1
- package/dist/field/lexical/ui/icons/Relationship/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Strikethrough/index.js +1 -1
- package/dist/field/lexical/ui/icons/Strikethrough/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Subscript/index.js +1 -1
- package/dist/field/lexical/ui/icons/Subscript/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Superscript/index.js +1 -1
- package/dist/field/lexical/ui/icons/Superscript/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Text/index.js +1 -1
- package/dist/field/lexical/ui/icons/Text/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Underline/index.js +1 -1
- package/dist/field/lexical/ui/icons/Underline/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/UnorderedList/index.js +1 -1
- package/dist/field/lexical/ui/icons/UnorderedList/index.js.map +1 -0
- package/dist/field/lexical/ui/icons/Upload/index.js +1 -1
- package/dist/field/lexical/ui/icons/Upload/index.js.map +1 -0
- package/dist/field/lexical/utils/canUseDOM.js +1 -1
- package/dist/field/lexical/utils/canUseDOM.js.map +1 -0
- package/dist/field/lexical/utils/cloneDeep.js +1 -1
- package/dist/field/lexical/utils/cloneDeep.js.map +1 -0
- package/dist/field/lexical/utils/environment.js +1 -1
- package/dist/field/lexical/utils/environment.js.map +1 -0
- package/dist/field/lexical/utils/getDOMRangeRect.js +1 -1
- package/dist/field/lexical/utils/getDOMRangeRect.js.map +1 -0
- package/dist/field/lexical/utils/getSelectedNode.js +1 -1
- package/dist/field/lexical/utils/getSelectedNode.js.map +1 -0
- package/dist/field/lexical/utils/guard.js +1 -1
- package/dist/field/lexical/utils/guard.js.map +1 -0
- package/dist/field/lexical/utils/invariant.js +1 -1
- package/dist/field/lexical/utils/invariant.js.map +1 -0
- package/dist/field/lexical/utils/joinClasses.js +1 -1
- package/dist/field/lexical/utils/joinClasses.js.map +1 -0
- package/dist/field/lexical/utils/markdown/createBlockNode.js +1 -1
- package/dist/field/lexical/utils/markdown/createBlockNode.js.map +1 -0
- package/dist/field/lexical/utils/nodeFormat.js +1 -1
- package/dist/field/lexical/utils/nodeFormat.js.map +1 -0
- package/dist/field/lexical/utils/point.js +1 -1
- package/dist/field/lexical/utils/point.js.map +1 -0
- package/dist/field/lexical/utils/rect.js +1 -1
- package/dist/field/lexical/utils/rect.js.map +1 -0
- package/dist/field/lexical/utils/setFloatingElemPosition.js +1 -1
- package/dist/field/lexical/utils/setFloatingElemPosition.js.map +1 -0
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +1 -1
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -0
- package/dist/field/lexical/utils/swipe.js +1 -1
- package/dist/field/lexical/utils/swipe.js.map +1 -0
- package/dist/field/lexical/utils/url.js +1 -1
- package/dist/field/lexical/utils/url.js.map +1 -0
- package/dist/generateComponentMap.js +1 -1
- package/dist/generateComponentMap.js.map +1 -0
- package/dist/generateSchemaMap.js +1 -1
- package/dist/generateSchemaMap.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/dist/populate/defaultValue.js +1 -1
- package/dist/populate/defaultValue.js.map +1 -0
- package/dist/populate/populate.js +1 -1
- package/dist/populate/populate.js.map +1 -0
- package/dist/populate/recurseNestedFields.js +1 -1
- package/dist/populate/recurseNestedFields.js.map +1 -0
- package/dist/populate/richTextRelationshipPromise.js +1 -1
- package/dist/populate/richTextRelationshipPromise.js.map +1 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -0
- package/dist/useLexicalFeature.js +1 -1
- package/dist/useLexicalFeature.js.map +1 -0
- package/dist/validate/index.js +1 -1
- package/dist/validate/index.js.map +1 -0
- package/dist/validate/validateNodes.js +1 -1
- package/dist/validate/validateNodes.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/lexical/utils/setFloatingElemPosition.ts"],"sourcesContent":["const VERTICAL_GAP = 10\nconst HORIZONTAL_OFFSET = 5\n\n// TODO: This works fine with some dirty fixes (looking at you, specialHandlingForCaret). But this definitely needs refactoring and documentation, to be easier to understand and maintain.\n// This is supposed to position the floatingElem based on the parent (anchorElem) and the target (targetRect) which is usually the selected text.\n// So basically, it positions the floatingElem either below or above the target (targetRect) and aligns it to the left or center of the target (targetRect).\nexport function setFloatingElemPosition(\n targetRect: ClientRect | null,\n floatingElem: HTMLElement,\n anchorElem: HTMLElement,\n horizontalPosition: 'center' | 'left' = 'left',\n verticalGap: number = VERTICAL_GAP,\n horizontalOffset: number = HORIZONTAL_OFFSET,\n specialHandlingForCaret = false,\n): void {\n const scrollerElem = anchorElem.parentElement\n\n if (targetRect === null || scrollerElem == null) {\n floatingElem.style.opacity = '0'\n floatingElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const floatingElemRect = floatingElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const editorScrollerRect = scrollerElem.getBoundingClientRect()\n\n let top = targetRect.top - floatingElemRect.height - verticalGap\n let left = targetRect.left - horizontalOffset\n\n if (horizontalPosition === 'center') {\n // Calculate left to position floatingElem to the horizontal middle of targetRect\n left = targetRect.left + targetRect.width / 2 - floatingElemRect.width / 2\n }\n\n if (top < editorScrollerRect.top) {\n top += floatingElemRect.height + targetRect.height + verticalGap * 2\n }\n\n if (horizontalPosition === 'center') {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n } else if (left < editorScrollerRect.left) {\n left = editorScrollerRect.left + horizontalOffset\n }\n } else {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n }\n }\n\n top -= anchorElementRect.top\n left -= anchorElementRect.left\n\n floatingElem.style.opacity = '1'\n\n if (specialHandlingForCaret && top == 0 /* 0 Happens when selecting 1st line */) {\n top -= 44 // Especially this arbitrary number needs refactoring (this is for the caret)\n // rotate too\n floatingElem.style.transform = `translate(${left}px, ${top}px) rotate(180deg)`\n } else if (\n specialHandlingForCaret &&\n top === -63 /* -63 Happens when selecting 2nd line in multi-line paragraph */\n ) {\n top += 18 // Especially this arbitrary number needs refactoring (this is for the caret)\n floatingElem.style.transform = `translate(${left}px, ${top}px) rotate(180deg)`\n } else {\n floatingElem.style.transform = `translate(${left}px, ${top}px)`\n }\n}\n"],"names":["VERTICAL_GAP","HORIZONTAL_OFFSET","setFloatingElemPosition","targetRect","floatingElem","anchorElem","horizontalPosition","verticalGap","horizontalOffset","specialHandlingForCaret","scrollerElem","parentElement","style","opacity","transform","floatingElemRect","getBoundingClientRect","anchorElementRect","editorScrollerRect","top","height","left","width","right"],"mappings":"AAAA,MAAMA,eAAe;AACrB,MAAMC,oBAAoB;AAE1B,2LAA2L;AAC3L,iJAAiJ;AACjJ,4JAA4J;AAC5J,OAAO,SAASC,wBACdC,UAA6B,EAC7BC,YAAyB,EACzBC,UAAuB,EACvBC,qBAAwC,MAAM,EAC9CC,cAAsBP,YAAY,EAClCQ,mBAA2BP,iBAAiB,EAC5CQ,0BAA0B,KAAK;IAE/B,MAAMC,eAAeL,WAAWM,aAAa;IAE7C,IAAIR,eAAe,QAAQO,gBAAgB,MAAM;QAC/CN,aAAaQ,KAAK,CAACC,OAAO,GAAG;QAC7BT,aAAaQ,KAAK,CAACE,SAAS,GAAG;QAC/B;IACF;IAEA,MAAMC,mBAAmBX,aAAaY,qBAAqB;IAC3D,MAAMC,oBAAoBZ,WAAWW,qBAAqB;IAC1D,MAAME,qBAAqBR,aAAaM,qBAAqB;IAE7D,IAAIG,MAAMhB,WAAWgB,GAAG,GAAGJ,iBAAiBK,MAAM,GAAGb;IACrD,IAAIc,OAAOlB,WAAWkB,IAAI,GAAGb;IAE7B,IAAIF,uBAAuB,UAAU;QACnC,iFAAiF;QACjFe,OAAOlB,WAAWkB,IAAI,GAAGlB,WAAWmB,KAAK,GAAG,IAAIP,iBAAiBO,KAAK,GAAG;IAC3E;IAEA,IAAIH,MAAMD,mBAAmBC,GAAG,EAAE;QAChCA,OAAOJ,iBAAiBK,MAAM,GAAGjB,WAAWiB,MAAM,GAAGb,cAAc;IACrE;IAEA,IAAID,uBAAuB,UAAU;QACnC,IAAIe,OAAON,iBAAiBO,KAAK,GAAGJ,mBAAmBK,KAAK,EAAE;YAC5DF,OAAOH,mBAAmBK,KAAK,GAAGR,iBAAiBO,KAAK,GAAGd;QAC7D,OAAO,IAAIa,OAAOH,mBAAmBG,IAAI,EAAE;YACzCA,OAAOH,mBAAmBG,IAAI,GAAGb;QACnC;IACF,OAAO;QACL,IAAIa,OAAON,iBAAiBO,KAAK,GAAGJ,mBAAmBK,KAAK,EAAE;YAC5DF,OAAOH,mBAAmBK,KAAK,GAAGR,iBAAiBO,KAAK,GAAGd;QAC7D;IACF;IAEAW,OAAOF,kBAAkBE,GAAG;IAC5BE,QAAQJ,kBAAkBI,IAAI;IAE9BjB,aAAaQ,KAAK,CAACC,OAAO,GAAG;IAE7B,IAAIJ,2BAA2BU,OAAO,EAAE,qCAAqC,KAAI;QAC/EA,OAAO,GAAG,6EAA6E;;QACvF,aAAa;QACbf,aAAaQ,KAAK,CAACE,SAAS,GAAG,CAAC,UAAU,EAAEO,KAAK,IAAI,EAAEF,IAAI,kBAAkB,CAAC;IAChF,OAAO,IACLV,2BACAU,QAAQ,CAAC,GAAG,+DAA+D,KAC3E;QACAA,OAAO,GAAG,6EAA6E;;QACvFf,aAAaQ,KAAK,CAACE,SAAS,GAAG,CAAC,UAAU,EAAEO,KAAK,IAAI,EAAEF,IAAI,kBAAkB,CAAC;IAChF,OAAO;QACLf,aAAaQ,KAAK,CAACE,SAAS,GAAG,CAAC,UAAU,EAAEO,KAAK,IAAI,EAAEF,IAAI,GAAG,CAAC;IACjE;AACF"}
|
|
@@ -24,4 +24,4 @@ export function setFloatingElemPositionForLinkEditor(targetRect, floatingElem, a
|
|
|
24
24
|
floatingElem.style.transform = `translate(${left}px, ${top}px)`;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=setFloatingElemPositionForLinkEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/lexical/utils/setFloatingElemPositionForLinkEditor.ts"],"sourcesContent":["const VERTICAL_GAP = 10\nconst HORIZONTAL_OFFSET = 5\n\nexport function setFloatingElemPositionForLinkEditor(\n targetRect: DOMRect | null,\n floatingElem: HTMLElement,\n anchorElem: HTMLElement,\n verticalGap: number = VERTICAL_GAP,\n horizontalOffset: number = HORIZONTAL_OFFSET,\n): void {\n const scrollerElem = anchorElem.parentElement\n\n if (targetRect === null || scrollerElem == null) {\n floatingElem.style.opacity = '0'\n floatingElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const floatingElemRect = floatingElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const editorScrollerRect = scrollerElem.getBoundingClientRect()\n\n let top = targetRect.top - verticalGap\n let left = targetRect.left - horizontalOffset\n\n if (top < editorScrollerRect.top) {\n top += floatingElemRect.height + targetRect.height + verticalGap * 2\n }\n\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n }\n\n top -= anchorElementRect.top\n left -= anchorElementRect.left\n\n floatingElem.style.opacity = '1'\n floatingElem.style.transform = `translate(${left}px, ${top}px)`\n}\n"],"names":["VERTICAL_GAP","HORIZONTAL_OFFSET","setFloatingElemPositionForLinkEditor","targetRect","floatingElem","anchorElem","verticalGap","horizontalOffset","scrollerElem","parentElement","style","opacity","transform","floatingElemRect","getBoundingClientRect","anchorElementRect","editorScrollerRect","top","left","height","width","right"],"mappings":"AAAA,MAAMA,eAAe;AACrB,MAAMC,oBAAoB;AAE1B,OAAO,SAASC,qCACdC,UAA0B,EAC1BC,YAAyB,EACzBC,UAAuB,EACvBC,cAAsBN,YAAY,EAClCO,mBAA2BN,iBAAiB;IAE5C,MAAMO,eAAeH,WAAWI,aAAa;IAE7C,IAAIN,eAAe,QAAQK,gBAAgB,MAAM;QAC/CJ,aAAaM,KAAK,CAACC,OAAO,GAAG;QAC7BP,aAAaM,KAAK,CAACE,SAAS,GAAG;QAC/B;IACF;IAEA,MAAMC,mBAAmBT,aAAaU,qBAAqB;IAC3D,MAAMC,oBAAoBV,WAAWS,qBAAqB;IAC1D,MAAME,qBAAqBR,aAAaM,qBAAqB;IAE7D,IAAIG,MAAMd,WAAWc,GAAG,GAAGX;IAC3B,IAAIY,OAAOf,WAAWe,IAAI,GAAGX;IAE7B,IAAIU,MAAMD,mBAAmBC,GAAG,EAAE;QAChCA,OAAOJ,iBAAiBM,MAAM,GAAGhB,WAAWgB,MAAM,GAAGb,cAAc;IACrE;IAEA,IAAIY,OAAOL,iBAAiBO,KAAK,GAAGJ,mBAAmBK,KAAK,EAAE;QAC5DH,OAAOF,mBAAmBK,KAAK,GAAGR,iBAAiBO,KAAK,GAAGb;IAC7D;IAEAU,OAAOF,kBAAkBE,GAAG;IAC5BC,QAAQH,kBAAkBG,IAAI;IAE9Bd,aAAaM,KAAK,CAACC,OAAO,GAAG;IAC7BP,aAAaM,KAAK,CAACE,SAAS,GAAG,CAAC,UAAU,EAAEM,KAAK,IAAI,EAAED,IAAI,GAAG,CAAC;AACjE"}
|
|
@@ -97,4 +97,4 @@ export function addSwipeDownListener(element, cb) {
|
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
//# sourceMappingURL=
|
|
100
|
+
//# sourceMappingURL=swipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/lexical/utils/swipe.ts"],"sourcesContent":["type Force = [number, number]\ntype Listener = (force: Force, e: TouchEvent) => void\ninterface ElementValues {\n handleTouchend: (e: TouchEvent) => void\n handleTouchstart: (e: TouchEvent) => void\n listeners: Set<Listener>\n start: Force | null\n}\n\nconst elements = new WeakMap<HTMLElement, ElementValues>()\n\nfunction readTouch(e: TouchEvent): [number, number] | null {\n const touch = e.changedTouches[0]\n if (touch === undefined) {\n return null\n }\n return [touch.clientX, touch.clientY]\n}\n\nfunction addListener(element: HTMLElement, cb: Listener): () => void {\n let elementValues = elements.get(element)\n if (elementValues === undefined) {\n const listeners = new Set<Listener>()\n const handleTouchstart = (e: TouchEvent): void => {\n if (elementValues !== undefined) {\n elementValues.start = readTouch(e)\n }\n }\n const handleTouchend = (e: TouchEvent): void => {\n if (elementValues === undefined) {\n return\n }\n const { start } = elementValues\n if (start === null) {\n return\n }\n const end = readTouch(e)\n for (const listener of listeners) {\n if (end !== null) {\n listener([end[0] - start[0], end[1] - start[1]], e)\n }\n }\n }\n element.addEventListener('touchstart', handleTouchstart)\n element.addEventListener('touchend', handleTouchend)\n\n elementValues = {\n handleTouchend,\n handleTouchstart,\n listeners,\n start: null,\n }\n elements.set(element, elementValues)\n }\n elementValues.listeners.add(cb)\n return () => {\n deleteListener(element, cb)\n }\n}\n\nfunction deleteListener(element: HTMLElement, cb: Listener): void {\n const elementValues = elements.get(element)\n if (elementValues === undefined) {\n return\n }\n const { listeners } = elementValues\n listeners.delete(cb)\n if (listeners.size === 0) {\n elements.delete(element)\n element.removeEventListener('touchstart', elementValues.handleTouchstart)\n element.removeEventListener('touchend', elementValues.handleTouchend)\n }\n}\n\nexport function addSwipeLeftListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (x < 0 && -x > Math.abs(y)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeRightListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (x > 0 && x > Math.abs(y)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeUpListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (y < 0 && -y > Math.abs(x)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeDownListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (y > 0 && y > Math.abs(x)) {\n cb(x, e)\n }\n })\n}\n"],"names":["elements","WeakMap","readTouch","e","touch","changedTouches","undefined","clientX","clientY","addListener","element","cb","elementValues","get","listeners","Set","handleTouchstart","start","handleTouchend","end","listener","addEventListener","set","add","deleteListener","delete","size","removeEventListener","addSwipeLeftListener","force","x","y","Math","abs","addSwipeRightListener","addSwipeUpListener","addSwipeDownListener"],"mappings":"AASA,MAAMA,WAAW,IAAIC;AAErB,SAASC,UAAUC,CAAa;IAC9B,MAAMC,QAAQD,EAAEE,cAAc,CAAC,EAAE;IACjC,IAAID,UAAUE,WAAW;QACvB,OAAO;IACT;IACA,OAAO;QAACF,MAAMG,OAAO;QAAEH,MAAMI,OAAO;KAAC;AACvC;AAEA,SAASC,YAAYC,OAAoB,EAAEC,EAAY;IACrD,IAAIC,gBAAgBZ,SAASa,GAAG,CAACH;IACjC,IAAIE,kBAAkBN,WAAW;QAC/B,MAAMQ,YAAY,IAAIC;QACtB,MAAMC,mBAAmB,CAACb;YACxB,IAAIS,kBAAkBN,WAAW;gBAC/BM,cAAcK,KAAK,GAAGf,UAAUC;YAClC;QACF;QACA,MAAMe,iBAAiB,CAACf;YACtB,IAAIS,kBAAkBN,WAAW;gBAC/B;YACF;YACA,MAAM,EAAEW,KAAK,EAAE,GAAGL;YAClB,IAAIK,UAAU,MAAM;gBAClB;YACF;YACA,MAAME,MAAMjB,UAAUC;YACtB,KAAK,MAAMiB,YAAYN,UAAW;gBAChC,IAAIK,QAAQ,MAAM;oBAChBC,SAAS;wBAACD,GAAG,CAAC,EAAE,GAAGF,KAAK,CAAC,EAAE;wBAAEE,GAAG,CAAC,EAAE,GAAGF,KAAK,CAAC,EAAE;qBAAC,EAAEd;gBACnD;YACF;QACF;QACAO,QAAQW,gBAAgB,CAAC,cAAcL;QACvCN,QAAQW,gBAAgB,CAAC,YAAYH;QAErCN,gBAAgB;YACdM;YACAF;YACAF;YACAG,OAAO;QACT;QACAjB,SAASsB,GAAG,CAACZ,SAASE;IACxB;IACAA,cAAcE,SAAS,CAACS,GAAG,CAACZ;IAC5B,OAAO;QACLa,eAAed,SAASC;IAC1B;AACF;AAEA,SAASa,eAAed,OAAoB,EAAEC,EAAY;IACxD,MAAMC,gBAAgBZ,SAASa,GAAG,CAACH;IACnC,IAAIE,kBAAkBN,WAAW;QAC/B;IACF;IACA,MAAM,EAAEQ,SAAS,EAAE,GAAGF;IACtBE,UAAUW,MAAM,CAACd;IACjB,IAAIG,UAAUY,IAAI,KAAK,GAAG;QACxB1B,SAASyB,MAAM,CAACf;QAChBA,QAAQiB,mBAAmB,CAAC,cAAcf,cAAcI,gBAAgB;QACxEN,QAAQiB,mBAAmB,CAAC,YAAYf,cAAcM,cAAc;IACtE;AACF;AAEA,OAAO,SAASU,qBACdlB,OAAoB,EACpBC,EAA2C;IAE3C,OAAOF,YAAYC,SAAS,CAACmB,OAAO1B;QAClC,MAAM,CAAC2B,GAAGC,EAAE,GAAGF;QACf,IAAIC,IAAI,KAAK,CAACA,IAAIE,KAAKC,GAAG,CAACF,IAAI;YAC7BpB,GAAGmB,GAAG3B;QACR;IACF;AACF;AAEA,OAAO,SAAS+B,sBACdxB,OAAoB,EACpBC,EAA2C;IAE3C,OAAOF,YAAYC,SAAS,CAACmB,OAAO1B;QAClC,MAAM,CAAC2B,GAAGC,EAAE,GAAGF;QACf,IAAIC,IAAI,KAAKA,IAAIE,KAAKC,GAAG,CAACF,IAAI;YAC5BpB,GAAGmB,GAAG3B;QACR;IACF;AACF;AAEA,OAAO,SAASgC,mBACdzB,OAAoB,EACpBC,EAA2C;IAE3C,OAAOF,YAAYC,SAAS,CAACmB,OAAO1B;QAClC,MAAM,CAAC2B,GAAGC,EAAE,GAAGF;QACf,IAAIE,IAAI,KAAK,CAACA,IAAIC,KAAKC,GAAG,CAACH,IAAI;YAC7BnB,GAAGmB,GAAG3B;QACR;IACF;AACF;AAEA,OAAO,SAASiC,qBACd1B,OAAoB,EACpBC,EAA2C;IAE3C,OAAOF,YAAYC,SAAS,CAACmB,OAAO1B;QAClC,MAAM,CAAC2B,GAAGC,EAAE,GAAGF;QACf,IAAIE,IAAI,KAAKA,IAAIC,KAAKC,GAAG,CAACH,IAAI;YAC5BnB,GAAGmB,GAAG3B;QACR;IACF;AACF"}
|
|
@@ -22,4 +22,4 @@ export function validateUrl(url) {
|
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/field/lexical/utils/url.ts"],"sourcesContent":["export function sanitizeUrl(url: string): string {\n /** A pattern that matches safe URLs. */\n const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /** A pattern that matches safe data URLs. */\n const DATA_URL_PATTERN =\n /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z\\d+/]+=*$/i\n\n url = String(url).trim()\n\n if (url.match(SAFE_URL_PATTERN) != null || url.match(DATA_URL_PATTERN) != null) return url\n\n return 'https://'\n}\n\n// Source: https://stackoverflow.com/a/8234912/2013580\nconst urlRegExp =\n /((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[-;:&=+$,\\w]+@)?[A-Za-z\\d.-]+|(?:www.|[-;:&=+$,\\w]+@)[A-Za-z\\d.-]+)((?:\\/[+~%/.\\w-]*)?\\??[-+=&;%@.\\w]*#?\\w*)?)/\n\nexport function validateUrl(url: string): boolean {\n // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://.\n // Maybe show a dialog where they user can type the URL before inserting it.\n\n if (url === 'https://') return true\n\n // This makes sure URLs starting with www. instead of https are valid too\n if (urlRegExp.test(url)) return true\n\n // While this doesn't allow URLs starting with www (which is why we use the regex above), it does properly handle tel: URLs\n try {\n new URL(url)\n return true\n } catch {\n /* empty */\n }\n\n return false\n}\n"],"names":["sanitizeUrl","url","SAFE_URL_PATTERN","DATA_URL_PATTERN","String","trim","match","urlRegExp","validateUrl","test","URL"],"mappings":"AAAA,OAAO,SAASA,YAAYC,GAAW;IACrC,uCAAuC,GACvC,MAAMC,mBAAmB;IAEzB,2CAA2C,GAC3C,MAAMC,mBACJ;IAEFF,MAAMG,OAAOH,KAAKI,IAAI;IAEtB,IAAIJ,IAAIK,KAAK,CAACJ,qBAAqB,QAAQD,IAAIK,KAAK,CAACH,qBAAqB,MAAM,OAAOF;IAEvF,OAAO;AACT;AAEA,sDAAsD;AACtD,MAAMM,YACJ;AAEF,OAAO,SAASC,YAAYP,GAAW;IACrC,8FAA8F;IAC9F,4EAA4E;IAE5E,IAAIA,QAAQ,YAAY,OAAO;IAE/B,yEAAyE;IACzE,IAAIM,UAAUE,IAAI,CAACR,MAAM,OAAO;IAEhC,2HAA2H;IAC3H,IAAI;QACF,IAAIS,IAAIT;QACR,OAAO;IACT,EAAE,OAAM;IACN,SAAS,GACX;IAEA,OAAO;AACT"}
|
|
@@ -74,4 +74,4 @@ export const getGenerateComponentMap = (args)=>({ config, schemaPath })=>{
|
|
|
74
74
|
return componentMap;
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
-
//# sourceMappingURL=
|
|
77
|
+
//# sourceMappingURL=generateComponentMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generateComponentMap.tsx"],"sourcesContent":["import type { RichTextAdapter } from 'payload/types'\n\nimport { mapFields } from '@payloadcms/ui/utilities'\nimport { sanitizeFields } from 'payload/config'\nimport React from 'react'\n\nimport type { ResolvedServerFeatureMap } from './field/features/types.js'\nimport type { GeneratedFeatureProviderComponent } from './types.js'\n\nexport const getGenerateComponentMap =\n (args: {\n resolvedFeatureMap: ResolvedServerFeatureMap\n }): RichTextAdapter['generateComponentMap'] =>\n ({ config, schemaPath }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n const componentMap = new Map()\n\n // turn args.resolvedFeatureMap into an array of [key, value] pairs, ordered by value.order, lowest order first:\n const resolvedFeatureMapArray = Array.from(args.resolvedFeatureMap.entries()).sort(\n (a, b) => a[1].order - b[1].order,\n )\n\n componentMap.set(\n `features`,\n resolvedFeatureMapArray\n .map(([featureKey, resolvedFeature]) => {\n const ClientComponent = resolvedFeature.ClientComponent\n const clientComponentProps = resolvedFeature.clientFeatureProps\n\n /**\n * Handle Feature Component Maps\n */\n if (\n 'generateComponentMap' in resolvedFeature &&\n typeof resolvedFeature.generateComponentMap === 'function'\n ) {\n const components = resolvedFeature.generateComponentMap({\n config,\n props: resolvedFeature.serverFeatureProps,\n schemaPath,\n })\n\n for (const componentKey in components) {\n const Component = components[componentKey]\n if (Component) {\n componentMap.set(\n `feature.${featureKey}.components.${componentKey}`,\n <Component\n componentKey={componentKey}\n featureKey={resolvedFeature.key}\n key={`${resolvedFeature.key}-${componentKey}`}\n />,\n )\n }\n }\n }\n\n /**\n * Handle Feature Schema Maps (rendered fields)\n */\n if (\n 'generateSchemaMap' in resolvedFeature &&\n typeof resolvedFeature.generateSchemaMap === 'function'\n ) {\n const schemas = resolvedFeature.generateSchemaMap({\n config,\n props: resolvedFeature.serverFeatureProps,\n schemaMap: new Map(),\n schemaPath,\n })\n\n for (const schemaKey in schemas) {\n const fields = schemas[schemaKey]\n\n const sanitizedFields = sanitizeFields({\n config,\n fields,\n validRelationships,\n })\n\n const mappedFields = mapFields({\n config,\n fieldSchema: sanitizedFields,\n permissions: {},\n readOnly: false,\n })\n\n componentMap.set(`feature.${featureKey}.fields.${schemaKey}`, mappedFields)\n }\n }\n\n if (!ClientComponent) {\n return null\n }\n\n return {\n ClientComponent:\n clientComponentProps && typeof clientComponentProps === 'object' ? (\n <ClientComponent\n {...clientComponentProps}\n featureKey={resolvedFeature.key}\n key={resolvedFeature.key}\n order={resolvedFeature.order}\n />\n ) : (\n <ClientComponent\n featureKey={resolvedFeature.key}\n key={resolvedFeature.key}\n order={resolvedFeature.order}\n />\n ),\n key: resolvedFeature.key,\n order: resolvedFeature.order,\n } as GeneratedFeatureProviderComponent\n })\n .filter((feature) => feature !== null),\n )\n\n return componentMap\n }\n"],"names":["mapFields","sanitizeFields","React","getGenerateComponentMap","args","config","schemaPath","validRelationships","collections","map","c","slug","componentMap","Map","resolvedFeatureMapArray","Array","from","resolvedFeatureMap","entries","sort","a","b","order","set","featureKey","resolvedFeature","ClientComponent","clientComponentProps","clientFeatureProps","generateComponentMap","components","props","serverFeatureProps","componentKey","Component","key","generateSchemaMap","schemas","schemaMap","schemaKey","fields","sanitizedFields","mappedFields","fieldSchema","permissions","readOnly","filter","feature"],"mappings":"AAEA,SAASA,SAAS,QAAQ,2BAA0B;AACpD,SAASC,cAAc,QAAQ,iBAAgB;AAC/C,OAAOC,WAAW,QAAO;AAKzB,OAAO,MAAMC,0BACX,CAACC,OAGD,CAAC,EAAEC,MAAM,EAAEC,UAAU,EAAE;QACrB,MAAMC,qBAAqBF,OAAOG,WAAW,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,EAAE;QAEtE,MAAMC,eAAe,IAAIC;QAEzB,gHAAgH;QAChH,MAAMC,0BAA0BC,MAAMC,IAAI,CAACZ,KAAKa,kBAAkB,CAACC,OAAO,IAAIC,IAAI,CAChF,CAACC,GAAGC,IAAMD,CAAC,CAAC,EAAE,CAACE,KAAK,GAAGD,CAAC,CAAC,EAAE,CAACC,KAAK;QAGnCV,aAAaW,GAAG,CACd,CAAC,QAAQ,CAAC,EACVT,wBACGL,GAAG,CAAC,CAAC,CAACe,YAAYC,gBAAgB;YACjC,MAAMC,kBAAkBD,gBAAgBC,eAAe;YACvD,MAAMC,uBAAuBF,gBAAgBG,kBAAkB;YAE/D;;WAEC,GACD,IACE,0BAA0BH,mBAC1B,OAAOA,gBAAgBI,oBAAoB,KAAK,YAChD;gBACA,MAAMC,aAAaL,gBAAgBI,oBAAoB,CAAC;oBACtDxB;oBACA0B,OAAON,gBAAgBO,kBAAkB;oBACzC1B;gBACF;gBAEA,IAAK,MAAM2B,gBAAgBH,WAAY;oBACrC,MAAMI,YAAYJ,UAAU,CAACG,aAAa;oBAC1C,IAAIC,WAAW;wBACbtB,aAAaW,GAAG,CACd,CAAC,QAAQ,EAAEC,WAAW,YAAY,EAAES,aAAa,CAAC,gBAClD,oBAACC;4BACCD,cAAcA;4BACdT,YAAYC,gBAAgBU,GAAG;4BAC/BA,KAAK,CAAC,EAAEV,gBAAgBU,GAAG,CAAC,CAAC,EAAEF,aAAa,CAAC;;oBAGnD;gBACF;YACF;YAEA;;WAEC,GACD,IACE,uBAAuBR,mBACvB,OAAOA,gBAAgBW,iBAAiB,KAAK,YAC7C;gBACA,MAAMC,UAAUZ,gBAAgBW,iBAAiB,CAAC;oBAChD/B;oBACA0B,OAAON,gBAAgBO,kBAAkB;oBACzCM,WAAW,IAAIzB;oBACfP;gBACF;gBAEA,IAAK,MAAMiC,aAAaF,QAAS;oBAC/B,MAAMG,SAASH,OAAO,CAACE,UAAU;oBAEjC,MAAME,kBAAkBxC,eAAe;wBACrCI;wBACAmC;wBACAjC;oBACF;oBAEA,MAAMmC,eAAe1C,UAAU;wBAC7BK;wBACAsC,aAAaF;wBACbG,aAAa,CAAC;wBACdC,UAAU;oBACZ;oBAEAjC,aAAaW,GAAG,CAAC,CAAC,QAAQ,EAAEC,WAAW,QAAQ,EAAEe,UAAU,CAAC,EAAEG;gBAChE;YACF;YAEA,IAAI,CAAChB,iBAAiB;gBACpB,OAAO;YACT;YAEA,OAAO;gBACLA,iBACEC,wBAAwB,OAAOA,yBAAyB,yBACtD,oBAACD;oBACE,GAAGC,oBAAoB;oBACxBH,YAAYC,gBAAgBU,GAAG;oBAC/BA,KAAKV,gBAAgBU,GAAG;oBACxBb,OAAOG,gBAAgBH,KAAK;mCAG9B,oBAACI;oBACCF,YAAYC,gBAAgBU,GAAG;oBAC/BA,KAAKV,gBAAgBU,GAAG;oBACxBb,OAAOG,gBAAgBH,KAAK;;gBAGlCa,KAAKV,gBAAgBU,GAAG;gBACxBb,OAAOG,gBAAgBH,KAAK;YAC9B;QACF,GACCwB,MAAM,CAAC,CAACC,UAAYA,YAAY;QAGrC,OAAOnC;IACT,EAAC"}
|
|
@@ -24,4 +24,4 @@ export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=
|
|
|
24
24
|
return schemaMap;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=generateSchemaMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generateSchemaMap.ts"],"sourcesContent":["import type { RichTextAdapter } from 'payload/types'\n\nimport { sanitizeFields } from 'payload/config'\n\nimport type { ResolvedServerFeatureMap } from './field/features/types.js'\n\nexport const getGenerateSchemaMap =\n (args: { resolvedFeatureMap: ResolvedServerFeatureMap }): RichTextAdapter['generateSchemaMap'] =>\n ({ config, schemaMap, schemaPath }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n for (const [featureKey, resolvedFeature] of args.resolvedFeatureMap.entries()) {\n if (\n !('generateSchemaMap' in resolvedFeature) ||\n typeof resolvedFeature.generateSchemaMap !== 'function'\n ) {\n continue\n }\n const schemas = resolvedFeature.generateSchemaMap({\n config,\n props: resolvedFeature.serverFeatureProps,\n schemaMap,\n schemaPath,\n })\n\n for (const schemaKey in schemas) {\n const fields = schemas[schemaKey]\n\n const sanitizedFields = sanitizeFields({\n config,\n fields,\n validRelationships,\n })\n\n schemaMap.set(`${schemaPath}.feature.${featureKey}.${schemaKey}`, sanitizedFields)\n }\n }\n\n return schemaMap\n }\n"],"names":["sanitizeFields","getGenerateSchemaMap","args","config","schemaMap","schemaPath","validRelationships","collections","map","c","slug","featureKey","resolvedFeature","resolvedFeatureMap","entries","generateSchemaMap","schemas","props","serverFeatureProps","schemaKey","fields","sanitizedFields","set"],"mappings":"AAEA,SAASA,cAAc,QAAQ,iBAAgB;AAI/C,OAAO,MAAMC,uBACX,CAACC,OACD,CAAC,EAAEC,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAE;QAChC,MAAMC,qBAAqBH,OAAOI,WAAW,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,EAAE;QAEtE,KAAK,MAAM,CAACC,YAAYC,gBAAgB,IAAIV,KAAKW,kBAAkB,CAACC,OAAO,GAAI;YAC7E,IACE,CAAE,CAAA,uBAAuBF,eAAc,KACvC,OAAOA,gBAAgBG,iBAAiB,KAAK,YAC7C;gBACA;YACF;YACA,MAAMC,UAAUJ,gBAAgBG,iBAAiB,CAAC;gBAChDZ;gBACAc,OAAOL,gBAAgBM,kBAAkB;gBACzCd;gBACAC;YACF;YAEA,IAAK,MAAMc,aAAaH,QAAS;gBAC/B,MAAMI,SAASJ,OAAO,CAACG,UAAU;gBAEjC,MAAME,kBAAkBrB,eAAe;oBACrCG;oBACAiB;oBACAd;gBACF;gBAEAF,UAAUkB,GAAG,CAAC,CAAC,EAAEjB,WAAW,SAAS,EAAEM,WAAW,CAAC,EAAEQ,UAAU,CAAC,EAAEE;YACpE;QACF;QAEA,OAAOjB;IACT,EAAC"}
|
package/dist/index.js
CHANGED
|
@@ -272,4 +272,4 @@ export { addSwipeDownListener, addSwipeLeftListener, addSwipeRightListener, addS
|
|
|
272
272
|
export { sanitizeUrl, validateUrl } from './field/lexical/utils/url.js';
|
|
273
273
|
export { defaultRichTextValue } from './populate/defaultValue.js';
|
|
274
274
|
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnXG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgdHlwZSB7IEVkaXRvckNvbmZpZyBhcyBMZXhpY2FsRWRpdG9yQ29uZmlnIH0gZnJvbSAnbGV4aWNhbC9MZXhpY2FsRWRpdG9yLmpzJ1xuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlclNlcnZlciwgUmVzb2x2ZWRTZXJ2ZXJGZWF0dXJlTWFwIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH0gZnJvbSAnLi90eXBlcy5qcydcblxuaW1wb3J0IHtcbiAgZGVmYXVsdEVkaXRvckNvbmZpZyxcbiAgZGVmYXVsdEVkaXRvckZlYXR1cmVzLFxuICBkZWZhdWx0U2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvY29uZmlnL3NlcnZlci9kZWZhdWx0LmpzJ1xuaW1wb3J0IHsgbG9hZEZlYXR1cmVzIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9zZXJ2ZXIvbG9hZGVyLmpzJ1xuaW1wb3J0IHsgc2FuaXRpemVTZXJ2ZXJGZWF0dXJlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9jb25maWcvc2VydmVyL3Nhbml0aXplLmpzJ1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL2Nsb25lRGVlcC5qcydcbmltcG9ydCB7IGdldEdlbmVyYXRlQ29tcG9uZW50TWFwIH0gZnJvbSAnLi9nZW5lcmF0ZUNvbXBvbmVudE1hcC5qcydcbmltcG9ydCB7IGdldEdlbmVyYXRlU2NoZW1hTWFwIH0gZnJvbSAnLi9nZW5lcmF0ZVNjaGVtYU1hcC5qcydcbmltcG9ydCB7IHJpY2hUZXh0UmVsYXRpb25zaGlwUHJvbWlzZSB9IGZyb20gJy4vcG9wdWxhdGUvcmljaFRleHRSZWxhdGlvbnNoaXBQcm9taXNlLmpzJ1xuaW1wb3J0IHsgcmljaFRleHRWYWxpZGF0ZUhPQyB9IGZyb20gJy4vdmFsaWRhdGUvaW5kZXguanMnXG5cbmV4cG9ydCB0eXBlIExleGljYWxFZGl0b3JQcm9wcyA9IHtcbiAgZmVhdHVyZXM/OlxuICAgIHwgKCh7XG4gICAgICAgIGRlZmF1bHRGZWF0dXJlcyxcbiAgICAgIH06IHtcbiAgICAgICAgZGVmYXVsdEZlYXR1cmVzOiBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXVxuICAgICAgfSkgPT4gRmVhdHVyZVByb3ZpZGVyU2VydmVyPHVua25vd24sIHVua25vd24+W10pXG4gICAgfCBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXVxuICBsZXhpY2FsPzogTGV4aWNhbEVkaXRvckNvbmZpZ1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZHVuZGFudC10eXBlLWNvbnN0aXR1ZW50c1xuZXhwb3J0IHR5cGUgTGV4aWNhbFJpY2hUZXh0QWRhcHRlciA9IFJpY2hUZXh0QWRhcHRlcjxTZXJpYWxpemVkRWRpdG9yU3RhdGUsIEFkYXB0ZXJQcm9wcywgYW55PiAmIHtcbiAgZWRpdG9yQ29uZmlnOiBTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxleGljYWxFZGl0b3IocHJvcHM/OiBMZXhpY2FsRWRpdG9yUHJvcHMpOiBMZXhpY2FsUmljaFRleHRBZGFwdGVyIHtcbiAgbGV0IHJlc29sdmVkRmVhdHVyZU1hcDogUmVzb2x2ZWRTZXJ2ZXJGZWF0dXJlTWFwID0gbnVsbFxuXG4gIGxldCBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZzogU2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnIC8vIEZvciBzZXJ2ZXIgb25seVxuICBpZiAoIXByb3BzIHx8ICghcHJvcHMuZmVhdHVyZXMgJiYgIXByb3BzLmxleGljYWwpKSB7XG4gICAgZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcgPSBjbG9uZURlZXAoZGVmYXVsdFNhbml0aXplZFNlcnZlckVkaXRvckNvbmZpZylcbiAgICByZXNvbHZlZEZlYXR1cmVNYXAgPSBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZy5yZXNvbHZlZEZlYXR1cmVNYXBcbiAgfSBlbHNlIHtcbiAgICBsZXQgZmVhdHVyZXM6IEZlYXR1cmVQcm92aWRlclNlcnZlcjx1bmtub3duLCB1bmtub3duPltdID1cbiAgICAgIHByb3BzLmZlYXR1cmVzICYmIHR5cGVvZiBwcm9wcy5mZWF0dXJlcyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHByb3BzLmZlYXR1cmVzKHsgZGVmYXVsdEZlYXR1cmVzOiBjbG9uZURlZXAoZGVmYXVsdEVkaXRvckZlYXR1cmVzKSB9KVxuICAgICAgICA6IChwcm9wcy5mZWF0dXJlcyBhcyBGZWF0dXJlUHJvdmlkZXJTZXJ2ZXI8dW5rbm93biwgdW5rbm93bj5bXSlcbiAgICBpZiAoIWZlYXR1cmVzKSB7XG4gICAgICBmZWF0dXJlcyA9IGNsb25lRGVlcChkZWZhdWx0RWRpdG9yRmVhdHVyZXMpXG4gICAgfVxuXG4gICAgY29uc3QgbGV4aWNhbDogTGV4aWNhbEVkaXRvckNvbmZpZyA9IHByb3BzLmxleGljYWxcblxuICAgIHJlc29sdmVkRmVhdHVyZU1hcCA9IGxvYWRGZWF0dXJlcyh7XG4gICAgICB1blNhbml0aXplZEVkaXRvckNvbmZpZzoge1xuICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgbGV4aWNhbDogbGV4aWNhbCA/IGxleGljYWwgOiBkZWZhdWx0RWRpdG9yQ29uZmlnLmxleGljYWwsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyA9IHtcbiAgICAgIGZlYXR1cmVzOiBzYW5pdGl6ZVNlcnZlckZlYXR1cmVzKHJlc29sdmVkRmVhdHVyZU1hcCksXG4gICAgICBsZXhpY2FsOiBsZXhpY2FsID8gbGV4aWNhbCA6IGRlZmF1bHRFZGl0b3JDb25maWcubGV4aWNhbCxcbiAgICAgIHJlc29sdmVkRmVhdHVyZU1hcCxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIExhenlDZWxsQ29tcG9uZW50OiAoKSA9PlxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgaW1wb3J0KCcuL2NlbGwvaW5kZXguanMnKS50aGVuKChtb2R1bGUpID0+IHtcbiAgICAgICAgY29uc3QgUmljaFRleHRDZWxsID0gbW9kdWxlLlJpY2hUZXh0Q2VsbFxuICAgICAgICByZXR1cm4gaW1wb3J0KCdAcGF5bG9hZGNtcy91aScpLnRoZW4oKG1vZHVsZTIpID0+XG4gICAgICAgICAgbW9kdWxlMi53aXRoTWVyZ2VkUHJvcHMoe1xuICAgICAgICAgICAgQ29tcG9uZW50OiBSaWNoVGV4dENlbGwsXG4gICAgICAgICAgICB0b01lcmdlSW50b1Byb3BzOiB7IGxleGljYWxFZGl0b3JDb25maWc6IGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLmxleGljYWwgfSwgLy8gbGV4aWNhbEVkaXRvckNvbmZpZyBpcyBzZXJpYWxpemFibGVcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfSksXG5cbiAgICBMYXp5RmllbGRDb21wb25lbnQ6ICgpID0+XG4gICAgICBpbXBvcnQoJy4vZmllbGQvaW5kZXguanMnKS50aGVuKChtb2R1bGUpID0+IHtcbiAgICAgICAgY29uc3QgUmljaFRleHRGaWVsZCA9IG1vZHVsZS5SaWNoVGV4dEZpZWxkXG4gICAgICAgIHJldHVybiBpbXBvcnQoJ0BwYXlsb2FkY21zL3VpJykudGhlbigobW9kdWxlMikgPT5cbiAgICAgICAgICBtb2R1bGUyLndpdGhNZXJnZWRQcm9wcyh7XG4gICAgICAgICAgICBDb21wb25lbnQ6IFJpY2hUZXh0RmllbGQsXG4gICAgICAgICAgICB0b01lcmdlSW50b1Byb3BzOiB7IGxleGljYWxFZGl0b3JDb25maWc6IGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLmxleGljYWwgfSwgLy8gbGV4aWNhbEVkaXRvckNvbmZpZyBpcyBzZXJpYWxpemFibGVcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfSksXG4gICAgYWZ0ZXJSZWFkUHJvbWlzZTogKHsgZmllbGQsIGluY29taW5nRWRpdG9yU3RhdGUsIHNpYmxpbmdEb2MgfSkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdXG5cbiAgICAgICAgaWYgKGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnPy5mZWF0dXJlcz8uaG9va3M/LmFmdGVyUmVhZFByb21pc2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGFmdGVyUmVhZFByb21pc2Ugb2YgZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcuZmVhdHVyZXMuaG9va3NcbiAgICAgICAgICAgIC5hZnRlclJlYWRQcm9taXNlcykge1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IGFmdGVyUmVhZFByb21pc2Uoe1xuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgaW5jb21pbmdFZGl0b3JTdGF0ZSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBpZiAocHJvbWlzZSkge1xuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSgpKVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHJlamVjdChlcnJvcikpXG4gICAgICB9KVxuICAgIH0sXG4gICAgZWRpdG9yQ29uZmlnOiBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyxcbiAgICBnZW5lcmF0ZUNvbXBvbmVudE1hcDogZ2V0R2VuZXJhdGVDb21wb25lbnRNYXAoe1xuICAgICAgcmVzb2x2ZWRGZWF0dXJlTWFwLFxuICAgIH0pLFxuICAgIGdlbmVyYXRlU2NoZW1hTWFwOiBnZXRHZW5lcmF0ZVNjaGVtYU1hcCh7XG4gICAgICByZXNvbHZlZEZlYXR1cmVNYXAsXG4gICAgfSksXG4gICAgb3V0cHV0U2NoZW1hOiAoe1xuICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlcyxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGZpZWxkLFxuICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgaXNSZXF1aXJlZCxcbiAgICB9KSA9PiB7XG4gICAgICBsZXQgb3V0cHV0U2NoZW1hOiBKU09OU2NoZW1hNCA9IHtcbiAgICAgICAgLy8gVGhpcyBzY2hlbWEgbWF0Y2hlcyB0aGUgU2VyaWFsaXplZEVkaXRvclN0YXRlIHR5cGUgc28gZmFyLCB0aGF0IGl0J3MgcG9zc2libGUgdG8gY2FzdCBTZXJpYWxpemVkRWRpdG9yU3RhdGUgdG8gdGhpcyBzY2hlbWEgd2l0aG91dCBhbnkgZXJyb3JzLlxuICAgICAgICAvLyBJbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGRcbiAgICAgICAgLy8gMSkgYWxsb3cgcmVjdXJzaXZlIGNoaWxkcmVuXG4gICAgICAgIC8vIDIpIFBhc3MgaW4gYWxsIHRoZSBkaWZmZXJlbnQgdHlwZXMgZm9yIGV2ZXJ5IG5vZGUgYWRkZWQgdG8gdGhlIGVkaXRvcmNvbmZpZy4gVGhpcyBjYW4gYmUgZG9uZSB3aXRoIHJlZnMgaW4gdGhlIHNjaGVtYS5cbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ29iamVjdCcsIGlzUmVxdWlyZWQpLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcm9vdDoge1xuICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY2hpbGRyZW46IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsndHlwZScsICd2ZXJzaW9uJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZW51bTogWydsdHInLCAncnRsJ10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbnVsbCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGZvcm1hdDoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIGVudW06IFsnbGVmdCcsICdzdGFydCcsICdjZW50ZXInLCAncmlnaHQnLCAnZW5kJywgJ2p1c3RpZnknLCAnJ10sIC8vIEVsZW1lbnRGb3JtYXRUeXBlLCBzaW5jZSB0aGUgcm9vdCBub2RlIGlzIGFuIGVsZW1lbnRcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaW5kZW50OiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB2ZXJzaW9uOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbJ2NoaWxkcmVuJywgJ2RpcmVjdGlvbicsICdmb3JtYXQnLCAnaW5kZW50JywgJ3R5cGUnLCAndmVyc2lvbiddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbJ3Jvb3QnXSxcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgbW9kaWZ5T3V0cHV0U2NoZW1hIG9mIGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnLmZlYXR1cmVzLmdlbmVyYXRlZFR5cGVzXG4gICAgICAgIC5tb2RpZnlPdXRwdXRTY2hlbWFzKSB7XG4gICAgICAgIG91dHB1dFNjaGVtYSA9IG1vZGlmeU91dHB1dFNjaGVtYSh7XG4gICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlcyxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgY3VycmVudFNjaGVtYTogb3V0cHV0U2NoZW1hLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3V0cHV0U2NoZW1hXG4gICAgfSxcbiAgICBwb3B1bGF0aW9uUHJvbWlzZSh7XG4gICAgICBjb250ZXh0LFxuICAgICAgY3VycmVudERlcHRoLFxuICAgICAgZGVwdGgsXG4gICAgICBmaWVsZCxcbiAgICAgIGZpbmRNYW55LFxuICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICBzaWJsaW5nRG9jLFxuICAgIH0pIHtcbiAgICAgIC8vIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgZmVhdHVyZXMgd2l0aCBub2RlcyB3aGljaCBoYXZlIHBvcHVsYXRpb25Qcm9taXNlcyBmb3IgdGhpcyBmaWVsZFxuICAgICAgaWYgKGZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnPy5mZWF0dXJlcz8ucG9wdWxhdGlvblByb21pc2VzPy5zaXplKSB7XG4gICAgICAgIHJldHVybiByaWNoVGV4dFJlbGF0aW9uc2hpcFByb21pc2Uoe1xuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgIGVkaXRvclBvcHVsYXRpb25Qcm9taXNlczogZmluYWxTYW5pdGl6ZWRFZGl0b3JDb25maWcuZmVhdHVyZXMucG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGZpbmRNYW55LFxuICAgICAgICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgdmFsaWRhdGU6IHJpY2hUZXh0VmFsaWRhdGVIT0Moe1xuICAgICAgZWRpdG9yQ29uZmlnOiBmaW5hbFNhbml0aXplZEVkaXRvckNvbmZpZyxcbiAgICB9KSxcbiAgfVxufVxuXG5leHBvcnQgeyBBbGlnbkZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2FsaWduL2ZlYXR1cmUuc2VydmVyLmpzJ1xuZXhwb3J0IHsgQmxvY2tRdW90ZUZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Jsb2NrcXVvdGUvZmVhdHVyZS5zZXJ2ZXIuanMnXG5leHBvcnQgeyBCbG9ja3NGZWF0dXJlLCB0eXBlIEJsb2Nrc0ZlYXR1cmVQcm9wcyB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvYmxvY2tzL2ZlYXR1cmUuc2VydmVyLmpzJ1xuZXhwb3J0IHtcbiAgJGNyZWF0ZUJsb2NrTm9kZSxcbiAgJGlzQmxvY2tOb2RlLFxuICB0eXBlIEJsb2NrRmllbGRzLFxuICBCbG9ja05vZGUsXG4gIHR5cGUgU2VyaWFsaXplZEJsb2NrTm9kZSxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9ibG9ja3Mvbm9kZXMvQmxvY2tzTm9kZS5qcydcblxuZXhwb3J0IHsgVGV4dERyb3Bkb3duU2VjdGlvbldpdGhFbnRyaWVzIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jb21tb24vZmxvYXRpbmdTZWxlY3RUb29sYmFyVGV4dERyb3Bkb3duU2VjdGlvbi9pbmRleC5qcydcbmV4cG9ydCB7IExpbmVicmVha0hUTUxDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvY29udmVydGVycy9saW5lYnJlYWsuanMnXG5leHBvcnQgeyBQYXJhZ3JhcGhIVE1MQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL2NvbnZlcnRlcnMvcGFyYWdyYXBoLmpzJ1xuXG5leHBvcnQgeyBUZXh0SFRNTENvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvY29udmVydGVycy9odG1sL2NvbnZlcnRlci9jb252ZXJ0ZXJzL3RleHQuanMnXG5leHBvcnQgeyBkZWZhdWx0SFRNTENvbnZlcnRlcnMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2NvbnZlcnRlcnMvaHRtbC9jb252ZXJ0ZXIvZGVmYXVsdENvbnZlcnRlcnMuanMnXG5leHBvcnQge1xuICBjb252ZXJ0TGV4aWNhbE5vZGVzVG9IVE1MLFxuICBjb252ZXJ0TGV4aWNhbFRvSFRNTCxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL2luZGV4LmpzJ1xuZXhwb3J0IHR5cGUgeyBIVE1MQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvY29udmVydGVyL3R5cGVzLmpzJ1xuZXhwb3J0IHtcbiAgSFRNTENvbnZlcnRlckZlYXR1cmUsXG4gIHR5cGUgSFRNTENvbnZlcnRlckZlYXR1cmVQcm9wcyxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvZmVhdHVyZS5zZXJ2ZXIuanMnXG5leHBvcnQgeyBjb25zb2xpZGF0ZUhUTUxDb252ZXJ0ZXJzIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jb252ZXJ0ZXJzL2h0bWwvZmllbGQvaW5kZXguanMnXG5leHBvcnQgeyBsZXhpY2FsSFRNTCB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvY29udmVydGVycy9odG1sL2ZpZWxkL2luZGV4LmpzJ1xuZXhwb3J0IHsgY3JlYXRlQ2xpZW50Q29tcG9uZW50IH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9jcmVhdGVDbGllbnRDb21wb25lbnQuanMnXG5leHBvcnQgeyBUZXN0UmVjb3JkZXJGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9kZWJ1Zy90ZXN0cmVjb3JkZXIvZmVhdHVyZS5zZXJ2ZXIuanMnXG5leHBvcnQgeyBUcmVlVmlld0ZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2RlYnVnL3RyZWV2aWV3L2ZlYXR1cmUuc2VydmVyLmpzJ1xuZXhwb3J0IHsgQm9sZEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Zvcm1hdC9ib2xkL2ZlYXR1cmUuc2VydmVyLmpzJ1xuZXhwb3J0IHsgU2VjdGlvbldpdGhFbnRyaWVzIGFzIEZvcm1hdFNlY3Rpb25XaXRoRW50cmllcyB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L2NvbW1vbi9mbG9hdGluZ1NlbGVjdFRvb2xiYXJTZWN0aW9uLmpzJ1xuZXhwb3J0IHsgSW5saW5lQ29kZUZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Zvcm1hdC9pbmxpbmVjb2RlL2ZlYXR1cmUuc2VydmVyLmpzJ1xuZXhwb3J0IHsgSXRhbGljRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvZm9ybWF0L2l0YWxpYy9mZWF0dXJlLnNlcnZlci5qcydcbmV4cG9ydCB7IFN0cmlrZXRocm91Z2hGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9mb3JtYXQvc3RyaWtldGhyb3VnaC9mZWF0dXJlLnNlcnZlci5qcydcbmV4cG9ydCB7IFN1YnNjcmlwdEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Zvcm1hdC9zdWJzY3JpcHQvZmVhdHVyZS5zZXJ2ZXIuanMnXG5leHBvcnQgeyBTdXBlcnNjcmlwdEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Zvcm1hdC9zdXBlcnNjcmlwdC9mZWF0dXJlLnNlcnZlci5qcydcbmV4cG9ydCB7IFVuZGVybGluZUZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2Zvcm1hdC91bmRlcmxpbmUvZmVhdHVyZS5zZXJ2ZXIuanMnXG5cbmV4cG9ydCB7IEhlYWRpbmdGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9oZWFkaW5nL2ZlYXR1cmUuc2VydmVyLmpzJ1xuZXhwb3J0IHsgSW5kZW50RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvaW5kZW50L2ZlYXR1cmUuc2VydmVyLmpzJ1xuXG5leHBvcnQgeyBMaW5rRmVhdHVyZSwgdHlwZSBMaW5rRmVhdHVyZVNlcnZlclByb3BzIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saW5rL2ZlYXR1cmUuc2VydmVyLmpzJ1xuZXhwb3J0IHtcbiAgJGNyZWF0ZUF1dG9MaW5rTm9kZSxcbiAgJGlzQXV0b0xpbmtOb2RlLFxuICBBdXRvTGlua05vZGUsXG59IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbGluay9ub2Rlcy9BdXRvTGlua05vZGUuanMnXG5leHBvcnQge1xuICAkY3JlYXRlTGlua05vZGUsXG4gICRpc0xpbmtOb2RlLFxuICBMaW5rTm9kZSxcbiAgVE9HR0xFX0xJTktfQ09NTUFORCxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9saW5rL25vZGVzL0xpbmtOb2RlLmpzJ1xuZXhwb3J0IHR5cGUge1xuICBMaW5rRmllbGRzLFxuICBTZXJpYWxpemVkQXV0b0xpbmtOb2RlLFxuICBTZXJpYWxpemVkTGlua05vZGUsXG59IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbGluay9ub2Rlcy90eXBlcy5qcydcbmV4cG9ydCB7IENoZWNrTGlzdEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL2xpc3RzL2NoZWNrbGlzdC9mZWF0dXJlLnNlcnZlci5qcydcbmV4cG9ydCB7IE9yZGVyZWRMaXN0RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbGlzdHMvb3JkZXJlZGxpc3QvZmVhdHVyZS5zZXJ2ZXIuanMnXG5leHBvcnQgeyBVbm9yZGVyZWRMaXN0RmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbGlzdHMvdW5vcmRlcmVkbGlzdC9mZWF0dXJlLnNlcnZlci5qcydcbmV4cG9ydCB7IExleGljYWxQbHVnaW5Ub0xleGljYWxGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL2xleGljYWxQbHVnaW5Ub0xleGljYWwvZmVhdHVyZS5zZXJ2ZXIuanMnXG5leHBvcnQgeyBTbGF0ZUJsb2NrcXVvdGVDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvYmxvY2txdW90ZS9pbmRleC5qcydcbmV4cG9ydCB7IFNsYXRlSGVhZGluZ0NvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvY29udmVydGVycy9oZWFkaW5nL2luZGV4LmpzJ1xuZXhwb3J0IHsgU2xhdGVJbmRlbnRDb252ZXJ0ZXIgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2NvbnZlcnRlcnMvaW5kZW50L2luZGV4LmpzJ1xuZXhwb3J0IHsgU2xhdGVMaW5rQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL2xpbmsvaW5kZXguanMnXG5leHBvcnQgeyBTbGF0ZUxpc3RJdGVtQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL2xpc3RJdGVtL2luZGV4LmpzJ1xuZXhwb3J0IHsgU2xhdGVPcmRlcmVkTGlzdENvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvY29udmVydGVycy9vcmRlcmVkTGlzdC9pbmRleC5qcydcbmV4cG9ydCB7IFNsYXRlUmVsYXRpb25zaGlwQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL3JlbGF0aW9uc2hpcC9pbmRleC5qcydcbmV4cG9ydCB7IFNsYXRlVW5rbm93bkNvbnZlcnRlciB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9jb252ZXJ0ZXIvY29udmVydGVycy91bmtub3duL2luZGV4LmpzJ1xuZXhwb3J0IHsgU2xhdGVVbm9yZGVyZWRMaXN0Q29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL3Vub3JkZXJlZExpc3QvaW5kZXguanMnXG5cbmV4cG9ydCB7IFNsYXRlVXBsb2FkQ29udmVydGVyIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9jb252ZXJ0ZXJzL3VwbG9hZC9pbmRleC5qcydcbmV4cG9ydCB7IGRlZmF1bHRTbGF0ZUNvbnZlcnRlcnMgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL21pZ3JhdGlvbnMvc2xhdGVUb0xleGljYWwvY29udmVydGVyL2RlZmF1bHRDb252ZXJ0ZXJzLmpzJ1xuZXhwb3J0IHtcbiAgY29udmVydFNsYXRlTm9kZXNUb0xleGljYWwsXG4gIGNvbnZlcnRTbGF0ZVRvTGV4aWNhbCxcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci9pbmRleC5qcydcblxuZXhwb3J0IHR5cGUge1xuICBTbGF0ZU5vZGUsXG4gIFNsYXRlTm9kZUNvbnZlcnRlcixcbn0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy9taWdyYXRpb25zL3NsYXRlVG9MZXhpY2FsL2NvbnZlcnRlci90eXBlcy5qcydcbmV4cG9ydCB7IFNsYXRlVG9MZXhpY2FsRmVhdHVyZSB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvbWlncmF0aW9ucy9zbGF0ZVRvTGV4aWNhbC9mZWF0dXJlLnNlcnZlci5qcydcbmV4cG9ydCB7IFBhcmFncmFwaEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL3BhcmFncmFwaC9mZWF0dXJlLnNlcnZlci5qcydcbmV4cG9ydCB7IFJlbGF0aW9uc2hpcEZlYXR1cmUgfSBmcm9tICcuL2ZpZWxkL2ZlYXR1cmVzL3JlbGF0aW9uc2hpcC9mZWF0dXJlLnNlcnZlci5qcydcbmV4cG9ydCB7XG4gICRjcmVhdGVSZWxhdGlvbnNoaXBOb2RlLFxuICAkaXNSZWxhdGlvbnNoaXBOb2RlLFxuICB0eXBlIFJlbGF0aW9uc2hpcERhdGEsXG4gIFJlbGF0aW9uc2hpcE5vZGUsXG4gIHR5cGUgU2VyaWFsaXplZFJlbGF0aW9uc2hpcE5vZGUsXG59IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvcmVsYXRpb25zaGlwL25vZGVzL1JlbGF0aW9uc2hpcE5vZGUuanMnXG5leHBvcnQgdHlwZSB7XG4gIENsaWVudEZlYXR1cmUsXG4gIENsaWVudEZlYXR1cmVQcm92aWRlck1hcCxcbiAgRmVhdHVyZVByb3ZpZGVyQ2xpZW50LFxuICBGZWF0dXJlUHJvdmlkZXJQcm92aWRlckNsaWVudCxcbiAgRmVhdHVyZVByb3ZpZGVyUHJvdmlkZXJTZXJ2ZXIsXG4gIEZlYXR1cmVQcm92aWRlclNlcnZlcixcbiAgTm9kZVZhbGlkYXRpb24sXG4gIFBvcHVsYXRpb25Qcm9taXNlLFxuICBSZXNvbHZlZENsaWVudEZlYXR1cmUsXG4gIFJlc29sdmVkQ2xpZW50RmVhdHVyZU1hcCxcbiAgUmVzb2x2ZWRTZXJ2ZXJGZWF0dXJlLFxuICBSZXNvbHZlZFNlcnZlckZlYXR1cmVNYXAsXG4gIFNhbml0aXplZENsaWVudEZlYXR1cmVzLFxuICBTYW5pdGl6ZWRQbHVnaW4sXG4gIFNhbml0aXplZFNlcnZlckZlYXR1cmVzLFxuICBTZXJ2ZXJGZWF0dXJlLFxuICBTZXJ2ZXJGZWF0dXJlUHJvdmlkZXJNYXAsXG59IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvdHlwZXMuanMnXG5leHBvcnQgeyBVcGxvYWRGZWF0dXJlIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy91cGxvYWQvZmVhdHVyZS5zZXJ2ZXIuanMnXG5cbmV4cG9ydCB0eXBlIHsgVXBsb2FkRmVhdHVyZVByb3BzIH0gZnJvbSAnLi9maWVsZC9mZWF0dXJlcy91cGxvYWQvZmVhdHVyZS5zZXJ2ZXIuanMnXG5cbmV4cG9ydCB0eXBlIHsgUmF3VXBsb2FkUGF5bG9hZCB9IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvdXBsb2FkL25vZGVzL1VwbG9hZE5vZGUuanMnXG5cbmV4cG9ydCB7XG4gICRjcmVhdGVVcGxvYWROb2RlLFxuICAkaXNVcGxvYWROb2RlLFxuICB0eXBlIFNlcmlhbGl6ZWRVcGxvYWROb2RlLFxuICB0eXBlIFVwbG9hZERhdGEsXG4gIFVwbG9hZE5vZGUsXG59IGZyb20gJy4vZmllbGQvZmVhdHVyZXMvdXBsb2FkL25vZGVzL1VwbG9hZE5vZGUuanMnXG5leHBvcnQge1xuICBFZGl0b3JDb25maWdQcm92aWRlcixcbiAgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9jbGllbnQvRWRpdG9yQ29uZmlnUHJvdmlkZXIuanMnXG5leHBvcnQge1xuICBzYW5pdGl6ZUNsaWVudEVkaXRvckNvbmZpZyxcbiAgc2FuaXRpemVDbGllbnRGZWF0dXJlcyxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9jbGllbnQvc2FuaXRpemUuanMnXG5leHBvcnQge1xuICBkZWZhdWx0RWRpdG9yQ29uZmlnLFxuICBkZWZhdWx0RWRpdG9yRmVhdHVyZXMsXG4gIGRlZmF1bHRFZGl0b3JMZXhpY2FsQ29uZmlnLFxuICBkZWZhdWx0U2FuaXRpemVkU2VydmVyRWRpdG9yQ29uZmlnLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvY29uZmlnL3NlcnZlci9kZWZhdWx0LmpzJ1xuZXhwb3J0IHtcbiAgbG9hZEZlYXR1cmVzLFxuICBzb3J0RmVhdHVyZXNGb3JPcHRpbWFsTG9hZGluZyxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy9zZXJ2ZXIvbG9hZGVyLmpzJ1xuZXhwb3J0IHtcbiAgc2FuaXRpemVTZXJ2ZXJFZGl0b3JDb25maWcsXG4gIHNhbml0aXplU2VydmVyRmVhdHVyZXMsXG59IGZyb20gJy4vZmllbGQvbGV4aWNhbC9jb25maWcvc2VydmVyL3Nhbml0aXplLmpzJ1xuXG5leHBvcnQgdHlwZSB7XG4gIENsaWVudEVkaXRvckNvbmZpZyxcbiAgU2FuaXRpemVkQ2xpZW50RWRpdG9yQ29uZmlnLFxuICBTYW5pdGl6ZWRTZXJ2ZXJFZGl0b3JDb25maWcsXG4gIFNlcnZlckVkaXRvckNvbmZpZyxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL2NvbmZpZy90eXBlcy5qcydcbmV4cG9ydCB7IGdldEVuYWJsZWROb2RlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9ub2Rlcy9pbmRleC5qcydcblxuZXhwb3J0IHtcbiAgdHlwZSBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uLFxuICB0eXBlIEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSxcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL3R5cGVzLmpzJ1xuZXhwb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC9wbHVnaW5zL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi9pbmRleC5qcydcbmV4cG9ydCB0eXBlIHsgQWRhcHRlclByb3BzIH1cblxuZXhwb3J0IHtcbiAgU2xhc2hNZW51R3JvdXAsXG4gIFNsYXNoTWVudU9wdGlvbixcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLmpzJ1xuZXhwb3J0IHsgQ0FOX1VTRV9ET00gfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvY2FuVXNlRE9NLmpzJ1xuZXhwb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL2Nsb25lRGVlcC5qcydcbmV4cG9ydCB7IGdldERPTVJhbmdlUmVjdCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9nZXRET01SYW5nZVJlY3QuanMnXG5leHBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvZ2V0U2VsZWN0ZWROb2RlLmpzJ1xuZXhwb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9ndWFyZC5qcydcbmV4cG9ydCB7IGludmFyaWFudCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9pbnZhcmlhbnQuanMnXG5leHBvcnQgeyBqb2luQ2xhc3NlcyB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9qb2luQ2xhc3Nlcy5qcydcbmV4cG9ydCB7IGNyZWF0ZUJsb2NrTm9kZSB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9tYXJrZG93bi9jcmVhdGVCbG9ja05vZGUuanMnXG5leHBvcnQge1xuICBERVRBSUxfVFlQRV9UT19ERVRBSUwsXG4gIERPVUJMRV9MSU5FX0JSRUFLLFxuICBFTEVNRU5UX0ZPUk1BVF9UT19UWVBFLFxuICBFTEVNRU5UX1RZUEVfVE9fRk9STUFULFxuICBJU19BTExfRk9STUFUVElORyxcbiAgTFRSX1JFR0VYLFxuICBOT05fQlJFQUtJTkdfU1BBQ0UsXG4gIE5vZGVGb3JtYXQsXG4gIFJUTF9SRUdFWCxcbiAgVEVYVF9NT0RFX1RPX1RZUEUsXG4gIFRFWFRfVFlQRV9UT19GT1JNQVQsXG4gIFRFWFRfVFlQRV9UT19NT0RFLFxufSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvbm9kZUZvcm1hdC5qcydcbmV4cG9ydCB7IFBvaW50LCBpc1BvaW50IH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3BvaW50LmpzJ1xuZXhwb3J0IHsgUmVjdCB9IGZyb20gJy4vZmllbGQvbGV4aWNhbC91dGlscy9yZWN0LmpzJ1xuZXhwb3J0IHsgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24gfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24uanMnXG5leHBvcnQgeyBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IgfSBmcm9tICcuL2ZpZWxkL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yLmpzJ1xuZXhwb3J0IHtcbiAgYWRkU3dpcGVEb3duTGlzdGVuZXIsXG4gIGFkZFN3aXBlTGVmdExpc3RlbmVyLFxuICBhZGRTd2lwZVJpZ2h0TGlzdGVuZXIsXG4gIGFkZFN3aXBlVXBMaXN0ZW5lcixcbn0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3N3aXBlLmpzJ1xuZXhwb3J0IHsgc2FuaXRpemVVcmwsIHZhbGlkYXRlVXJsIH0gZnJvbSAnLi9maWVsZC9sZXhpY2FsL3V0aWxzL3VybC5qcydcbmV4cG9ydCB7IGRlZmF1bHRSaWNoVGV4dFZhbHVlIH0gZnJvbSAnLi9wb3B1bGF0ZS9kZWZhdWx0VmFsdWUuanMnXG4iXSwibmFtZXMiOlsid2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUiLCJkZWZhdWx0RWRpdG9yQ29uZmlnIiwiZGVmYXVsdEVkaXRvckZlYXR1cmVzIiwiZGVmYXVsdFNhbml0aXplZFNlcnZlckVkaXRvckNvbmZpZyIsImxvYWRGZWF0dXJlcyIsInNhbml0aXplU2VydmVyRmVhdHVyZXMiLCJjbG9uZURlZXAiLCJnZXRHZW5lcmF0ZUNvbXBvbmVudE1hcCIsImdldEdlbmVyYXRlU2NoZW1hTWFwIiwicmljaFRleHRSZWxhdGlvbnNoaXBQcm9taXNlIiwicmljaFRleHRWYWxpZGF0ZUhPQyIsImxleGljYWxFZGl0b3IiLCJwcm9wcyIsInJlc29sdmVkRmVhdHVyZU1hcCIsImZpbmFsU2FuaXRpemVkRWRpdG9yQ29uZmlnIiwiZmVhdHVyZXMiLCJsZXhpY2FsIiwiZGVmYXVsdEZlYXR1cmVzIiwidW5TYW5pdGl6ZWRFZGl0b3JDb25maWciLCJMYXp5Q2VsbENvbXBvbmVudCIsInRoZW4iLCJtb2R1bGUiLCJSaWNoVGV4dENlbGwiLCJtb2R1bGUyIiwid2l0aE1lcmdlZFByb3BzIiwiQ29tcG9uZW50IiwidG9NZXJnZUludG9Qcm9wcyIsImxleGljYWxFZGl0b3JDb25maWciLCJMYXp5RmllbGRDb21wb25lbnQiLCJSaWNoVGV4dEZpZWxkIiwiYWZ0ZXJSZWFkUHJvbWlzZSIsImZpZWxkIiwiaW5jb21pbmdFZGl0b3JTdGF0ZSIsInNpYmxpbmdEb2MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb21pc2VzIiwiaG9va3MiLCJhZnRlclJlYWRQcm9taXNlcyIsImxlbmd0aCIsInByb21pc2UiLCJwdXNoIiwiYWxsIiwiY2F0Y2giLCJlcnJvciIsImVkaXRvckNvbmZpZyIsImdlbmVyYXRlQ29tcG9uZW50TWFwIiwiZ2VuZXJhdGVTY2hlbWFNYXAiLCJvdXRwdXRTY2hlbWEiLCJjb2xsZWN0aW9uSURGaWVsZFR5cGVzIiwiY29uZmlnIiwiaW50ZXJmYWNlTmFtZURlZmluaXRpb25zIiwiaXNSZXF1aXJlZCIsInR5cGUiLCJwcm9wZXJ0aWVzIiwicm9vdCIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY2hpbGRyZW4iLCJpdGVtcyIsInZlcnNpb24iLCJyZXF1aXJlZCIsImRpcmVjdGlvbiIsIm9uZU9mIiwiZW51bSIsImZvcm1hdCIsImluZGVudCIsIm1vZGlmeU91dHB1dFNjaGVtYSIsImdlbmVyYXRlZFR5cGVzIiwibW9kaWZ5T3V0cHV0U2NoZW1hcyIsImN1cnJlbnRTY2hlbWEiLCJwb3B1bGF0aW9uUHJvbWlzZSIsImNvbnRleHQiLCJjdXJyZW50RGVwdGgiLCJkZXB0aCIsImZpbmRNYW55IiwiZmxhdHRlbkxvY2FsZXMiLCJvdmVycmlkZUFjY2VzcyIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlcSIsInNob3dIaWRkZW5GaWVsZHMiLCJzaXplIiwiZWRpdG9yUG9wdWxhdGlvblByb21pc2VzIiwidmFsaWRhdGUiLCJBbGlnbkZlYXR1cmUiLCJCbG9ja1F1b3RlRmVhdHVyZSIsIkJsb2Nrc0ZlYXR1cmUiLCIkY3JlYXRlQmxvY2tOb2RlIiwiJGlzQmxvY2tOb2RlIiwiQmxvY2tOb2RlIiwiVGV4dERyb3Bkb3duU2VjdGlvbldpdGhFbnRyaWVzIiwiTGluZWJyZWFrSFRNTENvbnZlcnRlciIsIlBhcmFncmFwaEhUTUxDb252ZXJ0ZXIiLCJUZXh0SFRNTENvbnZlcnRlciIsImRlZmF1bHRIVE1MQ29udmVydGVycyIsImNvbnZlcnRMZXhpY2FsTm9kZXNUb0hUTUwiLCJjb252ZXJ0TGV4aWNhbFRvSFRNTCIsIkhUTUxDb252ZXJ0ZXJGZWF0dXJlIiwiY29uc29saWRhdGVIVE1MQ29udmVydGVycyIsImxleGljYWxIVE1MIiwiY3JlYXRlQ2xpZW50Q29tcG9uZW50IiwiVGVzdFJlY29yZGVyRmVhdHVyZSIsIlRyZWVWaWV3RmVhdHVyZSIsIkJvbGRGZWF0dXJlIiwiU2VjdGlvbldpdGhFbnRyaWVzIiwiRm9ybWF0U2VjdGlvbldpdGhFbnRyaWVzIiwiSW5saW5lQ29kZUZlYXR1cmUiLCJJdGFsaWNGZWF0dXJlIiwiU3RyaWtldGhyb3VnaEZlYXR1cmUiLCJTdWJzY3JpcHRGZWF0dXJlIiwiU3VwZXJzY3JpcHRGZWF0dXJlIiwiVW5kZXJsaW5lRmVhdHVyZSIsIkhlYWRpbmdGZWF0dXJlIiwiSW5kZW50RmVhdHVyZSIsIkxpbmtGZWF0dXJlIiwiJGNyZWF0ZUF1dG9MaW5rTm9kZSIsIiRpc0F1dG9MaW5rTm9kZSIsIkF1dG9MaW5rTm9kZSIsIiRjcmVhdGVMaW5rTm9kZSIsIiRpc0xpbmtOb2RlIiwiTGlua05vZGUiLCJUT0dHTEVfTElOS19DT01NQU5EIiwiQ2hlY2tMaXN0RmVhdHVyZSIsIk9yZGVyZWRMaXN0RmVhdHVyZSIsIlVub3JkZXJlZExpc3RGZWF0dXJlIiwiTGV4aWNhbFBsdWdpblRvTGV4aWNhbEZlYXR1cmUiLCJTbGF0ZUJsb2NrcXVvdGVDb252ZXJ0ZXIiLCJTbGF0ZUhlYWRpbmdDb252ZXJ0ZXIiLCJTbGF0ZUluZGVudENvbnZlcnRlciIsIlNsYXRlTGlua0NvbnZlcnRlciIsIlNsYXRlTGlzdEl0ZW1Db252ZXJ0ZXIiLCJTbGF0ZU9yZGVyZWRMaXN0Q29udmVydGVyIiwiU2xhdGVSZWxhdGlvbnNoaXBDb252ZXJ0ZXIiLCJTbGF0ZVVua25vd25Db252ZXJ0ZXIiLCJTbGF0ZVVub3JkZXJlZExpc3RDb252ZXJ0ZXIiLCJTbGF0ZVVwbG9hZENvbnZlcnRlciIsImRlZmF1bHRTbGF0ZUNvbnZlcnRlcnMiLCJjb252ZXJ0U2xhdGVOb2Rlc1RvTGV4aWNhbCIsImNvbnZlcnRTbGF0ZVRvTGV4aWNhbCIsIlNsYXRlVG9MZXhpY2FsRmVhdHVyZSIsIlBhcmFncmFwaEZlYXR1cmUiLCJSZWxhdGlvbnNoaXBGZWF0dXJlIiwiJGNyZWF0ZVJlbGF0aW9uc2hpcE5vZGUiLCIkaXNSZWxhdGlvbnNoaXBOb2RlIiwiUmVsYXRpb25zaGlwTm9kZSIsIlVwbG9hZEZlYXR1cmUiLCIkY3JlYXRlVXBsb2FkTm9kZSIsIiRpc1VwbG9hZE5vZGUiLCJVcGxvYWROb2RlIiwiRWRpdG9yQ29uZmlnUHJvdmlkZXIiLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0Iiwic2FuaXRpemVDbGllbnRFZGl0b3JDb25maWciLCJzYW5pdGl6ZUNsaWVudEZlYXR1cmVzIiwiZGVmYXVsdEVkaXRvckxleGljYWxDb25maWciLCJzb3J0RmVhdHVyZXNGb3JPcHRpbWFsTG9hZGluZyIsInNhbml0aXplU2VydmVyRWRpdG9yQ29uZmlnIiwiZ2V0RW5hYmxlZE5vZGVzIiwiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsIlNsYXNoTWVudUdyb3VwIiwiU2xhc2hNZW51T3B0aW9uIiwiQ0FOX1VTRV9ET00iLCJnZXRET01SYW5nZVJlY3QiLCJnZXRTZWxlY3RlZE5vZGUiLCJpc0hUTUxFbGVtZW50IiwiaW52YXJpYW50Iiwiam9pbkNsYXNzZXMiLCJjcmVhdGVCbG9ja05vZGUiLCJERVRBSUxfVFlQRV9UT19ERVRBSUwiLCJET1VCTEVfTElORV9CUkVBSyIsIkVMRU1FTlRfRk9STUFUX1RPX1RZUEUiLCJFTEVNRU5UX1RZUEVfVE9fRk9STUFUIiwiSVNfQUxMX0ZPUk1BVFRJTkciLCJMVFJfUkVHRVgiLCJOT05fQlJFQUtJTkdfU1BBQ0UiLCJOb2RlRm9ybWF0IiwiUlRMX1JFR0VYIiwiVEVYVF9NT0RFX1RPX1RZUEUiLCJURVhUX1RZUEVfVE9fRk9STUFUIiwiVEVYVF9UWVBFX1RPX01PREUiLCJQb2ludCIsImlzUG9pbnQiLCJSZWN0Iiwic2V0RmxvYXRpbmdFbGVtUG9zaXRpb24iLCJzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IiLCJhZGRTd2lwZURvd25MaXN0ZW5lciIsImFkZFN3aXBlTGVmdExpc3RlbmVyIiwiYWRkU3dpcGVSaWdodExpc3RlbmVyIiwiYWRkU3dpcGVVcExpc3RlbmVyIiwic2FuaXRpemVVcmwiLCJ2YWxpZGF0ZVVybCIsImRlZmF1bHRSaWNoVGV4dFZhbHVlIl0sIm1hcHBpbmdzIjoiQUFLQSxTQUFTQSwwQkFBMEIsUUFBUSxvQkFBbUI7QUFNOUQsU0FDRUMsbUJBQW1CLEVBQ25CQyxxQkFBcUIsRUFDckJDLGtDQUFrQyxRQUM3QiwyQ0FBMEM7QUFDakQsU0FBU0MsWUFBWSxRQUFRLDBDQUF5QztBQUN0RSxTQUFTQyxzQkFBc0IsUUFBUSw0Q0FBMkM7QUFDbEYsU0FBU0MsU0FBUyxRQUFRLHFDQUFvQztBQUM5RCxTQUFTQyx1QkFBdUIsUUFBUSw0QkFBMkI7QUFDbkUsU0FBU0Msb0JBQW9CLFFBQVEseUJBQXdCO0FBQzdELFNBQVNDLDJC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
|
|
275
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type { SerializedEditorState } from 'lexical'\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor.js'\nimport type { RichTextAdapter } from 'payload/types'\n\nimport { withNullableJSONSchemaType } from 'payload/utilities'\n\nimport type { FeatureProviderServer, ResolvedServerFeatureMap } from './field/features/types.js'\nimport type { SanitizedServerEditorConfig } from './field/lexical/config/types.js'\nimport type { AdapterProps } from './types.js'\n\nimport {\n defaultEditorConfig,\n defaultEditorFeatures,\n defaultSanitizedServerEditorConfig,\n} from './field/lexical/config/server/default.js'\nimport { loadFeatures } from './field/lexical/config/server/loader.js'\nimport { sanitizeServerFeatures } from './field/lexical/config/server/sanitize.js'\nimport { cloneDeep } from './field/lexical/utils/cloneDeep.js'\nimport { getGenerateComponentMap } from './generateComponentMap.js'\nimport { getGenerateSchemaMap } from './generateSchemaMap.js'\nimport { richTextRelationshipPromise } from './populate/richTextRelationshipPromise.js'\nimport { richTextValidateHOC } from './validate/index.js'\n\nexport type LexicalEditorProps = {\n features?:\n | (({\n defaultFeatures,\n }: {\n defaultFeatures: FeatureProviderServer<unknown, unknown>[]\n }) => FeatureProviderServer<unknown, unknown>[])\n | FeatureProviderServer<unknown, unknown>[]\n lexical?: LexicalEditorConfig\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport type LexicalRichTextAdapter = RichTextAdapter<SerializedEditorState, AdapterProps, any> & {\n editorConfig: SanitizedServerEditorConfig\n}\n\nexport function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapter {\n let resolvedFeatureMap: ResolvedServerFeatureMap = null\n\n let finalSanitizedEditorConfig: SanitizedServerEditorConfig // For server only\n if (!props || (!props.features && !props.lexical)) {\n finalSanitizedEditorConfig = cloneDeep(defaultSanitizedServerEditorConfig)\n resolvedFeatureMap = finalSanitizedEditorConfig.resolvedFeatureMap\n } else {\n let features: FeatureProviderServer<unknown, unknown>[] =\n props.features && typeof props.features === 'function'\n ? props.features({ defaultFeatures: cloneDeep(defaultEditorFeatures) })\n : (props.features as FeatureProviderServer<unknown, unknown>[])\n if (!features) {\n features = cloneDeep(defaultEditorFeatures)\n }\n\n const lexical: LexicalEditorConfig = props.lexical\n\n resolvedFeatureMap = loadFeatures({\n unSanitizedEditorConfig: {\n features,\n lexical: lexical ? lexical : defaultEditorConfig.lexical,\n },\n })\n\n finalSanitizedEditorConfig = {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: lexical ? lexical : defaultEditorConfig.lexical,\n resolvedFeatureMap,\n }\n }\n\n return {\n LazyCellComponent: () =>\n // @ts-expect-error\n import('./cell/index.js').then((module) => {\n const RichTextCell = module.RichTextCell\n return import('@payloadcms/ui').then((module2) =>\n module2.withMergedProps({\n Component: RichTextCell,\n toMergeIntoProps: { lexicalEditorConfig: finalSanitizedEditorConfig.lexical }, // lexicalEditorConfig is serializable\n }),\n )\n }),\n\n LazyFieldComponent: () =>\n import('./field/index.js').then((module) => {\n const RichTextField = module.RichTextField\n return import('@payloadcms/ui').then((module2) =>\n module2.withMergedProps({\n Component: RichTextField,\n toMergeIntoProps: { lexicalEditorConfig: finalSanitizedEditorConfig.lexical }, // lexicalEditorConfig is serializable\n }),\n )\n }),\n afterReadPromise: ({ field, incomingEditorState, siblingDoc }) => {\n return new Promise<void>((resolve, reject) => {\n const promises: Promise<void>[] = []\n\n if (finalSanitizedEditorConfig?.features?.hooks?.afterReadPromises?.length) {\n for (const afterReadPromise of finalSanitizedEditorConfig.features.hooks\n .afterReadPromises) {\n const promise = afterReadPromise({\n field,\n incomingEditorState,\n siblingDoc,\n })\n if (promise) {\n promises.push(promise)\n }\n }\n }\n\n Promise.all(promises)\n .then(() => resolve())\n .catch((error) => reject(error))\n })\n },\n editorConfig: finalSanitizedEditorConfig,\n generateComponentMap: getGenerateComponentMap({\n resolvedFeatureMap,\n }),\n generateSchemaMap: getGenerateSchemaMap({\n resolvedFeatureMap,\n }),\n outputSchema: ({\n collectionIDFieldTypes,\n config,\n field,\n interfaceNameDefinitions,\n isRequired,\n }) => {\n let outputSchema: JSONSchema4 = {\n // This schema matches the SerializedEditorState type so far, that it's possible to cast SerializedEditorState to this schema without any errors.\n // In the future, we should\n // 1) allow recursive children\n // 2) Pass in all the different types for every node added to the editorconfig. This can be done with refs in the schema.\n type: withNullableJSONSchemaType('object', isRequired),\n properties: {\n root: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: {\n type: 'string',\n },\n children: {\n type: 'array',\n items: {\n type: 'object',\n additionalProperties: true,\n properties: {\n type: {\n type: 'string',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['type', 'version'],\n },\n },\n direction: {\n oneOf: [\n {\n enum: ['ltr', 'rtl'],\n },\n {\n type: 'null',\n },\n ],\n },\n format: {\n type: 'string',\n enum: ['left', 'start', 'center', 'right', 'end', 'justify', ''], // ElementFormatType, since the root node is an element\n },\n indent: {\n type: 'integer',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['children', 'direction', 'format', 'indent', 'type', 'version'],\n },\n },\n required: ['root'],\n }\n for (const modifyOutputSchema of finalSanitizedEditorConfig.features.generatedTypes\n .modifyOutputSchemas) {\n outputSchema = modifyOutputSchema({\n collectionIDFieldTypes,\n config,\n currentSchema: outputSchema,\n field,\n interfaceNameDefinitions,\n isRequired,\n })\n }\n\n return outputSchema\n },\n populationPromise({\n context,\n currentDepth,\n depth,\n field,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n // check if there are any features with nodes which have populationPromises for this field\n if (finalSanitizedEditorConfig?.features?.populationPromises?.size) {\n return richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n editorPopulationPromises: finalSanitizedEditorConfig.features.populationPromises,\n field,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n\n return null\n },\n validate: richTextValidateHOC({\n editorConfig: finalSanitizedEditorConfig,\n }),\n }\n}\n\nexport { AlignFeature } from './field/features/align/feature.server.js'\nexport { BlockQuoteFeature } from './field/features/blockquote/feature.server.js'\nexport { BlocksFeature, type BlocksFeatureProps } from './field/features/blocks/feature.server.js'\nexport {\n $createBlockNode,\n $isBlockNode,\n type BlockFields,\n BlockNode,\n type SerializedBlockNode,\n} from './field/features/blocks/nodes/BlocksNode.js'\n\nexport { TextDropdownSectionWithEntries } from './field/features/common/floatingSelectToolbarTextDropdownSection/index.js'\nexport { LinebreakHTMLConverter } from './field/features/converters/html/converter/converters/linebreak.js'\nexport { ParagraphHTMLConverter } from './field/features/converters/html/converter/converters/paragraph.js'\n\nexport { TextHTMLConverter } from './field/features/converters/html/converter/converters/text.js'\nexport { defaultHTMLConverters } from './field/features/converters/html/converter/defaultConverters.js'\nexport {\n convertLexicalNodesToHTML,\n convertLexicalToHTML,\n} from './field/features/converters/html/converter/index.js'\nexport type { HTMLConverter } from './field/features/converters/html/converter/types.js'\nexport {\n HTMLConverterFeature,\n type HTMLConverterFeatureProps,\n} from './field/features/converters/html/feature.server.js'\nexport { consolidateHTMLConverters } from './field/features/converters/html/field/index.js'\nexport { lexicalHTML } from './field/features/converters/html/field/index.js'\nexport { createClientComponent } from './field/features/createClientComponent.js'\nexport { TestRecorderFeature } from './field/features/debug/testrecorder/feature.server.js'\nexport { TreeViewFeature } from './field/features/debug/treeview/feature.server.js'\nexport { BoldFeature } from './field/features/format/bold/feature.server.js'\nexport { SectionWithEntries as FormatSectionWithEntries } from './field/features/format/common/floatingSelectToolbarSection.js'\nexport { InlineCodeFeature } from './field/features/format/inlinecode/feature.server.js'\nexport { ItalicFeature } from './field/features/format/italic/feature.server.js'\nexport { StrikethroughFeature } from './field/features/format/strikethrough/feature.server.js'\nexport { SubscriptFeature } from './field/features/format/subscript/feature.server.js'\nexport { SuperscriptFeature } from './field/features/format/superscript/feature.server.js'\nexport { UnderlineFeature } from './field/features/format/underline/feature.server.js'\n\nexport { HeadingFeature } from './field/features/heading/feature.server.js'\nexport { IndentFeature } from './field/features/indent/feature.server.js'\n\nexport { LinkFeature, type LinkFeatureServerProps } from './field/features/link/feature.server.js'\nexport {\n $createAutoLinkNode,\n $isAutoLinkNode,\n AutoLinkNode,\n} from './field/features/link/nodes/AutoLinkNode.js'\nexport {\n $createLinkNode,\n $isLinkNode,\n LinkNode,\n TOGGLE_LINK_COMMAND,\n} from './field/features/link/nodes/LinkNode.js'\nexport type {\n LinkFields,\n SerializedAutoLinkNode,\n SerializedLinkNode,\n} from './field/features/link/nodes/types.js'\nexport { CheckListFeature } from './field/features/lists/checklist/feature.server.js'\nexport { OrderedListFeature } from './field/features/lists/orderedlist/feature.server.js'\nexport { UnorderedListFeature } from './field/features/lists/unorderedlist/feature.server.js'\nexport { LexicalPluginToLexicalFeature } from './field/features/migrations/lexicalPluginToLexical/feature.server.js'\nexport { SlateBlockquoteConverter } from './field/features/migrations/slateToLexical/converter/converters/blockquote/index.js'\nexport { SlateHeadingConverter } from './field/features/migrations/slateToLexical/converter/converters/heading/index.js'\nexport { SlateIndentConverter } from './field/features/migrations/slateToLexical/converter/converters/indent/index.js'\nexport { SlateLinkConverter } from './field/features/migrations/slateToLexical/converter/converters/link/index.js'\nexport { SlateListItemConverter } from './field/features/migrations/slateToLexical/converter/converters/listItem/index.js'\nexport { SlateOrderedListConverter } from './field/features/migrations/slateToLexical/converter/converters/orderedList/index.js'\nexport { SlateRelationshipConverter } from './field/features/migrations/slateToLexical/converter/converters/relationship/index.js'\nexport { SlateUnknownConverter } from './field/features/migrations/slateToLexical/converter/converters/unknown/index.js'\nexport { SlateUnorderedListConverter } from './field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js'\n\nexport { SlateUploadConverter } from './field/features/migrations/slateToLexical/converter/converters/upload/index.js'\nexport { defaultSlateConverters } from './field/features/migrations/slateToLexical/converter/defaultConverters.js'\nexport {\n convertSlateNodesToLexical,\n convertSlateToLexical,\n} from './field/features/migrations/slateToLexical/converter/index.js'\n\nexport type {\n SlateNode,\n SlateNodeConverter,\n} from './field/features/migrations/slateToLexical/converter/types.js'\nexport { SlateToLexicalFeature } from './field/features/migrations/slateToLexical/feature.server.js'\nexport { ParagraphFeature } from './field/features/paragraph/feature.server.js'\nexport { RelationshipFeature } from './field/features/relationship/feature.server.js'\nexport {\n $createRelationshipNode,\n $isRelationshipNode,\n type RelationshipData,\n RelationshipNode,\n type SerializedRelationshipNode,\n} from './field/features/relationship/nodes/RelationshipNode.js'\nexport type {\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n FeatureProviderProviderServer,\n FeatureProviderServer,\n NodeValidation,\n PopulationPromise,\n ResolvedClientFeature,\n ResolvedClientFeatureMap,\n ResolvedServerFeature,\n ResolvedServerFeatureMap,\n SanitizedClientFeatures,\n SanitizedPlugin,\n SanitizedServerFeatures,\n ServerFeature,\n ServerFeatureProviderMap,\n} from './field/features/types.js'\nexport { UploadFeature } from './field/features/upload/feature.server.js'\n\nexport type { UploadFeatureProps } from './field/features/upload/feature.server.js'\n\nexport type { RawUploadPayload } from './field/features/upload/nodes/UploadNode.js'\n\nexport {\n $createUploadNode,\n $isUploadNode,\n type SerializedUploadNode,\n type UploadData,\n UploadNode,\n} from './field/features/upload/nodes/UploadNode.js'\nexport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './field/lexical/config/client/EditorConfigProvider.js'\nexport {\n sanitizeClientEditorConfig,\n sanitizeClientFeatures,\n} from './field/lexical/config/client/sanitize.js'\nexport {\n defaultEditorConfig,\n defaultEditorFeatures,\n defaultEditorLexicalConfig,\n defaultSanitizedServerEditorConfig,\n} from './field/lexical/config/server/default.js'\nexport {\n loadFeatures,\n sortFeaturesForOptimalLoading,\n} from './field/lexical/config/server/loader.js'\nexport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './field/lexical/config/server/sanitize.js'\n\nexport type {\n ClientEditorConfig,\n SanitizedClientEditorConfig,\n SanitizedServerEditorConfig,\n ServerEditorConfig,\n} from './field/lexical/config/types.js'\nexport { getEnabledNodes } from './field/lexical/nodes/index.js'\n\nexport {\n type FloatingToolbarSection,\n type FloatingToolbarSectionEntry,\n} from './field/lexical/plugins/FloatingSelectToolbar/types.js'\nexport { ENABLE_SLASH_MENU_COMMAND } from './field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js'\nexport type { AdapterProps }\n\nexport {\n SlashMenuGroup,\n SlashMenuOption,\n} from './field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nexport { CAN_USE_DOM } from './field/lexical/utils/canUseDOM.js'\nexport { cloneDeep } from './field/lexical/utils/cloneDeep.js'\nexport { getDOMRangeRect } from './field/lexical/utils/getDOMRangeRect.js'\nexport { getSelectedNode } from './field/lexical/utils/getSelectedNode.js'\nexport { isHTMLElement } from './field/lexical/utils/guard.js'\nexport { invariant } from './field/lexical/utils/invariant.js'\nexport { joinClasses } from './field/lexical/utils/joinClasses.js'\nexport { createBlockNode } from './field/lexical/utils/markdown/createBlockNode.js'\nexport {\n DETAIL_TYPE_TO_DETAIL,\n DOUBLE_LINE_BREAK,\n ELEMENT_FORMAT_TO_TYPE,\n ELEMENT_TYPE_TO_FORMAT,\n IS_ALL_FORMATTING,\n LTR_REGEX,\n NON_BREAKING_SPACE,\n NodeFormat,\n RTL_REGEX,\n TEXT_MODE_TO_TYPE,\n TEXT_TYPE_TO_FORMAT,\n TEXT_TYPE_TO_MODE,\n} from './field/lexical/utils/nodeFormat.js'\nexport { Point, isPoint } from './field/lexical/utils/point.js'\nexport { Rect } from './field/lexical/utils/rect.js'\nexport { setFloatingElemPosition } from './field/lexical/utils/setFloatingElemPosition.js'\nexport { setFloatingElemPositionForLinkEditor } from './field/lexical/utils/setFloatingElemPositionForLinkEditor.js'\nexport {\n addSwipeDownListener,\n addSwipeLeftListener,\n addSwipeRightListener,\n addSwipeUpListener,\n} from './field/lexical/utils/swipe.js'\nexport { sanitizeUrl, validateUrl } from './field/lexical/utils/url.js'\nexport { defaultRichTextValue } from './populate/defaultValue.js'\n"],"names":["withNullableJSONSchemaType","defaultEditorConfig","defaultEditorFeatures","defaultSanitizedServerEditorConfig","loadFeatures","sanitizeServerFeatures","cloneDeep","getGenerateComponentMap","getGenerateSchemaMap","richTextRelationshipPromise","richTextValidateHOC","lexicalEditor","props","resolvedFeatureMap","finalSanitizedEditorConfig","features","lexical","defaultFeatures","unSanitizedEditorConfig","LazyCellComponent","then","module","RichTextCell","module2","withMergedProps","Component","toMergeIntoProps","lexicalEditorConfig","LazyFieldComponent","RichTextField","afterReadPromise","field","incomingEditorState","siblingDoc","Promise","resolve","reject","promises","hooks","afterReadPromises","length","promise","push","all","catch","error","editorConfig","generateComponentMap","generateSchemaMap","outputSchema","collectionIDFieldTypes","config","interfaceNameDefinitions","isRequired","type","properties","root","additionalProperties","children","items","version","required","direction","oneOf","enum","format","indent","modifyOutputSchema","generatedTypes","modifyOutputSchemas","currentSchema","populationPromise","context","currentDepth","depth","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","size","editorPopulationPromises","validate","AlignFeature","BlockQuoteFeature","BlocksFeature","$createBlockNode","$isBlockNode","BlockNode","TextDropdownSectionWithEntries","LinebreakHTMLConverter","ParagraphHTMLConverter","TextHTMLConverter","defaultHTMLConverters","convertLexicalNodesToHTML","convertLexicalToHTML","HTMLConverterFeature","consolidateHTMLConverters","lexicalHTML","createClientComponent","TestRecorderFeature","TreeViewFeature","BoldFeature","SectionWithEntries","FormatSectionWithEntries","InlineCodeFeature","ItalicFeature","StrikethroughFeature","SubscriptFeature","SuperscriptFeature","UnderlineFeature","HeadingFeature","IndentFeature","LinkFeature","$createAutoLinkNode","$isAutoLinkNode","AutoLinkNode","$createLinkNode","$isLinkNode","LinkNode","TOGGLE_LINK_COMMAND","CheckListFeature","OrderedListFeature","UnorderedListFeature","LexicalPluginToLexicalFeature","SlateBlockquoteConverter","SlateHeadingConverter","SlateIndentConverter","SlateLinkConverter","SlateListItemConverter","SlateOrderedListConverter","SlateRelationshipConverter","SlateUnknownConverter","SlateUnorderedListConverter","SlateUploadConverter","defaultSlateConverters","convertSlateNodesToLexical","convertSlateToLexical","SlateToLexicalFeature","ParagraphFeature","RelationshipFeature","$createRelationshipNode","$isRelationshipNode","RelationshipNode","UploadFeature","$createUploadNode","$isUploadNode","UploadNode","EditorConfigProvider","useEditorConfigContext","sanitizeClientEditorConfig","sanitizeClientFeatures","defaultEditorLexicalConfig","sortFeaturesForOptimalLoading","sanitizeServerEditorConfig","getEnabledNodes","ENABLE_SLASH_MENU_COMMAND","SlashMenuGroup","SlashMenuOption","CAN_USE_DOM","getDOMRangeRect","getSelectedNode","isHTMLElement","invariant","joinClasses","createBlockNode","DETAIL_TYPE_TO_DETAIL","DOUBLE_LINE_BREAK","ELEMENT_FORMAT_TO_TYPE","ELEMENT_TYPE_TO_FORMAT","IS_ALL_FORMATTING","LTR_REGEX","NON_BREAKING_SPACE","NodeFormat","RTL_REGEX","TEXT_MODE_TO_TYPE","TEXT_TYPE_TO_FORMAT","TEXT_TYPE_TO_MODE","Point","isPoint","Rect","setFloatingElemPosition","setFloatingElemPositionForLinkEditor","addSwipeDownListener","addSwipeLeftListener","addSwipeRightListener","addSwipeUpListener","sanitizeUrl","validateUrl","defaultRichTextValue"],"mappings":"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"}
|
|
@@ -47,4 +47,4 @@ export const defaultRichTextValueV2 = {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=
|
|
50
|
+
//# sourceMappingURL=defaultValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/populate/defaultValue.ts"],"sourcesContent":["import type { SerializedEditorState, SerializedParagraphNode, SerializedTextNode } from 'lexical'\n\nexport const defaultRichTextValue: SerializedEditorState = {\n root: {\n type: 'root',\n children: [\n {\n type: 'paragraph',\n children: [\n {\n type: 'text',\n detail: 0,\n format: 0,\n mode: 'normal',\n style: '',\n text: '',\n version: 1,\n } as SerializedTextNode,\n ],\n direction: null,\n format: '',\n indent: 0,\n version: 1,\n } as SerializedParagraphNode,\n ],\n direction: null,\n format: '',\n indent: 0,\n version: 1,\n },\n}\n\nexport const defaultRichTextValueV2: SerializedEditorState = {\n root: {\n type: 'root',\n children: [\n {\n type: 'paragraph',\n children: [],\n direction: null,\n format: '',\n indent: 0,\n version: 1,\n } as SerializedParagraphNode,\n ],\n direction: null,\n format: '',\n indent: 0,\n version: 1,\n },\n}\n"],"names":["defaultRichTextValue","root","type","children","detail","format","mode","style","text","version","direction","indent","defaultRichTextValueV2"],"mappings":"AAEA,OAAO,MAAMA,uBAA8C;IACzDC,MAAM;QACJC,MAAM;QACNC,UAAU;YACR;gBACED,MAAM;gBACNC,UAAU;oBACR;wBACED,MAAM;wBACNE,QAAQ;wBACRC,QAAQ;wBACRC,MAAM;wBACNC,OAAO;wBACPC,MAAM;wBACNC,SAAS;oBACX;iBACD;gBACDC,WAAW;gBACXL,QAAQ;gBACRM,QAAQ;gBACRF,SAAS;YACX;SACD;QACDC,WAAW;QACXL,QAAQ;QACRM,QAAQ;QACRF,SAAS;IACX;AACF,EAAC;AAED,OAAO,MAAMG,yBAAgD;IAC3DX,MAAM;QACJC,MAAM;QACNC,UAAU;YACR;gBACED,MAAM;gBACNC,UAAU,EAAE;gBACZO,WAAW;gBACXL,QAAQ;gBACRM,QAAQ;gBACRF,SAAS;YACX;SACD;QACDC,WAAW;QACXL,QAAQ;QACRM,QAAQ;QACRF,SAAS;IACX;AACF,EAAC"}
|
|
@@ -18,4 +18,4 @@ export const populate = async ({ id, collection, currentDepth, data, depth, key,
|
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=populate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/populate/populate.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { PayloadRequest } from 'payload/types'\nimport type { Collection, Field, RichTextField } from 'payload/types'\n\nimport type { AdapterProps } from '../types.js'\n\ntype Arguments = {\n currentDepth?: number\n data: unknown\n depth: number\n field: RichTextField<SerializedEditorState, AdapterProps>\n key: number | string\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields: boolean\n}\n\nexport const populate = async ({\n id,\n collection,\n currentDepth,\n data,\n depth,\n key,\n overrideAccess,\n req,\n showHiddenFields,\n}: Omit<Arguments, 'field'> & {\n collection: Collection\n field: Field\n id: string\n}): Promise<void> => {\n const dataRef = data as Record<string, unknown>\n\n const doc = await req.payloadDataLoader.load(\n JSON.stringify([\n req.transactionID,\n collection.config.slug,\n id,\n depth,\n currentDepth + 1,\n req.locale,\n req.fallbackLocale,\n typeof overrideAccess === 'undefined' ? false : overrideAccess,\n showHiddenFields,\n ]),\n )\n\n if (doc) {\n dataRef[key] = doc\n } else {\n dataRef[key] = null\n }\n}\n"],"names":["populate","id","collection","currentDepth","data","depth","key","overrideAccess","req","showHiddenFields","dataRef","doc","payloadDataLoader","load","JSON","stringify","transactionID","config","slug","locale","fallbackLocale"],"mappings":"AAiBA,OAAO,MAAMA,WAAW,OAAO,EAC7BC,EAAE,EACFC,UAAU,EACVC,YAAY,EACZC,IAAI,EACJC,KAAK,EACLC,GAAG,EACHC,cAAc,EACdC,GAAG,EACHC,gBAAgB,EAKjB;IACC,MAAMC,UAAUN;IAEhB,MAAMO,MAAM,MAAMH,IAAII,iBAAiB,CAACC,IAAI,CAC1CC,KAAKC,SAAS,CAAC;QACbP,IAAIQ,aAAa;QACjBd,WAAWe,MAAM,CAACC,IAAI;QACtBjB;QACAI;QACAF,eAAe;QACfK,IAAIW,MAAM;QACVX,IAAIY,cAAc;QAClB,OAAOb,mBAAmB,cAAc,QAAQA;QAChDE;KACD;IAGH,IAAIE,KAAK;QACPD,OAAO,CAACJ,IAAI,GAAGK;IACjB,OAAO;QACLD,OAAO,CAACJ,IAAI,GAAG;IACjB;AACF,EAAC"}
|
|
@@ -23,4 +23,4 @@ export const recurseNestedFields = ({ context, currentDepth = 0, data, depth, fi
|
|
|
23
23
|
});
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=recurseNestedFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/populate/recurseNestedFields.ts"],"sourcesContent":["import type { RequestContext } from 'payload'\nimport type { Field, PayloadRequest } from 'payload/types'\n\nimport { afterReadTraverseFields } from 'payload/utilities'\n\nimport type { PopulationPromise } from '../field/features/types.js'\n\ntype NestedRichTextFieldsArgs = {\n context: RequestContext\n currentDepth?: number\n data: unknown\n depth: number\n /**\n * This maps all the population promises to the node types\n */\n editorPopulationPromises: Map<string, Array<PopulationPromise>>\n fields: Field[]\n findMany: boolean\n flattenLocales: boolean\n overrideAccess: boolean\n populationPromises: Promise<void>[]\n promises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: Record<string, unknown>\n}\n\nexport const recurseNestedFields = ({\n context,\n currentDepth = 0,\n data,\n depth,\n fields,\n findMany,\n flattenLocales,\n overrideAccess = false,\n populationPromises,\n promises,\n req,\n showHiddenFields,\n siblingDoc,\n}: NestedRichTextFieldsArgs): void => {\n afterReadTraverseFields({\n collection: null, // Pass from core? This is only needed for hooks, so we can leave this null for now\n context,\n currentDepth,\n depth,\n doc: data as any, // Looks like it's only needed for hooks and access control, so doesn't matter what we pass here right now\n fallbackLocale: req.fallbackLocale,\n fieldPromises: promises, // Not sure if what I pass in here makes sense. But it doesn't seem like it's used at all anyways\n fields,\n findMany,\n flattenLocales,\n global: null, // Pass from core? This is only needed for hooks, so we can leave this null for now\n locale: req.locale,\n overrideAccess,\n populationPromises, // This is not the same as populationPromises passed into this recurseNestedFields. These are just promises resolved at the very end.\n req,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl: false, // TODO: Enable this to support access control\n triggerHooks: false, // TODO: Enable this to support hooks\n })\n}\n"],"names":["afterReadTraverseFields","recurseNestedFields","context","currentDepth","data","depth","fields","findMany","flattenLocales","overrideAccess","populationPromises","promises","req","showHiddenFields","siblingDoc","collection","doc","fallbackLocale","fieldPromises","global","locale","triggerAccessControl","triggerHooks"],"mappings":"AAGA,SAASA,uBAAuB,QAAQ,oBAAmB;AAwB3D,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,OAAO,EACPC,eAAe,CAAC,EAChBC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,cAAc,EACdC,iBAAiB,KAAK,EACtBC,kBAAkB,EAClBC,QAAQ,EACRC,GAAG,EACHC,gBAAgB,EAChBC,UAAU,EACe;IACzBd,wBAAwB;QACtBe,YAAY;QACZb;QACAC;QACAE;QACAW,KAAKZ;QACLa,gBAAgBL,IAAIK,cAAc;QAClCC,eAAeP;QACfL;QACAC;QACAC;QACAW,QAAQ;QACRC,QAAQR,IAAIQ,MAAM;QAClBX;QACAC;QACAE;QACAC;QACAC;QACAO,sBAAsB;QACtBC,cAAc;IAChB;AACF,EAAC"}
|
|
@@ -65,4 +65,4 @@ export const richTextRelationshipPromise = async ({ context, currentDepth, depth
|
|
|
65
65
|
await Promise.all(promises);
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
//# sourceMappingURL=
|
|
68
|
+
//# sourceMappingURL=richTextRelationshipPromise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/populate/richTextRelationshipPromise.ts"],"sourcesContent":["import type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\nimport type { PayloadRequest, RichTextAdapter, RichTextField } from 'payload/types'\n\nimport type { PopulationPromise } from '../field/features/types.js'\nimport type { AdapterProps } from '../types.js'\n\nexport type Args = Parameters<\n RichTextAdapter<SerializedEditorState, AdapterProps>['populationPromise']\n>[0] & {\n editorPopulationPromises: Map<string, Array<PopulationPromise>>\n}\n\ntype RecurseRichTextArgs = {\n children: SerializedLexicalNode[]\n currentDepth: number\n depth: number\n editorPopulationPromises: Map<string, Array<PopulationPromise>>\n field: RichTextField<SerializedEditorState, AdapterProps>\n overrideAccess: boolean\n promises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc?: Record<string, unknown>\n}\n\nexport const recurseRichText = ({\n children,\n context,\n currentDepth = 0,\n depth,\n editorPopulationPromises,\n field,\n findMany,\n flattenLocales,\n overrideAccess = false,\n populationPromises,\n promises,\n req,\n showHiddenFields,\n siblingDoc,\n}: RecurseRichTextArgs & Args): void => {\n if (depth <= 0 || currentDepth > depth) {\n return\n }\n\n if (Array.isArray(children)) {\n children.forEach((node) => {\n if (editorPopulationPromises?.has(node.type)) {\n for (const promise of editorPopulationPromises.get(node.type)) {\n promises.push(\n ...promise({\n context,\n currentDepth,\n depth,\n editorPopulationPromises,\n field,\n findMany,\n flattenLocales,\n node,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }),\n )\n }\n }\n\n if ('children' in node && Array.isArray(node?.children) && node?.children?.length) {\n recurseRichText({\n children: node.children as SerializedLexicalNode[],\n context,\n currentDepth,\n depth,\n editorPopulationPromises,\n field,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n promises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n })\n }\n}\n\nexport const richTextRelationshipPromise = async ({\n context,\n currentDepth,\n depth,\n editorPopulationPromises,\n field,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n}: Args): Promise<void> => {\n const promises = []\n\n recurseRichText({\n children: (siblingDoc[field?.name] as SerializedEditorState)?.root?.children ?? [],\n context,\n currentDepth,\n depth,\n editorPopulationPromises,\n field,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n promises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n\n await Promise.all(promises)\n}\n"],"names":["recurseRichText","children","context","currentDepth","depth","editorPopulationPromises","field","findMany","flattenLocales","overrideAccess","populationPromises","promises","req","showHiddenFields","siblingDoc","Array","isArray","forEach","node","has","type","promise","get","push","length","richTextRelationshipPromise","name","root","Promise","all"],"mappings":"AAyBA,OAAO,MAAMA,kBAAkB,CAAC,EAC9BC,QAAQ,EACRC,OAAO,EACPC,eAAe,CAAC,EAChBC,KAAK,EACLC,wBAAwB,EACxBC,KAAK,EACLC,QAAQ,EACRC,cAAc,EACdC,iBAAiB,KAAK,EACtBC,kBAAkB,EAClBC,QAAQ,EACRC,GAAG,EACHC,gBAAgB,EAChBC,UAAU,EACiB;IAC3B,IAAIV,SAAS,KAAKD,eAAeC,OAAO;QACtC;IACF;IAEA,IAAIW,MAAMC,OAAO,CAACf,WAAW;QAC3BA,SAASgB,OAAO,CAAC,CAACC;YAChB,IAAIb,0BAA0Bc,IAAID,KAAKE,IAAI,GAAG;gBAC5C,KAAK,MAAMC,WAAWhB,yBAAyBiB,GAAG,CAACJ,KAAKE,IAAI,EAAG;oBAC7DT,SAASY,IAAI,IACRF,QAAQ;wBACTnB;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAU;wBACAT;wBACAC;wBACAE;wBACAC;wBACAC;oBACF;gBAEJ;YACF;YAEA,IAAI,cAAcI,QAAQH,MAAMC,OAAO,CAACE,MAAMjB,aAAaiB,MAAMjB,UAAUuB,QAAQ;gBACjFxB,gBAAgB;oBACdC,UAAUiB,KAAKjB,QAAQ;oBACvBC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;gBACF;YACF;QACF;IACF;AACF,EAAC;AAED,OAAO,MAAMW,8BAA8B,OAAO,EAChDvB,OAAO,EACPC,YAAY,EACZC,KAAK,EACLC,wBAAwB,EACxBC,KAAK,EACLC,QAAQ,EACRC,cAAc,EACdC,cAAc,EACdC,kBAAkB,EAClBE,GAAG,EACHC,gBAAgB,EAChBC,UAAU,EACL;IACL,MAAMH,WAAW,EAAE;IAEnBX,gBAAgB;QACdC,UAAU,AAACa,UAAU,CAACR,OAAOoB,KAAK,EAA4BC,MAAM1B,YAAY,EAAE;QAClFC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;IACF;IAEA,MAAMc,QAAQC,GAAG,CAAClB;AACpB,EAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { };
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldTypes } from 'payload/config'\nimport type { RichTextFieldProps } from 'payload/types'\nimport type React from 'react'\n\nimport type { SanitizedServerEditorConfig } from './field/lexical/config/types.js'\n\nexport type FieldProps = RichTextFieldProps<SerializedEditorState, AdapterProps, AdapterProps> & {\n fieldTypes: FieldTypes\n indexPath: string\n path?: string\n permissions: FieldPermissions\n}\n\nexport type AdapterProps = {\n editorConfig: SanitizedServerEditorConfig\n}\n\nexport type GeneratedFeatureProviderComponent = {\n ClientComponent: React.ReactNode\n key: string\n order: number\n}\n"],"names":[],"mappings":"AAmBA,WAIC"}
|
|
@@ -6,4 +6,4 @@ export const useLexicalFeature = (featureKey, feature)=>{
|
|
|
6
6
|
useAddClientFunction(`lexicalFeature.${schemaPath}.${featureKey}`, feature);
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=useLexicalFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/useLexicalFeature.tsx"],"sourcesContent":["'use client'\nimport { useFieldPath } from '@payloadcms/ui/forms'\nimport { useAddClientFunction } from '@payloadcms/ui/providers'\n\nimport type { FeatureProviderClient } from './field/features/types.js'\n\nexport const useLexicalFeature = <ClientFeatureProps,>(\n featureKey: string,\n feature: FeatureProviderClient<ClientFeatureProps>,\n) => {\n const { schemaPath } = useFieldPath()\n\n useAddClientFunction(`lexicalFeature.${schemaPath}.${featureKey}`, feature)\n}\n"],"names":["useFieldPath","useAddClientFunction","useLexicalFeature","featureKey","feature","schemaPath"],"mappings":"AAAA;AACA,SAASA,YAAY,QAAQ,uBAAsB;AACnD,SAASC,oBAAoB,QAAQ,2BAA0B;AAI/D,OAAO,MAAMC,oBAAoB,CAC/BC,YACAC;IAEA,MAAM,EAAEC,UAAU,EAAE,GAAGL;IAEvBC,qBAAqB,CAAC,eAAe,EAAEI,WAAW,CAAC,EAAEF,WAAW,CAAC,EAAEC;AACrE,EAAC"}
|
package/dist/validate/index.js
CHANGED
|
@@ -26,4 +26,4 @@ export const richTextValidateHOC = ({ editorConfig })=>{
|
|
|
26
26
|
return richTextValidate;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/validate/index.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { RichTextField, Validate } from 'payload/types'\n\nimport type { SanitizedServerEditorConfig } from '../field/lexical/config/types.js'\n\nimport { defaultRichTextValue, defaultRichTextValueV2 } from '../populate/defaultValue.js'\nimport { validateNodes } from './validateNodes.js'\n\nexport const richTextValidateHOC = ({\n editorConfig,\n}: {\n editorConfig: SanitizedServerEditorConfig\n}) => {\n const richTextValidate: Validate<SerializedEditorState, unknown, unknown, RichTextField> = async (\n value,\n options,\n ) => {\n const {\n req: { t },\n required,\n } = options\n\n if (required) {\n if (\n !value ||\n !value?.root?.children ||\n !value?.root?.children?.length ||\n JSON.stringify(value) === JSON.stringify(defaultRichTextValue) ||\n JSON.stringify(value) === JSON.stringify(defaultRichTextValueV2)\n ) {\n return t('validation:required')\n }\n }\n\n // Traverse through nodes and validate them. Just like a node can hook into the population process (e.g. link or relationship nodes),\n // they can also hook into the validation process. E.g. a block node probably has fields with validation rules.\n\n const rootNodes = value?.root?.children\n if (rootNodes && Array.isArray(rootNodes) && rootNodes?.length) {\n return await validateNodes({\n nodeValidations: editorConfig.features.validations,\n nodes: rootNodes,\n validation: {\n options,\n value,\n },\n })\n }\n\n return true\n }\n\n return richTextValidate\n}\n"],"names":["defaultRichTextValue","defaultRichTextValueV2","validateNodes","richTextValidateHOC","editorConfig","richTextValidate","value","options","req","t","required","root","children","length","JSON","stringify","rootNodes","Array","isArray","nodeValidations","features","validations","nodes","validation"],"mappings":"AAKA,SAASA,oBAAoB,EAAEC,sBAAsB,QAAQ,8BAA6B;AAC1F,SAASC,aAAa,QAAQ,qBAAoB;AAElD,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,YAAY,EAGb;IACC,MAAMC,mBAAqF,OACzFC,OACAC;QAEA,MAAM,EACJC,KAAK,EAAEC,CAAC,EAAE,EACVC,QAAQ,EACT,GAAGH;QAEJ,IAAIG,UAAU;YACZ,IACE,CAACJ,SACD,CAACA,OAAOK,MAAMC,YACd,CAACN,OAAOK,MAAMC,UAAUC,UACxBC,KAAKC,SAAS,CAACT,WAAWQ,KAAKC,SAAS,CAACf,yBACzCc,KAAKC,SAAS,CAACT,WAAWQ,KAAKC,SAAS,CAACd,yBACzC;gBACA,OAAOQ,EAAE;YACX;QACF;QAEA,qIAAqI;QACrI,+GAA+G;QAE/G,MAAMO,YAAYV,OAAOK,MAAMC;QAC/B,IAAII,aAAaC,MAAMC,OAAO,CAACF,cAAcA,WAAWH,QAAQ;YAC9D,OAAO,MAAMX,cAAc;gBACzBiB,iBAAiBf,aAAagB,QAAQ,CAACC,WAAW;gBAClDC,OAAON;gBACPO,YAAY;oBACVhB;oBACAD;gBACF;YACF;QACF;QAEA,OAAO;IACT;IAEA,OAAOD;AACT,EAAC"}
|
|
@@ -29,4 +29,4 @@ export async function validateNodes({ nodeValidations, nodes, validation: valida
|
|
|
29
29
|
return true;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=validateNodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/validate/validateNodes.ts"],"sourcesContent":["import type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\nimport type { RichTextField, ValidateOptions } from 'payload/types'\n\nimport type { NodeValidation } from '../field/features/types.js'\n\nexport async function validateNodes({\n nodeValidations,\n nodes,\n validation: validationFromProps,\n}: {\n nodeValidations: Map<string, Array<NodeValidation>>\n nodes: SerializedLexicalNode[]\n validation: {\n options: ValidateOptions<unknown, unknown, RichTextField>\n value: SerializedEditorState\n }\n}): Promise<string | true> {\n for (const node of nodes) {\n // Validate node\n if (\n nodeValidations &&\n typeof nodeValidations?.has === 'function' &&\n nodeValidations?.has(node.type)\n ) {\n const validations = nodeValidations.get(node.type)\n for (const validation of validations) {\n const validationResult = await validation({\n node,\n nodeValidations,\n validation: validationFromProps,\n })\n if (validationResult !== true) {\n return validationResult\n }\n }\n }\n\n // Validate node's children\n if ('children' in node && node?.children) {\n const childrenValidationResult = await validateNodes({\n nodeValidations,\n nodes: node.children as SerializedLexicalNode[],\n validation: validationFromProps,\n })\n if (childrenValidationResult !== true) {\n return childrenValidationResult\n }\n }\n }\n\n return true\n}\n"],"names":["validateNodes","nodeValidations","nodes","validation","validationFromProps","node","has","type","validations","get","validationResult","children","childrenValidationResult"],"mappings":"AAKA,OAAO,eAAeA,cAAc,EAClCC,eAAe,EACfC,KAAK,EACLC,YAAYC,mBAAmB,EAQhC;IACC,KAAK,MAAMC,QAAQH,MAAO;QACxB,gBAAgB;QAChB,IACED,mBACA,OAAOA,iBAAiBK,QAAQ,cAChCL,iBAAiBK,IAAID,KAAKE,IAAI,GAC9B;YACA,MAAMC,cAAcP,gBAAgBQ,GAAG,CAACJ,KAAKE,IAAI;YACjD,KAAK,MAAMJ,cAAcK,YAAa;gBACpC,MAAME,mBAAmB,MAAMP,WAAW;oBACxCE;oBACAJ;oBACAE,YAAYC;gBACd;gBACA,IAAIM,qBAAqB,MAAM;oBAC7B,OAAOA;gBACT;YACF;QACF;QAEA,2BAA2B;QAC3B,IAAI,cAAcL,QAAQA,MAAMM,UAAU;YACxC,MAAMC,2BAA2B,MAAMZ,cAAc;gBACnDC;gBACAC,OAAOG,KAAKM,QAAQ;gBACpBR,YAAYC;YACd;YACA,IAAIQ,6BAA6B,MAAM;gBACrC,OAAOA;YACT;QACF;IACF;IAEA,OAAO;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/richtext-lexical",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.42",
|
|
4
4
|
"description": "The officially supported Lexical richtext adapter for Payload",
|
|
5
5
|
"repository": "https://github.com/payloadcms/payload",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
"@types/react": "18.2.15",
|
|
38
38
|
"@types/react-dom": "18.2.7",
|
|
39
39
|
"@payloadcms/eslint-config": "1.1.1",
|
|
40
|
-
"@payloadcms/
|
|
41
|
-
"
|
|
42
|
-
"
|
|
40
|
+
"@payloadcms/ui": "3.0.0-alpha.42",
|
|
41
|
+
"payload": "3.0.0-alpha.42",
|
|
42
|
+
"@payloadcms/translations": "3.0.0-alpha.42"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"@payloadcms/
|
|
46
|
-
"
|
|
47
|
-
"
|
|
45
|
+
"@payloadcms/translations": "3.0.0-alpha.42",
|
|
46
|
+
"@payloadcms/ui": "3.0.0-alpha.42",
|
|
47
|
+
"payload": "3.0.0-alpha.42"
|
|
48
48
|
},
|
|
49
49
|
"exports": {
|
|
50
50
|
".": {
|