PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.5.0
JetFormBuilder — Dynamic Blocks Form Builder v3.5.0
3.6.5.2 3.6.5.1 3.6.5 3.6.4.2 3.6.4.1 3.6.4 3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / modules / html-parser / assets / build / admin-ui.js
jetformbuilder / modules / html-parser / assets / build Last commit date
admin-ui.asset.php 1 year ago admin-ui.js 1 year ago parser.asset.php 1 year ago parser.js 1 year ago
admin-ui.js
441 lines
1 /******/ (() => { // webpackBootstrap
2 /******/ "use strict";
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "../../admin/HtmlParserButton.js":
6 /*!***************************************!*\
7 !*** ../../admin/HtmlParserButton.js ***!
8 \***************************************/
9 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10
11 __webpack_require__.r(__webpack_exports__);
12 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13 /* harmony export */ "default": () => (/* binding */ HtmlParserButton)
14 /* harmony export */ });
15 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
16 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
17 /* harmony import */ var _HtmlParserModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HtmlParserModal */ "../../admin/HtmlParserModal.js");
18 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
19 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
20 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
21 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
22
23
24
25
26 function HtmlParserButton() {
27 const [showModal, setShowModal] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)(false);
28 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
29 href: "#",
30 className: "page-title-action",
31 onClick: event => {
32 event.preventDefault();
33 setShowModal(true);
34 }
35 }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Import from HTML', 'jet-form-builder')), showModal && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_HtmlParserModal__WEBPACK_IMPORTED_MODULE_1__["default"], {
36 setShowModal: setShowModal
37 }));
38 }
39
40 /***/ }),
41
42 /***/ "../../admin/HtmlParserFooter.js":
43 /*!***************************************!*\
44 !*** ../../admin/HtmlParserFooter.js ***!
45 \***************************************/
46 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
47
48 __webpack_require__.r(__webpack_exports__);
49 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
50 /* harmony export */ "default": () => (/* binding */ HtmlParserFooter)
51 /* harmony export */ });
52 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
53 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
54 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
55 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
56 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
57 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
58 /* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch");
59 /* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__);
60 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
61 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__);
62 /* harmony import */ var _serialize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./serialize */ "../../admin/serialize.js");
63
64
65
66
67
68
69 const {
70 parseHTMLtoBlocks
71 } = JetFormBuilderParser;
72 const getPostEditUrl = id => {
73 const url = new URL(JetFormBuilderAdmin.edit_url);
74 url.searchParams.set('post', id);
75 return url.href;
76 };
77 function HtmlParserFooter({
78 clearHTML,
79 rawHTML,
80 setShowModal
81 }) {
82 const [isBusy, setIsBusy] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useState)(false);
83 const createForm = async () => {
84 setIsBusy(true);
85 try {
86 const blocks = parseHTMLtoBlocks(rawHTML);
87 if (!blocks.length) {
88 console.error((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('JFB: Could not parse blocks', 'jet-form-builder'), rawHTML);
89 setIsBusy(false);
90 return;
91 }
92 const serialized = (0,_serialize__WEBPACK_IMPORTED_MODULE_5__["default"])(blocks);
93 const response = await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({
94 method: 'POST',
95 path: '/wp/v2/jet-form-builder',
96 data: {
97 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Imported HTML Form', 'jet-form-builder') + ' ' + new Date().toLocaleString('sv-SE').replace('T', ' '),
98 content: serialized,
99 status: 'publish'
100 }
101 });
102 window.location.href = getPostEditUrl(response.id);
103 } catch (error) {
104 console.error('Failed to create form:', error);
105 setIsBusy(false);
106 }
107 };
108 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Flex, {
109 justify: "space-between"
110 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
111 variant: "secondary",
112 onClick: clearHTML
113 }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Back', 'jet-form-builder')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
114 variant: "primary",
115 onClick: createForm,
116 isBusy: isBusy,
117 disabled: isBusy
118 }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Create Form', 'jet-form-builder')));
119 }
120
121 /***/ }),
122
123 /***/ "../../admin/HtmlParserModal.js":
124 /*!**************************************!*\
125 !*** ../../admin/HtmlParserModal.js ***!
126 \**************************************/
127 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
128
129 __webpack_require__.r(__webpack_exports__);
130 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
131 /* harmony export */ "default": () => (/* binding */ HtmlParserModal)
132 /* harmony export */ });
133 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
134 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
135 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
136 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
137 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
138 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
139 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
140 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
141 /* harmony import */ var _HtmlParserFooter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./HtmlParserFooter */ "../../admin/HtmlParserFooter.js");
142
143
144
145
146
147 const {
148 parseHTMLtoBlocks,
149 getFormInnerFields
150 } = JetFormBuilderParser;
151 function HtmlParserModal({
152 setShowModal
153 }) {
154 const [html, setHtml] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)('');
155 const [formHTML, setFormHTML] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)('');
156 const [isParsing, setParsing] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)(false);
157 const [error, setError] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)('');
158 const handleSubmit = () => {
159 setParsing(true);
160 setError('');
161 try {
162 const innerHTML = getFormInnerFields(html);
163 const styledHTML = `
164 <div class="jet-form-builder-html-parser-preview">
165 <style>
166 .jet-form-builder-html-parser-preview {
167 pointer-events: none;
168 }
169 .jet-form-builder-html-parser-preview textarea,
170 .jet-form-builder-html-parser-preview input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
171 .jet-form-builder-html-parser-preview select {
172 display: block;
173 width: 100% !important;
174 max-width: 100% !important;
175 margin-bottom: 10px;
176 }
177 .jet-form-builder-html-parser-preview label {
178 display:block;
179 margin-bottom:5px;
180 }
181 .jet-form-builder-html-parser-preview br {
182 display:none;
183 }
184 .jet-form-builder-html-parser-preview input[type="submit"],
185 .jet-form-builder-html-parser-preview button {
186 display:block;
187 border: none;
188 background-color: #0071a1;
189 color: #fff;
190 padding: 10px 20px;
191 cursor: pointer;
192 }
193 </style>
194 ${innerHTML}
195 </div>
196 `;
197 setFormHTML(styledHTML);
198 } catch (err) {
199 console.error(err);
200 setError(err?.message || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Failed to parse HTML.', 'jet-form-builder'));
201 } finally {
202 setParsing(false);
203 }
204 };
205 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Modal, {
206 style: {
207 width: '60vw'
208 },
209 onRequestClose: () => setShowModal(false),
210 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Import HTML Form', 'jet-form-builder'),
211 className: "jfb-html-parser-modal"
212 }, error && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Notice, {
213 status: "error",
214 isDismissible: true,
215 onRemove: () => setError('')
216 }, error), Boolean(formHTML.length) ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
217 dangerouslySetInnerHTML: {
218 __html: formHTML
219 },
220 style: {
221 padding: '2em 1em',
222 backgroundColor: '#f6f7f7',
223 marginBottom: '1em'
224 }
225 }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_HtmlParserFooter__WEBPACK_IMPORTED_MODULE_4__["default"], {
226 clearHTML: () => setFormHTML(''),
227 formHTML: formHTML,
228 rawHTML: html,
229 setShowModal: setShowModal
230 })) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TextareaControl, {
231 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Paste your HTML here', 'jet-form-builder'),
232 value: html,
233 onChange: setHtml,
234 rows: 7
235 }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("ul", {
236 style: {
237 listStyle: 'disc',
238 paddingInlineStart: '1em'
239 }
240 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('You can use any HTML code that contains form elements, but only headings, form controls, and buttons will be parsed.', 'jet-form-builder')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(`All the code you paste here will be parsed into a single Form, even if it contains more than one <form> tag.`, 'jet-form-builder')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(`The parser can only understand form elements and structure; it can't parse styling or behavior.`, 'jet-form-builder'))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Flex, {
241 justify: "flex-end",
242 style: {
243 marginTop: '1em'
244 }
245 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
246 isPrimary: true,
247 isBusy: isParsing,
248 disabled: isParsing || !html.trim().length,
249 onClick: handleSubmit
250 }, isParsing ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Parsing...', 'jet-form-builder') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Parse HTML', 'jet-form-builder')))));
251 }
252
253 /***/ }),
254
255 /***/ "../../admin/serialize.js":
256 /*!********************************!*\
257 !*** ../../admin/serialize.js ***!
258 \********************************/
259 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
260
261 __webpack_require__.r(__webpack_exports__);
262 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
263 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
264 /* harmony export */ });
265 function convertToCommentBlock({
266 name,
267 attributes
268 }) {
269 const blockAttrs = JSON.stringify(attributes);
270 return `<!-- wp:${name} ${blockAttrs} /-->`;
271 }
272
273 /**
274 * @param blocks {Object[]}
275 */
276 function serialize(blocks) {
277 return blocks.map(convertToCommentBlock).join('\n\n');
278 }
279 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (serialize);
280
281 /***/ }),
282
283 /***/ "@wordpress/api-fetch":
284 /*!**********************************!*\
285 !*** external ["wp","apiFetch"] ***!
286 \**********************************/
287 /***/ ((module) => {
288
289 module.exports = window["wp"]["apiFetch"];
290
291 /***/ }),
292
293 /***/ "@wordpress/components":
294 /*!************************************!*\
295 !*** external ["wp","components"] ***!
296 \************************************/
297 /***/ ((module) => {
298
299 module.exports = window["wp"]["components"];
300
301 /***/ }),
302
303 /***/ "@wordpress/dom-ready":
304 /*!**********************************!*\
305 !*** external ["wp","domReady"] ***!
306 \**********************************/
307 /***/ ((module) => {
308
309 module.exports = window["wp"]["domReady"];
310
311 /***/ }),
312
313 /***/ "@wordpress/element":
314 /*!*********************************!*\
315 !*** external ["wp","element"] ***!
316 \*********************************/
317 /***/ ((module) => {
318
319 module.exports = window["wp"]["element"];
320
321 /***/ }),
322
323 /***/ "@wordpress/i18n":
324 /*!******************************!*\
325 !*** external ["wp","i18n"] ***!
326 \******************************/
327 /***/ ((module) => {
328
329 module.exports = window["wp"]["i18n"];
330
331 /***/ }),
332
333 /***/ "react":
334 /*!************************!*\
335 !*** external "React" ***!
336 \************************/
337 /***/ ((module) => {
338
339 module.exports = window["React"];
340
341 /***/ })
342
343 /******/ });
344 /************************************************************************/
345 /******/ // The module cache
346 /******/ var __webpack_module_cache__ = {};
347 /******/
348 /******/ // The require function
349 /******/ function __webpack_require__(moduleId) {
350 /******/ // Check if module is in cache
351 /******/ var cachedModule = __webpack_module_cache__[moduleId];
352 /******/ if (cachedModule !== undefined) {
353 /******/ return cachedModule.exports;
354 /******/ }
355 /******/ // Create a new module (and put it into the cache)
356 /******/ var module = __webpack_module_cache__[moduleId] = {
357 /******/ // no module.id needed
358 /******/ // no module.loaded needed
359 /******/ exports: {}
360 /******/ };
361 /******/
362 /******/ // Execute the module function
363 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
364 /******/
365 /******/ // Return the exports of the module
366 /******/ return module.exports;
367 /******/ }
368 /******/
369 /************************************************************************/
370 /******/ /* webpack/runtime/compat get default export */
371 /******/ (() => {
372 /******/ // getDefaultExport function for compatibility with non-harmony modules
373 /******/ __webpack_require__.n = (module) => {
374 /******/ var getter = module && module.__esModule ?
375 /******/ () => (module['default']) :
376 /******/ () => (module);
377 /******/ __webpack_require__.d(getter, { a: getter });
378 /******/ return getter;
379 /******/ };
380 /******/ })();
381 /******/
382 /******/ /* webpack/runtime/define property getters */
383 /******/ (() => {
384 /******/ // define getter functions for harmony exports
385 /******/ __webpack_require__.d = (exports, definition) => {
386 /******/ for(var key in definition) {
387 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
388 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
389 /******/ }
390 /******/ }
391 /******/ };
392 /******/ })();
393 /******/
394 /******/ /* webpack/runtime/hasOwnProperty shorthand */
395 /******/ (() => {
396 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
397 /******/ })();
398 /******/
399 /******/ /* webpack/runtime/make namespace object */
400 /******/ (() => {
401 /******/ // define __esModule on exports
402 /******/ __webpack_require__.r = (exports) => {
403 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
404 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
405 /******/ }
406 /******/ Object.defineProperty(exports, '__esModule', { value: true });
407 /******/ };
408 /******/ })();
409 /******/
410 /************************************************************************/
411 var __webpack_exports__ = {};
412 // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
413 (() => {
414 /*!****************************!*\
415 !*** ../../admin/index.js ***!
416 \****************************/
417 __webpack_require__.r(__webpack_exports__);
418 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
419 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
420 /* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/dom-ready */ "@wordpress/dom-ready");
421 /* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__);
422 /* harmony import */ var _HtmlParserButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HtmlParserButton */ "../../admin/HtmlParserButton.js");
423
424
425
426 _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1___default()(() => {
427 const target = document.querySelector('.page-title-action[href*="post-new.php"]');
428 if (!target) {
429 return;
430 }
431 const container = document.createElement('div');
432 container.style.display = 'inline-flex';
433 container.style.marginLeft = '4px';
434 target.after(container);
435 (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot)(container).render(wp.element.createElement(_HtmlParserButton__WEBPACK_IMPORTED_MODULE_2__["default"]));
436 });
437 })();
438
439 /******/ })()
440 ;
441 //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tdWkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFBQTtBQUdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQU1BOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNsRUE7QUFPQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFJQTtBQUNBO0FBQ0E7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQWVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBV0E7Ozs7Ozs7Ozs7Ozs7O0FDMUpBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7Ozs7O0FDYkE7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7Ozs7O0FDQUE7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQ1BBOzs7OztBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0FDTkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQSIsInNvdXJjZXMiOlsid2VicGFjazovL2pmYi1odG1sLXBhcnNlci8uLi8uLi9hZG1pbi9IdG1sUGFyc2VyQnV0dG9uLmpzIiwid2VicGFjazovL2pmYi1odG1sLXBhcnNlci8uLi8uLi9hZG1pbi9IdG1sUGFyc2VyRm9vdGVyLmpzIiwid2VicGFjazovL2pmYi1odG1sLXBhcnNlci8uLi8uLi9hZG1pbi9IdG1sUGFyc2VyTW9kYWwuanMiLCJ3ZWJwYWNrOi8vamZiLWh0bWwtcGFyc2VyLy4uLy4uL2FkbWluL3NlcmlhbGl6ZS5qcyIsIndlYnBhY2s6Ly9qZmItaHRtbC1wYXJzZXIvZXh0ZXJuYWwgd2luZG93IFtcIndwXCIsXCJhcGlGZXRjaFwiXSIsIndlYnBhY2s6Ly9qZmItaHRtbC1wYXJzZXIvZXh0ZXJuYWwgd2luZG93IFtcIndwXCIsXCJjb21wb25lbnRzXCJdIiwid2VicGFjazovL2pmYi1odG1sLXBhcnNlci9leHRlcm5hbCB3aW5kb3cgW1wid3BcIixcImRvbVJlYWR5XCJdIiwid2VicGFjazovL2pmYi1odG1sLXBhcnNlci9leHRlcm5hbCB3aW5kb3cgW1wid3BcIixcImVsZW1lbnRcIl0iLCJ3ZWJwYWNrOi8vamZiLWh0bWwtcGFyc2VyL2V4dGVybmFsIHdpbmRvdyBbXCJ3cFwiLFwiaTE4blwiXSIsIndlYnBhY2s6Ly9qZmItaHRtbC1wYXJzZXIvZXh0ZXJuYWwgd2luZG93IFwiUmVhY3RcIiIsIndlYnBhY2s6Ly9qZmItaHRtbC1wYXJzZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vamZiLWh0bWwtcGFyc2VyL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL2pmYi1odG1sLXBhcnNlci93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vamZiLWh0bWwtcGFyc2VyL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vamZiLWh0bWwtcGFyc2VyL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vamZiLWh0bWwtcGFyc2VyLy4uLy4uL2FkbWluL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIdG1sUGFyc2VyTW9kYWwgZnJvbSAnLi9IdG1sUGFyc2VyTW9kYWwnO1xyXG5pbXBvcnQgeyB1c2VTdGF0ZSwgRnJhZ21lbnQgfSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xyXG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIdG1sUGFyc2VyQnV0dG9uKCkge1xyXG5cdGNvbnN0IFsgc2hvd01vZGFsLCBzZXRTaG93TW9kYWwgXSA9IHVzZVN0YXRlKCBmYWxzZSApO1xyXG5cclxuXHRyZXR1cm4gKFxyXG5cdFx0PEZyYWdtZW50PlxyXG5cdFx0XHQ8YVxyXG5cdFx0XHRcdGhyZWY9XCIjXCJcclxuXHRcdFx0XHRjbGFzc05hbWU9XCJwYWdlLXRpdGxlLWFjdGlvblwiXHJcblx0XHRcdFx0b25DbGljaz17ICggZXZlbnQgKSA9PiB7XHJcblx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0c2V0U2hvd01vZGFsKCB0cnVlICk7XHJcblx0XHRcdFx0fSB9XHJcblx0XHRcdD5cclxuXHRcdFx0XHR7IF9fKCAnSW1wb3J0IGZyb20gSFRNTCcsICdqZXQtZm9ybS1idWlsZGVyJyApIH1cclxuXHRcdFx0PC9hPlxyXG5cdFx0XHR7IHNob3dNb2RhbCAmJiA8SHRtbFBhcnNlck1vZGFsIHNldFNob3dNb2RhbD17IHNldFNob3dNb2RhbCB9IC8+IH1cclxuXHRcdDwvRnJhZ21lbnQ+XHJcblx0KTtcclxufSIsImltcG9ydCB7IEJ1dHRvbiwgRmxleCB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcclxuaW1wb3J0IGFwaUZldGNoIGZyb20gJ0B3b3JkcHJlc3MvYXBpLWZldGNoJztcclxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xyXG5pbXBvcnQgc2VyaWFsaXplIGZyb20gJy4vc2VyaWFsaXplJztcclxuXHJcbmNvbnN0IHsgcGFyc2VIVE1MdG9CbG9ja3MgfSA9IEpldEZvcm1CdWlsZGVyUGFyc2VyO1xyXG5cclxuY29uc3QgZ2V0UG9zdEVkaXRVcmwgPSBpZCA9PiB7XHJcblx0Y29uc3QgdXJsID0gbmV3IFVSTCggSmV0Rm9ybUJ1aWxkZXJBZG1pbi5lZGl0X3VybCApO1xyXG5cdHVybC5zZWFyY2hQYXJhbXMuc2V0KCAncG9zdCcsIGlkICk7XHJcblxyXG5cdHJldHVybiB1cmwuaHJlZjtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEh0bWxQYXJzZXJGb290ZXIoIHsgY2xlYXJIVE1MLCByYXdIVE1MLCBzZXRTaG93TW9kYWwgfSApIHtcclxuXHRjb25zdCBbIGlzQnVzeSwgc2V0SXNCdXN5IF0gPSB1c2VTdGF0ZSggZmFsc2UgKTtcclxuXHRjb25zdCBjcmVhdGVGb3JtID0gYXN5bmMgKCkgPT4ge1xyXG5cdFx0c2V0SXNCdXN5KCB0cnVlICk7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRjb25zdCBibG9ja3MgPSBwYXJzZUhUTUx0b0Jsb2NrcyggcmF3SFRNTCApO1xyXG5cclxuXHRcdFx0aWYgKCAhYmxvY2tzLmxlbmd0aCApIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCBfXyggJ0pGQjogQ291bGQgbm90IHBhcnNlIGJsb2NrcycsICdqZXQtZm9ybS1idWlsZGVyJyApLCByYXdIVE1MICk7XHJcblx0XHRcdFx0c2V0SXNCdXN5KCBmYWxzZSApO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3Qgc2VyaWFsaXplZCA9IHNlcmlhbGl6ZSggYmxvY2tzICk7XHJcblxyXG5cdFx0XHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUZldGNoKCB7XHJcblx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0cGF0aDogJy93cC92Mi9qZXQtZm9ybS1idWlsZGVyJyxcclxuXHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHR0aXRsZTogX18oICdJbXBvcnRlZCBIVE1MIEZvcm0nLCAnamV0LWZvcm0tYnVpbGRlcicgKSArICcgJyArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoJ3N2LVNFJykucmVwbGFjZSgnVCcsICcgJyksXHJcblx0XHRcdFx0XHRjb250ZW50OiBzZXJpYWxpemVkLFxyXG5cdFx0XHRcdFx0c3RhdHVzOiAncHVibGlzaCcsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0fSApO1xyXG5cclxuXHRcdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSBnZXRQb3N0RWRpdFVybCggcmVzcG9uc2UuaWQgKTtcclxuXHJcblx0XHR9IGNhdGNoICggZXJyb3IgKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoICdGYWlsZWQgdG8gY3JlYXRlIGZvcm06JywgZXJyb3IgKTtcclxuXHRcdFx0c2V0SXNCdXN5KCBmYWxzZSApO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdHJldHVybiAoXHJcblx0XHQ8RmxleCBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHQ8QnV0dG9uXHJcblx0XHRcdFx0dmFyaWFudD1cInNlY29uZGFyeVwiXHJcblx0XHRcdFx0b25DbGljaz17IGNsZWFySFRNTCB9XHJcblx0XHRcdD5cclxuXHRcdFx0XHR7IF9fKCAnQmFjaycsICdqZXQtZm9ybS1idWlsZGVyJyApIH1cclxuXHRcdFx0PC9CdXR0b24+XHJcblx0XHRcdDxCdXR0b25cclxuXHRcdFx0XHR2YXJpYW50PVwicHJpbWFyeVwiXHJcblx0XHRcdFx0b25DbGljaz17IGNyZWF0ZUZvcm0gfVxyXG5cdFx0XHRcdGlzQnVzeT17IGlzQnVzeSB9XHJcblx0XHRcdFx0ZGlzYWJsZWQ9eyBpc0J1c3kgfVxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0eyBfXyggJ0NyZWF0ZSBGb3JtJywgJ2pldC1mb3JtLWJ1aWxkZXInICkgfVxyXG5cdFx0XHQ8L0J1dHRvbj5cclxuXHRcdDwvRmxleD5cclxuXHQpO1xyXG59XHJcbiIsImltcG9ydCB7XHJcblx0VGV4dGFyZWFDb250cm9sLFxyXG5cdEJ1dHRvbixcclxuXHRGbGV4LFxyXG5cdE5vdGljZSxcclxuXHRNb2RhbCxcclxufSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ0B3b3JkcHJlc3MvZWxlbWVudCc7XHJcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcclxuaW1wb3J0IEh0bWxQYXJzZXJGb290ZXIgZnJvbSAnLi9IdG1sUGFyc2VyRm9vdGVyJztcclxuXHJcbmNvbnN0IHtcclxuXHRwYXJzZUhUTUx0b0Jsb2NrcyxcclxuXHRnZXRGb3JtSW5uZXJGaWVsZHMsXHJcbn0gPSBKZXRGb3JtQnVpbGRlclBhcnNlcjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEh0bWxQYXJzZXJNb2RhbCgge3NldFNob3dNb2RhbH0gKSB7XHJcblx0Y29uc3QgWyBodG1sLCBzZXRIdG1sIF0gICAgICAgICA9IHVzZVN0YXRlKCAnJyApO1xyXG5cdGNvbnN0IFsgZm9ybUhUTUwsIHNldEZvcm1IVE1MIF0gPSB1c2VTdGF0ZSggJycgKTtcclxuXHRjb25zdCBbIGlzUGFyc2luZywgc2V0UGFyc2luZyBdID0gdXNlU3RhdGUoIGZhbHNlICk7XHJcblx0Y29uc3QgWyBlcnJvciwgc2V0RXJyb3IgXSAgICAgICA9IHVzZVN0YXRlKCAnJyApO1xyXG5cclxuXHRjb25zdCBoYW5kbGVTdWJtaXQgPSAoKSA9PiB7XHJcblx0XHRzZXRQYXJzaW5nKCB0cnVlICk7XHJcblx0XHRzZXRFcnJvciggJycgKTtcclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRjb25zdCBpbm5lckhUTUwgPSBnZXRGb3JtSW5uZXJGaWVsZHMoIGh0bWwgKTtcclxuXHJcblx0XHRcdGNvbnN0IHN0eWxlZEhUTUwgPSBgXHJcblx0XHRcdDxkaXYgY2xhc3M9XCJqZXQtZm9ybS1idWlsZGVyLWh0bWwtcGFyc2VyLXByZXZpZXdcIj5cclxuXHRcdFx0XHQ8c3R5bGU+XHJcblx0XHRcdFx0XHQuamV0LWZvcm0tYnVpbGRlci1odG1sLXBhcnNlci1wcmV2aWV3IHtcclxuXHRcdFx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQuamV0LWZvcm0tYnVpbGRlci1odG1sLXBhcnNlci1wcmV2aWV3IHRleHRhcmVhLFxyXG5cdFx0XHRcdFx0LmpldC1mb3JtLWJ1aWxkZXItaHRtbC1wYXJzZXItcHJldmlldyBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6bm90KFt0eXBlPVwicmFkaW9cIl0pOm5vdChbdHlwZT1cInN1Ym1pdFwiXSksXHJcblx0XHRcdFx0XHQuamV0LWZvcm0tYnVpbGRlci1odG1sLXBhcnNlci1wcmV2aWV3IHNlbGVjdCB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0XHRtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC5qZXQtZm9ybS1idWlsZGVyLWh0bWwtcGFyc2VyLXByZXZpZXcgbGFiZWwge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjVweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC5qZXQtZm9ybS1idWlsZGVyLWh0bWwtcGFyc2VyLXByZXZpZXcgYnIge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQuamV0LWZvcm0tYnVpbGRlci1odG1sLXBhcnNlci1wcmV2aWV3IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXHJcblx0XHRcdFx0XHQuamV0LWZvcm0tYnVpbGRlci1odG1sLXBhcnNlci1wcmV2aWV3IGJ1dHRvbiB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwNzFhMTtcclxuXHRcdFx0XHRcdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDEwcHggMjBweDtcclxuXHRcdFx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvc3R5bGU+XHJcblx0XHRcdFx0JHtpbm5lckhUTUx9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHRgO1xyXG5cclxuXHRcdFx0c2V0Rm9ybUhUTUwoIHN0eWxlZEhUTUwgKTtcclxuXHRcdH0gY2F0Y2ggKCBlcnIgKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoIGVyciApO1xyXG5cdFx0XHRzZXRFcnJvcihcclxuXHRcdFx0XHRlcnI/Lm1lc3NhZ2UgfHxcclxuXHRcdFx0XHRfXyggJ0ZhaWxlZCB0byBwYXJzZSBIVE1MLicsICdqZXQtZm9ybS1idWlsZGVyJyApXHJcblx0XHRcdCk7XHJcblx0XHR9IGZpbmFsbHkge1xyXG5cdFx0XHRzZXRQYXJzaW5nKCBmYWxzZSApO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdHJldHVybiAoXHJcblx0XHQ8TW9kYWxcclxuXHRcdFx0c3R5bGU9eyB7IHdpZHRoOiAnNjB2dycgfSB9XHJcblx0XHRcdG9uUmVxdWVzdENsb3NlPXsgKCkgPT4gc2V0U2hvd01vZGFsKCBmYWxzZSApIH1cclxuXHRcdFx0dGl0bGU9eyBfXyggJ0ltcG9ydCBIVE1MIEZvcm0nLCAnamV0LWZvcm0tYnVpbGRlcicgKSB9XHJcblx0XHRcdGNsYXNzTmFtZT1cImpmYi1odG1sLXBhcnNlci1tb2RhbFwiXHJcblx0XHQ+XHJcblx0XHRcdHsgZXJyb3IgJiYgKFxyXG5cdFx0XHRcdDxOb3RpY2VcclxuXHRcdFx0XHRcdHN0YXR1cz1cImVycm9yXCJcclxuXHRcdFx0XHRcdGlzRGlzbWlzc2libGVcclxuXHRcdFx0XHRcdG9uUmVtb3ZlPXsgKCkgPT4gc2V0RXJyb3IoICcnICkgfVxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdHsgZXJyb3IgfVxyXG5cdFx0XHRcdDwvTm90aWNlPlxyXG5cdFx0XHQpIH1cclxuXHJcblx0XHRcdHsgQm9vbGVhbiggZm9ybUhUTUwubGVuZ3RoICkgPyAoXHJcblx0XHRcdFx0PD5cclxuXHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9eyB7IF9faHRtbDogZm9ybUhUTUwgfSB9XHJcblx0XHRcdFx0XHRcdHN0eWxlPXsge1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6ICcyZW0gMWVtJyxcclxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICcjZjZmN2Y3JyxcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW5Cb3R0b206ICcxZW0nLFxyXG5cdFx0XHRcdFx0XHR9IH1cclxuXHRcdFx0XHRcdC8+XHJcblxyXG5cdFx0XHRcdFx0PEh0bWxQYXJzZXJGb290ZXJcclxuXHRcdFx0XHRcdFx0Y2xlYXJIVE1MPXsgKCkgPT4gc2V0Rm9ybUhUTUwoICcnICkgfVxyXG5cdFx0XHRcdFx0XHRmb3JtSFRNTD17IGZvcm1IVE1MIH1cclxuXHRcdFx0XHRcdFx0cmF3SFRNTD17IGh0bWwgfVxyXG5cdFx0XHRcdFx0XHRzZXRTaG93TW9kYWw9eyBzZXRTaG93TW9kYWwgfVxyXG5cdFx0XHRcdFx0Lz5cclxuXHRcdFx0XHQ8Lz5cclxuXHRcdFx0KSA6IChcclxuXHRcdFx0XHQ8PlxyXG5cdFx0XHRcdFx0PFRleHRhcmVhQ29udHJvbFxyXG5cdFx0XHRcdFx0XHRsYWJlbD17IF9fKCAnUGFzdGUgeW91ciBIVE1MIGhlcmUnLCAnamV0LWZvcm0tYnVpbGRlcicgKSB9XHJcblx0XHRcdFx0XHRcdHZhbHVlPXsgaHRtbCB9XHJcblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsgc2V0SHRtbCB9XHJcblx0XHRcdFx0XHRcdHJvd3M9eyA3IH1cclxuXHRcdFx0XHRcdC8+XHJcblxyXG5cdFx0XHRcdFx0PHVsIHN0eWxlPXsge1xyXG5cdFx0XHRcdFx0XHRsaXN0U3R5bGU6ICdkaXNjJyxcclxuXHRcdFx0XHRcdFx0cGFkZGluZ0lubGluZVN0YXJ0OiAnMWVtJyxcclxuXHRcdFx0XHRcdH0gfT5cclxuXHRcdFx0XHRcdFx0PGxpPnsgX18oXHJcblx0XHRcdFx0XHRcdFx0J1lvdSBjYW4gdXNlIGFueSBIVE1MIGNvZGUgdGhhdCBjb250YWlucyBmb3JtIGVsZW1lbnRzLCBidXQgb25seSBoZWFkaW5ncywgZm9ybSBjb250cm9scywgYW5kIGJ1dHRvbnMgd2lsbCBiZSBwYXJzZWQuJyxcclxuXHRcdFx0XHRcdFx0XHQnamV0LWZvcm0tYnVpbGRlcicsXHJcblx0XHRcdFx0XHRcdCkgfTwvbGk+XHJcblx0XHRcdFx0XHRcdDxsaT57IF9fKFxyXG5cdFx0XHRcdFx0XHRcdGBBbGwgdGhlIGNvZGUgeW91IHBhc3RlIGhlcmUgd2lsbCBiZSBwYXJzZWQgaW50byBhIHNpbmdsZSBGb3JtLCBldmVuIGlmIGl0IGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgPGZvcm0+IHRhZy5gLFxyXG5cdFx0XHRcdFx0XHRcdCdqZXQtZm9ybS1idWlsZGVyJyxcclxuXHRcdFx0XHRcdFx0KSB9PC9saT5cclxuXHRcdFx0XHRcdFx0PGxpPnsgX18oXHJcblx0XHRcdFx0XHRcdFx0YFRoZSBwYXJzZXIgY2FuIG9ubHkgdW5kZXJzdGFuZCBmb3JtIGVsZW1lbnRzIGFuZCBzdHJ1Y3R1cmU7IGl0IGNhbid0IHBhcnNlIHN0eWxpbmcgb3IgYmVoYXZpb3IuYCxcclxuXHRcdFx0XHRcdFx0XHQnamV0LWZvcm0tYnVpbGRlcicsXHJcblx0XHRcdFx0XHRcdCkgfTwvbGk+XHJcblx0XHRcdFx0XHQ8L3VsPlxyXG5cclxuXHRcdFx0XHRcdDxGbGV4IGp1c3RpZnk9XCJmbGV4LWVuZFwiIHN0eWxlPXsgeyBtYXJnaW5Ub3A6ICcxZW0nIH0gfT5cclxuXHRcdFx0XHRcdFx0PEJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdGlzUHJpbWFyeVxyXG5cdFx0XHRcdFx0XHRcdGlzQnVzeT17IGlzUGFyc2luZyB9XHJcblx0XHRcdFx0XHRcdFx0ZGlzYWJsZWQ9eyBpc1BhcnNpbmcgfHwgIWh0bWwudHJpbSgpLmxlbmd0aCB9XHJcblx0XHRcdFx0XHRcdFx0b25DbGljaz17IGhhbmRsZVN1Ym1pdCB9XHJcblx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHR7IGlzUGFyc2luZ1xyXG5cdFx0XHRcdFx0XHRcdFx0PyBfXyggJ1BhcnNpbmcuLi4nLCAnamV0LWZvcm0tYnVpbGRlcicgKVxyXG5cdFx0XHRcdFx0XHRcdFx0OiBfXyggJ1BhcnNlIEhUTUwnLCAnamV0LWZvcm0tYnVpbGRlcicgKSB9XHJcblx0XHRcdFx0XHRcdDwvQnV0dG9uPlxyXG5cdFx0XHRcdFx0PC9GbGV4PlxyXG5cdFx0XHRcdDwvPlxyXG5cdFx0XHQpIH1cclxuXHRcdDwvTW9kYWw+XHJcblx0KTtcclxufVxyXG4iLCJmdW5jdGlvbiBjb252ZXJ0VG9Db21tZW50QmxvY2soIHsgbmFtZSwgYXR0cmlidXRlcyB9ICkge1xyXG5cdGNvbnN0IGJsb2NrQXR0cnMgPSBKU09OLnN0cmluZ2lmeSggYXR0cmlidXRlcyApO1xyXG5cclxuXHRyZXR1cm4gYDwhLS0gd3A6JHsgbmFtZSB9ICR7IGJsb2NrQXR0cnMgfSAvLS0+YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBwYXJhbSBibG9ja3Mge09iamVjdFtdfVxyXG4gKi9cclxuZnVuY3Rpb24gc2VyaWFsaXplKCBibG9ja3MgKSB7XHJcblx0cmV0dXJuIGJsb2Nrcy5tYXAoIGNvbnZlcnRUb0NvbW1lbnRCbG9jayApLmpvaW4oICdcXG5cXG4nICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHNlcmlhbGl6ZTsiLCJtb2R1bGUuZXhwb3J0cyA9IHdpbmRvd1tcIndwXCJdW1wiYXBpRmV0Y2hcIl07IiwibW9kdWxlLmV4cG9ydHMgPSB3aW5kb3dbXCJ3cFwiXVtcImNvbXBvbmVudHNcIl07IiwibW9kdWxlLmV4cG9ydHMgPSB3aW5kb3dbXCJ3cFwiXVtcImRvbVJlYWR5XCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wid3BcIl1bXCJlbGVtZW50XCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wid3BcIl1bXCJpMThuXCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wiUmVhY3RcIl07IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tICdAd29yZHByZXNzL2VsZW1lbnQnO1xyXG5pbXBvcnQgZG9tUmVhZHkgZnJvbSAnQHdvcmRwcmVzcy9kb20tcmVhZHknO1xyXG5pbXBvcnQgSHRtbFBhcnNlckJ1dHRvbiBmcm9tICcuL0h0bWxQYXJzZXJCdXR0b24nO1xyXG5cclxuZG9tUmVhZHkoICgpID0+IHtcclxuXHRjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCAnLnBhZ2UtdGl0bGUtYWN0aW9uW2hyZWYqPVwicG9zdC1uZXcucGhwXCJdJyApO1xyXG5cclxuXHRpZiAoICEgdGFyZ2V0ICkge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTtcclxuXHRjb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUtZmxleCc7XHJcblx0Y29udGFpbmVyLnN0eWxlLm1hcmdpbkxlZnQgPSAnNHB4JztcclxuXHJcblx0dGFyZ2V0LmFmdGVyKCBjb250YWluZXIgKTtcclxuXHRjcmVhdGVSb290KCBjb250YWluZXIgKS5yZW5kZXIoXHJcblx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoIEh0bWxQYXJzZXJCdXR0b24gKVxyXG5cdCk7XHJcbn0gKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=