@payloadcms/richtext-slate 3.0.0-alpha.2 → 3.0.0-alpha.21

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.
Files changed (132) hide show
  1. package/dist/cell/index.js +4 -19
  2. package/dist/data/defaultValue.js +2 -12
  3. package/dist/data/populate.js +2 -12
  4. package/dist/data/recurseNestedFields.js +12 -22
  5. package/dist/data/richTextRelationshipPromise.js +9 -27
  6. package/dist/data/validation.js +4 -14
  7. package/dist/field/RichText.js +73 -129
  8. package/dist/field/createFeatureMap.js +2 -12
  9. package/dist/field/elements/Button.js +16 -80
  10. package/dist/field/elements/EnabledRelationshipsCondition.js +8 -59
  11. package/dist/field/elements/ListButton.js +13 -77
  12. package/dist/field/elements/areAllChildrenElements.js +4 -14
  13. package/dist/field/elements/blockquote/Blockquote.js +7 -22
  14. package/dist/field/elements/blockquote/index.js +9 -24
  15. package/dist/field/elements/getCommonBlock.js +9 -19
  16. package/dist/field/elements/h1/Heading1.js +6 -21
  17. package/dist/field/elements/h1/index.js +9 -24
  18. package/dist/field/elements/h2/Heading2.js +6 -21
  19. package/dist/field/elements/h2/index.js +9 -24
  20. package/dist/field/elements/h3/Heading3.js +6 -21
  21. package/dist/field/elements/h3/index.js +9 -24
  22. package/dist/field/elements/h4/Heading4.js +6 -21
  23. package/dist/field/elements/h4/index.js +9 -24
  24. package/dist/field/elements/h5/Heading5.js +6 -21
  25. package/dist/field/elements/h5/index.js +9 -24
  26. package/dist/field/elements/h6/Heading6.js +6 -21
  27. package/dist/field/elements/h6/index.js +9 -24
  28. package/dist/field/elements/indent/Button.js +60 -115
  29. package/dist/field/elements/indent/Element.js +6 -21
  30. package/dist/field/elements/indent/index.js +8 -18
  31. package/dist/field/elements/indent/shared.js +2 -12
  32. package/dist/field/elements/index.js +32 -47
  33. package/dist/field/elements/injectVoid.js +12 -22
  34. package/dist/field/elements/isActive.js +6 -16
  35. package/dist/field/elements/isBlockElement.js +9 -14
  36. package/dist/field/elements/isLastSelectedElementEmpty.js +8 -18
  37. package/dist/field/elements/isListActive.js +8 -18
  38. package/dist/field/elements/isWithinListItem.js +5 -15
  39. package/dist/field/elements/li/ListItem.js +9 -65
  40. package/dist/field/elements/li/index.js +4 -14
  41. package/dist/field/elements/link/Button/index.js +41 -97
  42. package/dist/field/elements/link/Element/index.js +53 -104
  43. package/dist/field/elements/link/LinkDrawer/baseFields.js +4 -14
  44. package/dist/field/elements/link/LinkDrawer/index.js +25 -76
  45. package/dist/field/elements/link/LinkDrawer/types.d.ts +2 -1
  46. package/dist/field/elements/link/LinkDrawer/types.d.ts.map +1 -1
  47. package/dist/field/elements/link/LinkDrawer/types.js +2 -5
  48. package/dist/field/elements/link/WithLinks.js +4 -14
  49. package/dist/field/elements/link/index.js +8 -18
  50. package/dist/field/elements/link/shared.js +3 -21
  51. package/dist/field/elements/link/types.js +2 -5
  52. package/dist/field/elements/link/utilities.js +15 -34
  53. package/dist/field/elements/listTypes.js +2 -12
  54. package/dist/field/elements/ol/OrderedList.js +7 -22
  55. package/dist/field/elements/ol/index.js +9 -24
  56. package/dist/field/elements/relationship/Button/index.js +22 -78
  57. package/dist/field/elements/relationship/Element/index.js +45 -96
  58. package/dist/field/elements/relationship/index.js +10 -25
  59. package/dist/field/elements/relationship/plugin.js +6 -16
  60. package/dist/field/elements/relationship/shared.js +2 -12
  61. package/dist/field/elements/relationship/types.js +2 -5
  62. package/dist/field/elements/textAlign/index.js +11 -26
  63. package/dist/field/elements/toggle.js +13 -28
  64. package/dist/field/elements/toggleList.js +27 -42
  65. package/dist/field/elements/types.js +2 -5
  66. package/dist/field/elements/ul/UnorderedList.js +7 -22
  67. package/dist/field/elements/ul/index.js +9 -24
  68. package/dist/field/elements/unwrapList.js +13 -28
  69. package/dist/field/elements/upload/Button/index.js +21 -77
  70. package/dist/field/elements/upload/Element/UploadDrawer/index.js +33 -84
  71. package/dist/field/elements/upload/Element/index.js +57 -108
  72. package/dist/field/elements/upload/index.js +10 -25
  73. package/dist/field/elements/upload/plugin.js +6 -16
  74. package/dist/field/elements/upload/shared.js +3 -21
  75. package/dist/field/elements/upload/types.js +2 -5
  76. package/dist/field/enablePlugins.js +8 -23
  77. package/dist/field/hotkeys.js +2 -12
  78. package/dist/field/icons/AlignCenter/index.js +5 -20
  79. package/dist/field/icons/AlignLeft/index.js +5 -20
  80. package/dist/field/icons/AlignRight/index.js +5 -20
  81. package/dist/field/icons/Blockquote/index.js +6 -21
  82. package/dist/field/icons/Bold/index.js +6 -21
  83. package/dist/field/icons/Code/index.js +5 -20
  84. package/dist/field/icons/IndentLeft/index.js +9 -24
  85. package/dist/field/icons/IndentRight/index.js +9 -24
  86. package/dist/field/icons/Italic/index.js +6 -21
  87. package/dist/field/icons/Link/index.js +7 -22
  88. package/dist/field/icons/OrderedList/index.js +6 -21
  89. package/dist/field/icons/Relationship/index.js +8 -23
  90. package/dist/field/icons/Strikethrough/index.js +6 -21
  91. package/dist/field/icons/Underline/index.js +6 -21
  92. package/dist/field/icons/UnorderedList/index.js +6 -21
  93. package/dist/field/icons/Upload/index.js +7 -22
  94. package/dist/field/icons/headings/H1/index.js +6 -21
  95. package/dist/field/icons/headings/H2/index.js +6 -21
  96. package/dist/field/icons/headings/H3/index.js +6 -21
  97. package/dist/field/icons/headings/H4/index.js +6 -21
  98. package/dist/field/icons/headings/H5/index.js +6 -21
  99. package/dist/field/icons/headings/H6/index.js +6 -21
  100. package/dist/field/icons/headings/index.js +14 -29
  101. package/dist/field/index.d.ts.map +1 -1
  102. package/dist/field/index.js +20 -72
  103. package/dist/field/leaves/Button.js +11 -26
  104. package/dist/field/leaves/bold/Bold/index.js +6 -21
  105. package/dist/field/leaves/bold/index.js +9 -24
  106. package/dist/field/leaves/code/Code/index.js +6 -21
  107. package/dist/field/leaves/code/index.js +9 -24
  108. package/dist/field/leaves/index.js +12 -27
  109. package/dist/field/leaves/isActive.js +4 -14
  110. package/dist/field/leaves/italic/Italic/index.js +6 -21
  111. package/dist/field/leaves/italic/index.js +9 -24
  112. package/dist/field/leaves/strikethrough/Strikethrough/index.js +6 -21
  113. package/dist/field/leaves/strikethrough/index.js +9 -24
  114. package/dist/field/leaves/toggle.js +7 -22
  115. package/dist/field/leaves/underline/Underline/index.js +6 -21
  116. package/dist/field/leaves/underline/index.js +9 -24
  117. package/dist/field/mergeCustomFunctions.js +3 -13
  118. package/dist/field/plugins/withEnterBreakOut.js +2 -12
  119. package/dist/field/plugins/withHTML.js +8 -18
  120. package/dist/field/providers/ElementButtonProvider.js +7 -30
  121. package/dist/field/providers/ElementProvider.js +7 -30
  122. package/dist/field/providers/LeafButtonProvider.js +7 -30
  123. package/dist/field/providers/LeafProvider.js +7 -30
  124. package/dist/field/types.js +2 -5
  125. package/dist/generateComponentMap.d.ts.map +1 -1
  126. package/dist/generateComponentMap.js +34 -51
  127. package/dist/generateSchemaMap.js +19 -34
  128. package/dist/index.js +20 -52
  129. package/dist/scss/toastify.scss +0 -1
  130. package/dist/types.js +2 -12
  131. package/dist/utilities/useSlatePlugin.js +6 -16
  132. package/package.json +15 -8
