@payloadcms/richtext-slate 3.0.0-alpha.2 → 3.0.0-alpha.20
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.js +4 -19
- package/dist/data/defaultValue.js +2 -12
- package/dist/data/populate.js +2 -12
- package/dist/data/recurseNestedFields.js +12 -22
- package/dist/data/richTextRelationshipPromise.js +9 -27
- package/dist/data/validation.js +4 -14
- package/dist/field/RichText.js +73 -129
- package/dist/field/createFeatureMap.js +2 -12
- package/dist/field/elements/Button.js +16 -80
- package/dist/field/elements/EnabledRelationshipsCondition.js +8 -59
- package/dist/field/elements/ListButton.js +13 -77
- package/dist/field/elements/areAllChildrenElements.js +4 -14
- package/dist/field/elements/blockquote/Blockquote.js +7 -22
- package/dist/field/elements/blockquote/index.js +9 -24
- package/dist/field/elements/getCommonBlock.js +9 -19
- package/dist/field/elements/h1/Heading1.js +6 -21
- package/dist/field/elements/h1/index.js +9 -24
- package/dist/field/elements/h2/Heading2.js +6 -21
- package/dist/field/elements/h2/index.js +9 -24
- package/dist/field/elements/h3/Heading3.js +6 -21
- package/dist/field/elements/h3/index.js +9 -24
- package/dist/field/elements/h4/Heading4.js +6 -21
- package/dist/field/elements/h4/index.js +9 -24
- package/dist/field/elements/h5/Heading5.js +6 -21
- package/dist/field/elements/h5/index.js +9 -24
- package/dist/field/elements/h6/Heading6.js +6 -21
- package/dist/field/elements/h6/index.js +9 -24
- package/dist/field/elements/indent/Button.js +60 -115
- package/dist/field/elements/indent/Element.js +6 -21
- package/dist/field/elements/indent/index.js +8 -18
- package/dist/field/elements/indent/shared.js +2 -12
- package/dist/field/elements/index.js +32 -47
- package/dist/field/elements/injectVoid.js +12 -22
- package/dist/field/elements/isActive.js +6 -16
- package/dist/field/elements/isBlockElement.js +9 -14
- package/dist/field/elements/isLastSelectedElementEmpty.js +8 -18
- package/dist/field/elements/isListActive.js +8 -18
- package/dist/field/elements/isWithinListItem.js +5 -15
- package/dist/field/elements/li/ListItem.js +9 -65
- package/dist/field/elements/li/index.js +4 -14
- 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.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.js +8 -18
- 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.js +2 -12
- package/dist/field/elements/ol/OrderedList.js +7 -22
- package/dist/field/elements/ol/index.js +9 -24
- package/dist/field/elements/relationship/Button/index.js +22 -78
- package/dist/field/elements/relationship/Element/index.js +45 -96
- package/dist/field/elements/relationship/index.js +10 -25
- 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.js +11 -26
- package/dist/field/elements/toggle.js +13 -28
- package/dist/field/elements/toggleList.js +27 -42
- package/dist/field/elements/types.js +2 -5
- package/dist/field/elements/ul/UnorderedList.js +7 -22
- package/dist/field/elements/ul/index.js +9 -24
- package/dist/field/elements/unwrapList.js +13 -28
- package/dist/field/elements/upload/Button/index.js +21 -77
- package/dist/field/elements/upload/Element/UploadDrawer/index.js +33 -84
- package/dist/field/elements/upload/Element/index.js +57 -108
- package/dist/field/elements/upload/index.js +10 -25
- 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/enablePlugins.js +8 -23
- package/dist/field/hotkeys.js +2 -12
- package/dist/field/icons/AlignCenter/index.js +5 -20
- package/dist/field/icons/AlignLeft/index.js +5 -20
- package/dist/field/icons/AlignRight/index.js +5 -20
- package/dist/field/icons/Blockquote/index.js +6 -21
- package/dist/field/icons/Bold/index.js +6 -21
- package/dist/field/icons/Code/index.js +5 -20
- package/dist/field/icons/IndentLeft/index.js +9 -24
- package/dist/field/icons/IndentRight/index.js +9 -24
- package/dist/field/icons/Italic/index.js +6 -21
- package/dist/field/icons/Link/index.js +7 -22
- package/dist/field/icons/OrderedList/index.js +6 -21
- package/dist/field/icons/Relationship/index.js +8 -23
- package/dist/field/icons/Strikethrough/index.js +6 -21
- package/dist/field/icons/Underline/index.js +6 -21
- package/dist/field/icons/UnorderedList/index.js +6 -21
- package/dist/field/icons/Upload/index.js +7 -22
- package/dist/field/icons/headings/H1/index.js +6 -21
- package/dist/field/icons/headings/H2/index.js +6 -21
- package/dist/field/icons/headings/H3/index.js +6 -21
- package/dist/field/icons/headings/H4/index.js +6 -21
- package/dist/field/icons/headings/H5/index.js +6 -21
- package/dist/field/icons/headings/H6/index.js +6 -21
- package/dist/field/icons/headings/index.js +14 -29
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +20 -72
- package/dist/field/leaves/Button.js +11 -26
- package/dist/field/leaves/bold/Bold/index.js +6 -21
- package/dist/field/leaves/bold/index.js +9 -24
- package/dist/field/leaves/code/Code/index.js +6 -21
- package/dist/field/leaves/code/index.js +9 -24
- package/dist/field/leaves/index.js +12 -27
- package/dist/field/leaves/isActive.js +4 -14
- package/dist/field/leaves/italic/Italic/index.js +6 -21
- package/dist/field/leaves/italic/index.js +9 -24
- package/dist/field/leaves/strikethrough/Strikethrough/index.js +6 -21
- package/dist/field/leaves/strikethrough/index.js +9 -24
- package/dist/field/leaves/toggle.js +7 -22
- package/dist/field/leaves/underline/Underline/index.js +6 -21
- package/dist/field/leaves/underline/index.js +9 -24
- package/dist/field/mergeCustomFunctions.js +3 -13
- package/dist/field/plugins/withEnterBreakOut.js +2 -12
- package/dist/field/plugins/withHTML.js +8 -18
- 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.js +2 -5
- package/dist/generateComponentMap.d.ts.map +1 -1
- package/dist/generateComponentMap.js +34 -51
- package/dist/generateSchemaMap.js +19 -34
- package/dist/index.js +20 -52
- package/dist/scss/toastify.scss +0 -1
- package/dist/types.js +2 -12
- package/dist/utilities/useSlatePlugin.js +6 -16
- package/package.json +15 -8
|
@@ -1,150 +1,95 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const _getCommonBlock = require("../getCommonBlock");
|
|
19
|
-
const _isActive = /*#__PURE__*/ _interop_require_default(require("../isActive"));
|
|
20
|
-
const _isBlockElement = require("../isBlockElement");
|
|
21
|
-
const _listTypes = /*#__PURE__*/ _interop_require_default(require("../listTypes"));
|
|
22
|
-
const _unwrapList = require("../unwrapList");
|
|
23
|
-
const _shared = require("./shared");
|
|
24
|
-
function _interop_require_default(obj) {
|
|
25
|
-
return obj && obj.__esModule ? obj : {
|
|
26
|
-
default: obj
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
30
|
-
if (typeof WeakMap !== "function") return null;
|
|
31
|
-
var cacheBabelInterop = new WeakMap();
|
|
32
|
-
var cacheNodeInterop = new WeakMap();
|
|
33
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
34
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
35
|
-
})(nodeInterop);
|
|
36
|
-
}
|
|
37
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
38
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
39
|
-
return obj;
|
|
40
|
-
}
|
|
41
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
42
|
-
return {
|
|
43
|
-
default: obj
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
47
|
-
if (cache && cache.has(obj)) {
|
|
48
|
-
return cache.get(obj);
|
|
49
|
-
}
|
|
50
|
-
var newObj = {
|
|
51
|
-
__proto__: null
|
|
52
|
-
};
|
|
53
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
54
|
-
for(var key in obj){
|
|
55
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
56
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
57
|
-
if (desc && (desc.get || desc.set)) {
|
|
58
|
-
Object.defineProperty(newObj, key, desc);
|
|
59
|
-
} else {
|
|
60
|
-
newObj[key] = obj[key];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
newObj.default = obj;
|
|
65
|
-
if (cache) {
|
|
66
|
-
cache.set(obj, newObj);
|
|
67
|
-
}
|
|
68
|
-
return newObj;
|
|
69
|
-
}
|
|
70
|
-
const IndentButton = ()=>{
|
|
71
|
-
const editor = (0, _slatereact.useSlate)();
|
|
72
|
-
const handleIndent = (0, _react.useCallback)((e, dir)=>{
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { Editor, Element, Text, Transforms } from 'slate';
|
|
5
|
+
import { ReactEditor, useSlate } from 'slate-react';
|
|
6
|
+
import IndentLeft from '../../icons/IndentLeft';
|
|
7
|
+
import IndentRight from '../../icons/IndentRight';
|
|
8
|
+
import { baseClass } from '../Button';
|
|
9
|
+
import { getCommonBlock } from '../getCommonBlock';
|
|
10
|
+
import isElementActive from '../isActive';
|
|
11
|
+
import { isBlockElement } from '../isBlockElement';
|
|
12
|
+
import listTypes from '../listTypes';
|
|
13
|
+
import { unwrapList } from '../unwrapList';
|
|
14
|
+
import { indentType } from './shared';
|
|
15
|
+
export const IndentButton = ()=>{
|
|
16
|
+
const editor = useSlate();
|
|
17
|
+
const handleIndent = useCallback((e, dir)=>{
|
|
73
18
|
e.preventDefault();
|
|
74
19
|
if (dir === 'left') {
|
|
75
|
-
if ((
|
|
76
|
-
const [, listPath] =
|
|
77
|
-
const matchedParentList =
|
|
20
|
+
if (isElementActive(editor, 'li')) {
|
|
21
|
+
const [, listPath] = getCommonBlock(editor, (n)=>Element.isElement(n) && listTypes.includes(n.type));
|
|
22
|
+
const matchedParentList = Editor.above(editor, {
|
|
78
23
|
at: listPath,
|
|
79
|
-
match: (n)=>!
|
|
24
|
+
match: (n)=>!Editor.isEditor(n) && isBlockElement(editor, n)
|
|
80
25
|
});
|
|
81
26
|
if (matchedParentList) {
|
|
82
27
|
const [parentListItem, parentListItemPath] = matchedParentList;
|
|
83
28
|
if (parentListItem.children.length > 1) {
|
|
84
29
|
// Remove nested list
|
|
85
|
-
|
|
30
|
+
Transforms.unwrapNodes(editor, {
|
|
86
31
|
at: parentListItemPath,
|
|
87
32
|
match: (node, path)=>{
|
|
88
|
-
const matches = !
|
|
33
|
+
const matches = !Editor.isEditor(node) && Element.isElement(node) && listTypes.includes(node.type) && path.length === parentListItemPath.length + 1;
|
|
89
34
|
return matches;
|
|
90
35
|
}
|
|
91
36
|
});
|
|
92
37
|
// Set li type on any children that don't have a type
|
|
93
|
-
|
|
38
|
+
Transforms.setNodes(editor, {
|
|
94
39
|
type: 'li'
|
|
95
40
|
}, {
|
|
96
41
|
at: parentListItemPath,
|
|
97
42
|
match: (node, path)=>{
|
|
98
|
-
const matches = !
|
|
43
|
+
const matches = !Editor.isEditor(node) && Element.isElement(node) && node.type !== 'li' && path.length === parentListItemPath.length + 1;
|
|
99
44
|
return matches;
|
|
100
45
|
}
|
|
101
46
|
});
|
|
102
47
|
// Parent list item path has changed at this point
|
|
103
48
|
// so we need to re-fetch the parent node
|
|
104
|
-
const [newParentNode] =
|
|
49
|
+
const [newParentNode] = Editor.node(editor, parentListItemPath);
|
|
105
50
|
// If the parent node is an li,
|
|
106
51
|
// lift all li nodes within
|
|
107
|
-
if (
|
|
52
|
+
if (Element.isElement(newParentNode) && newParentNode.type === 'li') {
|
|
108
53
|
// Lift the nested lis
|
|
109
|
-
|
|
54
|
+
Transforms.liftNodes(editor, {
|
|
110
55
|
at: parentListItemPath,
|
|
111
56
|
match: (node, path)=>{
|
|
112
|
-
const matches = !
|
|
57
|
+
const matches = !Editor.isEditor(node) && Element.isElement(node) && path.length === parentListItemPath.length + 1 && node.type === 'li';
|
|
113
58
|
return matches;
|
|
114
59
|
}
|
|
115
60
|
});
|
|
116
61
|
}
|
|
117
62
|
} else {
|
|
118
|
-
|
|
63
|
+
Transforms.unwrapNodes(editor, {
|
|
119
64
|
at: parentListItemPath,
|
|
120
65
|
match: (node, path)=>{
|
|
121
|
-
return
|
|
66
|
+
return Element.isElement(node) && node.type === 'li' && path.length === parentListItemPath.length;
|
|
122
67
|
}
|
|
123
68
|
});
|
|
124
|
-
|
|
125
|
-
match: (n)=>
|
|
69
|
+
Transforms.unwrapNodes(editor, {
|
|
70
|
+
match: (n)=>Element.isElement(n) && listTypes.includes(n.type)
|
|
126
71
|
});
|
|
127
72
|
}
|
|
128
73
|
} else {
|
|
129
|
-
|
|
74
|
+
unwrapList(editor, listPath);
|
|
130
75
|
}
|
|
131
76
|
} else {
|
|
132
|
-
|
|
133
|
-
match: (n)=>
|
|
77
|
+
Transforms.unwrapNodes(editor, {
|
|
78
|
+
match: (n)=>Element.isElement(n) && n.type === indentType,
|
|
134
79
|
mode: 'lowest',
|
|
135
80
|
split: true
|
|
136
81
|
});
|
|
137
82
|
}
|
|
138
83
|
}
|
|
139
84
|
if (dir === 'right') {
|
|
140
|
-
const isCurrentlyOL = (
|
|
141
|
-
const isCurrentlyUL = (
|
|
85
|
+
const isCurrentlyOL = isElementActive(editor, 'ol');
|
|
86
|
+
const isCurrentlyUL = isElementActive(editor, 'ul');
|
|
142
87
|
if (isCurrentlyOL || isCurrentlyUL) {
|
|
143
88
|
// Get the path of the first selected li -
|
|
144
89
|
// Multiple lis could be selected
|
|
145
90
|
// and the selection may start in the middle of the first li
|
|
146
|
-
const [[, firstSelectedLIPath]] = Array.from(
|
|
147
|
-
match: (node)=>
|
|
91
|
+
const [[, firstSelectedLIPath]] = Array.from(Editor.nodes(editor, {
|
|
92
|
+
match: (node)=>Element.isElement(node) && node.type === 'li',
|
|
148
93
|
mode: 'lowest'
|
|
149
94
|
}));
|
|
150
95
|
// Is the first selected li the first in its list?
|
|
@@ -152,17 +97,17 @@ const IndentButton = ()=>{
|
|
|
152
97
|
// If the first selected li is NOT the first in its list,
|
|
153
98
|
// we need to inject it into the prior li
|
|
154
99
|
if (hasPrecedingLI) {
|
|
155
|
-
const [, precedingLIPath] =
|
|
100
|
+
const [, precedingLIPath] = Editor.previous(editor, {
|
|
156
101
|
at: firstSelectedLIPath
|
|
157
102
|
});
|
|
158
|
-
const [precedingLIChildren] =
|
|
103
|
+
const [precedingLIChildren] = Editor.node(editor, [
|
|
159
104
|
...precedingLIPath,
|
|
160
105
|
0
|
|
161
106
|
]);
|
|
162
|
-
const precedingLIChildrenIsText =
|
|
107
|
+
const precedingLIChildrenIsText = Text.isText(precedingLIChildren);
|
|
163
108
|
if (precedingLIChildrenIsText) {
|
|
164
109
|
// Wrap the prior li text content so that it can be nested next to a list
|
|
165
|
-
|
|
110
|
+
Transforms.wrapNodes(editor, {
|
|
166
111
|
children: []
|
|
167
112
|
}, {
|
|
168
113
|
at: [
|
|
@@ -172,8 +117,8 @@ const IndentButton = ()=>{
|
|
|
172
117
|
});
|
|
173
118
|
}
|
|
174
119
|
// Move the selected lis after the prior li contents
|
|
175
|
-
|
|
176
|
-
match: (node)=>
|
|
120
|
+
Transforms.moveNodes(editor, {
|
|
121
|
+
match: (node)=>Element.isElement(node) && node.type === 'li',
|
|
177
122
|
mode: 'lowest',
|
|
178
123
|
to: [
|
|
179
124
|
...precedingLIPath,
|
|
@@ -181,16 +126,16 @@ const IndentButton = ()=>{
|
|
|
181
126
|
]
|
|
182
127
|
});
|
|
183
128
|
// Wrap the selected lis in a new list
|
|
184
|
-
|
|
129
|
+
Transforms.wrapNodes(editor, {
|
|
185
130
|
type: isCurrentlyOL ? 'ol' : 'ul',
|
|
186
131
|
children: []
|
|
187
132
|
}, {
|
|
188
|
-
match: (node)=>
|
|
133
|
+
match: (node)=>Element.isElement(node) && node.type === 'li',
|
|
189
134
|
mode: 'lowest'
|
|
190
135
|
});
|
|
191
136
|
} else {
|
|
192
137
|
// Otherwise, just wrap the node in a list / li
|
|
193
|
-
|
|
138
|
+
Transforms.wrapNodes(editor, {
|
|
194
139
|
type: isCurrentlyOL ? 'ol' : 'ul',
|
|
195
140
|
children: [
|
|
196
141
|
{
|
|
@@ -199,34 +144,34 @@ const IndentButton = ()=>{
|
|
|
199
144
|
}
|
|
200
145
|
]
|
|
201
146
|
}, {
|
|
202
|
-
match: (node)=>
|
|
147
|
+
match: (node)=>Element.isElement(node) && node.type === 'li',
|
|
203
148
|
mode: 'lowest'
|
|
204
149
|
});
|
|
205
150
|
}
|
|
206
151
|
} else {
|
|
207
|
-
|
|
208
|
-
type:
|
|
152
|
+
Transforms.wrapNodes(editor, {
|
|
153
|
+
type: indentType,
|
|
209
154
|
children: []
|
|
210
155
|
});
|
|
211
156
|
}
|
|
212
157
|
}
|
|
213
|
-
|
|
158
|
+
ReactEditor.focus(editor);
|
|
214
159
|
}, [
|
|
215
160
|
editor
|
|
216
161
|
]);
|
|
217
|
-
const canDeIndent = (
|
|
218
|
-
return /*#__PURE__*/
|
|
162
|
+
const canDeIndent = isElementActive(editor, 'li') || isElementActive(editor, indentType);
|
|
163
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("button", {
|
|
219
164
|
className: [
|
|
220
|
-
|
|
221
|
-
!canDeIndent && `${
|
|
165
|
+
baseClass,
|
|
166
|
+
!canDeIndent && `${baseClass}--disabled`
|
|
222
167
|
].filter(Boolean).join(' '),
|
|
223
168
|
onClick: canDeIndent ? (e)=>handleIndent(e, 'left') : undefined,
|
|
224
169
|
type: "button"
|
|
225
|
-
}, /*#__PURE__*/
|
|
226
|
-
className:
|
|
170
|
+
}, /*#__PURE__*/ React.createElement(IndentLeft, null)), /*#__PURE__*/ React.createElement("button", {
|
|
171
|
+
className: baseClass,
|
|
227
172
|
onClick: (e)=>handleIndent(e, 'right'),
|
|
228
173
|
type: "button"
|
|
229
|
-
}, /*#__PURE__*/
|
|
174
|
+
}, /*#__PURE__*/ React.createElement(IndentRight, null)));
|
|
230
175
|
};
|
|
231
176
|
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvQnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCwgVGV4dCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJ1xuaW1wb3J0IHsgUmVhY3RFZGl0b3IsIHVzZVNsYXRlIH0gZnJvbSAnc2xhdGUtcmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgRWxlbWVudE5vZGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcblxuaW1wb3J0IEluZGVudExlZnQgZnJvbSAnLi4vLi4vaWNvbnMvSW5kZW50TGVmdCdcbmltcG9ydCBJbmRlbnRSaWdodCBmcm9tICcuLi8uLi9pY29ucy9JbmRlbnRSaWdodCdcbmltcG9ydCB7IGJhc2VDbGFzcyB9IGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCB7IGdldENvbW1vbkJsb2NrIH0gZnJvbSAnLi4vZ2V0Q29tbW9uQmxvY2snXG5pbXBvcnQgaXNFbGVtZW50QWN0aXZlIGZyb20gJy4uL2lzQWN0aXZlJ1xuaW1wb3J0IHsgaXNCbG9ja0VsZW1lbnQgfSBmcm9tICcuLi9pc0Jsb2NrRWxlbWVudCdcbmltcG9ydCBsaXN0VHlwZXMgZnJvbSAnLi4vbGlzdFR5cGVzJ1xuaW1wb3J0IHsgdW53cmFwTGlzdCB9IGZyb20gJy4uL3Vud3JhcExpc3QnXG5pbXBvcnQgeyBpbmRlbnRUeXBlIH0gZnJvbSAnLi9zaGFyZWQnXG5cbmV4cG9ydCBjb25zdCBJbmRlbnRCdXR0b246IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBlZGl0b3IgPSB1c2VTbGF0ZSgpXG4gIGNvbnN0IGhhbmRsZUluZGVudCA9IHVzZUNhbGxiYWNrKFxuICAgIChlLCBkaXIpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgICBpZiAoZGlyID09PSAnbGVmdCcpIHtcbiAgICAgICAgaWYgKGlzRWxlbWVudEFjdGl2ZShlZGl0b3IsICdsaScpKSB7XG4gICAgICAgICAgY29uc3QgWywgbGlzdFBhdGhdID0gZ2V0Q29tbW9uQmxvY2soXG4gICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAobikgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbGlzdFR5cGVzLmluY2x1ZGVzKG4udHlwZSksXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgY29uc3QgbWF0Y2hlZFBhcmVudExpc3QgPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgICAgICBhdDogbGlzdFBhdGgsXG4gICAgICAgICAgICBtYXRjaDogKG46IEVsZW1lbnROb2RlKSA9PiAhRWRpdG9yLmlzRWRpdG9yKG4pICYmIGlzQmxvY2tFbGVtZW50KGVkaXRvciwgbiksXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChtYXRjaGVkUGFyZW50TGlzdCkge1xuICAgICAgICAgICAgY29uc3QgW3BhcmVudExpc3RJdGVtLCBwYXJlbnRMaXN0SXRlbVBhdGhdID0gbWF0Y2hlZFBhcmVudExpc3RcblxuICAgICAgICAgICAgaWYgKHBhcmVudExpc3RJdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgLy8gUmVtb3ZlIG5lc3RlZCBsaXN0XG4gICAgICAgICAgICAgIFRyYW5zZm9ybXMudW53cmFwTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgYXQ6IHBhcmVudExpc3RJdGVtUGF0aCxcbiAgICAgICAgICAgICAgICBtYXRjaDogKG5vZGUsIHBhdGgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPVxuICAgICAgICAgICAgICAgICAgICAhRWRpdG9yLmlzRWRpdG9yKG5vZGUpICYmXG4gICAgICAgICAgICAgICAgICAgIEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmXG4gICAgICAgICAgICAgICAgICAgIGxpc3RUeXBlcy5pbmNsdWRlcyhub2RlLnR5cGUpICYmXG4gICAgICAgICAgICAgICAgICAgIHBhdGgubGVuZ3RoID09PSBwYXJlbnRMaXN0SXRlbVBhdGgubGVuZ3RoICsgMVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgLy8gU2V0IGxpIHR5cGUgb24gYW55IGNoaWxkcmVuIHRoYXQgZG9uJ3QgaGF2ZSBhIHR5cGVcbiAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhcbiAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgeyB0eXBlOiAnbGknIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYXQ6IHBhcmVudExpc3RJdGVtUGF0aCxcbiAgICAgICAgICAgICAgICAgIG1hdGNoOiAobm9kZSwgcGF0aCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAhRWRpdG9yLmlzRWRpdG9yKG5vZGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICBub2RlLnR5cGUgIT09ICdsaScgJiZcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoLmxlbmd0aCA9PT0gcGFyZW50TGlzdEl0ZW1QYXRoLmxlbmd0aCArIDFcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgLy8gUGFyZW50IGxpc3QgaXRlbSBwYXRoIGhhcyBjaGFuZ2VkIGF0IHRoaXMgcG9pbnRcbiAgICAgICAgICAgICAgLy8gc28gd2UgbmVlZCB0byByZS1mZXRjaCB0aGUgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgY29uc3QgW25ld1BhcmVudE5vZGVdID0gRWRpdG9yLm5vZGUoZWRpdG9yLCBwYXJlbnRMaXN0SXRlbVBhdGgpXG5cbiAgICAgICAgICAgICAgLy8gSWYgdGhlIHBhcmVudCBub2RlIGlzIGFuIGxpLFxuICAgICAgICAgICAgICAvLyBsaWZ0IGFsbCBsaSBub2RlcyB3aXRoaW5cbiAgICAgICAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KG5ld1BhcmVudE5vZGUpICYmIG5ld1BhcmVudE5vZGUudHlwZSA9PT0gJ2xpJykge1xuICAgICAgICAgICAgICAgIC8vIExpZnQgdGhlIG5lc3RlZCBsaXNcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmxpZnROb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgIGF0OiBwYXJlbnRMaXN0SXRlbVBhdGgsXG4gICAgICAgICAgICAgICAgICBtYXRjaDogKG5vZGUsIHBhdGgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgIUVkaXRvci5pc0VkaXRvcihub2RlKSAmJlxuICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgcGF0aC5sZW5ndGggPT09IHBhcmVudExpc3RJdGVtUGF0aC5sZW5ndGggKyAxICYmXG4gICAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBlID09PSAnbGknXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgVHJhbnNmb3Jtcy51bndyYXBOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBhdDogcGFyZW50TGlzdEl0ZW1QYXRoLFxuICAgICAgICAgICAgICAgIG1hdGNoOiAobm9kZSwgcGF0aCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBlID09PSAnbGknICYmXG4gICAgICAgICAgICAgICAgICAgIHBhdGgubGVuZ3RoID09PSBwYXJlbnRMaXN0SXRlbVBhdGgubGVuZ3RoXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnVud3JhcE5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1hdGNoOiAobikgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbGlzdFR5cGVzLmluY2x1ZGVzKG4udHlwZSksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVud3JhcExpc3QoZWRpdG9yLCBsaXN0UGF0aClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgVHJhbnNmb3Jtcy51bndyYXBOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgIG1hdGNoOiAobikgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBpbmRlbnRUeXBlLFxuICAgICAgICAgICAgbW9kZTogJ2xvd2VzdCcsXG4gICAgICAgICAgICBzcGxpdDogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXIgPT09ICdyaWdodCcpIHtcbiAgICAgICAgY29uc3QgaXNDdXJyZW50bHlPTCA9IGlzRWxlbWVudEFjdGl2ZShlZGl0b3IsICdvbCcpXG4gICAgICAgIGNvbnN0IGlzQ3VycmVudGx5VUwgPSBpc0VsZW1lbnRBY3RpdmUoZWRpdG9yLCAndWwnKVxuXG4gICAgICAgIGlmIChpc0N1cnJlbnRseU9MIHx8IGlzQ3VycmVudGx5VUwpIHtcbiAgICAgICAgICAvLyBHZXQgdGhlIHBhdGggb2YgdGhlIGZpcnN0IHNlbGVjdGVkIGxpIC1cbiAgICAgICAgICAvLyBNdWx0aXBsZSBsaXMgY291bGQgYmUgc2VsZWN0ZWRcbiAgICAgICAgICAvLyBhbmQgdGhlIHNlbGVjdGlvbiBtYXkgc3RhcnQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZmlyc3QgbGlcbiAgICAgICAgICBjb25zdCBbWywgZmlyc3RTZWxlY3RlZExJUGF0aF1dID0gQXJyYXkuZnJvbShcbiAgICAgICAgICAgIEVkaXRvci5ub2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgbWF0Y2g6IChub2RlKSA9PiBFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBub2RlLnR5cGUgPT09ICdsaScsXG4gICAgICAgICAgICAgIG1vZGU6ICdsb3dlc3QnLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgLy8gSXMgdGhlIGZpcnN0IHNlbGVjdGVkIGxpIHRoZSBmaXJzdCBpbiBpdHMgbGlzdD9cbiAgICAgICAgICBjb25zdCBoYXNQcmVjZWRpbmdMSSA9IGZpcnN0U2VsZWN0ZWRMSVBhdGhbZmlyc3RTZWxlY3RlZExJUGF0aC5sZW5ndGggLSAxXSA+IDBcblxuICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCBzZWxlY3RlZCBsaSBpcyBOT1QgdGhlIGZpcnN0IGluIGl0cyBsaXN0LFxuICAgICAgICAgIC8vIHdlIG5lZWQgdG8gaW5qZWN0IGl0IGludG8gdGhlIHByaW9yIGxpXG4gICAgICAgICAgaWYgKGhhc1ByZWNlZGluZ0xJKSB7XG4gICAgICAgICAgICBjb25zdCBbLCBwcmVjZWRpbmdMSVBhdGhdID0gRWRpdG9yLnByZXZpb3VzKGVkaXRvciwge1xuICAgICAgICAgICAgICBhdDogZmlyc3RTZWxlY3RlZExJUGF0aCxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IFtwcmVjZWRpbmdMSUNoaWxkcmVuXSA9IEVkaXRvci5ub2RlKGVkaXRvciwgWy4uLnByZWNlZGluZ0xJUGF0aCwgMF0pXG4gICAgICAgICAgICBjb25zdCBwcmVjZWRpbmdMSUNoaWxkcmVuSXNUZXh0ID0gVGV4dC5pc1RleHQocHJlY2VkaW5nTElDaGlsZHJlbilcblxuICAgICAgICAgICAgaWYgKHByZWNlZGluZ0xJQ2hpbGRyZW5Jc1RleHQpIHtcbiAgICAgICAgICAgICAgLy8gV3JhcCB0aGUgcHJpb3IgbGkgdGV4dCBjb250ZW50IHNvIHRoYXQgaXQgY2FuIGJlIG5lc3RlZCBuZXh0IHRvIGEgbGlzdFxuICAgICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhlZGl0b3IsIHsgY2hpbGRyZW46IFtdIH0sIHsgYXQ6IFsuLi5wcmVjZWRpbmdMSVBhdGgsIDBdIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE1vdmUgdGhlIHNlbGVjdGVkIGxpcyBhZnRlciB0aGUgcHJpb3IgbGkgY29udGVudHNcbiAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZU5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICBtYXRjaDogKG5vZGUpID0+IEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmIG5vZGUudHlwZSA9PT0gJ2xpJyxcbiAgICAgICAgICAgICAgbW9kZTogJ2xvd2VzdCcsXG4gICAgICAgICAgICAgIHRvOiBbLi4ucHJlY2VkaW5nTElQYXRoLCAxXSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIC8vIFdyYXAgdGhlIHNlbGVjdGVkIGxpcyBpbiBhIG5ldyBsaXN0XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhcbiAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogaXNDdXJyZW50bHlPTCA/ICdvbCcgOiAndWwnLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hdGNoOiAobm9kZSkgPT4gRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiYgbm9kZS50eXBlID09PSAnbGknLFxuICAgICAgICAgICAgICAgIG1vZGU6ICdsb3dlc3QnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBPdGhlcndpc2UsIGp1c3Qgd3JhcCB0aGUgbm9kZSBpbiBhIGxpc3QgLyBsaVxuICAgICAgICAgICAgVHJhbnNmb3Jtcy53cmFwTm9kZXMoXG4gICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6IGlzQ3VycmVudGx5T0wgPyAnb2wnIDogJ3VsJyxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogJ2xpJywgY2hpbGRyZW46IFtdIH1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWF0Y2g6IChub2RlKSA9PiBFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBub2RlLnR5cGUgPT09ICdsaScsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2xvd2VzdCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIFRyYW5zZm9ybXMud3JhcE5vZGVzKGVkaXRvciwgeyB0eXBlOiBpbmRlbnRUeXBlLCBjaGlsZHJlbjogW10gfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBSZWFjdEVkaXRvci5mb2N1cyhlZGl0b3IpXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIGNvbnN0IGNhbkRlSW5kZW50ID0gaXNFbGVtZW50QWN0aXZlKGVkaXRvciwgJ2xpJykgfHwgaXNFbGVtZW50QWN0aXZlKGVkaXRvciwgaW5kZW50VHlwZSlcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtbYmFzZUNsYXNzLCAhY2FuRGVJbmRlbnQgJiYgYCR7YmFzZUNsYXNzfS0tZGlzYWJsZWRgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbkNsaWNrPXtjYW5EZUluZGVudCA/IChlKSA9PiBoYW5kbGVJbmRlbnQoZSwgJ2xlZnQnKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxJbmRlbnRMZWZ0IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3NOYW1lPXtiYXNlQ2xhc3N9IG9uQ2xpY2s9eyhlKSA9PiBoYW5kbGVJbmRlbnQoZSwgJ3JpZ2h0Jyl9IHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgPEluZGVudFJpZ2h0IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsiSW5kZW50QnV0dG9uIiwiZWRpdG9yIiwidXNlU2xhdGUiLCJoYW5kbGVJbmRlbnQiLCJ1c2VDYWxsYmFjayIsImUiLCJkaXIiLCJwcmV2ZW50RGVmYXVsdCIsImlzRWxlbWVudEFjdGl2ZSIsImxpc3RQYXRoIiwiZ2V0Q29tbW9uQmxvY2siLCJuIiwiRWxlbWVudCIsImlzRWxlbWVudCIsImxpc3RUeXBlcyIsImluY2x1ZGVzIiwidHlwZSIsIm1hdGNoZWRQYXJlbnRMaXN0IiwiRWRpdG9yIiwiYWJvdmUiLCJhdCIsIm1hdGNoIiwiaXNFZGl0b3IiLCJpc0Jsb2NrRWxlbWVudCIsInBhcmVudExpc3RJdGVtIiwicGFyZW50TGlzdEl0ZW1QYXRoIiwiY2hpbGRyZW4iLCJsZW5ndGgiLCJUcmFuc2Zvcm1zIiwidW53cmFwTm9kZXMiLCJub2RlIiwicGF0aCIsIm1hdGNoZXMiLCJzZXROb2RlcyIsIm5ld1BhcmVudE5vZGUiLCJsaWZ0Tm9kZXMiLCJ1bndyYXBMaXN0IiwiaW5kZW50VHlwZSIsIm1vZGUiLCJzcGxpdCIsImlzQ3VycmVudGx5T0wiLCJpc0N1cnJlbnRseVVMIiwiZmlyc3RTZWxlY3RlZExJUGF0aCIsIkFycmF5IiwiZnJvbSIsIm5vZGVzIiwiaGFzUHJlY2VkaW5nTEkiLCJwcmVjZWRpbmdMSVBhdGgiLCJwcmV2aW91cyIsInByZWNlZGluZ0xJQ2hpbGRyZW4iLCJwcmVjZWRpbmdMSUNoaWxkcmVuSXNUZXh0IiwiVGV4dCIsImlzVGV4dCIsIndyYXBOb2RlcyIsIm1vdmVOb2RlcyIsInRvIiwiUmVhY3RFZGl0b3IiLCJmb2N1cyIsImNhbkRlSW5kZW50IiwiUmVhY3QiLCJGcmFnbWVudCIsImJ1dHRvbiIsImNsYXNzTmFtZSIsImJhc2VDbGFzcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25DbGljayIsInVuZGVmaW5lZCIsIkluZGVudExlZnQiLCJJbmRlbnRSaWdodCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQW1CYUE7OztlQUFBQTs7OytEQWpCSzt1QkFFZ0M7NEJBQ1o7bUVBSWY7b0VBQ0M7d0JBQ0U7Z0NBQ0s7aUVBQ0g7Z0NBQ0c7a0VBQ1Q7NEJBQ0s7d0JBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXBCLE1BQU1BLGVBQXlCO0lBQ3BDLE1BQU1DLFNBQVNDLElBQUFBLG9CQUFRO0lBQ3ZCLE1BQU1DLGVBQWVDLElBQUFBLGtCQUFXLEVBQzlCLENBQUNDLEdBQUdDO1FBQ0ZELEVBQUVFLGNBQWM7UUFFaEIsSUFBSUQsUUFBUSxRQUFRO1lBQ2xCLElBQUlFLElBQUFBLGlCQUFlLEVBQUNQLFFBQVEsT0FBTztnQkFDakMsTUFBTSxHQUFHUSxTQUFTLEdBQUdDLElBQUFBLDhCQUFjLEVBQ2pDVCxRQUNBLENBQUNVLElBQU1DLGNBQU8sQ0FBQ0MsU0FBUyxDQUFDRixNQUFNRyxr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
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvQnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCwgVGV4dCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJ1xuaW1wb3J0IHsgUmVhY3RFZGl0b3IsIHVzZVNsYXRlIH0gZnJvbSAnc2xhdGUtcmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgRWxlbWVudE5vZGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcblxuaW1wb3J0IEluZGVudExlZnQgZnJvbSAnLi4vLi4vaWNvbnMvSW5kZW50TGVmdCdcbmltcG9ydCBJbmRlbnRSaWdodCBmcm9tICcuLi8uLi9pY29ucy9JbmRlbnRSaWdodCdcbmltcG9ydCB7IGJhc2VDbGFzcyB9IGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCB7IGdldENvbW1vbkJsb2NrIH0gZnJvbSAnLi4vZ2V0Q29tbW9uQmxvY2snXG5pbXBvcnQgaXNFbGVtZW50QWN0aXZlIGZyb20gJy4uL2lzQWN0aXZlJ1xuaW1wb3J0IHsgaXNCbG9ja0VsZW1lbnQgfSBmcm9tICcuLi9pc0Jsb2NrRWxlbWVudCdcbmltcG9ydCBsaXN0VHlwZXMgZnJvbSAnLi4vbGlzdFR5cGVzJ1xuaW1wb3J0IHsgdW53cmFwTGlzdCB9IGZyb20gJy4uL3Vud3JhcExpc3QnXG5pbXBvcnQgeyBpbmRlbnRUeXBlIH0gZnJvbSAnLi9zaGFyZWQnXG5cbmV4cG9ydCBjb25zdCBJbmRlbnRCdXR0b246IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBlZGl0b3IgPSB1c2VTbGF0ZSgpXG4gIGNvbnN0IGhhbmRsZUluZGVudCA9IHVzZUNhbGxiYWNrKFxuICAgIChlLCBkaXIpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgICBpZiAoZGlyID09PSAnbGVmdCcpIHtcbiAgICAgICAgaWYgKGlzRWxlbWVudEFjdGl2ZShlZGl0b3IsICdsaScpKSB7XG4gICAgICAgICAgY29uc3QgWywgbGlzdFBhdGhdID0gZ2V0Q29tbW9uQmxvY2soXG4gICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAobikgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbGlzdFR5cGVzLmluY2x1ZGVzKG4udHlwZSksXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgY29uc3QgbWF0Y2hlZFBhcmVudExpc3QgPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgICAgICBhdDogbGlzdFBhdGgsXG4gICAgICAgICAgICBtYXRjaDogKG46IEVsZW1lbnROb2RlKSA9PiAhRWRpdG9yLmlzRWRpdG9yKG4pICYmIGlzQmxvY2tFbGVtZW50KGVkaXRvciwgbiksXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChtYXRjaGVkUGFyZW50TGlzdCkge1xuICAgICAgICAgICAgY29uc3QgW3BhcmVudExpc3RJdGVtLCBwYXJlbnRMaXN0SXRlbVBhdGhdID0gbWF0Y2hlZFBhcmVudExpc3RcblxuICAgICAgICAgICAgaWYgKHBhcmVudExpc3RJdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgLy8gUmVtb3ZlIG5lc3RlZCBsaXN0XG4gICAgICAgICAgICAgIFRyYW5zZm9ybXMudW53cmFwTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgYXQ6IHBhcmVudExpc3RJdGVtUGF0aCxcbiAgICAgICAgICAgICAgICBtYXRjaDogKG5vZGUsIHBhdGgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPVxuICAgICAgICAgICAgICAgICAgICAhRWRpdG9yLmlzRWRpdG9yKG5vZGUpICYmXG4gICAgICAgICAgICAgICAgICAgIEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmXG4gICAgICAgICAgICAgICAgICAgIGxpc3RUeXBlcy5pbmNsdWRlcyhub2RlLnR5cGUpICYmXG4gICAgICAgICAgICAgICAgICAgIHBhdGgubGVuZ3RoID09PSBwYXJlbnRMaXN0SXRlbVBhdGgubGVuZ3RoICsgMVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgLy8gU2V0IGxpIHR5cGUgb24gYW55IGNoaWxkcmVuIHRoYXQgZG9uJ3QgaGF2ZSBhIHR5cGVcbiAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhcbiAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgeyB0eXBlOiAnbGknIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYXQ6IHBhcmVudExpc3RJdGVtUGF0aCxcbiAgICAgICAgICAgICAgICAgIG1hdGNoOiAobm9kZSwgcGF0aCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAhRWRpdG9yLmlzRWRpdG9yKG5vZGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICBub2RlLnR5cGUgIT09ICdsaScgJiZcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoLmxlbmd0aCA9PT0gcGFyZW50TGlzdEl0ZW1QYXRoLmxlbmd0aCArIDFcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgLy8gUGFyZW50IGxpc3QgaXRlbSBwYXRoIGhhcyBjaGFuZ2VkIGF0IHRoaXMgcG9pbnRcbiAgICAgICAgICAgICAgLy8gc28gd2UgbmVlZCB0byByZS1mZXRjaCB0aGUgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgY29uc3QgW25ld1BhcmVudE5vZGVdID0gRWRpdG9yLm5vZGUoZWRpdG9yLCBwYXJlbnRMaXN0SXRlbVBhdGgpXG5cbiAgICAgICAgICAgICAgLy8gSWYgdGhlIHBhcmVudCBub2RlIGlzIGFuIGxpLFxuICAgICAgICAgICAgICAvLyBsaWZ0IGFsbCBsaSBub2RlcyB3aXRoaW5cbiAgICAgICAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KG5ld1BhcmVudE5vZGUpICYmIG5ld1BhcmVudE5vZGUudHlwZSA9PT0gJ2xpJykge1xuICAgICAgICAgICAgICAgIC8vIExpZnQgdGhlIG5lc3RlZCBsaXNcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmxpZnROb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgIGF0OiBwYXJlbnRMaXN0SXRlbVBhdGgsXG4gICAgICAgICAgICAgICAgICBtYXRjaDogKG5vZGUsIHBhdGgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgIUVkaXRvci5pc0VkaXRvcihub2RlKSAmJlxuICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgcGF0aC5sZW5ndGggPT09IHBhcmVudExpc3RJdGVtUGF0aC5sZW5ndGggKyAxICYmXG4gICAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBlID09PSAnbGknXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgVHJhbnNmb3Jtcy51bndyYXBOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBhdDogcGFyZW50TGlzdEl0ZW1QYXRoLFxuICAgICAgICAgICAgICAgIG1hdGNoOiAobm9kZSwgcGF0aCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBlID09PSAnbGknICYmXG4gICAgICAgICAgICAgICAgICAgIHBhdGgubGVuZ3RoID09PSBwYXJlbnRMaXN0SXRlbVBhdGgubGVuZ3RoXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnVud3JhcE5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1hdGNoOiAobikgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbGlzdFR5cGVzLmluY2x1ZGVzKG4udHlwZSksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVud3JhcExpc3QoZWRpdG9yLCBsaXN0UGF0aClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgVHJhbnNmb3Jtcy51bndyYXBOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgIG1hdGNoOiAobikgPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBpbmRlbnRUeXBlLFxuICAgICAgICAgICAgbW9kZTogJ2xvd2VzdCcsXG4gICAgICAgICAgICBzcGxpdDogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXIgPT09ICdyaWdodCcpIHtcbiAgICAgICAgY29uc3QgaXNDdXJyZW50bHlPTCA9IGlzRWxlbWVudEFjdGl2ZShlZGl0b3IsICdvbCcpXG4gICAgICAgIGNvbnN0IGlzQ3VycmVudGx5VUwgPSBpc0VsZW1lbnRBY3RpdmUoZWRpdG9yLCAndWwnKVxuXG4gICAgICAgIGlmIChpc0N1cnJlbnRseU9MIHx8IGlzQ3VycmVudGx5VUwpIHtcbiAgICAgICAgICAvLyBHZXQgdGhlIHBhdGggb2YgdGhlIGZpcnN0IHNlbGVjdGVkIGxpIC1cbiAgICAgICAgICAvLyBNdWx0aXBsZSBsaXMgY291bGQgYmUgc2VsZWN0ZWRcbiAgICAgICAgICAvLyBhbmQgdGhlIHNlbGVjdGlvbiBtYXkgc3RhcnQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZmlyc3QgbGlcbiAgICAgICAgICBjb25zdCBbWywgZmlyc3RTZWxlY3RlZExJUGF0aF1dID0gQXJyYXkuZnJvbShcbiAgICAgICAgICAgIEVkaXRvci5ub2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgbWF0Y2g6IChub2RlKSA9PiBFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBub2RlLnR5cGUgPT09ICdsaScsXG4gICAgICAgICAgICAgIG1vZGU6ICdsb3dlc3QnLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgLy8gSXMgdGhlIGZpcnN0IHNlbGVjdGVkIGxpIHRoZSBmaXJzdCBpbiBpdHMgbGlzdD9cbiAgICAgICAgICBjb25zdCBoYXNQcmVjZWRpbmdMSSA9IGZpcnN0U2VsZWN0ZWRMSVBhdGhbZmlyc3RTZWxlY3RlZExJUGF0aC5sZW5ndGggLSAxXSA+IDBcblxuICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCBzZWxlY3RlZCBsaSBpcyBOT1QgdGhlIGZpcnN0IGluIGl0cyBsaXN0LFxuICAgICAgICAgIC8vIHdlIG5lZWQgdG8gaW5qZWN0IGl0IGludG8gdGhlIHByaW9yIGxpXG4gICAgICAgICAgaWYgKGhhc1ByZWNlZGluZ0xJKSB7XG4gICAgICAgICAgICBjb25zdCBbLCBwcmVjZWRpbmdMSVBhdGhdID0gRWRpdG9yLnByZXZpb3VzKGVkaXRvciwge1xuICAgICAgICAgICAgICBhdDogZmlyc3RTZWxlY3RlZExJUGF0aCxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IFtwcmVjZWRpbmdMSUNoaWxkcmVuXSA9IEVkaXRvci5ub2RlKGVkaXRvciwgWy4uLnByZWNlZGluZ0xJUGF0aCwgMF0pXG4gICAgICAgICAgICBjb25zdCBwcmVjZWRpbmdMSUNoaWxkcmVuSXNUZXh0ID0gVGV4dC5pc1RleHQocHJlY2VkaW5nTElDaGlsZHJlbilcblxuICAgICAgICAgICAgaWYgKHByZWNlZGluZ0xJQ2hpbGRyZW5Jc1RleHQpIHtcbiAgICAgICAgICAgICAgLy8gV3JhcCB0aGUgcHJpb3IgbGkgdGV4dCBjb250ZW50IHNvIHRoYXQgaXQgY2FuIGJlIG5lc3RlZCBuZXh0IHRvIGEgbGlzdFxuICAgICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhlZGl0b3IsIHsgY2hpbGRyZW46IFtdIH0sIHsgYXQ6IFsuLi5wcmVjZWRpbmdMSVBhdGgsIDBdIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE1vdmUgdGhlIHNlbGVjdGVkIGxpcyBhZnRlciB0aGUgcHJpb3IgbGkgY29udGVudHNcbiAgICAgICAgICAgIFRyYW5zZm9ybXMubW92ZU5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICBtYXRjaDogKG5vZGUpID0+IEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmIG5vZGUudHlwZSA9PT0gJ2xpJyxcbiAgICAgICAgICAgICAgbW9kZTogJ2xvd2VzdCcsXG4gICAgICAgICAgICAgIHRvOiBbLi4ucHJlY2VkaW5nTElQYXRoLCAxXSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIC8vIFdyYXAgdGhlIHNlbGVjdGVkIGxpcyBpbiBhIG5ldyBsaXN0XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLndyYXBOb2RlcyhcbiAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogaXNDdXJyZW50bHlPTCA/ICdvbCcgOiAndWwnLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hdGNoOiAobm9kZSkgPT4gRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiYgbm9kZS50eXBlID09PSAnbGknLFxuICAgICAgICAgICAgICAgIG1vZGU6ICdsb3dlc3QnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBPdGhlcndpc2UsIGp1c3Qgd3JhcCB0aGUgbm9kZSBpbiBhIGxpc3QgLyBsaVxuICAgICAgICAgICAgVHJhbnNmb3Jtcy53cmFwTm9kZXMoXG4gICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6IGlzQ3VycmVudGx5T0wgPyAnb2wnIDogJ3VsJyxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogJ2xpJywgY2hpbGRyZW46IFtdIH1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWF0Y2g6IChub2RlKSA9PiBFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBub2RlLnR5cGUgPT09ICdsaScsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2xvd2VzdCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIFRyYW5zZm9ybXMud3JhcE5vZGVzKGVkaXRvciwgeyB0eXBlOiBpbmRlbnRUeXBlLCBjaGlsZHJlbjogW10gfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBSZWFjdEVkaXRvci5mb2N1cyhlZGl0b3IpXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIGNvbnN0IGNhbkRlSW5kZW50ID0gaXNFbGVtZW50QWN0aXZlKGVkaXRvciwgJ2xpJykgfHwgaXNFbGVtZW50QWN0aXZlKGVkaXRvciwgaW5kZW50VHlwZSlcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtbYmFzZUNsYXNzLCAhY2FuRGVJbmRlbnQgJiYgYCR7YmFzZUNsYXNzfS0tZGlzYWJsZWRgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbkNsaWNrPXtjYW5EZUluZGVudCA/IChlKSA9PiBoYW5kbGVJbmRlbnQoZSwgJ2xlZnQnKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxJbmRlbnRMZWZ0IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3NOYW1lPXtiYXNlQ2xhc3N9IG9uQ2xpY2s9eyhlKSA9PiBoYW5kbGVJbmRlbnQoZSwgJ3JpZ2h0Jyl9IHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgPEluZGVudFJpZ2h0IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VDYWxsYmFjayIsIkVkaXRvciIsIkVsZW1lbnQiLCJUZXh0IiwiVHJhbnNmb3JtcyIsIlJlYWN0RWRpdG9yIiwidXNlU2xhdGUiLCJJbmRlbnRMZWZ0IiwiSW5kZW50UmlnaHQiLCJiYXNlQ2xhc3MiLCJnZXRDb21tb25CbG9jayIsImlzRWxlbWVudEFjdGl2ZSIsImlzQmxvY2tFbGVtZW50IiwibGlzdFR5cGVzIiwidW53cmFwTGlzdCIsImluZGVudFR5cGUiLCJJbmRlbnRCdXR0b24iLCJlZGl0b3IiLCJoYW5kbGVJbmRlbnQiLCJlIiwiZGlyIiwicHJldmVudERlZmF1bHQiLCJsaXN0UGF0aCIsIm4iLCJpc0VsZW1lbnQiLCJpbmNsdWRlcyIsInR5cGUiLCJtYXRjaGVkUGFyZW50TGlzdCIsImFib3ZlIiwiYXQiLCJtYXRjaCIsImlzRWRpdG9yIiwicGFyZW50TGlzdEl0ZW0iLCJwYXJlbnRMaXN0SXRlbVBhdGgiLCJjaGlsZHJlbiIsImxlbmd0aCIsInVud3JhcE5vZGVzIiwibm9kZSIsInBhdGgiLCJtYXRjaGVzIiwic2V0Tm9kZXMiLCJuZXdQYXJlbnROb2RlIiwibGlmdE5vZGVzIiwibW9kZSIsInNwbGl0IiwiaXNDdXJyZW50bHlPTCIsImlzQ3VycmVudGx5VUwiLCJmaXJzdFNlbGVjdGVkTElQYXRoIiwiQXJyYXkiLCJmcm9tIiwibm9kZXMiLCJoYXNQcmVjZWRpbmdMSSIsInByZWNlZGluZ0xJUGF0aCIsInByZXZpb3VzIiwicHJlY2VkaW5nTElDaGlsZHJlbiIsInByZWNlZGluZ0xJQ2hpbGRyZW5Jc1RleHQiLCJpc1RleHQiLCJ3cmFwTm9kZXMiLCJtb3ZlTm9kZXMiLCJ0byIsImZvY3VzIiwiY2FuRGVJbmRlbnQiLCJGcmFnbWVudCIsImJ1dHRvbiIsImNsYXNzTmFtZSIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25DbGljayIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxPQUFPQSxXQUFXLFFBQU87QUFDekIsU0FBU0MsV0FBVyxRQUFRLFFBQU87QUFDbkMsU0FBU0MsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRUMsVUFBVSxRQUFRLFFBQU87QUFDekQsU0FBU0MsV0FBVyxFQUFFQyxRQUFRLFFBQVEsY0FBYTtBQUluRCxPQUFPQyxnQkFBZ0IseUJBQXdCO0FBQy9DLE9BQU9DLGlCQUFpQiwwQkFBeUI7QUFDakQsU0FBU0MsU0FBUyxRQUFRLFlBQVc7QUFDckMsU0FBU0MsY0FBYyxRQUFRLG9CQUFtQjtBQUNsRCxPQUFPQyxxQkFBcUIsY0FBYTtBQUN6QyxTQUFTQyxjQUFjLFFBQVEsb0JBQW1CO0FBQ2xELE9BQU9DLGVBQWUsZUFBYztBQUNwQyxTQUFTQyxVQUFVLFFBQVEsZ0JBQWU7QUFDMUMsU0FBU0MsVUFBVSxRQUFRLFdBQVU7QUFFckMsT0FBTyxNQUFNQyxlQUF5QjtJQUNw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
|
|
@@ -1,24 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function() {
|
|
9
|
-
return IndentElement;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
13
|
-
const _ElementProvider = require("../../providers/ElementProvider");
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
const IndentElement = ()=>{
|
|
20
|
-
const { attributes, children } = (0, _ElementProvider.useElement)();
|
|
21
|
-
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useElement } from '../../providers/ElementProvider';
|
|
4
|
+
export const IndentElement = ()=>{
|
|
5
|
+
const { attributes, children } = useElement();
|
|
6
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
22
7
|
style: {
|
|
23
8
|
paddingLeft: 25
|
|
24
9
|
},
|
|
@@ -26,4 +11,4 @@ const IndentElement = ()=>{
|
|
|
26
11
|
}, children);
|
|
27
12
|
};
|
|
28
13
|
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvRWxlbWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9FbGVtZW50UHJvdmlkZXInXG5cbmV4cG9ydCBjb25zdCBJbmRlbnRFbGVtZW50OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgeyBhdHRyaWJ1dGVzLCBjaGlsZHJlbiB9ID0gdXNlRWxlbWVudCgpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmdMZWZ0OiAyNSB9fSB7Li4uYXR0cmlidXRlc30+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvRWxlbWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9FbGVtZW50UHJvdmlkZXInXG5cbmV4cG9ydCBjb25zdCBJbmRlbnRFbGVtZW50OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgeyBhdHRyaWJ1dGVzLCBjaGlsZHJlbiB9ID0gdXNlRWxlbWVudCgpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmdMZWZ0OiAyNSB9fSB7Li4uYXR0cmlidXRlc30+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVsZW1lbnQiLCJJbmRlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImNoaWxkcmVuIiwiZGl2Iiwic3R5bGUiLCJwYWRkaW5nTGVmdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxPQUFPQSxXQUFXLFFBQU87QUFFekIsU0FBU0MsVUFBVSxRQUFRLGtDQUFpQztBQUU1RCxPQUFPLE1BQU1DLGdCQUEwQjtJQUNyQyxNQUFNLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFLEdBQUdIO0lBRWpDLHFCQUNFLG9CQUFDSTtRQUFJQyxPQUFPO1lBQUVDLGFBQWE7UUFBRztRQUFJLEdBQUdKLFVBQVU7T0FDNUNDO0FBR1AsRUFBQyJ9
|
|
@@ -1,21 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _Button = require("./Button");
|
|
12
|
-
const _Element = require("./Element");
|
|
13
|
-
const _shared = require("./shared");
|
|
1
|
+
import { IndentButton } from './Button';
|
|
2
|
+
import { IndentElement } from './Element';
|
|
3
|
+
import { indentType } from './shared';
|
|
14
4
|
const indent = {
|
|
15
|
-
name:
|
|
16
|
-
Button:
|
|
17
|
-
Element:
|
|
5
|
+
name: indentType,
|
|
6
|
+
Button: IndentButton,
|
|
7
|
+
Element: IndentElement
|
|
18
8
|
};
|
|
19
|
-
|
|
9
|
+
export default indent;
|
|
20
10
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLidcblxuaW1wb3J0IHsgSW5kZW50QnV0dG9uIH0gZnJvbSAnLi9CdXR0b24nXG5pbXBvcnQgeyBJbmRlbnRFbGVtZW50IH0gZnJvbSAnLi9FbGVtZW50J1xuaW1wb3J0IHsgaW5kZW50VHlwZSB9IGZyb20gJy4vc2hhcmVkJ1xuXG5jb25zdCBpbmRlbnQ6IFJpY2hUZXh0Q3VzdG9tRWxlbWVudCA9IHtcbiAgbmFtZTogaW5kZW50VHlwZSxcbiAgQnV0dG9uOiBJbmRlbnRCdXR0b24sXG4gIEVsZW1lbnQ6IEluZGVudEVsZW1lbnQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGluZGVudFxuIl0sIm5hbWVzIjpbIkluZGVudEJ1dHRvbiIsIkluZGVudEVsZW1lbnQiLCJpbmRlbnRUeXBlIiwiaW5kZW50IiwibmFtZSIsIkJ1dHRvbiIsIkVsZW1lbnQiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLFlBQVksUUFBUSxXQUFVO0FBQ3ZDLFNBQVNDLGFBQWEsUUFBUSxZQUFXO0FBQ3pDLFNBQVNDLFVBQVUsUUFBUSxXQUFVO0FBRXJDLE1BQU1DLFNBQWdDO0lBQ3BDQyxNQUFNRjtJQUNORyxRQUFRTDtJQUNSTSxTQUFTTDtBQUNYO0FBRUEsZUFBZUUsT0FBTSJ9
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "indentType", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return indentType;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const indentType = 'indent';
|
|
1
|
+
export const indentType = 'indent';
|
|
12
2
|
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvc2hhcmVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpbmRlbnRUeXBlID0gJ2luZGVudCdcbiJdLCJuYW1lcyI6WyJpbmRlbnRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLGFBQWEsU0FBUSJ9
|
|
@@ -1,50 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const _h5 = /*#__PURE__*/ _interop_require_default(require("./h5"));
|
|
17
|
-
const _h6 = /*#__PURE__*/ _interop_require_default(require("./h6"));
|
|
18
|
-
const _indent = /*#__PURE__*/ _interop_require_default(require("./indent"));
|
|
19
|
-
const _li = /*#__PURE__*/ _interop_require_default(require("./li"));
|
|
20
|
-
const _link = /*#__PURE__*/ _interop_require_default(require("./link"));
|
|
21
|
-
const _ol = /*#__PURE__*/ _interop_require_default(require("./ol"));
|
|
22
|
-
const _relationship = /*#__PURE__*/ _interop_require_default(require("./relationship"));
|
|
23
|
-
const _textAlign = /*#__PURE__*/ _interop_require_default(require("./textAlign"));
|
|
24
|
-
const _ul = /*#__PURE__*/ _interop_require_default(require("./ul"));
|
|
25
|
-
const _upload = /*#__PURE__*/ _interop_require_default(require("./upload"));
|
|
26
|
-
function _interop_require_default(obj) {
|
|
27
|
-
return obj && obj.__esModule ? obj : {
|
|
28
|
-
default: obj
|
|
29
|
-
};
|
|
30
|
-
}
|
|
1
|
+
import blockquote from './blockquote';
|
|
2
|
+
import h1 from './h1';
|
|
3
|
+
import h2 from './h2';
|
|
4
|
+
import h3 from './h3';
|
|
5
|
+
import h4 from './h4';
|
|
6
|
+
import h5 from './h5';
|
|
7
|
+
import h6 from './h6';
|
|
8
|
+
import indent from './indent';
|
|
9
|
+
import li from './li';
|
|
10
|
+
import link from './link';
|
|
11
|
+
import ol from './ol';
|
|
12
|
+
import relationship from './relationship';
|
|
13
|
+
import textAlign from './textAlign';
|
|
14
|
+
import ul from './ul';
|
|
15
|
+
import upload from './upload';
|
|
31
16
|
const elements = {
|
|
32
|
-
blockquote
|
|
33
|
-
h1
|
|
34
|
-
h2
|
|
35
|
-
h3
|
|
36
|
-
h4
|
|
37
|
-
h5
|
|
38
|
-
h6
|
|
39
|
-
indent
|
|
40
|
-
li
|
|
41
|
-
link
|
|
42
|
-
ol
|
|
43
|
-
relationship
|
|
44
|
-
textAlign
|
|
45
|
-
ul
|
|
46
|
-
upload
|
|
17
|
+
blockquote,
|
|
18
|
+
h1,
|
|
19
|
+
h2,
|
|
20
|
+
h3,
|
|
21
|
+
h4,
|
|
22
|
+
h5,
|
|
23
|
+
h6,
|
|
24
|
+
indent,
|
|
25
|
+
li,
|
|
26
|
+
link,
|
|
27
|
+
ol,
|
|
28
|
+
relationship,
|
|
29
|
+
textAlign,
|
|
30
|
+
ul,
|
|
31
|
+
upload
|
|
47
32
|
};
|
|
48
|
-
|
|
33
|
+
export default elements;
|
|
49
34
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLidcblxuaW1wb3J0IGJsb2NrcXVvdGUgZnJvbSAnLi9ibG9ja3F1b3RlJ1xuaW1wb3J0IGgxIGZyb20gJy4vaDEnXG5pbXBvcnQgaDIgZnJvbSAnLi9oMidcbmltcG9ydCBoMyBmcm9tICcuL2gzJ1xuaW1wb3J0IGg0IGZyb20gJy4vaDQnXG5pbXBvcnQgaDUgZnJvbSAnLi9oNSdcbmltcG9ydCBoNiBmcm9tICcuL2g2J1xuaW1wb3J0IGluZGVudCBmcm9tICcuL2luZGVudCdcbmltcG9ydCBsaSBmcm9tICcuL2xpJ1xuaW1wb3J0IGxpbmsgZnJvbSAnLi9saW5rJ1xuaW1wb3J0IG9sIGZyb20gJy4vb2wnXG5pbXBvcnQgcmVsYXRpb25zaGlwIGZyb20gJy4vcmVsYXRpb25zaGlwJ1xuaW1wb3J0IHRleHRBbGlnbiBmcm9tICcuL3RleHRBbGlnbidcbmltcG9ydCB1bCBmcm9tICcuL3VsJ1xuaW1wb3J0IHVwbG9hZCBmcm9tICcuL3VwbG9hZCdcblxuY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIFJpY2hUZXh0Q3VzdG9tRWxlbWVudD4gPSB7XG4gIGJsb2NrcXVvdGUsXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIGluZGVudCxcbiAgbGksXG4gIGxpbmssXG4gIG9sLFxuICByZWxhdGlvbnNoaXAsXG4gIHRleHRBbGlnbixcbiAgdWwsXG4gIHVwbG9hZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZWxlbWVudHNcbiJdLCJuYW1lcyI6WyJibG9ja3F1b3RlIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaW5kZW50IiwibGkiLCJsaW5rIiwib2wiLCJyZWxhdGlvbnNoaXAiLCJ0ZXh0QWxpZ24iLCJ1bCIsInVwbG9hZCIsImVsZW1lbnRzIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPQSxnQkFBZ0IsZUFBYztBQUNyQyxPQUFPQyxRQUFRLE9BQU07QUFDckIsT0FBT0MsUUFBUSxPQUFNO0FBQ3JCLE9BQU9DLFFBQVEsT0FBTTtBQUNyQixPQUFPQyxRQUFRLE9BQU07QUFDckIsT0FBT0MsUUFBUSxPQUFNO0FBQ3JCLE9BQU9DLFFBQVEsT0FBTTtBQUNyQixPQUFPQyxZQUFZLFdBQVU7QUFDN0IsT0FBT0MsUUFBUSxPQUFNO0FBQ3JCLE9BQU9DLFVBQVUsU0FBUTtBQUN6QixPQUFPQyxRQUFRLE9BQU07QUFDckIsT0FBT0Msa0JBQWtCLGlCQUFnQjtBQUN6QyxPQUFPQyxlQUFlLGNBQWE7QUFDbkMsT0FBT0MsUUFBUSxPQUFNO0FBQ3JCLE9BQU9DLFlBQVksV0FBVTtBQUU3QixNQUFNQyxXQUFrRDtJQUN0RGY7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7QUFDRjtBQUVBLGVBQWVDLFNBQVEifQ==
|
|
@@ -1,40 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return injectVoidElement;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _slate = require("slate");
|
|
12
|
-
const _isLastSelectedElementEmpty = require("./isLastSelectedElementEmpty");
|
|
13
|
-
const injectVoidElement = (editor, element)=>{
|
|
14
|
-
const lastSelectedElementIsEmpty = (0, _isLastSelectedElementEmpty.isLastSelectedElementEmpty)(editor);
|
|
15
|
-
const previous = _slate.Editor.previous(editor);
|
|
1
|
+
import { Editor, Transforms } from 'slate';
|
|
2
|
+
import { isLastSelectedElementEmpty } from './isLastSelectedElementEmpty';
|
|
3
|
+
export const injectVoidElement = (editor, element)=>{
|
|
4
|
+
const lastSelectedElementIsEmpty = isLastSelectedElementEmpty(editor);
|
|
5
|
+
const previous = Editor.previous(editor);
|
|
16
6
|
if (lastSelectedElementIsEmpty) {
|
|
17
7
|
// If previous node is void
|
|
18
|
-
if (previous?.[0] &&
|
|
8
|
+
if (previous?.[0] && Editor.isVoid(editor, previous[0])) {
|
|
19
9
|
// Insert a blank element between void nodes
|
|
20
10
|
// so user can place cursor between void nodes
|
|
21
|
-
|
|
11
|
+
Transforms.insertNodes(editor, {
|
|
22
12
|
children: [
|
|
23
13
|
{
|
|
24
14
|
text: ''
|
|
25
15
|
}
|
|
26
16
|
]
|
|
27
17
|
});
|
|
28
|
-
|
|
18
|
+
Transforms.setNodes(editor, element);
|
|
29
19
|
// Otherwise just set the empty node equal to new void
|
|
30
20
|
} else {
|
|
31
|
-
|
|
21
|
+
Transforms.setNodes(editor, element);
|
|
32
22
|
}
|
|
33
23
|
} else {
|
|
34
|
-
|
|
24
|
+
Transforms.insertNodes(editor, element);
|
|
35
25
|
}
|
|
36
26
|
// Add an empty node after the new void
|
|
37
|
-
|
|
27
|
+
Transforms.insertNodes(editor, {
|
|
38
28
|
children: [
|
|
39
29
|
{
|
|
40
30
|
text: ''
|
|
@@ -43,4 +33,4 @@ const injectVoidElement = (editor, element)=>{
|
|
|
43
33
|
});
|
|
44
34
|
};
|
|
45
35
|
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmplY3RWb2lkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJ1xuXG5pbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSdcblxuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc0xhc3RTZWxlY3RlZEVsZW1lbnRFbXB0eSB9IGZyb20gJy4vaXNMYXN0U2VsZWN0ZWRFbGVtZW50RW1wdHknXG5cbmV4cG9ydCBjb25zdCBpbmplY3RWb2lkRWxlbWVudCA9IChlZGl0b3I6IEVkaXRvciwgZWxlbWVudDogRWxlbWVudCk6IHZvaWQgPT4ge1xuICBjb25zdCBsYXN0U2VsZWN0ZWRFbGVtZW50SXNFbXB0eSA9IGlzTGFzdFNlbGVjdGVkRWxlbWVudEVtcHR5KGVkaXRvcilcbiAgY29uc3QgcHJldmlvdXMgPSBFZGl0b3IucHJldmlvdXM8RWxlbWVudE5vZGU+KGVkaXRvcilcblxuICBpZiAobGFzdFNlbGVjdGVkRWxlbWVudElzRW1wdHkpIHtcbiAgICAvLyBJZiBwcmV2aW91cyBub2RlIGlzIHZvaWRcbiAgICBpZiAocHJldmlvdXM/
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmplY3RWb2lkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJ1xuXG5pbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSdcblxuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc0xhc3RTZWxlY3RlZEVsZW1lbnRFbXB0eSB9IGZyb20gJy4vaXNMYXN0U2VsZWN0ZWRFbGVtZW50RW1wdHknXG5cbmV4cG9ydCBjb25zdCBpbmplY3RWb2lkRWxlbWVudCA9IChlZGl0b3I6IEVkaXRvciwgZWxlbWVudDogRWxlbWVudCk6IHZvaWQgPT4ge1xuICBjb25zdCBsYXN0U2VsZWN0ZWRFbGVtZW50SXNFbXB0eSA9IGlzTGFzdFNlbGVjdGVkRWxlbWVudEVtcHR5KGVkaXRvcilcbiAgY29uc3QgcHJldmlvdXMgPSBFZGl0b3IucHJldmlvdXM8RWxlbWVudE5vZGU+KGVkaXRvcilcblxuICBpZiAobGFzdFNlbGVjdGVkRWxlbWVudElzRW1wdHkpIHtcbiAgICAvLyBJZiBwcmV2aW91cyBub2RlIGlzIHZvaWRcbiAgICBpZiAocHJldmlvdXM/LlswXSAmJiBFZGl0b3IuaXNWb2lkKGVkaXRvciwgcHJldmlvdXNbMF0pKSB7XG4gICAgICAvLyBJbnNlcnQgYSBibGFuayBlbGVtZW50IGJldHdlZW4gdm9pZCBub2Rlc1xuICAgICAgLy8gc28gdXNlciBjYW4gcGxhY2UgY3Vyc29yIGJldHdlZW4gdm9pZCBub2Rlc1xuICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIHsgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH0pXG4gICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgZWxlbWVudClcbiAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHNldCB0aGUgZW1wdHkgbm9kZSBlcXVhbCB0byBuZXcgdm9pZFxuICAgIH0gZWxzZSB7XG4gICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgZWxlbWVudClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGVsZW1lbnQpXG4gIH1cblxuICAvLyBBZGQgYW4gZW1wdHkgbm9kZSBhZnRlciB0aGUgbmV3IHZvaWRcbiAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIHsgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH0pXG59XG4iXSwibmFtZXMiOlsiRWRpdG9yIiwiVHJhbnNmb3JtcyIsImlzTGFzdFNlbGVjdGVkRWxlbWVudEVtcHR5IiwiaW5qZWN0Vm9pZEVsZW1lbnQiLCJlZGl0b3IiLCJlbGVtZW50IiwibGFzdFNlbGVjdGVkRWxlbWVudElzRW1wdHkiLCJwcmV2aW91cyIsImlzVm9pZCIsImluc2VydE5vZGVzIiwiY2hpbGRyZW4iLCJ0ZXh0Iiwic2V0Tm9kZXMiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLE1BQU0sRUFBRUMsVUFBVSxRQUFRLFFBQU87QUFJMUMsU0FBU0MsMEJBQTBCLFFBQVEsK0JBQThCO0FBRXpFLE9BQU8sTUFBTUMsb0JBQW9CLENBQUNDLFFBQWdCQztJQUNoRCxNQUFNQyw2QkFBNkJKLDJCQUEyQkU7SUFDOUQsTUFBTUcsV0FBV1AsT0FBT08sUUFBUSxDQUFjSDtJQUU5QyxJQUFJRSw0QkFBNEI7UUFDOUIsMkJBQTJCO1FBQzNCLElBQUlDLFVBQVUsQ0FBQyxFQUFFLElBQUlQLE9BQU9RLE1BQU0sQ0FBQ0osUUFBUUcsUUFBUSxDQUFDLEVBQUUsR0FBRztZQUN2RCw0Q0FBNEM7WUFDNUMsOENBQThDO1lBQzlDTixXQUFXUSxXQUFXLENBQUNMLFFBQVE7Z0JBQUVNLFVBQVU7b0JBQUM7d0JBQUVDLE1BQU07b0JBQUc7aUJBQUU7WUFBQztZQUMxRFYsV0FBV1csUUFBUSxDQUFDUixRQUFRQztRQUM1QixzREFBc0Q7UUFDeEQsT0FBTztZQUNMSixXQUFXVyxRQUFRLENBQUNSLFFBQVFDO1FBQzlCO0lBQ0YsT0FBTztRQUNMSixXQUFXUSxXQUFXLENBQUNMLFFBQVFDO0lBQ2pDO0lBRUEsdUNBQXVDO0lBQ3ZDSixXQUFXUSxXQUFXLENBQUNMLFFBQVE7UUFBRU0sVUFBVTtZQUFDO2dCQUFFQyxNQUFNO1lBQUc7U0FBRTtJQUFDO0FBQzVELEVBQUMifQ==
|