@payloadcms/richtext-lexical 0.2.0 → 0.3.1
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/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +3 -1
- package/dist/field/features/BlockQuote/index.d.ts.map +1 -1
- package/dist/field/features/BlockQuote/index.js +7 -5
- package/dist/field/features/Blocks/component/index.scss +2 -2
- package/dist/field/features/Blocks/index.d.ts.map +1 -1
- package/dist/field/features/Blocks/index.js +6 -5
- package/dist/field/features/Blocks/nodes/BlocksNode.js +2 -2
- package/dist/field/features/Blocks/populationPromise.d.ts.map +1 -1
- package/dist/field/features/Blocks/populationPromise.js +6 -2
- package/dist/field/features/Heading/index.d.ts.map +1 -1
- package/dist/field/features/Heading/index.js +6 -4
- package/dist/field/features/Link/populationPromise.d.ts.map +1 -1
- package/dist/field/features/Link/populationPromise.js +6 -2
- package/dist/field/features/Paragraph/index.d.ts.map +1 -1
- package/dist/field/features/Paragraph/index.js +6 -4
- package/dist/field/features/Relationship/index.d.ts.map +1 -1
- package/dist/field/features/Relationship/index.js +6 -4
- package/dist/field/features/Relationship/nodes/components/index.scss +2 -2
- package/dist/field/features/Upload/index.d.ts.map +1 -1
- package/dist/field/features/Upload/index.js +6 -4
- package/dist/field/features/Upload/populationPromise.d.ts.map +1 -1
- package/dist/field/features/Upload/populationPromise.js +6 -2
- package/dist/field/features/converters/html/field/index.d.ts.map +1 -1
- package/dist/field/features/converters/html/field/index.js +13 -1
- package/dist/field/features/lists/CheckList/index.d.ts.map +1 -1
- package/dist/field/features/lists/CheckList/index.js +23 -4
- package/dist/field/features/lists/OrderedList/index.d.ts.map +1 -1
- package/dist/field/features/lists/OrderedList/index.js +24 -5
- package/dist/field/features/lists/UnorderedList/index.d.ts +1 -1
- package/dist/field/features/lists/UnorderedList/index.d.ts.map +1 -1
- package/dist/field/features/lists/UnorderedList/index.js +27 -8
- package/dist/field/features/types.d.ts +12 -3
- package/dist/field/features/types.d.ts.map +1 -1
- package/dist/field/lexical/LexicalEditor.js +2 -2
- package/dist/field/lexical/LexicalEditor.scss +5 -0
- package/dist/field/lexical/LexicalProvider.d.ts +1 -0
- package/dist/field/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/field/lexical/LexicalProvider.js +4 -3
- package/dist/field/lexical/config/default.js +2 -2
- package/dist/field/lexical/config/sanitize.js +4 -4
- package/dist/field/lexical/nodes/index.d.ts +2 -1
- package/dist/field/lexical/nodes/index.d.ts.map +1 -1
- package/dist/field/lexical/nodes/index.js +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +4 -3
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +10 -7
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts +4 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +14 -4
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.scss +5 -5
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +3 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +1 -7
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +11 -12
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +2 -5
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +12 -28
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +9 -7
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +8 -8
- package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/SlashMenu/index.js +41 -23
- package/dist/field/lexical/plugins/SlashMenu/index.scss +7 -7
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.d.ts +23 -0
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.d.ts.map +1 -0
- package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +41 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/populate/recurseNestedFields.d.ts +10 -2
- package/dist/populate/recurseNestedFields.d.ts.map +1 -1
- package/dist/populate/recurseNestedFields.js +21 -176
- package/dist/populate/richTextRelationshipPromise.d.ts +4 -4
- package/dist/populate/richTextRelationshipPromise.d.ts.map +1 -1
- package/dist/populate/richTextRelationshipPromise.js +17 -5
- package/package.json +3 -3
|
@@ -19,20 +19,24 @@ _export(exports, {
|
|
|
19
19
|
useDynamicPositioning: function() {
|
|
20
20
|
return _LexicalMenu.useDynamicPositioning;
|
|
21
21
|
},
|
|
22
|
-
useBasicTypeaheadTriggerMatch: function() {
|
|
23
|
-
return useBasicTypeaheadTriggerMatch;
|
|
24
|
-
},
|
|
25
22
|
ENABLE_SLASH_MENU_COMMAND: function() {
|
|
26
23
|
return ENABLE_SLASH_MENU_COMMAND;
|
|
27
24
|
},
|
|
28
25
|
LexicalTypeaheadMenuPlugin: function() {
|
|
29
26
|
return LexicalTypeaheadMenuPlugin;
|
|
27
|
+
},
|
|
28
|
+
MenuTextMatch: function() {
|
|
29
|
+
return _useMenuTriggerMatch.MenuTextMatch;
|
|
30
|
+
},
|
|
31
|
+
TriggerFn: function() {
|
|
32
|
+
return _useMenuTriggerMatch.TriggerFn;
|
|
30
33
|
}
|
|
31
34
|
});
|
|
32
35
|
const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
33
36
|
const _utils = require("@lexical/utils");
|
|
34
37
|
const _lexical = require("lexical");
|
|
35
38
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
39
|
+
const _useMenuTriggerMatch = require("../useMenuTriggerMatch");
|
|
36
40
|
const _LexicalMenu = require("./LexicalMenu");
|
|
37
41
|
function _getRequireWildcardCache(nodeInterop) {
|
|
38
42
|
if (typeof WeakMap !== "function") return null;
|
|
@@ -157,29 +161,6 @@ function getScrollParent(element, includeHidden) {
|
|
|
157
161
|
}
|
|
158
162
|
return document.body;
|
|
159
163
|
}
|
|
160
|
-
function useBasicTypeaheadTriggerMatch(trigger, { maxLength = 75, minLength = 1 }) {
|
|
161
|
-
return (0, _react.useCallback)((text)=>{
|
|
162
|
-
const validChars = '[^' + trigger + PUNCTUATION + '\\s]';
|
|
163
|
-
const TypeaheadTriggerRegex = new RegExp('(^|\\s|\\()(' + '[' + trigger + ']' + '((?:' + validChars + '){0,' + maxLength + '})' + ')$');
|
|
164
|
-
const match = TypeaheadTriggerRegex.exec(text);
|
|
165
|
-
if (match !== null) {
|
|
166
|
-
const maybeLeadingWhitespace = match[1];
|
|
167
|
-
const matchingString = match[3];
|
|
168
|
-
if (matchingString.length >= minLength) {
|
|
169
|
-
return {
|
|
170
|
-
leadOffset: match.index + maybeLeadingWhitespace.length,
|
|
171
|
-
matchingString,
|
|
172
|
-
replaceableString: match[2]
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return null;
|
|
177
|
-
}, [
|
|
178
|
-
maxLength,
|
|
179
|
-
minLength,
|
|
180
|
-
trigger
|
|
181
|
-
]);
|
|
182
|
-
}
|
|
183
164
|
const ENABLE_SLASH_MENU_COMMAND = (0, _lexical.createCommand)('ENABLE_SLASH_MENU_COMMAND');
|
|
184
165
|
function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOptions, menuRenderFn, onClose, onOpen, onQueryChange, onSelectOption, triggerFn }) {
|
|
185
166
|
const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
|
|
@@ -246,7 +227,10 @@ function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOpt
|
|
|
246
227
|
closeTypeahead();
|
|
247
228
|
return;
|
|
248
229
|
}
|
|
249
|
-
const match = triggerFn(
|
|
230
|
+
const match = triggerFn({
|
|
231
|
+
editor,
|
|
232
|
+
query: text
|
|
233
|
+
});
|
|
250
234
|
onQueryChange(match ? match.matchingString : null);
|
|
251
235
|
if (match !== null && !isSelectionOnEntityBoundary(editor, match.leadOffset)) {
|
|
252
236
|
const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow);
|
|
@@ -287,4 +271,4 @@ function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOpt
|
|
|
287
271
|
});
|
|
288
272
|
}
|
|
289
273
|
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24sIE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9IGZyb20gJy4vTGV4aWNhbE1lbnUnXG5pbXBvcnQgdHlwZSB7IFNsYXNoTWVudUdyb3VwLCBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBMZXhpY2FsTWVudSwgdXNlTWVudUFuY2hvclJlZiB9IGZyb20gJy4vTGV4aWNhbE1lbnUnXG5cbmV4cG9ydCBjb25zdCBQVU5DVFVBVElPTiA9ICdcXFxcLixcXFxcK1xcXFwqXFxcXD9cXFxcJFxcXFxAXFxcXHwje31cXFxcKFxcXFwpXFxcXF5cXFxcLVxcXFxbXFxcXF1cXFxcXFxcXC8hJVxcJ1wifj08Pl86OydcblxuZnVuY3Rpb24gZ2V0VGV4dFVwVG9BbmNob3Ioc2VsZWN0aW9uOiBSYW5nZVNlbGVjdGlvbik6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCBhbmNob3IgPSBzZWxlY3Rpb24uYW5jaG9yXG4gIGlmIChhbmNob3IudHlwZSAhPT0gJ3RleHQnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBhbmNob3JOb2RlID0gYW5jaG9yLmdldE5vZGUoKVxuICBpZiAoIWFuY2hvck5vZGUuaXNTaW1wbGVUZXh0KCkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGFuY2hvck9mZnNldCA9IGFuY2hvci5vZmZzZXRcbiAgcmV0dXJuIGFuY2hvck5vZGUuZ2V0VGV4dENvbnRlbnQoKS5zbGljZSgwLCBhbmNob3JPZmZzZXQpXG59XG5cbmZ1bmN0aW9uIHRyeVRvUG9zaXRpb25SYW5nZShsZWFkT2Zmc2V0OiBudW1iZXIsIHJhbmdlOiBSYW5nZSwgZWRpdG9yV2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcbiAgY29uc3QgZG9tU2VsZWN0aW9uID0gZWRpdG9yV2luZG93LmdldFNlbGVjdGlvbigpXG4gIGlmIChkb21TZWxlY3Rpb24gPT09IG51bGwgfHwgIWRvbVNlbGVjdGlvbi5pc0NvbGxhcHNlZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IGFuY2hvck5vZGUgPSBkb21TZWxlY3Rpb24uYW5jaG9yTm9kZVxuICBjb25zdCBzdGFydE9mZnNldCA9IGxlYWRPZmZzZXRcbiAgY29uc3QgZW5kT2Zmc2V0ID0gZG9tU2VsZWN0aW9uLmFuY2hvck9mZnNldFxuXG4gIGlmIChhbmNob3JOb2RlID09IG51bGwgfHwgZW5kT2Zmc2V0ID09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmFuZ2Uuc2V0U3RhcnQoYW5jaG9yTm9kZSwgc3RhcnRPZmZzZXQpXG4gICAgLy8gaWYgZW5kT2Zmc2V0IGlzIDAsIHBvc2l0aW9uaW5nIHRoZSByYW5nZSBmb3Igd2hlbiB5b3UgY2xpY2sgdGhlIHBsdXMgYnV0dG9uIHRvIG9wZW4gdGhlIHNsYXNoIG1lbnUgd2lsbCBmaWFsXG4gICAgcmFuZ2Uuc2V0RW5kKGFuY2hvck5vZGUsIGVuZE9mZnNldCA+IDEgPyBlbmRPZmZzZXQgOiAxKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZnVuY3Rpb24gZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoKGVkaXRvcjogTGV4aWNhbEVkaXRvcik6IG51bGwgfCBzdHJpbmcge1xuICBsZXQgdGV4dCA9IG51bGxcbiAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGV4dCA9IGdldFRleHRVcFRvQW5jaG9yKHNlbGVjdGlvbilcbiAgfSlcbiAgcmV0dXJuIHRleHRcbn1cblxuZnVuY3Rpb24gaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5KGVkaXRvcjogTGV4aWNhbEVkaXRvciwgb2Zmc2V0OiBudW1iZXIpOiBib29sZWFuIHtcbiAgaWYgKG9mZnNldCAhPT0gMCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICAgICAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgICAgIGNvbnN0IHByZXZTaWJsaW5nID0gYW5jaG9yTm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICAgICAgcmV0dXJuICRpc1RleHROb2RlKHByZXZTaWJsaW5nKSAmJiBwcmV2U2libGluZy5pc1RleHRFbnRpdHkoKVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSlcbn1cblxuZnVuY3Rpb24gc3RhcnRUcmFuc2l0aW9uKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gIGlmIChSZWFjdC5zdGFydFRyYW5zaXRpb24pIHtcbiAgICBSZWFjdC5zdGFydFRyYW5zaXRpb24oY2FsbGJhY2spXG4gIH0gZWxzZSB7XG4gICAgY2FsbGJhY2soKVxuICB9XG59XG5cbi8vIEdvdCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MjU0MzkwOC8yMDEzNTgwXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgaW5jbHVkZUhpZGRlbjogYm9vbGVhbixcbik6IEhUTUxCb2R5RWxlbWVudCB8IEhUTUxFbGVtZW50IHtcbiAgbGV0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KVxuICBjb25zdCBleGNsdWRlU3RhdGljUGFyZW50ID0gc3R5bGUucG9zaXRpb24gPT09ICdhYnNvbHV0ZSdcbiAgY29uc3Qgb3ZlcmZsb3dSZWdleCA9IGluY2x1ZGVIaWRkZW4gPyAvKGF1dG98c2Nyb2xsfGhpZGRlbikvIDogLyhhdXRvfHNjcm9sbCkvXG4gIGlmIChzdHlsZS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gIH1cbiAgZm9yIChsZXQgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50OyAocGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQpOyApIHtcbiAgICBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUocGFyZW50KVxuICAgIGlmIChleGNsdWRlU3RhdGljUGFyZW50ICYmIHN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKG92ZXJmbG93UmVnZXgudGVzdChzdHlsZS5vdmVyZmxvdyArIHN0eWxlLm92ZXJmbG93WSArIHN0eWxlLm92ZXJmbG93WCkpIHtcbiAgICAgIHJldHVybiBwYXJlbnRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbn1cblxuZXhwb3J0IHsgdXNlRHluYW1pY1Bvc2l0aW9uaW5nIH0gZnJvbSAnLi9MZXhpY2FsTWVudSdcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUJhc2ljVHlwZWFoZWFkVHJpZ2dlck1hdGNoKFxuICB0cmlnZ2VyOiBzdHJpbmcsXG4gIHsgbWF4TGVuZ3RoID0gNzUsIG1pbkxlbmd0aCA9IDEgfTogeyBtYXhMZW5ndGg/OiBudW1iZXI7IG1pbkxlbmd0aD86IG51bWJlciB9LFxuKTogVHJpZ2dlckZuIHtcbiAgcmV0dXJuIHVzZUNhbGxiYWNrKFxuICAgICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkQ2hhcnMgPSAnW14nICsgdHJpZ2dlciArIFBVTkNUVUFUSU9OICsgJ1xcXFxzXSdcbiAgICAgIGNvbnN0IFR5cGVhaGVhZFRyaWdnZXJSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICcoXnxcXFxcc3xcXFxcKCkoJyArXG4gICAgICAgICAgJ1snICtcbiAgICAgICAgICB0cmlnZ2VyICtcbiAgICAgICAgICAnXScgK1xuICAgICAgICAgICcoKD86JyArXG4gICAgICAgICAgdmFsaWRDaGFycyArXG4gICAgICAgICAgJyl7MCwnICtcbiAgICAgICAgICBtYXhMZW5ndGggK1xuICAgICAgICAgICd9KScgK1xuICAgICAgICAgICcpJCcsXG4gICAgICApXG4gICAgICBjb25zdCBtYXRjaCA9IFR5cGVhaGVhZFRyaWdnZXJSZWdleC5leGVjKHRleHQpXG4gICAgICBpZiAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbWF5YmVMZWFkaW5nV2hpdGVzcGFjZSA9IG1hdGNoWzFdXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gbWF0Y2hbM11cbiAgICAgICAgaWYgKG1hdGNoaW5nU3RyaW5nLmxlbmd0aCA+PSBtaW5MZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGVhZE9mZnNldDogbWF0Y2guaW5kZXggKyBtYXliZUxlYWRpbmdXaGl0ZXNwYWNlLmxlbmd0aCxcbiAgICAgICAgICAgIG1hdGNoaW5nU3RyaW5nLFxuICAgICAgICAgICAgcmVwbGFjZWFibGVTdHJpbmc6IG1hdGNoWzJdLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9LFxuICAgIFttYXhMZW5ndGgsIG1pbkxlbmd0aCwgdHJpZ2dlcl0sXG4gIClcbn1cblxuZXhwb3J0IHR5cGUgVHlwZWFoZWFkTWVudVBsdWdpblByb3BzID0ge1xuICBhbmNob3JDbGFzc05hbWU/OiBzdHJpbmdcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgZ3JvdXBzV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPlxuICBtZW51UmVuZGVyRm46IE1lbnVSZW5kZXJGblxuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxuICBvbk9wZW4/OiAocmVzb2x1dGlvbjogTWVudVJlc29sdXRpb24pID0+IHZvaWRcbiAgb25RdWVyeUNoYW5nZTogKG1hdGNoaW5nU3RyaW5nOiBudWxsIHwgc3RyaW5nKSA9PiB2b2lkXG4gIG9uU2VsZWN0T3B0aW9uOiAoXG4gICAgb3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgdGV4dE5vZGVDb250YWluaW5nUXVlcnk6IFRleHROb2RlIHwgbnVsbCxcbiAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZyxcbiAgKSA9PiB2b2lkXG4gIHRyaWdnZXJGbjogVHJpZ2dlckZuXG59XG5cbmV4cG9ydCBjb25zdCBFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EOiBMZXhpY2FsQ29tbWFuZDx7XG4gIG5vZGU6IFBhcmFncmFwaE5vZGVcbn0+ID0gY3JlYXRlQ29tbWFuZCgnRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbih7XG4gIGFuY2hvckNsYXNzTmFtZSxcbiAgYW5jaG9yRWxlbSxcbiAgZ3JvdXBzV2l0aE9wdGlvbnMsXG4gIG1lbnVSZW5kZXJGbixcbiAgb25DbG9zZSxcbiAgb25PcGVuLFxuICBvblF1ZXJ5Q2hhbmdlLFxuICBvblNlbGVjdE9wdGlvbixcbiAgdHJpZ2dlckZuLFxufTogVHlwZWFoZWFkTWVudVBsdWdpblByb3BzKTogSlNYLkVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3Jlc29sdXRpb24sIHNldFJlc29sdXRpb25dID0gdXNlU3RhdGU8TWVudVJlc29sdXRpb24gfCBudWxsPihudWxsKVxuICBjb25zdCBhbmNob3JFbGVtZW50UmVmID0gdXNlTWVudUFuY2hvclJlZihhbmNob3JFbGVtLCByZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uLCBhbmNob3JDbGFzc05hbWUpXG5cbiAgY29uc3QgY2xvc2VUeXBlYWhlYWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UmVzb2x1dGlvbihudWxsKVxuICAgIGlmIChvbkNsb3NlICE9IG51bGwgJiYgcmVzb2x1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgb25DbG9zZSgpXG4gICAgfVxuICB9LCBbb25DbG9zZSwgcmVzb2x1dGlvbl0pXG5cbiAgY29uc3Qgb3BlblR5cGVhaGVhZCA9IHVzZUNhbGxiYWNrKFxuICAgIChyZXM6IE1lbnVSZXNvbHV0aW9uKSA9PiB7XG4gICAgICBzZXRSZXNvbHV0aW9uKHJlcylcbiAgICAgIGlmIChvbk9wZW4gIT0gbnVsbCAmJiByZXNvbHV0aW9uID09PSBudWxsKSB7XG4gICAgICAgIG9uT3BlbihyZXMpXG4gICAgICB9XG4gICAgfSxcbiAgICBbb25PcGVuLCByZXNvbHV0aW9uXSxcbiAgKVxuXG4gIC8vIFRoaXMgaXMgbWFpbmx5IHVzZWQgZm9yIHRoZSBBZGRCbG9ja0hhbmRsZVBsdWdpbiwgc28gdGhhdCB0aGUgc2xhc2ggbWVudSBjYW4gYmUgb3BlbmVkIGZyb20gdGhlcmVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIEVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQsXG4gICAgICAgICh7IG5vZGUgfSkgPT4ge1xuICAgICAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2g6IE1lbnVUZXh0TWF0Y2ggPSB7XG4gICAgICAgICAgICAgIGxlYWRPZmZzZXQ6IDAsXG4gICAgICAgICAgICAgIG1hdGNoaW5nU3RyaW5nOiAnJyxcbiAgICAgICAgICAgICAgcmVwbGFjZWFibGVTdHJpbmc6ICcnLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoICE9PSBudWxsICYmICFpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkoZWRpdG9yLCBtYXRjaC5sZWFkT2Zmc2V0KSkge1xuICAgICAgICAgICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRvcldpbmRvdyA9IGVkaXRvci5fd2luZG93ID8/IHdpbmRvd1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gZWRpdG9yV2luZG93LmRvY3VtZW50LmNyZWF0ZVJhbmdlKClcblxuICAgICAgICAgICAgICAgIGNvbnN0IGlzUmFuZ2VQb3NpdGlvbmVkID0gdHJ5VG9Qb3NpdGlvblJhbmdlKG1hdGNoLmxlYWRPZmZzZXQsIHJhbmdlLCBlZGl0b3JXaW5kb3cpXG4gICAgICAgICAgICAgICAgaWYgKGlzUmFuZ2VQb3NpdGlvbmVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgb3BlblR5cGVhaGVhZCh7XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0UmVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgb3BlblR5cGVhaGVhZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlZGl0b3JXaW5kb3cgPSBlZGl0b3IuX3dpbmRvdyA/PyB3aW5kb3dcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBlZGl0b3JXaW5kb3cuZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgY29uc3QgdGV4dCA9IGdldFF1ZXJ5VGV4dEZvclNlYXJjaChlZGl0b3IpXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pIHx8XG4gICAgICAgICAgIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCgpIHx8XG4gICAgICAgICAgdGV4dCA9PT0gbnVsbCB8fFxuICAgICAgICAgIHJhbmdlID09PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIGNsb3NlVHlwZWFoZWFkKClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gdHJpZ2dlckZuKHRleHQsIGVkaXRvcilcbiAgICAgICAgb25RdWVyeUNoYW5nZShtYXRjaCA/IG1hdGNoLm1hdGNoaW5nU3RyaW5nIDogbnVsbClcblxuICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbG9zZVR5cGVhaGVhZCgpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlbW92ZVVwZGF0ZUxpc3RlbmVyID0gZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIodXBkYXRlTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVtb3ZlVXBkYXRlTGlzdGVuZXIoKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdHJpZ2dlckZuLCBvblF1ZXJ5Q2hhbmdlLCByZXNvbHV0aW9uLCBjbG9zZVR5cGVhaGVhZCwgb3BlblR5cGVhaGVhZF0pXG5cbiAgcmV0dXJuIHJlc29sdXRpb24gPT09IG51bGwgfHwgZWRpdG9yID09PSBudWxsID8gbnVsbCA6IChcbiAgICA8TGV4aWNhbE1lbnVcbiAgICAgIGFuY2hvckVsZW1lbnRSZWY9e2FuY2hvckVsZW1lbnRSZWZ9XG4gICAgICBjbG9zZT17Y2xvc2VUeXBlYWhlYWR9XG4gICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHNXaXRoT3B0aW9uc31cbiAgICAgIG1lbnVSZW5kZXJGbj17bWVudVJlbmRlckZufVxuICAgICAgb25TZWxlY3RPcHRpb249e29uU2VsZWN0T3B0aW9ufVxuICAgICAgcmVzb2x1dGlvbj17cmVzb2x1dGlvbn1cbiAgICAgIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHsgTWVudVJlbmRlckZuLCBNZW51UmVzb2x1dGlvbiwgTWVudVRleHRNYXRjaCwgVHJpZ2dlckZuIH1cbiJdLCJuYW1lcyI6WyJQVU5DVFVBVElPTiIsImdldFNjcm9sbFBhcmVudCIsInVzZUR5bmFtaWNQb3NpdGlvbmluZyIsInVzZUJhc2ljVHlwZWFoZWFkVHJpZ2dlck1hdGNoIiwiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwiZ2V0VGV4dFVwVG9BbmNob3IiLCJzZWxlY3Rpb24iLCJhbmNob3IiLCJ0eXBlIiwiYW5jaG9yTm9kZSIsImdldE5vZGUiLCJpc1NpbXBsZVRleHQiLCJhbmNob3JPZmZzZXQiLCJvZmZzZXQiLCJnZXRUZXh0Q29udGVudCIsInNsaWNlIiwidHJ5VG9Qb3NpdGlvblJhbmdlIiwibGVhZE9mZnNldCIsInJhbmdlIiwiZWRpdG9yV2luZG93IiwiZG9tU2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwiaXNDb2xsYXBzZWQiLCJzdGFydE9mZnNldCIsImVuZE9mZnNldCIsInNldFN0YXJ0Iiwic2V0RW5kIiwiZXJyb3IiLCJnZXRRdWVyeVRleHRGb3JTZWFyY2giLCJlZGl0b3IiLCJ0ZXh0IiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5IiwicHJldlNpYmxpbmciLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNUZXh0Tm9kZSIsImlzVGV4dEVudGl0eSIsInN0YXJ0VHJhbnNpdGlvbiIsImNhbGxiYWNrIiwiUmVhY3QiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwidHJpZ2dlciIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInVzZUNhbGxiYWNrIiwidmFsaWRDaGFycyIsIlR5cGVhaGVhZFRyaWdnZXJSZWdleCIsIlJlZ0V4cCIsIm1hdGNoIiwiZXhlYyIsIm1heWJlTGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGluZ1N0cmluZyIsImxlbmd0aCIsImluZGV4IiwicmVwbGFjZWFibGVTdHJpbmciLCJjcmVhdGVDb21tYW5kIiwiYW5jaG9yQ2xhc3NOYW1lIiwiYW5jaG9yRWxlbSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25DbG9zZSIsIm9uT3BlbiIsIm9uUXVlcnlDaGFuZ2UiLCJvblNlbGVjdE9wdGlvbiIsInRyaWdnZXJGbiIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJyZXNvbHV0aW9uIiwic2V0UmVzb2x1dGlvbiIsInVzZVN0YXRlIiwiYW5jaG9yRWxlbWVudFJlZiIsInVzZU1lbnVBbmNob3JSZWYiLCJjbG9zZVR5cGVhaGVhZCIsIm9wZW5UeXBlYWhlYWQiLCJyZXMiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwibm9kZSIsIl93aW5kb3ciLCJ3aW5kb3ciLCJjcmVhdGVSYW5nZSIsImlzUmFuZ2VQb3NpdGlvbmVkIiwiZ2V0UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwidXBkYXRlTGlzdGVuZXIiLCJyZW1vdmVVcGRhdGVMaXN0ZW5lciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJMZXhpY2FsTWVudSIsImNsb3NlIiwic2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBMEJhQSxXQUFXO2VBQVhBOztJQTRFR0MsZUFBZTtlQUFmQTs7SUFzQlBDLHFCQUFxQjtlQUFyQkEsa0NBQXFCOztJQUVkQyw2QkFBNkI7ZUFBN0JBOztJQXNESEMseUJBQXlCO2VBQXpCQTs7SUFJR0MsMEJBQTBCO2VBQTFCQTs7O3dDQS9LMEI7dUJBQ1o7eUJBT3ZCOytEQUMwQzs2QkFNSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2QyxNQUFNTCxjQUFjO0FBRTNCLFNBQVNNLGtCQUFrQkMsU0FBeUI7SUFDbEQsTUFBTUMsU0FBU0QsVUFBVUMsTUFBTTtJQUMvQixJQUFJQSxPQUFPQyxJQUFJLEtBQUssUUFBUTtRQUMxQixPQUFPO0lBQ1Q7SUFDQSxNQUFNQyxhQUFhRixPQUFPRyxPQUFPO0lBQ2pDLElBQUksQ0FBQ0QsV0FBV0UsWUFBWSxJQUFJO1FBQzlCLE9BQU87SUFDVDtJQUNBLE1B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
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24gfSBmcm9tICcuL0xleGljYWxNZW51J1xuaW1wb3J0IHR5cGUgeyBTbGFzaE1lbnVHcm91cCwgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgTWVudVRleHRNYXRjaCwgVHJpZ2dlckZuIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB7IExleGljYWxNZW51LCB1c2VNZW51QW5jaG9yUmVmIH0gZnJvbSAnLi9MZXhpY2FsTWVudSdcblxuZXhwb3J0IGNvbnN0IFBVTkNUVUFUSU9OID0gJ1xcXFwuLFxcXFwrXFxcXCpcXFxcP1xcXFwkXFxcXEBcXFxcfCN7fVxcXFwoXFxcXClcXFxcXlxcXFwtXFxcXFtcXFxcXVxcXFxcXFxcLyElXFwnXCJ+PTw+Xzo7J1xuXG5mdW5jdGlvbiBnZXRUZXh0VXBUb0FuY2hvcihzZWxlY3Rpb246IFJhbmdlU2VsZWN0aW9uKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IGFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JcbiAgaWYgKGFuY2hvci50eXBlICE9PSAndGV4dCcpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGFuY2hvck5vZGUgPSBhbmNob3IuZ2V0Tm9kZSgpXG4gIGlmICghYW5jaG9yTm9kZS5pc1NpbXBsZVRleHQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yT2Zmc2V0ID0gYW5jaG9yLm9mZnNldFxuICByZXR1cm4gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIGFuY2hvck9mZnNldClcbn1cblxuZnVuY3Rpb24gdHJ5VG9Qb3NpdGlvblJhbmdlKGxlYWRPZmZzZXQ6IG51bWJlciwgcmFuZ2U6IFJhbmdlLCBlZGl0b3JXaW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICBjb25zdCBkb21TZWxlY3Rpb24gPSBlZGl0b3JXaW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgaWYgKGRvbVNlbGVjdGlvbiA9PT0gbnVsbCB8fCAhZG9tU2VsZWN0aW9uLmlzQ29sbGFwc2VkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGRvbVNlbGVjdGlvbi5hbmNob3JOb2RlXG4gIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gbGVhZE9mZnNldFxuICBjb25zdCBlbmRPZmZzZXQgPSBkb21TZWxlY3Rpb24uYW5jaG9yT2Zmc2V0XG5cbiAgaWYgKGFuY2hvck5vZGUgPT0gbnVsbCB8fCBlbmRPZmZzZXQgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdHJ5IHtcbiAgICByYW5nZS5zZXRTdGFydChhbmNob3JOb2RlLCBzdGFydE9mZnNldClcbiAgICAvLyBpZiBlbmRPZmZzZXQgaXMgMCwgcG9zaXRpb25pbmcgdGhlIHJhbmdlIGZvciB3aGVuIHlvdSBjbGljayB0aGUgcGx1cyBidXR0b24gdG8gb3BlbiB0aGUgc2xhc2ggbWVudSB3aWxsIGZpYWxcbiAgICByYW5nZS5zZXRFbmQoYW5jaG9yTm9kZSwgZW5kT2Zmc2V0ID4gMSA/IGVuZE9mZnNldCA6IDEpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiBnZXRRdWVyeVRleHRGb3JTZWFyY2goZWRpdG9yOiBMZXhpY2FsRWRpdG9yKTogbnVsbCB8IHN0cmluZyB7XG4gIGxldCB0ZXh0ID0gbnVsbFxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0ZXh0ID0gZ2V0VGV4dFVwVG9BbmNob3Ioc2VsZWN0aW9uKVxuICB9KVxuICByZXR1cm4gdGV4dFxufVxuXG5mdW5jdGlvbiBpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkoZWRpdG9yOiBMZXhpY2FsRWRpdG9yLCBvZmZzZXQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICBpZiAob2Zmc2V0ICE9PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICBjb25zdCBhbmNob3IgPSBzZWxlY3Rpb24uYW5jaG9yXG4gICAgICBjb25zdCBhbmNob3JOb2RlID0gYW5jaG9yLmdldE5vZGUoKVxuICAgICAgY29uc3QgcHJldlNpYmxpbmcgPSBhbmNob3JOb2RlLmdldFByZXZpb3VzU2libGluZygpXG4gICAgICByZXR1cm4gJGlzVGV4dE5vZGUocHJldlNpYmxpbmcpICYmIHByZXZTaWJsaW5nLmlzVGV4dEVudGl0eSgpXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9KVxufVxuXG5mdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgaWYgKFJlYWN0LnN0YXJ0VHJhbnNpdGlvbikge1xuICAgIFJlYWN0LnN0YXJ0VHJhbnNpdGlvbihjYWxsYmFjaylcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygpXG4gIH1cbn1cblxuLy8gR290IGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQyNTQzOTA4LzIwMTM1ODBcbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBpbmNsdWRlSGlkZGVuOiBib29sZWFuLFxuKTogSFRNTEJvZHlFbGVtZW50IHwgSFRNTEVsZW1lbnQge1xuICBsZXQgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpXG4gIGNvbnN0IGV4Y2x1ZGVTdGF0aWNQYXJlbnQgPSBzdHlsZS5wb3NpdGlvbiA9PT0gJ2Fic29sdXRlJ1xuICBjb25zdCBvdmVyZmxvd1JlZ2V4ID0gaW5jbHVkZUhpZGRlbiA/IC8oYXV0b3xzY3JvbGx8aGlkZGVuKS8gOiAvKGF1dG98c2Nyb2xsKS9cbiAgaWYgKHN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbiAgfVxuICBmb3IgKGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQ7IChwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCk7ICkge1xuICAgIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpXG4gICAgaWYgKGV4Y2x1ZGVTdGF0aWNQYXJlbnQgJiYgc3R5bGUucG9zaXRpb24gPT09ICdzdGF0aWMnKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAob3ZlcmZsb3dSZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93ICsgc3R5bGUub3ZlcmZsb3dZICsgc3R5bGUub3ZlcmZsb3dYKSkge1xuICAgICAgcmV0dXJuIHBhcmVudFxuICAgIH1cbiAgfVxuICByZXR1cm4gZG9jdW1lbnQuYm9keVxufVxuXG5leHBvcnQgeyB1c2VEeW5hbWljUG9zaXRpb25pbmcgfSBmcm9tICcuL0xleGljYWxNZW51J1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRNZW51UGx1Z2luUHJvcHMgPSB7XG4gIGFuY2hvckNsYXNzTmFtZT86IHN0cmluZ1xuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudFxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIG9uT3Blbj86IChyZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbikgPT4gdm9pZFxuICBvblF1ZXJ5Q2hhbmdlOiAobWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcpID0+IHZvaWRcbiAgb25TZWxlY3RPcHRpb246IChcbiAgICBvcHRpb246IFNsYXNoTWVudU9wdGlvbixcbiAgICB0ZXh0Tm9kZUNvbnRhaW5pbmdRdWVyeTogVGV4dE5vZGUgfCBudWxsLFxuICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICBtYXRjaGluZ1N0cmluZzogc3RyaW5nLFxuICApID0+IHZvaWRcbiAgdHJpZ2dlckZuOiBUcmlnZ2VyRm5cbn1cblxuZXhwb3J0IGNvbnN0IEVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgbm9kZTogUGFyYWdyYXBoTm9kZVxufT4gPSBjcmVhdGVDb21tYW5kKCdFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EJylcblxuZXhwb3J0IGZ1bmN0aW9uIExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luKHtcbiAgYW5jaG9yQ2xhc3NOYW1lLFxuICBhbmNob3JFbGVtLFxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvbkNsb3NlLFxuICBvbk9wZW4sXG4gIG9uUXVlcnlDaGFuZ2UsXG4gIG9uU2VsZWN0T3B0aW9uLFxuICB0cmlnZ2VyRm4sXG59OiBUeXBlYWhlYWRNZW51UGx1Z2luUHJvcHMpOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBbcmVzb2x1dGlvbiwgc2V0UmVzb2x1dGlvbl0gPSB1c2VTdGF0ZTxNZW51UmVzb2x1dGlvbiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGFuY2hvckVsZW1lbnRSZWYgPSB1c2VNZW51QW5jaG9yUmVmKGFuY2hvckVsZW0sIHJlc29sdXRpb24sIHNldFJlc29sdXRpb24sIGFuY2hvckNsYXNzTmFtZSlcblxuICBjb25zdCBjbG9zZVR5cGVhaGVhZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgaWYgKG9uQ2xvc2UgIT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBvbkNsb3NlKClcbiAgICB9XG4gIH0sIFtvbkNsb3NlLCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvcGVuVHlwZWFoZWFkID0gdXNlQ2FsbGJhY2soXG4gICAgKHJlczogTWVudVJlc29sdXRpb24pID0+IHtcbiAgICAgIHNldFJlc29sdXRpb24ocmVzKVxuICAgICAgaWYgKG9uT3BlbiAhPSBudWxsICYmIHJlc29sdXRpb24gPT09IG51bGwpIHtcbiAgICAgICAgb25PcGVuKHJlcylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk9wZW4sIHJlc29sdXRpb25dLFxuICApXG5cbiAgLy8gVGhpcyBpcyBtYWlubHkgdXNlZCBmb3IgdGhlIEFkZEJsb2NrSGFuZGxlUGx1Z2luLCBzbyB0aGF0IHRoZSBzbGFzaCBtZW51IGNhbiBiZSBvcGVuZWQgZnJvbSB0aGVyZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCxcbiAgICAgICAgKHsgbm9kZSB9KSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaDogTWVudVRleHRNYXRjaCA9IHtcbiAgICAgICAgICAgICAgbGVhZE9mZnNldDogMCxcbiAgICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmc6ICcnLFxuICAgICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogJycsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWRpdG9yV2luZG93ID0gZWRpdG9yLl93aW5kb3cgPz8gd2luZG93XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBlZGl0b3JXaW5kb3cuZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCBvcGVuVHlwZWFoZWFkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZUxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVkaXRvcldpbmRvdyA9IGVkaXRvci5fd2luZG93ID8/IHdpbmRvd1xuICAgICAgICBjb25zdCByYW5nZSA9IGVkaXRvcldpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgICBjb25zdCB0ZXh0ID0gZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoKGVkaXRvcilcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikgfHxcbiAgICAgICAgICAhc2VsZWN0aW9uLmlzQ29sbGFwc2VkKCkgfHxcbiAgICAgICAgICB0ZXh0ID09PSBudWxsIHx8XG4gICAgICAgICAgcmFuZ2UgPT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2xvc2VUeXBlYWhlYWQoKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0cmlnZ2VyRm4oeyBlZGl0b3IsIHF1ZXJ5OiB0ZXh0IH0pXG4gICAgICAgIG9uUXVlcnlDaGFuZ2UobWF0Y2ggPyBtYXRjaC5tYXRjaGluZ1N0cmluZyA6IG51bGwpXG5cbiAgICAgICAgaWYgKG1hdGNoICE9PSBudWxsICYmICFpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkoZWRpdG9yLCBtYXRjaC5sZWFkT2Zmc2V0KSkge1xuICAgICAgICAgIGNvbnN0IGlzUmFuZ2VQb3NpdGlvbmVkID0gdHJ5VG9Qb3NpdGlvblJhbmdlKG1hdGNoLmxlYWRPZmZzZXQsIHJhbmdlLCBlZGl0b3JXaW5kb3cpXG4gICAgICAgICAgaWYgKGlzUmFuZ2VQb3NpdGlvbmVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT5cbiAgICAgICAgICAgICAgb3BlblR5cGVhaGVhZCh7XG4gICAgICAgICAgICAgICAgZ2V0UmVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2xvc2VUeXBlYWhlYWQoKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCByZW1vdmVVcGRhdGVMaXN0ZW5lciA9IGVkaXRvci5yZWdpc3RlclVwZGF0ZUxpc3RlbmVyKHVwZGF0ZUxpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJlbW92ZVVwZGF0ZUxpc3RlbmVyKClcbiAgICB9XG4gIH0sIFtlZGl0b3IsIHRyaWdnZXJGbiwgb25RdWVyeUNoYW5nZSwgcmVzb2x1dGlvbiwgY2xvc2VUeXBlYWhlYWQsIG9wZW5UeXBlYWhlYWRdKVxuXG4gIHJldHVybiByZXNvbHV0aW9uID09PSBudWxsIHx8IGVkaXRvciA9PT0gbnVsbCA/IG51bGwgOiAoXG4gICAgPExleGljYWxNZW51XG4gICAgICBhbmNob3JFbGVtZW50UmVmPXthbmNob3JFbGVtZW50UmVmfVxuICAgICAgY2xvc2U9e2Nsb3NlVHlwZWFoZWFkfVxuICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICBncm91cHNXaXRoT3B0aW9ucz17Z3JvdXBzV2l0aE9wdGlvbnN9XG4gICAgICBtZW51UmVuZGVyRm49e21lbnVSZW5kZXJGbn1cbiAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgIHJlc29sdXRpb249e3Jlc29sdXRpb259XG4gICAgICBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnlcbiAgICAvPlxuICApXG59XG5cbmV4cG9ydCB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24sIE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9XG4iXSwibmFtZXMiOlsiUFVOQ1RVQVRJT04iLCJnZXRTY3JvbGxQYXJlbnQiLCJ1c2VEeW5hbWljUG9zaXRpb25pbmciLCJFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EIiwiTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4iLCJNZW51VGV4dE1hdGNoIiwiVHJpZ2dlckZuIiwiZ2V0VGV4dFVwVG9BbmNob3IiLCJzZWxlY3Rpb24iLCJhbmNob3IiLCJ0eXBlIiwiYW5jaG9yTm9kZSIsImdldE5vZGUiLCJpc1NpbXBsZVRleHQiLCJhbmNob3JPZmZzZXQiLCJvZmZzZXQiLCJnZXRUZXh0Q29udGVudCIsInNsaWNlIiwidHJ5VG9Qb3NpdGlvblJhbmdlIiwibGVhZE9mZnNldCIsInJhbmdlIiwiZWRpdG9yV2luZG93IiwiZG9tU2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwiaXNDb2xsYXBzZWQiLCJzdGFydE9mZnNldCIsImVuZE9mZnNldCIsInNldFN0YXJ0Iiwic2V0RW5kIiwiZXJyb3IiLCJnZXRRdWVyeVRleHRGb3JTZWFyY2giLCJlZGl0b3IiLCJ0ZXh0IiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5IiwicHJldlNpYmxpbmciLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNUZXh0Tm9kZSIsImlzVGV4dEVudGl0eSIsInN0YXJ0VHJhbnNpdGlvbiIsImNhbGxiYWNrIiwiUmVhY3QiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckNsYXNzTmFtZSIsImFuY2hvckVsZW0iLCJncm91cHNXaXRoT3B0aW9ucyIsIm1lbnVSZW5kZXJGbiIsIm9uQ2xvc2UiLCJvbk9wZW4iLCJvblF1ZXJ5Q2hhbmdlIiwib25TZWxlY3RPcHRpb24iLCJ0cmlnZ2VyRm4iLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwicmVzb2x1dGlvbiIsInNldFJlc29sdXRpb24iLCJ1c2VTdGF0ZSIsImFuY2hvckVsZW1lbnRSZWYiLCJ1c2VNZW51QW5jaG9yUmVmIiwiY2xvc2VUeXBlYWhlYWQiLCJ1c2VDYWxsYmFjayIsIm9wZW5UeXBlYWhlYWQiLCJyZXMiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwibm9kZSIsIm1hdGNoIiwibWF0Y2hpbmdTdHJpbmciLCJyZXBsYWNlYWJsZVN0cmluZyIsIl93aW5kb3ciLCJ3aW5kb3ciLCJjcmVhdGVSYW5nZSIsImlzUmFuZ2VQb3NpdGlvbmVkIiwiZ2V0UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwidXBkYXRlTGlzdGVuZXIiLCJxdWVyeSIsInJlbW92ZVVwZGF0ZUxpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsIkxleGljYWxNZW51IiwiY2xvc2UiLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUEyQmFBLFdBQVc7ZUFBWEE7O0lBNEVHQyxlQUFlO2VBQWZBOztJQXNCUEMscUJBQXFCO2VBQXJCQSxrQ0FBcUI7O0lBbUJqQkMseUJBQXlCO2VBQXpCQTs7SUFJR0MsMEJBQTBCO2VBQTFCQTs7SUFxSXVCQyxhQUFhO2VBQWJBLGtDQUFhOztJQUFFQyxTQUFTO2VBQVRBLDhCQUFTOzs7d0NBaFJyQjt1QkFDWjt5QkFPdkI7K0RBQzBDO3FDQU1SOzZCQUNLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZDLE1BQU1OLGNBQWM7QUFFM0IsU0FBU08sa0JBQWtCQyxTQUF5QjtJQUNsRCxNQUFNQyxTQUFTRCxVQUFVQyxNQUFNO0lBQy9CLElBQUlBLE9BQU9DLElBQUksS0FBSyxRQUFRO1FBQzFCLE9BQU87SUFDVDtJQUNBLE1BQU1DLGFBQWFGLE9BQU9HLE9BQU87SUFDakMsSUFBSSxDQUFDRCxXQUFXRSxZQUFZLElBQUk7UUFDOUIsT0FBTztJQUNUO0lBQ0EsTUFBTUMsZUFBZUwsT0FBT00sTUFBTTtJQUNsQyxPQUFPSixXQUFXSyxjQUFjLEdBQUdDLEtBQUssQ0FBQyxHQUFHSDtBQUM5QztBQUVBLFNBQVNJLG1CQUFtQkMsVUFBa0IsRUFBRUMsS0FBWSxFQUFFQyxZQUFvQjtJQUNoRixNQUFNQyxlQUFlRCxhQUFhRSxZQUFZO0lBQzlDLElBQUlELGlCQUFpQixRQUFRLENBQUNBLGFBQWFFLFdBQVcsRUFBRTtRQUN0RCxPQUFPO0lBQ1Q7SUFDQSxNQUFNYixhQUFhVyxhQUFhWCxVQUFVO0lBQzFDLE1BQU1jLGNBQWNOO0lBQ3BCLE1BQU1PLFlBQVlKLGFBQWFSLFlBQVk7SUFFM0MsSUFBSUgsY0FBYyxRQUFRZSxhQUFhLE1BQU07UUFDM0MsT0FBTztJQUNUO0lBRUEsSUFBSTtRQUNGTixNQUFNTyxRQUFRLENBQUNoQixZQUFZYztRQUMzQiwrR0FBK0c7UUFDL0dMLE1BQU1RLE1BQU0sQ0FBQ2pCLFlBQVllLFlBQVksSUFBSUEsWUFBWTtJQUN2RCxFQUFFLE9BQU9HLE9BQU87UUFDZCxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFFQSxTQUFTQyxzQkFBc0JDLE1BQXFCO0lBQ2xELElBQUlDLE9BQU87SUFDWEQsT0FBT0UsY0FBYyxHQUFHQyxJQUFJLENBQUM7UUFDM0IsTUFBTTFCLFlBQVkyQixJQUFBQSxzQkFBYTtRQUMvQixJQUFJLENBQUNDLElBQUFBLDBCQUFpQixFQUFDNUIsWUFBWTtZQUNqQztRQUNGO1FBQ0F3QixPQUFPekIsa0JBQWtCQztJQUMzQjtJQUNBLE9BQU93QjtBQUNUO0FBRUEsU0FBU0ssNEJBQTRCTixNQUFxQixFQUFFaEIsTUFBYztJQUN4RSxJQUFJQSxXQUFXLEdBQUc7UUFDaEIsT0FBTztJQUNUO0lBQ0EsT0FBT2dCLE9BQU9FLGNBQWMsR0FBR0MsSUFBSSxDQUFDO1FBQ2xDLE1BQU0xQixZQUFZMkIsSUFBQUEsc0JBQWE7UUFDL0IsSUFBSUMsSUFBQUEsMEJBQWlCLEVBQUM1QixZQUFZO1lBQ2hDLE1BQU1DLFNBQVNELFVBQVVDLE1BQU07WUFDL0IsTUFBTUUsYUFBYUYsT0FBT0csT0FBTztZQUNqQyxNQUFNMEIsY0FBYzNCLFdBQVc0QixrQkFBa0I7WUFDakQsT0FBT0MsSUFBQUEsb0JBQVcsRUFBQ0YsZ0JBQWdCQSxZQUFZRyxZQUFZO1FBQzdEO1FBQ0EsT0FBTztJQUNUO0FBQ0Y7QUFFQSxTQUFTQyxnQkFBZ0JDLFFBQW9CO0lBQzNDLElBQUlDLE9BQU1GLGVBQWUsRUFBRTtRQUN6QkUsT0FBTUYsZUFBZSxDQUFDQztJQUN4QixPQUFPO1FBQ0xBO0lBQ0Y7QUFDRjtBQUdPLFNBQVMxQyxnQkFDZDRDLE9BQW9CLEVBQ3BCQyxhQUFzQjtJQUV0QixJQUFJQyxRQUFRQyxpQkFBaUJIO0lBQzdCLE1BQU1JLHNCQUFzQkYsTUFBTUcsUUFBUSxLQUFLO0lBQy9DLE1BQU1DLGdCQUFnQkwsZ0JBQWdCLHlCQUF5QjtJQUMvRCxJQUFJQyxNQUFNRyxRQUFRLEtBQUssU0FBUztRQUM5QixPQUFPRSxTQUFTQyxJQUFJO0lBQ3RCO0lBQ0EsSUFBSyxJQUFJQyxTQUE2QlQsU0FBVVMsU0FBU0EsT0FBT0MsYUFBYSxFQUFLO1FBQ2hGUixRQUFRQyxpQkFBaUJNO1FBQ3pCLElBQUlMLHVCQUF1QkYsTUFBTUcsUUFBUSxLQUFLLFVBQVU7WUFDdEQ7UUFDRjtRQUNBLElBQUlDLGNBQWNLLElBQUksQ0FBQ1QsTUFBTVUsUUFBUSxHQUFHVixNQUFNVyxTQUFTLEdBQUdYLE1BQU1ZLFNBQVMsR0FBRztZQUMxRSxPQUFPTDtRQUNUO0lBQ0Y7SUFDQSxPQUFPRixTQUFTQyxJQUFJO0FBQ3RCO0FBcUJPLE1BQU1sRCw0QkFFUnlELElBQUFBLHNCQUFhLEVBQUM7QUFFWixTQUFTeEQsMkJBQTJCLEVBQ3pDeUQsZUFBZSxFQUNmQyxVQUFVLEVBQ1ZDLGlCQUFpQixFQUNqQkMsWUFBWSxFQUNaQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLFNBQVMsRUFDZ0I7SUFDekIsTUFBTSxDQUFDdEMsT0FBTyxHQUFHdUMsSUFBQUEsaURBQXlCO0lBQzFDLE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHQyxJQUFBQSxlQUFRLEVBQXdCO0lBQ3BFLE1BQU1DLG1CQUFtQkMsSUFBQUEsNkJBQWdCLEVBQUNiLFlBQVlTLFlBQVlDLGVBQWVYO0lBRWpGLE1BQU1lLGlCQUFpQkMsSUFBQUEsa0JBQVcsRUFBQztRQUNqQ0wsY0FBYztRQUNkLElBQUlQLFdBQVcsUUFBUU0sZUFBZSxNQUFNO1lBQzFDTjtRQUNGO0lBQ0YsR0FBRztRQUFDQTtRQUFTTTtLQUFXO0lBRXhCLE1BQU1PLGdCQUFnQkQsSUFBQUEsa0JBQVcsRUFDL0IsQ0FBQ0U7UUFDQ1AsY0FBY087UUFDZCxJQUFJYixVQUFVLFFBQVFLLGVBQWUsTUFBTTtZQUN6Q0wsT0FBT2E7UUFDVDtJQUNGLEdBQ0E7UUFBQ2I7UUFBUUs7S0FBVztJQUd0QixvR0FBb0c7SUFDcEdTLElBQUFBLGdCQUFTLEVBQUM7UUFDUixPQUFPQyxJQUFBQSxvQkFBYSxFQUNsQmxELE9BQU9tRCxlQUFlLENBQ3BCL0UsMkJBQ0EsQ0FBQyxFQUFFZ0YsSUFBSSxFQUFFO1lBQ1BwRCxPQUFPRSxjQUFjLEdBQUdDLElBQUksQ0FBQztnQkFDM0IsTUFBTWtELFFBQXVCO29CQUMzQmpFLFlBQVk7b0JBQ1prRSxnQkFBZ0I7b0JBQ2hCQyxtQkFBbUI7Z0JBQ3JCO2dCQUNBLElBQUlGLFVBQVUsUUFBUSxDQUFDL0MsNEJBQTRCTixRQUFRcUQsTUFBTWpFLFVBQVUsR0FBRztvQkFDNUUsSUFBSWdFLFNBQVMsTUFBTTt3QkFDakIsTUFBTTlELGVBQWVVLE9BQU93RCxPQUFPLElBQUlDO3dCQUN2QyxNQUFNcEUsUUFBUUMsYUFBYStCLFFBQVEsQ0FBQ3FDLFdBQVc7d0JBRS9DLE1BQU1DLG9CQUFvQnhFLG1CQUFtQmtFLE1BQU1qRSxVQUFVLEVBQUVDLE9BQU9DO3dCQUN0RSxJQUFJcUUsc0JBQXNCLE1BQU07NEJBQzlCaEQsZ0JBQWdCLElBQ2RvQyxjQUFjO29DQUNaYSxTQUFTO3dDQUNQLE9BQU92RSxNQUFNd0UscUJBQXFCO29DQUNwQztvQ0FDQVI7Z0NBQ0Y7d0JBRUo7d0JBRUE7b0JBQ0Y7Z0JBQ0Y7WUFDRjtZQUVBLE9BQU87UUFDVCxHQUNBUyw2QkFBb0I7SUFHMUIsR0FBRztRQUFDOUQ7UUFBUStDO0tBQWM7SUFFMUJFLElBQUFBLGdCQUFTLEVBQUM7UUFDUixNQUFNYyxpQkFBaUI7WUFDckIvRCxPQUFPRSxjQUFjLEdBQUdDLElBQUksQ0FBQztnQkFDM0IsTUFBTWIsZUFBZVUsT0FBT3dELE9BQU8sSUFBSUM7Z0JBQ3ZDLE1BQU1wRSxRQUFRQyxhQUFhK0IsUUFBUSxDQUFDcUMsV0FBVztnQkFDL0MsTUFBTWpGLFlBQVkyQixJQUFBQSxzQkFBYTtnQkFDL0IsTUFBTUgsT0FBT0Ysc0JBQXNCQztnQkFFbkMsSUFDRSxDQUFDSyxJQUFBQSwwQkFBaUIsRUFBQzVCLGNBQ25CLENBQUNBLFVBQVVnQixXQUFXLE1BQ3RCUSxTQUFTLFFBQ1RaLFVBQVUsTUFDVjtvQkFDQXdEO29CQUNBO2dCQUNGO2dCQUVBLE1BQU1RLFFBQVFmLFVBQVU7b0JBQUV0QztvQkFBUWdFLE9BQU8vRDtnQkFBSztnQkFDOUNtQyxjQUFjaUIsUUFBUUEsTUFBTUMsY0FBYyxHQUFHO2dCQUU3QyxJQUFJRCxVQUFVLFFBQVEsQ0FBQy9DLDRCQUE0Qk4sUUFBUXFELE1BQU1qRSxVQUFVLEdBQUc7b0JBQzVFLE1BQU11RSxvQkFBb0J4RSxtQkFBbUJrRSxNQUFNakUsVUFBVSxFQUFFQyxPQUFPQztvQkFDdEUsSUFBSXFFLHNCQUFzQixNQUFNO3dCQUM5QmhELGdCQUFnQixJQUNkb0MsY0FBYztnQ0FDWmEsU0FBUztvQ0FDUCxPQUFPdkUsTUFBTXdFLHFCQUFxQjtnQ0FDcEM7Z0NBQ0FSOzRCQUNGO3dCQUVGO29CQUNGO2dCQUNGO2dCQUNBUjtZQUNGO1FBQ0Y7UUFFQSxNQUFNb0IsdUJBQXVCakUsT0FBT2tFLHNCQUFzQixDQUFDSDtRQUUzRCxPQUFPO1lBQ0xFO1FBQ0Y7SUFDRixHQUFHO1FBQUNqRTtRQUFRc0M7UUFBV0Y7UUFBZUk7UUFBWUs7UUFBZ0JFO0tBQWM7SUFFaEYsT0FBT1AsZUFBZSxRQUFReEMsV0FBVyxPQUFPLHFCQUM5QyxxQkFBQ21FLHdCQUFXO1FBQ1Z4QixrQkFBa0JBO1FBQ2xCeUIsT0FBT3ZCO1FBQ1A3QyxRQUFRQTtRQUNSZ0MsbUJBQW1CQTtRQUNuQkMsY0FBY0E7UUFDZEksZ0JBQWdCQTtRQUNoQkcsWUFBWUE7UUFDWjZCLDBCQUFBQTs7QUFHTiJ9
|
|
@@ -3,9 +3,9 @@ import type { LexicalEditor } from 'lexical';
|
|
|
3
3
|
import type { MutableRefObject } from 'react';
|
|
4
4
|
export declare class SlashMenuOption {
|
|
5
5
|
Icon: React.FC;
|
|
6
|
-
displayName?: ({ i18n }: {
|
|
6
|
+
displayName?: (({ i18n }: {
|
|
7
7
|
i18n: i18n;
|
|
8
|
-
}) => string;
|
|
8
|
+
}) => string) | string;
|
|
9
9
|
key: string;
|
|
10
10
|
keyboardShortcut?: string;
|
|
11
11
|
keywords: Array<string>;
|
|
@@ -14,12 +14,11 @@ export declare class SlashMenuOption {
|
|
|
14
14
|
queryString: string;
|
|
15
15
|
}) => void;
|
|
16
16
|
ref?: MutableRefObject<HTMLElement | null>;
|
|
17
|
-
|
|
18
|
-
constructor(title: string, options: {
|
|
17
|
+
constructor(key: string, options: {
|
|
19
18
|
Icon: React.FC;
|
|
20
|
-
displayName?: ({ i18n }: {
|
|
19
|
+
displayName?: (({ i18n }: {
|
|
21
20
|
i18n: i18n;
|
|
22
|
-
}) => string;
|
|
21
|
+
}) => string) | string;
|
|
23
22
|
keyboardShortcut?: string;
|
|
24
23
|
keywords?: Array<string>;
|
|
25
24
|
onSelect: ({ editor, queryString }: {
|
|
@@ -30,7 +29,10 @@ export declare class SlashMenuOption {
|
|
|
30
29
|
setRefElement(element: HTMLElement | null): void;
|
|
31
30
|
}
|
|
32
31
|
export declare class SlashMenuGroup {
|
|
32
|
+
displayName?: (({ i18n }: {
|
|
33
|
+
i18n: i18n;
|
|
34
|
+
}) => string) | string;
|
|
35
|
+
key: string;
|
|
33
36
|
options: Array<SlashMenuOption>;
|
|
34
|
-
title: string;
|
|
35
37
|
}
|
|
36
38
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAE7C,qBAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAE7C,qBAAa,eAAe;IAE1B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAA;IAEd,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;IAE7D,GAAG,EAAE,MAAM,CAAA;IAEX,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAEvB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAE3F,GAAG,CAAC,EAAE,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;gBAGxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QACP,IAAI,EAAE,KAAK,CAAC,EAAE,CAAA;QACd,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YAAE,IAAI,EAAE,IAAI,CAAA;SAAE,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;QAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACxB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;YAAE,MAAM,EAAE,aAAa,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAA;KAC5F;IAaH,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAG1C;AAED,qBAAa,cAAc;IAEzB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;IAC7D,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;CAChC"}
|
|
@@ -17,9 +17,10 @@ _export(exports, {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
class SlashMenuOption {
|
|
20
|
+
// Icon for display
|
|
20
21
|
Icon;
|
|
21
22
|
displayName;
|
|
22
|
-
//
|
|
23
|
+
// Used for class names and, if displayName is not provided, for display.
|
|
23
24
|
key;
|
|
24
25
|
// TBD
|
|
25
26
|
keyboardShortcut;
|
|
@@ -28,15 +29,12 @@ class SlashMenuOption {
|
|
|
28
29
|
// What happens when you select this option?
|
|
29
30
|
onSelect;
|
|
30
31
|
ref;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
constructor(title, options){
|
|
34
|
-
this.key = title;
|
|
32
|
+
constructor(key, options){
|
|
33
|
+
this.key = key;
|
|
35
34
|
this.ref = {
|
|
36
35
|
current: null
|
|
37
36
|
};
|
|
38
37
|
this.setRefElement = this.setRefElement.bind(this);
|
|
39
|
-
this.title = title;
|
|
40
38
|
this.displayName = options.displayName;
|
|
41
39
|
this.keywords = options.keywords || [];
|
|
42
40
|
this.Icon = options.Icon;
|
|
@@ -50,8 +48,10 @@ class SlashMenuOption {
|
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
50
|
class SlashMenuGroup {
|
|
51
|
+
// Used for class names and, if displayName is not provided, for display.
|
|
52
|
+
displayName;
|
|
53
|
+
key;
|
|
53
54
|
options;
|
|
54
|
-
title;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgaTE4biB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IExleGljYWxFZGl0b3IgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnXG5cbmV4cG9ydCBjbGFzcyBTbGFzaE1lbnVPcHRpb24ge1xuICAvLyBJY29uIGZvciBkaXNwbGF5XG4gIEljb246IFJlYWN0LkZDXG5cbiAgZGlzcGxheU5hbWU/OiAoKHsgaTE4biB9OiB7IGkxOG46IGkxOG4gfSkgPT4gc3RyaW5nKSB8IHN0cmluZ1xuICAvLyBVc2VkIGZvciBjbGFzcyBuYW1lcyBhbmQsIGlmIGRpc3BsYXlOYW1lIGlzIG5vdCBwcm92aWRlZCwgZm9yIGRpc3BsYXkuXG4gIGtleTogc3RyaW5nXG4gIC8vIFRCRFxuICBrZXlib2FyZFNob3J0Y3V0Pzogc3RyaW5nXG4gIC8vIEZvciBleHRyYSBzZWFyY2hpbmcuXG4gIGtleXdvcmRzOiBBcnJheTxzdHJpbmc+XG4gIC8vIFdoYXQgaGFwcGVucyB3aGVuIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24/XG4gIG9uU2VsZWN0OiAoeyBlZGl0b3IsIHF1ZXJ5U3RyaW5nIH06IHsgZWRpdG9yOiBMZXhpY2FsRWRpdG9yOyBxdWVyeVN0cmluZzogc3RyaW5nIH0pID0+IHZvaWRcblxuICByZWY/OiBNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBJY29uOiBSZWFjdC5GQ1xuICAgICAgZGlzcGxheU5hbWU/OiAoKHsgaTE4biB9OiB7IGkxOG46IGkxOG4gfSkgPT4gc3RyaW5nKSB8IHN0cmluZ1xuICAgICAga2V5Ym9hcmRTaG9ydGN1dD86IHN0cmluZ1xuICAgICAga2V5d29yZHM/OiBBcnJheTxzdHJpbmc+XG4gICAgICBvblNlbGVjdDogKHsgZWRpdG9yLCBxdWVyeVN0cmluZyB9OiB7IGVkaXRvcjogTGV4aWNhbEVkaXRvcjsgcXVlcnlTdHJpbmc6IHN0cmluZyB9KSA9PiB2b2lkXG4gICAgfSxcbiAgKSB7XG4gICAgdGhpcy5rZXkgPSBrZXlcbiAgICB0aGlzLnJlZiA9IHsgY3VycmVudDogbnVsbCB9XG4gICAgdGhpcy5zZXRSZWZFbGVtZW50ID0gdGhpcy5zZXRSZWZFbGVtZW50LmJpbmQodGhpcylcblxuICAgIHRoaXMuZGlzcGxheU5hbWUgPSBvcHRpb25zLmRpc3BsYXlOYW1lXG4gICAgdGhpcy5rZXl3b3JkcyA9IG9wdGlvbnMua2V5d29yZHMgfHwgW11cbiAgICB0aGlzLkljb24gPSBvcHRpb25zLkljb25cbiAgICB0aGlzLmtleWJvYXJkU2hvcnRjdXQgPSBvcHRpb25zLmtleWJvYXJkU2hvcnRjdXRcbiAgICB0aGlzLm9uU2VsZWN0ID0gb3B0aW9ucy5vblNlbGVjdC5iaW5kKHRoaXMpXG4gIH1cblxuICBzZXRSZWZFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCkge1xuICAgIHRoaXMucmVmID0geyBjdXJyZW50OiBlbGVtZW50IH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2xhc2hNZW51R3JvdXAge1xuICAvLyBVc2VkIGZvciBjbGFzcyBuYW1lcyBhbmQsIGlmIGRpc3BsYXlOYW1lIGlzIG5vdCBwcm92aWRlZCwgZm9yIGRpc3BsYXkuXG4gIGRpc3BsYXlOYW1lPzogKCh7IGkxOG4gfTogeyBpMThuOiBpMThuIH0pID0+IHN0cmluZykgfCBzdHJpbmdcbiAga2V5OiBzdHJpbmdcbiAgb3B0aW9uczogQXJyYXk8U2xhc2hNZW51T3B0aW9uPlxufVxuIl0sIm5hbWVzIjpbIlNsYXNoTWVudU9wdGlvbiIsIlNsYXNoTWVudUdyb3VwIiwiSWNvbiIsImRpc3BsYXlOYW1lIiwia2V5Iiwia2V5Ym9hcmRTaG9ydGN1dCIsImtleXdvcmRzIiwib25TZWxlY3QiLCJyZWYiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJjdXJyZW50Iiwic2V0UmVmRWxlbWVudCIsImJpbmQiLCJlbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUlhQSxlQUFlO2VBQWZBOztJQTBDQUMsY0FBYztlQUFkQTs7O0FBMUNOLE1BQU1EO0lBQ1gsbUJBQW1CO0lBQ25CRSxLQUFjO0lBRWRDLFlBQTZEO0lBQzdELHlFQUF5RTtJQUN6RUMsSUFBVztJQUNYLE1BQU07SUFDTkMsaUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2QkMsU0FBdUI7SUFDdkIsNENBQTRDO0lBQzVDQyxTQUEyRjtJQUUzRkMsSUFBMEM7SUFFMUNDLFlBQ0VMLEdBQVcsRUFDWE0sT0FNQyxDQUNEO1FBQ0EsSUFBSSxDQUFDTixHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDSSxHQUFHLEdBQUc7WUFBRUcsU0FBUztRQUFLO1FBQzNCLElBQUksQ0FBQ0MsYUFBYSxHQUFHLElBQUksQ0FBQ0EsYUFBYSxDQUFDQyxJQUFJLENBQUMsSUFBSTtRQUVqRCxJQUFJLENBQUNWLFdBQVcsR0FBR08sUUFBUVAsV0FBVztRQUN0QyxJQUFJLENBQUNHLFFBQVEsR0FBR0ksUUFBUUosUUFBUSxJQUFJLEVBQUU7UUFDdEMsSUFBSSxDQUFDSixJQUFJLEdBQUdRLFFBQVFSLElBQUk7UUFDeEIsSUFBSSxDQUFDRyxnQkFBZ0IsR0FBR0ssUUFBUUwsZ0JBQWdCO1FBQ2hELElBQUksQ0FBQ0UsUUFBUSxHQUFHRyxRQUFRSCxRQUFRLENBQUNNLElBQUksQ0FBQyxJQUFJO0lBQzVDO0lBRUFELGNBQWNFLE9BQTJCLEVBQUU7UUFDekMsSUFBSSxDQUFDTixHQUFHLEdBQUc7WUFBRUcsU0FBU0c7UUFBUTtJQUNoQztBQUNGO0FBRU8sTUFBTWI7SUFDWCx5RUFBeUU7SUFDekVFLFlBQTZEO0lBQzdEQyxJQUFXO0lBQ1hNLFFBQStCO0FBQ2pDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/SlashMenu/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/SlashMenu/index.tsx"],"names":[],"mappings":";AAaA,OAAO,cAAc,CAAA;AAqDrB,wBAAgB,eAAe,CAAC,EAC9B,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,GAAG,CAAC,OAAO,CA8Jd"}
|
|
@@ -16,6 +16,7 @@ const _reacti18next = require("react-i18next");
|
|
|
16
16
|
const _EditorConfigProvider = require("../../config/EditorConfigProvider");
|
|
17
17
|
const _LexicalTypeaheadMenuPlugin = require("./LexicalTypeaheadMenuPlugin");
|
|
18
18
|
require("./index.scss");
|
|
19
|
+
const _useMenuTriggerMatch = require("./useMenuTriggerMatch");
|
|
19
20
|
function _getRequireWildcardCache(nodeInterop) {
|
|
20
21
|
if (typeof WeakMap !== "function") return null;
|
|
21
22
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -55,17 +56,18 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
55
56
|
}
|
|
56
57
|
return newObj;
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
+
const baseClass = 'slash-menu-popup';
|
|
60
|
+
function SlashMenuItem({ isSelected, onClick, onMouseEnter, option }) {
|
|
59
61
|
const { i18n } = (0, _reacti18next.useTranslation)('fields');
|
|
60
|
-
let className =
|
|
62
|
+
let className = `${baseClass}__item ${baseClass}__item-${option.key}`;
|
|
61
63
|
if (isSelected) {
|
|
62
|
-
className +=
|
|
64
|
+
className += ` ${baseClass}__item--selected`;
|
|
63
65
|
}
|
|
64
|
-
let title = option.
|
|
65
|
-
if (option.displayName
|
|
66
|
-
title = option.displayName({
|
|
66
|
+
let title = option.key;
|
|
67
|
+
if (option.displayName) {
|
|
68
|
+
title = typeof option.displayName === 'function' ? option.displayName({
|
|
67
69
|
i18n
|
|
68
|
-
});
|
|
70
|
+
}) : option.displayName;
|
|
69
71
|
}
|
|
70
72
|
// Crop title to max. 50 characters
|
|
71
73
|
if (title.length > 25) {
|
|
@@ -74,7 +76,7 @@ function SlashMenuItem({ index, isSelected, onClick, onMouseEnter, option }) {
|
|
|
74
76
|
return /*#__PURE__*/ _react.createElement("button", {
|
|
75
77
|
"aria-selected": isSelected,
|
|
76
78
|
className: className,
|
|
77
|
-
id: '
|
|
79
|
+
id: baseClass + '__item-' + option.key,
|
|
78
80
|
key: option.key,
|
|
79
81
|
onClick: onClick,
|
|
80
82
|
onMouseEnter: onMouseEnter,
|
|
@@ -83,19 +85,20 @@ function SlashMenuItem({ index, isSelected, onClick, onMouseEnter, option }) {
|
|
|
83
85
|
tabIndex: -1,
|
|
84
86
|
type: "button"
|
|
85
87
|
}, /*#__PURE__*/ _react.createElement(option.Icon, null), /*#__PURE__*/ _react.createElement("span", {
|
|
86
|
-
className:
|
|
88
|
+
className: `${baseClass}__item-text`
|
|
87
89
|
}, title));
|
|
88
90
|
}
|
|
89
91
|
function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
90
92
|
const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
|
|
91
93
|
const [queryString, setQueryString] = (0, _react.useState)(null);
|
|
92
94
|
const { editorConfig } = (0, _EditorConfigProvider.useEditorConfigContext)();
|
|
93
|
-
const
|
|
95
|
+
const { i18n } = (0, _reacti18next.useTranslation)('fields');
|
|
96
|
+
const checkForTriggerMatch = (0, _useMenuTriggerMatch.useMenuTriggerMatch)('/', {
|
|
94
97
|
minLength: 0
|
|
95
98
|
});
|
|
96
99
|
const getDynamicOptions = (0, _react.useCallback)(()=>{
|
|
97
100
|
let groupWithOptions = [];
|
|
98
|
-
for (const dynamicOption of editorConfig
|
|
101
|
+
for (const dynamicOption of editorConfig.features.slashMenu.dynamicOptions){
|
|
99
102
|
const dynamicGroupWithOptions = dynamicOption({
|
|
100
103
|
editor,
|
|
101
104
|
queryString
|
|
@@ -117,7 +120,13 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
117
120
|
// Filter current groups first
|
|
118
121
|
groupsWithOptions = groupsWithOptions.map((group)=>{
|
|
119
122
|
const filteredOptions = group.options.filter((option)=>{
|
|
120
|
-
|
|
123
|
+
let optionTitle = option.key;
|
|
124
|
+
if (option.displayName) {
|
|
125
|
+
optionTitle = typeof option.displayName === 'function' ? option.displayName({
|
|
126
|
+
i18n
|
|
127
|
+
}) : option.displayName;
|
|
128
|
+
}
|
|
129
|
+
return new RegExp(queryString, 'gi').exec(optionTitle) || option.keywords != null ? option.keywords.some((keyword)=>new RegExp(queryString, 'gi').exec(keyword)) : false;
|
|
121
130
|
});
|
|
122
131
|
if (filteredOptions.length) {
|
|
123
132
|
return {
|
|
@@ -133,14 +142,14 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
133
142
|
// merge dynamic options into groups
|
|
134
143
|
for (const dynamicGroup of dynamicOptionGroups){
|
|
135
144
|
// 1. find the group with the same name or create new one
|
|
136
|
-
let group = groupsWithOptions.find((group)=>group.
|
|
145
|
+
let group = groupsWithOptions.find((group)=>group.key === dynamicGroup.key);
|
|
137
146
|
if (!group) {
|
|
138
147
|
group = {
|
|
139
148
|
...dynamicGroup,
|
|
140
149
|
options: []
|
|
141
150
|
};
|
|
142
151
|
} else {
|
|
143
|
-
groupsWithOptions = groupsWithOptions.filter((group)=>group.
|
|
152
|
+
groupsWithOptions = groupsWithOptions.filter((group)=>group.key !== dynamicGroup.key);
|
|
144
153
|
}
|
|
145
154
|
// 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions
|
|
146
155
|
if (group?.options?.length) {
|
|
@@ -153,7 +162,8 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
153
162
|
}, [
|
|
154
163
|
getDynamicOptions,
|
|
155
164
|
queryString,
|
|
156
|
-
editorConfig?.features
|
|
165
|
+
editorConfig?.features,
|
|
166
|
+
i18n
|
|
157
167
|
]);
|
|
158
168
|
const onSelectOption = (0, _react.useCallback)((selectedOption, nodeToRemove, closeMenu, matchingString)=>{
|
|
159
169
|
editor.update(()=>{
|
|
@@ -173,13 +183,20 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
173
183
|
anchorElem: anchorElem,
|
|
174
184
|
groupsWithOptions: groups,
|
|
175
185
|
menuRenderFn: (anchorElementRef, { selectOptionAndCleanUp, selectedOptionKey, setSelectedOptionKey })=>anchorElementRef.current && groups.length ? /*#__PURE__*/ _reactdom.createPortal(/*#__PURE__*/ _react.createElement("div", {
|
|
176
|
-
className:
|
|
177
|
-
}, groups.map((group)
|
|
178
|
-
|
|
179
|
-
|
|
186
|
+
className: baseClass
|
|
187
|
+
}, groups.map((group)=>{
|
|
188
|
+
let groupTitle = group.key;
|
|
189
|
+
if (group.displayName) {
|
|
190
|
+
groupTitle = typeof group.displayName === 'function' ? group.displayName({
|
|
191
|
+
i18n
|
|
192
|
+
}) : group.displayName;
|
|
193
|
+
}
|
|
194
|
+
return /*#__PURE__*/ _react.createElement("div", {
|
|
195
|
+
className: `${baseClass}__group ${baseClass}__group-${group.key}`,
|
|
196
|
+
key: group.key
|
|
180
197
|
}, /*#__PURE__*/ _react.createElement("div", {
|
|
181
|
-
className:
|
|
182
|
-
},
|
|
198
|
+
className: `${baseClass}__group-title`
|
|
199
|
+
}, groupTitle), group.options.map((option, oi)=>/*#__PURE__*/ _react.createElement(SlashMenuItem, {
|
|
183
200
|
index: oi,
|
|
184
201
|
isSelected: selectedOptionKey === option.key,
|
|
185
202
|
key: option.key,
|
|
@@ -191,11 +208,12 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
|
|
|
191
208
|
setSelectedOptionKey(option.key);
|
|
192
209
|
},
|
|
193
210
|
option: option
|
|
194
|
-
})))
|
|
211
|
+
})));
|
|
212
|
+
})), anchorElementRef.current) : null,
|
|
195
213
|
onQueryChange: setQueryString,
|
|
196
214
|
onSelectOption: onSelectOption,
|
|
197
215
|
triggerFn: checkForTriggerMatch
|
|
198
216
|
}));
|
|
199
217
|
}
|
|
200
218
|
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAsIFNsYXNoTWVudU9wdGlvbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQge1xuICBMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbixcbiAgdXNlQmFzaWNUeXBlYWhlYWRUcmlnZ2VyTWF0Y2gsXG59IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuZnVuY3Rpb24gU2xhc2hNZW51SXRlbSh7XG4gIGluZGV4LFxuICBpc1NlbGVjdGVkLFxuICBvbkNsaWNrLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9wdGlvbixcbn06IHtcbiAgaW5kZXg6IG51bWJlclxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgb25Nb3VzZUVudGVyOiAoKSA9PiB2b2lkXG4gIG9wdGlvbjogU2xhc2hNZW51T3B0aW9uXG59KSB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oJ2ZpZWxkcycpXG5cbiAgbGV0IGNsYXNzTmFtZSA9ICdpdGVtJ1xuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSAnIHNlbGVjdGVkJ1xuICB9XG5cbiAgbGV0IHRpdGxlID0gb3B0aW9uLnRpdGxlXG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUgJiYgdHlwZW9mIG9wdGlvbi5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRpdGxlID0gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXsndHlwZWFoZWFkLWl0ZW0tJyArIGluZGV4fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgPG9wdGlvbi5JY29uIC8+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0XCI+e3RpdGxlfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xhc2hNZW51UGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgY29uc3QgY2hlY2tGb3JUcmlnZ2VyTWF0Y2ggPSB1c2VCYXNpY1R5cGVhaGVhZFRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZHluYW1pY09wdGlvbnMpIHtcbiAgICAgIGNvbnN0IGR5bmFtaWNHcm91cFdpdGhPcHRpb25zID0gZHluYW1pY09wdGlvbih7XG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgcXVlcnlTdHJpbmcsXG4gICAgICB9KVxuICAgICAgZ3JvdXBXaXRoT3B0aW9ucyA9IGdyb3VwV2l0aE9wdGlvbnMuY29uY2F0KGR5bmFtaWNHcm91cFdpdGhPcHRpb25zKVxuICAgIH1cblxuICAgIHJldHVybiBncm91cFdpdGhPcHRpb25zXG4gIH0sIFtlZGl0b3IsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzXSlcblxuICBjb25zdCBncm91cHM6IFNsYXNoTWVudUdyb3VwW10gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBsZXQgZ3JvdXBzV2l0aE9wdGlvbnM6IFNsYXNoTWVudUdyb3VwW10gPSBbXVxuICAgIGZvciAoY29uc3QgZ3JvdXBXaXRoT3B0aW9uIG9mIGVkaXRvckNvbmZpZz8uZmVhdHVyZXMuc2xhc2hNZW51Lmdyb3Vwc1dpdGhPcHRpb25zID8/IFtdKSB7XG4gICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwV2l0aE9wdGlvbilcbiAgICB9XG5cbiAgICBpZiAocXVlcnlTdHJpbmcpIHtcbiAgICAgIC8vIEZpbHRlciBjdXJyZW50IGdyb3VwcyBmaXJzdFxuICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5tYXAoKGdyb3VwKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IGdyb3VwLm9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhvcHRpb24udGl0bGUpIHx8IG9wdGlvbi5rZXl3b3JkcyAhPSBudWxsXG4gICAgICAgICAgICA/IG9wdGlvbi5rZXl3b3Jkcy5zb21lKChrZXl3b3JkKSA9PiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKGtleXdvcmQpKVxuICAgICAgICAgICAgOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgICBpZiAoZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5ncm91cCxcbiAgICAgICAgICAgIG9wdGlvbnM6IGZpbHRlcmVkT3B0aW9ucyxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH0pXG5cbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAgIT0gbnVsbClcblxuICAgICAgLy8gTm93IGFkZCBkeW5hbWljIGdyb3Vwc1xuICAgICAgY29uc3QgZHluYW1pY09wdGlvbkdyb3VwcyA9IGdldER5bmFtaWNPcHRpb25zKClcblxuICAgICAgLy8gbWVyZ2UgZHluYW1pYyBvcHRpb25zIGludG8gZ3JvdXBzXG4gICAgICBmb3IgKGNvbnN0IGR5bmFtaWNHcm91cCBvZiBkeW5hbWljT3B0aW9uR3JvdXBzKSB7XG4gICAgICAgIC8vIDEuIGZpbmQgdGhlIGdyb3VwIHdpdGggdGhlIHNhbWUgbmFtZSBvciBjcmVhdGUgbmV3IG9uZVxuICAgICAgICBsZXQgZ3JvdXAgPSBncm91cHNXaXRoT3B0aW9ucy5maW5kKChncm91cCkgPT4gZ3JvdXAudGl0bGUgPT09IGR5bmFtaWNHcm91cC50aXRsZSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGdyb3VwKSA9PiBncm91cC50aXRsZSAhPT0gZHluYW1pY0dyb3VwLnRpdGxlLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIuIEFkZCBvcHRpb25zIHRvIGdyb3VwIG9wdGlvbnMgYXJyYXkgYW5kIGFkZCB0byBzYW5pdGl6ZWQuc2xhc2hNZW51Lmdyb3Vwc1dpdGhPcHRpb25zXG4gICAgICAgIGlmIChncm91cD8ub3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgZ3JvdXAub3B0aW9ucyA9IGdyb3VwLm9wdGlvbnMuY29uY2F0KGdyb3VwLm9wdGlvbnMpXG4gICAgICAgIH1cbiAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMucHVzaChncm91cClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZ3JvdXBzV2l0aE9wdGlvbnNcbiAgfSwgW2dldER5bmFtaWNPcHRpb25zLCBxdWVyeVN0cmluZywgZWRpdG9yQ29uZmlnPy5mZWF0dXJlc10pXG5cbiAgY29uc3Qgb25TZWxlY3RPcHRpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBzZWxlY3RlZE9wdGlvbjogU2xhc2hNZW51T3B0aW9uLFxuICAgICAgbm9kZVRvUmVtb3ZlOiBUZXh0Tm9kZSB8IG51bGwsXG4gICAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgICBtYXRjaGluZ1N0cmluZzogc3RyaW5nLFxuICAgICkgPT4ge1xuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGlmIChub2RlVG9SZW1vdmUpIHtcbiAgICAgICAgICBub2RlVG9SZW1vdmUucmVtb3ZlKClcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RlZE9wdGlvbi5vblNlbGVjdCh7IGVkaXRvciwgcXVlcnlTdHJpbmc6IG1hdGNoaW5nU3RyaW5nIH0pXG4gICAgICAgIGNsb3NlTWVudSgpXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpblxuICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucz17Z3JvdXBzfVxuICAgICAgICBtZW51UmVuZGVyRm49eyhcbiAgICAgICAgICBhbmNob3JFbGVtZW50UmVmLFxuICAgICAgICAgIHsgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcCwgc2VsZWN0ZWRPcHRpb25LZXksIHNldFNlbGVjdGVkT3B0aW9uS2V5IH0sXG4gICAgICAgICkgPT5cbiAgICAgICAgICBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnQgJiYgZ3JvdXBzLmxlbmd0aFxuICAgICAgICAgICAgPyBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0eXBlYWhlYWQtcG9wb3ZlciBzbGFzaC1tZW51XCI+XG4gICAgICAgICAgICAgICAgICB7Z3JvdXBzLm1hcCgoZ3JvdXApID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncm91cFwiIGtleT17Z3JvdXAudGl0bGV9PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JvdXAtdGl0bGVcIj57Z3JvdXAudGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAge2dyb3VwLm9wdGlvbnMubWFwKChvcHRpb24sIG9pOiBudW1iZXIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTbGFzaE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c2VsZWN0ZWRPcHRpb25LZXkgPT09IG9wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5KG9wdGlvbi5rZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcChvcHRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5KG9wdGlvbi5rZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICAgICAgYW5jaG9yRWxlbWVudFJlZi5jdXJyZW50LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IG51bGxcbiAgICAgICAgfVxuICAgICAgICBvblF1ZXJ5Q2hhbmdlPXtzZXRRdWVyeVN0cmluZ31cbiAgICAgICAgb25TZWxlY3RPcHRpb249e29uU2VsZWN0T3B0aW9ufVxuICAgICAgICB0cmlnZ2VyRm49e2NoZWNrRm9yVHJpZ2dlck1hdGNofVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsiU2xhc2hNZW51UGx1Z2luIiwiU2xhc2hNZW51SXRlbSIsImluZGV4IiwiaXNTZWxlY3RlZCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvcHRpb24iLCJpMThuIiwidXNlVHJhbnNsYXRpb24iLCJjbGFzc05hbWUiLCJ0aXRsZSIsImRpc3BsYXlOYW1lIiwibGVuZ3RoIiwic3Vic3RyaW5nIiwiYnV0dG9uIiwiYXJpYS1zZWxlY3RlZCIsImlkIiwia2V5IiwicmVmIiwic2V0UmVmRWxlbWVudCIsInJvbGUiLCJ0YWJJbmRleCIsInR5cGUiLCJJY29uIiwic3BhbiIsImFuY2hvckVsZW0iLCJkb2N1bWVudCIsImJvZHkiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsInVzZVN0YXRlIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwidXNlQmFzaWNUeXBlYWhlYWRUcmlnZ2VyTWF0Y2giLCJtaW5MZW5ndGgiLCJnZXREeW5hbWljT3B0aW9ucyIsInVzZUNhbGxiYWNrIiwiZ3JvdXBXaXRoT3B0aW9ucyIsImR5bmFtaWNPcHRpb24iLCJmZWF0dXJlcyIsInNsYXNoTWVudSIsImR5bmFtaWNPcHRpb25zIiwiZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMiLCJjb25jYXQiLCJncm91cHMiLCJ1c2VNZW1vIiwiZ3JvdXBzV2l0aE9wdGlvbnMiLCJncm91cFdpdGhPcHRpb24iLCJwdXNoIiwibWFwIiwiZ3JvdXAiLCJmaWx0ZXJlZE9wdGlvbnMiLCJvcHRpb25zIiwiZmlsdGVyIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiUmVhY3QiLCJGcmFnbWVudCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwibWVudVJlbmRlckZuIiwiYW5jaG9yRWxlbWVudFJlZiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwiY3VycmVudCIsIlJlYWN0RE9NIiwiY3JlYXRlUG9ydGFsIiwiZGl2Iiwib2kiLCJvblF1ZXJ5Q2hhbmdlIiwidHJpZ2dlckZuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBa0VnQkE7OztlQUFBQTs7O3dDQS9EMEI7K0RBQ0s7a0VBRXJCOzhCQUNLO3NDQUlROzRDQUloQztRQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsU0FBU0MsY0FBYyxFQUNyQkMsS0FBSyxFQUNMQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsWUFBWSxFQUNaQyxNQUFNLEVBT1A7SUFDQyxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyxJQUFBQSw0QkFBYyxFQUFDO0lBRWhDLElBQUlDLFlBQVk7SUFDaEIsSUFBSU4sWUFBWTtRQUNkTSxhQUFhO0lBQ2Y7SUFFQSxJQUFJQyxR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
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAsIFNsYXNoTWVudU9wdGlvbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcbmltcG9ydCB7IHVzZU1lbnVUcmlnZ2VyTWF0Y2ggfSBmcm9tICcuL3VzZU1lbnVUcmlnZ2VyTWF0Y2gnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdzbGFzaC1tZW51LXBvcHVwJ1xuXG5mdW5jdGlvbiBTbGFzaE1lbnVJdGVtKHtcbiAgaXNTZWxlY3RlZCxcbiAgb25DbGljayxcbiAgb25Nb3VzZUVudGVyLFxuICBvcHRpb24sXG59OiB7XG4gIGluZGV4OiBudW1iZXJcbiAgaXNTZWxlY3RlZDogYm9vbGVhblxuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG4gIG9uTW91c2VFbnRlcjogKCkgPT4gdm9pZFxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufSkge1xuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdmaWVsZHMnKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlkPXtiYXNlQ2xhc3MgKyAnX19pdGVtLScgKyBvcHRpb24ua2V5fVxuICAgICAga2V5PXtvcHRpb24ua2V5fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uTW91c2VFbnRlcj17b25Nb3VzZUVudGVyfVxuICAgICAgcmVmPXtvcHRpb24uc2V0UmVmRWxlbWVudH1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgPG9wdGlvbi5JY29uIC8+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2l0ZW0tdGV4dGB9Pnt0aXRsZX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNsYXNoTWVudVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtxdWVyeVN0cmluZywgc2V0UXVlcnlTdHJpbmddID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcbiAgY29uc3QgeyBlZGl0b3JDb25maWcgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdmaWVsZHMnKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlNsYXNoTWVudVBsdWdpbiIsImJhc2VDbGFzcyIsIlNsYXNoTWVudUl0ZW0iLCJpc1NlbGVjdGVkIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9wdGlvbiIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImNsYXNzTmFtZSIsImtleSIsInRpdGxlIiwiZGlzcGxheU5hbWUiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJidXR0b24iLCJhcmlhLXNlbGVjdGVkIiwiaWQiLCJyZWYiLCJzZXRSZWZFbGVtZW50Iiwicm9sZSIsInRhYkluZGV4IiwidHlwZSIsIkljb24iLCJzcGFuIiwiYW5jaG9yRWxlbSIsImRvY3VtZW50IiwiYm9keSIsImVkaXRvciIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJxdWVyeVN0cmluZyIsInNldFF1ZXJ5U3RyaW5nIiwidXNlU3RhdGUiLCJlZGl0b3JDb25maWciLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiY2hlY2tGb3JUcmlnZ2VyTWF0Y2giLCJ1c2VNZW51VHJpZ2dlck1hdGNoIiwibWluTGVuZ3RoIiwiZ2V0RHluYW1pY09wdGlvbnMiLCJ1c2VDYWxsYmFjayIsImdyb3VwV2l0aE9wdGlvbnMiLCJkeW5hbWljT3B0aW9uIiwiZmVhdHVyZXMiLCJzbGFzaE1lbnUiLCJkeW5hbWljT3B0aW9ucyIsImR5bmFtaWNHcm91cFdpdGhPcHRpb25zIiwiY29uY2F0IiwiZ3JvdXBzIiwidXNlTWVtbyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiUmVhY3QiLCJGcmFnbWVudCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwibWVudVJlbmRlckZuIiwiYW5jaG9yRWxlbWVudFJlZiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwiY3VycmVudCIsIlJlYWN0RE9NIiwiY3JlYXRlUG9ydGFsIiwiZGl2IiwiZ3JvdXBUaXRsZSIsIm9pIiwiaW5kZXgiLCJvblF1ZXJ5Q2hhbmdlIiwidHJpZ2dlckZuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBa0VnQkE7OztlQUFBQTs7O3dDQS9EMEI7K0RBQ0s7a0VBRXJCOzhCQUNLO3NDQUlROzRDQUNJO1FBQ3BDO3FDQUM2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwQyxNQUFNQyxZQUFZO0FBRWxCLFNBQVNDLGNBQWMsRUFDckJDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLE1BQU0sRUFPUDtJQUNDLE1B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
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
@import 'payload/scss';
|
|
2
2
|
|
|
3
3
|
html[data-theme='light'] {
|
|
4
|
-
.slash-menu {
|
|
4
|
+
.slash-menu-popup {
|
|
5
5
|
@include shadow-m;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
.slash-menu {
|
|
9
|
+
.slash-menu-popup {
|
|
10
10
|
background: var(--color-base-0);
|
|
11
11
|
width: 200px;
|
|
12
12
|
color: var(--color-base-800);
|
|
@@ -18,17 +18,17 @@ html[data-theme='light'] {
|
|
|
18
18
|
z-index: 10;
|
|
19
19
|
position: absolute;
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
&__group {
|
|
22
22
|
padding-bottom: 8px;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
&__group-title {
|
|
26
26
|
padding-left: 10px;
|
|
27
27
|
color: var(--color-base-600);
|
|
28
28
|
font-size: 10px;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
&__item {
|
|
32
32
|
all: unset;
|
|
33
33
|
padding-left: 12px;
|
|
34
34
|
font-size: 13px;
|
|
@@ -42,11 +42,11 @@ html[data-theme='light'] {
|
|
|
42
42
|
width: 100%;
|
|
43
43
|
cursor: pointer;
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
&--selected {
|
|
46
46
|
background: var(--color-base-100);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
&-text {
|
|
50
50
|
margin-left: 6px;
|
|
51
51
|
text-wrap: nowrap;
|
|
52
52
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { LexicalEditor } from 'lexical';
|
|
2
|
+
export type TriggerFn = ({ editor, query, }: {
|
|
3
|
+
editor: LexicalEditor;
|
|
4
|
+
/** The query string is the POTENTIAL trigger AND the text after the trigger text. */
|
|
5
|
+
query: string;
|
|
6
|
+
}) => MenuTextMatch | null;
|
|
7
|
+
export type MenuTextMatch = {
|
|
8
|
+
leadOffset: number;
|
|
9
|
+
matchingString: string;
|
|
10
|
+
replaceableString: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* 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)
|
|
14
|
+
*/
|
|
15
|
+
export declare function useMenuTriggerMatch(
|
|
16
|
+
/**
|
|
17
|
+
* Text which triggers the menu. Everything after this text will be used as the query.
|
|
18
|
+
*/
|
|
19
|
+
trigger: string, { maxLength, minLength }: {
|
|
20
|
+
maxLength?: number;
|
|
21
|
+
minLength?: number;
|
|
22
|
+
}): TriggerFn;
|
|
23
|
+
//# sourceMappingURL=useMenuTriggerMatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuTriggerMatch.d.ts","sourceRoot":"","sources":["../../../../../src/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,MAAM,MAAM,SAAS,GAAG,CAAC,EACvB,MAAM,EACN,KAAK,GACN,EAAE;IACD,MAAM,EAAE,aAAa,CAAA;IACrB,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAA;CACd,KAAK,aAAa,GAAG,IAAI,CAAA;AAE1B,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB;AACjC;;GAEG;AACH,OAAO,EAAE,MAAM,EACf,EAAE,SAAc,EAAE,SAAa,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E,SAAS,CAqCX"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useMenuTriggerMatch", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useMenuTriggerMatch;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = require("react");
|
|
12
|
+
const _LexicalTypeaheadMenuPlugin = require("./LexicalTypeaheadMenuPlugin");
|
|
13
|
+
function useMenuTriggerMatch(/**
|
|
14
|
+
* Text which triggers the menu. Everything after this text will be used as the query.
|
|
15
|
+
*/ trigger, { maxLength = 75, minLength = 1 }) {
|
|
16
|
+
return (0, _react.useCallback)(({ query })=>{
|
|
17
|
+
const validChars = '[^' + trigger + _LexicalTypeaheadMenuPlugin.PUNCTUATION + '\\s]';
|
|
18
|
+
const TypeaheadTriggerRegex = new RegExp('(^|\\s|\\()(' + '[' + trigger + ']' + '((?:' + validChars + '){0,' + maxLength + '})' + ')$');
|
|
19
|
+
const match = TypeaheadTriggerRegex.exec(query);
|
|
20
|
+
if (match !== null) {
|
|
21
|
+
const maybeLeadingWhitespace = match[1];
|
|
22
|
+
/**
|
|
23
|
+
* matchingString is only the text AFTER the trigger text. (So everything after the /)
|
|
24
|
+
*/ const matchingString = match[3];
|
|
25
|
+
if (matchingString.length >= minLength) {
|
|
26
|
+
return {
|
|
27
|
+
leadOffset: match.index + maybeLeadingWhitespace.length,
|
|
28
|
+
matchingString,
|
|
29
|
+
replaceableString: match[2]
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}, [
|
|
35
|
+
maxLength,
|
|
36
|
+
minLength,
|
|
37
|
+
trigger
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/OicgK1xuICAgICAgICAgIHZhbGlkQ2hhcnMgK1xuICAgICAgICAgICcpezAsJyArXG4gICAgICAgICAgbWF4TGVuZ3RoICtcbiAgICAgICAgICAnfSknICtcbiAgICAgICAgICAnKSQnLFxuICAgICAgKVxuICAgICAgY29uc3QgbWF0Y2ggPSBUeXBlYWhlYWRUcmlnZ2VyUmVnZXguZXhlYyhxdWVyeSlcbiAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtYXliZUxlYWRpbmdXaGl0ZXNwYWNlID0gbWF0Y2hbMV1cblxuICAgICAgICAvKipcbiAgICAgICAgICogbWF0Y2hpbmdTdHJpbmcgaXMgb25seSB0aGUgdGV4dCBBRlRFUiB0aGUgdHJpZ2dlciB0ZXh0LiAoU28gZXZlcnl0aGluZyBhZnRlciB0aGUgLylcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gbWF0Y2hbM11cblxuICAgICAgICBpZiAobWF0Y2hpbmdTdHJpbmcubGVuZ3RoID49IG1pbkxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWFkT2Zmc2V0OiBtYXRjaC5pbmRleCArIG1heWJlTGVhZGluZ1doaXRlc3BhY2UubGVuZ3RoLFxuICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmcsXG4gICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogbWF0Y2hbMl0sIC8vIHJlcGxhY2VhYmxlU3RyaW5nIGlzIHRoZSB0cmlnZ2VyIHRleHQgKyB0aGUgbWF0Y2hpbmcgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgW21heExlbmd0aCwgbWluTGVuZ3RoLCB0cmlnZ2VyXSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZU1lbnVUcmlnZ2VyTWF0Y2giLCJ0cmlnZ2VyIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwidXNlQ2FsbGJhY2siLCJxdWVyeSIsInZhbGlkQ2hhcnMiLCJQVU5DVFVBVElPTiIsIlR5cGVhaGVhZFRyaWdnZXJSZWdleCIsIlJlZ0V4cCIsIm1hdGNoIiwiZXhlYyIsIm1heWJlTGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGluZ1N0cmluZyIsImxlbmd0aCIsImxlYWRPZmZzZXQiLCJpbmRleCIsInJlcGxhY2VhYmxlU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7OytCQXdCZ0JBOzs7ZUFBQUE7Ozt1QkF0Qlk7NENBRUE7QUFvQnJCLFNBQVNBLG9CQUNkOztHQUVDLEdBQ0RDLE9BQWUsRUFDZixFQUFFQyxZQUFZLEVBQUUsRUFBRUMsWUFBWSxDQUFDLEVBQThDO0lBRTdFLE9BQU9DLElBQUFBLGtCQUFXLEVBQ2hCLENBQUMsRUFBRUMsS0FBSyxFQUFFO1FBQ1IsTUFBTUMsYUFBYSxPQUFPTCxVQUFVTSx1Q0FBVyxHQUFHO1FBQ2xELE1BQU1DLHdCQUF3QixJQUFJQyxPQUNoQyxpQkFDRSxNQUNBUixVQUNBLE1BQ0EsU0FDQUssYUFDQSxTQUNBSixZQUNBLE9BQ0E7UUFFSixNQUFNUSxRQUFRRixzQkFBc0JHLElBQUksQ0FBQ047UUFDekMsSUFBSUssVUFBVSxNQUFNO1lBQ2xCLE1BQU1FLHlCQUF5QkYsS0FBSyxDQUFDLEVBQUU7WUFFdkM7O1NBRUMsR0FDRCxNQUFNRyxpQkFBaUJILEtBQUssQ0FBQyxFQUFFO1lBRS9CLElBQUlHLGVBQWVDLE1BQU0sSUFBSVgsV0FBVztnQkFDdEMsT0FBTztvQkFDTFksWUFBWUwsTUFBTU0sS0FBSyxHQUFHSix1QkFBdUJFLE1BQU07b0JBQ3ZERDtvQkFDQUksbUJBQW1CUCxLQUFLLENBQUMsRUFBRTtnQkFDN0I7WUFDRjtRQUNGO1FBQ0EsT0FBTztJQUNULEdBQ0E7UUFBQ1I7UUFBV0M7UUFBV0Y7S0FBUTtBQUVuQyJ9
|