@@ -1,150 +1,95 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "IndentButton", {
7
- enumerable: true,
8
- get: function() {
9
- return IndentButton;
10
- }
11
- });
12
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
- const _slate = require("slate");
14
- const _slatereact = require("slate-react");
15
- const _IndentLeft = /*#__PURE__*/ _interop_require_default(require("../../icons/IndentLeft"));
16
- const _IndentRight = /*#__PURE__*/ _interop_require_default(require("../../icons/IndentRight"));
17
- const _Button = require("../Button");
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 ((0, _isActive.default)(editor, 'li')) {
76
- const [, listPath] = (0, _getCommonBlock.getCommonBlock)(editor, (n)=>_slate.Element.isElement(n) && _listTypes.default.includes(n.type));
77
- const matchedParentList = _slate.Editor.above(editor, {
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)=>!_slate.Editor.isEditor(n) && (0, _isBlockElement.isBlockElement)(editor, 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
- _slate.Transforms.unwrapNodes(editor, {
30
+ Transforms.unwrapNodes(editor, {
86
31
  at: parentListItemPath,
87
32
  match: (node, path)=>{
88
- const matches = !_slate.Editor.isEditor(node) && _slate.Element.isElement(node) && _listTypes.default.includes(node.type) && path.length === parentListItemPath.length + 1;
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
- _slate.Transforms.setNodes(editor, {
38
+ Transforms.setNodes(editor, {
94
39
  type: 'li'
95
40
  }, {
96
41
  at: parentListItemPath,
97
42
  match: (node, path)=>{
98
- const matches = !_slate.Editor.isEditor(node) && _slate.Element.isElement(node) && node.type !== 'li' && path.length === parentListItemPath.length + 1;
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] = _slate.Editor.node(editor, parentListItemPath);
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 (_slate.Element.isElement(newParentNode) && newParentNode.type === 'li') {
52
+ if (Element.isElement(newParentNode) && newParentNode.type === 'li') {
108
53
  // Lift the nested lis
109
- _slate.Transforms.liftNodes(editor, {
54
+ Transforms.liftNodes(editor, {
110
55
  at: parentListItemPath,
111
56
  match: (node, path)=>{
112
- const matches = !_slate.Editor.isEditor(node) && _slate.Element.isElement(node) && path.length === parentListItemPath.length + 1 && node.type === 'li';
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
- _slate.Transforms.unwrapNodes(editor, {
63
+ Transforms.unwrapNodes(editor, {
119
64
  at: parentListItemPath,
120
65
  match: (node, path)=>{
121
- return _slate.Element.isElement(node) && node.type === 'li' && path.length === parentListItemPath.length;
66
+ return Element.isElement(node) && node.type === 'li' && path.length === parentListItemPath.length;
122
67
  }
123
68
  });
124
- _slate.Transforms.unwrapNodes(editor, {
125
- match: (n)=>_slate.Element.isElement(n) && _listTypes.default.includes(n.type)
69
+ Transforms.unwrapNodes(editor, {
70
+ match: (n)=>Element.isElement(n) && listTypes.includes(n.type)
126
71
  });
127
72
  }
128
73
  } else {
129
- (0, _unwrapList.unwrapList)(editor, listPath);
74
+ unwrapList(editor, listPath);
130
75
  }
131
76
  } else {
132
- _slate.Transforms.unwrapNodes(editor, {
133
- match: (n)=>_slate.Element.isElement(n) && n.type === _shared.indentType,
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 = (0, _isActive.default)(editor, 'ol');
141
- const isCurrentlyUL = (0, _isActive.default)(editor, 'ul');
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(_slate.Editor.nodes(editor, {
147
- match: (node)=>_slate.Element.isElement(node) && node.type === 'li',
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] = _slate.Editor.previous(editor, {
100
+ const [, precedingLIPath] = Editor.previous(editor, {
156
101
  at: firstSelectedLIPath
157
102
  });
158
- const [precedingLIChildren] = _slate.Editor.node(editor, [
103
+ const [precedingLIChildren] = Editor.node(editor, [
159
104
  ...precedingLIPath,
160
105
  0
161
106
  ]);
162
- const precedingLIChildrenIsText = _slate.Text.isText(precedingLIChildren);
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
- _slate.Transforms.wrapNodes(editor, {
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
- _slate.Transforms.moveNodes(editor, {
176
- match: (node)=>_slate.Element.isElement(node) && node.type === 'li',
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
- _slate.Transforms.wrapNodes(editor, {
129
+ Transforms.wrapNodes(editor, {
185
130
  type: isCurrentlyOL ? 'ol' : 'ul',
186
131
  children: []
187
132
  }, {
188
- match: (node)=>_slate.Element.isElement(node) && node.type === 'li',
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
- _slate.Transforms.wrapNodes(editor, {
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)=>_slate.Element.isElement(node) && node.type === 'li',
147
+ match: (node)=>Element.isElement(node) && node.type === 'li',
203
148
  mode: 'lowest'
204
149
  });
205
150
  }
206
151
  } else {
207
- _slate.Transforms.wrapNodes(editor, {
208
- type: _shared.indentType,
152
+ Transforms.wrapNodes(editor, {
153
+ type: indentType,
209
154
  children: []
210
155
  });
211
156
  }
212
157
  }
213
- _slatereact.ReactEditor.focus(editor);
158
+ ReactEditor.focus(editor);
214
159
  }, [
215
160
  editor
216
161
  ]);
217
- const canDeIndent = (0, _isActive.default)(editor, 'li') || (0, _isActive.default)(editor, _shared.indentType);
218
- return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("button", {
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
- _Button.baseClass,
221
- !canDeIndent && `${_Button.baseClass}--disabled`
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__*/ _react.default.createElement(_IndentLeft.default, null)), /*#__PURE__*/ _react.default.createElement("button", {
226
- className: _Button.baseClass,
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__*/ _react.default.createElement(_IndentRight.default, null)));
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
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "IndentElement", {
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+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJJbmRlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImNoaWxkcmVuIiwidXNlRWxlbWVudCIsImRpdiIsInN0eWxlIiwicGFkZGluZ0xlZnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFNYUE7OztlQUFBQTs7OzhEQUpLO2lDQUVTOzs7Ozs7QUFFcEIsTUFBTUEsZ0JBQTBCO0lBQ3JDLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUUsR0FBR0MsSUFBQUEsMkJBQVU7SUFFM0MscUJBQ0UsNkJBQUNDO1FBQUlDLE9BQU87WUFBRUMsYUFBYTtRQUFHO1FBQUksR0FBR0wsVUFBVTtPQUM1Q0M7QUFHUCJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvRWxlbWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9FbGVtZW50UHJvdmlkZXInXG5cbmV4cG9ydCBjb25zdCBJbmRlbnRFbGVtZW50OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgeyBhdHRyaWJ1dGVzLCBjaGlsZHJlbiB9ID0gdXNlRWxlbWVudCgpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmdMZWZ0OiAyNSB9fSB7Li4uYXR0cmlidXRlc30+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVsZW1lbnQiLCJJbmRlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImNoaWxkcmVuIiwiZGl2Iiwic3R5bGUiLCJwYWRkaW5nTGVmdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFFQSxPQUFPQSxXQUFXLFFBQU87QUFFekIsU0FBU0MsVUFBVSxRQUFRLGtDQUFpQztBQUU1RCxPQUFPLE1BQU1DLGdCQUEwQjtJQUNyQyxNQUFNLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFLEdBQUdIO0lBRWpDLHFCQUNFLG9CQUFDSTtRQUFJQyxPQUFPO1lBQUVDLGFBQWE7UUFBRztRQUFJLEdBQUdKLFVBQVU7T0FDNUNDO0FBR1AsRUFBQyJ9
@@ -1,21 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
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: _shared.indentType,
16
- Button: _Button.IndentButton,
17
- Element: _Element.IndentElement
5
+ name: indentType,
6
+ Button: IndentButton,
7
+ Element: IndentElement
18
8
  };
19
- const _default = indent;
9
+ export default indent;
20
10
 
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLidcblxuaW1wb3J0IHsgSW5kZW50QnV0dG9uIH0gZnJvbSAnLi9CdXR0b24nXG5pbXBvcnQgeyBJbmRlbnRFbGVtZW50IH0gZnJvbSAnLi9FbGVtZW50J1xuaW1wb3J0IHsgaW5kZW50VHlwZSB9IGZyb20gJy4vc2hhcmVkJ1xuXG5jb25zdCBpbmRlbnQ6IFJpY2hUZXh0Q3VzdG9tRWxlbWVudCA9IHtcbiAgbmFtZTogaW5kZW50VHlwZSxcbiAgQnV0dG9uOiBJbmRlbnRCdXR0b24sXG4gIEVsZW1lbnQ6IEluZGVudEVsZW1lbnQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGluZGVudFxuIl0sIm5hbWVzIjpbImluZGVudCIsIm5hbWUiLCJpbmRlbnRUeXBlIiwiQnV0dG9uIiwiSW5kZW50QnV0dG9uIiwiRWxlbWVudCIsIkluZGVudEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBWUE7OztlQUFBOzs7d0JBVjZCO3lCQUNDO3dCQUNIO0FBRTNCLE1BQU1BLFNBQWdDO0lBQ3BDQyxNQUFNQyxrQkFBVTtJQUNoQkMsUUFBUUMsb0JBQVk7SUFDcEJDLFNBQVNDLHNCQUFhO0FBQ3hCO01BRUEsV0FBZU4ifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLidcblxuaW1wb3J0IHsgSW5kZW50QnV0dG9uIH0gZnJvbSAnLi9CdXR0b24nXG5pbXBvcnQgeyBJbmRlbnRFbGVtZW50IH0gZnJvbSAnLi9FbGVtZW50J1xuaW1wb3J0IHsgaW5kZW50VHlwZSB9IGZyb20gJy4vc2hhcmVkJ1xuXG5jb25zdCBpbmRlbnQ6IFJpY2hUZXh0Q3VzdG9tRWxlbWVudCA9IHtcbiAgbmFtZTogaW5kZW50VHlwZSxcbiAgQnV0dG9uOiBJbmRlbnRCdXR0b24sXG4gIEVsZW1lbnQ6IEluZGVudEVsZW1lbnQsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGluZGVudFxuIl0sIm5hbWVzIjpbIkluZGVudEJ1dHRvbiIsIkluZGVudEVsZW1lbnQiLCJpbmRlbnRUeXBlIiwiaW5kZW50IiwibmFtZSIsIkJ1dHRvbiIsIkVsZW1lbnQiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLFlBQVksUUFBUSxXQUFVO0FBQ3ZDLFNBQVNDLGFBQWEsUUFBUSxZQUFXO0FBQ3pDLFNBQVNDLFVBQVUsUUFBUSxXQUFVO0FBRXJDLE1BQU1DLFNBQWdDO0lBQ3BDQyxNQUFNRjtJQUNORyxRQUFRTDtJQUNSTSxTQUFTTDtBQUNYO0FBRUEsZUFBZUUsT0FBTSJ9
@@ -1,13 +1,3 @@
1
- "use strict";
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvc2hhcmVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpbmRlbnRUeXBlID0gJ2luZGVudCdcbiJdLCJuYW1lcyI6WyJpbmRlbnRUeXBlIl0sIm1hcHBpbmdzIjoiOzs7OytCQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxhQUFhIn0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRlbnQvc2hhcmVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpbmRlbnRUeXBlID0gJ2luZGVudCdcbiJdLCJuYW1lcyI6WyJpbmRlbnRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLGFBQWEsU0FBUSJ9
@@ -1,50 +1,35 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _blockquote = /*#__PURE__*/ _interop_require_default(require("./blockquote"));
12
- const _h1 = /*#__PURE__*/ _interop_require_default(require("./h1"));
13
- const _h2 = /*#__PURE__*/ _interop_require_default(require("./h2"));
14
- const _h3 = /*#__PURE__*/ _interop_require_default(require("./h3"));
15
- const _h4 = /*#__PURE__*/ _interop_require_default(require("./h4"));
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: _blockquote.default,
33
- h1: _h1.default,
34
- h2: _h2.default,
35
- h3: _h3.default,
36
- h4: _h4.default,
37
- h5: _h5.default,
38
- h6: _h6.default,
39
- indent: _indent.default,
40
- li: _li.default,
41
- link: _link.default,
42
- ol: _ol.default,
43
- relationship: _relationship.default,
44
- textAlign: _textAlign.default,
45
- ul: _ul.default,
46
- upload: _upload.default
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
- const _default = elements;
33
+ export default elements;
49
34
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLidcblxuaW1wb3J0IGJsb2NrcXVvdGUgZnJvbSAnLi9ibG9ja3F1b3RlJ1xuaW1wb3J0IGgxIGZyb20gJy4vaDEnXG5pbXBvcnQgaDIgZnJvbSAnLi9oMidcbmltcG9ydCBoMyBmcm9tICcuL2gzJ1xuaW1wb3J0IGg0IGZyb20gJy4vaDQnXG5pbXBvcnQgaDUgZnJvbSAnLi9oNSdcbmltcG9ydCBoNiBmcm9tICcuL2g2J1xuaW1wb3J0IGluZGVudCBmcm9tICcuL2luZGVudCdcbmltcG9ydCBsaSBmcm9tICcuL2xpJ1xuaW1wb3J0IGxpbmsgZnJvbSAnLi9saW5rJ1xuaW1wb3J0IG9sIGZyb20gJy4vb2wnXG5pbXBvcnQgcmVsYXRpb25zaGlwIGZyb20gJy4vcmVsYXRpb25zaGlwJ1xuaW1wb3J0IHRleHRBbGlnbiBmcm9tICcuL3RleHRBbGlnbidcbmltcG9ydCB1bCBmcm9tICcuL3VsJ1xuaW1wb3J0IHVwbG9hZCBmcm9tICcuL3VwbG9hZCdcblxuY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIFJpY2hUZXh0Q3VzdG9tRWxlbWVudD4gPSB7XG4gIGJsb2NrcXVvdGUsXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIGluZGVudCxcbiAgbGksXG4gIGxpbmssXG4gIG9sLFxuICByZWxhdGlvbnNoaXAsXG4gIHRleHRBbGlnbixcbiAgdWwsXG4gIHVwbG9hZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZWxlbWVudHNcbiJdLCJuYW1lcyI6WyJlbGVtZW50cyIsImJsb2NrcXVvdGUiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJpbmRlbnQiLCJsaSIsImxpbmsiLCJvbCIsInJlbGF0aW9uc2hpcCIsInRleHRBbGlnbiIsInVsIiwidXBsb2FkIl0sIm1hcHBpbmdzIjoiOzs7OytCQW9DQTs7O2VBQUE7OzttRUFsQ3VCOzJEQUNSOzJEQUNBOzJEQUNBOzJEQUNBOzJEQUNBOzJEQUNBOytEQUNJOzJEQUNKOzZEQUNFOzJEQUNGO3FFQUNVO2tFQUNIOzJEQUNQOytEQUNJOzs7Ozs7QUFFbkIsTUFBTUEsV0FBa0Q7SUFDdERDLFlBQUFBLG1CQUFVO0lBQ1ZDLElBQUFBLFdBQUU7SUFDRkMsSUFBQUEsV0FBRTtJQUNGQyxJQUFBQSxXQUFFO0lBQ0ZDLElBQUFBLFdBQUU7SUFDRkMsSUFBQUEsV0FBRTtJQUNGQyxJQUFBQSxXQUFFO0lBQ0ZDLFFBQUFBLGVBQU07SUFDTkMsSUFBQUEsV0FBRTtJQUNGQyxNQUFBQSxhQUFJO0lBQ0pDLElBQUFBLFdBQUU7SUFDRkMsY0FBQUEscUJBQVk7SUFDWkMsV0FBQUEsa0JBQVM7SUFDVEMsSUFBQUEsV0FBRTtJQUNGQyxRQUFBQSxlQUFNO0FBQ1I7TUFFQSxXQUFlZiJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLidcblxuaW1wb3J0IGJsb2NrcXVvdGUgZnJvbSAnLi9ibG9ja3F1b3RlJ1xuaW1wb3J0IGgxIGZyb20gJy4vaDEnXG5pbXBvcnQgaDIgZnJvbSAnLi9oMidcbmltcG9ydCBoMyBmcm9tICcuL2gzJ1xuaW1wb3J0IGg0IGZyb20gJy4vaDQnXG5pbXBvcnQgaDUgZnJvbSAnLi9oNSdcbmltcG9ydCBoNiBmcm9tICcuL2g2J1xuaW1wb3J0IGluZGVudCBmcm9tICcuL2luZGVudCdcbmltcG9ydCBsaSBmcm9tICcuL2xpJ1xuaW1wb3J0IGxpbmsgZnJvbSAnLi9saW5rJ1xuaW1wb3J0IG9sIGZyb20gJy4vb2wnXG5pbXBvcnQgcmVsYXRpb25zaGlwIGZyb20gJy4vcmVsYXRpb25zaGlwJ1xuaW1wb3J0IHRleHRBbGlnbiBmcm9tICcuL3RleHRBbGlnbidcbmltcG9ydCB1bCBmcm9tICcuL3VsJ1xuaW1wb3J0IHVwbG9hZCBmcm9tICcuL3VwbG9hZCdcblxuY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIFJpY2hUZXh0Q3VzdG9tRWxlbWVudD4gPSB7XG4gIGJsb2NrcXVvdGUsXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIGluZGVudCxcbiAgbGksXG4gIGxpbmssXG4gIG9sLFxuICByZWxhdGlvbnNoaXAsXG4gIHRleHRBbGlnbixcbiAgdWwsXG4gIHVwbG9hZCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZWxlbWVudHNcbiJdLCJuYW1lcyI6WyJibG9ja3F1b3RlIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaW5kZW50IiwibGkiLCJsaW5rIiwib2wiLCJyZWxhdGlvbnNoaXAiLCJ0ZXh0QWxpZ24iLCJ1bCIsInVwbG9hZCIsImVsZW1lbnRzIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPQSxnQkFBZ0IsZUFBYztBQUNyQyxPQUFPQyxRQUFRLE9BQU07QUFDckIsT0FBT0MsUUFBUSxPQUFNO0FBQ3JCLE9BQU9DLFFBQVEsT0FBTTtBQUNyQixPQUFPQyxRQUFRLE9BQU07QUFDckIsT0FBT0MsUUFBUSxPQUFNO0FBQ3JCLE9BQU9DLFFBQVEsT0FBTTtBQUNyQixPQUFPQyxZQUFZLFdBQVU7QUFDN0IsT0FBT0MsUUFBUSxPQUFNO0FBQ3JCLE9BQU9DLFVBQVUsU0FBUTtBQUN6QixPQUFPQyxRQUFRLE9BQU07QUFDckIsT0FBT0Msa0JBQWtCLGlCQUFnQjtBQUN6QyxPQUFPQyxlQUFlLGNBQWE7QUFDbkMsT0FBT0MsUUFBUSxPQUFNO0FBQ3JCLE9BQU9DLFlBQVksV0FBVTtBQUU3QixNQUFNQyxXQUFrRDtJQUN0RGY7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7QUFDRjtBQUVBLGVBQWVDLFNBQVEifQ==
@@ -1,40 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "injectVoidElement", {
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] && _slate.Editor.isVoid(editor, 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
- _slate.Transforms.insertNodes(editor, {
11
+ Transforms.insertNodes(editor, {
22
12
  children: [
23
13
  {
24
14
  text: ''
25
15
  }
26
16
  ]
27
17
  });
28
- _slate.Transforms.setNodes(editor, element);
18
+ Transforms.setNodes(editor, element);
29
19
  // Otherwise just set the empty node equal to new void
30
20
  } else {
31
- _slate.Transforms.setNodes(editor, element);
21
+ Transforms.setNodes(editor, element);
32
22
  }
33
23
  } else {
34
- _slate.Transforms.insertNodes(editor, element);
24
+ Transforms.insertNodes(editor, element);
35
25
  }
36
26
  // Add an empty node after the new void
37
- _slate.Transforms.insertNodes(editor, {
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/LlswXSAmJiBFZGl0b3IuaXNWb2lkKGVkaXRvciwgcHJldmlvdXNbMF0pKSB7XG4gICAgICAvLyBJbnNlcnQgYSBibGFuayBlbGVtZW50IGJldHdlZW4gdm9pZCBub2Rlc1xuICAgICAgLy8gc28gdXNlciBjYW4gcGxhY2UgY3Vyc29yIGJldHdlZW4gdm9pZCBub2Rlc1xuICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIHsgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH0pXG4gICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgZWxlbWVudClcbiAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHNldCB0aGUgZW1wdHkgbm9kZSBlcXVhbCB0byBuZXcgdm9pZFxuICAgIH0gZWxzZSB7XG4gICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgZWxlbWVudClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGVsZW1lbnQpXG4gIH1cblxuICAvLyBBZGQgYW4gZW1wdHkgbm9kZSBhZnRlciB0aGUgbmV3IHZvaWRcbiAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIHsgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH0pXG59XG4iXSwibmFtZXMiOlsiaW5qZWN0Vm9pZEVsZW1lbnQiLCJlZGl0b3IiLCJlbGVtZW50IiwibGFzdFNlbGVjdGVkRWxlbWVudElzRW1wdHkiLCJpc0xhc3RTZWxlY3RlZEVsZW1lbnRFbXB0eSIsInByZXZpb3VzIiwiRWRpdG9yIiwiaXNWb2lkIiwiVHJhbnNmb3JtcyIsImluc2VydE5vZGVzIiwiY2hpbGRyZW4iLCJ0ZXh0Iiwic2V0Tm9kZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBUWFBOzs7ZUFBQUE7Ozt1QkFOc0I7NENBSVE7QUFFcEMsTUFBTUEsb0JBQW9CLENBQUNDLFFBQWdCQztJQUNoRCxNQUFNQyw2QkFBNkJDLElBQUFBLHNEQUEwQixFQUFDSDtJQUM5RCxNQUFNSSxXQUFXQyxhQUFNLENBQUNELFFBQVEsQ0FBY0o7SUFFOUMsSUFBSUUsNEJBQTRCO1FBQzlCLDJCQUEyQjtRQUMzQixJQUFJRSxVQUFVLENBQUMsRUFBRSxJQUFJQyxhQUFNLENBQUNDLE1BQU0sQ0FBQ04sUUFBUUksUUFBUSxDQUFDLEVBQUUsR0FBRztZQUN2RCw0Q0FBNEM7WUFDNUMsOENBQThDO1lBQzlDRyxpQkFBVSxDQUFDQyxXQUFXLENBQUNSLFFBQVE7Z0JBQUVTLFVBQVU7b0JBQUM7d0JBQUVDLE1BQU07b0JBQUc7aUJBQUU7WUFBQztZQUMxREgsaUJBQVUsQ0FBQ0ksUUFBUSxDQUFDWCxRQUFRQztRQUM1QixzREFBc0Q7UUFDeEQsT0FBTztZQUNMTSxpQkFBVSxDQUFDSSxRQUFRLENBQUNYLFFBQVFDO1FBQzlCO0lBQ0YsT0FBTztRQUNMTSxpQkFBVSxDQUFDQyxXQUFXLENBQUNSLFFBQVFDO0lBQ2pDO0lBRUEsdUNBQXVDO0lBQ3ZDTSxpQkFBVSxDQUFDQyxXQUFXLENBQUNSLFFBQVE7UUFBRVMsVUFBVTtZQUFDO2dCQUFFQyxNQUFNO1lBQUc7U0FBRTtJQUFDO0FBQzVEIn0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZC9lbGVtZW50cy9pbmplY3RWb2lkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJ1xuXG5pbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSdcblxuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc0xhc3RTZWxlY3RlZEVsZW1lbnRFbXB0eSB9IGZyb20gJy4vaXNMYXN0U2VsZWN0ZWRFbGVtZW50RW1wdHknXG5cbmV4cG9ydCBjb25zdCBpbmplY3RWb2lkRWxlbWVudCA9IChlZGl0b3I6IEVkaXRvciwgZWxlbWVudDogRWxlbWVudCk6IHZvaWQgPT4ge1xuICBjb25zdCBsYXN0U2VsZWN0ZWRFbGVtZW50SXNFbXB0eSA9IGlzTGFzdFNlbGVjdGVkRWxlbWVudEVtcHR5KGVkaXRvcilcbiAgY29uc3QgcHJldmlvdXMgPSBFZGl0b3IucHJldmlvdXM8RWxlbWVudE5vZGU+KGVkaXRvcilcblxuICBpZiAobGFzdFNlbGVjdGVkRWxlbWVudElzRW1wdHkpIHtcbiAgICAvLyBJZiBwcmV2aW91cyBub2RlIGlzIHZvaWRcbiAgICBpZiAocHJldmlvdXM/LlswXSAmJiBFZGl0b3IuaXNWb2lkKGVkaXRvciwgcHJldmlvdXNbMF0pKSB7XG4gICAgICAvLyBJbnNlcnQgYSBibGFuayBlbGVtZW50IGJldHdlZW4gdm9pZCBub2Rlc1xuICAgICAgLy8gc28gdXNlciBjYW4gcGxhY2UgY3Vyc29yIGJldHdlZW4gdm9pZCBub2Rlc1xuICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIHsgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH0pXG4gICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgZWxlbWVudClcbiAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHNldCB0aGUgZW1wdHkgbm9kZSBlcXVhbCB0byBuZXcgdm9pZFxuICAgIH0gZWxzZSB7XG4gICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgZWxlbWVudClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGVsZW1lbnQpXG4gIH1cblxuICAvLyBBZGQgYW4gZW1wdHkgbm9kZSBhZnRlciB0aGUgbmV3IHZvaWRcbiAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIHsgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH0pXG59XG4iXSwibmFtZXMiOlsiRWRpdG9yIiwiVHJhbnNmb3JtcyIsImlzTGFzdFNlbGVjdGVkRWxlbWVudEVtcHR5IiwiaW5qZWN0Vm9pZEVsZW1lbnQiLCJlZGl0b3IiLCJlbGVtZW50IiwibGFzdFNlbGVjdGVkRWxlbWVudElzRW1wdHkiLCJwcmV2aW91cyIsImlzVm9pZCIsImluc2VydE5vZGVzIiwiY2hpbGRyZW4iLCJ0ZXh0Iiwic2V0Tm9kZXMiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLE1BQU0sRUFBRUMsVUFBVSxRQUFRLFFBQU87QUFJMUMsU0FBU0MsMEJBQTBCLFFBQVEsK0JBQThCO0FBRXpFLE9BQU8sTUFBTUMsb0JBQW9CLENBQUNDLFFBQWdCQztJQUNoRCxNQUFNQyw2QkFBNkJKLDJCQUEyQkU7SUFDOUQsTUFBTUcsV0FBV1AsT0FBT08sUUFBUSxDQUFjSDtJQUU5QyxJQUFJRSw0QkFBNEI7UUFDOUIsMkJBQTJCO1FBQzNCLElBQUlDLFVBQVUsQ0FBQyxFQUFFLElBQUlQLE9BQU9RLE1BQU0sQ0FBQ0osUUFBUUcsUUFBUSxDQUFDLEVBQUUsR0FBRztZQUN2RCw0Q0FBNEM7WUFDNUMsOENBQThDO1lBQzlDTixXQUFXUSxXQUFXLENBQUNMLFFBQVE7Z0JBQUVNLFVBQVU7b0JBQUM7d0JBQUVDLE1BQU07b0JBQUc7aUJBQUU7WUFBQztZQUMxRFYsV0FBV1csUUFBUSxDQUFDUixRQUFRQztRQUM1QixzREFBc0Q7UUFDeEQsT0FBTztZQUNMSixXQUFXVyxRQUFRLENBQUNSLFFBQVFDO1FBQzlCO0lBQ0YsT0FBTztRQUNMSixXQUFXUSxXQUFXLENBQUNMLFFBQVFDO0lBQ2pDO0lBRUEsdUNBQXVDO0lBQ3ZDSixXQUFXUSxXQUFXLENBQUNMLFFBQVE7UUFBRU0sVUFBVTtZQUFDO2dCQUFFQyxNQUFNO1lBQUc7U0FBRTtJQUFDO0FBQzVELEVBQUMifQ==