@payloadcms/richtext-lexical 3.0.0-alpha.18 → 3.0.0-alpha.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.js +6 -33
- package/dist/cell/index.js +29 -80
- package/dist/exports/components.js +6 -33
- package/dist/field/Field.js +15 -66
- package/dist/field/features/align/feature.client.js +21 -31
- package/dist/field/features/align/feature.server.js +4 -14
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +4 -14
- package/dist/field/features/blockquote/feature.client.js +20 -30
- package/dist/field/features/blockquote/feature.server.js +11 -21
- package/dist/field/features/blockquote/markdownTransformer.js +9 -19
- package/dist/field/features/blocks/component/BlockContent.js +34 -85
- package/dist/field/features/blocks/component/FormSavePlugin.js +7 -17
- package/dist/field/features/blocks/component/index.js +25 -76
- package/dist/field/features/blocks/drawer/index.js +25 -84
- package/dist/field/features/blocks/feature.client.js +15 -25
- package/dist/field/features/blocks/feature.server.js +16 -26
- package/dist/field/features/blocks/nodes/BlocksNode.js +11 -78
- package/dist/field/features/blocks/plugin/commands.js +3 -13
- package/dist/field/features/blocks/plugin/index.js +20 -71
- package/dist/field/features/blocks/populationPromise.js +6 -16
- package/dist/field/features/blocks/validate.js +4 -14
- package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +2 -12
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +4 -14
- package/dist/field/features/converters/html/converter/converters/linebreak.js +2 -12
- package/dist/field/features/converters/html/converter/converters/paragraph.js +4 -14
- package/dist/field/features/converters/html/converter/converters/text.js +10 -20
- package/dist/field/features/converters/html/converter/defaultConverters.js +8 -18
- package/dist/field/features/converters/html/converter/index.js +3 -21
- package/dist/field/features/converters/html/converter/types.js +2 -5
- package/dist/field/features/converters/html/feature.server.js +2 -12
- package/dist/field/features/converters/html/field/index.js +11 -25
- package/dist/field/features/createClientComponent.js +6 -14
- package/dist/field/features/createFeaturePropComponent.js +5 -15
- package/dist/field/features/debug/testrecorder/feature.client.js +5 -15
- package/dist/field/features/debug/testrecorder/feature.server.js +4 -14
- package/dist/field/features/debug/testrecorder/plugin/index.js +41 -99
- package/dist/field/features/debug/treeview/feature.client.js +5 -15
- package/dist/field/features/debug/treeview/feature.server.js +4 -14
- package/dist/field/features/debug/treeview/plugin/index.js +8 -59
- package/dist/field/features/format/bold/feature.client.js +14 -24
- package/dist/field/features/format/bold/feature.server.js +8 -18
- package/dist/field/features/format/bold/markdownTransformers.js +5 -29
- package/dist/field/features/format/common/floatingSelectToolbarSection.js +2 -12
- package/dist/field/features/format/inlinecode/feature.client.js +12 -22
- package/dist/field/features/format/inlinecode/feature.server.js +6 -16
- package/dist/field/features/format/inlinecode/markdownTransformers.js +2 -12
- package/dist/field/features/format/italic/feature.client.js +13 -23
- package/dist/field/features/format/italic/feature.server.js +7 -17
- package/dist/field/features/format/italic/markdownTransformers.js +3 -21
- package/dist/field/features/format/strikethrough/feature.client.js +12 -22
- package/dist/field/features/format/strikethrough/feature.server.js +6 -16
- package/dist/field/features/format/strikethrough/markdownTransformers.js +2 -12
- package/dist/field/features/format/subscript/feature.client.js +10 -20
- package/dist/field/features/format/subscript/feature.server.js +4 -14
- package/dist/field/features/format/superscript/feature.client.js +10 -20
- package/dist/field/features/format/superscript/feature.server.js +4 -14
- package/dist/field/features/format/underline/feature.client.js +10 -20
- package/dist/field/features/format/underline/feature.server.js +4 -14
- package/dist/field/features/heading/feature.client.js +28 -37
- package/dist/field/features/heading/feature.server.js +12 -22
- package/dist/field/features/heading/markdownTransformer.js +8 -18
- package/dist/field/features/indent/feature.client.js +13 -23
- package/dist/field/features/indent/feature.server.js +4 -14
- package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +2 -12
- package/dist/field/features/link/drawer/baseFields.js +6 -16
- package/dist/field/features/link/drawer/index.js +24 -74
- package/dist/field/features/link/drawer/types.js +2 -5
- package/dist/field/features/link/feature.client.js +29 -39
- package/dist/field/features/link/feature.server.js +22 -32
- package/dist/field/features/link/nodes/AutoLinkNode.js +10 -29
- package/dist/field/features/link/nodes/LinkNode.js +18 -45
- package/dist/field/features/link/nodes/types.js +2 -5
- package/dist/field/features/link/plugins/autoLink/index.js +33 -51
- package/dist/field/features/link/plugins/clickableLink/index.js +5 -20
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +3 -13
- package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +64 -114
- package/dist/field/features/link/plugins/floatingLinkEditor/index.js +7 -58
- package/dist/field/features/link/plugins/floatingLinkEditor/types.js +5 -5
- package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +6 -14
- package/dist/field/features/link/plugins/link/index.js +21 -31
- package/dist/field/features/link/populationPromise.js +6 -16
- package/dist/field/features/lists/checklist/feature.client.js +21 -31
- package/dist/field/features/lists/checklist/feature.server.js +12 -22
- package/dist/field/features/lists/checklist/markdownTransformers.js +8 -18
- package/dist/field/features/lists/checklist/plugin/index.js +5 -20
- package/dist/field/features/lists/common/markdown.js +10 -28
- package/dist/field/features/lists/htmlConverter.js +9 -27
- package/dist/field/features/lists/orderedlist/feature.client.js +19 -29
- package/dist/field/features/lists/orderedlist/feature.server.js +12 -22
- package/dist/field/features/lists/orderedlist/markdownTransformer.js +8 -18
- package/dist/field/features/lists/plugin/index.js +5 -20
- package/dist/field/features/lists/unorderedlist/feature.client.js +19 -29
- package/dist/field/features/lists/unorderedlist/feature.server.js +12 -22
- package/dist/field/features/lists/unorderedlist/markdownTransformer.js +8 -18
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +4 -14
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +2 -12
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +6 -16
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +16 -26
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +5 -29
- package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +2 -5
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +7 -17
- package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +9 -19
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +5 -20
- package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +11 -73
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +2 -12
- package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +4 -14
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +2 -12
- package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +6 -16
- package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +22 -32
- package/dist/field/features/migrations/slateToLexical/converter/index.js +14 -41
- package/dist/field/features/migrations/slateToLexical/converter/types.js +2 -5
- package/dist/field/features/migrations/slateToLexical/feature.client.js +7 -17
- package/dist/field/features/migrations/slateToLexical/feature.server.js +9 -19
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +5 -20
- package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +11 -73
- package/dist/field/features/paragraph/feature.client.js +16 -26
- package/dist/field/features/paragraph/feature.server.js +4 -14
- package/dist/field/features/relationship/drawer/commands.js +3 -13
- package/dist/field/features/relationship/drawer/index.js +24 -75
- package/dist/field/features/relationship/feature.client.js +15 -25
- package/dist/field/features/relationship/feature.server.js +8 -18
- package/dist/field/features/relationship/nodes/RelationshipNode.js +9 -71
- package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +35 -86
- package/dist/field/features/relationship/plugins/index.js +22 -80
- package/dist/field/features/relationship/populationPromise.js +4 -14
- package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +8 -59
- package/dist/field/features/types.js +2 -5
- package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +36 -84
- package/dist/field/features/upload/component/index.js +47 -98
- package/dist/field/features/upload/drawer/commands.js +3 -13
- package/dist/field/features/upload/drawer/index.js +23 -74
- package/dist/field/features/upload/feature.client.js +13 -23
- package/dist/field/features/upload/feature.server.js +11 -21
- package/dist/field/features/upload/nodes/UploadNode.js +10 -72
- package/dist/field/features/upload/plugin/index.js +22 -81
- package/dist/field/features/upload/populationPromise.js +6 -16
- package/dist/field/features/upload/validate.js +9 -19
- package/dist/field/index.js +23 -74
- package/dist/field/lexical/EditorPlugin.js +5 -56
- package/dist/field/lexical/LexicalEditor.js +39 -94
- package/dist/field/lexical/LexicalProvider.js +15 -66
- package/dist/field/lexical/config/client/EditorConfigProvider.js +11 -69
- package/dist/field/lexical/config/client/default.js +4 -14
- package/dist/field/lexical/config/client/loader.js +5 -12
- package/dist/field/lexical/config/client/sanitize.js +3 -21
- package/dist/field/lexical/config/server/default.js +44 -68
- package/dist/field/lexical/config/server/loader.js +3 -21
- package/dist/field/lexical/config/server/sanitize.js +5 -23
- package/dist/field/lexical/config/types.js +2 -5
- package/dist/field/lexical/nodes/index.js +2 -12
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +19 -70
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +40 -98
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +11 -34
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +55 -105
- package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +2 -5
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js +7 -58
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +39 -64
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +32 -97
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +3 -21
- package/dist/field/lexical/plugins/SlashMenu/index.js +27 -77
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +8 -16
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +35 -84
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +2 -12
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +2 -12
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +18 -28
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +4 -14
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +52 -102
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +8 -18
- package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +2 -12
- package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +4 -14
- package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +2 -12
- package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +2 -12
- package/dist/field/lexical/theme/EditorTheme.js +3 -13
- package/dist/field/lexical/ui/ContentEditable.js +6 -57
- package/dist/field/lexical/ui/icons/AI/index.js +7 -22
- package/dist/field/lexical/ui/icons/AlignCenter/index.js +6 -21
- package/dist/field/lexical/ui/icons/AlignJustify/index.js +6 -21
- package/dist/field/lexical/ui/icons/AlignLeft/index.js +6 -21
- package/dist/field/lexical/ui/icons/AlignRight/index.js +6 -21
- package/dist/field/lexical/ui/icons/Block/index.js +6 -21
- package/dist/field/lexical/ui/icons/Blockquote/index.js +4 -19
- package/dist/field/lexical/ui/icons/Bold/index.js +4 -19
- package/dist/field/lexical/ui/icons/Checklist/index.js +5 -20
- package/dist/field/lexical/ui/icons/Code/index.js +5 -20
- package/dist/field/lexical/ui/icons/CodeBlock/index.js +5 -20
- package/dist/field/lexical/ui/icons/H1/index.js +4 -19
- package/dist/field/lexical/ui/icons/H2/index.js +4 -19
- package/dist/field/lexical/ui/icons/H3/index.js +4 -19
- package/dist/field/lexical/ui/icons/H4/index.js +4 -19
- package/dist/field/lexical/ui/icons/H5/index.js +4 -19
- package/dist/field/lexical/ui/icons/H6/index.js +4 -19
- package/dist/field/lexical/ui/icons/IndentDecrease/index.js +7 -22
- package/dist/field/lexical/ui/icons/IndentIncrease/index.js +7 -22
- package/dist/field/lexical/ui/icons/Italic/index.js +4 -19
- package/dist/field/lexical/ui/icons/Link/index.js +7 -22
- package/dist/field/lexical/ui/icons/OrderedList/index.js +8 -23
- package/dist/field/lexical/ui/icons/Relationship/index.js +7 -22
- package/dist/field/lexical/ui/icons/Strikethrough/index.js +5 -20
- package/dist/field/lexical/ui/icons/Subscript/index.js +4 -19
- package/dist/field/lexical/ui/icons/Superscript/index.js +4 -19
- package/dist/field/lexical/ui/icons/Text/index.js +4 -19
- package/dist/field/lexical/ui/icons/Underline/index.js +5 -20
- package/dist/field/lexical/ui/icons/UnorderedList/index.js +9 -24
- package/dist/field/lexical/ui/icons/Upload/index.js +6 -21
- package/dist/field/lexical/utils/canUseDOM.js +2 -12
- package/dist/field/lexical/utils/cloneDeep.js +2 -12
- package/dist/field/lexical/utils/environment.js +13 -51
- package/dist/field/lexical/utils/getDOMRangeRect.js +2 -12
- package/dist/field/lexical/utils/getSelectedNode.js +5 -15
- package/dist/field/lexical/utils/guard.js +2 -12
- package/dist/field/lexical/utils/invariant.js +2 -12
- package/dist/field/lexical/utils/joinClasses.js +2 -12
- package/dist/field/lexical/utils/markdown/createBlockNode.js +2 -12
- package/dist/field/lexical/utils/nodeFormat.js +17 -61
- package/dist/field/lexical/utils/point.js +3 -21
- package/dist/field/lexical/utils/rect.js +4 -14
- package/dist/field/lexical/utils/setFloatingElemPosition.js +5 -12
- package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +2 -12
- package/dist/field/lexical/utils/swipe.js +5 -29
- package/dist/field/lexical/utils/url.js +3 -21
- package/dist/generateComponentMap.js +10 -25
- package/dist/generateSchemaMap.js +4 -14
- package/dist/index.js +102 -489
- package/dist/populate/defaultValue.js +3 -21
- package/dist/populate/populate.js +2 -12
- package/dist/populate/recurseNestedFields.js +4 -14
- package/dist/populate/richTextRelationshipPromise.js +3 -21
- package/dist/types.js +2 -5
- package/dist/useLexicalFeature.js +6 -16
- package/dist/validate/index.js +6 -16
- package/dist/validate/validateNodes.js +2 -12
- package/package.json +7 -7
|
@@ -1,78 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
get: all[name]
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
_export(exports, {
|
|
13
|
-
ENABLE_SLASH_MENU_COMMAND: function() {
|
|
14
|
-
return ENABLE_SLASH_MENU_COMMAND;
|
|
15
|
-
},
|
|
16
|
-
LexicalTypeaheadMenuPlugin: function() {
|
|
17
|
-
return LexicalTypeaheadMenuPlugin;
|
|
18
|
-
},
|
|
19
|
-
PUNCTUATION: function() {
|
|
20
|
-
return PUNCTUATION;
|
|
21
|
-
},
|
|
22
|
-
getScrollParent: function() {
|
|
23
|
-
return getScrollParent;
|
|
24
|
-
},
|
|
25
|
-
useDynamicPositioning: function() {
|
|
26
|
-
return _LexicalMenu.useDynamicPositioning;
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
30
|
-
const _utils = require("@lexical/utils");
|
|
31
|
-
const _lexical = require("lexical");
|
|
32
|
-
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
33
|
-
const _LexicalMenu = require("./LexicalMenu");
|
|
34
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
35
|
-
if (typeof WeakMap !== "function") return null;
|
|
36
|
-
var cacheBabelInterop = new WeakMap();
|
|
37
|
-
var cacheNodeInterop = new WeakMap();
|
|
38
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
39
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
40
|
-
})(nodeInterop);
|
|
41
|
-
}
|
|
42
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
43
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
44
|
-
return obj;
|
|
45
|
-
}
|
|
46
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
47
|
-
return {
|
|
48
|
-
default: obj
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
52
|
-
if (cache && cache.has(obj)) {
|
|
53
|
-
return cache.get(obj);
|
|
54
|
-
}
|
|
55
|
-
var newObj = {
|
|
56
|
-
__proto__: null
|
|
57
|
-
};
|
|
58
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
59
|
-
for(var key in obj){
|
|
60
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
61
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
62
|
-
if (desc && (desc.get || desc.set)) {
|
|
63
|
-
Object.defineProperty(newObj, key, desc);
|
|
64
|
-
} else {
|
|
65
|
-
newObj[key] = obj[key];
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
newObj.default = obj;
|
|
70
|
-
if (cache) {
|
|
71
|
-
cache.set(obj, newObj);
|
|
72
|
-
}
|
|
73
|
-
return newObj;
|
|
74
|
-
}
|
|
75
|
-
const PUNCTUATION = '\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%\'"~=<>_:;';
|
|
2
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
3
|
+
import { mergeRegister } from '@lexical/utils';
|
|
4
|
+
import { $getSelection, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_LOW, createCommand } from 'lexical';
|
|
5
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
import { LexicalMenu, useMenuAnchorRef } from './LexicalMenu';
|
|
8
|
+
export const PUNCTUATION = '\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%\'"~=<>_:;';
|
|
76
9
|
function getTextUpToAnchor(selection) {
|
|
77
10
|
const anchor = selection.anchor;
|
|
78
11
|
if (anchor.type !== 'text') {
|
|
@@ -108,8 +41,8 @@ function tryToPositionRange(leadOffset, range, editorWindow) {
|
|
|
108
41
|
function getQueryTextForSearch(editor) {
|
|
109
42
|
let text = null;
|
|
110
43
|
editor.getEditorState().read(()=>{
|
|
111
|
-
const selection =
|
|
112
|
-
if (
|
|
44
|
+
const selection = $getSelection();
|
|
45
|
+
if (!$isRangeSelection(selection)) {
|
|
113
46
|
return;
|
|
114
47
|
}
|
|
115
48
|
text = getTextUpToAnchor(selection);
|
|
@@ -121,24 +54,25 @@ function isSelectionOnEntityBoundary(editor, offset) {
|
|
|
121
54
|
return false;
|
|
122
55
|
}
|
|
123
56
|
return editor.getEditorState().read(()=>{
|
|
124
|
-
const selection =
|
|
125
|
-
if (
|
|
57
|
+
const selection = $getSelection();
|
|
58
|
+
if ($isRangeSelection(selection)) {
|
|
126
59
|
const anchor = selection.anchor;
|
|
127
60
|
const anchorNode = anchor.getNode();
|
|
128
61
|
const prevSibling = anchorNode.getPreviousSibling();
|
|
129
|
-
return
|
|
62
|
+
return $isTextNode(prevSibling) && prevSibling.isTextEntity();
|
|
130
63
|
}
|
|
131
64
|
return false;
|
|
132
65
|
});
|
|
133
66
|
}
|
|
134
67
|
function startTransition(callback) {
|
|
135
|
-
if (
|
|
136
|
-
|
|
68
|
+
if (React.startTransition) {
|
|
69
|
+
React.startTransition(callback);
|
|
137
70
|
} else {
|
|
138
71
|
callback();
|
|
139
72
|
}
|
|
140
73
|
}
|
|
141
|
-
|
|
74
|
+
// Got from https://stackoverflow.com/a/42543908/2013580
|
|
75
|
+
export function getScrollParent(element, includeHidden) {
|
|
142
76
|
let style = getComputedStyle(element);
|
|
143
77
|
const excludeStaticParent = style.position === 'absolute';
|
|
144
78
|
const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;
|
|
@@ -156,12 +90,13 @@ function getScrollParent(element, includeHidden) {
|
|
|
156
90
|
}
|
|
157
91
|
return document.body;
|
|
158
92
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const [
|
|
163
|
-
const
|
|
164
|
-
const
|
|
93
|
+
export { useDynamicPositioning } from './LexicalMenu';
|
|
94
|
+
export const ENABLE_SLASH_MENU_COMMAND = createCommand('ENABLE_SLASH_MENU_COMMAND');
|
|
95
|
+
export function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOptions, menuRenderFn, onClose, onOpen, onQueryChange, onSelectOption, triggerFn }) {
|
|
96
|
+
const [editor] = useLexicalComposerContext();
|
|
97
|
+
const [resolution, setResolution] = useState(null);
|
|
98
|
+
const anchorElementRef = useMenuAnchorRef(anchorElem, resolution, setResolution, anchorClassName);
|
|
99
|
+
const closeTypeahead = useCallback(()=>{
|
|
165
100
|
setResolution(null);
|
|
166
101
|
if (onClose != null && resolution !== null) {
|
|
167
102
|
onClose();
|
|
@@ -170,7 +105,7 @@ function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOpt
|
|
|
170
105
|
onClose,
|
|
171
106
|
resolution
|
|
172
107
|
]);
|
|
173
|
-
const openTypeahead =
|
|
108
|
+
const openTypeahead = useCallback((res)=>{
|
|
174
109
|
setResolution(res);
|
|
175
110
|
if (onOpen != null && resolution === null) {
|
|
176
111
|
onOpen(res);
|
|
@@ -180,8 +115,8 @@ function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOpt
|
|
|
180
115
|
resolution
|
|
181
116
|
]);
|
|
182
117
|
// This is mainly used for the AddBlockHandlePlugin, so that the slash menu can be opened from there
|
|
183
|
-
|
|
184
|
-
return
|
|
118
|
+
useEffect(()=>{
|
|
119
|
+
return mergeRegister(editor.registerCommand(ENABLE_SLASH_MENU_COMMAND, ({ node })=>{
|
|
185
120
|
editor.getEditorState().read(()=>{
|
|
186
121
|
const match = {
|
|
187
122
|
leadOffset: 0,
|
|
@@ -206,19 +141,19 @@ function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOpt
|
|
|
206
141
|
}
|
|
207
142
|
});
|
|
208
143
|
return true;
|
|
209
|
-
},
|
|
144
|
+
}, COMMAND_PRIORITY_LOW));
|
|
210
145
|
}, [
|
|
211
146
|
editor,
|
|
212
147
|
openTypeahead
|
|
213
148
|
]);
|
|
214
|
-
|
|
149
|
+
useEffect(()=>{
|
|
215
150
|
const updateListener = ()=>{
|
|
216
151
|
editor.getEditorState().read(()=>{
|
|
217
152
|
const editorWindow = editor._window ?? window;
|
|
218
153
|
const range = editorWindow.document.createRange();
|
|
219
|
-
const selection =
|
|
154
|
+
const selection = $getSelection();
|
|
220
155
|
const text = getQueryTextForSearch(editor);
|
|
221
|
-
if (
|
|
156
|
+
if (!$isRangeSelection(selection) || !selection.isCollapsed() || text === null || range === null) {
|
|
222
157
|
closeTypeahead();
|
|
223
158
|
return;
|
|
224
159
|
}
|
|
@@ -254,7 +189,7 @@ function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOpt
|
|
|
254
189
|
closeTypeahead,
|
|
255
190
|
openTypeahead
|
|
256
191
|
]);
|
|
257
|
-
return resolution === null || editor === null ? null : /*#__PURE__*/
|
|
192
|
+
return resolution === null || editor === null ? null : /*#__PURE__*/ React.createElement(LexicalMenu, {
|
|
258
193
|
anchorElementRef: anchorElementRef,
|
|
259
194
|
close: closeTypeahead,
|
|
260
195
|
editor: editor,
|
|
@@ -266,4 +201,4 @@ function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOpt
|
|
|
266
201
|
});
|
|
267
202
|
}
|
|
268
203
|
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9IGZyb20gJy4uL3VzZU1lbnVUcmlnZ2VyTWF0Y2gnXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24gfSBmcm9tICcuL0xleGljYWxNZW51J1xuaW1wb3J0IHR5cGUgeyBTbGFzaE1lbnVHcm91cCwgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgTGV4aWNhbE1lbnUsIHVzZU1lbnVBbmNob3JSZWYgfSBmcm9tICcuL0xleGljYWxNZW51J1xuXG5leHBvcnQgY29uc3QgUFVOQ1RVQVRJT04gPSAnXFxcXC4sXFxcXCtcXFxcKlxcXFw/XFxcXCRcXFxcQFxcXFx8I3t9XFxcXChcXFxcKVxcXFxeXFxcXC1cXFxcW1xcXFxdXFxcXFxcXFwvISVcXCdcIn49PD5fOjsnXG5cbmZ1bmN0aW9uIGdldFRleHRVcFRvQW5jaG9yKHNlbGVjdGlvbjogUmFuZ2VTZWxlY3Rpb24pOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBhbmNob3JPZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIHJldHVybiBhbmNob3JOb2RlLmdldFRleHRDb250ZW50KCkuc2xpY2UoMCwgYW5jaG9yT2Zmc2V0KVxufVxuXG5mdW5jdGlvbiB0cnlUb1Bvc2l0aW9uUmFuZ2UobGVhZE9mZnNldDogbnVtYmVyLCByYW5nZTogUmFuZ2UsIGVkaXRvcldpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRvbVNlbGVjdGlvbiA9IGVkaXRvcldpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICBpZiAoZG9tU2VsZWN0aW9uID09PSBudWxsIHx8ICFkb21TZWxlY3Rpb24uaXNDb2xsYXBzZWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBhbmNob3JOb2RlID0gZG9tU2VsZWN0aW9uLmFuY2hvck5vZGVcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBsZWFkT2Zmc2V0XG4gIGNvbnN0IGVuZE9mZnNldCA9IGRvbVNlbGVjdGlvbi5hbmNob3JPZmZzZXRcblxuICBpZiAoYW5jaG9yTm9kZSA9PSBudWxsIHx8IGVuZE9mZnNldCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB0cnkge1xuICAgIHJhbmdlLnNldFN0YXJ0KGFuY2hvck5vZGUsIHN0YXJ0T2Zmc2V0KVxuICAgIC8vIGlmIGVuZE9mZnNldCBpcyAwLCBwb3NpdGlvbmluZyB0aGUgcmFuZ2UgZm9yIHdoZW4geW91IGNsaWNrIHRoZSBwbHVzIGJ1dHRvbiB0byBvcGVuIHRoZSBzbGFzaCBtZW51IHdpbGwgZmlhbFxuICAgIHJhbmdlLnNldEVuZChhbmNob3JOb2RlLCBlbmRPZmZzZXQgPiAxID8gZW5kT2Zmc2V0IDogMSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGdldFF1ZXJ5VGV4dEZvclNlYXJjaChlZGl0b3I6IExleGljYWxFZGl0b3IpOiBudWxsIHwgc3RyaW5nIHtcbiAgbGV0IHRleHQgPSBudWxsXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGlmICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRleHQgPSBnZXRUZXh0VXBUb0FuY2hvcihzZWxlY3Rpb24pXG4gIH0pXG4gIHJldHVybiB0ZXh0XG59XG5cbmZ1bmN0aW9uIGlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3I6IExleGljYWxFZGl0b3IsIG9mZnNldDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIGlmIChvZmZzZXQgIT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IGFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgIGNvbnN0IGFuY2hvck5vZGUgPSBhbmNob3IuZ2V0Tm9kZSgpXG4gICAgICBjb25zdCBwcmV2U2libGluZyA9IGFuY2hvck5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgICAgIHJldHVybiAkaXNUZXh0Tm9kZShwcmV2U2libGluZykgJiYgcHJldlNpYmxpbmcuaXNUZXh0RW50aXR5KClcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICBpZiAoUmVhY3Quc3RhcnRUcmFuc2l0aW9uKSB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKGNhbGxiYWNrKVxuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrKClcbiAgfVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmV4cG9ydCB7IHVzZUR5bmFtaWNQb3NpdGlvbmluZyB9IGZyb20gJy4vTGV4aWNhbE1lbnUnXG5cbmV4cG9ydCB0eXBlIFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyA9IHtcbiAgYW5jaG9yQ2xhc3NOYW1lPzogc3RyaW5nXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGdyb3Vwc1dpdGhPcHRpb25zOiBBcnJheTxTbGFzaE1lbnVHcm91cD5cbiAgbWVudVJlbmRlckZuOiBNZW51UmVuZGVyRm5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgb25PcGVuPzogKHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uKSA9PiB2b2lkXG4gIG9uUXVlcnlDaGFuZ2U6IChtYXRjaGluZ1N0cmluZzogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuICBvblNlbGVjdE9wdGlvbjogKFxuICAgIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uLFxuICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5OiBUZXh0Tm9kZSB8IG51bGwsXG4gICAgY2xvc2VNZW51OiAoKSA9PiB2b2lkLFxuICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICkgPT4gdm9pZFxuICB0cmlnZ2VyRm46IFRyaWdnZXJGblxufVxuXG5leHBvcnQgY29uc3QgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORDogTGV4aWNhbENvbW1hbmQ8e1xuICBub2RlOiBQYXJhZ3JhcGhOb2RlXG59PiA9IGNyZWF0ZUNvbW1hbmQoJ0VOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQnKVxuXG5leHBvcnQgZnVuY3Rpb24gTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4oe1xuICBhbmNob3JDbGFzc05hbWUsXG4gIGFuY2hvckVsZW0sXG4gIGdyb3Vwc1dpdGhPcHRpb25zLFxuICBtZW51UmVuZGVyRm4sXG4gIG9uQ2xvc2UsXG4gIG9uT3BlbixcbiAgb25RdWVyeUNoYW5nZSxcbiAgb25TZWxlY3RPcHRpb24sXG4gIHRyaWdnZXJGbixcbn06IFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSA9IHVzZVN0YXRlPE1lbnVSZXNvbHV0aW9uIHwgbnVsbD4obnVsbClcbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlZiA9IHVzZU1lbnVBbmNob3JSZWYoYW5jaG9yRWxlbSwgcmVzb2x1dGlvbiwgc2V0UmVzb2x1dGlvbiwgYW5jaG9yQ2xhc3NOYW1lKVxuXG4gIGNvbnN0IGNsb3NlVHlwZWFoZWFkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFJlc29sdXRpb24obnVsbClcbiAgICBpZiAob25DbG9zZSAhPSBudWxsICYmIHJlc29sdXRpb24gIT09IG51bGwpIHtcbiAgICAgIG9uQ2xvc2UoKVxuICAgIH1cbiAgfSwgW29uQ2xvc2UsIHJlc29sdXRpb25dKVxuXG4gIGNvbnN0IG9wZW5UeXBlYWhlYWQgPSB1c2VDYWxsYmFjayhcbiAgICAocmVzOiBNZW51UmVzb2x1dGlvbikgPT4ge1xuICAgICAgc2V0UmVzb2x1dGlvbihyZXMpXG4gICAgICBpZiAob25PcGVuICE9IG51bGwgJiYgcmVzb2x1dGlvbiA9PT0gbnVsbCkge1xuICAgICAgICBvbk9wZW4ocmVzKVxuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3BlbiwgcmVzb2x1dGlvbl0sXG4gIClcblxuICAvLyBUaGlzIGlzIG1haW5seSB1c2VkIGZvciB0aGUgQWRkQmxvY2tIYW5kbGVQbHVnaW4sIHNvIHRoYXQgdGhlIHNsYXNoIG1lbnUgY2FuIGJlIG9wZW5lZCBmcm9tIHRoZXJlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5ELFxuICAgICAgICAoeyBub2RlIH0pID0+IHtcbiAgICAgICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoOiBNZW51VGV4dE1hdGNoID0ge1xuICAgICAgICAgICAgICBsZWFkT2Zmc2V0OiAwLFxuICAgICAgICAgICAgICBtYXRjaGluZ1N0cmluZzogJycsXG4gICAgICAgICAgICAgIHJlcGxhY2VhYmxlU3RyaW5nOiAnJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCAmJiAhaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5KGVkaXRvciwgbWF0Y2gubGVhZE9mZnNldCkpIHtcbiAgICAgICAgICAgICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlZGl0b3JXaW5kb3cgPSBlZGl0b3IuX3dpbmRvdyA/PyB3aW5kb3dcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IGVkaXRvcldpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpXG5cbiAgICAgICAgICAgICAgICBjb25zdCBpc1JhbmdlUG9zaXRpb25lZCA9IHRyeVRvUG9zaXRpb25SYW5nZShtYXRjaC5sZWFkT2Zmc2V0LCByYW5nZSwgZWRpdG9yV2luZG93KVxuICAgICAgICAgICAgICAgIGlmIChpc1JhbmdlUG9zaXRpb25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIG9wZW5UeXBlYWhlYWQoe1xuICAgICAgICAgICAgICAgICAgICAgIGdldFJlY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICAgICAgKSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIG9wZW5UeXBlYWhlYWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWRpdG9yV2luZG93ID0gZWRpdG9yLl93aW5kb3cgPz8gd2luZG93XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZWRpdG9yV2luZG93LmRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgICAgIGNvbnN0IHRleHQgPSBnZXRRdWVyeVRleHRGb3JTZWFyY2goZWRpdG9yKVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSB8fFxuICAgICAgICAgICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSB8fFxuICAgICAgICAgIHRleHQgPT09IG51bGwgfHxcbiAgICAgICAgICByYW5nZSA9PT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXRjaCA9IHRyaWdnZXJGbih7IGVkaXRvciwgcXVlcnk6IHRleHQgfSlcbiAgICAgICAgb25RdWVyeUNoYW5nZShtYXRjaCA/IG1hdGNoLm1hdGNoaW5nU3RyaW5nIDogbnVsbClcblxuICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlbW92ZVVwZGF0ZUxpc3RlbmVyID0gZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIodXBkYXRlTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVtb3ZlVXBkYXRlTGlzdGVuZXIoKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdHJpZ2dlckZuLCBvblF1ZXJ5Q2hhbmdlLCByZXNvbHV0aW9uLCBjbG9zZVR5cGVhaGVhZCwgb3BlblR5cGVhaGVhZF0pXG5cbiAgcmV0dXJuIHJlc29sdXRpb24gPT09IG51bGwgfHwgZWRpdG9yID09PSBudWxsID8gbnVsbCA6IChcbiAgICA8TGV4aWNhbE1lbnVcbiAgICAgIGFuY2hvckVsZW1lbnRSZWY9e2FuY2hvckVsZW1lbnRSZWZ9XG4gICAgICBjbG9zZT17Y2xvc2VUeXBlYWhlYWR9XG4gICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHNXaXRoT3B0aW9uc31cbiAgICAgIG1lbnVSZW5kZXJGbj17bWVudVJlbmRlckZufVxuICAgICAgb25TZWxlY3RPcHRpb249e29uU2VsZWN0T3B0aW9ufVxuICAgICAgcmVzb2x1dGlvbj17cmVzb2x1dGlvbn1cbiAgICAgIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHR5cGUgeyBNZW51UmVuZGVyRm4sIE1lbnVSZXNvbHV0aW9uLCBNZW51VGV4dE1hdGNoLCBUcmlnZ2VyRm4gfVxuIl0sIm5hbWVzIjpbIkVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsIlBVTkNUVUFUSU9OIiwiZ2V0U2Nyb2xsUGFyZW50IiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiZ2V0VGV4dFVwVG9BbmNob3IiLCJzZWxlY3Rpb24iLCJhbmNob3IiLCJ0eXBlIiwiYW5jaG9yTm9kZSIsImdldE5vZGUiLCJpc1NpbXBsZVRleHQiLCJhbmNob3JPZmZzZXQiLCJvZmZzZXQiLCJnZXRUZXh0Q29udGVudCIsInNsaWNlIiwidHJ5VG9Qb3NpdGlvblJhbmdlIiwibGVhZE9mZnNldCIsInJhbmdlIiwiZWRpdG9yV2luZG93IiwiZG9tU2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwiaXNDb2xsYXBzZWQiLCJzdGFydE9mZnNldCIsImVuZE9mZnNldCIsInNldFN0YXJ0Iiwic2V0RW5kIiwiZXJyb3IiLCJnZXRRdWVyeVRleHRGb3JTZWFyY2giLCJlZGl0b3IiLCJ0ZXh0IiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5IiwicHJldlNpYmxpbmciLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNUZXh0Tm9kZSIsImlzVGV4dEVudGl0eSIsInN0YXJ0VHJhbnNpdGlvbiIsImNhbGxiYWNrIiwiUmVhY3QiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckNsYXNzTmFtZSIsImFuY2hvckVsZW0iLCJncm91cHNXaXRoT3B0aW9ucyIsIm1lbnVSZW5kZXJGbiIsIm9uQ2xvc2UiLCJvbk9wZW4iLCJvblF1ZXJ5Q2hhbmdlIiwib25TZWxlY3RPcHRpb24iLCJ0cmlnZ2VyRm4iLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwicmVzb2x1dGlvbiIsInNldFJlc29sdXRpb24iLCJ1c2VTdGF0ZSIsImFuY2hvckVsZW1lbnRSZWYiLCJ1c2VNZW51QW5jaG9yUmVmIiwiY2xvc2VUeXBlYWhlYWQiLCJ1c2VDYWxsYmFjayIsIm9wZW5UeXBlYWhlYWQiLCJyZXMiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwibm9kZSIsIm1hdGNoIiwibWF0Y2hpbmdTdHJpbmciLCJyZXBsYWNlYWJsZVN0cmluZyIsIl93aW5kb3ciLCJ3aW5kb3ciLCJjcmVhdGVSYW5nZSIsImlzUmFuZ2VQb3NpdGlvbmVkIiwiZ2V0UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwidXBkYXRlTGlzdGVuZXIiLCJxdWVyeSIsInJlbW92ZVVwZGF0ZUxpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsIkxleGljYWxNZW51IiwiY2xvc2UiLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFnSmFBLHlCQUF5QjtlQUF6QkE7O0lBSUdDLDBCQUEwQjtlQUExQkE7O0lBekhIQyxXQUFXO2VBQVhBOztJQTRFR0MsZUFBZTtlQUFmQTs7SUFzQlBDLHFCQUFxQjtlQUFyQkEsa0NBQXFCOzs7d0NBcEhZO3VCQUNaO3lCQU92QjsrREFDMEM7NkJBT0g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2QyxNQUFNRixjQUFjO0FBRTNCLFNBQVNHLGtCQUFrQkMsU0FBeUI7SUFDbEQsTUFBTUMsU0FBU0QsVUFBVUMsTUFBTTtJQUMvQixJQUFJQSxPQUFPQyxJQUFJLEtBQUssUUFBUTtRQUMxQixPQUFPO0lBQ1Q7SUFDQSxNQUFNQyxhQUFhRixPQUFPRyxPQUFPO0lBQ2pDLElBQUksQ0FBQ0QsV0FBV0UsWUFBWSxJQUFJO1FBQzlCLE9BQU87SUFDVDtJQUNBLE1BQU1DLGVBQWVMLE9BQU9NLE1BQU07SUFDbEMsT0FBT0osV0FBV0ssY0FBYyxHQUFHQyxLQUFLLENBQUMsR0FBR0g7QUFDOUM7QUFFQSxTQUFTSSxtQkFBbUJDLFVBQWtCLEVBQUVDLEtBQVksRUFBRUMsWUFBb0I7SUFDaEYsTUFBTUMsZUFBZUQsYUFBYUUsWUFBWTtJQUM5QyxJQUFJRCxpQkFBaUIsUUFBUSxDQUFDQSxhQUFhRSxXQUFXLEVBQUU7UUFDdEQsT0FBTztJQUNUO0lBQ0EsTUFBTWIsYUFBYVcsYUFBYVgsVUFBVTtJQUMxQyxNQUFN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
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9IGZyb20gJy4uL3VzZU1lbnVUcmlnZ2VyTWF0Y2gnXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24gfSBmcm9tICcuL0xleGljYWxNZW51J1xuaW1wb3J0IHR5cGUgeyBTbGFzaE1lbnVHcm91cCwgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgTGV4aWNhbE1lbnUsIHVzZU1lbnVBbmNob3JSZWYgfSBmcm9tICcuL0xleGljYWxNZW51J1xuXG5leHBvcnQgY29uc3QgUFVOQ1RVQVRJT04gPSAnXFxcXC4sXFxcXCtcXFxcKlxcXFw/XFxcXCRcXFxcQFxcXFx8I3t9XFxcXChcXFxcKVxcXFxeXFxcXC1cXFxcW1xcXFxdXFxcXFxcXFwvISVcXCdcIn49PD5fOjsnXG5cbmZ1bmN0aW9uIGdldFRleHRVcFRvQW5jaG9yKHNlbGVjdGlvbjogUmFuZ2VTZWxlY3Rpb24pOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBhbmNob3JPZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIHJldHVybiBhbmNob3JOb2RlLmdldFRleHRDb250ZW50KCkuc2xpY2UoMCwgYW5jaG9yT2Zmc2V0KVxufVxuXG5mdW5jdGlvbiB0cnlUb1Bvc2l0aW9uUmFuZ2UobGVhZE9mZnNldDogbnVtYmVyLCByYW5nZTogUmFuZ2UsIGVkaXRvcldpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRvbVNlbGVjdGlvbiA9IGVkaXRvcldpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICBpZiAoZG9tU2VsZWN0aW9uID09PSBudWxsIHx8ICFkb21TZWxlY3Rpb24uaXNDb2xsYXBzZWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBhbmNob3JOb2RlID0gZG9tU2VsZWN0aW9uLmFuY2hvck5vZGVcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBsZWFkT2Zmc2V0XG4gIGNvbnN0IGVuZE9mZnNldCA9IGRvbVNlbGVjdGlvbi5hbmNob3JPZmZzZXRcblxuICBpZiAoYW5jaG9yTm9kZSA9PSBudWxsIHx8IGVuZE9mZnNldCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB0cnkge1xuICAgIHJhbmdlLnNldFN0YXJ0KGFuY2hvck5vZGUsIHN0YXJ0T2Zmc2V0KVxuICAgIC8vIGlmIGVuZE9mZnNldCBpcyAwLCBwb3NpdGlvbmluZyB0aGUgcmFuZ2UgZm9yIHdoZW4geW91IGNsaWNrIHRoZSBwbHVzIGJ1dHRvbiB0byBvcGVuIHRoZSBzbGFzaCBtZW51IHdpbGwgZmlhbFxuICAgIHJhbmdlLnNldEVuZChhbmNob3JOb2RlLCBlbmRPZmZzZXQgPiAxID8gZW5kT2Zmc2V0IDogMSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGdldFF1ZXJ5VGV4dEZvclNlYXJjaChlZGl0b3I6IExleGljYWxFZGl0b3IpOiBudWxsIHwgc3RyaW5nIHtcbiAgbGV0IHRleHQgPSBudWxsXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGlmICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRleHQgPSBnZXRUZXh0VXBUb0FuY2hvcihzZWxlY3Rpb24pXG4gIH0pXG4gIHJldHVybiB0ZXh0XG59XG5cbmZ1bmN0aW9uIGlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3I6IExleGljYWxFZGl0b3IsIG9mZnNldDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIGlmIChvZmZzZXQgIT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IGFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgIGNvbnN0IGFuY2hvck5vZGUgPSBhbmNob3IuZ2V0Tm9kZSgpXG4gICAgICBjb25zdCBwcmV2U2libGluZyA9IGFuY2hvck5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgICAgIHJldHVybiAkaXNUZXh0Tm9kZShwcmV2U2libGluZykgJiYgcHJldlNpYmxpbmcuaXNUZXh0RW50aXR5KClcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICBpZiAoUmVhY3Quc3RhcnRUcmFuc2l0aW9uKSB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKGNhbGxiYWNrKVxuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrKClcbiAgfVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmV4cG9ydCB7IHVzZUR5bmFtaWNQb3NpdGlvbmluZyB9IGZyb20gJy4vTGV4aWNhbE1lbnUnXG5cbmV4cG9ydCB0eXBlIFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyA9IHtcbiAgYW5jaG9yQ2xhc3NOYW1lPzogc3RyaW5nXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGdyb3Vwc1dpdGhPcHRpb25zOiBBcnJheTxTbGFzaE1lbnVHcm91cD5cbiAgbWVudVJlbmRlckZuOiBNZW51UmVuZGVyRm5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgb25PcGVuPzogKHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uKSA9PiB2b2lkXG4gIG9uUXVlcnlDaGFuZ2U6IChtYXRjaGluZ1N0cmluZzogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuICBvblNlbGVjdE9wdGlvbjogKFxuICAgIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uLFxuICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5OiBUZXh0Tm9kZSB8IG51bGwsXG4gICAgY2xvc2VNZW51OiAoKSA9PiB2b2lkLFxuICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICkgPT4gdm9pZFxuICB0cmlnZ2VyRm46IFRyaWdnZXJGblxufVxuXG5leHBvcnQgY29uc3QgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORDogTGV4aWNhbENvbW1hbmQ8e1xuICBub2RlOiBQYXJhZ3JhcGhOb2RlXG59PiA9IGNyZWF0ZUNvbW1hbmQoJ0VOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQnKVxuXG5leHBvcnQgZnVuY3Rpb24gTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4oe1xuICBhbmNob3JDbGFzc05hbWUsXG4gIGFuY2hvckVsZW0sXG4gIGdyb3Vwc1dpdGhPcHRpb25zLFxuICBtZW51UmVuZGVyRm4sXG4gIG9uQ2xvc2UsXG4gIG9uT3BlbixcbiAgb25RdWVyeUNoYW5nZSxcbiAgb25TZWxlY3RPcHRpb24sXG4gIHRyaWdnZXJGbixcbn06IFR5cGVhaGVhZE1lbnVQbHVnaW5Qcm9wcyk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSA9IHVzZVN0YXRlPE1lbnVSZXNvbHV0aW9uIHwgbnVsbD4obnVsbClcbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlZiA9IHVzZU1lbnVBbmNob3JSZWYoYW5jaG9yRWxlbSwgcmVzb2x1dGlvbiwgc2V0UmVzb2x1dGlvbiwgYW5jaG9yQ2xhc3NOYW1lKVxuXG4gIGNvbnN0IGNsb3NlVHlwZWFoZWFkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFJlc29sdXRpb24obnVsbClcbiAgICBpZiAob25DbG9zZSAhPSBudWxsICYmIHJlc29sdXRpb24gIT09IG51bGwpIHtcbiAgICAgIG9uQ2xvc2UoKVxuICAgIH1cbiAgfSwgW29uQ2xvc2UsIHJlc29sdXRpb25dKVxuXG4gIGNvbnN0IG9wZW5UeXBlYWhlYWQgPSB1c2VDYWxsYmFjayhcbiAgICAocmVzOiBNZW51UmVzb2x1dGlvbikgPT4ge1xuICAgICAgc2V0UmVzb2x1dGlvbihyZXMpXG4gICAgICBpZiAob25PcGVuICE9IG51bGwgJiYgcmVzb2x1dGlvbiA9PT0gbnVsbCkge1xuICAgICAgICBvbk9wZW4ocmVzKVxuICAgICAgfVxuICAgIH0sXG4gICAgW29uT3BlbiwgcmVzb2x1dGlvbl0sXG4gIClcblxuICAvLyBUaGlzIGlzIG1haW5seSB1c2VkIGZvciB0aGUgQWRkQmxvY2tIYW5kbGVQbHVnaW4sIHNvIHRoYXQgdGhlIHNsYXNoIG1lbnUgY2FuIGJlIG9wZW5lZCBmcm9tIHRoZXJlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5ELFxuICAgICAgICAoeyBub2RlIH0pID0+IHtcbiAgICAgICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoOiBNZW51VGV4dE1hdGNoID0ge1xuICAgICAgICAgICAgICBsZWFkT2Zmc2V0OiAwLFxuICAgICAgICAgICAgICBtYXRjaGluZ1N0cmluZzogJycsXG4gICAgICAgICAgICAgIHJlcGxhY2VhYmxlU3RyaW5nOiAnJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCAmJiAhaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5KGVkaXRvciwgbWF0Y2gubGVhZE9mZnNldCkpIHtcbiAgICAgICAgICAgICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlZGl0b3JXaW5kb3cgPSBlZGl0b3IuX3dpbmRvdyA/PyB3aW5kb3dcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IGVkaXRvcldpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpXG5cbiAgICAgICAgICAgICAgICBjb25zdCBpc1JhbmdlUG9zaXRpb25lZCA9IHRyeVRvUG9zaXRpb25SYW5nZShtYXRjaC5sZWFkT2Zmc2V0LCByYW5nZSwgZWRpdG9yV2luZG93KVxuICAgICAgICAgICAgICAgIGlmIChpc1JhbmdlUG9zaXRpb25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIG9wZW5UeXBlYWhlYWQoe1xuICAgICAgICAgICAgICAgICAgICAgIGdldFJlY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICAgICAgKSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIG9wZW5UeXBlYWhlYWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWRpdG9yV2luZG93ID0gZWRpdG9yLl93aW5kb3cgPz8gd2luZG93XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZWRpdG9yV2luZG93LmRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgICAgIGNvbnN0IHRleHQgPSBnZXRRdWVyeVRleHRGb3JTZWFyY2goZWRpdG9yKVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSB8fFxuICAgICAgICAgICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSB8fFxuICAgICAgICAgIHRleHQgPT09IG51bGwgfHxcbiAgICAgICAgICByYW5nZSA9PT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXRjaCA9IHRyaWdnZXJGbih7IGVkaXRvciwgcXVlcnk6IHRleHQgfSlcbiAgICAgICAgb25RdWVyeUNoYW5nZShtYXRjaCA/IG1hdGNoLm1hdGNoaW5nU3RyaW5nIDogbnVsbClcblxuICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlbW92ZVVwZGF0ZUxpc3RlbmVyID0gZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIodXBkYXRlTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVtb3ZlVXBkYXRlTGlzdGVuZXIoKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdHJpZ2dlckZuLCBvblF1ZXJ5Q2hhbmdlLCByZXNvbHV0aW9uLCBjbG9zZVR5cGVhaGVhZCwgb3BlblR5cGVhaGVhZF0pXG5cbiAgcmV0dXJuIHJlc29sdXRpb24gPT09IG51bGwgfHwgZWRpdG9yID09PSBudWxsID8gbnVsbCA6IChcbiAgICA8TGV4aWNhbE1lbnVcbiAgICAgIGFuY2hvckVsZW1lbnRSZWY9e2FuY2hvckVsZW1lbnRSZWZ9XG4gICAgICBjbG9zZT17Y2xvc2VUeXBlYWhlYWR9XG4gICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHNXaXRoT3B0aW9uc31cbiAgICAgIG1lbnVSZW5kZXJGbj17bWVudVJlbmRlckZufVxuICAgICAgb25TZWxlY3RPcHRpb249e29uU2VsZWN0T3B0aW9ufVxuICAgICAgcmVzb2x1dGlvbj17cmVzb2x1dGlvbn1cbiAgICAgIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHR5cGUgeyBNZW51UmVuZGVyRm4sIE1lbnVSZXNvbHV0aW9uLCBNZW51VGV4dE1hdGNoLCBUcmlnZ2VyRm4gfVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJtZXJnZVJlZ2lzdGVyIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiJGlzVGV4dE5vZGUiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsImNyZWF0ZUNvbW1hbmQiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiUmVhY3QiLCJMZXhpY2FsTWVudSIsInVzZU1lbnVBbmNob3JSZWYiLCJQVU5DVFVBVElPTiIsImdldFRleHRVcFRvQW5jaG9yIiwic2VsZWN0aW9uIiwiYW5jaG9yIiwidHlwZSIsImFuY2hvck5vZGUiLCJnZXROb2RlIiwiaXNTaW1wbGVUZXh0IiwiYW5jaG9yT2Zmc2V0Iiwib2Zmc2V0IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsInRyeVRvUG9zaXRpb25SYW5nZSIsImxlYWRPZmZzZXQiLCJyYW5nZSIsImVkaXRvcldpbmRvdyIsImRvbVNlbGVjdGlvbiIsImdldFNlbGVjdGlvbiIsImlzQ29sbGFwc2VkIiwic3RhcnRPZmZzZXQiLCJlbmRPZmZzZXQiLCJzZXRTdGFydCIsInNldEVuZCIsImVycm9yIiwiZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoIiwiZWRpdG9yIiwidGV4dCIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeSIsInByZXZTaWJsaW5nIiwiZ2V0UHJldmlvdXNTaWJsaW5nIiwiaXNUZXh0RW50aXR5Iiwic3RhcnRUcmFuc2l0aW9uIiwiY2FsbGJhY2siLCJnZXRTY3JvbGxQYXJlbnQiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwiYW5jaG9yQ2xhc3NOYW1lIiwiYW5jaG9yRWxlbSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25DbG9zZSIsIm9uT3BlbiIsIm9uUXVlcnlDaGFuZ2UiLCJvblNlbGVjdE9wdGlvbiIsInRyaWdnZXJGbiIsInJlc29sdXRpb24iLCJzZXRSZXNvbHV0aW9uIiwiYW5jaG9yRWxlbWVudFJlZiIsImNsb3NlVHlwZWFoZWFkIiwib3BlblR5cGVhaGVhZCIsInJlcyIsInJlZ2lzdGVyQ29tbWFuZCIsIm5vZGUiLCJtYXRjaCIsIm1hdGNoaW5nU3RyaW5nIiwicmVwbGFjZWFibGVTdHJpbmciLCJfd2luZG93Iiwid2luZG93IiwiY3JlYXRlUmFuZ2UiLCJpc1JhbmdlUG9zaXRpb25lZCIsImdldFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ1cGRhdGVMaXN0ZW5lciIsInF1ZXJ5IiwicmVtb3ZlVXBkYXRlTGlzdGVuZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiY2xvc2UiLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiXSwibWFwcGluZ3MiOiJBQUFBO0FBU0EsU0FBU0EseUJBQXlCLFFBQVEsd0NBQXVDO0FBQ2pGLFNBQVNDLGFBQWEsUUFBUSxpQkFBZ0I7QUFDOUMsU0FDRUMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLFdBQVcsRUFDWEMsb0JBQW9CLEVBQ3BCQyxhQUFhLFFBQ1IsVUFBUztBQUNoQixTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDeEQsWUFBWUMsV0FBVyxRQUFPO0FBTTlCLFNBQVNDLFdBQVcsRUFBRUMsZ0JBQWdCLFFBQVEsZ0JBQWU7QUFFN0QsT0FBTyxNQUFNQyxjQUFjLCtEQUE4RDtBQUV6RixTQUFTQyxrQkFBa0JDLFNBQXlCO0lBQ2xELE1BQU1DLFNBQVNELFVBQVVDLE1BQU07SUFDL0IsSUFBSUEsT0FBT0MsSUFBSSxLQUFLLFFBQVE7UUFDMUIsT0FBTztJQUNUO0lBQ0EsTUFBTUMsYUFBYUYsT0FBT0csT0FBTztJQUNqQyxJQUFJLENBQUNELFdBQVdFLFlBQVksSUFBSTtRQUM5QixPQUFPO0lBQ1Q7SUFDQSxNQUFNQyxlQUFlTCxPQUFPTSxNQUFNO0lBQ2xDLE9BQU9KLFdBQVdLLGNBQWMsR0FBR0MsS0FBSyxDQUFDLEdBQUdIO0FBQzlDO0FBRUEsU0FBU0ksbUJBQW1CQyxVQUFrQixFQUFFQyxLQUFZLEVBQUVDLFlBQW9CO0lBQ2hGLE1BQU1DLGVBQWVELGFBQWFFLFlBQVk7SUFDOUMsSUFBSUQsaUJBQWlCLFFBQVEsQ0FBQ0EsYUFBYUUs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
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
SlashMenuGroup: function() {
|
|
13
|
-
return SlashMenuGroup;
|
|
14
|
-
},
|
|
15
|
-
SlashMenuOption: function() {
|
|
16
|
-
return SlashMenuOption;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
class SlashMenuOption {
|
|
1
|
+
export class SlashMenuOption {
|
|
20
2
|
// Icon for display
|
|
21
3
|
Icon;
|
|
22
4
|
displayName;
|
|
@@ -47,11 +29,11 @@ class SlashMenuOption {
|
|
|
47
29
|
};
|
|
48
30
|
}
|
|
49
31
|
}
|
|
50
|
-
class SlashMenuGroup {
|
|
32
|
+
export class SlashMenuGroup {
|
|
51
33
|
// Used for class names and, if displayName is not provided, for display.
|
|
52
34
|
displayName;
|
|
53
35
|
key;
|
|
54
36
|
options;
|
|
55
37
|
}
|
|
56
38
|
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgY2xhc3MgU2xhc2hNZW51T3B0aW9uIHtcbiAgLy8gSWNvbiBmb3IgZGlzcGxheVxuICBJY29uOiBSZWFjdC5GQ1xuXG4gIGRpc3BsYXlOYW1lPzogKCh7IGkxOG4gfTogeyBpMThuOiBJMThuIH0pID0+IHN0cmluZykgfCBzdHJpbmdcbiAgLy8gVXNlZCBmb3IgY2xhc3MgbmFtZXMgYW5kLCBpZiBkaXNwbGF5TmFtZSBpcyBub3QgcHJvdmlkZWQsIGZvciBkaXNwbGF5LlxuICBrZXk6IHN0cmluZ1xuICAvLyBUQkRcbiAga2V5Ym9hcmRTaG9ydGN1dD86IHN0cmluZ1xuICAvLyBGb3IgZXh0cmEgc2VhcmNoaW5nLlxuICBrZXl3b3JkczogQXJyYXk8c3RyaW5nPlxuICAvLyBXaGF0IGhhcHBlbnMgd2hlbiB5b3Ugc2VsZWN0IHRoaXMgb3B0aW9uP1xuICBvblNlbGVjdDogKHsgZWRpdG9yLCBxdWVyeVN0cmluZyB9OiB7IGVkaXRvcjogTGV4aWNhbEVkaXRvcjsgcXVlcnlTdHJpbmc6IHN0cmluZyB9KSA9PiB2b2lkXG5cbiAgcmVmPzogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+XG5cbiAgY29uc3RydWN0b3IoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgSWNvbjogUmVhY3QuRkNcbiAgICAgIGRpc3BsYXlOYW1lPzogKCh7IGkxOG4gfTogeyBpMThuOiBJMThuIH0pID0+IHN0cmluZykgfCBzdHJpbmdcbiAgICAgIGtleWJvYXJkU2hvcnRjdXQ/
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgY2xhc3MgU2xhc2hNZW51T3B0aW9uIHtcbiAgLy8gSWNvbiBmb3IgZGlzcGxheVxuICBJY29uOiBSZWFjdC5GQ1xuXG4gIGRpc3BsYXlOYW1lPzogKCh7IGkxOG4gfTogeyBpMThuOiBJMThuIH0pID0+IHN0cmluZykgfCBzdHJpbmdcbiAgLy8gVXNlZCBmb3IgY2xhc3MgbmFtZXMgYW5kLCBpZiBkaXNwbGF5TmFtZSBpcyBub3QgcHJvdmlkZWQsIGZvciBkaXNwbGF5LlxuICBrZXk6IHN0cmluZ1xuICAvLyBUQkRcbiAga2V5Ym9hcmRTaG9ydGN1dD86IHN0cmluZ1xuICAvLyBGb3IgZXh0cmEgc2VhcmNoaW5nLlxuICBrZXl3b3JkczogQXJyYXk8c3RyaW5nPlxuICAvLyBXaGF0IGhhcHBlbnMgd2hlbiB5b3Ugc2VsZWN0IHRoaXMgb3B0aW9uP1xuICBvblNlbGVjdDogKHsgZWRpdG9yLCBxdWVyeVN0cmluZyB9OiB7IGVkaXRvcjogTGV4aWNhbEVkaXRvcjsgcXVlcnlTdHJpbmc6IHN0cmluZyB9KSA9PiB2b2lkXG5cbiAgcmVmPzogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+XG5cbiAgY29uc3RydWN0b3IoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgSWNvbjogUmVhY3QuRkNcbiAgICAgIGRpc3BsYXlOYW1lPzogKCh7IGkxOG4gfTogeyBpMThuOiBJMThuIH0pID0+IHN0cmluZykgfCBzdHJpbmdcbiAgICAgIGtleWJvYXJkU2hvcnRjdXQ/OiBzdHJpbmdcbiAgICAgIGtleXdvcmRzPzogQXJyYXk8c3RyaW5nPlxuICAgICAgb25TZWxlY3Q6ICh7IGVkaXRvciwgcXVlcnlTdHJpbmcgfTogeyBlZGl0b3I6IExleGljYWxFZGl0b3I7IHF1ZXJ5U3RyaW5nOiBzdHJpbmcgfSkgPT4gdm9pZFxuICAgIH0sXG4gICkge1xuICAgIHRoaXMua2V5ID0ga2V5XG4gICAgdGhpcy5yZWYgPSB7IGN1cnJlbnQ6IG51bGwgfVxuICAgIHRoaXMuc2V0UmVmRWxlbWVudCA9IHRoaXMuc2V0UmVmRWxlbWVudC5iaW5kKHRoaXMpXG5cbiAgICB0aGlzLmRpc3BsYXlOYW1lID0gb3B0aW9ucy5kaXNwbGF5TmFtZVxuICAgIHRoaXMua2V5d29yZHMgPSBvcHRpb25zLmtleXdvcmRzIHx8IFtdXG4gICAgdGhpcy5JY29uID0gb3B0aW9ucy5JY29uXG4gICAgdGhpcy5rZXlib2FyZFNob3J0Y3V0ID0gb3B0aW9ucy5rZXlib2FyZFNob3J0Y3V0XG4gICAgdGhpcy5vblNlbGVjdCA9IG9wdGlvbnMub25TZWxlY3QuYmluZCh0aGlzKVxuICB9XG5cbiAgc2V0UmVmRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwpIHtcbiAgICB0aGlzLnJlZiA9IHsgY3VycmVudDogZWxlbWVudCB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNsYXNoTWVudUdyb3VwIHtcbiAgLy8gVXNlZCBmb3IgY2xhc3MgbmFtZXMgYW5kLCBpZiBkaXNwbGF5TmFtZSBpcyBub3QgcHJvdmlkZWQsIGZvciBkaXNwbGF5LlxuICBkaXNwbGF5TmFtZT86ICgoeyBpMThuIH06IHsgaTE4bjogSTE4biB9KSA9PiBzdHJpbmcpIHwgc3RyaW5nXG4gIGtleTogc3RyaW5nXG4gIG9wdGlvbnM6IEFycmF5PFNsYXNoTWVudU9wdGlvbj5cbn1cbiJdLCJuYW1lcyI6WyJTbGFzaE1lbnVPcHRpb24iLCJJY29uIiwiZGlzcGxheU5hbWUiLCJrZXkiLCJrZXlib2FyZFNob3J0Y3V0Iiwia2V5d29yZHMiLCJvblNlbGVjdCIsInJlZiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImN1cnJlbnQiLCJzZXRSZWZFbGVtZW50IiwiYmluZCIsImVsZW1lbnQiLCJTbGFzaE1lbnVHcm91cCJdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxNQUFNQTtJQUNYLG1CQUFtQjtJQUNuQkMsS0FBYztJQUVkQyxZQUE2RDtJQUM3RCx5RUFBeUU7SUFDekVDLElBQVc7SUFDWCxNQUFNO0lBQ05DLGlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkJDLFNBQXVCO0lBQ3ZCLDRDQUE0QztJQUM1Q0MsU0FBMkY7SUFFM0ZDLElBQTBDO0lBRTFDQyxZQUNFTCxHQUFXLEVBQ1hNLE9BTUMsQ0FDRDtRQUNBLElBQUksQ0FBQ04sR0FBRyxHQUFHQTtRQUNYLElBQUksQ0FBQ0ksR0FBRyxHQUFHO1lBQUVHLFNBQVM7UUFBSztRQUMzQixJQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUNBLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDLElBQUk7UUFFakQsSUFBSSxDQUFDVixXQUFXLEdBQUdPLFFBQVFQLFdBQVc7UUFDdEMsSUFBSSxDQUFDRyxRQUFRLEdBQUdJLFFBQVFKLFFBQVEsSUFBSSxFQUFFO1FBQ3RDLElBQUksQ0FBQ0osSUFBSSxHQUFHUSxRQUFRUixJQUFJO1FBQ3hCLElBQUksQ0FBQ0csZ0JBQWdCLEdBQUdLLFFBQVFMLGdCQUFnQjtRQUNoRCxJQUFJLENBQUNFLFFBQVEsR0FBR0csUUFBUUgsUUFBUSxDQUFDTSxJQUFJLENBQUMsSUFBSTtJQUM1QztJQUVBRCxjQUFjRSxPQUEyQixFQUFFO1FBQ3pDLElBQUksQ0FBQ04sR0FBRyxHQUFHO1lBQUVHLFNBQVNHO1FBQVE7SUFDaEM7QUFDRjtBQUVBLE9BQU8sTUFBTUM7SUFDWCx5RUFBeUU7SUFDekVaLFlBQTZEO0lBQzdEQyxJQUFXO0lBQ1hNLFFBQStCO0FBQ2pDIn0=
|
|
@@ -1,66 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
});
|
|
12
|
-
const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
13
|
-
const _ui = require("@payloadcms/ui");
|
|
14
|
-
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
15
|
-
const _reactdom = /*#__PURE__*/ _interop_require_wildcard(require("react-dom"));
|
|
16
|
-
const _EditorConfigProvider = require("../../config/client/EditorConfigProvider");
|
|
17
|
-
const _LexicalTypeaheadMenuPlugin = require("./LexicalTypeaheadMenuPlugin");
|
|
18
|
-
require("./index.scss");
|
|
19
|
-
const _useMenuTriggerMatch = require("./useMenuTriggerMatch");
|
|
20
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
21
|
-
if (typeof WeakMap !== "function") return null;
|
|
22
|
-
var cacheBabelInterop = new WeakMap();
|
|
23
|
-
var cacheNodeInterop = new WeakMap();
|
|
24
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
25
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
26
|
-
})(nodeInterop);
|
|
27
|
-
}
|
|
28
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
29
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
30
|
-
return obj;
|
|
31
|
-
}
|
|
32
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
33
|
-
return {
|
|
34
|
-
default: obj
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
38
|
-
if (cache && cache.has(obj)) {
|
|
39
|
-
return cache.get(obj);
|
|
40
|
-
}
|
|
41
|
-
var newObj = {
|
|
42
|
-
__proto__: null
|
|
43
|
-
};
|
|
44
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
45
|
-
for(var key in obj){
|
|
46
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
47
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
48
|
-
if (desc && (desc.get || desc.set)) {
|
|
49
|
-
Object.defineProperty(newObj, key, desc);
|
|
50
|
-
} else {
|
|
51
|
-
newObj[key] = obj[key];
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
newObj.default = obj;
|
|
56
|
-
if (cache) {
|
|
57
|
-
cache.set(obj, newObj);
|
|
58
|
-
}
|
|
59
|
-
return newObj;
|
|
60
|
-
}
|
|
2
|
+
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
3
|
+
import { useTranslation } from '@payloadcms/ui';
|
|
4
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import * as ReactDOM from 'react-dom';
|
|
7
|
+
import { useEditorConfigContext } from '../../config/client/EditorConfigProvider';
|
|
8
|
+
import { LexicalTypeaheadMenuPlugin } from './LexicalTypeaheadMenuPlugin';
|
|
9
|
+
import './index.scss';
|
|
10
|
+
import { useMenuTriggerMatch } from './useMenuTriggerMatch';
|
|
61
11
|
const baseClass = 'slash-menu-popup';
|
|
62
12
|
function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
|
|
63
|
-
const { i18n } =
|
|
13
|
+
const { i18n } = useTranslation();
|
|
64
14
|
let className = `${baseClass}__item ${baseClass}__item-${option.key}`;
|
|
65
15
|
if (isSelected) {
|
|
66
16
|
className += ` ${baseClass}__item--selected`;
|
|
@@ -75,7 +25,7 @@ function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
|
|
|
75
25
|
if (title.length > 25) {
|
|
76
26
|
title = title.substring(0, 25) + '...';
|
|
77
27
|
}
|
|
78
|
-
return /*#__PURE__*/
|
|
28
|
+
return /*#__PURE__*/ React.createElement("button", {
|
|
79
29
|
"aria-selected": isSelected,
|
|
80
30
|
className: className,
|
|
81
31
|
id: baseClass + '__item-' + option.key,
|
|
@@ -86,19 +36,19 @@ function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
|
|
|
86
36
|
role: "option",
|
|
87
37
|
tabIndex: -1,
|
|
88
38
|
type: "button"
|
|
89
|
-
}, option?.Icon && /*#__PURE__*/
|
|
39
|
+
}, option?.Icon && /*#__PURE__*/ React.createElement(option.Icon, null), /*#__PURE__*/ React.createElement("span", {
|
|
90
40
|
className: `${baseClass}__item-text`
|
|
91
41
|
}, title));
|
|
92
42
|
}
|
|
93
|
-
function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
94
|
-
const [editor] =
|
|
95
|
-
const [queryString, setQueryString] =
|
|
96
|
-
const { editorConfig } =
|
|
97
|
-
const { i18n } =
|
|
98
|
-
const checkForTriggerMatch =
|
|
43
|
+
export function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
44
|
+
const [editor] = useLexicalComposerContext();
|
|
45
|
+
const [queryString, setQueryString] = useState(null);
|
|
46
|
+
const { editorConfig } = useEditorConfigContext();
|
|
47
|
+
const { i18n } = useTranslation();
|
|
48
|
+
const checkForTriggerMatch = useMenuTriggerMatch('/', {
|
|
99
49
|
minLength: 0
|
|
100
50
|
});
|
|
101
|
-
const getDynamicOptions =
|
|
51
|
+
const getDynamicOptions = useCallback(()=>{
|
|
102
52
|
let groupWithOptions = [];
|
|
103
53
|
for (const dynamicOption of editorConfig.features.slashMenu.dynamicOptions){
|
|
104
54
|
const dynamicGroupWithOptions = dynamicOption({
|
|
@@ -113,7 +63,7 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
113
63
|
queryString,
|
|
114
64
|
editorConfig?.features
|
|
115
65
|
]);
|
|
116
|
-
const groups =
|
|
66
|
+
const groups = useMemo(()=>{
|
|
117
67
|
let groupsWithOptions = [];
|
|
118
68
|
for (const groupWithOption of editorConfig?.features.slashMenu.groupsWithOptions ?? []){
|
|
119
69
|
groupsWithOptions.push(groupWithOption);
|
|
@@ -167,7 +117,7 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
167
117
|
editorConfig?.features,
|
|
168
118
|
i18n
|
|
169
119
|
]);
|
|
170
|
-
const onSelectOption =
|
|
120
|
+
const onSelectOption = useCallback((selectedOption, nodeToRemove, closeMenu, matchingString)=>{
|
|
171
121
|
editor.update(()=>{
|
|
172
122
|
if (nodeToRemove) {
|
|
173
123
|
nodeToRemove.remove();
|
|
@@ -181,10 +131,10 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
181
131
|
}, [
|
|
182
132
|
editor
|
|
183
133
|
]);
|
|
184
|
-
return /*#__PURE__*/
|
|
134
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(LexicalTypeaheadMenuPlugin, {
|
|
185
135
|
anchorElem: anchorElem,
|
|
186
136
|
groupsWithOptions: groups,
|
|
187
|
-
menuRenderFn: (anchorElementRef, { selectOptionAndCleanUp, selectedOptionKey, setSelectedOptionKey })=>anchorElementRef.current && groups.length ? /*#__PURE__*/
|
|
137
|
+
menuRenderFn: (anchorElementRef, { selectOptionAndCleanUp, selectedOptionKey, setSelectedOptionKey })=>anchorElementRef.current && groups.length ? /*#__PURE__*/ ReactDOM.createPortal(/*#__PURE__*/ React.createElement("div", {
|
|
188
138
|
className: baseClass
|
|
189
139
|
}, groups.map((group)=>{
|
|
190
140
|
let groupTitle = group.key;
|
|
@@ -193,12 +143,12 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
193
143
|
i18n
|
|
194
144
|
}) : group.displayName;
|
|
195
145
|
}
|
|
196
|
-
return /*#__PURE__*/
|
|
146
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
197
147
|
className: `${baseClass}__group ${baseClass}__group-${group.key}`,
|
|
198
148
|
key: group.key
|
|
199
|
-
}, /*#__PURE__*/
|
|
149
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
200
150
|
className: `${baseClass}__group-title`
|
|
201
|
-
}, groupTitle), group.options.map((option, oi)=>/*#__PURE__*/
|
|
151
|
+
}, groupTitle), group.options.map((option, oi)=>/*#__PURE__*/ React.createElement(SlashMenuItem, {
|
|
202
152
|
index: oi,
|
|
203
153
|
isSelected: selectedOptionKey === option.key,
|
|
204
154
|
key: option.key,
|
|
@@ -218,4 +168,4 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
218
168
|
}));
|
|
219
169
|
}
|
|
220
170
|
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIH0gZnJvbSAnLi9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgdXNlTWVudVRyaWdnZXJNYXRjaCB9IGZyb20gJy4vdXNlTWVudVRyaWdnZXJNYXRjaCdcblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmZ1bmN0aW9uIFNsYXNoTWVudUl0ZW0oe1xuICBpc1NlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9wdGlvbixcbn06IHtcbiAgaW5kZXg6IG51bWJlclxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgb25Nb3VzZUVudGVyOiAoKSA9PiB2b2lkXG4gIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uXG59KSB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXtiYXNlQ2xhc3MgKyAnX19pdGVtLScgKyBvcHRpb24ua2V5fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge29wdGlvbj8uSWNvbiAmJiA8b3B0aW9uLkljb24gLz59XG5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faXRlbS10ZXh0YH0+e3RpdGxlfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xhc2hNZW51UGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlNsYXNoTWVudVBsdWdpbiIsImJhc2VDbGFzcyIsIlNsYXNoTWVudUl0ZW0iLCJpc1NlbGVjdGVkIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9wdGlvbiIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImNsYXNzTmFtZSIsImtleSIsInRpdGxlIiwiZGlzcGxheU5hbWUiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJidXR0b24iLCJhcmlhLXNlbGVjdGVkIiwiaWQiLCJyZWYiLCJzZXRSZWZFbGVtZW50Iiwicm9sZSIsInRhYkluZGV4IiwidHlwZSIsIkljb24iLCJzcGFuIiwiYW5jaG9yRWxlbSIsImRvY3VtZW50IiwiYm9keSIsImVkaXRvciIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJxdWVyeVN0cmluZyIsInNldFF1ZXJ5U3RyaW5nIiwidXNlU3RhdGUiLCJlZGl0b3JDb25maWciLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiY2hlY2tGb3JUcmlnZ2VyTWF0Y2giLCJ1c2VNZW51VHJpZ2dlck1hdGNoIiwibWluTGVuZ3RoIiwiZ2V0RHluYW1pY09wdGlvbnMiLCJ1c2VDYWxsYmFjayIsImdyb3VwV2l0aE9wdGlvbnMiLCJkeW5hbWljT3B0aW9uIiwiZmVhdHVyZXMiLCJzbGFzaE1lbnUiLCJkeW5hbWljT3B0aW9ucyIsImR5bmFtaWNHcm91cFdpdGhPcHRpb25zIiwiY29uY2F0IiwiZ3JvdXBzIiwidXNlTWVtbyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiUmVhY3QiLCJGcmFnbWVudCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwibWVudVJlbmRlckZuIiwiYW5jaG9yRWxlbWVudFJlZiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwiY3VycmVudCIsIlJlYWN0RE9NIiwiY3JlYXRlUG9ydGFsIiwiZGl2IiwiZ3JvdXBUaXRsZSIsIm9pIiwiaW5kZXgiLCJvblF1ZXJ5Q2hhbmdlIiwidHJpZ2dlckZuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBbUVnQkE7OztlQUFBQTs7O3dDQWhFMEI7b0JBQ1g7K0RBQ2dCO2tFQUVyQjtzQ0FJYTs0Q0FDSTtRQUNwQztxQ0FDNkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwQyxNQUFNQyxZQUFZO0FBRWxCLFNBQVNDLGNBQWMsRUFDckJDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLE1B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
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29uZmlnL2NsaWVudC9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIH0gZnJvbSAnLi9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgdXNlTWVudVRyaWdnZXJNYXRjaCB9IGZyb20gJy4vdXNlTWVudVRyaWdnZXJNYXRjaCdcblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmZ1bmN0aW9uIFNsYXNoTWVudUl0ZW0oe1xuICBpc1NlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9wdGlvbixcbn06IHtcbiAgaW5kZXg6IG51bWJlclxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgb25Nb3VzZUVudGVyOiAoKSA9PiB2b2lkXG4gIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uXG59KSB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXtiYXNlQ2xhc3MgKyAnX19pdGVtLScgKyBvcHRpb24ua2V5fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge29wdGlvbj8uSWNvbiAmJiA8b3B0aW9uLkljb24gLz59XG5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faXRlbS10ZXh0YH0+e3RpdGxlfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xhc2hNZW51UGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInVzZVN0YXRlIiwiUmVhY3QiLCJSZWFjdERPTSIsInVzZUVkaXRvckNvbmZpZ0NvbnRleHQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsInVzZU1lbnVUcmlnZ2VyTWF0Y2giLCJiYXNlQ2xhc3MiLCJTbGFzaE1lbnVJdGVtIiwiaXNTZWxlY3RlZCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvcHRpb24iLCJpMThuIiwiY2xhc3NOYW1lIiwia2V5IiwidGl0bGUiLCJkaXNwbGF5TmFtZSIsImxlbmd0aCIsInN1YnN0cmluZyIsImJ1dHRvbiIsImFyaWEtc2VsZWN0ZWQiLCJpZCIsInJlZiIsInNldFJlZkVsZW1lbnQiLCJyb2xlIiwidGFiSW5kZXgiLCJ0eXBlIiwiSWNvbiIsInNwYW4iLCJTbGFzaE1lbnVQbHVnaW4iLCJhbmNob3JFbGVtIiwiZG9jdW1lbnQiLCJib2R5IiwiZWRpdG9yIiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsImVkaXRvckNvbmZpZyIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwibWluTGVuZ3RoIiwiZ2V0RHluYW1pY09wdGlvbnMiLCJncm91cFdpdGhPcHRpb25zIiwiZHluYW1pY09wdGlvbiIsImZlYXR1cmVzIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJkeW5hbWljR3JvdXBXaXRoT3B0aW9ucyIsImNvbmNhdCIsImdyb3VwcyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiRnJhZ21lbnQiLCJtZW51UmVuZGVyRm4iLCJhbmNob3JFbGVtZW50UmVmIiwic2VsZWN0T3B0aW9uQW5kQ2xlYW5VcCIsInNlbGVjdGVkT3B0aW9uS2V5Iiwic2V0U2VsZWN0ZWRPcHRpb25LZXkiLCJjdXJyZW50IiwiY3JlYXRlUG9ydGFsIiwiZGl2IiwiZ3JvdXBUaXRsZSIsIm9pIiwiaW5kZXgiLCJvblF1ZXJ5Q2hhbmdlIiwidHJpZ2dlckZuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUdBLFNBQVNBLHlCQUF5QixRQUFRLHdDQUF1QztBQUNqRixTQUFTQyxjQUFjLFFBQVEsaUJBQWdCO0FBQy9DLFNBQVNDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLFFBQVEsUUFBTztBQUN0RCxZQUFZQyxXQUFXLFFBQU87QUFDOUIsWUFBWUMsY0FBYyxZQUFXO0FBSXJDLFNBQVNDLHNCQUFzQixRQUFRLDJDQUEwQztBQUNqRixTQUFT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
|
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return useMenuTriggerMatch;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _react = require("react");
|
|
12
|
-
const _LexicalTypeaheadMenuPlugin = require("./LexicalTypeaheadMenuPlugin");
|
|
13
|
-
function useMenuTriggerMatch(/**
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { PUNCTUATION } from './LexicalTypeaheadMenuPlugin';
|
|
3
|
+
/**
|
|
4
|
+
* Returns a function which checks if the trigger (e.g. '/') is present in the query and, if so, returns the matching string (text after the trigger)
|
|
5
|
+
*/ export function useMenuTriggerMatch(/**
|
|
14
6
|
* Text which triggers the menu. Everything after this text will be used as the query.
|
|
15
7
|
*/ trigger, { maxLength = 75, minLength = 1 }) {
|
|
16
|
-
return
|
|
17
|
-
const validChars = '[^' + trigger +
|
|
8
|
+
return useCallback(({ query })=>{
|
|
9
|
+
const validChars = '[^' + trigger + PUNCTUATION + '\\s]';
|
|
18
10
|
const TypeaheadTriggerRegex = new RegExp('(^|\\s|\\()(' + '[' + trigger + ']' + '((?:' + validChars + '){0,' + maxLength + '})' + ')$');
|
|
19
11
|
const match = TypeaheadTriggerRegex.exec(query);
|
|
20
12
|
if (match !== null) {
|
|
@@ -38,4 +30,4 @@ function useMenuTriggerMatch(/**
|
|
|
38
30
|
]);
|
|
39
31
|
}
|
|
40
32
|
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/OicgK1xuICAgICAgICAgIHZhbGlkQ2hhcnMgK1xuICAgICAgICAgICcpezAsJyArXG4gICAgICAgICAgbWF4TGVuZ3RoICtcbiAgICAgICAgICAnfSknICtcbiAgICAgICAgICAnKSQnLFxuICAgICAgKVxuICAgICAgY29uc3QgbWF0Y2ggPSBUeXBlYWhlYWRUcmlnZ2VyUmVnZXguZXhlYyhxdWVyeSlcbiAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtYXliZUxlYWRpbmdXaGl0ZXNwYWNlID0gbWF0Y2hbMV1cblxuICAgICAgICAvKipcbiAgICAgICAgICogbWF0Y2hpbmdTdHJpbmcgaXMgb25seSB0aGUgdGV4dCBBRlRFUiB0aGUgdHJpZ2dlciB0ZXh0LiAoU28gZXZlcnl0aGluZyBhZnRlciB0aGUgLylcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gbWF0Y2hbM11cblxuICAgICAgICBpZiAobWF0Y2hpbmdTdHJpbmcubGVuZ3RoID49IG1pbkxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWFkT2Zmc2V0OiBtYXRjaC5pbmRleCArIG1heWJlTGVhZGluZ1doaXRlc3BhY2UubGVuZ3RoLFxuICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmcsXG4gICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogbWF0Y2hbMl0sIC8vIHJlcGxhY2VhYmxlU3RyaW5nIGlzIHRoZSB0cmlnZ2VyIHRleHQgKyB0aGUgbWF0Y2hpbmcgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgW21heExlbmd0aCwgbWluTGVuZ3RoLCB0cmlnZ2VyXSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZUNhbGxiYWNrIiwiUFVOQ1RVQVRJT04iLCJ1c2VNZW51VHJpZ2dlck1hdGNoIiwidHJpZ2dlciIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInF1ZXJ5IiwidmFsaWRDaGFycyIsIlR5cGVhaGVhZFRyaWdnZXJSZWdleCIsIlJlZ0V4cCIsIm1hdGNoIiwiZXhlYyIsIm1heWJlTGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGluZ1N0cmluZyIsImxlbmd0aCIsImxlYWRPZmZzZXQiLCJpbmRleCIsInJlcGxhY2VhYmxlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxXQUFXLFFBQVEsUUFBTztBQUVuQyxTQUFTQyxXQUFXLFFBQVEsK0JBQThCO0FBaUIxRDs7Q0FFQyxHQUNELE9BQU8sU0FBU0Msb0JBQ2Q7O0dBRUMsR0FDREMsT0FBZSxFQUNmLEVBQUVDLFlBQVksRUFBRSxFQUFFQyxZQUFZLENBQUMsRUFBOEM7SUFFN0UsT0FBT0wsWUFDTCxDQUFDLEVBQUVNLEtBQUssRUFBRTtRQUNSLE1BQU1DLGFBQWEsT0FBT0osVUFBVUYsY0FBYztRQUNsRCxNQUFNTyx3QkFBd0IsSUFBSUMsT0FDaEMsaUJBQ0UsTUFDQU4sVUFDQSxNQUNBLFNBQ0FJLGFBQ0EsU0FDQUgsWUFDQSxPQUNBO1FBRUosTUFBTU0sUUFBUUYsc0JBQXNCRyxJQUFJLENBQUNMO1FBQ3pDLElBQUlJLFVBQVUsTUFBTTtZQUNsQixNQUFNRSx5QkFBeUJGLEtBQUssQ0FBQyxFQUFFO1lBRXZDOztTQUVDLEdBQ0QsTUFBTUcsaUJBQWlCSCxLQUFLLENBQUMsRUFBRTtZQUUvQixJQUFJRyxlQUFlQyxNQUFNLElBQUlULFdBQVc7Z0JBQ3RDLE9BQU87b0JBQ0xVLFlBQVlMLE1BQU1NLEtBQUssR0FBR0osdUJBQXVCRSxNQUFNO29CQUN2REQ7b0JBQ0FJLG1CQUFtQlAsS0FBSyxDQUFDLEVBQUU7Z0JBQzdCO1lBQ0Y7UUFDRjtRQUNBLE9BQU87SUFDVCxHQUNBO1FBQUNOO1FBQVdDO1FBQVdGO0tBQVE7QUFFbkMifQ==
|