@payloadcms/richtext-slate 3.0.0-alpha.3 → 3.0.0-alpha.30
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/cell/index.d.ts +1 -2
- package/dist/cell/index.d.ts.map +1 -1
- package/dist/cell/index.js +4 -20
- package/dist/data/defaultValue.js +2 -12
- package/dist/data/populate.d.ts +1 -1
- package/dist/data/populate.d.ts.map +1 -1
- package/dist/data/populate.js +2 -12
- package/dist/data/recurseNestedFields.js +12 -22
- package/dist/data/richTextRelationshipPromise.d.ts +1 -1
- package/dist/data/richTextRelationshipPromise.d.ts.map +1 -1
- package/dist/data/richTextRelationshipPromise.js +9 -27
- package/dist/data/validation.d.ts +1 -1
- package/dist/data/validation.d.ts.map +1 -1
- package/dist/data/validation.js +4 -14
- package/dist/field/RichText.d.ts +5 -17
- package/dist/field/RichText.d.ts.map +1 -1
- package/dist/field/RichText.js +74 -130
- package/dist/field/createFeatureMap.d.ts +1 -1
- package/dist/field/createFeatureMap.d.ts.map +1 -1
- package/dist/field/createFeatureMap.js +2 -12
- package/dist/field/elements/Button.d.ts +2 -3
- package/dist/field/elements/Button.d.ts.map +1 -1
- package/dist/field/elements/Button.js +16 -81
- package/dist/field/elements/EnabledRelationshipsCondition.js +8 -59
- package/dist/field/elements/ListButton.d.ts +2 -3
- package/dist/field/elements/ListButton.d.ts.map +1 -1
- package/dist/field/elements/ListButton.js +13 -78
- package/dist/field/elements/areAllChildrenElements.js +4 -14
- package/dist/field/elements/blockquote/Blockquote.js +7 -22
- package/dist/field/elements/blockquote/index.d.ts +2 -3
- package/dist/field/elements/blockquote/index.d.ts.map +1 -1
- package/dist/field/elements/blockquote/index.js +9 -25
- package/dist/field/elements/getCommonBlock.js +9 -19
- package/dist/field/elements/h1/Heading1.js +6 -21
- package/dist/field/elements/h1/index.d.ts +2 -3
- package/dist/field/elements/h1/index.d.ts.map +1 -1
- package/dist/field/elements/h1/index.js +9 -25
- package/dist/field/elements/h2/Heading2.js +6 -21
- package/dist/field/elements/h2/index.d.ts +2 -3
- package/dist/field/elements/h2/index.d.ts.map +1 -1
- package/dist/field/elements/h2/index.js +9 -25
- package/dist/field/elements/h3/Heading3.js +6 -21
- package/dist/field/elements/h3/index.d.ts +2 -3
- package/dist/field/elements/h3/index.d.ts.map +1 -1
- package/dist/field/elements/h3/index.js +9 -25
- package/dist/field/elements/h4/Heading4.js +6 -21
- package/dist/field/elements/h4/index.d.ts +2 -3
- package/dist/field/elements/h4/index.d.ts.map +1 -1
- package/dist/field/elements/h4/index.js +9 -25
- package/dist/field/elements/h5/Heading5.js +6 -21
- package/dist/field/elements/h5/index.d.ts +2 -3
- package/dist/field/elements/h5/index.d.ts.map +1 -1
- package/dist/field/elements/h5/index.js +9 -25
- package/dist/field/elements/h6/Heading6.js +6 -21
- package/dist/field/elements/h6/index.d.ts +2 -3
- package/dist/field/elements/h6/index.d.ts.map +1 -1
- package/dist/field/elements/h6/index.js +9 -25
- package/dist/field/elements/indent/Button.js +60 -115
- package/dist/field/elements/indent/Element.js +6 -21
- package/dist/field/elements/indent/index.d.ts +2 -3
- package/dist/field/elements/indent/index.d.ts.map +1 -1
- package/dist/field/elements/indent/index.js +8 -19
- package/dist/field/elements/indent/shared.js +2 -12
- package/dist/field/elements/index.d.ts +2 -3
- package/dist/field/elements/index.d.ts.map +1 -1
- package/dist/field/elements/index.js +32 -48
- package/dist/field/elements/injectVoid.js +12 -22
- package/dist/field/elements/isActive.d.ts +1 -2
- package/dist/field/elements/isActive.d.ts.map +1 -1
- package/dist/field/elements/isActive.js +6 -17
- package/dist/field/elements/isBlockElement.d.ts +1 -1
- package/dist/field/elements/isBlockElement.d.ts.map +1 -1
- package/dist/field/elements/isBlockElement.js +9 -14
- package/dist/field/elements/isLastSelectedElementEmpty.js +8 -18
- package/dist/field/elements/isListActive.d.ts +1 -2
- package/dist/field/elements/isListActive.d.ts.map +1 -1
- package/dist/field/elements/isListActive.js +8 -19
- package/dist/field/elements/isWithinListItem.js +5 -15
- package/dist/field/elements/li/ListItem.js +9 -65
- package/dist/field/elements/li/index.d.ts +2 -3
- package/dist/field/elements/li/index.d.ts.map +1 -1
- package/dist/field/elements/li/index.js +4 -15
- package/dist/field/elements/link/Button/index.js +41 -97
- package/dist/field/elements/link/Element/index.js +53 -104
- package/dist/field/elements/link/LinkDrawer/baseFields.js +4 -14
- package/dist/field/elements/link/LinkDrawer/index.d.ts +1 -1
- package/dist/field/elements/link/LinkDrawer/index.d.ts.map +1 -1
- package/dist/field/elements/link/LinkDrawer/index.js +25 -76
- package/dist/field/elements/link/LinkDrawer/types.d.ts +2 -1
- package/dist/field/elements/link/LinkDrawer/types.d.ts.map +1 -1
- package/dist/field/elements/link/LinkDrawer/types.js +2 -5
- package/dist/field/elements/link/WithLinks.js +4 -14
- package/dist/field/elements/link/index.d.ts +2 -3
- package/dist/field/elements/link/index.d.ts.map +1 -1
- package/dist/field/elements/link/index.js +8 -19
- package/dist/field/elements/link/shared.js +3 -21
- package/dist/field/elements/link/types.js +2 -5
- package/dist/field/elements/link/utilities.js +15 -34
- package/dist/field/elements/listTypes.d.ts +1 -2
- package/dist/field/elements/listTypes.d.ts.map +1 -1
- package/dist/field/elements/listTypes.js +2 -12
- package/dist/field/elements/ol/OrderedList.js +7 -22
- package/dist/field/elements/ol/index.d.ts +2 -3
- package/dist/field/elements/ol/index.d.ts.map +1 -1
- package/dist/field/elements/ol/index.js +9 -25
- package/dist/field/elements/relationship/Button/index.d.ts +2 -2
- package/dist/field/elements/relationship/Button/index.d.ts.map +1 -1
- package/dist/field/elements/relationship/Button/index.js +21 -77
- package/dist/field/elements/relationship/Element/index.d.ts +2 -2
- package/dist/field/elements/relationship/Element/index.d.ts.map +1 -1
- package/dist/field/elements/relationship/Element/index.js +45 -96
- package/dist/field/elements/relationship/index.d.ts +2 -3
- package/dist/field/elements/relationship/index.d.ts.map +1 -1
- package/dist/field/elements/relationship/index.js +10 -26
- package/dist/field/elements/relationship/plugin.js +6 -16
- package/dist/field/elements/relationship/shared.js +2 -12
- package/dist/field/elements/relationship/types.js +2 -5
- package/dist/field/elements/textAlign/index.d.ts +2 -3
- package/dist/field/elements/textAlign/index.d.ts.map +1 -1
- package/dist/field/elements/textAlign/index.js +11 -27
- package/dist/field/elements/toggle.d.ts +1 -2
- package/dist/field/elements/toggle.d.ts.map +1 -1
- package/dist/field/elements/toggle.js +13 -29
- package/dist/field/elements/toggleList.d.ts +1 -2
- package/dist/field/elements/toggleList.d.ts.map +1 -1
- package/dist/field/elements/toggleList.js +27 -43
- package/dist/field/elements/types.js +2 -5
- package/dist/field/elements/ul/UnorderedList.js +7 -22
- package/dist/field/elements/ul/index.d.ts +2 -3
- package/dist/field/elements/ul/index.d.ts.map +1 -1
- package/dist/field/elements/ul/index.js +9 -25
- package/dist/field/elements/unwrapList.js +13 -28
- package/dist/field/elements/upload/Button/index.d.ts +2 -2
- package/dist/field/elements/upload/Button/index.d.ts.map +1 -1
- package/dist/field/elements/upload/Button/index.js +20 -76
- package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts +1 -1
- package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts.map +1 -1
- package/dist/field/elements/upload/Element/UploadDrawer/index.js +33 -84
- package/dist/field/elements/upload/Element/index.d.ts +2 -2
- package/dist/field/elements/upload/Element/index.d.ts.map +1 -1
- package/dist/field/elements/upload/Element/index.js +57 -108
- package/dist/field/elements/upload/index.d.ts +2 -3
- package/dist/field/elements/upload/index.d.ts.map +1 -1
- package/dist/field/elements/upload/index.js +10 -26
- package/dist/field/elements/upload/plugin.js +6 -16
- package/dist/field/elements/upload/shared.js +3 -21
- package/dist/field/elements/upload/types.js +2 -5
- package/dist/field/hotkeys.d.ts +1 -2
- package/dist/field/hotkeys.d.ts.map +1 -1
- package/dist/field/hotkeys.js +2 -12
- package/dist/field/icons/AlignCenter/index.d.ts +1 -2
- package/dist/field/icons/AlignCenter/index.d.ts.map +1 -1
- package/dist/field/icons/AlignCenter/index.js +4 -20
- package/dist/field/icons/AlignLeft/index.d.ts +1 -2
- package/dist/field/icons/AlignLeft/index.d.ts.map +1 -1
- package/dist/field/icons/AlignLeft/index.js +4 -20
- package/dist/field/icons/AlignRight/index.d.ts +1 -2
- package/dist/field/icons/AlignRight/index.d.ts.map +1 -1
- package/dist/field/icons/AlignRight/index.js +4 -20
- package/dist/field/icons/Blockquote/index.d.ts +1 -2
- package/dist/field/icons/Blockquote/index.d.ts.map +1 -1
- package/dist/field/icons/Blockquote/index.js +5 -21
- package/dist/field/icons/Bold/index.d.ts +1 -2
- package/dist/field/icons/Bold/index.d.ts.map +1 -1
- package/dist/field/icons/Bold/index.js +5 -21
- package/dist/field/icons/Code/index.d.ts +1 -2
- package/dist/field/icons/Code/index.d.ts.map +1 -1
- package/dist/field/icons/Code/index.js +4 -20
- package/dist/field/icons/IndentLeft/index.d.ts +1 -2
- package/dist/field/icons/IndentLeft/index.d.ts.map +1 -1
- package/dist/field/icons/IndentLeft/index.js +8 -24
- package/dist/field/icons/IndentRight/index.d.ts +1 -2
- package/dist/field/icons/IndentRight/index.d.ts.map +1 -1
- package/dist/field/icons/IndentRight/index.js +8 -24
- package/dist/field/icons/Italic/index.d.ts +1 -2
- package/dist/field/icons/Italic/index.d.ts.map +1 -1
- package/dist/field/icons/Italic/index.js +5 -21
- package/dist/field/icons/Link/index.d.ts +1 -2
- package/dist/field/icons/Link/index.d.ts.map +1 -1
- package/dist/field/icons/Link/index.js +6 -22
- package/dist/field/icons/OrderedList/index.d.ts +1 -2
- package/dist/field/icons/OrderedList/index.d.ts.map +1 -1
- package/dist/field/icons/OrderedList/index.js +5 -21
- package/dist/field/icons/Relationship/index.d.ts +1 -2
- package/dist/field/icons/Relationship/index.d.ts.map +1 -1
- package/dist/field/icons/Relationship/index.js +7 -23
- package/dist/field/icons/Strikethrough/index.d.ts +1 -2
- package/dist/field/icons/Strikethrough/index.d.ts.map +1 -1
- package/dist/field/icons/Strikethrough/index.js +5 -21
- package/dist/field/icons/Underline/index.d.ts +1 -2
- package/dist/field/icons/Underline/index.d.ts.map +1 -1
- package/dist/field/icons/Underline/index.js +5 -21
- package/dist/field/icons/UnorderedList/index.d.ts +1 -2
- package/dist/field/icons/UnorderedList/index.d.ts.map +1 -1
- package/dist/field/icons/UnorderedList/index.js +5 -21
- package/dist/field/icons/Upload/index.d.ts +1 -2
- package/dist/field/icons/Upload/index.d.ts.map +1 -1
- package/dist/field/icons/Upload/index.js +6 -22
- package/dist/field/icons/headings/H1/index.d.ts +1 -2
- package/dist/field/icons/headings/H1/index.d.ts.map +1 -1
- package/dist/field/icons/headings/H1/index.js +5 -21
- package/dist/field/icons/headings/H2/index.d.ts +1 -2
- package/dist/field/icons/headings/H2/index.d.ts.map +1 -1
- package/dist/field/icons/headings/H2/index.js +5 -21
- package/dist/field/icons/headings/H3/index.d.ts +1 -2
- package/dist/field/icons/headings/H3/index.d.ts.map +1 -1
- package/dist/field/icons/headings/H3/index.js +5 -21
- package/dist/field/icons/headings/H4/index.d.ts +1 -2
- package/dist/field/icons/headings/H4/index.d.ts.map +1 -1
- package/dist/field/icons/headings/H4/index.js +5 -21
- package/dist/field/icons/headings/H5/index.d.ts +1 -2
- package/dist/field/icons/headings/H5/index.d.ts.map +1 -1
- package/dist/field/icons/headings/H5/index.js +5 -21
- package/dist/field/icons/headings/H6/index.d.ts +1 -2
- package/dist/field/icons/headings/H6/index.d.ts.map +1 -1
- package/dist/field/icons/headings/H6/index.js +5 -21
- package/dist/field/index.d.ts +1 -2
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +22 -73
- package/dist/field/leaves/Button.d.ts +1 -2
- package/dist/field/leaves/Button.d.ts.map +1 -1
- package/dist/field/leaves/Button.js +11 -27
- package/dist/field/leaves/bold/Bold/index.js +6 -21
- package/dist/field/leaves/bold/index.d.ts +2 -3
- package/dist/field/leaves/bold/index.d.ts.map +1 -1
- package/dist/field/leaves/bold/index.js +9 -25
- package/dist/field/leaves/code/Code/index.js +6 -21
- package/dist/field/leaves/code/index.d.ts +2 -3
- package/dist/field/leaves/code/index.d.ts.map +1 -1
- package/dist/field/leaves/code/index.js +9 -25
- package/dist/field/leaves/index.d.ts +2 -3
- package/dist/field/leaves/index.d.ts.map +1 -1
- package/dist/field/leaves/index.js +12 -28
- package/dist/field/leaves/isActive.d.ts +1 -2
- package/dist/field/leaves/isActive.d.ts.map +1 -1
- package/dist/field/leaves/isActive.js +4 -15
- package/dist/field/leaves/italic/Italic/index.js +6 -21
- package/dist/field/leaves/italic/index.d.ts +2 -3
- package/dist/field/leaves/italic/index.d.ts.map +1 -1
- package/dist/field/leaves/italic/index.js +9 -25
- package/dist/field/leaves/strikethrough/Strikethrough/index.js +6 -21
- package/dist/field/leaves/strikethrough/index.d.ts +2 -3
- package/dist/field/leaves/strikethrough/index.d.ts.map +1 -1
- package/dist/field/leaves/strikethrough/index.js +9 -25
- package/dist/field/leaves/toggle.d.ts +1 -2
- package/dist/field/leaves/toggle.d.ts.map +1 -1
- package/dist/field/leaves/toggle.js +7 -23
- package/dist/field/leaves/underline/Underline/index.js +6 -21
- package/dist/field/leaves/underline/index.d.ts +2 -3
- package/dist/field/leaves/underline/index.d.ts.map +1 -1
- package/dist/field/leaves/underline/index.js +9 -25
- package/dist/field/mergeCustomFunctions.js +3 -13
- package/dist/field/plugins/withEnterBreakOut.d.ts +1 -2
- package/dist/field/plugins/withEnterBreakOut.d.ts.map +1 -1
- package/dist/field/plugins/withEnterBreakOut.js +2 -13
- package/dist/field/plugins/withHTML.d.ts +1 -2
- package/dist/field/plugins/withHTML.d.ts.map +1 -1
- package/dist/field/plugins/withHTML.js +8 -19
- package/dist/field/providers/ElementButtonProvider.js +7 -30
- package/dist/field/providers/ElementProvider.js +7 -30
- package/dist/field/providers/LeafButtonProvider.js +7 -30
- package/dist/field/providers/LeafProvider.js +7 -30
- package/dist/field/types.d.ts +1 -1
- package/dist/field/types.js +2 -5
- package/dist/generateComponentMap.d.ts +1 -1
- package/dist/generateComponentMap.d.ts.map +1 -1
- package/dist/generateComponentMap.js +34 -51
- package/dist/generateSchemaMap.d.ts +1 -1
- package/dist/generateSchemaMap.d.ts.map +1 -1
- package/dist/generateSchemaMap.js +19 -34
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -52
- package/dist/types.d.ts +1 -1
- package/dist/types.js +2 -12
- package/dist/utilities/useSlatePlugin.js +6 -16
- package/package.json +14 -7
- package/dist/field/enablePlugins.d.ts +0 -3
- package/dist/field/enablePlugins.d.ts.map +0 -1
- package/dist/field/enablePlugins.js +0 -38
- package/dist/field/icons/headings/index.d.ts +0 -11
- package/dist/field/icons/headings/index.d.ts.map +0 -1
- package/dist/field/icons/headings/index.js +0 -31
package/dist/field/RichText.js
CHANGED
|
@@ -1,89 +1,33 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const _listTypes = /*#__PURE__*/ _interop_require_default(require("./elements/listTypes"));
|
|
23
|
-
const _hotkeys = /*#__PURE__*/ _interop_require_default(require("./hotkeys"));
|
|
24
|
-
require("./index.scss");
|
|
25
|
-
const _toggle = /*#__PURE__*/ _interop_require_default(require("./leaves/toggle"));
|
|
26
|
-
const _withEnterBreakOut = /*#__PURE__*/ _interop_require_default(require("./plugins/withEnterBreakOut"));
|
|
27
|
-
const _withHTML = /*#__PURE__*/ _interop_require_default(require("./plugins/withHTML"));
|
|
28
|
-
const _ElementButtonProvider = require("./providers/ElementButtonProvider");
|
|
29
|
-
const _ElementProvider = require("./providers/ElementProvider");
|
|
30
|
-
const _LeafButtonProvider = require("./providers/LeafButtonProvider");
|
|
31
|
-
const _LeafProvider = require("./providers/LeafProvider");
|
|
32
|
-
function _interop_require_default(obj) {
|
|
33
|
-
return obj && obj.__esModule ? obj : {
|
|
34
|
-
default: obj
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
38
|
-
if (typeof WeakMap !== "function") return null;
|
|
39
|
-
var cacheBabelInterop = new WeakMap();
|
|
40
|
-
var cacheNodeInterop = new WeakMap();
|
|
41
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
42
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
43
|
-
})(nodeInterop);
|
|
44
|
-
}
|
|
45
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
46
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
47
|
-
return obj;
|
|
48
|
-
}
|
|
49
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
50
|
-
return {
|
|
51
|
-
default: obj
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
55
|
-
if (cache && cache.has(obj)) {
|
|
56
|
-
return cache.get(obj);
|
|
57
|
-
}
|
|
58
|
-
var newObj = {
|
|
59
|
-
__proto__: null
|
|
60
|
-
};
|
|
61
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
62
|
-
for(var key in obj){
|
|
63
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
64
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
65
|
-
if (desc && (desc.get || desc.set)) {
|
|
66
|
-
Object.defineProperty(newObj, key, desc);
|
|
67
|
-
} else {
|
|
68
|
-
newObj[key] = obj[key];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
newObj.default = obj;
|
|
73
|
-
if (cache) {
|
|
74
|
-
cache.set(obj, newObj);
|
|
75
|
-
}
|
|
76
|
-
return newObj;
|
|
77
|
-
}
|
|
2
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
3
|
+
import { useEditDepth, useField, useTranslation } from '@payloadcms/ui';
|
|
4
|
+
import { withCondition } from '@payloadcms/ui/forms';
|
|
5
|
+
import isHotkey from 'is-hotkey';
|
|
6
|
+
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
7
|
+
import { Node, Element as SlateElement, Text, Transforms, createEditor } from 'slate';
|
|
8
|
+
import { withHistory } from 'slate-history';
|
|
9
|
+
import { Editable, Slate, withReact } from 'slate-react';
|
|
10
|
+
import { defaultRichTextValue } from '../data/defaultValue.js';
|
|
11
|
+
import { richTextValidate } from '../data/validation.js';
|
|
12
|
+
import { listTypes } from './elements/listTypes.js';
|
|
13
|
+
import { hotkeys } from './hotkeys.js';
|
|
14
|
+
import './index.scss';
|
|
15
|
+
import { toggleLeaf } from './leaves/toggle.js';
|
|
16
|
+
import { withEnterBreakOut } from './plugins/withEnterBreakOut.js';
|
|
17
|
+
import { withHTML } from './plugins/withHTML.js';
|
|
18
|
+
import { ElementButtonProvider } from './providers/ElementButtonProvider.js';
|
|
19
|
+
import { ElementProvider } from './providers/ElementProvider.js';
|
|
20
|
+
import { LeafButtonProvider } from './providers/LeafButtonProvider.js';
|
|
21
|
+
import { LeafProvider } from './providers/LeafProvider.js';
|
|
78
22
|
const baseClass = 'rich-text';
|
|
79
|
-
const
|
|
80
|
-
const { name, Description, Error, Label, className, elements, leaves, path: pathFromProps, placeholder, plugins, readOnly, required, style, validate =
|
|
81
|
-
const { i18n } =
|
|
82
|
-
const editorRef =
|
|
83
|
-
const toolbarRef =
|
|
84
|
-
const drawerDepth =
|
|
23
|
+
const RichTextField = (props)=>{
|
|
24
|
+
const { name, Description, Error, Label, className, elements, leaves, path: pathFromProps, placeholder, plugins, readOnly, required, style, validate = richTextValidate, width } = props;
|
|
25
|
+
const { i18n } = useTranslation();
|
|
26
|
+
const editorRef = useRef(null);
|
|
27
|
+
const toolbarRef = useRef(null);
|
|
28
|
+
const drawerDepth = useEditDepth();
|
|
85
29
|
const drawerIsOpen = drawerDepth > 1;
|
|
86
|
-
const memoizedValidate =
|
|
30
|
+
const memoizedValidate = useCallback((value, validationOptions)=>{
|
|
87
31
|
if (typeof validate === 'function') {
|
|
88
32
|
return validate(value, {
|
|
89
33
|
...validationOptions,
|
|
@@ -94,13 +38,13 @@ const RichText = (props)=>{
|
|
|
94
38
|
validate,
|
|
95
39
|
required
|
|
96
40
|
]);
|
|
97
|
-
const { initialValue, path, schemaPath, setValue, showError, value } =
|
|
41
|
+
const { initialValue, path, schemaPath, setValue, showError, value } = useField({
|
|
98
42
|
path: pathFromProps || name,
|
|
99
43
|
validate: memoizedValidate
|
|
100
44
|
});
|
|
101
|
-
const editor =
|
|
102
|
-
let CreatedEditor = (
|
|
103
|
-
CreatedEditor = (
|
|
45
|
+
const editor = useMemo(()=>{
|
|
46
|
+
let CreatedEditor = withEnterBreakOut(withHistory(withReact(createEditor())));
|
|
47
|
+
CreatedEditor = withHTML(CreatedEditor);
|
|
104
48
|
if (plugins.length) {
|
|
105
49
|
CreatedEditor = plugins.reduce((editorWithPlugins, plugin)=>{
|
|
106
50
|
return plugin(editorWithPlugins);
|
|
@@ -110,7 +54,7 @@ const RichText = (props)=>{
|
|
|
110
54
|
}, [
|
|
111
55
|
plugins
|
|
112
56
|
]);
|
|
113
|
-
const renderElement =
|
|
57
|
+
const renderElement = useCallback(({ attributes, children, element })=>{
|
|
114
58
|
// return <div {...attributes}>{children}</div>
|
|
115
59
|
const matchedElement = elements[element.type];
|
|
116
60
|
const Element = matchedElement?.Element;
|
|
@@ -196,7 +140,7 @@ const RichText = (props)=>{
|
|
|
196
140
|
}
|
|
197
141
|
}
|
|
198
142
|
if (Element) {
|
|
199
|
-
const el = /*#__PURE__*/
|
|
143
|
+
const el = /*#__PURE__*/ React.createElement(ElementProvider, {
|
|
200
144
|
attributes: attr,
|
|
201
145
|
childNodes: children,
|
|
202
146
|
editorRef: editorRef,
|
|
@@ -207,20 +151,20 @@ const RichText = (props)=>{
|
|
|
207
151
|
}, Element);
|
|
208
152
|
return el;
|
|
209
153
|
}
|
|
210
|
-
return /*#__PURE__*/
|
|
154
|
+
return /*#__PURE__*/ React.createElement("div", attr, children);
|
|
211
155
|
}, [
|
|
212
156
|
elements,
|
|
213
157
|
path,
|
|
214
158
|
props,
|
|
215
159
|
schemaPath
|
|
216
160
|
]);
|
|
217
|
-
const renderLeaf =
|
|
161
|
+
const renderLeaf = useCallback(({ attributes, children, leaf })=>{
|
|
218
162
|
const matchedLeaves = Object.entries(leaves).filter(([leafName])=>leaf[leafName]);
|
|
219
163
|
if (matchedLeaves.length > 0) {
|
|
220
164
|
return matchedLeaves.reduce((result, [, leafConfig], i)=>{
|
|
221
165
|
if (leafConfig?.Leaf) {
|
|
222
166
|
const Leaf = leafConfig.Leaf;
|
|
223
|
-
return /*#__PURE__*/
|
|
167
|
+
return /*#__PURE__*/ React.createElement(LeafProvider, {
|
|
224
168
|
attributes: attributes,
|
|
225
169
|
editorRef: editorRef,
|
|
226
170
|
fieldProps: props,
|
|
@@ -232,9 +176,9 @@ const RichText = (props)=>{
|
|
|
232
176
|
}, Leaf);
|
|
233
177
|
}
|
|
234
178
|
return result;
|
|
235
|
-
}, /*#__PURE__*/
|
|
179
|
+
}, /*#__PURE__*/ React.createElement("span", attributes, children));
|
|
236
180
|
}
|
|
237
|
-
return /*#__PURE__*/
|
|
181
|
+
return /*#__PURE__*/ React.createElement("span", attributes, children);
|
|
238
182
|
}, [
|
|
239
183
|
path,
|
|
240
184
|
props,
|
|
@@ -245,7 +189,7 @@ const RichText = (props)=>{
|
|
|
245
189
|
// including selection changes
|
|
246
190
|
// so we will filter the set_selection operations out
|
|
247
191
|
// and only fire setValue when onChange is because of value
|
|
248
|
-
const handleChange =
|
|
192
|
+
const handleChange = useCallback((val)=>{
|
|
249
193
|
const ops = editor?.operations.filter((o)=>{
|
|
250
194
|
if (o) {
|
|
251
195
|
return o.type !== 'set_selection';
|
|
@@ -253,7 +197,7 @@ const RichText = (props)=>{
|
|
|
253
197
|
return false;
|
|
254
198
|
});
|
|
255
199
|
if (ops && Array.isArray(ops) && ops.length > 0) {
|
|
256
|
-
if (!readOnly && val !==
|
|
200
|
+
if (!readOnly && val !== defaultRichTextValue && val !== value) {
|
|
257
201
|
setValue(val);
|
|
258
202
|
}
|
|
259
203
|
}
|
|
@@ -263,7 +207,7 @@ const RichText = (props)=>{
|
|
|
263
207
|
setValue,
|
|
264
208
|
value
|
|
265
209
|
]);
|
|
266
|
-
|
|
210
|
+
useEffect(()=>{
|
|
267
211
|
function setClickableState(clickState) {
|
|
268
212
|
const selectors = 'button, a, [role="button"]';
|
|
269
213
|
const toolbarButtons = toolbarRef.current?.querySelectorAll(selectors);
|
|
@@ -310,16 +254,16 @@ const RichText = (props)=>{
|
|
|
310
254
|
valueToRender = null;
|
|
311
255
|
}
|
|
312
256
|
}
|
|
313
|
-
if (!valueToRender) valueToRender =
|
|
314
|
-
return /*#__PURE__*/
|
|
257
|
+
if (!valueToRender) valueToRender = defaultRichTextValue;
|
|
258
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
315
259
|
className: classes,
|
|
316
260
|
style: {
|
|
317
261
|
...style,
|
|
318
262
|
width
|
|
319
263
|
}
|
|
320
|
-
}, /*#__PURE__*/
|
|
264
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
321
265
|
className: `${baseClass}__wrap`
|
|
322
|
-
}, Error, Label, /*#__PURE__*/
|
|
266
|
+
}, Error, Label, /*#__PURE__*/ React.createElement(Slate, {
|
|
323
267
|
editor: editor,
|
|
324
268
|
key: JSON.stringify({
|
|
325
269
|
initialValue,
|
|
@@ -327,20 +271,20 @@ const RichText = (props)=>{
|
|
|
327
271
|
}),
|
|
328
272
|
onChange: handleChange,
|
|
329
273
|
value: valueToRender
|
|
330
|
-
}, /*#__PURE__*/
|
|
274
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
331
275
|
className: `${baseClass}__wrapper`
|
|
332
|
-
}, Object.keys(elements)?.length + Object.keys(leaves)?.length > 0 && /*#__PURE__*/
|
|
276
|
+
}, Object.keys(elements)?.length + Object.keys(leaves)?.length > 0 && /*#__PURE__*/ React.createElement("div", {
|
|
333
277
|
className: [
|
|
334
278
|
`${baseClass}__toolbar`,
|
|
335
279
|
drawerIsOpen && `${baseClass}__drawerIsOpen`
|
|
336
280
|
].filter(Boolean).join(' '),
|
|
337
281
|
ref: toolbarRef
|
|
338
|
-
}, /*#__PURE__*/
|
|
282
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
339
283
|
className: `${baseClass}__toolbar-wrap`
|
|
340
284
|
}, Object.values(elements).map((element)=>{
|
|
341
285
|
const Button = element?.Button;
|
|
342
286
|
if (Button) {
|
|
343
|
-
return /*#__PURE__*/
|
|
287
|
+
return /*#__PURE__*/ React.createElement(ElementButtonProvider, {
|
|
344
288
|
fieldProps: props,
|
|
345
289
|
key: element.name,
|
|
346
290
|
path: path,
|
|
@@ -351,7 +295,7 @@ const RichText = (props)=>{
|
|
|
351
295
|
}), Object.values(leaves).map((leaf)=>{
|
|
352
296
|
const Button = leaf?.Button;
|
|
353
297
|
if (Button) {
|
|
354
|
-
return /*#__PURE__*/
|
|
298
|
+
return /*#__PURE__*/ React.createElement(LeafButtonProvider, {
|
|
355
299
|
fieldProps: props,
|
|
356
300
|
key: leaf.name,
|
|
357
301
|
path: path,
|
|
@@ -359,10 +303,10 @@ const RichText = (props)=>{
|
|
|
359
303
|
}, Button);
|
|
360
304
|
}
|
|
361
305
|
return null;
|
|
362
|
-
}))), /*#__PURE__*/
|
|
306
|
+
}))), /*#__PURE__*/ React.createElement("div", {
|
|
363
307
|
className: `${baseClass}__editor`,
|
|
364
308
|
ref: editorRef
|
|
365
|
-
}, /*#__PURE__*/
|
|
309
|
+
}, /*#__PURE__*/ React.createElement(Editable, {
|
|
366
310
|
className: `${baseClass}__input`,
|
|
367
311
|
id: `field-${path.replace(/\./g, '__')}`,
|
|
368
312
|
onKeyDown: (event)=>{
|
|
@@ -371,14 +315,14 @@ const RichText = (props)=>{
|
|
|
371
315
|
event.preventDefault();
|
|
372
316
|
editor.insertText('\n');
|
|
373
317
|
} else {
|
|
374
|
-
const selectedElement =
|
|
375
|
-
if (
|
|
318
|
+
const selectedElement = Node.descendant(editor, editor.selection.anchor.path.slice(0, -1));
|
|
319
|
+
if (SlateElement.isElement(selectedElement)) {
|
|
376
320
|
// Allow hard enter to "break out" of certain elements
|
|
377
321
|
if (editor.shouldBreakOutOnEnter(selectedElement)) {
|
|
378
322
|
event.preventDefault();
|
|
379
|
-
const selectedLeaf =
|
|
380
|
-
if (
|
|
381
|
-
|
|
323
|
+
const selectedLeaf = Node.descendant(editor, editor.selection.anchor.path);
|
|
324
|
+
if (Text.isText(selectedLeaf) && String(selectedLeaf.text).length === editor.selection.anchor.offset) {
|
|
325
|
+
Transforms.insertNodes(editor, {
|
|
382
326
|
children: [
|
|
383
327
|
{
|
|
384
328
|
text: ''
|
|
@@ -386,47 +330,47 @@ const RichText = (props)=>{
|
|
|
386
330
|
]
|
|
387
331
|
});
|
|
388
332
|
} else {
|
|
389
|
-
|
|
390
|
-
|
|
333
|
+
Transforms.splitNodes(editor);
|
|
334
|
+
Transforms.setNodes(editor, {});
|
|
391
335
|
}
|
|
392
336
|
}
|
|
393
337
|
}
|
|
394
338
|
}
|
|
395
339
|
}
|
|
396
340
|
if (event.key === 'Backspace') {
|
|
397
|
-
const selectedElement =
|
|
398
|
-
if (
|
|
399
|
-
const selectedLeaf =
|
|
400
|
-
if (
|
|
341
|
+
const selectedElement = Node.descendant(editor, editor.selection.anchor.path.slice(0, -1));
|
|
342
|
+
if (SlateElement.isElement(selectedElement) && selectedElement.type === 'li') {
|
|
343
|
+
const selectedLeaf = Node.descendant(editor, editor.selection.anchor.path);
|
|
344
|
+
if (Text.isText(selectedLeaf) && String(selectedLeaf.text).length === 0) {
|
|
401
345
|
event.preventDefault();
|
|
402
|
-
|
|
403
|
-
match: (n)=>
|
|
346
|
+
Transforms.unwrapNodes(editor, {
|
|
347
|
+
match: (n)=>SlateElement.isElement(n) && listTypes.includes(n.type),
|
|
404
348
|
mode: 'lowest',
|
|
405
349
|
split: true
|
|
406
350
|
});
|
|
407
|
-
|
|
351
|
+
Transforms.setNodes(editor, {
|
|
408
352
|
type: undefined
|
|
409
353
|
});
|
|
410
354
|
}
|
|
411
355
|
} else if (editor.isVoid(selectedElement)) {
|
|
412
|
-
|
|
356
|
+
Transforms.removeNodes(editor);
|
|
413
357
|
}
|
|
414
358
|
}
|
|
415
|
-
Object.keys(
|
|
416
|
-
if ((
|
|
359
|
+
Object.keys(hotkeys).forEach((hotkey)=>{
|
|
360
|
+
if (isHotkey(hotkey, event)) {
|
|
417
361
|
event.preventDefault();
|
|
418
|
-
const mark =
|
|
419
|
-
(
|
|
362
|
+
const mark = hotkeys[hotkey];
|
|
363
|
+
toggleLeaf(editor, mark);
|
|
420
364
|
}
|
|
421
365
|
});
|
|
422
366
|
},
|
|
423
|
-
placeholder:
|
|
367
|
+
placeholder: getTranslation(placeholder, i18n),
|
|
424
368
|
readOnly: readOnly,
|
|
425
369
|
renderElement: renderElement,
|
|
426
370
|
renderLeaf: renderLeaf,
|
|
427
371
|
spellCheck: true
|
|
428
372
|
})))), Description));
|
|
429
373
|
};
|
|
430
|
-
const
|
|
374
|
+
export const RichText = withCondition(RichTextField);
|
|
431
375
|
|
|
432
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZC9SaWNoVGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgRm9ybUZpZWxkQmFzZSB9IGZyb20gJ0BwYXlsb2FkY21zL3VpL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRWRpdG9yLCBCYXNlT3BlcmF0aW9uIH0gZnJvbSAnc2xhdGUnXG5pbXBvcnQgdHlwZSB7IEhpc3RvcnlFZGl0b3IgfSBmcm9tICdzbGF0ZS1oaXN0b3J5J1xuaW1wb3J0IHR5cGUgeyBSZWFjdEVkaXRvciB9IGZyb20gJ3NsYXRlLXJlYWN0J1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB7IHVzZUVkaXREZXB0aCwgdXNlRmllbGQsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB3aXRoQ29uZGl0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWkvZm9ybXMnXG5pbXBvcnQgaXNIb3RrZXkgZnJvbSAnaXMtaG90a2V5J1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTm9kZSwgRWxlbWVudCBhcyBTbGF0ZUVsZW1lbnQsIFRleHQsIFRyYW5zZm9ybXMsIGNyZWF0ZUVkaXRvciB9IGZyb20gJ3NsYXRlJ1xuaW1wb3J0IHsgd2l0aEhpc3RvcnkgfSBmcm9tICdzbGF0ZS1oaXN0b3J5J1xuaW1wb3J0IHsgRWRpdGFibGUsIFNsYXRlLCB3aXRoUmVhY3QgfSBmcm9tICdzbGF0ZS1yZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgUmljaFRleHRQbHVnaW4sIFRleHROb2RlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEVuYWJsZWRGZWF0dXJlcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGRlZmF1bHRSaWNoVGV4dFZhbHVlIH0gZnJvbSAnLi4vZGF0YS9kZWZhdWx0VmFsdWUnXG5pbXBvcnQgeyByaWNoVGV4dFZhbGlkYXRlIH0gZnJvbSAnLi4vZGF0YS92YWxpZGF0aW9uJ1xuaW1wb3J0IGxpc3RUeXBlcyBmcm9tICcuL2VsZW1lbnRzL2xpc3RUeXBlcydcbmltcG9ydCBob3RrZXlzIGZyb20gJy4vaG90a2V5cydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHRvZ2dsZUxlYWYgZnJvbSAnLi9sZWF2ZXMvdG9nZ2xlJ1xuaW1wb3J0IHdpdGhFbnRlckJyZWFrT3V0IGZyb20gJy4vcGx1Z2lucy93aXRoRW50ZXJCcmVha091dCdcbmltcG9ydCB3aXRoSFRNTCBmcm9tICcuL3BsdWdpbnMvd2l0aEhUTUwnXG5pbXBvcnQgeyBFbGVtZW50QnV0dG9uUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9FbGVtZW50QnV0dG9uUHJvdmlkZXInXG5pbXBvcnQgeyBFbGVtZW50UHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9FbGVtZW50UHJvdmlkZXInXG5pbXBvcnQgeyBMZWFmQnV0dG9uUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9MZWFmQnV0dG9uUHJvdmlkZXInXG5pbXBvcnQgeyBMZWFmUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9MZWFmUHJvdmlkZXInXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdyaWNoLXRleHQnXG5cbmRlY2xhcmUgbW9kdWxlICdzbGF0ZScge1xuICBpbnRlcmZhY2UgQ3VzdG9tVHlwZXMge1xuICAgIEVkaXRvcjogQmFzZUVkaXRvciAmIFJlYWN0RWRpdG9yICYgSGlzdG9yeUVkaXRvclxuICAgIEVsZW1lbnQ6IEVsZW1lbnROb2RlXG4gICAgVGV4dDogVGV4dE5vZGVcbiAgfVxufVxuXG5jb25zdCBSaWNoVGV4dDogUmVhY3QuRkM8XG4gIEZvcm1GaWVsZEJhc2UgJiB7XG4gICAgZWxlbWVudHM6IEVuYWJsZWRGZWF0dXJlc1snZWxlbWVudHMnXVxuICAgIGxlYXZlczogRW5hYmxlZEZlYXR1cmVzWydsZWF2ZXMnXVxuICAgIG5hbWU6IHN0cmluZ1xuICAgIHBsdWdpbnM6IFJpY2hUZXh0UGx1Z2luW11cbiAgICByaWNoVGV4dENvbXBvbmVudE1hcDogTWFwPHN0cmluZywgUmVhY3QuUmVhY3ROb2RlPlxuICB9XG4+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBuYW1lLFxuICAgIERlc2NyaXB0aW9uLFxuICAgIEVycm9yLFxuICAgIExhYmVsLFxuICAgIGNsYXNzTmFtZSxcbiAgICBlbGVtZW50cyxcbiAgICBsZWF2ZXMsXG4gICAgcGF0aDogcGF0aEZyb21Qcm9wcyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICBwbHVnaW5zLFxuICAgIHJlYWRPbmx5LFxuICAgIHJlcXVpcmVkLFxuICAgIHN0eWxlLFxuICAgIHZhbGlkYXRlID0gcmljaFRleHRWYWxpZGF0ZSxcbiAgICB3aWR0aCxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZihudWxsKVxuICBjb25zdCB0b29sYmFyUmVmID0gdXNlUmVmKG51bGwpXG5cbiAgY29uc3QgZHJhd2VyRGVwdGggPSB1c2VFZGl0RGVwdGgoKVxuICBjb25zdCBkcmF3ZXJJc09wZW4gPSBkcmF3ZXJEZXB0aCA+IDFcblxuICBjb25zdCBtZW1vaXplZFZhbGlkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlLCB2YWxpZGF0aW9uT3B0aW9ucykgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUodmFsdWUsIHsgLi4udmFsaWRhdGlvbk9wdGlvbnMsIHJlcXVpcmVkIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbdmFsaWRhdGUsIHJlcXVpcmVkXSxcbiAgKVxuXG4gIGNvbnN0IHsgaW5pdGlhbFZhbHVlLCBwYXRoLCBzY2hlbWFQYXRoLCBzZXRWYWx1ZSwgc2hvd0Vycm9yLCB2YWx1ZSB9ID0gdXNlRmllbGQoe1xuICAgIHBhdGg6IHBhdGhGcm9tUHJvcHMgfHwgbmFtZSxcbiAgICB2YWxpZGF0ZTogbWVtb2l6ZWRWYWxpZGF0ZSxcbiAgfSlcblxuICBjb25zdCBlZGl0b3IgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBsZXQgQ3JlYXRlZEVkaXRvciA9IHdpdGhFbnRlckJyZWFrT3V0KHdpdGhIaXN0b3J5KHdpdGhSZWFjdChjcmVhdGVFZGl0b3IoKSkpKVxuXG4gICAgQ3JlYXRlZEVkaXRvciA9IHdpdGhIVE1MKENyZWF0ZWRFZGl0b3IpXG5cbiAgICBpZiAocGx1Z2lucy5sZW5ndGgpIHtcbiAgICAgIENyZWF0ZWRFZGl0b3IgPSBwbHVnaW5zLnJlZHVjZSgoZWRpdG9yV2l0aFBsdWdpbnMsIHBsdWdpbikgPT4ge1xuICAgICAgICByZXR1cm4gcGx1Z2luKGVkaXRvcldpdGhQbHVnaW5zKVxuICAgICAgfSwgQ3JlYXRlZEVkaXRvcilcbiAgICB9XG5cbiAgICByZXR1cm4gQ3JlYXRlZEVkaXRvclxuICB9LCBbcGx1Z2luc10pXG5cbiAgY29uc3QgcmVuZGVyRWxlbWVudCA9IHVzZUNhbGxiYWNrKFxuICAgICh7IGF0dHJpYnV0ZXMsIGNoaWxkcmVuLCBlbGVtZW50IH0pID0+IHtcbiAgICAgIC8vIHJldHVybiA8ZGl2IHsuLi5hdHRyaWJ1dGVzfT57Y2hpbGRyZW59PC9kaXY+XG5cbiAgICAgIGNvbnN0IG1hdGNoZWRFbGVtZW50ID0gZWxlbWVudHNbZWxlbWVudC50eXBlXVxuICAgICAgY29uc3QgRWxlbWVudCA9IG1hdGNoZWRFbGVtZW50Py5FbGVtZW50XG5cbiAgICAgIGxldCBhdHRyID0geyAuLi5hdHRyaWJ1dGVzIH1cblxuICAgICAgLy8gdGhpcyBjb252ZXJ0cyB0ZXh0IGFsaWdubWVudCB0byBtYXJnaW4gd2hlbiBkZWFsaW5nIHdpdGggdm9pZCBlbGVtZW50c1xuICAgICAgaWYgKGVsZW1lbnQudGV4dEFsaWduKSB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGVsZW1lbnQudHlwZSA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudGV4dEFsaWduKSB7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbWFyZ2luUmlnaHQ6ICdhdXRvJyB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbWFyZ2luTGVmdDogJ2F1dG8nIH0gfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbWFyZ2luTGVmdDogJ2F1dG8nLCBtYXJnaW5SaWdodDogJ2F1dG8nIH0gfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgdGV4dEFsaWduOiBlbGVtZW50LnRleHRBbGlnbiB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC50eXBlID09PSAnbGknKSB7XG4gICAgICAgICAgc3dpdGNoIChlbGVtZW50LnRleHRBbGlnbikge1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICBhdHRyID0geyAuLi5hdHRyLCBzdHlsZTogeyBsaXN0U3R5bGVQb3NpdGlvbjogJ2luc2lkZScsIHRleHRBbGlnbjogJ3JpZ2h0JyB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgICAgICAgIGF0dHIgPSB7IC4uLmF0dHIsIHN0eWxlOiB7IGxpc3RTdHlsZVBvc2l0aW9uOiAnaW5zaWRlJywgdGV4dEFsaWduOiAnY2VudGVyJyB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbGlzdFN0eWxlUG9zaXRpb246ICdvdXRzaWRlJywgdGV4dEFsaWduOiAnbGVmdCcgfSB9XG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF0dHIgPSB7IC4uLmF0dHIsIHN0eWxlOiB7IHRleHRBbGlnbjogZWxlbWVudC50ZXh0QWxpZ24gfSB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZWwgPSAoXG4gICAgICAgICAgPEVsZW1lbnRQcm92aWRlclxuICAgICAgICAgICAgYXR0cmlidXRlcz17YXR0cn1cbiAgICAgICAgICAgIGNoaWxkTm9kZXM9e2NoaWxkcmVufVxuICAgICAgICAgICAgZWRpdG9yUmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICBlbGVtZW50PXtlbGVtZW50fVxuICAgICAgICAgICAgZmllbGRQcm9wcz17cHJvcHN9XG4gICAgICAgICAgICBwYXRoPXtwYXRofVxuICAgICAgICAgICAgc2NoZW1hUGF0aD17c2NoZW1hUGF0aH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7RWxlbWVudH1cbiAgICAgICAgICA8L0VsZW1lbnRQcm92aWRlcj5cbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBlbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gPGRpdiB7Li4uYXR0cn0+e2NoaWxkcmVufTwvZGl2PlxuICAgIH0sXG4gICAgW2VsZW1lbnRzLCBwYXRoLCBwcm9wcywgc2NoZW1hUGF0aF0sXG4gIClcblxuICBjb25zdCByZW5kZXJMZWFmID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgYXR0cmlidXRlcywgY2hpbGRyZW4sIGxlYWYgfSkgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hlZExlYXZlcyA9IE9iamVjdC5lbnRyaWVzKGxlYXZlcykuZmlsdGVyKChbbGVhZk5hbWVdKSA9PiBsZWFmW2xlYWZOYW1lXSlcblxuICAgICAgaWYgKG1hdGNoZWRMZWF2ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gbWF0Y2hlZExlYXZlcy5yZWR1Y2UoXG4gICAgICAgICAgKHJlc3VsdCwgWywgbGVhZkNvbmZpZ10sIGkpID0+IHtcbiAgICAgICAgICAgIGlmIChsZWFmQ29uZmlnPy5MZWFmKSB7XG4gICAgICAgICAgICAgIGNvbnN0IExlYWYgPSBsZWFmQ29uZmlnLkxlYWZcblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMZWFmUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM9e2F0dHJpYnV0ZXN9XG4gICAgICAgICAgICAgICAgICBlZGl0b3JSZWY9e2VkaXRvclJlZn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkUHJvcHM9e3Byb3BzfVxuICAgICAgICAgICAgICAgICAga2V5PXtpfVxuICAgICAgICAgICAgICAgICAgbGVhZj17bGVhZn1cbiAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICByZXN1bHQ9e3Jlc3VsdH1cbiAgICAgICAgICAgICAgICAgIHNjaGVtYVBhdGg9e3NjaGVtYVBhdGh9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0xlYWZ9XG4gICAgICAgICAgICAgICAgPC9MZWFmUHJvdmlkZXI+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgIH0sXG4gICAgICAgICAgPHNwYW4gey4uLmF0dHJpYnV0ZXN9PntjaGlsZHJlbn08L3NwYW4+LFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiA8c3BhbiB7Li4uYXR0cmlidXRlc30+e2NoaWxkcmVufTwvc3Bhbj5cbiAgICB9LFxuICAgIFtwYXRoLCBwcm9wcywgc2NoZW1hUGF0aCwgbGVhdmVzXSxcbiAgKVxuXG4gIC8vIEFsbCBzbGF0ZSBjaGFuZ2VzIGZpcmUgdGhlIG9uQ2hhbmdlIGV2ZW50XG4gIC8vIGluY2x1ZGluZyBzZWxlY3Rpb24gY2hhbmdlc1xuICAvLyBzbyB3ZSB3aWxsIGZpbHRlciB0aGUgc2V0X3NlbGVjdGlvbiBvcGVyYXRpb25zIG91dFxuICAvLyBhbmQgb25seSBmaXJlIHNldFZhbHVlIHdoZW4gb25DaGFuZ2UgaXMgYmVjYXVzZSBvZiB2YWx1ZVxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsOiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBvcHMgPSBlZGl0b3I/Lm9wZXJhdGlvbnMuZmlsdGVyKChvOiBCYXNlT3BlcmF0aW9uKSA9PiB7XG4gICAgICAgIGlmIChvKSB7XG4gICAgICAgICAgcmV0dXJuIG8udHlwZSAhPT0gJ3NldF9zZWxlY3Rpb24nXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9KVxuXG4gICAgICBpZiAob3BzICYmIEFycmF5LmlzQXJyYXkob3BzKSAmJiBvcHMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoIXJlYWRPbmx5ICYmIHZhbCAhPT0gZGVmYXVsdFJpY2hUZXh0VmFsdWUgJiYgdmFsICE9PSB2YWx1ZSkge1xuICAgICAgICAgIHNldFZhbHVlKHZhbClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2VkaXRvcj8ub3BlcmF0aW9ucywgcmVhZE9ubHksIHNldFZhbHVlLCB2YWx1ZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIHNldENsaWNrYWJsZVN0YXRlKGNsaWNrU3RhdGU6ICdkaXNhYmxlZCcgfCAnZW5hYmxlZCcpIHtcbiAgICAgIGNvbnN0IHNlbGVjdG9ycyA9ICdidXR0b24sIGEsIFtyb2xlPVwiYnV0dG9uXCJdJ1xuICAgICAgY29uc3QgdG9vbGJhckJ1dHRvbnM6IChIVE1MQW5jaG9yRWxlbWVudCB8IEhUTUxCdXR0b25FbGVtZW50KVtdID1cbiAgICAgICAgdG9vbGJhclJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9ycylcblxuICAgICAgOyh0b29sYmFyQnV0dG9ucyB8fCBbXSkuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgY29uc3QgaXNCdXR0b24gPSBjaGlsZC50YWdOYW1lID09PSAnQlVUVE9OJ1xuICAgICAgICBjb25zdCBpc0Rpc2FibGluZyA9IGNsaWNrU3RhdGUgPT09ICdkaXNhYmxlZCdcbiAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsIGlzRGlzYWJsaW5nID8gJy0xJyA6ICcwJylcbiAgICAgICAgaWYgKGlzQnV0dG9uKSBjaGlsZC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgaXNEaXNhYmxpbmcgPyAnZGlzYWJsZWQnIDogbnVsbClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHJlYWRPbmx5KSB7XG4gICAgICBzZXRDbGlja2FibGVTdGF0ZSgnZGlzYWJsZWQnKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVhZE9ubHkpIHtcbiAgICAgICAgc2V0Q2xpY2thYmxlU3RhdGUoJ2VuYWJsZWQnKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3JlYWRPbmx5XSlcblxuICAvLyB1c2VFZmZlY3QoKCkgPT4ge1xuICAvLyAgIC8vIElmIHRoZXJlIGlzIGEgY2hhbmdlIHRvIHRoZSBpbml0aWFsIHZhbHVlLCB3ZSBuZWVkIHRvIHJlc2V0IFNsYXRlIGhpc3RvcnlcbiAgLy8gICAvLyBhbmQgY2xlYXIgc2VsZWN0aW9uIGJlY2F1c2UgdGhlIG9sZCBzZWxlY3Rpb24gbWF5IG5vIGxvbmdlciBiZSB2YWxpZFxuICAvLyAgIC8vIGFzIHJldHVybmVkIEpTT04gbWF5IGJlIG1vZGlmaWVkIGluIGhvb2tzIGFuZCBoYXZlIGEgZGlmZmVyZW50IHNoYXBlXG4gIC8vICAgaWYgKGVkaXRvci5zZWxlY3Rpb24pIHtcbiAgLy8gICAgIGNvbnNvbGUubG9nKCdkZXNlbGVjdGluZycpO1xuICAvLyAgICAgUmVhY3RFZGl0b3IuZGVzZWxlY3QoZWRpdG9yKTtcbiAgLy8gICB9XG4gIC8vIH0sIFtwYXRoLCBlZGl0b3JdKTtcblxuICBjb25zdCBjbGFzc2VzID0gW1xuICAgIGJhc2VDbGFzcyxcbiAgICAnZmllbGQtdHlwZScsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNob3dFcnJvciAmJiAnZXJyb3InLFxuICAgIHJlYWRPbmx5ICYmIGAke2Jhc2VDbGFzc30tLXJlYWQtb25seWAsXG4gIF1cbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oJyAnKVxuXG4gIGxldCB2YWx1ZVRvUmVuZGVyID0gdmFsdWVcblxuICBpZiAodHlwZW9mIHZhbHVlVG9SZW5kZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZEpTT04gPSBKU09OLnBhcnNlKHZhbHVlVG9SZW5kZXIpXG4gICAgICB2YWx1ZVRvUmVuZGVyID0gcGFyc2VkSlNPTlxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdmFsdWVUb1JlbmRlciA9IG51bGxcbiAgICB9XG4gIH1cblxuICBpZiAoIXZhbHVlVG9SZW5kZXIpIHZhbHVlVG9SZW5kZXIgPSBkZWZhdWx0UmljaFRleHRWYWx1ZVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgIHdpZHRoLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd3JhcGB9PlxuICAgICAgICB7RXJyb3J9XG4gICAgICAgIHtMYWJlbH1cbiAgICAgICAgPFNsYXRlXG4gICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAga2V5PXtKU09OLnN0cmluZ2lmeSh7IGluaXRpYWxWYWx1ZSwgcGF0aCB9KX0gLy8gbWFrZXMgc3VyZSBzbGF0ZSBpcyBjb21wbGV0ZWx5IHJlLXJlbmRlcmVkIHdoZW4gaW5pdGlhbFZhbHVlIGNoYW5nZXMsIGJ5cGFzc2luZyB0aGUgc2xhdGUtaW50ZXJuYWwgdmFsdWUgbWVtb2l6YXRpb24uIFRoYXQgd2F5LCBleHRlcm5hbCBjaGFuZ2VzIHRvIHRoZSBmb3JtIHdpbGwgdXBkYXRlIHRoZSBlZGl0b3JcbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZVRvUmVuZGVyIGFzIGFueVtdfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3dyYXBwZXJgfT5cbiAgICAgICAgICAgIHtPYmplY3Qua2V5cyhlbGVtZW50cyk/Lmxlbmd0aCArIE9iamVjdC5rZXlzKGxlYXZlcyk/Lmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fdG9vbGJhcmAsIGRyYXdlcklzT3BlbiAmJiBgJHtiYXNlQ2xhc3N9X19kcmF3ZXJJc09wZW5gXVxuICAgICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgICAgICAgICAgICByZWY9e3Rvb2xiYXJSZWZ9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9vbGJhci13cmFwYH0+XG4gICAgICAgICAgICAgICAgICB7T2JqZWN0LnZhbHVlcyhlbGVtZW50cykubWFwKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IEJ1dHRvbiA9IGVsZW1lbnQ/LkJ1dHRvblxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEVsZW1lbnRCdXR0b25Qcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFByb3BzPXtwcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtlbGVtZW50Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYVBhdGg9e3NjaGVtYVBhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0VsZW1lbnRCdXR0b25Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICB7T2JqZWN0LnZhbHVlcyhsZWF2ZXMpLm1hcCgobGVhZikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBCdXR0b24gPSBsZWFmPy5CdXR0b25cblxuICAgICAgICAgICAgICAgICAgICBpZiAoQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxMZWFmQnV0dG9uUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRQcm9wcz17cHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17bGVhZi5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXtwYXRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFQYXRoPXtzY2hlbWFQYXRofVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MZWFmQnV0dG9uUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZWRpdG9yYH0gcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICAgICAgICA8RWRpdGFibGVcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0YH1cbiAgICAgICAgICAgICAgICBpZD17YGZpZWxkLSR7cGF0aC5yZXBsYWNlKC9cXC4vZywgJ19fJyl9YH1cbiAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLmluc2VydFRleHQoJ1xcbicpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gTm9kZS5kZXNjZW5kYW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aC5zbGljZSgwLCAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFNsYXRlRWxlbWVudC5pc0VsZW1lbnQoc2VsZWN0ZWRFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxsb3cgaGFyZCBlbnRlciB0byBcImJyZWFrIG91dFwiIG9mIGNlcnRhaW4gZWxlbWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlZGl0b3Iuc2hvdWxkQnJlYWtPdXRPbkVudGVyKHNlbGVjdGVkRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZExlYWYgPSBOb2RlLmRlc2NlbmRhbnQoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0LmlzVGV4dChzZWxlY3RlZExlYWYpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKHNlbGVjdGVkTGVhZi50ZXh0KS5sZW5ndGggPT09IGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLm9mZnNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgeyBjaGlsZHJlbjogW3sgdGV4dDogJycgfV0gfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNwbGl0Tm9kZXMoZWRpdG9yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7fSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSBOb2RlLmRlc2NlbmRhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGguc2xpY2UoMCwgLTEpLFxuICAgICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFNsYXRlRWxlbWVudC5pc0VsZW1lbnQoc2VsZWN0ZWRFbGVtZW50KSAmJiBzZWxlY3RlZEVsZW1lbnQudHlwZSA9PT0gJ2xpJykge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTGVhZiA9IE5vZGUuZGVzY2VuZGFudChlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFRleHQuaXNUZXh0KHNlbGVjdGVkTGVhZikgJiYgU3RyaW5nKHNlbGVjdGVkTGVhZi50ZXh0KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMudW53cmFwTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiAobikgPT4gU2xhdGVFbGVtZW50LmlzRWxlbWVudChuKSAmJiBsaXN0VHlwZXMuaW5jbHVkZXMobi50eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2xvd2VzdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNwbGl0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgdHlwZTogdW5kZWZpbmVkIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVkaXRvci5pc1ZvaWQoc2VsZWN0ZWRFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZXMoZWRpdG9yKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGhvdGtleXMpLmZvckVhY2goKGhvdGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNIb3RrZXkoaG90a2V5LCBldmVudCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcmsgPSBob3RrZXlzW2hvdGtleV1cbiAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVMZWFmKGVkaXRvciwgbWFyaylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtnZXRUcmFuc2xhdGlvbihwbGFjZWhvbGRlciwgaTE4bil9XG4gICAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICAgIHJlbmRlckVsZW1lbnQ9e3JlbmRlckVsZW1lbnR9XG4gICAgICAgICAgICAgICAgcmVuZGVyTGVhZj17cmVuZGVyTGVhZn1cbiAgICAgICAgICAgICAgICBzcGVsbENoZWNrXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TbGF0ZT5cbiAgICAgICAge0Rlc2NyaXB0aW9ufVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aENvbmRpdGlvbihSaWNoVGV4dClcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJSaWNoVGV4dCIsInByb3BzIiwibmFtZSIsIkRlc2NyaXB0aW9uIiwiRXJyb3IiLCJMYWJlbCIsImNsYXNzTmFtZSIsImVsZW1lbnRzIiwibGVhdmVzIiwicGF0aCIsInBhdGhGcm9tUHJvcHMiLCJwbGFjZWhvbGRlciIsInBsdWdpbnMiLCJyZWFkT25seSIsInJlcXVpcmVkIiwic3R5bGUiLCJ2YWxpZGF0ZSIsInJpY2hUZXh0VmFsaWRhdGUiLCJ3aWR0aCIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImVkaXRvclJlZiIsInVzZVJlZiIsInRvb2xiYXJSZWYiLCJkcmF3ZXJEZXB0aCIsInVzZUVkaXREZXB0aCIsImRyYXdlcklzT3BlbiIsIm1lbW9pemVkVmFsaWRhdGUiLCJ1c2VDYWxsYmFjayIsInZhbHVlIiwidmFsaWRhdGlvbk9wdGlvbnMiLCJpbml0aWFsVmFsdWUiLCJzY2hlbWFQYXRoIiwic2V0VmFsdWUiLCJzaG93RXJyb3IiLCJ1c2VGaWVsZCIsImVkaXRvciIsInVzZU1lbW8iLCJDcmVhdGVkRWRpdG9yIiwid2l0aEVudGVyQnJlYWtPdXQiLCJ3aXRoSGlzdG9yeSIsIndpdGhSZWFjdCIsImNyZWF0ZUVkaXRvciIsIndpdGhIVE1MIiwibGVuZ3RoIiwicmVkdWNlIiwiZWRpdG9yV2l0aFBsdWdpbnMiLCJwbHVnaW4iLCJyZW5kZXJFbGVtZW50IiwiYXR0cmlidXRlcyIsImNoaWxkcmVuIiwiZWxlbWVudCIsIm1hdGNoZWRFbGVtZW50IiwidHlwZSIsIkVsZW1lbnQiLCJhdHRyIiwidGV4dEFsaWduIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5MZWZ0IiwibGlzdFN0eWxlUG9zaXRpb24iLCJlbCIsIkVsZW1lbnRQcm92aWRlciIsImNoaWxkTm9kZXMiLCJmaWVsZFByb3BzIiwiZGl2IiwicmVuZGVyTGVhZiIsImxlYWYiLCJtYXRjaGVkTGVhdmVzIiwiT2JqZWN0IiwiZW50cmllcyIsImZpbHRlciIsImxlYWZOYW1lIiwicmVzdWx0IiwibGVhZkNvbmZpZyIsImkiLCJMZWFmIiwiTGVhZlByb3ZpZGVyIiwia2V5Iiwic3BhbiIsImhhbmRsZUNoYW5nZSIsInZhbCIsIm9wcyIsIm9wZXJhdGlvbnMiLCJvIiwiQXJyYXkiLCJpc0FycmF5IiwiZGVmYXVsdFJpY2hUZXh0VmFsdWUiLCJ1c2VFZmZlY3QiLCJzZXRDbGlja2FibGVTdGF0ZSIsImNsaWNrU3RhdGUiLCJzZWxlY3RvcnMiLCJ0b29sYmFyQnV0dG9ucyIsImN1cnJlbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsImNoaWxkIiwiaXNCdXR0b24iLCJ0YWdOYW1lIiwiaXNEaXNhYmxpbmciLCJzZXRBdHRyaWJ1dGUiLCJjbGFzc2VzIiwiQm9vbGVhbiIsImpvaW4iLCJ2YWx1ZVRvUmVuZGVyIiwicGFyc2VkSlNPTiIsIkpTT04iLCJwYXJzZSIsImVyciIsIlNsYXRlIiwic3RyaW5naWZ5Iiwib25DaGFuZ2UiLCJrZXlzIiwicmVmIiwidmFsdWVzIiwibWFwIiwiQnV0dG9uIiwiRWxlbWVudEJ1dHRvblByb3ZpZGVyIiwiTGVhZkJ1dHRvblByb3ZpZGVyIiwiRWRpdGFibGUiLCJpZCIsInJlcGxhY2UiLCJvbktleURvd24iLCJldmVudCIsInNoaWZ0S2V5IiwicHJldmVudERlZmF1bHQiLCJpbnNlcnRUZXh0Iiwic2VsZWN0ZWRFbGVtZW50IiwiTm9kZSIsImRlc2NlbmRhbnQiLCJzZWxlY3Rpb24iLCJhbmNob3IiLCJzbGljZSIsIlNsYXRlRWxlbWVudCIsImlzRWxlbWVudCIsInNob3VsZEJyZWFrT3V0T25FbnRlciIsInNlbGVjdGVkTGVhZiIsIlRleHQiLCJpc1RleHQiLCJTdHJpbmciLCJ0ZXh0Iiwib2Zmc2V0IiwiVHJhbnNmb3JtcyIsImluc2VydE5vZGVzIiwic3BsaXROb2RlcyIsInNldE5vZGVzIiwidW53cmFwTm9kZXMiLCJtYXRjaCIsIm4iLCJsaXN0VHlwZXMiLCJpbmNsdWRlcyIsIm1vZGUiLCJzcGxpdCIsInVuZGVmaW5lZCIsImlzVm9pZCIsInJlbW92ZU5vZGVzIiwiaG90a2V5cyIsImhvdGtleSIsImlzSG90a2V5IiwibWFyayIsInRvZ2dsZUxlYWYiLCJnZXRUcmFuc2xhdGlvbiIsInNwZWxsQ2hlY2siLCJ3aXRoQ29uZGl0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBa2JBOzs7ZUFBQTs7OzhCQTNhK0I7b0JBQ3dCO3VCQUN6QjtpRUFDVDsrREFDMEM7dUJBQ2U7OEJBQ2xEOzRCQUNlOzhCQUtOOzRCQUNKO2tFQUNYO2dFQUNGO1FBQ2I7K0RBQ2dCOzBFQUNPO2lFQUNUO3VDQUNpQjtpQ0FDTjtvQ0FDRzs4QkFDTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFN0IsTUFBTUEsWUFBWTtBQVVsQixNQUFNQyxXQVFGLENBQUNDO0lBQ0gsTUFBTSxFQUNKQyxJQUFJLEVBQ0pDLFdBQVcsRUFDWEMsS0FBSyxFQUNMQyxLQUFLLEVBQ0xDLFNBQVMsRUFDVEMsUUFBUSxFQUNSQyxNQUFNLEVBQ05DLE1BQU1DLGFBQWEsRUFDbkJDLFdBQVcsRUFDWEMsT0FBTyxFQUNQQyxRQUFRLEVBQ1JDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxXQUFXQyw0QkFBZ0IsRUFDM0JDLEtBQUssRUFDTixHQUFHakI7SUFFSixNQUFNLEVBQUVrQixJQUFJLEVBQUUsR0FBR0MsSUFBQUEsa0JBQWM7SUFDL0IsTUFBTUMsWUFBWUMsSUFBQUEsYUFBTSxFQUFDO0lBQ3pCLE1BQU1DLGFBQWFELElBQUFBLGFBQU0sRUFB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
|
|
376
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZC9SaWNoVGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgRm9ybUZpZWxkQmFzZSB9IGZyb20gJ0BwYXlsb2FkY21zL3VpL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRWRpdG9yLCBCYXNlT3BlcmF0aW9uIH0gZnJvbSAnc2xhdGUnXG5pbXBvcnQgdHlwZSB7IEhpc3RvcnlFZGl0b3IgfSBmcm9tICdzbGF0ZS1oaXN0b3J5J1xuaW1wb3J0IHR5cGUgeyBSZWFjdEVkaXRvciB9IGZyb20gJ3NsYXRlLXJlYWN0J1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB7IHVzZUVkaXREZXB0aCwgdXNlRmllbGQsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB3aXRoQ29uZGl0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWkvZm9ybXMnXG5pbXBvcnQgaXNIb3RrZXkgZnJvbSAnaXMtaG90a2V5J1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTm9kZSwgRWxlbWVudCBhcyBTbGF0ZUVsZW1lbnQsIFRleHQsIFRyYW5zZm9ybXMsIGNyZWF0ZUVkaXRvciB9IGZyb20gJ3NsYXRlJ1xuaW1wb3J0IHsgd2l0aEhpc3RvcnkgfSBmcm9tICdzbGF0ZS1oaXN0b3J5J1xuaW1wb3J0IHsgRWRpdGFibGUsIFNsYXRlLCB3aXRoUmVhY3QgfSBmcm9tICdzbGF0ZS1yZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgUmljaFRleHRQbHVnaW4sIFRleHROb2RlIH0gZnJvbSAnLi4vdHlwZXMuZC50cydcbmltcG9ydCB0eXBlIHsgRW5hYmxlZEZlYXR1cmVzIH0gZnJvbSAnLi90eXBlcy5kLnRzJ1xuXG5pbXBvcnQgeyBkZWZhdWx0UmljaFRleHRWYWx1ZSB9IGZyb20gJy4uL2RhdGEvZGVmYXVsdFZhbHVlLmpzJ1xuaW1wb3J0IHsgcmljaFRleHRWYWxpZGF0ZSB9IGZyb20gJy4uL2RhdGEvdmFsaWRhdGlvbi5qcydcbmltcG9ydCB7IGxpc3RUeXBlcyB9IGZyb20gJy4vZWxlbWVudHMvbGlzdFR5cGVzLmpzJ1xuaW1wb3J0IHsgaG90a2V5cyB9IGZyb20gJy4vaG90a2V5cy5qcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgdG9nZ2xlTGVhZiB9IGZyb20gJy4vbGVhdmVzL3RvZ2dsZS5qcydcbmltcG9ydCB7IHdpdGhFbnRlckJyZWFrT3V0IH0gZnJvbSAnLi9wbHVnaW5zL3dpdGhFbnRlckJyZWFrT3V0LmpzJ1xuaW1wb3J0IHsgd2l0aEhUTUwgfSBmcm9tICcuL3BsdWdpbnMvd2l0aEhUTUwuanMnXG5pbXBvcnQgeyBFbGVtZW50QnV0dG9uUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9FbGVtZW50QnV0dG9uUHJvdmlkZXIuanMnXG5pbXBvcnQgeyBFbGVtZW50UHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9FbGVtZW50UHJvdmlkZXIuanMnXG5pbXBvcnQgeyBMZWFmQnV0dG9uUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9MZWFmQnV0dG9uUHJvdmlkZXIuanMnXG5pbXBvcnQgeyBMZWFmUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9MZWFmUHJvdmlkZXIuanMnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdyaWNoLXRleHQnXG5cbmRlY2xhcmUgbW9kdWxlICdzbGF0ZScge1xuICBpbnRlcmZhY2UgQ3VzdG9tVHlwZXMge1xuICAgIEVkaXRvcjogQmFzZUVkaXRvciAmIFJlYWN0RWRpdG9yICYgSGlzdG9yeUVkaXRvclxuICAgIEVsZW1lbnQ6IEVsZW1lbnROb2RlXG4gICAgVGV4dDogVGV4dE5vZGVcbiAgfVxufVxuXG5jb25zdCBSaWNoVGV4dEZpZWxkOiBSZWFjdC5GQzxcbiAgRm9ybUZpZWxkQmFzZSAmIHtcbiAgICBlbGVtZW50czogRW5hYmxlZEZlYXR1cmVzWydlbGVtZW50cyddXG4gICAgbGVhdmVzOiBFbmFibGVkRmVhdHVyZXNbJ2xlYXZlcyddXG4gICAgbmFtZTogc3RyaW5nXG4gICAgcGx1Z2luczogUmljaFRleHRQbHVnaW5bXVxuICAgIHJpY2hUZXh0Q29tcG9uZW50TWFwOiBNYXA8c3RyaW5nLCBSZWFjdC5SZWFjdE5vZGU+XG4gIH1cbj4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIG5hbWUsXG4gICAgRGVzY3JpcHRpb24sXG4gICAgRXJyb3IsXG4gICAgTGFiZWwsXG4gICAgY2xhc3NOYW1lLFxuICAgIGVsZW1lbnRzLFxuICAgIGxlYXZlcyxcbiAgICBwYXRoOiBwYXRoRnJvbVByb3BzLFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIHBsdWdpbnMsXG4gICAgcmVhZE9ubHksXG4gICAgcmVxdWlyZWQsXG4gICAgc3R5bGUsXG4gICAgdmFsaWRhdGUgPSByaWNoVGV4dFZhbGlkYXRlLFxuICAgIHdpZHRoLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmKG51bGwpXG4gIGNvbnN0IHRvb2xiYXJSZWYgPSB1c2VSZWYobnVsbClcblxuICBjb25zdCBkcmF3ZXJEZXB0aCA9IHVzZUVkaXREZXB0aCgpXG4gIGNvbnN0IGRyYXdlcklzT3BlbiA9IGRyYXdlckRlcHRoID4gMVxuXG4gIGNvbnN0IG1lbW9pemVkVmFsaWRhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWUsIHZhbGlkYXRpb25PcHRpb25zKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZSh2YWx1ZSwgeyAuLi52YWxpZGF0aW9uT3B0aW9ucywgcmVxdWlyZWQgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFt2YWxpZGF0ZSwgcmVxdWlyZWRdLFxuICApXG5cbiAgY29uc3QgeyBpbml0aWFsVmFsdWUsIHBhdGgsIHNjaGVtYVBhdGgsIHNldFZhbHVlLCBzaG93RXJyb3IsIHZhbHVlIH0gPSB1c2VGaWVsZCh7XG4gICAgcGF0aDogcGF0aEZyb21Qcm9wcyB8fCBuYW1lLFxuICAgIHZhbGlkYXRlOiBtZW1vaXplZFZhbGlkYXRlLFxuICB9KVxuXG4gIGNvbnN0IGVkaXRvciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBDcmVhdGVkRWRpdG9yID0gd2l0aEVudGVyQnJlYWtPdXQod2l0aEhpc3Rvcnkod2l0aFJlYWN0KGNyZWF0ZUVkaXRvcigpKSkpXG5cbiAgICBDcmVhdGVkRWRpdG9yID0gd2l0aEhUTUwoQ3JlYXRlZEVkaXRvcilcblxuICAgIGlmIChwbHVnaW5zLmxlbmd0aCkge1xuICAgICAgQ3JlYXRlZEVkaXRvciA9IHBsdWdpbnMucmVkdWNlKChlZGl0b3JXaXRoUGx1Z2lucywgcGx1Z2luKSA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW4oZWRpdG9yV2l0aFBsdWdpbnMpXG4gICAgICB9LCBDcmVhdGVkRWRpdG9yKVxuICAgIH1cblxuICAgIHJldHVybiBDcmVhdGVkRWRpdG9yXG4gIH0sIFtwbHVnaW5zXSlcblxuICBjb25zdCByZW5kZXJFbGVtZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgYXR0cmlidXRlcywgY2hpbGRyZW4sIGVsZW1lbnQgfSkgPT4ge1xuICAgICAgLy8gcmV0dXJuIDxkaXYgey4uLmF0dHJpYnV0ZXN9PntjaGlsZHJlbn08L2Rpdj5cblxuICAgICAgY29uc3QgbWF0Y2hlZEVsZW1lbnQgPSBlbGVtZW50c1tlbGVtZW50LnR5cGVdXG4gICAgICBjb25zdCBFbGVtZW50ID0gbWF0Y2hlZEVsZW1lbnQ/LkVsZW1lbnRcblxuICAgICAgbGV0IGF0dHIgPSB7IC4uLmF0dHJpYnV0ZXMgfVxuXG4gICAgICAvLyB0aGlzIGNvbnZlcnRzIHRleHQgYWxpZ25tZW50IHRvIG1hcmdpbiB3aGVuIGRlYWxpbmcgd2l0aCB2b2lkIGVsZW1lbnRzXG4gICAgICBpZiAoZWxlbWVudC50ZXh0QWxpZ24pIHtcbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcgfHwgZWxlbWVudC50eXBlID09PSAndXBsb2FkJykge1xuICAgICAgICAgIHN3aXRjaCAoZWxlbWVudC50ZXh0QWxpZ24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICBhdHRyID0geyAuLi5hdHRyLCBzdHlsZTogeyBtYXJnaW5SaWdodDogJ2F1dG8nIH0gfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICBhdHRyID0geyAuLi5hdHRyLCBzdHlsZTogeyBtYXJnaW5MZWZ0OiAnYXV0bycgfSB9XG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgICAgICAgICBhdHRyID0geyAuLi5hdHRyLCBzdHlsZTogeyBtYXJnaW5MZWZ0OiAnYXV0bycsIG1hcmdpblJpZ2h0OiAnYXV0bycgfSB9XG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBhdHRyID0geyAuLi5hdHRyLCBzdHlsZTogeyB0ZXh0QWxpZ246IGVsZW1lbnQudGV4dEFsaWduIH0gfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09ICdsaScpIHtcbiAgICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudGV4dEFsaWduKSB7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgIGF0dHIgPSB7IC4uLmF0dHIsIHN0eWxlOiB7IGxpc3RTdHlsZVBvc2l0aW9uOiAnaW5zaWRlJywgdGV4dEFsaWduOiAncmlnaHQnIH0gfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbGlzdFN0eWxlUG9zaXRpb246ICdpbnNpZGUnLCB0ZXh0QWxpZ246ICdjZW50ZXInIH0gfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBhdHRyID0geyAuLi5hdHRyLCBzdHlsZTogeyBsaXN0U3R5bGVQb3NpdGlvbjogJ291dHNpZGUnLCB0ZXh0QWxpZ246ICdsZWZ0JyB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgdGV4dEFsaWduOiBlbGVtZW50LnRleHRBbGlnbiB9IH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoRWxlbWVudCkge1xuICAgICAgICBjb25zdCBlbCA9IChcbiAgICAgICAgICA8RWxlbWVudFByb3ZpZGVyXG4gICAgICAgICAgICBhdHRyaWJ1dGVzPXthdHRyfVxuICAgICAgICAgICAgY2hpbGROb2Rlcz17Y2hpbGRyZW59XG4gICAgICAgICAgICBlZGl0b3JSZWY9e2VkaXRvclJlZn1cbiAgICAgICAgICAgIGVsZW1lbnQ9e2VsZW1lbnR9XG4gICAgICAgICAgICBmaWVsZFByb3BzPXtwcm9wc31cbiAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICBzY2hlbWFQYXRoPXtzY2hlbWFQYXRofVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtFbGVtZW50fVxuICAgICAgICAgIDwvRWxlbWVudFByb3ZpZGVyPlxuICAgICAgICApXG5cbiAgICAgICAgcmV0dXJuIGVsXG4gICAgICB9XG5cbiAgICAgIHJldHVybiA8ZGl2IHsuLi5hdHRyfT57Y2hpbGRyZW59PC9kaXY+XG4gICAgfSxcbiAgICBbZWxlbWVudHMsIHBhdGgsIHByb3BzLCBzY2hlbWFQYXRoXSxcbiAgKVxuXG4gIGNvbnN0IHJlbmRlckxlYWYgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBhdHRyaWJ1dGVzLCBjaGlsZHJlbiwgbGVhZiB9KSA9PiB7XG4gICAgICBjb25zdCBtYXRjaGVkTGVhdmVzID0gT2JqZWN0LmVudHJpZXMobGVhdmVzKS5maWx0ZXIoKFtsZWFmTmFtZV0pID0+IGxlYWZbbGVhZk5hbWVdKVxuXG4gICAgICBpZiAobWF0Y2hlZExlYXZlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBtYXRjaGVkTGVhdmVzLnJlZHVjZShcbiAgICAgICAgICAocmVzdWx0LCBbLCBsZWFmQ29uZmlnXSwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxlYWZDb25maWc/LkxlYWYpIHtcbiAgICAgICAgICAgICAgY29uc3QgTGVhZiA9IGxlYWZDb25maWcuTGVhZlxuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPExlYWZQcm92aWRlclxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcz17YXR0cmlidXRlc31cbiAgICAgICAgICAgICAgICAgIGVkaXRvclJlZj17ZWRpdG9yUmVmfVxuICAgICAgICAgICAgICAgICAgZmllbGRQcm9wcz17cHJvcHN9XG4gICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICBsZWFmPXtsZWFmfVxuICAgICAgICAgICAgICAgICAgcGF0aD17cGF0aH1cbiAgICAgICAgICAgICAgICAgIHJlc3VsdD17cmVzdWx0fVxuICAgICAgICAgICAgICAgICAgc2NoZW1hUGF0aD17c2NoZW1hUGF0aH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7TGVhZn1cbiAgICAgICAgICAgICAgICA8L0xlYWZQcm92aWRlcj5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgICAgfSxcbiAgICAgICAgICA8c3BhbiB7Li4uYXR0cmlidXRlc30+e2NoaWxkcmVufTwvc3Bhbj4sXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIDxzcGFuIHsuLi5hdHRyaWJ1dGVzfT57Y2hpbGRyZW59PC9zcGFuPlxuICAgIH0sXG4gICAgW3BhdGgsIHByb3BzLCBzY2hlbWFQYXRoLCBsZWF2ZXNdLFxuICApXG5cbiAgLy8gQWxsIHNsYXRlIGNoYW5nZXMgZmlyZSB0aGUgb25DaGFuZ2UgZXZlbnRcbiAgLy8gaW5jbHVkaW5nIHNlbGVjdGlvbiBjaGFuZ2VzXG4gIC8vIHNvIHdlIHdpbGwgZmlsdGVyIHRoZSBzZXRfc2VsZWN0aW9uIG9wZXJhdGlvbnMgb3V0XG4gIC8vIGFuZCBvbmx5IGZpcmUgc2V0VmFsdWUgd2hlbiBvbkNoYW5nZSBpcyBiZWNhdXNlIG9mIHZhbHVlXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWw6IHVua25vd24pID0+IHtcbiAgICAgIGNvbnN0IG9wcyA9IGVkaXRvcj8ub3BlcmF0aW9ucy5maWx0ZXIoKG86IEJhc2VPcGVyYXRpb24pID0+IHtcbiAgICAgICAgaWYgKG8pIHtcbiAgICAgICAgICByZXR1cm4gby50eXBlICE9PSAnc2V0X3NlbGVjdGlvbidcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH0pXG5cbiAgICAgIGlmIChvcHMgJiYgQXJyYXkuaXNBcnJheShvcHMpICYmIG9wcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghcmVhZE9ubHkgJiYgdmFsICE9PSBkZWZhdWx0UmljaFRleHRWYWx1ZSAmJiB2YWwgIT09IHZhbHVlKSB7XG4gICAgICAgICAgc2V0VmFsdWUodmFsKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbZWRpdG9yPy5vcGVyYXRpb25zLCByZWFkT25seSwgc2V0VmFsdWUsIHZhbHVlXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZnVuY3Rpb24gc2V0Q2xpY2thYmxlU3RhdGUoY2xpY2tTdGF0ZTogJ2Rpc2FibGVkJyB8ICdlbmFibGVkJykge1xuICAgICAgY29uc3Qgc2VsZWN0b3JzID0gJ2J1dHRvbiwgYSwgW3JvbGU9XCJidXR0b25cIl0nXG4gICAgICBjb25zdCB0b29sYmFyQnV0dG9uczogKEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTEJ1dHRvbkVsZW1lbnQpW10gPVxuICAgICAgICB0b29sYmFyUmVmLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3JzKVxuXG4gICAgICA7KHRvb2xiYXJCdXR0b25zIHx8IFtdKS5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICBjb25zdCBpc0J1dHRvbiA9IGNoaWxkLnRhZ05hbWUgPT09ICdCVVRUT04nXG4gICAgICAgIGNvbnN0IGlzRGlzYWJsaW5nID0gY2xpY2tTdGF0ZSA9PT0gJ2Rpc2FibGVkJ1xuICAgICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ3RhYkluZGV4JywgaXNEaXNhYmxpbmcgPyAnLTEnIDogJzAnKVxuICAgICAgICBpZiAoaXNCdXR0b24pIGNoaWxkLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCBpc0Rpc2FibGluZyA/ICdkaXNhYmxlZCcgOiBudWxsKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocmVhZE9ubHkpIHtcbiAgICAgIHNldENsaWNrYWJsZVN0YXRlKCdkaXNhYmxlZCcpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZWFkT25seSkge1xuICAgICAgICBzZXRDbGlja2FibGVTdGF0ZSgnZW5hYmxlZCcpXG4gICAgICB9XG4gICAgfVxuICB9LCBbcmVhZE9ubHldKVxuXG4gIC8vIHVzZUVmZmVjdCgoKSA9PiB7XG4gIC8vICAgLy8gSWYgdGhlcmUgaXMgYSBjaGFuZ2UgdG8gdGhlIGluaXRpYWwgdmFsdWUsIHdlIG5lZWQgdG8gcmVzZXQgU2xhdGUgaGlzdG9yeVxuICAvLyAgIC8vIGFuZCBjbGVhciBzZWxlY3Rpb24gYmVjYXVzZSB0aGUgb2xkIHNlbGVjdGlvbiBtYXkgbm8gbG9uZ2VyIGJlIHZhbGlkXG4gIC8vICAgLy8gYXMgcmV0dXJuZWQgSlNPTiBtYXkgYmUgbW9kaWZpZWQgaW4gaG9va3MgYW5kIGhhdmUgYSBkaWZmZXJlbnQgc2hhcGVcbiAgLy8gICBpZiAoZWRpdG9yLnNlbGVjdGlvbikge1xuICAvLyAgICAgY29uc29sZS5sb2coJ2Rlc2VsZWN0aW5nJyk7XG4gIC8vICAgICBSZWFjdEVkaXRvci5kZXNlbGVjdChlZGl0b3IpO1xuICAvLyAgIH1cbiAgLy8gfSwgW3BhdGgsIGVkaXRvcl0pO1xuXG4gIGNvbnN0IGNsYXNzZXMgPSBbXG4gICAgYmFzZUNsYXNzLFxuICAgICdmaWVsZC10eXBlJyxcbiAgICBjbGFzc05hbWUsXG4gICAgc2hvd0Vycm9yICYmICdlcnJvcicsXG4gICAgcmVhZE9ubHkgJiYgYCR7YmFzZUNsYXNzfS0tcmVhZC1vbmx5YCxcbiAgXVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuam9pbignICcpXG5cbiAgbGV0IHZhbHVlVG9SZW5kZXIgPSB2YWx1ZVxuXG4gIGlmICh0eXBlb2YgdmFsdWVUb1JlbmRlciA9PT0gJ3N0cmluZycpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkSlNPTiA9IEpTT04ucGFyc2UodmFsdWVUb1JlbmRlcilcbiAgICAgIHZhbHVlVG9SZW5kZXIgPSBwYXJzZWRKU09OXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB2YWx1ZVRvUmVuZGVyID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGlmICghdmFsdWVUb1JlbmRlcikgdmFsdWVUb1JlbmRlciA9IGRlZmF1bHRSaWNoVGV4dFZhbHVlXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzZXN9XG4gICAgICBzdHlsZT17e1xuICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X193cmFwYH0+XG4gICAgICAgIHtFcnJvcn1cbiAgICAgICAge0xhYmVsfVxuICAgICAgICA8U2xhdGVcbiAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICBrZXk9e0pTT04uc3RyaW5naWZ5KHsgaW5pdGlhbFZhbHVlLCBwYXRoIH0pfSAvLyBtYWtlcyBzdXJlIHNsYXRlIGlzIGNvbXBsZXRlbHkgcmUtcmVuZGVyZWQgd2hlbiBpbml0aWFsVmFsdWUgY2hhbmdlcywgYnlwYXNzaW5nIHRoZSBzbGF0ZS1pbnRlcm5hbCB2YWx1ZSBtZW1vaXphdGlvbi4gVGhhdCB3YXksIGV4dGVybmFsIGNoYW5nZXMgdG8gdGhlIGZvcm0gd2lsbCB1cGRhdGUgdGhlIGVkaXRvclxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlVG9SZW5kZXIgYXMgYW55W119XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd3JhcHBlcmB9PlxuICAgICAgICAgICAge09iamVjdC5rZXlzKGVsZW1lbnRzKT8ubGVuZ3RoICsgT2JqZWN0LmtleXMobGVhdmVzKT8ubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1tgJHtiYXNlQ2xhc3N9X190b29sYmFyYCwgZHJhd2VySXNPcGVuICYmIGAke2Jhc2VDbGFzc31fX2RyYXdlcklzT3BlbmBdXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgICAuam9pbignICcpfVxuICAgICAgICAgICAgICAgIHJlZj17dG9vbGJhclJlZn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b29sYmFyLXdyYXBgfT5cbiAgICAgICAgICAgICAgICAgIHtPYmplY3QudmFsdWVzKGVsZW1lbnRzKS5tYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgQnV0dG9uID0gZWxlbWVudD8uQnV0dG9uXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEJ1dHRvbikge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8RWxlbWVudEJ1dHRvblByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkUHJvcHM9e3Byb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2VsZW1lbnQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD17cGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hUGF0aD17c2NoZW1hUGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge0J1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRWxlbWVudEJ1dHRvblByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIHtPYmplY3QudmFsdWVzKGxlYXZlcykubWFwKChsZWFmKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IEJ1dHRvbiA9IGxlYWY/LkJ1dHRvblxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPExlYWZCdXR0b25Qcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFByb3BzPXtwcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtsZWFmLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYVBhdGg9e3NjaGVtYVBhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0xlYWZCdXR0b25Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19lZGl0b3JgfSByZWY9e2VkaXRvclJlZn0+XG4gICAgICAgICAgICAgIDxFZGl0YWJsZVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW5wdXRgfVxuICAgICAgICAgICAgICAgIGlkPXtgZmllbGQtJHtwYXRoLnJlcGxhY2UoL1xcLi9nLCAnX18nKX1gfVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dCgnXFxuJylcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSBOb2RlLmRlc2NlbmRhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoLnNsaWNlKDAsIC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgICAgICBpZiAoU2xhdGVFbGVtZW50LmlzRWxlbWVudChzZWxlY3RlZEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBbGxvdyBoYXJkIGVudGVyIHRvIFwiYnJlYWsgb3V0XCIgb2YgY2VydGFpbiBlbGVtZW50c1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVkaXRvci5zaG91bGRCcmVha091dE9uRW50ZXIoc2VsZWN0ZWRFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTGVhZiA9IE5vZGUuZGVzY2VuZGFudChlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQuaXNUZXh0KHNlbGVjdGVkTGVhZikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoc2VsZWN0ZWRMZWFmLnRleHQpLmxlbmd0aCA9PT0gZWRpdG9yLnNlbGVjdGlvbi5hbmNob3Iub2Zmc2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCB7IGNoaWxkcmVuOiBbeyB0ZXh0OiAnJyB9XSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc3BsaXROb2RlcyhlZGl0b3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHt9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IE5vZGUuZGVzY2VuZGFudChcbiAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aC5zbGljZSgwLCAtMSksXG4gICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICBpZiAoU2xhdGVFbGVtZW50LmlzRWxlbWVudChzZWxlY3RlZEVsZW1lbnQpICYmIHNlbGVjdGVkRWxlbWVudC50eXBlID09PSAnbGknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRMZWFmID0gTm9kZS5kZXNjZW5kYW50KGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aClcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoVGV4dC5pc1RleHQoc2VsZWN0ZWRMZWFmKSAmJiBTdHJpbmcoc2VsZWN0ZWRMZWFmLnRleHQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy51bndyYXBOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2g6IChuKSA9PiBTbGF0ZUVsZW1lbnQuaXNFbGVtZW50KG4pICYmIGxpc3RUeXBlcy5pbmNsdWRlcyhuLnR5cGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiAnbG93ZXN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3BsaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyB0eXBlOiB1bmRlZmluZWQgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWRpdG9yLmlzVm9pZChzZWxlY3RlZEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlcyhlZGl0b3IpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoaG90a2V5cykuZm9yRWFjaCgoaG90a2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0hvdGtleShob3RrZXksIGV2ZW50IGFzIGFueSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFyayA9IGhvdGtleXNbaG90a2V5XVxuICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUxlYWYoZWRpdG9yLCBtYXJrKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2dldFRyYW5zbGF0aW9uKHBsYWNlaG9sZGVyLCBpMThuKX1cbiAgICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgcmVuZGVyRWxlbWVudD17cmVuZGVyRWxlbWVudH1cbiAgICAgICAgICAgICAgICByZW5kZXJMZWFmPXtyZW5kZXJMZWFmfVxuICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2tcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1NsYXRlPlxuICAgICAgICB7RGVzY3JpcHRpb259XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgUmljaFRleHQgPSB3aXRoQ29uZGl0aW9uKFJpY2hUZXh0RmllbGQpXG4iXSwibmFtZXMiOlsiZ2V0VHJhbnNsYXRpb24iLCJ1c2VFZGl0RGVwdGgiLCJ1c2VGaWVsZCIsInVzZVRyYW5zbGF0aW9uIiwid2l0aENvbmRpdGlvbiIsImlzSG90a2V5IiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJOb2RlIiwiRWxlbWVudCIsIlNsYXRlRWxlbWVudCIsIlRleHQiLCJUcmFuc2Zvcm1zIiwiY3JlYXRlRWRpdG9yIiwid2l0aEhpc3RvcnkiLCJFZGl0YWJsZSIsIlNsYXRlIiwid2l0aFJlYWN0IiwiZGVmYXVsdFJpY2hUZXh0VmFsdWUiLCJyaWNoVGV4dFZhbGlkYXRlIiwibGlzdFR5cGVzIiwiaG90a2V5cyIsInRvZ2dsZUxlYWYiLCJ3aXRoRW50ZXJCcmVha091dCIsIndpdGhIVE1MIiwiRWxlbWVudEJ1dHRvblByb3ZpZGVyIiwiRWxlbWVudFByb3ZpZGVyIiwiTGVhZkJ1dHRvblByb3ZpZGVyIiwiTGVhZlByb3ZpZGVyIiwiYmFzZUNsYXNzIiwiUmljaFRleHRGaWVsZCIsInByb3BzIiwibmFtZSIsIkRlc2NyaXB0aW9uIiwiRXJyb3IiLCJMYWJlbCIsImNsYXNzTmFtZSIsImVsZW1lbnRzIiwibGVhdmVzIiwicGF0aCIsInBhdGhGcm9tUHJvcHMiLCJwbGFjZWhvbGRlciIsInBsdWdpbnMiLCJyZWFkT25seSIsInJlcXVpcmVkIiwic3R5bGUiLCJ2YWxpZGF0ZSIsIndpZHRoIiwiaTE4biIsImVkaXRvclJlZiIsInRvb2xiYXJSZWYiLCJkcmF3ZXJEZXB0aCIsImRyYXdlcklzT3BlbiIsIm1lbW9pemVkVmFsaWRhdGUiLCJ2YWx1ZSIsInZhbGlkYXRpb25PcHRpb25zIiwiaW5pdGlhbFZhbHVlIiwic2NoZW1hUGF0aCIsInNldFZhbHVlIiwic2hvd0Vycm9yIiwiZWRpdG9yIiwiQ3JlYXRlZEVkaXRvciIsImxlbmd0aCIsInJlZHVjZSIsImVkaXRvcldpdGhQbHVnaW5zIiwicGx1Z2luIiwicmVuZGVyRWxlbWVudCIsImF0dHJpYnV0ZXMiLCJjaGlsZHJlbiIsImVsZW1lbnQiLCJtYXRjaGVkRWxlbWVudCIsInR5cGUiLCJhdHRyIiwidGV4dEFsaWduIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5MZWZ0IiwibGlzdFN0eWxlUG9zaXRpb24iLCJlbCIsImNoaWxkTm9kZXMiLCJmaWVsZFByb3BzIiwiZGl2IiwicmVuZGVyTGVhZiIsImxlYWYiLCJtYXRjaGVkTGVhdmVzIiwiT2JqZWN0IiwiZW50cmllcyIsImZpbHRlciIsImxlYWZOYW1lIiwicmVzdWx0IiwibGVhZkNvbmZpZyIsImkiLCJMZWFmIiwia2V5Iiwic3BhbiIsImhhbmRsZUNoYW5nZSIsInZhbCIsIm9wcyIsIm9wZXJhdGlvbnMiLCJvIiwiQXJyYXkiLCJpc0FycmF5Iiwic2V0Q2xpY2thYmxlU3RhdGUiLCJjbGlja1N0YXRlIiwic2VsZWN0b3JzIiwidG9vbGJhckJ1dHRvbnMiLCJjdXJyZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJjaGlsZCIsImlzQnV0dG9uIiwidGFnTmFtZSIsImlzRGlzYWJsaW5nIiwic2V0QXR0cmlidXRlIiwiY2xhc3NlcyIsIkJvb2xlYW4iLCJqb2luIiwidmFsdWVUb1JlbmRlciIsInBhcnNlZEpTT04iLCJKU09OIiwicGFyc2UiLCJlcnIiLCJzdHJpbmdpZnkiLCJvbkNoYW5nZSIsImtleXMiLCJyZWYiLCJ2YWx1ZXMiLCJtYXAiLCJCdXR0b24iLCJpZCIsInJlcGxhY2UiLCJvbktleURvd24iLCJldmVudCIsInNoaWZ0S2V5IiwicHJldmVudERlZmF1bHQiLCJpbnNlcnRUZXh0Iiwic2VsZWN0ZWRFbGVtZW50IiwiZGVzY2VuZGFudCIsInNlbGVjdGlvbiIsImFuY2hvciIsInNsaWNlIiwiaXNFbGVtZW50Iiwic2hvdWxkQnJlYWtPdXRPbkVudGVyIiwic2VsZWN0ZWRMZWFmIiwiaXNUZXh0IiwiU3RyaW5nIiwidGV4dCIsIm9mZnNldCIsImluc2VydE5vZGVzIiwic3BsaXROb2RlcyIsInNldE5vZGVzIiwidW53cmFwTm9kZXMiLCJtYXRjaCIsIm4iLCJpbmNsdWRlcyIsIm1vZGUiLCJzcGxpdCIsInVuZGVmaW5lZCIsImlzVm9pZCIsInJlbW92ZU5vZGVzIiwiaG90a2V5IiwibWFyayIsInNwZWxsQ2hlY2siLCJSaWNoVGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFPQSxTQUFTQSxjQUFjLFFBQVEsMkJBQTBCO0FBQ3pELFNBQVNDLFlBQVksRUFBRUMsUUFBUSxFQUFFQyxjQUFjLFFBQVEsaUJBQWdCO0FBQ3ZFLFNBQVNDLGFBQWEsUUFBUSx1QkFBc0I7QUFDcEQsT0FBT0MsY0FBYyxZQUFXO0FBQ2hDLE9BQU9DLFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBUSxRQUFPO0FBQ3RFLFNBQVNDLElBQUksRUFBRUMsV0FBV0MsWUFBWSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsWUFBWSxRQUFRLFFBQU87QUFDckYsU0FBU0MsV0FBVyxRQUFRLGdCQUFlO0FBQzNDLFNBQVNDLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxTQUFTLFFBQVEsY0FBYTtBQUt4RCxTQUFTQyxvQkFBb0IsUUFBUSwwQkFBeUI7QUFDOUQsU0FBU0MsZ0JBQWdCLFFBQVEsd0JBQXVCO0FBQ3hELFNBQVNDLFNBQVMsUUFBUSwwQkFBeUI7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createFeatureMap.d.ts","sourceRoot":"","sources":["../../src/field/createFeatureMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"createFeatureMap.d.ts","sourceRoot":"","sources":["../../src/field/createFeatureMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,eAAO,MAAM,gBAAgB,yBACL,IAAI,MAAM,EAAE,MAAM,SAAS,CAAC,KACjD,eA4CF,CAAA"}
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "createFeatureMap", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return createFeatureMap;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const createFeatureMap = (richTextComponentMap)=>{
|
|
1
|
+
export const createFeatureMap = (richTextComponentMap)=>{
|
|
12
2
|
const features = {
|
|
13
3
|
elements: {},
|
|
14
4
|
leaves: {},
|
|
@@ -46,4 +36,4 @@ const createFeatureMap = (richTextComponentMap)=>{
|
|
|
46
36
|
return features;
|
|
47
37
|
};
|
|
48
38
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZC9jcmVhdGVGZWF0dXJlTWFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5hYmxlZEZlYXR1cmVzIH0gZnJvbSAnLi90eXBlcy5kLnRzJ1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRmVhdHVyZU1hcCA9IChcbiAgcmljaFRleHRDb21wb25lbnRNYXA6IE1hcDxzdHJpbmcsIFJlYWN0LlJlYWN0Tm9kZT4sXG4pOiBFbmFibGVkRmVhdHVyZXMgPT4ge1xuICBjb25zdCBmZWF0dXJlczogRW5hYmxlZEZlYXR1cmVzID0ge1xuICAgIGVsZW1lbnRzOiB7fSxcbiAgICBsZWF2ZXM6IHt9LFxuICAgIHBsdWdpbnM6IFtdLFxuICB9XG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcmljaFRleHRDb21wb25lbnRNYXApIHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2xlYWYuYnV0dG9uJykgfHwga2V5LnN0YXJ0c1dpdGgoJ2xlYWYuY29tcG9uZW50LicpKSB7XG4gICAgICBjb25zdCBsZWFmTmFtZSA9IGtleS5yZXBsYWNlKCdsZWFmLmJ1dHRvbi4nLCAnJykucmVwbGFjZSgnbGVhZi5jb21wb25lbnQuJywgJycpXG5cbiAgICAgIGlmICghZmVhdHVyZXMubGVhdmVzW2xlYWZOYW1lXSkge1xuICAgICAgICBmZWF0dXJlcy5sZWF2ZXNbbGVhZk5hbWVdID0ge1xuICAgICAgICAgIG5hbWU6IGxlYWZOYW1lLFxuICAgICAgICAgIEJ1dHRvbjogbnVsbCxcbiAgICAgICAgICBMZWFmOiBudWxsLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnbGVhZi5idXR0b24uJykpIGZlYXR1cmVzLmxlYXZlc1tsZWFmTmFtZV0uQnV0dG9uID0gdmFsdWVcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnbGVhZi5jb21wb25lbnQuJykpIGZlYXR1cmVzLmxlYXZlc1tsZWFmTmFtZV0uTGVhZiA9IHZhbHVlXG4gICAgfVxuXG4gICAgaWYgKGtleS5zdGFydHNXaXRoKCdlbGVtZW50LmJ1dHRvbi4nKSB8fCBrZXkuc3RhcnRzV2l0aCgnZWxlbWVudC5jb21wb25lbnQuJykpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnROYW1lID0ga2V5LnJlcGxhY2UoJ2VsZW1lbnQuYnV0dG9uLicsICcnKS5yZXBsYWNlKCdlbGVtZW50LmNvbXBvbmVudC4nLCAnJylcblxuICAgICAgaWYgKCFmZWF0dXJlcy5lbGVtZW50c1tlbGVtZW50TmFtZV0pIHtcbiAgICAgICAgZmVhdHVyZXMuZWxlbWVudHNbZWxlbWVudE5hbWVdID0ge1xuICAgICAgICAgIG5hbWU6IGVsZW1lbnROYW1lLFxuICAgICAgICAgIEJ1dHRvbjogbnVsbCxcbiAgICAgICAgICBFbGVtZW50OiBudWxsLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZWxlbWVudC5idXR0b24uJykpIGZlYXR1cmVzLmVsZW1lbnRzW2VsZW1lbnROYW1lXS5CdXR0b24gPSB2YWx1ZVxuICAgICAgaWYgKGtleS5zdGFydHNXaXRoKCdlbGVtZW50LmNvbXBvbmVudC4nKSkgZmVhdHVyZXMuZWxlbWVudHNbZWxlbWVudE5hbWVdLkVsZW1lbnQgPSB2YWx1ZVxuICAgIH1cblxuICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnbGVhZi5wbHVnaW4uJykgfHwga2V5LnN0YXJ0c1dpdGgoJ2VsZW1lbnQucGx1Z2luLicpKSB7XG4gICAgICBmZWF0dXJlcy5wbHVnaW5zLnB1c2godmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZlYXR1cmVzXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlRmVhdHVyZU1hcCIsInJpY2hUZXh0Q29tcG9uZW50TWFwIiwiZmVhdHVyZXMiLCJlbGVtZW50cyIsImxlYXZlcyIsInBsdWdpbnMiLCJrZXkiLCJ2YWx1ZSIsInN0YXJ0c1dpdGgiLCJsZWFmTmFtZSIsInJlcGxhY2UiLCJuYW1lIiwiQnV0dG9uIiwiTGVhZiIsImVsZW1lbnROYW1lIiwiRWxlbWVudCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sTUFBTUEsbUJBQW1CLENBQzlCQztJQUVBLE1BQU1DLFdBQTRCO1FBQ2hDQyxVQUFVLENBQUM7UUFDWEMsUUFBUSxDQUFDO1FBQ1RDLFNBQVMsRUFBRTtJQUNiO0lBRUEsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSU4scUJBQXNCO1FBQy9DLElBQUlLLElBQUlFLFVBQVUsQ0FBQyxrQkFBa0JGLElBQUlFLFVBQVUsQ0FBQyxvQkFBb0I7WUFDdEUsTUFBTUMsV0FBV0gsSUFBSUksT0FBTyxDQUFDLGdCQUFnQixJQUFJQSxPQUFPLENBQUMsbUJBQW1CO1lBRTVFLElBQUksQ0FBQ1IsU0FBU0UsTUFBTSxDQUFDSyxTQUFTLEVBQUU7Z0JBQzlCUCxTQUFTRSxNQUFNLENBQUNLLFNBQVMsR0FBRztvQkFDMUJFLE1BQU1GO29CQUNORyxRQUFRO29CQUNSQyxNQUFNO2dCQUNSO1lBQ0Y7WUFFQSxJQUFJUCxJQUFJRSxVQUFVLENBQUMsaUJBQWlCTixTQUFTRSxNQUFNLENBQUNLLFNBQVMsQ0FBQ0csTUFBTSxHQUFHTDtZQUN2RSxJQUFJRCxJQUFJRSxVQUFVLENBQUMsb0JBQW9CTixTQUFTRSxNQUFNLENBQUNLLFNBQVMsQ0FBQ0ksSUFBSSxHQUFHTjtRQUMxRTtRQUVBLElBQUlELElBQUlFLFVBQVUsQ0FBQyxzQkFBc0JGLElBQUlFLFVBQVUsQ0FBQyx1QkFBdUI7WUFDN0UsTUFBTU0sY0FBY1IsSUFBSUksT0FBTyxDQUFDLG1CQUFtQixJQUFJQSxPQUFPLENBQUMsc0JBQXNCO1lBRXJGLElBQUksQ0FBQ1IsU0FBU0MsUUFBUSxDQUFDVyxZQUFZLEVBQUU7Z0JBQ25DWixTQUFTQyxRQUFRLENBQUNXLFlBQVksR0FBRztvQkFDL0JILE1BQU1HO29CQUNORixRQUFRO29CQUNSRyxTQUFTO2dCQUNYO1lBQ0Y7WUFFQSxJQUFJVCxJQUFJRSxVQUFVLENBQUMsb0JBQW9CTixTQUFTQyxRQUFRLENBQUNXLFlBQVksQ0FBQ0YsTUFBTSxHQUFHTDtZQUMvRSxJQUFJRCxJQUFJRSxVQUFVLENBQUMsdUJBQXVCTixTQUFTQyxRQUFRLENBQUNXLFlBQVksQ0FBQ0MsT0FBTyxHQUFHUjtRQUNyRjtRQUVBLElBQUlELElBQUlFLFVBQVUsQ0FBQyxtQkFBbUJGLElBQUlFLFVBQVUsQ0FBQyxvQkFBb0I7WUFDdkVOLFNBQVNHLE9BQU8sQ0FBQ1csSUFBSSxDQUFDVDtRQUN4QjtJQUNGO0lBRUEsT0FBT0w7QUFDVCxFQUFDIn0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ButtonProps } from './types';
|
|
2
|
+
import type { ButtonProps } from './types.d.ts';
|
|
3
3
|
import '../buttons.scss';
|
|
4
4
|
export declare const baseClass = "rich-text__button";
|
|
5
|
-
declare const ElementButton: React.FC<ButtonProps>;
|
|
6
|
-
export default ElementButton;
|
|
5
|
+
export declare const ElementButton: React.FC<ButtonProps>;
|
|
7
6
|
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/field/elements/Button.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAGpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/field/elements/Button.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAGpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,iBAAiB,CAAA;AAIxB,eAAO,MAAM,SAAS,sBAAsB,CAAA;AAE5C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAmC/C,CAAA"}
|