@payloadcms/richtext-slate 3.0.0-alpha.4 → 3.0.0-alpha.40

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