PluginProbe
Elementor Website Builder – more than just a page builder / 3.19.0-beta5
Elementor Website Builder – more than just a page builder v3.19.0-beta5
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
elementor / assets / js / ai-admin.js

ai-admin.js in Elementor Website Builder – more than just a page builder 3.19.0-beta5, at assets/js/ai-admin.js

41,453 lines 1.5 MB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.19.0 - 22-01-2024 */
2 /******/ (() => { // webpackBootstrap
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "../modules/ai/assets/js/editor/actions-data.js":
6 /*!******************************************************!*\
7 !*** ../modules/ai/assets/js/editor/actions-data.js ***!
8 \******************************************************/
9 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10
11 "use strict";
12
13
14 Object.defineProperty(exports, "__esModule", ({
15 value: true
16 }));
17 exports.vocalTones = exports.translateLanguages = exports.textareaAutocomplete = exports.textAutocomplete = exports.codeHtmlAutocomplete = exports.codeCssAutocomplete = void 0;
18 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
19 var textAutocomplete = [(0, _i18n.__)('Craft a catchy slogan for', 'elementor'), (0, _i18n.__)('Write a strong section header for', 'elementor'), (0, _i18n.__)('Create a blog title for', 'elementor'), (0, _i18n.__)('Suggest a 4 word headline for', 'elementor'), (0, _i18n.__)('Write an attention grabbing title for', 'elementor')];
20 exports.textAutocomplete = textAutocomplete;
21 var textareaAutocomplete = [(0, _i18n.__)('Write a product description for', 'elementor'), (0, _i18n.__)('Create a blog post for', 'elementor'), (0, _i18n.__)('Craft an about us section for', 'elementor'), (0, _i18n.__)('Offer a few sentences to invite visitors to', 'elementor'), (0, _i18n.__)('Write microcopy for a submission form that includes', 'elementor')];
22 exports.textareaAutocomplete = textareaAutocomplete;
23 var codeHtmlAutocomplete = [(0, _i18n.__)('GA event fired on every button element click (assume GA was loaded)', 'elementor'), (0, _i18n.__)('Iframe code to embed a Spotify widget on my web page. My ID is 1234567890', 'elementor'), (0, _i18n.__)('Write an embed code of Google Analytics', 'elementor'), (0, _i18n.__)('Write an embed code of Facebook Pixel', 'elementor'), (0, _i18n.__)('HTML code that embeds the following PDF into a webpage: link to PDF', 'elementor')];
24 exports.codeHtmlAutocomplete = codeHtmlAutocomplete;
25 var codeCssAutocomplete = [(0, _i18n.__)('On hover, animate 20% bigger, rotate 10 deg CCW', 'elementor'), (0, _i18n.__)('Add a circle-shaped clip mask, semi transparent on hover', 'elementor'), (0, _i18n.__)('Rainbow colored animated text gradient', 'elementor'), (0, _i18n.__)('Add a 3D shadow to the text', 'elementor')];
26 exports.codeCssAutocomplete = codeCssAutocomplete;
27 var vocalTones = [{
28 label: (0, _i18n.__)('Casual', 'elementor')
29 }, {
30 label: (0, _i18n.__)('Confidence', 'elementor')
31 }, {
32 label: (0, _i18n.__)('Formal', 'elementor')
33 }, {
34 label: (0, _i18n.__)('Friendly', 'elementor')
35 }, {
36 label: (0, _i18n.__)('Inspirational', 'elementor')
37 }, {
38 label: (0, _i18n.__)('Motivational', 'elementor')
39 }, {
40 label: (0, _i18n.__)('Nostalgic', 'elementor')
41 }, {
42 label: (0, _i18n.__)('Playful', 'elementor')
43 }, {
44 label: (0, _i18n.__)('Professional', 'elementor')
45 }, {
46 label: (0, _i18n.__)('Scientific', 'elementor')
47 }, {
48 label: (0, _i18n.__)('Straightforward', 'elementor')
49 }, {
50 label: (0, _i18n.__)('Witty', 'elementor')
51 }];
52 exports.vocalTones = vocalTones;
53 var translateLanguages = [{
54 label: (0, _i18n.__)('Arabic', 'elementor'),
55 value: 'ar-SA'
56 }, {
57 label: (0, _i18n.__)('Chinese', 'elementor'),
58 value: 'zh-CN'
59 }, {
60 label: (0, _i18n.__)('Czech', 'elementor'),
61 value: 'cs-CZ'
62 }, {
63 label: (0, _i18n.__)('Danish', 'elementor'),
64 value: 'da-DK'
65 }, {
66 label: (0, _i18n.__)('Dutch', 'elementor'),
67 value: 'nl-NL'
68 }, {
69 label: (0, _i18n.__)('English', 'elementor'),
70 value: 'en-US'
71 }, {
72 label: (0, _i18n.__)('Finnish', 'elementor'),
73 value: 'fi-FI'
74 }, {
75 label: (0, _i18n.__)('French', 'elementor'),
76 value: 'fr-FR'
77 }, {
78 label: (0, _i18n.__)('German', 'elementor'),
79 value: 'de-DE'
80 }, {
81 label: (0, _i18n.__)('Greek', 'elementor'),
82 value: 'el-GR'
83 }, {
84 label: (0, _i18n.__)('Hebrew', 'elementor'),
85 value: 'he-IL'
86 }, {
87 label: (0, _i18n.__)('Hungarian', 'elementor'),
88 value: 'hu-HU'
89 }, {
90 label: (0, _i18n.__)('Indonesian', 'elementor'),
91 value: 'id-ID'
92 }, {
93 label: (0, _i18n.__)('Italian', 'elementor'),
94 value: 'it-IT'
95 }, {
96 label: (0, _i18n.__)('Japanese', 'elementor'),
97 value: 'ja-JP'
98 }, {
99 label: (0, _i18n.__)('Korean', 'elementor'),
100 value: 'ko-KR'
101 }, {
102 label: (0, _i18n.__)('Persian', 'elementor'),
103 value: 'fa-IR'
104 }, {
105 label: (0, _i18n.__)('Polish', 'elementor'),
106 value: 'pl-PL'
107 }, {
108 label: (0, _i18n.__)('Portuguese', 'elementor'),
109 value: 'pt-PT'
110 }, {
111 label: (0, _i18n.__)('Russian', 'elementor'),
112 value: 'ru-RU'
113 }, {
114 label: (0, _i18n.__)('Spanish', 'elementor'),
115 value: 'es-ES'
116 }, {
117 label: (0, _i18n.__)('Swedish', 'elementor'),
118 value: 'sv-SE'
119 }, {
120 label: (0, _i18n.__)('Thai', 'elementor'),
121 value: 'th-TH'
122 }, {
123 label: (0, _i18n.__)('Turkish', 'elementor'),
124 value: 'tr-TR'
125 }, {
126 label: (0, _i18n.__)('Vietnamese', 'elementor'),
127 value: 'vi-VN'
128 }];
129 exports.translateLanguages = translateLanguages;
130
131 /***/ }),
132
133 /***/ "../modules/ai/assets/js/editor/api/index.js":
134 /*!***************************************************!*\
135 !*** ../modules/ai/assets/js/editor/api/index.js ***!
136 \***************************************************/
137 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
138
139 "use strict";
140
141
142 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
143 Object.defineProperty(exports, "__esModule", ({
144 value: true
145 }));
146 exports.uploadImage = exports.toggleFavoriteHistoryItem = exports.setStatusFeedback = exports.setGetStarted = exports.getUserInformation = exports.getTextToImageGeneration = exports.getRemoteConfig = exports.getLayoutPromptEnhanced = exports.getImageToImageUpscale = exports.getImageToImageReplaceBackground = exports.getImageToImageRemoveText = exports.getImageToImageRemoveBackground = exports.getImageToImageOutPainting = exports.getImageToImageMaskGeneration = exports.getImageToImageGeneration = exports.getImagePromptEnhanced = exports.getHistory = exports.getEditText = exports.getCustomCode = exports.getCustomCSS = exports.getCompletionText = exports.generateLayout = exports.deleteHistoryItem = void 0;
147 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
148 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
149 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
150 var request = function request(endpoint) {
151 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
152 var immediately = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
153 var signal = arguments.length > 3 ? arguments[3] : undefined;
154 if (Object.keys(data).length) {
155 data.context = window.elementorAiCurrentContext;
156 }
157 return new Promise(function (resolve, reject) {
158 var ajaxData = elementorCommon.ajax.addRequest(endpoint, {
159 success: resolve,
160 error: reject,
161 data: data
162 }, immediately);
163 if (signal && ajaxData.jqXhr) {
164 signal.addEventListener('abort', ajaxData.jqXhr.abort);
165 }
166 });
167 };
168 var getUserInformation = function getUserInformation() {
169 return request('ai_get_user_information');
170 };
171 exports.getUserInformation = getUserInformation;
172 var getRemoteConfig = function getRemoteConfig() {
173 return request('ai_get_remote_config');
174 };
175 exports.getRemoteConfig = getRemoteConfig;
176 var getCompletionText = function getCompletionText(prompt) {
177 return request('ai_get_completion_text', {
178 prompt: prompt
179 });
180 };
181 exports.getCompletionText = getCompletionText;
182 var getEditText = function getEditText(input, instruction) {
183 return request('ai_get_edit_text', {
184 input: input,
185 instruction: instruction
186 });
187 };
188 exports.getEditText = getEditText;
189 var getCustomCode = function getCustomCode(prompt, language) {
190 return request('ai_get_custom_code', {
191 prompt: prompt,
192 language: language
193 });
194 };
195 exports.getCustomCode = getCustomCode;
196 var getCustomCSS = function getCustomCSS(prompt, htmlMarkup, elementId) {
197 return request('ai_get_custom_css', {
198 prompt: prompt,
199 html_markup: htmlMarkup,
200 element_id: elementId
201 });
202 };
203 exports.getCustomCSS = getCustomCSS;
204 var setGetStarted = function setGetStarted() {
205 return request('ai_set_get_started');
206 };
207 exports.setGetStarted = setGetStarted;
208 var setStatusFeedback = function setStatusFeedback(responseId) {
209 return request('ai_set_status_feedback', {
210 response_id: responseId
211 });
212 };
213 exports.setStatusFeedback = setStatusFeedback;
214 var getTextToImageGeneration = function getTextToImageGeneration(prompt, promptSettings) {
215 return request('ai_get_text_to_image', {
216 prompt: prompt,
217 promptSettings: promptSettings
218 });
219 };
220 exports.getTextToImageGeneration = getTextToImageGeneration;
221 var getImageToImageGeneration = function getImageToImageGeneration(prompt, promptSettings, image) {
222 return request('ai_get_image_to_image', {
223 prompt: prompt,
224 promptSettings: promptSettings,
225 image: image
226 });
227 };
228 exports.getImageToImageGeneration = getImageToImageGeneration;
229 var getImageToImageMaskGeneration = function getImageToImageMaskGeneration(prompt, promptSettings, image, mask) {
230 return request('ai_get_image_to_image_mask', {
231 prompt: prompt,
232 promptSettings: promptSettings,
233 image: image,
234 mask: mask
235 });
236 };
237 exports.getImageToImageMaskGeneration = getImageToImageMaskGeneration;
238 var getImageToImageOutPainting = function getImageToImageOutPainting(prompt, promptSettings, image, mask) {
239 return request('ai_get_image_to_image_outpainting', {
240 prompt: prompt,
241 promptSettings: promptSettings,
242 mask: mask
243 });
244 };
245 exports.getImageToImageOutPainting = getImageToImageOutPainting;
246 var getImageToImageUpscale = function getImageToImageUpscale(prompt, promptSettings, image) {
247 return request('ai_get_image_to_image_upscale', {
248 prompt: prompt,
249 promptSettings: promptSettings,
250 image: image
251 });
252 };
253 exports.getImageToImageUpscale = getImageToImageUpscale;
254 var getImageToImageRemoveBackground = function getImageToImageRemoveBackground(image) {
255 return request('ai_get_image_to_image_remove_background', {
256 image: image
257 });
258 };
259 exports.getImageToImageRemoveBackground = getImageToImageRemoveBackground;
260 var getImageToImageReplaceBackground = function getImageToImageReplaceBackground(prompt, image) {
261 return request('ai_get_image_to_image_replace_background', {
262 prompt: prompt,
263 image: image
264 });
265 };
266 exports.getImageToImageReplaceBackground = getImageToImageReplaceBackground;
267 var getImageToImageRemoveText = function getImageToImageRemoveText(image) {
268 return request('ai_get_image_to_image_remove_text', {
269 image: image
270 });
271 };
272 exports.getImageToImageRemoveText = getImageToImageRemoveText;
273 var getImagePromptEnhanced = function getImagePromptEnhanced(prompt) {
274 return request('ai_get_image_prompt_enhancer', {
275 prompt: prompt
276 });
277 };
278 exports.getImagePromptEnhanced = getImagePromptEnhanced;
279 var uploadImage = function uploadImage(image) {
280 return request('ai_upload_image', _objectSpread({}, image));
281 };
282
283 /**
284 * @typedef {Object} AttachmentPropType - See ./types/attachment.js
285 * @typedef {Object} requestBody
286 * @property {string} prompt - Prompt to generate the layout from.
287 * @property {0|1|2} [variationType] - Type of the layout to generate (actually it's a position).
288 * @property {string[]} [prevGeneratedIds] - Previously generated ids for exclusion on regeneration.
289 * @property {AttachmentPropType[]} [attachments] - Attachments to use for the generation. currently only `json` type is supported - a container JSON to generate variations from.
290 */
291
292 /**
293 * @param {requestBody} requestBody
294 * @param {AbortSignal} [signal]
295 */
296 exports.uploadImage = uploadImage;
297 var generateLayout = function generateLayout(requestBody, signal) {
298 return request('ai_generate_layout', requestBody, true, signal);
299 };
300 exports.generateLayout = generateLayout;
301 var getLayoutPromptEnhanced = function getLayoutPromptEnhanced(prompt, enhanceType) {
302 return request('ai_get_layout_prompt_enhancer', {
303 prompt: prompt,
304 enhance_type: enhanceType
305 });
306 };
307 exports.getLayoutPromptEnhanced = getLayoutPromptEnhanced;
308 var getHistory = function getHistory(type, page, limit) {
309 return request('ai_get_history', {
310 type: type,
311 page: page,
312 limit: limit
313 });
314 };
315 exports.getHistory = getHistory;
316 var deleteHistoryItem = function deleteHistoryItem(id) {
317 return request('ai_delete_history_item', {
318 id: id
319 });
320 };
321 exports.deleteHistoryItem = deleteHistoryItem;
322 var toggleFavoriteHistoryItem = function toggleFavoriteHistoryItem(id) {
323 return request('ai_toggle_favorite_history_item', {
324 id: id
325 });
326 };
327 exports.toggleFavoriteHistoryItem = toggleFavoriteHistoryItem;
328
329 /***/ }),
330
331 /***/ "../modules/ai/assets/js/editor/app.js":
332 /*!*********************************************!*\
333 !*** ../modules/ai/assets/js/editor/app.js ***!
334 \*********************************************/
335 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
336
337 "use strict";
338
339
340 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
341 Object.defineProperty(exports, "__esModule", ({
342 value: true
343 }));
344 exports["default"] = void 0;
345 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
346 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
347 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
348 var _pageContent = _interopRequireDefault(__webpack_require__(/*! ./page-content */ "../modules/ai/assets/js/editor/page-content.js"));
349 var _helpers = __webpack_require__(/*! ./helpers */ "../modules/ai/assets/js/editor/helpers/index.js");
350 var App = function App(props) {
351 return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
352 rtl: props.isRTL
353 }, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
354 colorScheme: props.colorScheme
355 }, /*#__PURE__*/_react.default.createElement(_pageContent.default, {
356 type: props.type,
357 controlType: props.controlType,
358 onClose: props.onClose,
359 onConnect: _helpers.onConnect,
360 getControlValue: props.getControlValue,
361 setControlValue: props.setControlValue,
362 controlView: props.controlView,
363 additionalOptions: props.additionalOptions
364 })));
365 };
366 App.propTypes = {
367 colorScheme: _propTypes.default.oneOf(['auto', 'light', 'dark']),
368 type: _propTypes.default.string,
369 controlType: _propTypes.default.string,
370 onClose: _propTypes.default.func,
371 getControlValue: _propTypes.default.func,
372 setControlValue: _propTypes.default.func,
373 additionalOptions: _propTypes.default.object,
374 controlView: _propTypes.default.object,
375 isRTL: _propTypes.default.bool
376 };
377 var _default = App;
378 exports["default"] = _default;
379
380 /***/ }),
381
382 /***/ "../modules/ai/assets/js/editor/components/dialog-header.js":
383 /*!******************************************************************!*\
384 !*** ../modules/ai/assets/js/editor/components/dialog-header.js ***!
385 \******************************************************************/
386 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
387
388 "use strict";
389
390
391 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
392 Object.defineProperty(exports, "__esModule", ({
393 value: true
394 }));
395 exports["default"] = void 0;
396 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
397 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
398 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
399 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
400 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
401 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
402 var ElementorLogo = function ElementorLogo(props) {
403 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
404 viewBox: "0 0 32 32"
405 }, props), /*#__PURE__*/_react.default.createElement("path", {
406 fillRule: "evenodd",
407 clipRule: "evenodd",
408 d: "M2.69648 24.8891C0.938383 22.2579 0 19.1645 0 16C0 11.7566 1.68571 7.68687 4.68629 4.68629C7.68687 1.68571 11.7566 0 16 0C19.1645 0 22.2579 0.938383 24.8891 2.69648C27.5203 4.45459 29.5711 6.95344 30.7821 9.87706C31.9931 12.8007 32.3099 16.0177 31.6926 19.1214C31.0752 22.2251 29.5514 25.0761 27.3137 27.3137C25.0761 29.5514 22.2251 31.0752 19.1214 31.6926C16.0177 32.3099 12.8007 31.9931 9.87706 30.7821C6.95344 29.5711 4.45459 27.5203 2.69648 24.8891ZM12.0006 9.33281H9.33437V22.6665H12.0006V9.33281ZM22.6657 9.33281H14.6669V11.9991H22.6657V9.33281ZM22.6657 14.6654H14.6669V17.3316H22.6657V14.6654ZM22.6657 20.0003H14.6669V22.6665H22.6657V20.0003Z"
409 }));
410 };
411 var StyledElementorLogo = (0, _ui.styled)(ElementorLogo)(function (_ref) {
412 var theme = _ref.theme;
413 return {
414 width: theme.spacing(3),
415 height: theme.spacing(3),
416 '& path': {
417 fill: theme.palette.text.primary
418 }
419 };
420 });
421 var DialogHeader = function DialogHeader(props) {
422 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
423 sx: {
424 fontWeight: 'normal'
425 },
426 color: "transparent",
427 position: "relative"
428 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
429 variant: "dense"
430 }, /*#__PURE__*/_react.default.createElement(StyledElementorLogo, {
431 sx: {
432 mr: 1
433 }
434 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
435 component: "span",
436 variant: "subtitle2",
437 sx: {
438 fontWeight: 'bold',
439 textTransform: 'uppercase'
440 }
441 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
442 label: (0, _i18n.__)('Beta', 'elementor'),
443 color: "default",
444 size: "small",
445 sx: {
446 ml: 1
447 }
448 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
449 direction: "row",
450 spacing: 1,
451 alignItems: "center",
452 sx: {
453 ml: 'auto'
454 }
455 }, props.children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
456 size: "small",
457 "aria-label": "close",
458 onClick: props.onClose,
459 sx: {
460 '&.MuiButtonBase-root': {
461 mr: -1
462 }
463 }
464 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
465 };
466 DialogHeader.propTypes = {
467 onClose: _propTypes.default.func.isRequired,
468 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
469 };
470 var _default = DialogHeader;
471 exports["default"] = _default;
472
473 /***/ }),
474
475 /***/ "../modules/ai/assets/js/editor/components/generate-button.js":
476 /*!********************************************************************!*\
477 !*** ../modules/ai/assets/js/editor/components/generate-button.js ***!
478 \********************************************************************/
479 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
480
481 "use strict";
482
483
484 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
485 Object.defineProperty(exports, "__esModule", ({
486 value: true
487 }));
488 exports["default"] = void 0;
489 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
490 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
491 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
492 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
493 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
494 var GenerateButton = function GenerateButton(props) {
495 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
496 variant: "contained",
497 endIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
498 fontSize: "small"
499 }),
500 disabled: !prompt,
501 "aria-label": (0, _i18n.__)('search', 'elementor'),
502 type: "submit",
503 size: "small"
504 }, props));
505 };
506 var _default = GenerateButton;
507 exports["default"] = _default;
508
509 /***/ }),
510
511 /***/ "../modules/ai/assets/js/editor/components/loader.js":
512 /*!***********************************************************!*\
513 !*** ../modules/ai/assets/js/editor/components/loader.js ***!
514 \***********************************************************/
515 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
516
517 "use strict";
518
519
520 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
521 Object.defineProperty(exports, "__esModule", ({
522 value: true
523 }));
524 exports["default"] = void 0;
525 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
526 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
527 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
528 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
529 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
530 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
531 var _excluded = ["sx", "BoxProps"];
532 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
533 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
534 var Loader = function Loader(_ref) {
535 var _ref$sx = _ref.sx,
536 sx = _ref$sx === void 0 ? {} : _ref$sx,
537 _ref$BoxProps = _ref.BoxProps,
538 BoxProps = _ref$BoxProps === void 0 ? {} : _ref$BoxProps,
539 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
540 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
541 width: "100%",
542 display: "flex",
543 alignItems: "center"
544 }, BoxProps, {
545 sx: _objectSpread({
546 px: 1.5,
547 minHeight: function minHeight(theme) {
548 return theme.spacing(5);
549 }
550 }, BoxProps.sx || {})
551 }), /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, (0, _extends2.default)({
552 color: "secondary"
553 }, props, {
554 sx: _objectSpread({
555 width: '100%'
556 }, sx)
557 })));
558 };
559 Loader.propTypes = {
560 sx: _propTypes.default.object,
561 BoxProps: _propTypes.default.object
562 };
563 var _default = Loader;
564 exports["default"] = _default;
565
566 /***/ }),
567
568 /***/ "../modules/ai/assets/js/editor/components/prompt-action-selection.js":
569 /*!****************************************************************************!*\
570 !*** ../modules/ai/assets/js/editor/components/prompt-action-selection.js ***!
571 \****************************************************************************/
572 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
573
574 "use strict";
575
576
577 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
578 Object.defineProperty(exports, "__esModule", ({
579 value: true
580 }));
581 exports["default"] = void 0;
582 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
583 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
584 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
585 var labelToDashCash = function labelToDashCash(str) {
586 return str.toLowerCase().replace(/ /g, '-');
587 };
588 var PromptActionSelection = function PromptActionSelection(props) {
589 var actionId = labelToDashCash(props.label);
590 var _props$wrapperStyle = props.wrapperStyle,
591 wrapperStyle = _props$wrapperStyle === void 0 ? {
592 maxWidth: 138
593 } : _props$wrapperStyle;
594 return /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
595 size: "small",
596 color: "secondary",
597 fullWidth: true,
598 sx: wrapperStyle
599 }, /*#__PURE__*/_react.default.createElement(_ui.InputLabel, {
600 id: actionId
601 }, props.label), /*#__PURE__*/_react.default.createElement(_ui.Select, {
602 id: actionId,
603 labelId: actionId,
604 label: props.label,
605 value: props.value || '',
606 onChange: props.onChange,
607 disabled: props.disabled,
608 sx: {
609 // Fixing global CSS of the editor that targets input[disabled] globally.
610 '&.Mui-disabled .MuiSelect-nativeInput': {
611 backgroundColor: 'initial',
612 opacity: 0
613 }
614 }
615 }, props.options.map(function (option) {
616 var _option$value;
617 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
618 dense: true,
619 key: option.label,
620 value: (_option$value = option.value) !== null && _option$value !== void 0 ? _option$value : option.label
621 }, option.label);
622 })));
623 };
624 PromptActionSelection.propTypes = {
625 label: _propTypes.default.string.isRequired,
626 options: _propTypes.default.arrayOf(_propTypes.default.shape({
627 label: _propTypes.default.string.isRequired,
628 value: _propTypes.default.string
629 })).isRequired,
630 onChange: _propTypes.default.func.isRequired,
631 value: _propTypes.default.string,
632 wrapperStyle: _propTypes.default.object,
633 disabled: _propTypes.default.bool
634 };
635 var _default = PromptActionSelection;
636 exports["default"] = _default;
637
638 /***/ }),
639
640 /***/ "../modules/ai/assets/js/editor/components/prompt-action.js":
641 /*!******************************************************************!*\
642 !*** ../modules/ai/assets/js/editor/components/prompt-action.js ***!
643 \******************************************************************/
644 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
645
646 "use strict";
647
648
649 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
650 Object.defineProperty(exports, "__esModule", ({
651 value: true
652 }));
653 exports["default"] = void 0;
654 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
655 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
656 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
657 var PromptAction = function PromptAction(props) {
658 return /*#__PURE__*/_react.default.createElement(_ui.Chip, (0, _extends2.default)({
659 size: "large",
660 color: "secondary",
661 variant: "outlined"
662 }, props));
663 };
664 var _default = PromptAction;
665 exports["default"] = _default;
666
667 /***/ }),
668
669 /***/ "../modules/ai/assets/js/editor/components/prompt-dialog.js":
670 /*!******************************************************************!*\
671 !*** ../modules/ai/assets/js/editor/components/prompt-dialog.js ***!
672 \******************************************************************/
673 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
674
675 "use strict";
676
677
678 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
679 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
680 Object.defineProperty(exports, "__esModule", ({
681 value: true
682 }));
683 exports["default"] = void 0;
684 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
685 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
686 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
687 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
688 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
689 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
690 var _reactDraggable = _interopRequireDefault(__webpack_require__(/*! react-draggable */ "../node_modules/react-draggable/build/cjs/cjs.js"));
691 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
692 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
693 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
694 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
695 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
696 var DraggablePaper = function DraggablePaper(props) {
697 var _useState = (0, _react.useState)({
698 x: 0,
699 y: 0
700 }),
701 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
702 position = _useState2[0],
703 setPosition = _useState2[1];
704 var paperRef = (0, _react.useRef)(null);
705 var timeout = (0, _react.useRef)(null);
706 var onDrag = function onDrag(_e, _ref) {
707 var x = _ref.x,
708 y = _ref.y;
709 return setPosition({
710 x: x,
711 y: y
712 });
713 };
714 var handlePositionBoundaries = function handlePositionBoundaries() {
715 clearTimeout(timeout.current);
716
717 // Ensuring the dialog header, which is used as the dialog dragging handle, does not exceed the screen.
718 timeout.current = setTimeout(function () {
719 var _paperRef$current;
720 var dialogTop = (_paperRef$current = paperRef.current) === null || _paperRef$current === void 0 ? void 0 : _paperRef$current.getBoundingClientRect().top;
721 if (dialogTop < 0) {
722 setPosition(function (prev) {
723 return _objectSpread(_objectSpread({}, prev), {}, {
724 y: prev.y - dialogTop
725 });
726 });
727 }
728 }, 50);
729 };
730 (0, _react.useEffect)(function () {
731 var resizeObserver = new ResizeObserver(handlePositionBoundaries);
732 resizeObserver.observe(paperRef.current);
733 return function () {
734 resizeObserver.disconnect();
735 };
736 }, []);
737 return /*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
738 position: position,
739 onDrag: onDrag,
740 handle: ".MuiAppBar-root",
741 cancel: '[class*="MuiDialogContent-root"]',
742 bounds: "parent"
743 }, /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
744 ref: paperRef
745 })));
746 };
747 var PromptDialog = function PromptDialog(props) {
748 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
749 scroll: "paper",
750 open: true,
751 fullWidth: true,
752 hideBackdrop: true,
753 PaperComponent: DraggablePaper,
754 disableScrollLock: true,
755 sx: {
756 '& .MuiDialog-container': {
757 alignItems: 'flex-start',
758 mt: '18vh'
759 }
760 },
761 PaperProps: {
762 sx: {
763 m: 0,
764 maxHeight: '76vh'
765 }
766 }
767 }, props), props.children);
768 };
769 PromptDialog.propTypes = {
770 onClose: _propTypes.default.func.isRequired,
771 children: _propTypes.default.node,
772 maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])
773 };
774 PromptDialog.Header = _dialogHeader.default;
775 PromptDialog.Content = _ui.DialogContent;
776 var _default = PromptDialog;
777 exports["default"] = _default;
778
779 /***/ }),
780
781 /***/ "../modules/ai/assets/js/editor/components/prompt-error-message.js":
782 /*!*************************************************************************!*\
783 !*** ../modules/ai/assets/js/editor/components/prompt-error-message.js ***!
784 \*************************************************************************/
785 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
786
787 "use strict";
788
789
790 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
791 Object.defineProperty(exports, "__esModule", ({
792 value: true
793 }));
794 exports["default"] = void 0;
795 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
796 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
797 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
798 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
799 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
800 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
801 var _excluded = ["error", "onRetry", "actionPosition"];
802 var PromptErrorMessage = function PromptErrorMessage(_ref) {
803 var error = _ref.error,
804 _ref$onRetry = _ref.onRetry,
805 onRetry = _ref$onRetry === void 0 ? function () {} : _ref$onRetry,
806 _ref$actionPosition = _ref.actionPosition,
807 actionPosition = _ref$actionPosition === void 0 ? 'default' : _ref$actionPosition,
808 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
809 var messages = {
810 default: {
811 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Unknown error. Please try again later.', 'elementor')),
812 description: (0, _i18n.__)('Error code:', 'elementor') + ' ' + error,
813 buttonText: (0, _i18n.__)('Try Again', 'elementor'),
814 buttonAction: onRetry
815 },
816 service_outage_internal: {
817 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Elementor AI is temporarily unavailable', 'elementor')),
818 description: (0, _i18n.__)('Seems like we are experiencing technical difficulty. We should be up and running shortly.', 'elementor'),
819 buttonText: (0, _i18n.__)('Try Again', 'elementor'),
820 buttonAction: onRetry
821 },
822 invalid_connect_data: {
823 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Reconnect your account', 'elementor')),
824 description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _i18n.__)('We couldn\'t connect to your account due to technical difficulties on our end. Reconnect your account to continue.', 'elementor'), ' ', /*#__PURE__*/_react.default.createElement("a", {
825 href: "https://elementor.com/help/disconnecting-reconnecting-your-elementor-account/",
826 target: "_blank",
827 rel: "noreferrer"
828 }, (0, _i18n.__)('Show me how', 'elementor'))),
829 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
830 buttonAction: function buttonAction() {
831 return window.open(window.ElementorAiConfig.connect_url);
832 }
833 },
834 not_connected: {
835 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('You aren\'t connected to Elementor AI.', 'elementor')),
836 description: (0, _i18n.__)('Elementor AI is just a few clicks away. Connect your account to instantly create texts and custom code.', 'elementor'),
837 buttonText: (0, _i18n.__)('Connect', 'elementor'),
838 buttonAction: function buttonAction() {
839 return window.open(window.ElementorAiConfig.connect_url);
840 }
841 },
842 quota_reached_trail: {
843 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('It\'s time to upgrade.', 'elementor')),
844 description: (0, _i18n.__)('Enjoy the free trial? Upgrade now for unlimited access to built-in image, text and custom code generators.', 'elementor'),
845 buttonText: (0, _i18n.__)('Upgrade', 'elementor'),
846 buttonAction: function buttonAction() {
847 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
848 }
849 },
850 quota_reached_subscription: {
851 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('It\'s time to upgrade.', 'elementor')),
852 description: (0, _i18n.__)('Love Elementor AI? Upgrade to continue creating with built-in image, text and custom code generators.', 'elementor'),
853 buttonText: (0, _i18n.__)('Upgrade', 'elementor'),
854 buttonAction: function buttonAction() {
855 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
856 }
857 },
858 rate_limit_network: {
859 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Whoa! Slow down there.', 'elementor')),
860 description: (0, _i18n.__)('We can’t process that many requests so fast. Try again in 15 minutes.', 'elementor')
861 },
862 invalid_prompts: {
863 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('We were unable to generate that prompt.', 'elementor')),
864 description: (0, _i18n.__)('Seems like the prompt contains words that could generate harmful content. Write a different prompt to continue.', 'elementor')
865 }
866 };
867 var message = messages[error] || messages.default;
868 var action = (message === null || message === void 0 ? void 0 : message.buttonText) && /*#__PURE__*/_react.default.createElement(_ui.Button, {
869 color: "inherit",
870 size: "small",
871 variant: "outlined",
872 onClick: message.buttonAction
873 }, message.buttonText);
874 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
875 severity: message.severity || 'error',
876 action: 'default' === actionPosition && action
877 }, props), message.text, message.description, 'bottom' === actionPosition && /*#__PURE__*/_react.default.createElement(_ui.Box, {
878 sx: {
879 mt: 1
880 }
881 }, action));
882 };
883 PromptErrorMessage.propTypes = {
884 error: _propTypes.default.string,
885 onRetry: _propTypes.default.func,
886 actionPosition: _propTypes.default.oneOf(['default', 'bottom'])
887 };
888 var _default = PromptErrorMessage;
889 exports["default"] = _default;
890
891 /***/ }),
892
893 /***/ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js":
894 /*!*********************************************************************************************************!*\
895 !*** ../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js ***!
896 \*********************************************************************************************************/
897 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
898
899 "use strict";
900
901
902 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
903 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
904 Object.defineProperty(exports, "__esModule", ({
905 value: true
906 }));
907 exports.useSubscribeOnPromptHistoryAction = exports.usePromptHistoryAction = exports.PromptHistoryActionProvider = exports.PromptHistoryActionContext = exports.ACTION_TYPES = void 0;
908 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
909 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
910 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
911 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
912 var _historyTypes = __webpack_require__(/*! ../history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
913 var _promptHistoryContext = __webpack_require__(/*! ./prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
914 var _HISTORY_TYPES$TEXT, _HISTORY_TYPES$CODE, _HISTORY_TYPES$IMAGE, _ENABLED_ACTIONS_BY_T;
915 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
916 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
917 function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
918 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
919 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
920 var PromptHistoryActionContext = (0, _react.createContext)({});
921 exports.PromptHistoryActionContext = PromptHistoryActionContext;
922 var initialActionValue = {
923 type: '',
924 id: '',
925 data: null
926 };
927 var ACTION_TYPES = Object.freeze({
928 REUSE: 'reuse',
929 EDIT: 'edit',
930 RESTORE: 'restore',
931 REMOVE: 'remove'
932 });
933 exports.ACTION_TYPES = ACTION_TYPES;
934 var ENABLED_ACTIONS_BY_TYPE = (_ENABLED_ACTIONS_BY_T = {}, (0, _defineProperty2.default)(_ENABLED_ACTIONS_BY_T, _historyTypes.HISTORY_TYPES.TEXT, (_HISTORY_TYPES$TEXT = {}, (0, _defineProperty2.default)(_HISTORY_TYPES$TEXT, ACTION_TYPES.REUSE, true), (0, _defineProperty2.default)(_HISTORY_TYPES$TEXT, ACTION_TYPES.EDIT, true), (0, _defineProperty2.default)(_HISTORY_TYPES$TEXT, ACTION_TYPES.REMOVE, true), _HISTORY_TYPES$TEXT)), (0, _defineProperty2.default)(_ENABLED_ACTIONS_BY_T, _historyTypes.HISTORY_TYPES.CODE, (_HISTORY_TYPES$CODE = {}, (0, _defineProperty2.default)(_HISTORY_TYPES$CODE, ACTION_TYPES.REUSE, true), (0, _defineProperty2.default)(_HISTORY_TYPES$CODE, ACTION_TYPES.REMOVE, true), _HISTORY_TYPES$CODE)), (0, _defineProperty2.default)(_ENABLED_ACTIONS_BY_T, _historyTypes.HISTORY_TYPES.IMAGE, (_HISTORY_TYPES$IMAGE = {}, (0, _defineProperty2.default)(_HISTORY_TYPES$IMAGE, ACTION_TYPES.RESTORE, true), (0, _defineProperty2.default)(_HISTORY_TYPES$IMAGE, ACTION_TYPES.REMOVE, true), _HISTORY_TYPES$IMAGE)), _ENABLED_ACTIONS_BY_T);
935 var PromptHistoryActionProvider = function PromptHistoryActionProvider(_ref) {
936 var children = _ref.children;
937 var _useState = (0, _react.useState)(initialActionValue),
938 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
939 state = _useState2[0],
940 dispatch = _useState2[1];
941 return /*#__PURE__*/_react.default.createElement(PromptHistoryActionContext.Provider, {
942 value: {
943 state: state,
944 dispatch: dispatch
945 }
946 }, children);
947 };
948 exports.PromptHistoryActionProvider = PromptHistoryActionProvider;
949 PromptHistoryActionProvider.propTypes = {
950 children: _propTypes.default.node
951 };
952 var usePromptHistoryAction = function usePromptHistoryAction() {
953 var _useContext = (0, _react.useContext)(PromptHistoryActionContext),
954 state = _useContext.state,
955 dispatch = _useContext.dispatch;
956 var _usePromptHistoryCont = (0, _promptHistoryContext.usePromptHistoryContext)(),
957 historyType = _usePromptHistoryCont.historyType,
958 onClose = _usePromptHistoryCont.onClose;
959 var closeModalAfterAction = function closeModalAfterAction(action) {
960 return function () {
961 action.apply(void 0, arguments);
962 onClose();
963 };
964 };
965 var getAllowedActions = function getAllowedActions() {
966 return ENABLED_ACTIONS_BY_TYPE[historyType] || {};
967 };
968 var onPromptReuse = function onPromptReuse(id, data) {
969 return dispatch({
970 type: ACTION_TYPES.REUSE,
971 id: id,
972 data: data
973 });
974 };
975 var onResultEdit = function onResultEdit(id, data) {
976 return dispatch({
977 type: ACTION_TYPES.EDIT,
978 id: id,
979 data: data
980 });
981 };
982 var onImagesRestore = function onImagesRestore(id, data) {
983 return dispatch({
984 type: ACTION_TYPES.RESTORE,
985 id: id,
986 data: data
987 });
988 };
989 return {
990 promptHistoryAction: state,
991 onPromptReuse: closeModalAfterAction(onPromptReuse),
992 onResultEdit: closeModalAfterAction(onResultEdit),
993 onImagesRestore: closeModalAfterAction(onImagesRestore),
994 getAllowedActions: getAllowedActions
995 };
996 };
997
998 /**
999 *
1000 * @param {{type: string, handler: Function}[]} actions
1001 */
1002 exports.usePromptHistoryAction = usePromptHistoryAction;
1003 var useSubscribeOnPromptHistoryAction = function useSubscribeOnPromptHistoryAction(actions) {
1004 var _useContext2 = (0, _react.useContext)(PromptHistoryActionContext),
1005 state = _useContext2.state;
1006 (0, _react.useEffect)(function () {
1007 if (!state.type) {
1008 return;
1009 }
1010 var _iterator = _createForOfIteratorHelper(actions),
1011 _step;
1012 try {
1013 for (_iterator.s(); !(_step = _iterator.n()).done;) {
1014 var action = _step.value;
1015 if (state.type === (action === null || action === void 0 ? void 0 : action.type)) {
1016 action === null || action === void 0 ? void 0 : action.handler(state);
1017 }
1018 }
1019 } catch (err) {
1020 _iterator.e(err);
1021 } finally {
1022 _iterator.f();
1023 }
1024 }, [state]);
1025 };
1026 exports.useSubscribeOnPromptHistoryAction = useSubscribeOnPromptHistoryAction;
1027
1028 /***/ }),
1029
1030 /***/ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js":
1031 /*!**************************************************************************************************!*\
1032 !*** ../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js ***!
1033 \**************************************************************************************************/
1034 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1035
1036 "use strict";
1037
1038
1039 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1040 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1041 Object.defineProperty(exports, "__esModule", ({
1042 value: true
1043 }));
1044 exports.usePromptHistoryContext = exports.PromptHistoryProvider = exports.PromptHistoryContext = void 0;
1045 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1046 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1047 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1048 var _historyTypes = __webpack_require__(/*! ../history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
1049 var _helpers = __webpack_require__(/*! ../../../helpers */ "../modules/ai/assets/js/editor/helpers/index.js");
1050 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1051 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1052 var PromptHistoryContext = (0, _react.createContext)({});
1053 exports.PromptHistoryContext = PromptHistoryContext;
1054 var DIALOG_CONTAINER_SELECTOR = '.e-ai-dialog-content';
1055 var getContainer = function getContainer() {
1056 return document.querySelector(DIALOG_CONTAINER_SELECTOR);
1057 };
1058 var getContainerHeight = function getContainerHeight() {
1059 var contentContainer = document.querySelector(DIALOG_CONTAINER_SELECTOR);
1060 return contentContainer === null || contentContainer === void 0 ? void 0 : contentContainer.clientHeight;
1061 };
1062 var getContentHeight = function getContentHeight() {
1063 var contentContainer = document.querySelector(DIALOG_CONTAINER_SELECTOR);
1064 return contentContainer.children[0].clientHeight + 50;
1065 };
1066 var setContentHeight = function setContentHeight(height) {
1067 var contentContainer = document.querySelector(DIALOG_CONTAINER_SELECTOR);
1068 if ('auto' === height) {
1069 contentContainer.style.height = 'auto';
1070 return;
1071 }
1072 contentContainer.style.height = "".concat(height, "px");
1073 };
1074 var PromptHistoryProvider = function PromptHistoryProvider(_ref) {
1075 var historyType = _ref.historyType,
1076 children = _ref.children;
1077 var showHistoryState = (0, _react.useState)(false);
1078 return /*#__PURE__*/_react.default.createElement(PromptHistoryContext.Provider, {
1079 value: {
1080 historyType: historyType,
1081 showHistoryState: showHistoryState
1082 }
1083 }, children);
1084 };
1085 exports.PromptHistoryProvider = PromptHistoryProvider;
1086 PromptHistoryProvider.propTypes = {
1087 historyType: _propTypes.default.oneOf(Object.values(_historyTypes.HISTORY_TYPES)).isRequired,
1088 children: _propTypes.default.node
1089 };
1090 var usePromptHistoryContext = function usePromptHistoryContext() {
1091 var _useContext = (0, _react.useContext)(PromptHistoryContext),
1092 historyType = _useContext.historyType,
1093 showHistoryState = _useContext.showHistoryState;
1094 var _showHistoryState = (0, _slicedToArray2.default)(showHistoryState, 2),
1095 showHistory = _showHistoryState[0],
1096 setShowHistory = _showHistoryState[1];
1097 var _useState = (0, _react.useState)(false),
1098 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1099 showModalWrapper = _useState2[0],
1100 setShowModalWrapper = _useState2[1];
1101 var _useState3 = (0, _react.useState)(false),
1102 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1103 showPromptHistory = _useState4[0],
1104 setShowPromptHistory = _useState4[1];
1105 var handleFullScreenHistoryState = function handleFullScreenHistoryState() {
1106 if (showHistory) {
1107 setShowModalWrapper(true);
1108 setTimeout(function () {
1109 return setShowPromptHistory(true);
1110 }, 200);
1111 return;
1112 }
1113 setShowPromptHistory(false);
1114 setTimeout(function () {
1115 return setShowModalWrapper(false);
1116 }, 500);
1117 };
1118 var handleDefaultHistoryState = function handleDefaultHistoryState() {
1119 if (showHistory) {
1120 var currentHeight = getContentHeight();
1121
1122 // Set initial state
1123 setContentHeight(currentHeight);
1124 setTimeout(function () {
1125 if (currentHeight < (0, _helpers.vh)(61)) {
1126 setContentHeight((0, _helpers.vh)(61));
1127 setTimeout(function () {
1128 return setShowModalWrapper(true);
1129 }, 200);
1130 setTimeout(function () {
1131 return setShowPromptHistory(true);
1132 }, 300);
1133 return;
1134 }
1135 setShowModalWrapper(true);
1136 setShowPromptHistory(true);
1137 }, 20);
1138 return;
1139 }
1140 setShowPromptHistory(false);
1141 setTimeout(function () {
1142 setShowModalWrapper(false);
1143 setContentHeight(getContentHeight());
1144 setTimeout(function () {
1145 return setContentHeight('auto');
1146 }, 300);
1147 }, 500);
1148 };
1149 (0, _react.useEffect)(function () {
1150 if (showHistory === showModalWrapper && showHistory === showPromptHistory) {
1151 return;
1152 }
1153 if (historyType === _historyTypes.HISTORY_TYPES.IMAGE) {
1154 return handleFullScreenHistoryState();
1155 }
1156 handleDefaultHistoryState();
1157 }, [showHistory]);
1158 var onOpen = function onOpen() {
1159 setShowHistory(true);
1160 };
1161 var onClose = function onClose() {
1162 setShowHistory(false);
1163 };
1164 return {
1165 historyType: historyType,
1166 isOpen: showPromptHistory,
1167 isModalOpen: showModalWrapper,
1168 showHistory: showHistory,
1169 onOpen: onOpen,
1170 onClose: onClose,
1171 getContainer: getContainer,
1172 getContainerHeight: getContainerHeight
1173 };
1174 };
1175 exports.usePromptHistoryContext = usePromptHistoryContext;
1176
1177 /***/ }),
1178
1179 /***/ "../modules/ai/assets/js/editor/components/prompt-history/helpers/history-period-helpers.js":
1180 /*!**************************************************************************************************!*\
1181 !*** ../modules/ai/assets/js/editor/components/prompt-history/helpers/history-period-helpers.js ***!
1182 \**************************************************************************************************/
1183 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1184
1185 "use strict";
1186
1187
1188 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1189 Object.defineProperty(exports, "__esModule", ({
1190 value: true
1191 }));
1192 exports.renderPeriods = exports.groupPromptHistoryData = exports.LAST_7_DAYS_KEY = exports.LAST_30_DAYS_KEY = void 0;
1193 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1194 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1195 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
1196 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1197 var _dateHelpers = __webpack_require__(/*! ../../../helpers/date-helpers */ "../modules/ai/assets/js/editor/helpers/date-helpers.js");
1198 var _modalPeriod = _interopRequireDefault(__webpack_require__(/*! ../parts/modal-period */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-period.js"));
1199 function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
1200 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1201 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
1202 var DATE_KEY = 'date';
1203 var LAST_7_DAYS_KEY = '7-days';
1204 exports.LAST_7_DAYS_KEY = LAST_7_DAYS_KEY;
1205 var LAST_30_DAYS_KEY = '30-days';
1206 exports.LAST_30_DAYS_KEY = LAST_30_DAYS_KEY;
1207 var MONTH_FORMAT = (0, _i18n.__)('F', 'elementor');
1208
1209 /**
1210 * Sorts items in ascending order by date.
1211 *
1212 * @param {Array} historyData
1213 * @return {Array}
1214 */
1215 var sortPromptHistoryData = function sortPromptHistoryData(historyData) {
1216 var clone = (0, _toConsumableArray2.default)(historyData);
1217 return clone.sort(function (a, b) {
1218 return new Date(b[DATE_KEY]) - new Date(a[DATE_KEY]);
1219 });
1220 };
1221
1222 /**
1223 * Groups prompt history data by time periods.
1224 *
1225 * @param {Array} historyData
1226 * @return {Object.<string, {label: string, items: any[]}>}
1227 */
1228 var groupPromptHistoryData = function groupPromptHistoryData(historyData) {
1229 var _result;
1230 var data = sortPromptHistoryData(historyData);
1231 var currentDate = new Date();
1232 var result = (_result = {}, (0, _defineProperty2.default)(_result, LAST_7_DAYS_KEY, {
1233 label: (0, _i18n.__)('Last 7 days', 'elementor'),
1234 items: []
1235 }), (0, _defineProperty2.default)(_result, LAST_30_DAYS_KEY, {
1236 label: (0, _i18n.__)('Last 30 days', 'elementor'),
1237 items: []
1238 }), _result);
1239 var _iterator = _createForOfIteratorHelper(data),
1240 _step;
1241 try {
1242 for (_iterator.s(); !(_step = _iterator.n()).done;) {
1243 var item = _step.value;
1244 var date = new Date(item[DATE_KEY]);
1245 var diff = (0, _dateHelpers.daysDiff)(date, currentDate);
1246 if (diff <= 7) {
1247 result[LAST_7_DAYS_KEY].items.push(item);
1248 continue;
1249 }
1250 if (diff <= 30) {
1251 result[LAST_30_DAYS_KEY].items.push(item);
1252 continue;
1253 }
1254 var month = date.getMonth();
1255 if (!result[month]) {
1256 result[month] = {
1257 label: (0, _dateHelpers.translateDate)(MONTH_FORMAT, date),
1258 items: []
1259 };
1260 }
1261 result[month].items.push(item);
1262 }
1263 } catch (err) {
1264 _iterator.e(err);
1265 } finally {
1266 _iterator.f();
1267 }
1268 return result;
1269 };
1270 exports.groupPromptHistoryData = groupPromptHistoryData;
1271 var renderPeriods = function renderPeriods(_ref) {
1272 var _groupData$LAST_7_DAY, _groupData$LAST_7_DAY2, _groupData$LAST_30_DA, _groupData$LAST_30_DA2;
1273 var items = _ref.items,
1274 onDelete = _ref.onDelete;
1275 var groupData = groupPromptHistoryData(items);
1276 var periods = [];
1277 if ((_groupData$LAST_7_DAY = groupData[LAST_7_DAYS_KEY]) !== null && _groupData$LAST_7_DAY !== void 0 && (_groupData$LAST_7_DAY2 = _groupData$LAST_7_DAY.items) !== null && _groupData$LAST_7_DAY2 !== void 0 && _groupData$LAST_7_DAY2.length) {
1278 periods.push( /*#__PURE__*/_react.default.createElement(_modalPeriod.default, {
1279 periodTitle: groupData[LAST_7_DAYS_KEY].label,
1280 onHistoryItemDelete: onDelete,
1281 historyItems: groupData[LAST_7_DAYS_KEY].items
1282 }));
1283 }
1284 if ((_groupData$LAST_30_DA = groupData[LAST_30_DAYS_KEY]) !== null && _groupData$LAST_30_DA !== void 0 && (_groupData$LAST_30_DA2 = _groupData$LAST_30_DA.items) !== null && _groupData$LAST_30_DA2 !== void 0 && _groupData$LAST_30_DA2.length) {
1285 periods.push( /*#__PURE__*/_react.default.createElement(_modalPeriod.default, {
1286 periodTitle: groupData[LAST_30_DAYS_KEY].label,
1287 onHistoryItemDelete: onDelete,
1288 historyItems: groupData[LAST_30_DAYS_KEY].items
1289 }));
1290 }
1291 for (var i = _dateHelpers.MONTH_DECEMBER_INDEX; i >= _dateHelpers.MONTH_JANUARY_INDEX; i--) {
1292 if (groupData[i]) {
1293 periods.push( /*#__PURE__*/_react.default.createElement(_modalPeriod.default, {
1294 periodTitle: groupData[i].label,
1295 onHistoryItemDelete: onDelete,
1296 historyItems: groupData[i].items
1297 }));
1298 }
1299 }
1300 return periods;
1301 };
1302 exports.renderPeriods = renderPeriods;
1303
1304 /***/ }),
1305
1306 /***/ "../modules/ai/assets/js/editor/components/prompt-history/history-button.js":
1307 /*!**********************************************************************************!*\
1308 !*** ../modules/ai/assets/js/editor/components/prompt-history/history-button.js ***!
1309 \**********************************************************************************/
1310 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1311
1312 "use strict";
1313
1314
1315 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1316 Object.defineProperty(exports, "__esModule", ({
1317 value: true
1318 }));
1319 exports["default"] = void 0;
1320 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1321 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1322 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1323 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
1324 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1325 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1326 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1327 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1328 var _excluded = ["isActive"];
1329 var _templateObject;
1330 var StyledHistoryButton = (0, _ui.styled)(_ui.IconButton)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin-right: ", ";\n\n ", "\n"])), function (_ref) {
1331 var theme = _ref.theme;
1332 return theme.spacing(2);
1333 }, function (_ref2) {
1334 var isActive = _ref2.isActive,
1335 theme = _ref2.theme;
1336 return isActive && "\n background-color: ".concat(theme.palette.action.hover, ";\n color: ").concat(theme.palette.text.tertiary, ";\n ");
1337 });
1338 var PromptHistoryButton = function PromptHistoryButton(_ref3) {
1339 var isActive = _ref3.isActive,
1340 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
1341 return /*#__PURE__*/_react.default.createElement(StyledHistoryButton, (0, _extends2.default)({
1342 "aria-label": (0, _i18n.__)('Show prompt history', 'elementor'),
1343 type: "button",
1344 size: "small",
1345 isActive: isActive
1346 }, props), /*#__PURE__*/_react.default.createElement(_icons.HistoryIcon, null));
1347 };
1348 PromptHistoryButton.propTypes = {
1349 isActive: _propTypes.default.bool.isRequired
1350 };
1351 var _default = PromptHistoryButton;
1352 exports["default"] = _default;
1353
1354 /***/ }),
1355
1356 /***/ "../modules/ai/assets/js/editor/components/prompt-history/history-modal.js":
1357 /*!*********************************************************************************!*\
1358 !*** ../modules/ai/assets/js/editor/components/prompt-history/history-modal.js ***!
1359 \*********************************************************************************/
1360 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1361
1362 "use strict";
1363
1364
1365 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1366 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1367 Object.defineProperty(exports, "__esModule", ({
1368 value: true
1369 }));
1370 exports["default"] = void 0;
1371 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1372 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1373 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1374 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1375 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1376 var _usePromptHistory2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-prompt-history */ "../modules/ai/assets/js/editor/hooks/use-prompt-history.js"));
1377 var _modalHeader = _interopRequireDefault(__webpack_require__(/*! ./parts/modal-header */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-header.js"));
1378 var _useDeletePromptHistoryItem = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-delete-prompt-history-item */ "../modules/ai/assets/js/editor/hooks/use-delete-prompt-history-item.js"));
1379 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
1380 var _historyPeriodHelpers = __webpack_require__(/*! ./helpers/history-period-helpers */ "../modules/ai/assets/js/editor/components/prompt-history/helpers/history-period-helpers.js");
1381 var _modalEmpty = _interopRequireDefault(__webpack_require__(/*! ./parts/modal-empty */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-empty.js"));
1382 var _reactInfiniteScroller = _interopRequireDefault(__webpack_require__(/*! react-infinite-scroller */ "../node_modules/react-infinite-scroller/index.js"));
1383 var _modalUpgrade = _interopRequireDefault(__webpack_require__(/*! ./parts/modal-upgrade */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-upgrade.js"));
1384 var _promptHistoryContext = __webpack_require__(/*! ./context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
1385 var _modalContainer = _interopRequireDefault(__webpack_require__(/*! ./parts/modal-container */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-container.js"));
1386 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1387 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1388 var ITEMS_LIMIT = 10;
1389 var FREE_PLAN_ERRORS = ['invalid_connect_data', 'no_subscription'];
1390 var PromptHistoryModal = function PromptHistoryModal(props) {
1391 var lastRun = (0, _react.useRef)(function () {});
1392 var scrollContainer = (0, _react.useRef)(null);
1393 var _usePromptHistoryCont = (0, _promptHistoryContext.usePromptHistoryContext)(),
1394 historyType = _usePromptHistoryCont.historyType,
1395 onClose = _usePromptHistoryCont.onClose;
1396 var _usePromptHistory = (0, _usePromptHistory2.default)(historyType),
1397 items = _usePromptHistory.items,
1398 meta = _usePromptHistory.meta,
1399 isHistoryFetchingInProgress = _usePromptHistory.isLoading,
1400 historyFetchingError = _usePromptHistory.error,
1401 fetchData = _usePromptHistory.fetchData,
1402 deleteItemFromState = _usePromptHistory.deleteItemById;
1403 var _useDeletePromptHisto = (0, _useDeletePromptHistoryItem.default)(),
1404 isDeletingInProgress = _useDeletePromptHisto.isLoading,
1405 historyDeletingError = _useDeletePromptHisto.error,
1406 deleteItem = _useDeletePromptHisto.deleteItem;
1407 var error = historyFetchingError || historyDeletingError;
1408 var isLoading = isHistoryFetchingInProgress || isDeletingInProgress;
1409 var isLastPage = meta && (meta === null || meta === void 0 ? void 0 : meta.currentPage) === (meta === null || meta === void 0 ? void 0 : meta.totalPages);
1410 var showUpgrade = (items === null || items === void 0 ? void 0 : items.length) > 0 && (meta === null || meta === void 0 ? void 0 : meta.allowedDays) < 90 && isLastPage;
1411 (0, _react.useEffect)(function () {
1412 lastRun.current = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
1413 return _regenerator.default.wrap(function _callee$(_context) {
1414 while (1) switch (_context.prev = _context.next) {
1415 case 0:
1416 return _context.abrupt("return", fetchData({
1417 page: 1,
1418 limit: ITEMS_LIMIT
1419 }));
1420 case 1:
1421 case "end":
1422 return _context.stop();
1423 }
1424 }, _callee);
1425 }));
1426 lastRun.current();
1427 }, []);
1428 var loadNext = function loadNext() {
1429 if (isLoading || isLastPage) {
1430 return;
1431 }
1432 lastRun.current = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
1433 return _regenerator.default.wrap(function _callee2$(_context2) {
1434 while (1) switch (_context2.prev = _context2.next) {
1435 case 0:
1436 return _context2.abrupt("return", fetchData({
1437 page: meta.currentPage + 1,
1438 limit: ITEMS_LIMIT
1439 }));
1440 case 1:
1441 case "end":
1442 return _context2.stop();
1443 }
1444 }, _callee2);
1445 }));
1446 lastRun.current();
1447 };
1448 var onHistoryItemDelete = /*#__PURE__*/function () {
1449 var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(id) {
1450 return _regenerator.default.wrap(function _callee4$(_context4) {
1451 while (1) switch (_context4.prev = _context4.next) {
1452 case 0:
1453 lastRun.current = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
1454 return _regenerator.default.wrap(function _callee3$(_context3) {
1455 while (1) switch (_context3.prev = _context3.next) {
1456 case 0:
1457 _context3.next = 2;
1458 return deleteItem(id);
1459 case 2:
1460 return _context3.abrupt("return", _context3.sent);
1461 case 3:
1462 case "end":
1463 return _context3.stop();
1464 }
1465 }, _callee3);
1466 }));
1467 _context4.next = 3;
1468 return lastRun.current();
1469 case 3:
1470 if (!historyDeletingError) {
1471 deleteItemFromState(id);
1472 }
1473 case 4:
1474 case "end":
1475 return _context4.stop();
1476 }
1477 }, _callee4);
1478 }));
1479 return function onHistoryItemDelete(_x) {
1480 return _ref3.apply(this, arguments);
1481 };
1482 }();
1483 return /*#__PURE__*/_react.default.createElement(_modalContainer.default, props, /*#__PURE__*/_react.default.createElement(_modalHeader.default, {
1484 onClose: onClose
1485 }), error && !FREE_PLAN_ERRORS.includes(error) && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
1486 error: error,
1487 onRetry: lastRun.current,
1488 sx: {
1489 position: 'absolute',
1490 zIndex: 1,
1491 marginTop: isLoading ? 0.5 : 'revert'
1492 }
1493 }), isLoading && /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, {
1494 role: "progressbar",
1495 "aria-label": (0, _i18n.__)('Loading', 'elementor'),
1496 color: "secondary"
1497 }), /*#__PURE__*/_react.default.createElement(_ui.Box, {
1498 sx: {
1499 overflowY: 'scroll',
1500 height: '85%'
1501 },
1502 ref: scrollContainer
1503 }, error && FREE_PLAN_ERRORS.includes(error) && /*#__PURE__*/_react.default.createElement(_modalUpgrade.default, {
1504 variant: "full",
1505 historyType: historyType
1506 }), !error && 0 === (items === null || items === void 0 ? void 0 : items.length) && /*#__PURE__*/_react.default.createElement(_modalEmpty.default, {
1507 historyType: historyType
1508 }), (items === null || items === void 0 ? void 0 : items.length) > 0 && /*#__PURE__*/_react.default.createElement(_reactInfiniteScroller.default, {
1509 loadMore: loadNext,
1510 getScrollParent: function getScrollParent() {
1511 return scrollContainer.current;
1512 },
1513 useWindow: false,
1514 isReverse: false,
1515 threshold: 30,
1516 initialLoad: false,
1517 hasMore: !isLastPage
1518 }, (0, _historyPeriodHelpers.renderPeriods)({
1519 items: items,
1520 onDelete: onHistoryItemDelete
1521 })), showUpgrade && /*#__PURE__*/_react.default.createElement(_modalUpgrade.default, {
1522 variant: "small",
1523 historyType: historyType
1524 })));
1525 };
1526 var _default = PromptHistoryModal;
1527 exports["default"] = _default;
1528
1529 /***/ }),
1530
1531 /***/ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js":
1532 /*!*********************************************************************************!*\
1533 !*** ../modules/ai/assets/js/editor/components/prompt-history/history-types.js ***!
1534 \*********************************************************************************/
1535 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1536
1537 "use strict";
1538
1539
1540 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1541 Object.defineProperty(exports, "__esModule", ({
1542 value: true
1543 }));
1544 exports.getTranslatedPromptHistoryType = exports.TRANSLATED_HISTORY_TYPES_FALLBACK = exports.TRANSLATED_HISTORY_TYPES = exports.HISTORY_TYPES = void 0;
1545 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1546 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1547 var _Object$freeze;
1548 var HISTORY_TYPES = Object.freeze({
1549 ALL: 'all',
1550 TEXT: 'text',
1551 CODE: 'code',
1552 IMAGE: 'images',
1553 BLOCK: 'blocks'
1554 });
1555 exports.HISTORY_TYPES = HISTORY_TYPES;
1556 var TRANSLATED_HISTORY_TYPES_FALLBACK = (0, _i18n.__)('things', 'elementor');
1557 exports.TRANSLATED_HISTORY_TYPES_FALLBACK = TRANSLATED_HISTORY_TYPES_FALLBACK;
1558 var TRANSLATED_HISTORY_TYPES = Object.freeze((_Object$freeze = {}, (0, _defineProperty2.default)(_Object$freeze, HISTORY_TYPES.TEXT, (0, _i18n.__)('texts', 'elementor')), (0, _defineProperty2.default)(_Object$freeze, HISTORY_TYPES.CODE, (0, _i18n.__)('code', 'elementor')), (0, _defineProperty2.default)(_Object$freeze, HISTORY_TYPES.IMAGE, (0, _i18n.__)('images', 'elementor')), (0, _defineProperty2.default)(_Object$freeze, HISTORY_TYPES.BLOCK, (0, _i18n.__)('blocks', 'elementor')), _Object$freeze));
1559 exports.TRANSLATED_HISTORY_TYPES = TRANSLATED_HISTORY_TYPES;
1560 var getTranslatedPromptHistoryType = function getTranslatedPromptHistoryType(historyType) {
1561 if (TRANSLATED_HISTORY_TYPES[historyType]) {
1562 return TRANSLATED_HISTORY_TYPES[historyType];
1563 }
1564 return TRANSLATED_HISTORY_TYPES_FALLBACK;
1565 };
1566 exports.getTranslatedPromptHistoryType = getTranslatedPromptHistoryType;
1567
1568 /***/ }),
1569
1570 /***/ "../modules/ai/assets/js/editor/components/prompt-history/index.js":
1571 /*!*************************************************************************!*\
1572 !*** ../modules/ai/assets/js/editor/components/prompt-history/index.js ***!
1573 \*************************************************************************/
1574 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1575
1576 "use strict";
1577
1578
1579 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1580 Object.defineProperty(exports, "__esModule", ({
1581 value: true
1582 }));
1583 exports["default"] = void 0;
1584 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1585 var _historyButton = _interopRequireDefault(__webpack_require__(/*! ./history-button */ "../modules/ai/assets/js/editor/components/prompt-history/history-button.js"));
1586 var _historyModal = _interopRequireDefault(__webpack_require__(/*! ./history-modal */ "../modules/ai/assets/js/editor/components/prompt-history/history-modal.js"));
1587 var _promptHistoryContext = __webpack_require__(/*! ./context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
1588 var PROMPT_HISTORY_MODAL_ID = 'prompt-history-modal';
1589 var PromptHistory = function PromptHistory() {
1590 var _usePromptHistoryCont = (0, _promptHistoryContext.usePromptHistoryContext)(),
1591 isOpen = _usePromptHistoryCont.isOpen,
1592 isModalOpen = _usePromptHistoryCont.isModalOpen,
1593 onOpen = _usePromptHistoryCont.onOpen,
1594 onClose = _usePromptHistoryCont.onClose;
1595 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_historyButton.default, {
1596 isActive: isOpen,
1597 onClick: function onClick() {
1598 return isOpen ? onClose() : onOpen();
1599 },
1600 "aria-haspopup": "dialog",
1601 "aria-controls": PROMPT_HISTORY_MODAL_ID
1602 }), isModalOpen && /*#__PURE__*/_react.default.createElement(_historyModal.default, {
1603 id: PROMPT_HISTORY_MODAL_ID
1604 }));
1605 };
1606 var _default = PromptHistory;
1607 exports["default"] = _default;
1608
1609 /***/ }),
1610
1611 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/action-icon.js":
1612 /*!*************************************************************************************!*\
1613 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/action-icon.js ***!
1614 \*************************************************************************************/
1615 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1616
1617 "use strict";
1618
1619
1620 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1621 Object.defineProperty(exports, "__esModule", ({
1622 value: true
1623 }));
1624 exports["default"] = void 0;
1625 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1626 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1627 var _textIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/text-icon */ "../modules/ai/assets/js/editor/icons/text-icon.js"));
1628 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1629 var _codeIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/code-icon */ "../modules/ai/assets/js/editor/icons/code-icon.js"));
1630 var FALLBACK_ICON = /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
1631 "data-testid": "e-ph-fi"
1632 });
1633 var ICONS_BY_ACTIONS = Object.freeze({
1634 'enhance-image-prompt': /*#__PURE__*/_react.default.createElement(_textIcon.default, null),
1635 'get-text': /*#__PURE__*/_react.default.createElement(_textIcon.default, null),
1636 'edit-text': /*#__PURE__*/_react.default.createElement(_textIcon.default, null),
1637 'custom-css': /*#__PURE__*/_react.default.createElement(_codeIcon.default, null),
1638 'custom-code': /*#__PURE__*/_react.default.createElement(_codeIcon.default, null)
1639 });
1640 var PromptHistoryActionIcon = function PromptHistoryActionIcon(_ref) {
1641 var action = _ref.action;
1642 if (ICONS_BY_ACTIONS[action]) {
1643 return ICONS_BY_ACTIONS[action];
1644 }
1645 return FALLBACK_ICON;
1646 };
1647 PromptHistoryActionIcon.propTypes = {
1648 action: _propTypes.default.string.isRequired
1649 };
1650 var _default = PromptHistoryActionIcon;
1651 exports["default"] = _default;
1652
1653 /***/ }),
1654
1655 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-container.js":
1656 /*!*****************************************************************************************!*\
1657 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-container.js ***!
1658 \*****************************************************************************************/
1659 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1660
1661 "use strict";
1662
1663
1664 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1665 Object.defineProperty(exports, "__esModule", ({
1666 value: true
1667 }));
1668 exports["default"] = void 0;
1669 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1670 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1671 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1672 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
1673 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1674 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1675 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1676 var _promptHistoryContext = __webpack_require__(/*! ../context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
1677 var _excluded = ["children"];
1678 var _templateObject;
1679 var StyledContent = (0, _ui.styled)(_ui.Box)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: 360px;\n position: relative;\n margin-top: ", ";\n margin-right: ", ";\n background-color: ", ";\n border-radius: ", ";\n height: ", ";\n\n @media screen and (max-width: 456px) {\n width: 320px;\n }\n\n @media screen and (max-width: 420px) {\n width: 230px;\n }\n"])), function (_ref) {
1680 var theme = _ref.theme;
1681 return theme.spacing(2);
1682 }, function (_ref2) {
1683 var theme = _ref2.theme;
1684 return theme.spacing(2);
1685 }, function (_ref3) {
1686 var theme = _ref3.theme;
1687 return theme.palette.background.paper;
1688 }, function (_ref4) {
1689 var theme = _ref4.theme;
1690 return "".concat(theme.shape.borderRadius, "px");
1691 }, function (_ref5) {
1692 var height = _ref5.height;
1693 return "calc( ".concat(height, "px - 32px )");
1694 });
1695 var ModalContainer = function ModalContainer(_ref6) {
1696 var children = _ref6.children,
1697 props = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
1698 var _usePromptHistoryCont = (0, _promptHistoryContext.usePromptHistoryContext)(),
1699 isOpen = _usePromptHistoryCont.isOpen,
1700 isModalOpen = _usePromptHistoryCont.isModalOpen,
1701 onClose = _usePromptHistoryCont.onClose,
1702 getContainerHeight = _usePromptHistoryCont.getContainerHeight,
1703 getContainer = _usePromptHistoryCont.getContainer;
1704 return /*#__PURE__*/_react.default.createElement(_ui.Modal, (0, _extends2.default)({
1705 container: getContainer(),
1706 open: isModalOpen,
1707 hideBackdrop: true,
1708 onClose: onClose,
1709 sx: {
1710 position: 'absolute'
1711 }
1712 }, props), /*#__PURE__*/_react.default.createElement(_ui.Backdrop, {
1713 open: true,
1714 sx: {
1715 position: 'absolute',
1716 justifyContent: 'flex-end',
1717 alignItems: 'flex-start'
1718 },
1719 "aria-hidden": false
1720 }, /*#__PURE__*/_react.default.createElement(_ui.Slide, {
1721 direction: "left",
1722 in: isOpen,
1723 timeout: 500,
1724 easing: "ease-in-out"
1725 }, /*#__PURE__*/_react.default.createElement(StyledContent, {
1726 "aria-label": (0, _i18n.__)('Prompt history modal', 'elementor'),
1727 height: getContainerHeight()
1728 }, children))));
1729 };
1730 ModalContainer.propTypes = {
1731 isOpen: _propTypes.default.bool.isRequired,
1732 isModalOpen: _propTypes.default.bool.isRequired,
1733 onClose: _propTypes.default.func.isRequired,
1734 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
1735 };
1736 var _default = ModalContainer;
1737 exports["default"] = _default;
1738
1739 /***/ }),
1740
1741 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-empty.js":
1742 /*!*************************************************************************************!*\
1743 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-empty.js ***!
1744 \*************************************************************************************/
1745 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1746
1747 "use strict";
1748 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
1749
1750
1751 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1752 Object.defineProperty(exports, "__esModule", ({
1753 value: true
1754 }));
1755 exports["default"] = void 0;
1756 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1757 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1758 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1759 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1760 var _historyTypes = __webpack_require__(/*! ../history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
1761 var PromptHistoryEmpty = function PromptHistoryEmpty(_ref) {
1762 var historyType = _ref.historyType;
1763 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1764 justifyContent: "center",
1765 sx: {
1766 height: '100%',
1767 textAlign: 'center'
1768 },
1769 "data-testid": "e-ph-empty"
1770 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1771 variant: "h6"
1772 }, (0, _i18n.__)('Prepare to be amazed', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1773 variant: "body1"
1774 }, sprintf(
1775 // Translators: %s: History type.
1776 (0, _i18n.__)('This is where you\'ll find all the %s you\'ve generated using Elementor AI.', 'elementor'), (0, _historyTypes.getTranslatedPromptHistoryType)(historyType))));
1777 };
1778 PromptHistoryEmpty.propTypes = {
1779 historyType: _propTypes.default.oneOf(Object.values(_historyTypes.HISTORY_TYPES)).isRequired
1780 };
1781 var _default = PromptHistoryEmpty;
1782 exports["default"] = _default;
1783
1784 /***/ }),
1785
1786 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-header.js":
1787 /*!**************************************************************************************!*\
1788 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-header.js ***!
1789 \**************************************************************************************/
1790 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1791
1792 "use strict";
1793
1794
1795 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1796 Object.defineProperty(exports, "__esModule", ({
1797 value: true
1798 }));
1799 exports["default"] = void 0;
1800 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1801 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1802 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1803 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1804 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1805 var StyledContent = (0, _ui.styled)(_ui.Box)(function (_ref) {
1806 var theme = _ref.theme;
1807 return {
1808 marginTop: 0,
1809 padding: theme.spacing(1.5),
1810 borderBottom: "1px solid ".concat(theme.palette.action.focus),
1811 display: 'flex',
1812 alignItems: 'center',
1813 justifyContent: 'space-between'
1814 };
1815 });
1816 var PromptHistoryModalHeader = function PromptHistoryModalHeader(_ref2) {
1817 var onClose = _ref2.onClose;
1818 return /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1819 fontWeight: "bolder",
1820 variant: "h6",
1821 sx: {
1822 userSelect: 'none'
1823 }
1824 }, (0, _i18n.__)('History', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
1825 size: "small",
1826 "aria-label": (0, _i18n.__)('Hide prompt history', 'elementor'),
1827 onClick: onClose
1828 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, {
1829 fontSize: "small"
1830 })));
1831 };
1832 PromptHistoryModalHeader.propTypes = {
1833 onClose: _propTypes.default.func.isRequired
1834 };
1835 var _default = PromptHistoryModalHeader;
1836 exports["default"] = _default;
1837
1838 /***/ }),
1839
1840 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-action-button.js":
1841 /*!**************************************************************************************************!*\
1842 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-action-button.js ***!
1843 \**************************************************************************************************/
1844 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1845
1846 "use strict";
1847
1848
1849 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1850 Object.defineProperty(exports, "__esModule", ({
1851 value: true
1852 }));
1853 exports["default"] = void 0;
1854 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1855 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1856 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1857 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1858 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1859 var _tooltip = _interopRequireDefault(__webpack_require__(/*! ../../tooltip */ "../modules/ai/assets/js/editor/components/tooltip.js"));
1860 var _excluded = ["tooltipTitle"];
1861 var ActionButton = function ActionButton(_ref) {
1862 var tooltipTitle = _ref.tooltipTitle,
1863 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1864 return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
1865 title: tooltipTitle,
1866 placement: "top"
1867 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
1868 type: "button",
1869 size: "small",
1870 disableRipple: true,
1871 disableFocusRipple: true,
1872 disableTouchRipple: true
1873 }, props)));
1874 };
1875 ActionButton.propTypes = {
1876 tooltipTitle: _propTypes.default.string.isRequired
1877 };
1878 var _default = ActionButton;
1879 exports["default"] = _default;
1880
1881 /***/ }),
1882
1883 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-secondary-content.js":
1884 /*!******************************************************************************************************!*\
1885 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-secondary-content.js ***!
1886 \******************************************************************************************************/
1887 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1888
1889 "use strict";
1890
1891
1892 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1893 Object.defineProperty(exports, "__esModule", ({
1894 value: true
1895 }));
1896 exports["default"] = void 0;
1897 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1898 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
1899 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1900 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1901 var _templateObject, _templateObject2;
1902 var StyledDateSubtitle = (0, _ui.styled)(_ui.Typography)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n"])), function (_ref) {
1903 var theme = _ref.theme;
1904 return theme.palette.secondary.light;
1905 });
1906 var StyledImage = (0, _ui.styled)('img')(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n height: 72px;\n width: 72px;\n object-fit: cover;\n margin-right: ", ";\n"])), function (_ref2) {
1907 var theme = _ref2.theme;
1908 return theme.spacing(0.5);
1909 });
1910 var PromptHistoryItemSecondaryContent = function PromptHistoryItemSecondaryContent(_ref3) {
1911 var date = _ref3.date,
1912 thumbnails = _ref3.thumbnails;
1913 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1914 direction: "column",
1915 width: "90%"
1916 }, /*#__PURE__*/_react.default.createElement(StyledDateSubtitle, {
1917 variant: "caption"
1918 }, date), (thumbnails === null || thumbnails === void 0 ? void 0 : thumbnails.length) > 0 && /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1919 flexDirection: "row",
1920 mt: 1
1921 }, thumbnails.map(
1922 /**
1923 * @param {Object} thumb
1924 * @return {React.ReactNode}
1925 */
1926 function (thumb) {
1927 return /*#__PURE__*/_react.default.createElement(StyledImage, {
1928 key: "thumbnail-".concat(thumb.seed),
1929 alt: "",
1930 src: thumb.image_url
1931 });
1932 })));
1933 };
1934 PromptHistoryItemSecondaryContent.propTypes = {
1935 date: _propTypes.default.string.isRequired,
1936 thumbnails: _propTypes.default.array
1937 };
1938 var _default = PromptHistoryItemSecondaryContent;
1939 exports["default"] = _default;
1940
1941 /***/ }),
1942
1943 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-title.js":
1944 /*!******************************************************************************************!*\
1945 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-title.js ***!
1946 \******************************************************************************************/
1947 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1948
1949 "use strict";
1950
1951
1952 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1953 Object.defineProperty(exports, "__esModule", ({
1954 value: true
1955 }));
1956 exports["default"] = void 0;
1957 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1958 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
1959 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1960 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1961 var _tooltip = _interopRequireDefault(__webpack_require__(/*! ../../tooltip */ "../modules/ai/assets/js/editor/components/tooltip.js"));
1962 var _templateObject;
1963 var StyledTitle = (0, _ui.styled)(_ui.Typography)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: ", ";\n"])), function (_ref) {
1964 var theme = _ref.theme;
1965 return theme.spacing(0.5);
1966 });
1967 var PromptHistoryItemTitle = function PromptHistoryItemTitle(_ref2) {
1968 var prompt = _ref2.prompt;
1969 return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
1970 title: prompt,
1971 arrow: false,
1972 placement: "bottom-start"
1973 }, /*#__PURE__*/_react.default.createElement(StyledTitle, {
1974 variant: "body2",
1975 noWrap: true,
1976 paragraph: true
1977 }, prompt));
1978 };
1979 PromptHistoryItemTitle.propTypes = {
1980 prompt: _propTypes.default.string.isRequired
1981 };
1982 var _default = PromptHistoryItemTitle;
1983 exports["default"] = _default;
1984
1985 /***/ }),
1986
1987 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item.js":
1988 /*!************************************************************************************!*\
1989 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item.js ***!
1990 \************************************************************************************/
1991 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1992
1993 "use strict";
1994
1995
1996 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1997 Object.defineProperty(exports, "__esModule", ({
1998 value: true
1999 }));
2000 exports["default"] = void 0;
2001 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2002 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2003 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
2004 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2005 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2006 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2007 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
2008 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2009 var _restoreIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/restore-icon */ "../modules/ai/assets/js/editor/icons/restore-icon.js"));
2010 var _modalItemActionButton = _interopRequireDefault(__webpack_require__(/*! ./modal-item-action-button */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-action-button.js"));
2011 var _promptHistoryActionContext = __webpack_require__(/*! ../context/prompt-history-action-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js");
2012 var _actionIcon = _interopRequireDefault(__webpack_require__(/*! ./action-icon */ "../modules/ai/assets/js/editor/components/prompt-history/parts/action-icon.js"));
2013 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
2014 var _modalItemTitle = _interopRequireDefault(__webpack_require__(/*! ./modal-item-title */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-title.js"));
2015 var _modalItemSecondaryContent = _interopRequireDefault(__webpack_require__(/*! ./modal-item-secondary-content */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-secondary-content.js"));
2016 var _excluded = ["id", "date", "onHistoryItemDelete"];
2017 var _templateObject, _templateObject2, _templateObject3, _templateObject4;
2018 var StyledListItem = (0, _ui.styled)(_ui.ListItem)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n & .e-prompt-history-item-actions {\n position: absolute;\n top: -9999px;\n }\n\n &:hover,\n &:focus-visible,\n &:focus-within {\n .MuiTypography-body2 {\n font-weight: 700;\n max-width: ", ";\n }\n\n .e-prompt-history-item-actions {\n position: relative;\n top: -3px;\n }\n }\n"])), function (_ref) {
2019 var actionsCount = _ref.actionsCount;
2020 return "calc(100% - ".concat(actionsCount, " * 26px)");
2021 });
2022 var StyledListItemButton = (0, _ui.styled)(_ui.ListItemButton)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n padding: ", ";\n align-items: flex-start;\n cursor: inherit;\n"])), function (_ref2) {
2023 var theme = _ref2.theme;
2024 return theme.spacing(0.5, 2);
2025 });
2026 var StyledListItemIcon = (0, _ui.styled)(_ui.ListItemIcon)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n min-width: auto;\n\n & > .MuiSvgIcon-root {\n margin-right: ", ";\n font-size: 1rem;\n position: relative;\n top: ", ";\n }\n"])), function (_ref3) {
2027 var theme = _ref3.theme;
2028 return theme.spacing(1.5);
2029 }, function (_ref4) {
2030 var theme = _ref4.theme;
2031 return theme.spacing(0.5);
2032 });
2033 var StyledButtonsWrapper = (0, _ui.styled)(_ui.Box)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n & .MuiSvgIcon-root {\n font-size: 1rem;\n }\n"])));
2034 var PromptHistoryItem = function PromptHistoryItem(_ref5) {
2035 var id = _ref5.id,
2036 date = _ref5.date,
2037 onHistoryItemDelete = _ref5.onHistoryItemDelete,
2038 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded);
2039 var _usePromptHistoryActi = (0, _promptHistoryActionContext.usePromptHistoryAction)(),
2040 getAllowedActions = _usePromptHistoryActi.getAllowedActions,
2041 onPromptReuse = _usePromptHistoryActi.onPromptReuse,
2042 onResultEdit = _usePromptHistoryActi.onResultEdit,
2043 onImagesRestore = _usePromptHistoryActi.onImagesRestore;
2044 var action = props.action,
2045 prompt = props.prompt,
2046 text = props.text,
2047 images = props.images,
2048 thumbnails = props.thumbnails,
2049 imageType = props.imageType,
2050 ratio = props.ratio;
2051 var allowedActions = getAllowedActions();
2052 return /*#__PURE__*/_react.default.createElement(StyledListItem, {
2053 tabIndex: "0",
2054 "data-testid": "e-ph-i",
2055 disableGutters: true,
2056 disablePadding: true,
2057 actionsCount: Object.keys(allowedActions).length
2058 }, /*#__PURE__*/_react.default.createElement(StyledListItemButton, {
2059 component: "div",
2060 role: undefined
2061 }, /*#__PURE__*/_react.default.createElement(StyledListItemIcon, null, /*#__PURE__*/_react.default.createElement(_actionIcon.default, {
2062 action: action
2063 })), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
2064 disableTypography: true,
2065 primary: /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2066 direction: "row",
2067 justifyContent: "space-between",
2068 alignItems: "center",
2069 height: "16px"
2070 }, /*#__PURE__*/_react.default.createElement(_modalItemTitle.default, {
2071 prompt: prompt
2072 }), /*#__PURE__*/_react.default.createElement(StyledButtonsWrapper, {
2073 className: "e-prompt-history-item-actions"
2074 }, allowedActions[_promptHistoryActionContext.ACTION_TYPES.REMOVE] && /*#__PURE__*/_react.default.createElement(_modalItemActionButton.default, {
2075 onClick: function onClick() {
2076 return onHistoryItemDelete(id);
2077 },
2078 "aria-label": (0, _i18n.__)('Remove item', 'elementor'),
2079 tooltipTitle: (0, _i18n.__)('Remove', 'elementor')
2080 }, /*#__PURE__*/_react.default.createElement(_icons.TrashIcon, null)), allowedActions[_promptHistoryActionContext.ACTION_TYPES.REUSE] && /*#__PURE__*/_react.default.createElement(_modalItemActionButton.default, {
2081 onClick: function onClick() {
2082 return onPromptReuse(id, prompt);
2083 },
2084 "aria-label": (0, _i18n.__)('Reuse prompt', 'elementor'),
2085 tooltipTitle: (0, _i18n.__)('Reuse prompt', 'elementor')
2086 }, /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null)), allowedActions[_promptHistoryActionContext.ACTION_TYPES.RESTORE] && /*#__PURE__*/_react.default.createElement(_modalItemActionButton.default, {
2087 onClick: function onClick() {
2088 return onImagesRestore(id, {
2089 prompt: prompt,
2090 images: images,
2091 imageType: imageType,
2092 ratio: ratio
2093 });
2094 },
2095 "aria-label": (0, _i18n.__)('Restore', 'elementor'),
2096 tooltipTitle: (0, _i18n.__)('Restore', 'elementor')
2097 }, /*#__PURE__*/_react.default.createElement(_restoreIcon.default, null)), allowedActions[_promptHistoryActionContext.ACTION_TYPES.EDIT] && /*#__PURE__*/_react.default.createElement(_modalItemActionButton.default, {
2098 onClick: function onClick() {
2099 return onResultEdit(id, text);
2100 },
2101 "aria-label": (0, _i18n.__)('Edit result', 'elementor'),
2102 tooltipTitle: (0, _i18n.__)('Edit', 'elementor')
2103 }, /*#__PURE__*/_react.default.createElement(_editIcon.default, null)))),
2104 secondary: /*#__PURE__*/_react.default.createElement(_modalItemSecondaryContent.default, {
2105 date: date,
2106 thumbnails: thumbnails
2107 })
2108 })));
2109 };
2110 PromptHistoryItem.propTypes = {
2111 id: _propTypes.default.string.isRequired,
2112 action: _propTypes.default.string.isRequired,
2113 prompt: _propTypes.default.string.isRequired,
2114 date: _propTypes.default.string.isRequired,
2115 onHistoryItemDelete: _propTypes.default.func.isRequired,
2116 text: _propTypes.default.string,
2117 images: _propTypes.default.array,
2118 thumbnails: _propTypes.default.array,
2119 imageType: _propTypes.default.string,
2120 ratio: _propTypes.default.string
2121 };
2122 var _default = PromptHistoryItem;
2123 exports["default"] = _default;
2124
2125 /***/ }),
2126
2127 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-period.js":
2128 /*!**************************************************************************************!*\
2129 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-period.js ***!
2130 \**************************************************************************************/
2131 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2132
2133 "use strict";
2134
2135
2136 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2137 Object.defineProperty(exports, "__esModule", ({
2138 value: true
2139 }));
2140 exports["default"] = void 0;
2141 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2142 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2143 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2144 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2145 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2146 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2147 var _modalItem = _interopRequireDefault(__webpack_require__(/*! ./modal-item */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item.js"));
2148 var _dateHelpers = __webpack_require__(/*! ../../../helpers/date-helpers */ "../modules/ai/assets/js/editor/helpers/date-helpers.js");
2149 var _excluded = ["id", "date"];
2150 var StyledPeriodList = (0, _ui.styled)(_ui.List)(function (_ref) {
2151 var theme = _ref.theme;
2152 return {
2153 borderBottom: "1px solid ".concat(theme.palette.action.focus)
2154 };
2155 });
2156 var StyledPeriodTitle = (0, _ui.styled)(_ui.Typography)(function (_ref2) {
2157 var theme = _ref2.theme;
2158 return {
2159 padding: theme.spacing(1.5, 2),
2160 color: theme.palette.secondary.light
2161 };
2162 });
2163 var DATE_FORMAT = (0, _i18n.__)('F j, g:i A', 'elementor');
2164 var PromptHistoryPeriod = function PromptHistoryPeriod(_ref3) {
2165 var periodTitle = _ref3.periodTitle,
2166 historyItems = _ref3.historyItems,
2167 _onHistoryItemDelete = _ref3.onHistoryItemDelete;
2168 return /*#__PURE__*/_react.default.createElement(StyledPeriodList, {
2169 "data-testid": "e-ph-p",
2170 subheader: /*#__PURE__*/_react.default.createElement(_ui.ListSubheader, {
2171 disableSticky: true,
2172 disableGutters: true
2173 }, /*#__PURE__*/_react.default.createElement(StyledPeriodTitle, {
2174 variant: "body2",
2175 role: "heading",
2176 "aria-level": "6"
2177 }, periodTitle))
2178 }, historyItems.map(function (_ref4) {
2179 var id = _ref4.id,
2180 date = _ref4.date,
2181 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded);
2182 return /*#__PURE__*/_react.default.createElement(_modalItem.default, (0, _extends2.default)({
2183 key: id,
2184 date: (0, _dateHelpers.translateDate)(DATE_FORMAT, date),
2185 onHistoryItemDelete: function onHistoryItemDelete() {
2186 return _onHistoryItemDelete(id);
2187 },
2188 id: id
2189 }, props));
2190 }));
2191 };
2192 PromptHistoryPeriod.propTypes = {
2193 periodTitle: _propTypes.default.string.isRequired,
2194 historyItems: _propTypes.default.array.isRequired,
2195 onHistoryItemDelete: _propTypes.default.func.isRequired
2196 };
2197 var _default = PromptHistoryPeriod;
2198 exports["default"] = _default;
2199
2200 /***/ }),
2201
2202 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-upgrade.js":
2203 /*!***************************************************************************************!*\
2204 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-upgrade.js ***!
2205 \***************************************************************************************/
2206 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2207
2208 "use strict";
2209 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
2210
2211
2212 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2213 Object.defineProperty(exports, "__esModule", ({
2214 value: true
2215 }));
2216 exports["default"] = void 0;
2217 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2218 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2219 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2220 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2221 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2222 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2223 var _historyTypes = __webpack_require__(/*! ../history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
2224 var _messages;
2225 var VARIANT_FULL = 'full';
2226 var VARIANT_SMALL = 'small';
2227 var messages = (_messages = {}, (0, _defineProperty2.default)(_messages, VARIANT_FULL, (0, _i18n.__)('Want to see your %s generation history for as far as the past 90 days?', 'elementor')), (0, _defineProperty2.default)(_messages, VARIANT_SMALL, (0, _i18n.__)('Want to see your %s generation history for the past 90 days?', 'elementor')), _messages);
2228 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
2229 var getMessage = function getMessage(variant, historyType) {
2230 var placeholder = messages[variant] || messages[VARIANT_FULL];
2231 var translatedHistoryType = (0, _historyTypes.getTranslatedPromptHistoryType)(historyType);
2232 return sprintf(placeholder, translatedHistoryType);
2233 };
2234 var PromptHistoryUpgrade = function PromptHistoryUpgrade(_ref) {
2235 var variant = _ref.variant,
2236 historyType = _ref.historyType;
2237 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2238 justifyContent: "center",
2239 sx: {
2240 height: VARIANT_SMALL === variant ? 'auto' : '100%',
2241 textAlign: 'center',
2242 p: 2
2243 },
2244 "data-testid": "e-ph-upgrade-".concat(variant)
2245 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2246 variant: "body1",
2247 sx: {
2248 marginBottom: 2
2249 }
2250 }, getMessage(variant, historyType)), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2251 variant: "contained",
2252 color: "accent",
2253 size: "small",
2254 href: actionUrl,
2255 target: "_blank",
2256 rel: "noopener noreferrer",
2257 startIcon: /*#__PURE__*/_react.default.createElement(_icons.UpgradeIcon, null),
2258 sx: {
2259 width: '50%',
2260 alignSelf: 'center',
2261 '&:hover': {
2262 color: 'accent.contrastText'
2263 }
2264 }
2265 }, (0, _i18n.__)('Upgrade now', 'elementor')));
2266 };
2267 PromptHistoryUpgrade.propTypes = {
2268 variant: _propTypes.default.oneOf([VARIANT_FULL, VARIANT_SMALL]).isRequired,
2269 historyType: _propTypes.default.oneOf(Object.values(_historyTypes.HISTORY_TYPES)).isRequired
2270 };
2271 var _default = PromptHistoryUpgrade;
2272 exports["default"] = _default;
2273
2274 /***/ }),
2275
2276 /***/ "../modules/ai/assets/js/editor/components/prompt-library-link.js":
2277 /*!************************************************************************!*\
2278 !*** ../modules/ai/assets/js/editor/components/prompt-library-link.js ***!
2279 \************************************************************************/
2280 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2281
2282 "use strict";
2283
2284
2285 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2286 Object.defineProperty(exports, "__esModule", ({
2287 value: true
2288 }));
2289 exports["default"] = void 0;
2290 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2291 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2292 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2293 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2294 var PromptLibraryLink = function PromptLibraryLink(props) {
2295 return /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2296 variant: "body2",
2297 color: "text.secondary"
2298 }, (0, _i18n.__)('For more inspiration, try experimenting with proven prompts from our'), ' ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
2299 href: props.libraryLink,
2300 className: "elementor-clickable",
2301 target: "_blank"
2302 }, (0, _i18n.__)('prompt library')));
2303 };
2304 PromptLibraryLink.propTypes = {
2305 libraryLink: _propTypes.default.string
2306 };
2307 var _default = PromptLibraryLink;
2308 exports["default"] = _default;
2309
2310 /***/ }),
2311
2312 /***/ "../modules/ai/assets/js/editor/components/prompt-search.js":
2313 /*!******************************************************************!*\
2314 !*** ../modules/ai/assets/js/editor/components/prompt-search.js ***!
2315 \******************************************************************/
2316 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2317
2318 "use strict";
2319
2320
2321 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2322 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2323 Object.defineProperty(exports, "__esModule", ({
2324 value: true
2325 }));
2326 exports["default"] = void 0;
2327 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2328 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2329 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2330 var _searchField = _interopRequireDefault(__webpack_require__(/*! ./ui/search-field */ "../modules/ai/assets/js/editor/components/ui/search-field.js"));
2331 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
2332 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
2333 var PromptSearch = (0, _react.forwardRef)(function (props, ref) {
2334 return /*#__PURE__*/_react.default.createElement(_searchField.default, (0, _extends2.default)({
2335 name: "prompt",
2336 placeholder: (0, _i18n.__)('Describe the text and tone you want to use', 'elementor') + '...'
2337 }, props, {
2338 ref: ref
2339 }));
2340 });
2341 var _default = PromptSearch;
2342 exports["default"] = _default;
2343
2344 /***/ }),
2345
2346 /***/ "../modules/ai/assets/js/editor/components/prompt-suggestions.js":
2347 /*!***********************************************************************!*\
2348 !*** ../modules/ai/assets/js/editor/components/prompt-suggestions.js ***!
2349 \***********************************************************************/
2350 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2351
2352 "use strict";
2353
2354
2355 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2356 Object.defineProperty(exports, "__esModule", ({
2357 value: true
2358 }));
2359 exports["default"] = void 0;
2360 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2361 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2362 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2363 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2364 var PromptSuggestions = function PromptSuggestions(props) {
2365 var _props$suggestions;
2366 return /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2367 variant: "subtitle1",
2368 color: "text.secondary"
2369 }, (0, _i18n.__)('Suggested prompts', 'elementor') + ':'), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2370 direction: "column",
2371 alignItems: "flex-start",
2372 gap: 1,
2373 sx: {
2374 my: 1
2375 }
2376 }, (_props$suggestions = props.suggestions) === null || _props$suggestions === void 0 ? void 0 : _props$suggestions.map(function (option, index) {
2377 var _props$suggestionFilt;
2378 return /*#__PURE__*/_react.default.createElement(_ui.Chip, {
2379 key: index,
2380 variant: "outlined",
2381 size: "large",
2382 color: "secondary",
2383 label: ((_props$suggestionFilt = props.suggestionFilter) === null || _props$suggestionFilt === void 0 ? void 0 : _props$suggestionFilt.call(props, option)) || option,
2384 onClick: function onClick() {
2385 return props.onSelect(option);
2386 }
2387 });
2388 })), props.children);
2389 };
2390 PromptSuggestions.propTypes = {
2391 suggestions: _propTypes.default.arrayOf(_propTypes.default.string),
2392 onSelect: _propTypes.default.func.isRequired,
2393 suggestionFilter: _propTypes.default.func,
2394 children: _propTypes.default.node
2395 };
2396 var _default = PromptSuggestions;
2397 exports["default"] = _default;
2398
2399 /***/ }),
2400
2401 /***/ "../modules/ai/assets/js/editor/components/textarea.js":
2402 /*!*************************************************************!*\
2403 !*** ../modules/ai/assets/js/editor/components/textarea.js ***!
2404 \*************************************************************/
2405 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2406
2407 "use strict";
2408
2409
2410 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2411 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2412 Object.defineProperty(exports, "__esModule", ({
2413 value: true
2414 }));
2415 exports["default"] = void 0;
2416 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2417 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2418 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2419 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2420 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
2421 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
2422 var Textarea = (0, _react.forwardRef)(function (props, ref) {
2423 return /*#__PURE__*/_react.default.createElement(_ui.TextField, (0, _extends2.default)({
2424 inputRef: ref,
2425 multiline: true,
2426 minRows: 4,
2427 maxRows: 20,
2428 color: "secondary"
2429 }, props));
2430 });
2431 Textarea.propTypes = {
2432 value: _propTypes.default.string,
2433 onChange: _propTypes.default.func,
2434 helperText: _propTypes.default.string
2435 };
2436 var _default = Textarea;
2437 exports["default"] = _default;
2438
2439 /***/ }),
2440
2441 /***/ "../modules/ai/assets/js/editor/components/tooltip.js":
2442 /*!************************************************************!*\
2443 !*** ../modules/ai/assets/js/editor/components/tooltip.js ***!
2444 \************************************************************/
2445 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2446
2447 "use strict";
2448
2449
2450 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2451 Object.defineProperty(exports, "__esModule", ({
2452 value: true
2453 }));
2454 exports["default"] = void 0;
2455 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2456 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2457 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2458 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2459 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2460 var _excluded = ["children"];
2461 var Tooltip = function Tooltip(_ref) {
2462 var children = _ref.children,
2463 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2464 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, (0, _extends2.default)({
2465 componentsProps: {
2466 tooltip: {
2467 sx: {
2468 '&.MuiTooltip-tooltip[class*="MuiTooltip-tooltipPlacement"]': {
2469 m: 0,
2470 fontSize: '10px',
2471 fontWeight: 500,
2472 lineHeight: '1.4em'
2473 },
2474 py: 0.5,
2475 px: 1
2476 }
2477 }
2478 }
2479 }, props), children);
2480 };
2481 Tooltip.propTypes = {
2482 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
2483 };
2484 var _default = Tooltip;
2485 exports["default"] = _default;
2486
2487 /***/ }),
2488
2489 /***/ "../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js":
2490 /*!************************************************************************!*\
2491 !*** ../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js ***!
2492 \************************************************************************/
2493 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2494
2495 "use strict";
2496
2497
2498 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2499 Object.defineProperty(exports, "__esModule", ({
2500 value: true
2501 }));
2502 exports["default"] = void 0;
2503 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2504 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2505 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2506 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2507 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2508 var _excluded = ["children"];
2509 var OverlayBarText = function OverlayBarText(_ref) {
2510 var children = _ref.children,
2511 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2512 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({
2513 variant: "caption",
2514 color: "common.white"
2515 }, props), children);
2516 };
2517 OverlayBarText.propTypes = {
2518 children: _propTypes.default.node
2519 };
2520 var _default = OverlayBarText;
2521 exports["default"] = _default;
2522
2523 /***/ }),
2524
2525 /***/ "../modules/ai/assets/js/editor/components/ui/overlay-bar.js":
2526 /*!*******************************************************************!*\
2527 !*** ../modules/ai/assets/js/editor/components/ui/overlay-bar.js ***!
2528 \*******************************************************************/
2529 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2530
2531 "use strict";
2532
2533
2534 Object.defineProperty(exports, "__esModule", ({
2535 value: true
2536 }));
2537 exports["default"] = void 0;
2538 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2539 var OverlayBar = (0, _ui.styled)(_ui.Stack)(function (_ref) {
2540 var theme = _ref.theme,
2541 position = _ref.position;
2542 var style = {
2543 width: '100%',
2544 position: 'absolute',
2545 left: 0,
2546 padding: theme.spacing(2.5)
2547 };
2548 if ('top' === position) {
2549 style.top = 0;
2550 } else if ('bottom' === position) {
2551 style.bottom = 0;
2552 }
2553 return style;
2554 });
2555 var _default = OverlayBar;
2556 exports["default"] = _default;
2557
2558 /***/ }),
2559
2560 /***/ "../modules/ai/assets/js/editor/components/ui/overlay.js":
2561 /*!***************************************************************!*\
2562 !*** ../modules/ai/assets/js/editor/components/ui/overlay.js ***!
2563 \***************************************************************/
2564 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2565
2566 "use strict";
2567
2568
2569 Object.defineProperty(exports, "__esModule", ({
2570 value: true
2571 }));
2572 exports["default"] = void 0;
2573 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2574 var Overlay = (0, _ui.styled)(_ui.Box)(function (_ref) {
2575 var theme = _ref.theme;
2576 return {
2577 width: '100%',
2578 height: '100%',
2579 position: 'absolute',
2580 backgroundColor: 'rgba(0,0,0,0.5)',
2581 transition: "opacity ".concat(theme.transitions.duration.short, "ms ").concat(theme.transitions.easing.easeInOut),
2582 opacity: 0,
2583 '&:hover': {
2584 opacity: 1
2585 }
2586 };
2587 });
2588 var _default = Overlay;
2589 exports["default"] = _default;
2590
2591 /***/ }),
2592
2593 /***/ "../modules/ai/assets/js/editor/components/ui/panel.js":
2594 /*!*************************************************************!*\
2595 !*** ../modules/ai/assets/js/editor/components/ui/panel.js ***!
2596 \*************************************************************/
2597 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2598
2599 "use strict";
2600
2601
2602 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2603 Object.defineProperty(exports, "__esModule", ({
2604 value: true
2605 }));
2606 exports["default"] = void 0;
2607 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2608 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2609 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2610 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2611 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2612 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2613 var _excluded = ["sx"];
2614 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2615 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2616 var Panel = function Panel(_ref) {
2617 var _ref$sx = _ref.sx,
2618 sx = _ref$sx === void 0 ? {} : _ref$sx,
2619 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2620 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
2621 sx: _objectSpread({
2622 p: 4,
2623 width: 360,
2624 flexShrink: 0,
2625 height: '100%',
2626 overflowY: 'auto'
2627 }, sx)
2628 }, props), props.children), /*#__PURE__*/_react.default.createElement(_ui.Divider, {
2629 orientation: "vertical"
2630 }));
2631 };
2632 Panel.propTypes = {
2633 children: _propTypes.default.node,
2634 sx: _propTypes.default.object
2635 };
2636 var _default = Panel;
2637 exports["default"] = _default;
2638
2639 /***/ }),
2640
2641 /***/ "../modules/ai/assets/js/editor/components/ui/search-field.js":
2642 /*!********************************************************************!*\
2643 !*** ../modules/ai/assets/js/editor/components/ui/search-field.js ***!
2644 \********************************************************************/
2645 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2646
2647 "use strict";
2648
2649
2650 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2651 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2652 Object.defineProperty(exports, "__esModule", ({
2653 value: true
2654 }));
2655 exports["default"] = void 0;
2656 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2657 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2658 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2659 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2660 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2661 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
2662 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
2663 // Customization for the WP admin global CSS.
2664 var StyledTextField = (0, _ui.styled)(_ui.TextField)(function () {
2665 return {
2666 '.wp-admin & .MuiInputBase-input, & .MuiInputBase-input:focus': {
2667 backgroundColor: 'initial',
2668 boxShadow: 'none',
2669 border: 0,
2670 color: 'inherit',
2671 outline: 0,
2672 /**
2673 * TODO:
2674 * Find a better solution to get the component padding value dynamically or fix the global CSS override.
2675 * These values are taken from Material UI's source code (the left padding reset was added to match the component style).
2676 */
2677 padding: '16.5px 14px 16.5px 0',
2678 '&.MuiInputBase-inputSizeSmall': {
2679 padding: '8.5px 14px 8.5px 0'
2680 }
2681 }
2682 };
2683 });
2684 var SearchField = (0, _react.forwardRef)(function (props, ref) {
2685 return /*#__PURE__*/_react.default.createElement(StyledTextField
2686 // eslint-disable-next-line jsx-a11y/no-autofocus
2687 , (0, _extends2.default)({
2688 autoFocus: true,
2689 fullWidth: true,
2690 required: true,
2691 size: "small",
2692 color: "secondary",
2693 InputProps: {
2694 autoComplete: 'off',
2695 startAdornment: /*#__PURE__*/_react.default.createElement(_ui.InputAdornment, {
2696 position: "start"
2697 }, /*#__PURE__*/_react.default.createElement(_icons.SearchIcon, null))
2698 },
2699 placeholder: props.placeholder,
2700 name: props.name,
2701 value: props.value,
2702 onChange: props.onChange
2703 }, props, {
2704 inputRef: ref
2705 }));
2706 });
2707 SearchField.propTypes = {
2708 placeholder: _propTypes.default.string,
2709 name: _propTypes.default.string,
2710 value: _propTypes.default.string,
2711 onChange: _propTypes.default.func
2712 };
2713 var _default = SearchField;
2714 exports["default"] = _default;
2715
2716 /***/ }),
2717
2718 /***/ "../modules/ai/assets/js/editor/components/upgrade-banner.js":
2719 /*!*******************************************************************!*\
2720 !*** ../modules/ai/assets/js/editor/components/upgrade-banner.js ***!
2721 \*******************************************************************/
2722 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2723
2724 "use strict";
2725 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2726 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2727
2728
2729 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2730 Object.defineProperty(exports, "__esModule", ({
2731 value: true
2732 }));
2733 exports["default"] = void 0;
2734 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2735 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2736 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2737 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2738 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2739 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2740 var _excluded = ["onClose", "sx"];
2741 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2742 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2743 var BannerActions = function BannerActions(_ref) {
2744 var onClose = _ref.onClose;
2745 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2746 direction: "row",
2747 alignItems: "center",
2748 gap: 1
2749 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
2750 size: "small",
2751 color: "inherit",
2752 variant: "outlined",
2753 onClick: function onClick() {
2754 return window.open('https://go.elementor.com/ai-banner-free-upgrade/', '_blank');
2755 }
2756 }, __('Upgrade', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2757 color: "inherit",
2758 size: "small",
2759 onClick: onClose
2760 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)));
2761 };
2762 BannerActions.propTypes = {
2763 onClose: PropTypes.func
2764 };
2765 var UpgradeBanner = function UpgradeBanner(_ref2) {
2766 var onClose = _ref2.onClose,
2767 _ref2$sx = _ref2.sx,
2768 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
2769 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
2770 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
2771 icon: false,
2772 action: /*#__PURE__*/_react.default.createElement(BannerActions, {
2773 onClose: onClose
2774 })
2775 }, props, {
2776 sx: _objectSpread({
2777 backgroundColor: 'accent.main',
2778 color: 'accent.contrastText'
2779 }, sx)
2780 }), __('You’re using a limited license. Get maximum access to Elementor AI.', 'elementor'));
2781 };
2782 UpgradeBanner.propTypes = {
2783 onClose: PropTypes.func,
2784 sx: PropTypes.object
2785 };
2786 var _default = UpgradeBanner;
2787 exports["default"] = _default;
2788
2789 /***/ }),
2790
2791 /***/ "../modules/ai/assets/js/editor/components/upgrade-chip.js":
2792 /*!*****************************************************************!*\
2793 !*** ../modules/ai/assets/js/editor/components/upgrade-chip.js ***!
2794 \*****************************************************************/
2795 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2796
2797 "use strict";
2798
2799
2800 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2801 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2802 Object.defineProperty(exports, "__esModule", ({
2803 value: true
2804 }));
2805 exports["default"] = void 0;
2806 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2807 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2808 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2809 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2810 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2811 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2812 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
2813 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
2814 var popoverId = 'e-ai-upgrade-popover';
2815 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
2816 var theme = _ref.theme;
2817 return {
2818 position: 'relative',
2819 '[data-popper-placement="top"] &': {
2820 marginBottom: theme.spacing(2.5)
2821 },
2822 '[data-popper-placement="bottom"] &': {
2823 marginTop: theme.spacing(2.5)
2824 },
2825 padding: theme.spacing(3),
2826 boxShadow: theme.shadows[4],
2827 zIndex: '9999'
2828 };
2829 });
2830 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
2831 var theme = _ref2.theme;
2832 return {
2833 width: theme.spacing(5),
2834 height: theme.spacing(2.5),
2835 position: 'absolute',
2836 overflow: 'hidden',
2837 // Override Popper inline styles.
2838 left: '50% !important',
2839 transform: 'translateX(-50%) rotate(var(--rotate, 0deg)) !important',
2840 '[data-popper-placement="top"] &': {
2841 top: '100%'
2842 },
2843 '[data-popper-placement="bottom"] &': {
2844 '--rotate': '180deg',
2845 top: "calc(".concat(theme.spacing(2.5), " * -1)")
2846 },
2847 '&::after': {
2848 backgroundColor: theme.palette.background.paper,
2849 content: '""',
2850 display: 'block',
2851 position: 'absolute',
2852 width: theme.spacing(2.5),
2853 height: theme.spacing(2.5),
2854 top: 0,
2855 left: '50%',
2856 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
2857 boxShadow: '1px 1px 5px 0px rgba(0, 0, 0, 0.2)',
2858 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
2859 }
2860 };
2861 });
2862 var upgradeBullets = [(0, _i18n.__)('Let AI build your container layouts and content with ease and radically transform the way you create websites.', 'elementor'), (0, _i18n.__)('Generate your website\'s text or create custom code without having to write a single line yourself.', 'elementor'), (0, _i18n.__)('Effortlessly create or enhance stunning images and bring your ideas to life.', 'elementor'), (0, _i18n.__)('Access 30-days of AI History with the AI Starter plan and 90-days with the Power plan.', 'elementor')];
2863 var Chip = (0, _ui.styled)(_ui.Chip)(function () {
2864 return {
2865 '& .MuiChip-label': {
2866 lineHeight: 1.5
2867 },
2868 '& .MuiSvgIcon-root.MuiChip-icon': {
2869 fontSize: '1.25rem'
2870 }
2871 };
2872 });
2873 var UpgradeChip = function UpgradeChip(_ref3) {
2874 var _ref3$hasSubscription = _ref3.hasSubscription,
2875 hasSubscription = _ref3$hasSubscription === void 0 ? false : _ref3$hasSubscription,
2876 _ref3$usagePercentage = _ref3.usagePercentage,
2877 usagePercentage = _ref3$usagePercentage === void 0 ? 0 : _ref3$usagePercentage;
2878 var _useState = (0, _react.useState)(false),
2879 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2880 isPopoverOpen = _useState2[0],
2881 setIsPopoverOpen = _useState2[1];
2882 var anchorEl = (0, _react.useRef)(null);
2883 var arrowEl = (0, _react.useRef)(null);
2884 var showPopover = function showPopover() {
2885 return setIsPopoverOpen(true);
2886 };
2887 var hidePopover = function hidePopover() {
2888 return setIsPopoverOpen(false);
2889 };
2890 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
2891 if (hasSubscription) {
2892 actionUrl = usagePercentage >= 100 ? 'https://go.elementor.com/ai-popup-upgrade-limit-reached/' : 'https://go.elementor.com/ai-popup-upgrade-limit-reached-80-percent/';
2893 }
2894 var actionLabel = hasSubscription ? (0, _i18n.__)('Upgrade Elementor AI', 'elementor') : (0, _i18n.__)('Get Elementor AI', 'elementor');
2895 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2896 component: "span",
2897 "aria-owns": isPopoverOpen ? popoverId : undefined,
2898 "aria-haspopup": "true",
2899 onMouseEnter: showPopover,
2900 onMouseLeave: hidePopover,
2901 ref: anchorEl,
2902 display: "flex",
2903 alignItems: "center"
2904 }, /*#__PURE__*/_react.default.createElement(Chip, {
2905 color: "accent",
2906 label: (0, _i18n.__)('Upgrade', 'elementor'),
2907 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
2908 size: "small"
2909 }), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
2910 open: isPopoverOpen,
2911 anchorEl: anchorEl.current,
2912 sx: {
2913 zIndex: '9999',
2914 maxWidth: 300
2915 },
2916 modifiers: [{
2917 name: 'arrow',
2918 enabled: true,
2919 options: {
2920 element: arrowEl.current
2921 }
2922 }]
2923 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
2924 ref: arrowEl
2925 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2926 variant: "h5",
2927 color: "text.primary"
2928 }, (0, _i18n.__)('Maximize Your Access to Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.List, {
2929 sx: {
2930 mb: 1
2931 }
2932 }, upgradeBullets.map(function (bullet, index) {
2933 return /*#__PURE__*/_react.default.createElement(_ui.ListItem, {
2934 key: index,
2935 disableGutters: true,
2936 sx: {
2937 alignItems: 'flex-start'
2938 }
2939 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.CheckedCircleIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
2940 sx: {
2941 m: 0
2942 }
2943 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2944 variant: "body2"
2945 }, bullet)));
2946 })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2947 variant: "contained",
2948 color: "accent",
2949 size: "small",
2950 href: actionUrl,
2951 target: "_blank",
2952 startIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
2953 sx: {
2954 '&:hover': {
2955 color: 'accent.contrastText'
2956 }
2957 }
2958 }, actionLabel))));
2959 };
2960 var _default = UpgradeChip;
2961 exports["default"] = _default;
2962 UpgradeChip.propTypes = {
2963 hasSubscription: _propTypes.default.bool,
2964 usagePercentage: _propTypes.default.number
2965 };
2966
2967 /***/ }),
2968
2969 /***/ "../modules/ai/assets/js/editor/components/usage-limit-alert.js":
2970 /*!**********************************************************************!*\
2971 !*** ../modules/ai/assets/js/editor/components/usage-limit-alert.js ***!
2972 \**********************************************************************/
2973 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2974
2975 "use strict";
2976 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2977 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2978
2979
2980 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2981 Object.defineProperty(exports, "__esModule", ({
2982 value: true
2983 }));
2984 exports["default"] = void 0;
2985 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2986 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2987 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2988 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2989 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2990 var _excluded = ["onClose", "usagePercentage", "hasSubscription"];
2991 var _title, _url, _title2, _url2;
2992 var KEY_SUBSCRIPTION = 'subscription';
2993 var KEY_NO_SUBSCRIPTION = 'noSubscription';
2994 var alertConfigs = [{
2995 threshold: 95,
2996 title: (_title = {}, (0, _defineProperty2.default)(_title, KEY_SUBSCRIPTION, __('You’ve used over 95% of your Elementor AI plan.', 'elementor')), (0, _defineProperty2.default)(_title, KEY_NO_SUBSCRIPTION, __('You’ve used over 95% of the free trial.', 'elementor')), _title),
2997 url: (_url = {}, (0, _defineProperty2.default)(_url, KEY_SUBSCRIPTION, 'https://go.elementor.com/ai-banner-paid-95-limit-reach/'), (0, _defineProperty2.default)(_url, KEY_NO_SUBSCRIPTION, 'https://go.elementor.com/ai-banner-free-95-limit-reach/'), _url),
2998 color: 'error'
2999 }, {
3000 threshold: 80,
3001 title: (_title2 = {}, (0, _defineProperty2.default)(_title2, KEY_SUBSCRIPTION, __('You’ve used over 80% of your Elementor AI plan.', 'elementor')), (0, _defineProperty2.default)(_title2, KEY_NO_SUBSCRIPTION, __('You’ve used over 80% of the free trial.', 'elementor')), _title2),
3002 url: (_url2 = {}, (0, _defineProperty2.default)(_url2, KEY_SUBSCRIPTION, 'https://go.elementor.com/ai-banner-paid-80-limit-reach/'), (0, _defineProperty2.default)(_url2, KEY_NO_SUBSCRIPTION, 'https://go.elementor.com/ai-banner-free-80-limit-reach/'), _url2),
3003 color: 'warning'
3004 }];
3005 var UpgradeButton = function UpgradeButton(props) {
3006 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
3007 color: "inherit"
3008 }, props), __('Upgrade', 'elementor'));
3009 };
3010 var UsageLimitAlert = function UsageLimitAlert(_ref) {
3011 var onClose = _ref.onClose,
3012 usagePercentage = _ref.usagePercentage,
3013 hasSubscription = _ref.hasSubscription,
3014 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3015 var config = alertConfigs.find(function (_ref2) {
3016 var threshold = _ref2.threshold;
3017 return usagePercentage >= threshold;
3018 });
3019 if (!config) {
3020 return null;
3021 }
3022 var subscriptionType = hasSubscription ? KEY_SUBSCRIPTION : KEY_NO_SUBSCRIPTION;
3023 var title = config.title,
3024 url = config.url,
3025 color = config.color;
3026 var handleUpgradeClick = function handleUpgradeClick() {
3027 return window.open(url[subscriptionType], '_blank');
3028 };
3029 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
3030 severity: "warning",
3031 action: /*#__PURE__*/_react.default.createElement(UpgradeButton, {
3032 onClick: handleUpgradeClick
3033 }),
3034 color: color
3035 }, props), /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, title[subscriptionType]), __('Get maximum access.', 'elementor'));
3036 };
3037 UsageLimitAlert.propTypes = {
3038 onClose: PropTypes.func,
3039 usagePercentage: PropTypes.number,
3040 hasSubscription: PropTypes.bool
3041 };
3042 var _default = UsageLimitAlert;
3043 exports["default"] = _default;
3044
3045 /***/ }),
3046
3047 /***/ "../modules/ai/assets/js/editor/components/usage-messages.js":
3048 /*!*******************************************************************!*\
3049 !*** ../modules/ai/assets/js/editor/components/usage-messages.js ***!
3050 \*******************************************************************/
3051 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3052
3053 "use strict";
3054 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
3055
3056
3057 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3058 Object.defineProperty(exports, "__esModule", ({
3059 value: true
3060 }));
3061 exports["default"] = void 0;
3062 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3063 var _upgradeBanner = _interopRequireDefault(__webpack_require__(/*! ./upgrade-banner */ "../modules/ai/assets/js/editor/components/upgrade-banner.js"));
3064 var _usageLimitAlert = _interopRequireDefault(__webpack_require__(/*! ./usage-limit-alert */ "../modules/ai/assets/js/editor/components/usage-limit-alert.js"));
3065 var _useUpgradeMessage2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
3066 var UsageMessages = function UsageMessages(_ref) {
3067 var hasSubscription = _ref.hasSubscription,
3068 usagePercentage = _ref.usagePercentage,
3069 sx = _ref.sx;
3070 var _useUpgradeMessage = (0, _useUpgradeMessage2.default)({
3071 usagePercentage: usagePercentage,
3072 hasSubscription: hasSubscription
3073 }),
3074 showBanner = _useUpgradeMessage.showBanner,
3075 markBannerAsViewed = _useUpgradeMessage.markBannerAsViewed;
3076 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showBanner && /*#__PURE__*/_react.default.createElement(_upgradeBanner.default, {
3077 onClose: markBannerAsViewed,
3078 sx: sx
3079 }), /*#__PURE__*/_react.default.createElement(_usageLimitAlert.default, {
3080 hasSubscription: hasSubscription,
3081 usagePercentage: usagePercentage,
3082 sx: sx
3083 }));
3084 };
3085 UsageMessages.propTypes = {
3086 hasSubscription: PropTypes.bool,
3087 usagePercentage: PropTypes.number,
3088 sx: PropTypes.object
3089 };
3090 var _default = UsageMessages;
3091 exports["default"] = _default;
3092
3093 /***/ }),
3094
3095 /***/ "../modules/ai/assets/js/editor/components/wizard-dialog.js":
3096 /*!******************************************************************!*\
3097 !*** ../modules/ai/assets/js/editor/components/wizard-dialog.js ***!
3098 \******************************************************************/
3099 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3100
3101 "use strict";
3102
3103
3104 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3105 Object.defineProperty(exports, "__esModule", ({
3106 value: true
3107 }));
3108 exports["default"] = void 0;
3109 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3110 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3111 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3112 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3113 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3114 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3115 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
3116 var _excluded = ["sx"];
3117 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3118 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3119 var WizardDialog = function WizardDialog(props) {
3120 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3121 open: true,
3122 onClose: props.onClose,
3123 fullWidth: true,
3124 hideBackdrop: true,
3125 maxWidth: "lg",
3126 PaperProps: {
3127 sx: {
3128 height: '88vh'
3129 }
3130 },
3131 sx: {
3132 zIndex: 9999
3133 }
3134 }, props.children);
3135 };
3136 WizardDialog.propTypes = {
3137 onClose: _propTypes.default.func.isRequired,
3138 children: _propTypes.default.node.isRequired
3139 };
3140 var WizardDialogContent = function WizardDialogContent(_ref) {
3141 var _ref$sx = _ref.sx,
3142 sx = _ref$sx === void 0 ? {} : _ref$sx,
3143 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3144 return /*#__PURE__*/_react.default.createElement(_ui.DialogContent, (0, _extends2.default)({}, props, {
3145 sx: _objectSpread({
3146 display: 'flex',
3147 flexDirection: 'column',
3148 justifyContent: 'center'
3149 }, sx)
3150 }));
3151 };
3152 WizardDialogContent.propTypes = {
3153 sx: _propTypes.default.object
3154 };
3155 WizardDialog.Header = _dialogHeader.default;
3156 WizardDialog.Content = WizardDialogContent;
3157 var _default = WizardDialog;
3158 exports["default"] = _default;
3159
3160 /***/ }),
3161
3162 /***/ "../modules/ai/assets/js/editor/helpers/date-helpers.js":
3163 /*!**************************************************************!*\
3164 !*** ../modules/ai/assets/js/editor/helpers/date-helpers.js ***!
3165 \**************************************************************/
3166 /***/ ((__unused_webpack_module, exports) => {
3167
3168 "use strict";
3169
3170
3171 Object.defineProperty(exports, "__esModule", ({
3172 value: true
3173 }));
3174 exports.translateDate = exports.daysDiff = exports.MONTH_JANUARY_INDEX = exports.MONTH_DECEMBER_INDEX = void 0;
3175 var MONTH_DECEMBER_INDEX = 12;
3176 exports.MONTH_DECEMBER_INDEX = MONTH_DECEMBER_INDEX;
3177 var MONTH_JANUARY_INDEX = 0;
3178 /**
3179 * Formats a date (like wp_date() in PHP), translating it into site's locale.
3180 *
3181 * @param {string} format PHP-style formatting string.
3182 * @param {Date | string | undefined} date Date object
3183 * @param {string | number | undefined=} timezone Timezone to output result in or a UTC offset. Defaults to timezone from site.
3184 * @return {string}
3185 */
3186 exports.MONTH_JANUARY_INDEX = MONTH_JANUARY_INDEX;
3187 var translateDate = function translateDate(format, date, timezone) {
3188 var _window$wp;
3189 var _window$wp$date = (_window$wp = window.wp) === null || _window$wp === void 0 ? void 0 : _window$wp.date,
3190 dateI18n = _window$wp$date.dateI18n;
3191 return dateI18n(format, date, timezone);
3192 };
3193
3194 /**
3195 * Returns difference in days between two dates
3196 *
3197 * @param {Date} firstDate
3198 * @param {Date} secondDate
3199 * @return {number} Positive or negative number in days
3200 */
3201 exports.translateDate = translateDate;
3202 var daysDiff = function daysDiff(firstDate, secondDate) {
3203 var MS_PER_DAY = 1000 * 60 * 60 * 24;
3204 var firstUTC = Date.UTC(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate());
3205 var secondUTC = Date.UTC(secondDate.getFullYear(), secondDate.getMonth(), secondDate.getDate());
3206 return Math.floor((secondUTC - firstUTC) / MS_PER_DAY);
3207 };
3208 exports.daysDiff = daysDiff;
3209
3210 /***/ }),
3211
3212 /***/ "../modules/ai/assets/js/editor/helpers/index.js":
3213 /*!*******************************************************!*\
3214 !*** ../modules/ai/assets/js/editor/helpers/index.js ***!
3215 \*******************************************************/
3216 /***/ ((__unused_webpack_module, exports) => {
3217
3218 "use strict";
3219
3220
3221 Object.defineProperty(exports, "__esModule", ({
3222 value: true
3223 }));
3224 exports.vh = void 0;
3225 var vh = function vh(value) {
3226 var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
3227 return value * h / 100;
3228 };
3229 exports.vh = vh;
3230
3231 /***/ }),
3232
3233 /***/ "../modules/ai/assets/js/editor/hooks/use-code-prompt.js":
3234 /*!***************************************************************!*\
3235 !*** ../modules/ai/assets/js/editor/hooks/use-code-prompt.js ***!
3236 \***************************************************************/
3237 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3238
3239 "use strict";
3240
3241
3242 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3243 Object.defineProperty(exports, "__esModule", ({
3244 value: true
3245 }));
3246 exports["default"] = void 0;
3247 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3248 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3249 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3250 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
3251 var getCodeResult = /*#__PURE__*/function () {
3252 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(prompt, _ref) {
3253 var codeLanguage, htmlMarkup, elementId;
3254 return _regenerator.default.wrap(function _callee$(_context) {
3255 while (1) switch (_context.prev = _context.next) {
3256 case 0:
3257 codeLanguage = _ref.codeLanguage, htmlMarkup = _ref.htmlMarkup, elementId = _ref.elementId;
3258 if (!('css' === codeLanguage)) {
3259 _context.next = 3;
3260 break;
3261 }
3262 return _context.abrupt("return", (0, _api.getCustomCSS)(prompt, htmlMarkup, elementId));
3263 case 3:
3264 return _context.abrupt("return", (0, _api.getCustomCode)(prompt, codeLanguage));
3265 case 4:
3266 case "end":
3267 return _context.stop();
3268 }
3269 }, _callee);
3270 }));
3271 return function getCodeResult(_x, _x2) {
3272 return _ref2.apply(this, arguments);
3273 };
3274 }();
3275 var useCodePrompt = function useCodePrompt(_ref3) {
3276 var codeLanguage = _ref3.codeLanguage,
3277 htmlMarkup = _ref3.htmlMarkup,
3278 elementId = _ref3.elementId,
3279 credits = _ref3.initialCredits;
3280 var promptData = (0, _usePrompt.default)(function (promptValue) {
3281 return getCodeResult(promptValue, {
3282 codeLanguage: codeLanguage,
3283 htmlMarkup: htmlMarkup,
3284 elementId: elementId
3285 });
3286 }, {
3287 credits: credits
3288 });
3289 return promptData;
3290 };
3291 var _default = useCodePrompt;
3292 exports["default"] = _default;
3293
3294 /***/ }),
3295
3296 /***/ "../modules/ai/assets/js/editor/hooks/use-delete-prompt-history-item.js":
3297 /*!******************************************************************************!*\
3298 !*** ../modules/ai/assets/js/editor/hooks/use-delete-prompt-history-item.js ***!
3299 \******************************************************************************/
3300 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3301
3302 "use strict";
3303
3304
3305 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3306 Object.defineProperty(exports, "__esModule", ({
3307 value: true
3308 }));
3309 exports["default"] = void 0;
3310 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3311 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3312 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3313 var _react = __webpack_require__(/*! react */ "react");
3314 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3315 var useDeletePromptHistoryItem = function useDeletePromptHistoryItem() {
3316 var _useState = (0, _react.useState)(false),
3317 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3318 isLoading = _useState2[0],
3319 setIsLoading = _useState2[1];
3320 var _useState3 = (0, _react.useState)(''),
3321 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3322 error = _useState4[0],
3323 setError = _useState4[1];
3324 var deleteItem = /*#__PURE__*/function () {
3325 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(id) {
3326 return _regenerator.default.wrap(function _callee$(_context) {
3327 while (1) switch (_context.prev = _context.next) {
3328 case 0:
3329 return _context.abrupt("return", new Promise(function (resolve, reject) {
3330 setError('');
3331 setIsLoading(true);
3332 (0, _api.deleteHistoryItem)(id).then(function () {
3333 resolve(true);
3334 }).catch(function (err) {
3335 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3336 setError(finalError);
3337 reject(finalError);
3338 }).finally(function () {
3339 return setIsLoading(false);
3340 });
3341 }));
3342 case 1:
3343 case "end":
3344 return _context.stop();
3345 }
3346 }, _callee);
3347 }));
3348 return function deleteItem(_x) {
3349 return _ref.apply(this, arguments);
3350 };
3351 }();
3352 return {
3353 isLoading: isLoading,
3354 error: error,
3355 deleteItem: deleteItem
3356 };
3357 };
3358 var _default = useDeletePromptHistoryItem;
3359 exports["default"] = _default;
3360
3361 /***/ }),
3362
3363 /***/ "../modules/ai/assets/js/editor/hooks/use-image-navigation.js":
3364 /*!********************************************************************!*\
3365 !*** ../modules/ai/assets/js/editor/hooks/use-image-navigation.js ***!
3366 \********************************************************************/
3367 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3368
3369 "use strict";
3370
3371
3372 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3373 Object.defineProperty(exports, "__esModule", ({
3374 value: true
3375 }));
3376 exports["default"] = void 0;
3377 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3378 var _react = __webpack_require__(/*! react */ "react");
3379 var initialIndex = -1;
3380 var useImageNavigation = function useImageNavigation(images) {
3381 var _useState = (0, _react.useState)(initialIndex),
3382 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3383 zoomIndex = _useState2[0],
3384 setZoomIndex = _useState2[1];
3385 var actions = {
3386 reset: function reset() {
3387 return setZoomIndex(initialIndex);
3388 },
3389 prev: function prev() {
3390 var prevImage = zoomIndex + 1;
3391 if (prevImage >= images.length) {
3392 prevImage = 0;
3393 }
3394 setZoomIndex(prevImage);
3395 },
3396 next: function next() {
3397 var nextImage = zoomIndex - 1;
3398 if (nextImage < 0) {
3399 nextImage = images.length - 1;
3400 }
3401 setZoomIndex(nextImage);
3402 }
3403 };
3404 return {
3405 zoomIndex: zoomIndex,
3406 setZoomIndex: setZoomIndex,
3407 actions: actions
3408 };
3409 };
3410 var _default = useImageNavigation;
3411 exports["default"] = _default;
3412
3413 /***/ }),
3414
3415 /***/ "../modules/ai/assets/js/editor/hooks/use-images-preload.js":
3416 /*!******************************************************************!*\
3417 !*** ../modules/ai/assets/js/editor/hooks/use-images-preload.js ***!
3418 \******************************************************************/
3419 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3420
3421 "use strict";
3422
3423
3424 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3425 Object.defineProperty(exports, "__esModule", ({
3426 value: true
3427 }));
3428 exports["default"] = void 0;
3429 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3430 var _react = __webpack_require__(/*! react */ "react");
3431 var loadImage = function loadImage(url) {
3432 return new Promise(function (resolve, reject) {
3433 var loadImg = new Image();
3434 loadImg.src = url;
3435 loadImg.onload = function () {
3436 return resolve(url);
3437 };
3438 loadImg.onerror = function (err) {
3439 return reject(err);
3440 };
3441 });
3442 };
3443 var useImagesPreload = function useImagesPreload() {
3444 var _useState = (0, _react.useState)(false),
3445 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3446 ready = _useState2[0],
3447 setReady = _useState2[1];
3448 var preloadImages = function preloadImages(images) {
3449 setReady(false);
3450 Promise.all(images.map(function (url) {
3451 return loadImage(url);
3452 })).then(function () {
3453 return setReady(true);
3454 })
3455 // eslint-disable-next-line no-console
3456 .catch(function (err) {
3457 return console.log('Failed to load images', err);
3458 }); // Todo error better handling
3459 };
3460
3461 return {
3462 ready: ready,
3463 preloadImages: preloadImages
3464 };
3465 };
3466 var _default = useImagesPreload;
3467 exports["default"] = _default;
3468
3469 /***/ }),
3470
3471 /***/ "../modules/ai/assets/js/editor/hooks/use-introduction.js":
3472 /*!****************************************************************!*\
3473 !*** ../modules/ai/assets/js/editor/hooks/use-introduction.js ***!
3474 \****************************************************************/
3475 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3476
3477 "use strict";
3478
3479
3480 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3481 Object.defineProperty(exports, "__esModule", ({
3482 value: true
3483 }));
3484 exports["default"] = useIntroduction;
3485 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3486 var _react = __webpack_require__(/*! react */ "react");
3487 function useIntroduction(key) {
3488 var _window$elementor$con, _window$elementorAdmi, _window$elementorAdmi2, _globalConfig$introdu;
3489 var globalConfig = window.elementor ? (_window$elementor$con = window.elementor.config) === null || _window$elementor$con === void 0 ? void 0 : _window$elementor$con.user : (_window$elementorAdmi = window.elementorAdmin) === null || _window$elementorAdmi === void 0 ? void 0 : (_window$elementorAdmi2 = _window$elementorAdmi.config) === null || _window$elementorAdmi2 === void 0 ? void 0 : _window$elementorAdmi2.user;
3490 var _useState = (0, _react.useState)(!!(globalConfig !== null && globalConfig !== void 0 && (_globalConfig$introdu = globalConfig.introduction) !== null && _globalConfig$introdu !== void 0 && _globalConfig$introdu[key])),
3491 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3492 isViewed = _useState2[0],
3493 setIsViewed = _useState2[1];
3494 function markAsViewed() {
3495 if (!key) {
3496 return Promise.reject();
3497 }
3498 return new Promise(function (resolve, reject) {
3499 if (isViewed) {
3500 reject();
3501 }
3502 setIsViewed(true);
3503 elementorCommon.ajax.addRequest('introduction_viewed', {
3504 data: {
3505 introductionKey: key
3506 },
3507 error: function error() {
3508 setIsViewed(false);
3509 reject();
3510 },
3511 success: function success() {
3512 setIsViewed(true);
3513 if (globalConfig !== null && globalConfig !== void 0 && globalConfig.introduction) {
3514 globalConfig.introduction[key] = true;
3515 }
3516 resolve();
3517 }
3518 });
3519 });
3520 }
3521 return {
3522 isViewed: isViewed,
3523 markAsViewed: markAsViewed
3524 };
3525 }
3526
3527 /***/ }),
3528
3529 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js":
3530 /*!*******************************************************************!*\
3531 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js ***!
3532 \*******************************************************************/
3533 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3534
3535 "use strict";
3536
3537
3538 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3539 Object.defineProperty(exports, "__esModule", ({
3540 value: true
3541 }));
3542 exports["default"] = void 0;
3543 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3544 var _usePrompt2 = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
3545 var _config = __webpack_require__(/*! ../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3546 var enhancePromptMap = new Map([['media', _api.getImagePromptEnhanced], ['layout', _api.getLayoutPromptEnhanced]]);
3547 var getResult = function getResult(prompt, type, enhanceType) {
3548 if (!enhancePromptMap.has(type)) {
3549 throw new Error("Invalid prompt type: ".concat(type));
3550 }
3551 return enhancePromptMap.get(type)(prompt, enhanceType);
3552 };
3553
3554 /**
3555 * Hook to enhance a prompt.
3556 *
3557 * @param {string} prompt
3558 * @param {'media' | 'layout'} type
3559 * @return {{enhancedPrompt: string | undefined, isEnhancing: boolean, enhance: (function(...[*]): Promise)}}
3560 */
3561 var usePromptEnhancer = function usePromptEnhancer(prompt, type) {
3562 var _useConfig = (0, _config.useConfig)(),
3563 mode = _useConfig.mode;
3564 var _usePrompt = (0, _usePrompt2.default)(function () {
3565 return getResult(prompt, type, mode);
3566 }, prompt),
3567 enhancedData = _usePrompt.data,
3568 isEnhancing = _usePrompt.isLoading,
3569 enhance = _usePrompt.send;
3570 return {
3571 enhance: enhance,
3572 isEnhancing: isEnhancing,
3573 enhancedPrompt: enhancedData === null || enhancedData === void 0 ? void 0 : enhancedData.result
3574 };
3575 };
3576 var _default = usePromptEnhancer;
3577 exports["default"] = _default;
3578
3579 /***/ }),
3580
3581 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-history.js":
3582 /*!******************************************************************!*\
3583 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-history.js ***!
3584 \******************************************************************/
3585 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3586
3587 "use strict";
3588
3589
3590 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3591 Object.defineProperty(exports, "__esModule", ({
3592 value: true
3593 }));
3594 exports["default"] = void 0;
3595 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3596 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
3597 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3598 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3599 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3600 var _react = __webpack_require__(/*! react */ "react");
3601 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3602 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3603 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3604 var getImageThumbnailURL = function getImageThumbnailURL(base, imageURL) {
3605 if (!base) {
3606 return imageURL;
3607 }
3608 return "".concat(base, "/?o=").concat(btoa(imageURL, false));
3609 };
3610 var normalizeItems = function normalizeItems(response) {
3611 var meta = response.meta,
3612 items = response.items;
3613 return items === null || items === void 0 ? void 0 : items.map(function (item) {
3614 var _item$request, _item$request2, _item$request3, _item$response, _item$response$result, _item$response2, _item$response2$resul, _item$response3, _item$response3$resul, _item$response3$resul2;
3615 return {
3616 id: item === null || item === void 0 ? void 0 : item.elementorApiId,
3617 date: item === null || item === void 0 ? void 0 : item.createdAt,
3618 action: item === null || item === void 0 ? void 0 : item.action,
3619 prompt: item === null || item === void 0 ? void 0 : (_item$request = item.request) === null || _item$request === void 0 ? void 0 : _item$request.prompt,
3620 imageType: item === null || item === void 0 ? void 0 : (_item$request2 = item.request) === null || _item$request2 === void 0 ? void 0 : _item$request2.image_type,
3621 ratio: item === null || item === void 0 ? void 0 : (_item$request3 = item.request) === null || _item$request3 === void 0 ? void 0 : _item$request3.ratio,
3622 text: item === null || item === void 0 ? void 0 : (_item$response = item.response) === null || _item$response === void 0 ? void 0 : (_item$response$result = _item$response.results) === null || _item$response$result === void 0 ? void 0 : _item$response$result.text,
3623 images: item === null || item === void 0 ? void 0 : (_item$response2 = item.response) === null || _item$response2 === void 0 ? void 0 : (_item$response2$resul = _item$response2.results) === null || _item$response2$resul === void 0 ? void 0 : _item$response2$resul.images,
3624 thumbnails: item === null || item === void 0 ? void 0 : (_item$response3 = item.response) === null || _item$response3 === void 0 ? void 0 : (_item$response3$resul = _item$response3.results) === null || _item$response3$resul === void 0 ? void 0 : (_item$response3$resul2 = _item$response3$resul.images) === null || _item$response3$resul2 === void 0 ? void 0 : _item$response3$resul2.map(function (image) {
3625 return _objectSpread(_objectSpread({}, image), {}, {
3626 image_url: getImageThumbnailURL(meta.thumbnailUrl, image.image_url)
3627 });
3628 })
3629 };
3630 });
3631 };
3632 var usePromptHistory = function usePromptHistory(historyType) {
3633 var _useState = (0, _react.useState)(false),
3634 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3635 isLoading = _useState2[0],
3636 setIsLoading = _useState2[1];
3637 var _useState3 = (0, _react.useState)({}),
3638 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3639 data = _useState4[0],
3640 setData = _useState4[1];
3641 var _useState5 = (0, _react.useState)(''),
3642 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
3643 error = _useState6[0],
3644 setError = _useState6[1];
3645 var fetchData = /*#__PURE__*/function () {
3646 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
3647 var page, limit;
3648 return _regenerator.default.wrap(function _callee$(_context) {
3649 while (1) switch (_context.prev = _context.next) {
3650 case 0:
3651 page = _ref.page, limit = _ref.limit;
3652 return _context.abrupt("return", new Promise(function (resolve, reject) {
3653 setIsLoading(true);
3654 (0, _api.getHistory)(historyType, page, limit).then(function (response) {
3655 var clone = JSON.parse(JSON.stringify(data));
3656 clone.meta = response.meta;
3657 clone.items = [].concat((0, _toConsumableArray2.default)((clone === null || clone === void 0 ? void 0 : clone.items) || []), (0, _toConsumableArray2.default)(normalizeItems(response)));
3658 setData(clone);
3659 resolve(true);
3660 }).catch(function (err) {
3661 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3662 setError(finalError);
3663 reject(finalError);
3664 }).finally(function () {
3665 return setIsLoading(false);
3666 });
3667 }));
3668 case 2:
3669 case "end":
3670 return _context.stop();
3671 }
3672 }, _callee);
3673 }));
3674 return function fetchData(_x) {
3675 return _ref2.apply(this, arguments);
3676 };
3677 }();
3678 var deleteItemById = function deleteItemById(id) {
3679 var itemIndex = data.items.findIndex(function (item) {
3680 return item.id === id;
3681 });
3682 if (-1 === itemIndex) {
3683 return false;
3684 }
3685 var clone = JSON.parse(JSON.stringify(data));
3686 clone.items.splice(itemIndex, 1);
3687 setData(clone);
3688 return true;
3689 };
3690 return {
3691 isLoading: isLoading,
3692 error: error,
3693 items: data.items,
3694 meta: data.meta,
3695 fetchData: fetchData,
3696 deleteItemById: deleteItemById
3697 };
3698 };
3699 var _default = usePromptHistory;
3700 exports["default"] = _default;
3701
3702 /***/ }),
3703
3704 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt.js":
3705 /*!**********************************************************!*\
3706 !*** ../modules/ai/assets/js/editor/hooks/use-prompt.js ***!
3707 \**********************************************************/
3708 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3709
3710 "use strict";
3711
3712
3713 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3714 Object.defineProperty(exports, "__esModule", ({
3715 value: true
3716 }));
3717 exports["default"] = void 0;
3718 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3719 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3720 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3721 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3722 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3723 var _react = __webpack_require__(/*! react */ "react");
3724 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3725 var _excluded = ["text", "response_id", "usage", "images"];
3726 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3727 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3728 var normalizeResponse = function normalizeResponse(_ref) {
3729 var text = _ref.text,
3730 responseId = _ref.response_id,
3731 usage = _ref.usage,
3732 images = _ref.images,
3733 optional = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3734 var creditsData = usage ? usage.quota - usage.usedQuota : 0;
3735 var credits = Math.max(creditsData, 0);
3736 var result = text || images;
3737 var normalized = {
3738 result: result,
3739 responseId: responseId,
3740 credits: credits
3741 };
3742 if (optional.base_template_id) {
3743 normalized.baseTemplateId = optional.base_template_id;
3744 }
3745 normalized.type = optional.template_type;
3746 return normalized;
3747 };
3748 var usePrompt = function usePrompt(fetchData, initialState) {
3749 var _useState = (0, _react.useState)(false),
3750 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3751 isLoading = _useState2[0],
3752 setIsLoading = _useState2[1];
3753 var _useState3 = (0, _react.useState)(''),
3754 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3755 error = _useState4[0],
3756 setError = _useState4[1];
3757 var _useState5 = (0, _react.useState)(initialState),
3758 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
3759 data = _useState6[0],
3760 setData = _useState6[1];
3761 var send = /*#__PURE__*/function () {
3762 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
3763 var _len,
3764 args,
3765 _key,
3766 _args = arguments;
3767 return _regenerator.default.wrap(function _callee$(_context) {
3768 while (1) switch (_context.prev = _context.next) {
3769 case 0:
3770 for (_len = _args.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3771 args[_key] = _args[_key];
3772 }
3773 return _context.abrupt("return", new Promise(function (resolve, reject) {
3774 setError('');
3775 setIsLoading(true);
3776 fetchData.apply(void 0, args).then(function (result) {
3777 var normalizedData = normalizeResponse(result);
3778 setData(normalizedData);
3779 resolve(normalizedData);
3780 }).catch(function (err) {
3781 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3782 setError(finalError);
3783 reject(finalError);
3784 }).finally(function () {
3785 return setIsLoading(false);
3786 });
3787 }));
3788 case 2:
3789 case "end":
3790 return _context.stop();
3791 }
3792 }, _callee);
3793 }));
3794 return function send() {
3795 return _ref2.apply(this, arguments);
3796 };
3797 }();
3798 var sendUsageData = function sendUsageData() {
3799 var usageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data;
3800 return usageData.responseId && (0, _api.setStatusFeedback)(usageData.responseId);
3801 };
3802 var reset = function reset() {
3803 setData(function (_ref3) {
3804 var credits = _ref3.credits;
3805 return {
3806 credits: credits,
3807 result: '',
3808 responseId: ''
3809 };
3810 });
3811 setError('');
3812 setIsLoading(false);
3813 };
3814 var setResult = function setResult(result) {
3815 var responseId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
3816 var updatedResult = _objectSpread({}, data);
3817 updatedResult.result = result;
3818 if (responseId) {
3819 updatedResult.responseId = responseId;
3820 }
3821 setData(updatedResult);
3822 };
3823 return {
3824 isLoading: isLoading,
3825 error: error,
3826 data: data,
3827 setResult: setResult,
3828 reset: reset,
3829 send: send,
3830 sendUsageData: sendUsageData
3831 };
3832 };
3833 var _default = usePrompt;
3834 exports["default"] = _default;
3835
3836 /***/ }),
3837
3838 /***/ "../modules/ai/assets/js/editor/hooks/use-session-storage.js":
3839 /*!*******************************************************************!*\
3840 !*** ../modules/ai/assets/js/editor/hooks/use-session-storage.js ***!
3841 \*******************************************************************/
3842 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3843
3844 "use strict";
3845
3846
3847 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3848 Object.defineProperty(exports, "__esModule", ({
3849 value: true
3850 }));
3851 exports["default"] = void 0;
3852 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3853 var _react = __webpack_require__(/*! react */ "react");
3854 var useSessionStorage = function useSessionStorage(storageKey) {
3855 var initialValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
3856 var getSessionStorageData = function getSessionStorageData() {
3857 return JSON.parse(sessionStorage.getItem(storageKey)) || initialValue;
3858 };
3859 var setSessionStorageData = function setSessionStorageData(value) {
3860 return sessionStorage.setItem(storageKey, JSON.stringify(value));
3861 };
3862 var _useState = (0, _react.useState)(getSessionStorageData()),
3863 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3864 data = _useState2[0],
3865 setData = _useState2[1];
3866 var setStateAndSessionData = function setStateAndSessionData(value) {
3867 setSessionStorageData(value);
3868 setData(value);
3869 };
3870 return {
3871 data: data,
3872 setStateAndSessionData: setStateAndSessionData
3873 };
3874 };
3875 var _default = useSessionStorage;
3876 exports["default"] = _default;
3877
3878 /***/ }),
3879
3880 /***/ "../modules/ai/assets/js/editor/hooks/use-text-prompt.js":
3881 /*!***************************************************************!*\
3882 !*** ../modules/ai/assets/js/editor/hooks/use-text-prompt.js ***!
3883 \***************************************************************/
3884 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3885
3886 "use strict";
3887
3888
3889 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3890 Object.defineProperty(exports, "__esModule", ({
3891 value: true
3892 }));
3893 exports["default"] = void 0;
3894 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3895 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3896 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3897 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
3898 var getTextResult = /*#__PURE__*/function () {
3899 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(prompt, instruction) {
3900 return _regenerator.default.wrap(function _callee$(_context) {
3901 while (1) switch (_context.prev = _context.next) {
3902 case 0:
3903 if (!instruction) {
3904 _context.next = 2;
3905 break;
3906 }
3907 return _context.abrupt("return", (0, _api.getEditText)(prompt, instruction));
3908 case 2:
3909 return _context.abrupt("return", (0, _api.getCompletionText)(prompt));
3910 case 3:
3911 case "end":
3912 return _context.stop();
3913 }
3914 }, _callee);
3915 }));
3916 return function getTextResult(_x, _x2) {
3917 return _ref.apply(this, arguments);
3918 };
3919 }();
3920 var useTextPrompt = function useTextPrompt(initialValue) {
3921 var promptData = (0, _usePrompt.default)(getTextResult, initialValue);
3922 return promptData;
3923 };
3924 var _default = useTextPrompt;
3925 exports["default"] = _default;
3926
3927 /***/ }),
3928
3929 /***/ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js":
3930 /*!*******************************************************************!*\
3931 !*** ../modules/ai/assets/js/editor/hooks/use-upgrade-message.js ***!
3932 \*******************************************************************/
3933 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3934
3935 "use strict";
3936
3937
3938 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3939 Object.defineProperty(exports, "__esModule", ({
3940 value: true
3941 }));
3942 exports["default"] = exports.USAGE_PERCENTAGE_THRESHOLD = void 0;
3943 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ./use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
3944 var USAGE_PERCENTAGE_THRESHOLD = 80;
3945 exports.USAGE_PERCENTAGE_THRESHOLD = USAGE_PERCENTAGE_THRESHOLD;
3946 var useUpgradeMessage = function useUpgradeMessage(_ref) {
3947 var usagePercentage = _ref.usagePercentage,
3948 hasSubscription = _ref.hasSubscription;
3949 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-upgrade-message'),
3950 isBannerViewed = _useIntroduction.isViewed,
3951 markBannerAsViewed = _useIntroduction.markAsViewed;
3952 var isFreeUser = !hasSubscription;
3953 var isBelowThreshold = usagePercentage < USAGE_PERCENTAGE_THRESHOLD;
3954 var isAboveThreshold = usagePercentage >= USAGE_PERCENTAGE_THRESHOLD;
3955 var showBadge = isAboveThreshold || isFreeUser && isBannerViewed;
3956 var showBanner = !isBannerViewed && isFreeUser && isBelowThreshold;
3957 return {
3958 showBadge: showBadge,
3959 showBanner: showBanner,
3960 markBannerAsViewed: markBannerAsViewed
3961 };
3962 };
3963 var _default = useUpgradeMessage;
3964 exports["default"] = _default;
3965
3966 /***/ }),
3967
3968 /***/ "../modules/ai/assets/js/editor/hooks/use-user-info.js":
3969 /*!*************************************************************!*\
3970 !*** ../modules/ai/assets/js/editor/hooks/use-user-info.js ***!
3971 \*************************************************************/
3972 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3973
3974 "use strict";
3975
3976
3977 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3978 Object.defineProperty(exports, "__esModule", ({
3979 value: true
3980 }));
3981 exports["default"] = void 0;
3982 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3983 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3984 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3985 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3986 var _react = __webpack_require__(/*! react */ "react");
3987 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3988 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3989 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3990 var useUserInfo = function useUserInfo() {
3991 var _useState = (0, _react.useState)(false),
3992 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3993 isLoaded = _useState2[0],
3994 setIsLoaded = _useState2[1];
3995 var _useState3 = (0, _react.useState)(false),
3996 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3997 isLoading = _useState4[0],
3998 setIsLoading = _useState4[1];
3999 var _useState5 = (0, _react.useState)({
4000 is_connected: false,
4001 is_get_started: false,
4002 connect_url: '',
4003 usage: {
4004 hasAiSubscription: false,
4005 quota: 0,
4006 usedQuota: 0
4007 }
4008 }),
4009 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4010 userInfo = _useState6[0],
4011 setUserInfo = _useState6[1];
4012 var credits = userInfo.usage.quota - userInfo.usage.usedQuota;
4013 var usagePercentage = userInfo.usage.usedQuota / userInfo.usage.quota * 100;
4014 var fetchData = /*#__PURE__*/function () {
4015 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
4016 var userInfoResult;
4017 return _regenerator.default.wrap(function _callee$(_context) {
4018 while (1) switch (_context.prev = _context.next) {
4019 case 0:
4020 setIsLoading(true);
4021 _context.next = 3;
4022 return (0, _api.getUserInformation)();
4023 case 3:
4024 userInfoResult = _context.sent;
4025 setUserInfo(function (prevState) {
4026 return _objectSpread(_objectSpread({}, prevState), userInfoResult);
4027 });
4028 setIsLoaded(true);
4029 setIsLoading(false);
4030 case 7:
4031 case "end":
4032 return _context.stop();
4033 }
4034 }, _callee);
4035 }));
4036 return function fetchData() {
4037 return _ref.apply(this, arguments);
4038 };
4039 }();
4040 if (!isLoaded && !isLoading) {
4041 fetchData();
4042 }
4043 return {
4044 isLoading: isLoading,
4045 isLoaded: isLoaded,
4046 isConnected: userInfo.is_connected,
4047 isGetStarted: userInfo.is_get_started,
4048 connectUrl: userInfo.connect_url,
4049 builderUrl: userInfo.usage.builderUrl,
4050 hasSubscription: userInfo.usage.hasAiSubscription,
4051 credits: credits < 0 ? 0 : credits,
4052 usagePercentage: Math.round(usagePercentage),
4053 fetchData: fetchData
4054 };
4055 };
4056 var _default = useUserInfo;
4057 exports["default"] = _default;
4058
4059 /***/ }),
4060
4061 /***/ "../modules/ai/assets/js/editor/icons/brush-icon.js":
4062 /*!**********************************************************!*\
4063 !*** ../modules/ai/assets/js/editor/icons/brush-icon.js ***!
4064 \**********************************************************/
4065 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4066
4067 "use strict";
4068
4069
4070 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4071 Object.defineProperty(exports, "__esModule", ({
4072 value: true
4073 }));
4074 exports["default"] = void 0;
4075 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4076 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4077 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4078 var BrushIcon = _react.default.forwardRef(function (props, ref) {
4079 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4080 viewBox: "0 0 24 24"
4081 }, props, {
4082 ref: ref
4083 }), /*#__PURE__*/_react.default.createElement("path", {
4084 fillRule: "evenodd",
4085 clipRule: "evenodd",
4086 d: "M20.8815 2.25919C20.9203 2.25301 20.9599 2.24983 21 2.24988C21.0827 2.24978 21.1629 2.26335 21.2384 2.2887C21.367 2.33162 21.4784 2.40776 21.5642 2.5058C21.6895 2.64891 21.76 2.83868 21.749 3.03992C21.7477 3.06492 21.7452 3.08966 21.7414 3.11407C21.3311 6.09743 20.124 8.91507 18.2472 11.2703C16.5079 13.4529 14.2532 15.1635 11.6906 16.2509C11.8289 17.1168 11.7249 18.0054 11.3884 18.8177C11.0289 19.6857 10.4201 20.4275 9.63896 20.9495C8.85782 21.4714 7.93946 21.75 7 21.75H3C2.58579 21.75 2.25 21.4142 2.25 21V17C2.25 16.0605 2.52858 15.1421 3.05052 14.361C3.57246 13.5799 4.3143 12.9711 5.18225 12.6115C5.99455 12.2751 6.88314 12.1711 7.74905 12.3094C8.83643 9.74682 10.547 7.49212 12.7296 5.75287C15.0837 3.87693 17.8998 2.67012 20.8815 2.25919ZM10.0984 16.0649C10.077 16.0082 10.0629 15.9506 10.0557 15.893C9.89413 15.4471 9.63624 15.04 9.2981 14.7019C8.96001 14.3638 8.55301 14.1059 8.10721 13.9444C8.04953 13.9372 7.99178 13.9231 7.93499 13.9016C7.90509 13.8903 7.87632 13.8773 7.84877 13.8628C7.77794 13.8436 7.70633 13.8268 7.63404 13.8124C7.0036 13.687 6.35014 13.7514 5.75628 13.9974C5.16242 14.2433 4.65484 14.6599 4.29772 15.1944C3.94061 15.7288 3.75 16.3572 3.75 17V20.25H7C7.64279 20.25 8.27114 20.0594 8.8056 19.7022C9.34006 19.3451 9.75662 18.8376 10.0026 18.2437C10.2486 17.6498 10.313 16.9964 10.1876 16.3659C10.1732 16.2935 10.1563 16.2218 10.1371 16.1509C10.1226 16.1234 10.1097 16.0947 10.0984 16.0649ZM10.3588 13.6412C10.7069 13.9894 10.9969 14.3876 11.2204 14.8204C12.2258 14.3839 13.1782 13.8417 14.0621 13.2048C13.3066 11.827 12.173 10.6933 10.7952 9.93782C10.1583 10.8218 9.61603 11.7741 9.17957 12.7795C9.61238 13.0031 10.0106 13.293 10.3588 13.6412ZM11.7434 8.75107C13.1943 9.59789 14.4021 10.8057 15.2489 12.2565C15.9093 11.6727 16.5204 11.0304 17.0741 10.3355C18.5698 8.45849 19.5983 6.25889 20.0821 3.9179C17.7411 4.40165 15.5415 5.43018 13.6644 6.92595C12.9696 7.47964 12.3273 8.0907 11.7434 8.75107Z"
4087 }));
4088 });
4089 var _default = BrushIcon;
4090 exports["default"] = _default;
4091
4092 /***/ }),
4093
4094 /***/ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js":
4095 /*!*****************************************************************!*\
4096 !*** ../modules/ai/assets/js/editor/icons/chevron-left-icon.js ***!
4097 \*****************************************************************/
4098 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4099
4100 "use strict";
4101
4102
4103 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4104 Object.defineProperty(exports, "__esModule", ({
4105 value: true
4106 }));
4107 exports["default"] = void 0;
4108 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4109 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4110 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4111 var ChevronLeftIcon = _react.default.forwardRef(function (props, ref) {
4112 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4113 viewBox: "0 0 24 24"
4114 }, props, {
4115 ref: ref
4116 }), /*#__PURE__*/_react.default.createElement("path", {
4117 fillRule: "evenodd",
4118 clipRule: "evenodd",
4119 d: "M15.5303 18.2803C15.8232 17.9874 15.8232 17.5126 15.5303 17.2197L10.0607 11.75L15.5303 6.28033C15.8232 5.98744 15.8232 5.51256 15.5303 5.21967C15.2374 4.92678 14.7626 4.92678 14.4697 5.21967L8.46967 11.2197C8.17678 11.5126 8.17678 11.9874 8.46967 12.2803L14.4697 18.2803C14.7626 18.5732 15.2374 18.5732 15.5303 18.2803Z"
4120 }));
4121 });
4122 var _default = ChevronLeftIcon;
4123 exports["default"] = _default;
4124
4125 /***/ }),
4126
4127 /***/ "../modules/ai/assets/js/editor/icons/chevron-right-icon.js":
4128 /*!******************************************************************!*\
4129 !*** ../modules/ai/assets/js/editor/icons/chevron-right-icon.js ***!
4130 \******************************************************************/
4131 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4132
4133 "use strict";
4134
4135
4136 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4137 Object.defineProperty(exports, "__esModule", ({
4138 value: true
4139 }));
4140 exports["default"] = void 0;
4141 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4142 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4143 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4144 var ChevronRightIcon = _react.default.forwardRef(function (props, ref) {
4145 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4146 viewBox: "0 0 24 24"
4147 }, props, {
4148 ref: ref
4149 }), /*#__PURE__*/_react.default.createElement("path", {
4150 fillRule: "evenodd",
4151 clipRule: "evenodd",
4152 d: "M8.46967 18.2803C8.17678 17.9874 8.17678 17.5126 8.46967 17.2197L13.9393 11.75L8.46967 6.28033C8.17678 5.98744 8.17678 5.51256 8.46967 5.21967C8.76256 4.92678 9.23744 4.92678 9.53033 5.21967L15.5303 11.2197C15.8232 11.5126 15.8232 11.9874 15.5303 12.2803L9.53033 18.2803C9.23744 18.5732 8.76256 18.5732 8.46967 18.2803Z"
4153 }));
4154 });
4155 var _default = ChevronRightIcon;
4156 exports["default"] = _default;
4157
4158 /***/ }),
4159
4160 /***/ "../modules/ai/assets/js/editor/icons/code-icon.js":
4161 /*!*********************************************************!*\
4162 !*** ../modules/ai/assets/js/editor/icons/code-icon.js ***!
4163 \*********************************************************/
4164 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4165
4166 "use strict";
4167
4168
4169 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4170 Object.defineProperty(exports, "__esModule", ({
4171 value: true
4172 }));
4173 exports["default"] = void 0;
4174 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4175 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4176 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4177 var CodeIcon = _react.default.forwardRef(function (props, ref) {
4178 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4179 viewBox: "0 0 24 24"
4180 }, props, {
4181 ref: ref
4182 }), /*#__PURE__*/_react.default.createElement("path", {
4183 fillRule: "evenodd",
4184 d: "M7.53 7.47a.75.75 0 0 1 0 1.06L4.06 12l3.47 3.47a.75.75 0 1 1-1.06 1.06l-4-4a.75.75 0 0 1 0-1.06l4-4a.75.75 0 0 1 1.06 0ZM16.47 7.47a.75.75 0 0 1 1.06 0l4 4a.75.75 0 0 1 0 1.06l-4 4a.75.75 0 1 1-1.06-1.06L19.94 12l-3.47-3.47a.75.75 0 0 1 0-1.06ZM14.182 3.272a.75.75 0 0 1 .546.91l-4 16a.75.75 0 0 1-1.456-.364l4-16a.75.75 0 0 1 .91-.546Z",
4185 clipRule: "evenodd"
4186 }));
4187 });
4188 var _default = CodeIcon;
4189 exports["default"] = _default;
4190
4191 /***/ }),
4192
4193 /***/ "../modules/ai/assets/js/editor/icons/copy-icon.js":
4194 /*!*********************************************************!*\
4195 !*** ../modules/ai/assets/js/editor/icons/copy-icon.js ***!
4196 \*********************************************************/
4197 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4198
4199 "use strict";
4200
4201
4202 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4203 Object.defineProperty(exports, "__esModule", ({
4204 value: true
4205 }));
4206 exports["default"] = void 0;
4207 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4208 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4209 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4210 var CopyIcon = _react.default.forwardRef(function (props, ref) {
4211 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4212 viewBox: "0 0 24 24"
4213 }, props, {
4214 ref: ref
4215 }), /*#__PURE__*/_react.default.createElement("path", {
4216 fillRule: "evenodd",
4217 clipRule: "evenodd",
4218 d: "M9 3.75C8.30964 3.75 7.75 4.30964 7.75 5V15C7.75 15.6904 8.30964 16.25 9 16.25H19C19.6904 16.25 20.25 15.6904 20.25 15V5C20.25 4.30964 19.6904 3.75 19 3.75H9ZM6.25 5C6.25 3.48122 7.48122 2.25 9 2.25H19C20.5188 2.25 21.75 3.48122 21.75 5V15C21.75 16.5188 20.5188 17.75 19 17.75H9C7.48122 17.75 6.25 16.5188 6.25 15V5Z"
4219 }), /*#__PURE__*/_react.default.createElement("path", {
4220 fillRule: "evenodd",
4221 clipRule: "evenodd",
4222 d: "M5 7.75C4.66848 7.75 4.35054 7.8817 4.11612 8.11612C3.8817 8.35054 3.75 8.66848 3.75 9V19C3.75 19.3315 3.8817 19.6495 4.11612 19.8839C4.35054 20.1183 4.66848 20.25 5 20.25H15C15.3315 20.25 15.6495 20.1183 15.8839 19.8839C16.1183 19.6495 16.25 19.3315 16.25 19V17C16.25 16.5858 16.5858 16.25 17 16.25C17.4142 16.25 17.75 16.5858 17.75 17V19C17.75 19.7293 17.4603 20.4288 16.9445 20.9445C16.4288 21.4603 15.7293 21.75 15 21.75H5C4.27065 21.75 3.57118 21.4603 3.05546 20.9445C2.53973 20.4288 2.25 19.7293 2.25 19V9C2.25 8.27065 2.53973 7.57118 3.05546 7.05546C3.57118 6.53973 4.27065 6.25 5 6.25H7C7.41421 6.25 7.75 6.58579 7.75 7C7.75 7.41421 7.41421 7.75 7 7.75H5Z"
4223 }));
4224 });
4225 var _default = CopyIcon;
4226 exports["default"] = _default;
4227
4228 /***/ }),
4229
4230 /***/ "../modules/ai/assets/js/editor/icons/download-icon.js":
4231 /*!*************************************************************!*\
4232 !*** ../modules/ai/assets/js/editor/icons/download-icon.js ***!
4233 \*************************************************************/
4234 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4235
4236 "use strict";
4237
4238
4239 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4240 Object.defineProperty(exports, "__esModule", ({
4241 value: true
4242 }));
4243 exports["default"] = void 0;
4244 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4245 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4246 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4247 var DownloadIcon = _react.default.forwardRef(function (props, ref) {
4248 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4249 viewBox: "0 0 24 24"
4250 }, props, {
4251 ref: ref
4252 }), /*#__PURE__*/_react.default.createElement("path", {
4253 fillRule: "evenodd",
4254 clipRule: "evenodd",
4255 d: "M4 16.25C4.41421 16.25 4.75 16.5858 4.75 17V19C4.75 19.3315 4.8817 19.6495 5.11612 19.8839C5.35054 20.1183 5.66848 20.25 6 20.25H18C18.3315 20.25 18.6495 20.1183 18.8839 19.8839C19.1183 19.6495 19.25 19.3315 19.25 19V17C19.25 16.5858 19.5858 16.25 20 16.25C20.4142 16.25 20.75 16.5858 20.75 17V19C20.75 19.7293 20.4603 20.4288 19.9445 20.9445C19.4288 21.4603 18.7293 21.75 18 21.75H6C5.27065 21.75 4.57118 21.4603 4.05546 20.9445C3.53973 20.4288 3.25 19.7293 3.25 19V17C3.25 16.5858 3.58579 16.25 4 16.25Z"
4256 }), /*#__PURE__*/_react.default.createElement("path", {
4257 fillRule: "evenodd",
4258 clipRule: "evenodd",
4259 d: "M6.46967 10.4697C6.76256 10.1768 7.23744 10.1768 7.53033 10.4697L12 14.9393L16.4697 10.4697C16.7626 10.1768 17.2374 10.1768 17.5303 10.4697C17.8232 10.7626 17.8232 11.2374 17.5303 11.5303L12.5303 16.5303C12.2374 16.8232 11.7626 16.8232 11.4697 16.5303L6.46967 11.5303C6.17678 11.2374 6.17678 10.7626 6.46967 10.4697Z"
4260 }), /*#__PURE__*/_react.default.createElement("path", {
4261 fillRule: "evenodd",
4262 clipRule: "evenodd",
4263 d: "M12 3.25C12.4142 3.25 12.75 3.58579 12.75 4V16C12.75 16.4142 12.4142 16.75 12 16.75C11.5858 16.75 11.25 16.4142 11.25 16V4C11.25 3.58579 11.5858 3.25 12 3.25Z"
4264 }));
4265 });
4266 var _default = DownloadIcon;
4267 exports["default"] = _default;
4268
4269 /***/ }),
4270
4271 /***/ "../modules/ai/assets/js/editor/icons/edit-icon.js":
4272 /*!*********************************************************!*\
4273 !*** ../modules/ai/assets/js/editor/icons/edit-icon.js ***!
4274 \*********************************************************/
4275 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4276
4277 "use strict";
4278
4279
4280 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4281 Object.defineProperty(exports, "__esModule", ({
4282 value: true
4283 }));
4284 exports["default"] = void 0;
4285 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4286 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4287 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4288 var EditIcon = _react.default.forwardRef(function (props, ref) {
4289 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4290 viewBox: "0 0 24 24"
4291 }, props, {
4292 ref: ref
4293 }), /*#__PURE__*/_react.default.createElement("path", {
4294 fillRule: "evenodd",
4295 clipRule: "evenodd",
4296 d: "M13.9697 4.96967C14.6408 4.29858 15.5509 3.92157 16.5 3.92157C17.4491 3.92157 18.3592 4.29858 19.0303 4.96967C19.7014 5.64075 20.0784 6.55094 20.0784 7.5C20.0784 8.44905 19.7014 9.35924 19.0303 10.0303L8.53033 20.5303C8.38968 20.671 8.19891 20.75 8 20.75H4C3.58579 20.75 3.25 20.4142 3.25 20V16C3.25 15.8011 3.32902 15.6103 3.46967 15.4697L13.9697 4.96967ZM16.5 5.42157C15.9488 5.42157 15.4201 5.64055 15.0303 6.03033L4.75 16.3107V19.25H7.68934L17.9697 8.96967C18.3595 8.57989 18.5784 8.05123 18.5784 7.5C18.5784 6.94876 18.3595 6.42011 17.9697 6.03033C17.5799 5.64055 17.0512 5.42157 16.5 5.42157Z"
4297 }), /*#__PURE__*/_react.default.createElement("path", {
4298 fillRule: "evenodd",
4299 clipRule: "evenodd",
4300 d: "M12.9697 5.96967C13.2626 5.67677 13.7374 5.67677 14.0303 5.96967L18.0303 9.96967C18.3232 10.2626 18.3232 10.7374 18.0303 11.0303C17.7374 11.3232 17.2626 11.3232 16.9697 11.0303L12.9697 7.03033C12.6768 6.73743 12.6768 6.26256 12.9697 5.96967Z"
4301 }));
4302 });
4303 var _default = EditIcon;
4304 exports["default"] = _default;
4305
4306 /***/ }),
4307
4308 /***/ "../modules/ai/assets/js/editor/icons/enlarger-icon.js":
4309 /*!*************************************************************!*\
4310 !*** ../modules/ai/assets/js/editor/icons/enlarger-icon.js ***!
4311 \*************************************************************/
4312 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4313
4314 "use strict";
4315
4316
4317 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4318 Object.defineProperty(exports, "__esModule", ({
4319 value: true
4320 }));
4321 exports["default"] = void 0;
4322 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4323 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4324 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4325 var ExpandIcon = _react.default.forwardRef(function (props, ref) {
4326 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4327 viewBox: "0 0 24 24"
4328 }, props, {
4329 ref: ref
4330 }), /*#__PURE__*/_react.default.createElement("path", {
4331 fillRule: "evenodd",
4332 clipRule: "evenodd",
4333 d: "M5.11612 5.11612C5.35054 4.8817 5.66848 4.75 6 4.75H18C18.3315 4.75 18.6495 4.8817 18.8839 5.11612C19.1183 5.35054 19.25 5.66848 19.25 6V18C19.25 18.3315 19.1183 18.6495 18.8839 18.8839C18.6495 19.1183 18.3315 19.25 18 19.25H11.7335C11.7444 19.1709 11.75 19.0908 11.75 19.01V14.01C11.75 13.8051 11.7141 13.604 11.6457 13.4149L16.25 8.81066V11C16.25 11.4142 16.5858 11.75 17 11.75C17.4142 11.75 17.75 11.4142 17.75 11V7C17.75 6.89831 17.7298 6.80134 17.6931 6.71291C17.6565 6.62445 17.6022 6.54158 17.5303 6.46967C17.4584 6.39776 17.3755 6.34351 17.2871 6.30691C17.1993 6.27051 17.1031 6.2503 17.0022 6.25C17.0015 6.25 17.0007 6.25 17 6.25H16.9997H13C12.5858 6.25 12.25 6.58579 12.25 7C12.25 7.41421 12.5858 7.75 13 7.75H15.1893L10.5803 12.359C10.3956 12.2941 10.1995 12.26 10 12.26H5C4.91585 12.26 4.83232 12.2661 4.75 12.278V6C4.75 5.66848 4.8817 5.35054 5.11612 5.11612ZM4.75 14.01V18C4.75 18.3315 4.8817 18.6495 5.11612 18.8839C5.35054 19.1183 5.66848 19.25 6 19.25H10.07C10.11 19.2383 10.1468 19.2168 10.1768 19.1868C10.2237 19.1399 10.25 19.0763 10.25 19.01V14.01C10.25 13.9437 10.2237 13.8801 10.1768 13.8332C10.1299 13.7863 10.0663 13.76 10 13.76H5C4.9337 13.76 4.87011 13.7863 4.82322 13.8332C4.77634 13.8801 4.75 13.9437 4.75 14.01ZM3.25 14.01V6C3.25 5.27065 3.53973 4.57118 4.05546 4.05546C4.57118 3.53973 5.27065 3.25 6 3.25H18C18.7293 3.25 19.4288 3.53973 19.9445 4.05546C20.4603 4.57118 20.75 5.27065 20.75 6V18C20.75 18.7293 20.4603 19.4288 19.9445 19.9445C19.4288 20.4603 18.7293 20.75 18 20.75H10.187C10.1251 20.7566 10.0627 20.76 10 20.76H5C4.53587 20.76 4.09075 20.5756 3.76256 20.2474C3.43438 19.9193 3.25 19.4741 3.25 19.01V18V14.01Z"
4334 }));
4335 });
4336 var _default = ExpandIcon;
4337 exports["default"] = _default;
4338
4339 /***/ }),
4340
4341 /***/ "../modules/ai/assets/js/editor/icons/evolve-icon.js":
4342 /*!***********************************************************!*\
4343 !*** ../modules/ai/assets/js/editor/icons/evolve-icon.js ***!
4344 \***********************************************************/
4345 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4346
4347 "use strict";
4348
4349
4350 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4351 Object.defineProperty(exports, "__esModule", ({
4352 value: true
4353 }));
4354 exports["default"] = void 0;
4355 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4356 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4357 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4358 var EvolveIcon = _react.default.forwardRef(function (props, ref) {
4359 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4360 viewBox: "0 0 24 24"
4361 }, props, {
4362 ref: ref
4363 }), /*#__PURE__*/_react.default.createElement("path", {
4364 fillRule: "evenodd",
4365 clipRule: "evenodd",
4366 d: "M2.30691 2.71291C2.27024 2.80134 2.25 2.89831 2.25 3V8C2.25 8.41421 2.58579 8.75 3 8.75C3.41421 8.75 3.75 8.41421 3.75 8V4.81066L10.0056 11.0663L10.0057 11.0663C10.8022 11.8631 11.2497 12.9434 11.25 14.07V14.0702V15V21C11.25 21.4142 11.5858 21.75 12 21.75C12.4142 21.75 12.75 21.4142 12.75 21V15V14.0702V14.07C12.7503 12.9434 13.1979 11.863 13.9944 11.0663L20.25 4.81066V8C20.25 8.41421 20.5858 8.75 21 8.75C21.4142 8.75 21.75 8.41421 21.75 8V3C21.75 2.98706 21.7497 2.97419 21.749 2.96141C21.7446 2.87376 21.7251 2.79009 21.6931 2.71291C21.6565 2.62445 21.6022 2.54158 21.5303 2.46967C21.4584 2.39776 21.3755 2.34351 21.2871 2.30691C21.1987 2.27024 21.1017 2.25 21 2.25H16C15.5858 2.25 15.25 2.58579 15.25 3C15.25 3.41421 15.5858 3.75 16 3.75H19.1893L12.9337 10.0057L12.9336 10.0057C12.5656 10.3739 12.2526 10.7867 12 11.2316C11.7474 10.7867 11.4344 10.3739 11.0664 10.0057L11.0663 10.0057L4.81066 3.75H8C8.41421 3.75 8.75 3.41421 8.75 3C8.75 2.58579 8.41421 2.25 8 2.25H3C2.7937 2.25 2.60686 2.33329 2.47126 2.46808C2.47073 2.46861 2.4702 2.46914 2.46967 2.46967C2.46914 2.4702 2.46861 2.47073 2.46808 2.47126C2.39696 2.5428 2.34324 2.62511 2.30691 2.71291Z"
4367 }));
4368 });
4369 var _default = EvolveIcon;
4370 exports["default"] = _default;
4371
4372 /***/ }),
4373
4374 /***/ "../modules/ai/assets/js/editor/icons/expand-icon.js":
4375 /*!***********************************************************!*\
4376 !*** ../modules/ai/assets/js/editor/icons/expand-icon.js ***!
4377 \***********************************************************/
4378 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4379
4380 "use strict";
4381
4382
4383 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4384 Object.defineProperty(exports, "__esModule", ({
4385 value: true
4386 }));
4387 exports["default"] = void 0;
4388 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4389 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4390 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4391 var ExpandIcon = _react.default.forwardRef(function (props, ref) {
4392 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4393 viewBox: "0 0 24 24"
4394 }, props, {
4395 ref: ref
4396 }), /*#__PURE__*/_react.default.createElement("path", {
4397 fillRule: "evenodd",
4398 clipRule: "evenodd",
4399 d: "M16 3.25C15.5858 3.25 15.25 3.58579 15.25 4C15.25 4.41421 15.5858 4.75 16 4.75H18.1893L13.4697 9.46967C13.1768 9.76256 13.1768 10.2374 13.4697 10.5303C13.7626 10.8232 14.2374 10.8232 14.5303 10.5303L19.25 5.81066V8C19.25 8.41421 19.5858 8.75 20 8.75C20.4142 8.75 20.75 8.41421 20.75 8V4C20.75 3.80806 20.6768 3.61612 20.5303 3.46967C20.4584 3.39776 20.3755 3.34351 20.2871 3.30691C20.1987 3.27024 20.1017 3.25 20 3.25H16ZM4 15.25C4.41421 15.25 4.75 15.5858 4.75 16V18.1893L9.46967 13.4697C9.76256 13.1768 10.2374 13.1768 10.5303 13.4697C10.8232 13.7626 10.8232 14.2374 10.5303 14.5303L5.81066 19.25H8C8.41421 19.25 8.75 19.5858 8.75 20C8.75 20.4142 8.41421 20.75 8 20.75H4C3.80806 20.75 3.61612 20.6768 3.46967 20.5303C3.39776 20.4584 3.34351 20.3755 3.30691 20.2871C3.27024 20.1987 3.25 20.1017 3.25 20V16C3.25 15.5858 3.58579 15.25 4 15.25ZM20.75 16V20C20.75 20.1017 20.7298 20.1987 20.6931 20.2871C20.6565 20.3755 20.6022 20.4584 20.5303 20.5303C20.4584 20.6022 20.3755 20.6565 20.2871 20.6931C20.2099 20.7251 20.1262 20.7446 20.0386 20.749C20.0258 20.7497 20.0129 20.75 20 20.75H16C15.5858 20.75 15.25 20.4142 15.25 20C15.25 19.5858 15.5858 19.25 16 19.25H18.1893L13.4697 14.5303C13.1768 14.2374 13.1768 13.7626 13.4697 13.4697C13.7626 13.1768 14.2374 13.1768 14.5303 13.4697L19.25 18.1893V16C19.25 15.5858 19.5858 15.25 20 15.25C20.4142 15.25 20.75 15.5858 20.75 16ZM3.71291 3.30691C3.80134 3.27024 3.89831 3.25 4 3.25H8C8.41421 3.25 8.75 3.58579 8.75 4C8.75 4.41421 8.41421 4.75 8 4.75H5.81066L10.5303 9.46967C10.8232 9.76256 10.8232 10.2374 10.5303 10.5303C10.2374 10.8232 9.76256 10.8232 9.46967 10.5303L4.75 5.81066V8C4.75 8.41421 4.41421 8.75 4 8.75C3.58579 8.75 3.25 8.41421 3.25 8V4C3.25 3.7937 3.33329 3.60686 3.46808 3.47126C3.46861 3.47073 3.46914 3.4702 3.46967 3.46967C3.4702 3.46914 3.47073 3.46861 3.47126 3.46808C3.5428 3.39696 3.62511 3.34324 3.71291 3.30691Z"
4400 }));
4401 });
4402 var _default = ExpandIcon;
4403 exports["default"] = _default;
4404
4405 /***/ }),
4406
4407 /***/ "../modules/ai/assets/js/editor/icons/redo-icon.js":
4408 /*!*********************************************************!*\
4409 !*** ../modules/ai/assets/js/editor/icons/redo-icon.js ***!
4410 \*********************************************************/
4411 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4412
4413 "use strict";
4414
4415
4416 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4417 Object.defineProperty(exports, "__esModule", ({
4418 value: true
4419 }));
4420 exports["default"] = void 0;
4421 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4422 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4423 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4424 var RedoIcon = _react.default.forwardRef(function (props, ref) {
4425 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4426 viewBox: "0 0 24 24"
4427 }, props, {
4428 ref: ref
4429 }), /*#__PURE__*/_react.default.createElement("path", {
4430 d: "M15.5303 5.46967C15.2374 5.17678 14.7626 5.17678 14.4697 5.46967C14.1768 5.76256 14.1768 6.23744 14.4697 6.53033L17.1893 9.25H8C6.74022 9.25 5.53204 9.75044 4.64124 10.6412C3.75044 11.532 3.25 12.7402 3.25 14C3.25 15.2598 3.75044 16.468 4.64124 17.3588C5.53204 18.2496 6.74022 18.75 8 18.75H9C9.41421 18.75 9.75 18.4142 9.75 18C9.75 17.5858 9.41421 17.25 9 17.25H8C7.13805 17.25 6.3114 16.9076 5.7019 16.2981C5.09241 15.6886 4.75 14.862 4.75 14C4.75 13.138 5.09241 12.3114 5.7019 11.7019C6.3114 11.0924 7.13805 10.75 8 10.75H17.1893L14.4697 13.4697C14.1768 13.7626 14.1768 14.2374 14.4697 14.5303C14.7626 14.8232 15.2374 14.8232 15.5303 14.5303L19.5303 10.5303C19.6768 10.3839 19.75 10.1919 19.75 10C19.75 9.89831 19.7298 9.80134 19.6931 9.71291C19.6565 9.62445 19.6022 9.54158 19.5303 9.46967L15.5303 5.46967Z"
4431 }));
4432 });
4433 var _default = RedoIcon;
4434 exports["default"] = _default;
4435
4436 /***/ }),
4437
4438 /***/ "../modules/ai/assets/js/editor/icons/refresh-icon.js":
4439 /*!************************************************************!*\
4440 !*** ../modules/ai/assets/js/editor/icons/refresh-icon.js ***!
4441 \************************************************************/
4442 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4443
4444 "use strict";
4445
4446
4447 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4448 Object.defineProperty(exports, "__esModule", ({
4449 value: true
4450 }));
4451 exports["default"] = void 0;
4452 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4453 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4454 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4455 var RefreshIcon = _react.default.forwardRef(function (props, ref) {
4456 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4457 viewBox: "0 0 24 24"
4458 }, props, {
4459 ref: ref
4460 }), /*#__PURE__*/_react.default.createElement("path", {
4461 fillRule: "evenodd",
4462 clipRule: "evenodd",
4463 d: "M7.55012 4.45178C9.23098 3.48072 11.1845 3.08925 13.1097 3.33767C15.035 3.58609 16.8251 4.46061 18.2045 5.82653C19.5838 7.19245 20.4757 8.97399 20.743 10.8967C20.8 11.307 20.5136 11.6858 20.1033 11.7428C19.6931 11.7998 19.3142 11.5135 19.2572 11.1032C19.0353 9.50635 18.2945 8.02677 17.149 6.89236C16.0035 5.75795 14.5167 5.03165 12.9178 4.82534C11.3189 4.61902 9.69644 4.94414 8.30047 5.75061C7.24361 6.36117 6.36093 7.22198 5.72541 8.24995H8.00009C8.41431 8.24995 8.75009 8.58574 8.75009 8.99995C8.75009 9.41417 8.41431 9.74995 8.00009 9.74995H4.51686C4.5055 9.75021 4.49412 9.75021 4.48272 9.74995H4.00009C3.58588 9.74995 3.25009 9.41417 3.25009 8.99995V4.99995C3.25009 4.58574 3.58588 4.24995 4.00009 4.24995C4.41431 4.24995 4.75009 4.58574 4.75009 4.99995V7.00691C5.48358 5.96916 6.43655 5.0951 7.55012 4.45178Z"
4464 }), /*#__PURE__*/_react.default.createElement("path", {
4465 fillRule: "evenodd",
4466 clipRule: "evenodd",
4467 d: "M3.89686 12.2571C4.30713 12.2001 4.68594 12.4864 4.74295 12.8967C4.96487 14.4936 5.70565 15.9731 6.85119 17.1075C7.99673 18.242 9.48347 18.9683 11.0824 19.1746C12.6813 19.3809 14.3037 19.0558 15.6997 18.2493C16.7566 17.6387 17.6393 16.7779 18.2748 15.75H16.0001C15.5859 15.75 15.2501 15.4142 15.2501 15C15.2501 14.5857 15.5859 14.25 16.0001 14.25H19.4833C19.4947 14.2497 19.5061 14.2497 19.5175 14.25H20.0001C20.4143 14.25 20.7501 14.5857 20.7501 15V19C20.7501 19.4142 20.4143 19.75 20.0001 19.75C19.5859 19.75 19.2501 19.4142 19.2501 19V16.993C18.5166 18.0307 17.5636 18.9048 16.4501 19.5481C14.7692 20.5192 12.8157 20.9107 10.8904 20.6622C8.9652 20.4138 7.17504 19.5393 5.79572 18.1734C4.4164 16.8074 3.52443 15.0259 3.25723 13.1032C3.20022 12.6929 3.48658 12.3141 3.89686 12.2571Z"
4468 }));
4469 });
4470 var _default = RefreshIcon;
4471 exports["default"] = _default;
4472
4473 /***/ }),
4474
4475 /***/ "../modules/ai/assets/js/editor/icons/remove-bg.js":
4476 /*!*********************************************************!*\
4477 !*** ../modules/ai/assets/js/editor/icons/remove-bg.js ***!
4478 \*********************************************************/
4479 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4480
4481 "use strict";
4482
4483
4484 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4485 Object.defineProperty(exports, "__esModule", ({
4486 value: true
4487 }));
4488 exports["default"] = void 0;
4489 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4490 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4491 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4492 var RemoveBackgroundIcon = _react.default.forwardRef(function (props, ref) {
4493 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4494 viewBox: "0 0 16 16"
4495 }, props, {
4496 ref: ref
4497 }), /*#__PURE__*/_react.default.createElement("path", {
4498 d: "M5.74996 2.50038C5.74996 2.2242 5.52607 2.00031 5.24989 2.00031C4.9737 2.00031 4.74981 2.2242 4.74981 2.50038V2.50705C4.74981 2.78323 4.9737 3.00712 5.24989 3.00712C5.52607 3.00712 5.74996 2.78323 5.74996 2.50705V2.50038Z"
4499 }), /*#__PURE__*/_react.default.createElement("path", {
4500 d: "M7.9997 2.00031C8.27588 2.00031 8.49978 2.2242 8.49978 2.50038V2.50705C8.49978 2.78323 8.27588 3.00712 7.9997 3.00712C7.72352 3.00712 7.49963 2.78323 7.49963 2.50705V2.50038C7.49963 2.2242 7.72352 2.00031 7.9997 2.00031Z"
4501 }), /*#__PURE__*/_react.default.createElement("path", {
4502 d: "M11.2496 2.50038C11.2496 2.2242 11.0257 2.00031 10.7495 2.00031C10.4733 2.00031 10.2494 2.2242 10.2494 2.50038V2.50705C10.2494 2.78323 10.4733 3.00712 10.7495 3.00712C11.0257 3.00712 11.2496 2.78323 11.2496 2.50705V2.50038Z"
4503 }), /*#__PURE__*/_react.default.createElement("path", {
4504 d: "M13.4993 2.00031C13.7755 2.00031 13.9994 2.2242 13.9994 2.50038V2.50705C13.9994 2.78323 13.7755 3.00712 13.4993 3.00712C13.2231 3.00712 12.9993 2.78323 12.9993 2.50705V2.50038C12.9993 2.2242 13.2231 2.00031 13.4993 2.00031Z"
4505 }), /*#__PURE__*/_react.default.createElement("path", {
4506 d: "M13.9994 5.25019C13.9994 4.97401 13.7755 4.75012 13.4993 4.75012C13.2231 4.75012 12.9993 4.97401 12.9993 5.25019V5.25686C12.9993 5.53304 13.2231 5.75694 13.4993 5.75694C13.7755 5.75694 13.9994 5.53304 13.9994 5.25686V5.25019Z"
4507 }), /*#__PURE__*/_react.default.createElement("path", {
4508 d: "M13.9994 8.00001C13.9994 7.72382 13.7755 7.49993 13.4993 7.49993C13.2231 7.49993 12.9993 7.72382 12.9993 8.00001V8.00667C12.9993 8.28286 13.2231 8.50675 13.4993 8.50675C13.7755 8.50675 13.9994 8.28286 13.9994 8.00667V8.00001Z"
4509 }), /*#__PURE__*/_react.default.createElement("path", {
4510 d: "M2.50007 7.49993C2.77626 7.49993 3.00015 7.72382 3.00015 8.00001V8.00667C3.00015 8.28286 2.77626 8.50675 2.50007 8.50675C2.22389 8.50675 2 8.28286 2 8.00667V8.00001C2 7.72382 2.22389 7.49993 2.50007 7.49993Z"
4511 }), /*#__PURE__*/_react.default.createElement("path", {
4512 d: "M3.00015 5.25019C3.00015 4.97401 2.77626 4.75012 2.50007 4.75012C2.22389 4.75012 2 4.97401 2 5.25019V5.25686C2 5.53304 2.22389 5.75694 2.50007 5.75694C2.77626 5.75694 3.00015 5.53304 3.00015 5.25686V5.25019Z"
4513 }), /*#__PURE__*/_react.default.createElement("path", {
4514 d: "M2.50007 2.00031C2.77626 2.00031 3.00015 2.2242 3.00015 2.50038V2.50705C3.00015 2.78323 2.77626 3.00712 2.50007 3.00712C2.22389 3.00712 2 2.78323 2 2.50705V2.50038C2 2.2242 2.22389 2.00031 2.50007 2.00031Z"
4515 }), /*#__PURE__*/_react.default.createElement("path", {
4516 d: "M9.37461 7.31255C9.94411 7.31255 10.4058 6.85088 10.4058 6.28137C10.4058 5.71187 9.94411 5.25019 9.37461 5.25019C8.8051 5.25019 8.34343 5.71187 8.34343 6.28137C8.34343 6.85088 8.8051 7.31255 9.37461 7.31255Z"
4517 }), /*#__PURE__*/_react.default.createElement("path", {
4518 d: "M9.37461 9.21061L7.6724 7.44357L7.66567 7.43672C7.27331 7.04478 6.79598 6.81248 6.28107 6.81248C5.76615 6.81248 5.28883 7.04478 4.89647 7.43672L4.88973 7.44358L2.13992 10.2982C2.05015 10.3913 2 10.5157 2 10.6451V13.4996C2 13.7758 2.22389 13.9997 2.50007 13.9997H13.4993C13.7755 13.9997 13.9994 13.7758 13.9994 13.4996V10.6451C13.9994 10.6365 13.9992 10.6279 13.9988 10.6194C13.9958 10.562 13.9833 10.5072 13.9627 10.4566C13.9409 10.403 13.9093 10.3523 13.8681 10.3073C13.8651 10.304 13.8621 10.3008 13.859 10.2976L12.4846 8.87085L12.4778 8.86399C12.0855 8.47205 11.6082 8.23975 11.0932 8.23975C10.5783 8.23975 10.101 8.47205 9.70864 8.86399L9.70191 8.87084L9.37461 9.21061ZM5.60649 8.14113L3.00015 10.8468V12.9996H12.9993V10.8468L11.7678 9.5684C11.5234 9.32549 11.2897 9.2399 11.0932 9.2399C10.8968 9.2399 10.6631 9.32549 10.4187 9.5684L10.069 9.93142L11.1097 11.0118C11.3013 11.2107 11.2954 11.5272 11.0965 11.7188C10.8975 11.9104 10.581 11.9045 10.3894 11.7056L9.01604 10.28C9.01482 10.2787 9.01361 10.2775 9.01241 10.2762L6.95564 8.14113C6.7112 7.89822 6.4775 7.81263 6.28107 7.81263C6.08463 7.81263 5.85094 7.89822 5.60649 8.14113Z"
4519 }));
4520 });
4521 var _default = RemoveBackgroundIcon;
4522 exports["default"] = _default;
4523
4524 /***/ }),
4525
4526 /***/ "../modules/ai/assets/js/editor/icons/replace-bg.js":
4527 /*!**********************************************************!*\
4528 !*** ../modules/ai/assets/js/editor/icons/replace-bg.js ***!
4529 \**********************************************************/
4530 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4531
4532 "use strict";
4533
4534
4535 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4536 Object.defineProperty(exports, "__esModule", ({
4537 value: true
4538 }));
4539 exports["default"] = void 0;
4540 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4541 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4542 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4543 var ReplaceBackgroundIcon = _react.default.forwardRef(function (props, ref) {
4544 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4545 viewBox: "0 0 16 16"
4546 }, props, {
4547 ref: ref
4548 }), /*#__PURE__*/_react.default.createElement("path", {
4549 d: "M4.35355 1.64645C4.54882 1.84171 4.54882 2.15829 4.35355 2.35355L2.35355 4.35355C2.15829 4.54882 1.84171 4.54882 1.64645 4.35355C1.45118 4.15829 1.45118 3.84171 1.64645 3.64645L3.64645 1.64645C3.84171 1.45118 4.15829 1.45118 4.35355 1.64645Z"
4550 }), /*#__PURE__*/_react.default.createElement("path", {
4551 d: "M7.68689 1.64645C7.88215 1.84171 7.88215 2.15829 7.68689 2.35355L2.35355 7.68689C2.15829 7.88215 1.84171 7.88215 1.64645 7.68689C1.45118 7.49162 1.45118 7.17504 1.64645 6.97978L6.97978 1.64645C7.17504 1.45118 7.49162 1.45118 7.68689 1.64645Z"
4552 }), /*#__PURE__*/_react.default.createElement("path", {
4553 d: "M11.0202 1.64645C11.2155 1.84171 11.2155 2.15829 11.0202 2.35355L6.68689 6.68689C6.49162 6.88215 6.17504 6.88215 5.97978 6.68689C5.78452 6.49162 5.78452 6.17504 5.97978 5.97978L10.3131 1.64645C10.5084 1.45118 10.825 1.45118 11.0202 1.64645Z"
4554 }), /*#__PURE__*/_react.default.createElement("path", {
4555 d: "M14.3536 1.64645C14.5488 1.84171 14.5488 2.15829 14.3536 2.35355L11.0202 5.68689C10.825 5.88215 10.5084 5.88215 10.3131 5.68689C10.1179 5.49162 10.1179 5.17504 10.3131 4.97978L13.6464 1.64645C13.8417 1.45118 14.1583 1.45118 14.3536 1.64645Z"
4556 }), /*#__PURE__*/_react.default.createElement("path", {
4557 d: "M14.3536 4.97978C14.5488 5.17504 14.5488 5.49162 14.3536 5.68689L12.0202 8.02022C11.825 8.21548 11.5084 8.21548 11.3131 8.02022C11.1179 7.82496 11.1179 7.50838 11.3131 7.31311L13.6464 4.97978C13.8417 4.78452 14.1583 4.78452 14.3536 4.97978Z"
4558 }), /*#__PURE__*/_react.default.createElement("path", {
4559 d: "M14.3536 8.31311C14.5488 8.50838 14.5488 8.82496 14.3536 9.02022L14.0202 9.35355C13.825 9.54882 13.5084 9.54882 13.3131 9.35355C13.1179 9.15829 13.1179 8.84171 13.3131 8.64645L13.6464 8.31311C13.8417 8.11785 14.1583 8.11785 14.3536 8.31311Z"
4560 }), /*#__PURE__*/_react.default.createElement("path", {
4561 d: "M10.3333 7C10.3333 7.55228 9.88562 8 9.33333 8C8.78105 8 8.33333 7.55228 8.33333 7C8.33333 6.44772 8.78105 6 9.33333 6C9.88562 6 10.3333 6.44772 10.3333 7Z"
4562 }), /*#__PURE__*/_react.default.createElement("path", {
4563 d: "M6.33333 8.5C6.14679 8.5 5.92267 8.58153 5.6867 8.81725C5.67587 8.82806 5.66455 8.83838 5.65278 8.84816L2.5 11.4665V13.5H13.5V11.2318C13.5 10.9556 13.7239 10.7318 14 10.7318C14.2761 10.7318 14.5 10.9556 14.5 11.2318V14C14.5 14.2761 14.2761 14.5 14 14.5H2C1.72386 14.5 1.5 14.2761 1.5 14V11.2318C1.5 11.0831 1.56617 10.9421 1.68056 10.8471L4.99717 8.09274C5.37661 7.72073 5.83674 7.5 6.33333 7.5C6.83746 7.5 7.304 7.72747 7.6867 8.10976L7.69343 8.11662L11.0268 11.5769C11.2183 11.7758 11.2124 12.0923 11.0136 12.2839C10.8147 12.4755 10.4981 12.4696 10.3066 12.2707L6.97679 8.81408C6.74199 8.5808 6.51904 8.5 6.33333 8.5Z"
4564 }), /*#__PURE__*/_react.default.createElement("path", {
4565 d: "M10.3564 10.1984L9.69343 10.8866C9.50185 11.0854 9.18532 11.0914 8.98645 10.8998C8.78757 10.7082 8.78166 10.3917 8.97324 10.1928L9.6399 9.50073L9.64663 9.49387C10.4992 8.64223 11.843 8.83788 12.6387 9.45172C12.6435 9.45538 12.6482 9.45913 12.6528 9.46297L14.3194 10.8471C14.5319 11.0235 14.5611 11.3388 14.3846 11.5512C14.2082 11.7636 13.893 11.7928 13.6806 11.6164L12.0213 10.2384C11.4855 9.82976 10.7405 9.81862 10.3564 10.1984Z"
4566 }));
4567 });
4568 var _default = ReplaceBackgroundIcon;
4569 exports["default"] = _default;
4570
4571 /***/ }),
4572
4573 /***/ "../modules/ai/assets/js/editor/icons/restore-icon.js":
4574 /*!************************************************************!*\
4575 !*** ../modules/ai/assets/js/editor/icons/restore-icon.js ***!
4576 \************************************************************/
4577 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4578
4579 "use strict";
4580
4581
4582 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4583 Object.defineProperty(exports, "__esModule", ({
4584 value: true
4585 }));
4586 exports["default"] = void 0;
4587 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4588 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4589 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4590 var RestoreIcon = _react.default.forwardRef(function (props, ref) {
4591 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4592 viewBox: "0 0 24 24"
4593 }, props, {
4594 ref: ref
4595 }), /*#__PURE__*/_react.default.createElement("path", {
4596 fillRule: "evenodd",
4597 d: "M11.913 3.22a8.781 8.781 0 0 1 3.367.634.75.75 0 1 1-.56 1.392A7.281 7.281 0 0 0 8.25 18.24V15a.75.75 0 0 1 1.5 0v4.433a.73.73 0 0 1 0 .034V20a.75.75 0 0 1-.75.75H4a.75.75 0 0 1 0-1.5h3.045a8.782 8.782 0 0 1 4.868-16.03ZM18.37 6.41a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-1.5 0v-.01a.75.75 0 0 1 .75-.75ZM13 19.19a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-1.5 0v-.01a.75.75 0 0 1 .75-.75ZM16.84 17.62a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-1.5 0v-.01a.75.75 0 0 1 .75-.75ZM19.37 14.35a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-1.5 0v-.01a.75.75 0 0 1 .75-.75ZM19.94 10.25a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-1.5 0V11a.75.75 0 0 1 .75-.75Z",
4598 clipRule: "evenodd"
4599 }));
4600 });
4601 var _default = RestoreIcon;
4602 exports["default"] = _default;
4603
4604 /***/ }),
4605
4606 /***/ "../modules/ai/assets/js/editor/icons/text-icon.js":
4607 /*!*********************************************************!*\
4608 !*** ../modules/ai/assets/js/editor/icons/text-icon.js ***!
4609 \*********************************************************/
4610 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4611
4612 "use strict";
4613
4614
4615 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4616 Object.defineProperty(exports, "__esModule", ({
4617 value: true
4618 }));
4619 exports["default"] = void 0;
4620 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4621 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4622 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4623 var TextIcon = _react.default.forwardRef(function (props, ref) {
4624 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4625 viewBox: "0 0 24 24"
4626 }, props, {
4627 ref: ref
4628 }), /*#__PURE__*/_react.default.createElement("path", {
4629 fillRule: "evenodd",
4630 d: "M4.25 5A.75.75 0 0 1 5 4.25h14a.75.75 0 0 1 .75.75v2a.75.75 0 0 1-1.5 0V5.75H5.75V7a.75.75 0 0 1-1.5 0V5Z",
4631 clipRule: "evenodd"
4632 }), /*#__PURE__*/_react.default.createElement("path", {
4633 fillRule: "evenodd",
4634 d: "M12 4.25a.75.75 0 0 1 .75.75v14a.75.75 0 0 1-1.5 0V5a.75.75 0 0 1 .75-.75Z",
4635 clipRule: "evenodd"
4636 }), /*#__PURE__*/_react.default.createElement("path", {
4637 fillRule: "evenodd",
4638 d: "M9.25 19a.75.75 0 0 1 .75-.75h4a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1-.75-.75Z",
4639 clipRule: "evenodd"
4640 }));
4641 });
4642 var _default = TextIcon;
4643 exports["default"] = _default;
4644
4645 /***/ }),
4646
4647 /***/ "../modules/ai/assets/js/editor/icons/undo-icon.js":
4648 /*!*********************************************************!*\
4649 !*** ../modules/ai/assets/js/editor/icons/undo-icon.js ***!
4650 \*********************************************************/
4651 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4652
4653 "use strict";
4654
4655
4656 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4657 Object.defineProperty(exports, "__esModule", ({
4658 value: true
4659 }));
4660 exports["default"] = void 0;
4661 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4662 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4663 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4664 var UndoIcon = _react.default.forwardRef(function (props, ref) {
4665 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4666 viewBox: "0 0 24 24"
4667 }, props, {
4668 ref: ref
4669 }), /*#__PURE__*/_react.default.createElement("path", {
4670 d: "M9.53033 6.53033C9.82322 6.23744 9.82322 5.76256 9.53033 5.46967C9.23744 5.17678 8.76256 5.17678 8.46967 5.46967L4.46967 9.46967C4.39776 9.54158 4.34351 9.62445 4.30691 9.71291C4.27024 9.80134 4.25 9.89831 4.25 10C4.25 10.1017 4.27024 10.1987 4.30691 10.2871C4.34351 10.3755 4.39776 10.4584 4.46967 10.5303L8.46967 14.5303C8.76256 14.8232 9.23744 14.8232 9.53033 14.5303C9.82322 14.2374 9.82322 13.7626 9.53033 13.4697L6.81066 10.75H16C16.862 10.75 17.6886 11.0924 18.2981 11.7019C18.9076 12.3114 19.25 13.138 19.25 14C19.25 14.862 18.9076 15.6886 18.2981 16.2981C17.6886 16.9076 16.862 17.25 16 17.25H15C14.5858 17.25 14.25 17.5858 14.25 18C14.25 18.4142 14.5858 18.75 15 18.75H16C17.2598 18.75 18.468 18.2496 19.3588 17.3588C20.2496 16.468 20.75 15.2598 20.75 14C20.75 12.7402 20.2496 11.532 19.3588 10.6412C18.468 9.75044 17.2598 9.25 16 9.25H6.81066L9.53033 6.53033Z"
4671 }));
4672 });
4673 var _default = UndoIcon;
4674 exports["default"] = _default;
4675
4676 /***/ }),
4677
4678 /***/ "../modules/ai/assets/js/editor/icons/wand-icon.js":
4679 /*!*********************************************************!*\
4680 !*** ../modules/ai/assets/js/editor/icons/wand-icon.js ***!
4681 \*********************************************************/
4682 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4683
4684 "use strict";
4685
4686
4687 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4688 Object.defineProperty(exports, "__esModule", ({
4689 value: true
4690 }));
4691 exports["default"] = void 0;
4692 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4693 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4694 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4695 var WandIcon = _react.default.forwardRef(function (props, ref) {
4696 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4697 viewBox: "0 0 24 24"
4698 }, props, {
4699 ref: ref
4700 }), /*#__PURE__*/_react.default.createElement("path", {
4701 fillRule: "evenodd",
4702 clipRule: "evenodd",
4703 d: "M9 2.25C9.41421 2.25 9.75 2.58579 9.75 3C9.75 3.33152 9.8817 3.64946 10.1161 3.88388C10.3505 4.1183 10.6685 4.25 11 4.25C11.4142 4.25 11.75 4.58579 11.75 5C11.75 5.41421 11.4142 5.75 11 5.75C10.6685 5.75 10.3505 5.8817 10.1161 6.11612C9.8817 6.35054 9.75 6.66848 9.75 7C9.75 7.41421 9.41421 7.75 9 7.75C8.58579 7.75 8.25 7.41421 8.25 7C8.25 6.66848 8.1183 6.35054 7.88388 6.11612C7.64946 5.8817 7.33152 5.75 7 5.75C6.58579 5.75 6.25 5.41421 6.25 5C6.25 4.58579 6.58579 4.25 7 4.25C7.33152 4.25 7.64946 4.1183 7.88388 3.88388C8.1183 3.64946 8.25 3.33152 8.25 3C8.25 2.58579 8.58579 2.25 9 2.25ZM9 4.88746C8.98182 4.90673 8.96333 4.92576 8.94454 4.94454C8.92576 4.96333 8.90673 4.98182 8.88746 5C8.90673 5.01818 8.92576 5.03667 8.94454 5.05546C8.96333 5.07424 8.98182 5.09327 9 5.11254C9.01818 5.09327 9.03667 5.07424 9.05546 5.05546C9.07424 5.03667 9.09327 5.01818 9.11254 5C9.09327 4.98182 9.07424 4.96333 9.05546 4.94454C9.03667 4.92576 9.01818 4.90673 9 4.88746Z"
4704 }), /*#__PURE__*/_react.default.createElement("path", {
4705 fillRule: "evenodd",
4706 clipRule: "evenodd",
4707 d: "M18.5303 2.46967C18.2374 2.17678 17.7626 2.17678 17.4697 2.46967L2.46967 17.4697C2.17678 17.7626 2.17678 18.2374 2.46967 18.5303L5.46967 21.5303C5.76256 21.8232 6.23744 21.8232 6.53033 21.5303L21.5303 6.53033C21.8232 6.23744 21.8232 5.76256 21.5303 5.46967L18.5303 2.46967ZM18 7.93934L19.9393 6L18 4.06066L16.0607 6L18 7.93934ZM15 7.06066L16.9393 9L6 19.9393L4.06066 18L15 7.06066Z"
4708 }), /*#__PURE__*/_react.default.createElement("path", {
4709 fillRule: "evenodd",
4710 clipRule: "evenodd",
4711 d: "M19.75 13C19.75 12.5858 19.4142 12.25 19 12.25C18.5858 12.25 18.25 12.5858 18.25 13C18.25 13.3315 18.1183 13.6495 17.8839 13.8839C17.6495 14.1183 17.3315 14.25 17 14.25C16.5858 14.25 16.25 14.5858 16.25 15C16.25 15.4142 16.5858 15.75 17 15.75C17.3315 15.75 17.6495 15.8817 17.8839 16.1161C18.1183 16.3505 18.25 16.6685 18.25 17C18.25 17.4142 18.5858 17.75 19 17.75C19.4142 17.75 19.75 17.4142 19.75 17C19.75 16.6685 19.8817 16.3505 20.1161 16.1161C20.3505 15.8817 20.6685 15.75 21 15.75C21.4142 15.75 21.75 15.4142 21.75 15C21.75 14.5858 21.4142 14.25 21 14.25C20.6685 14.25 20.3505 14.1183 20.1161 13.8839C19.8817 13.6495 19.75 13.3315 19.75 13ZM18.9445 14.9445C18.9633 14.9258 18.9818 14.9067 19 14.8875C19.0182 14.9067 19.0367 14.9258 19.0555 14.9445C19.0742 14.9633 19.0933 14.9818 19.1125 15C19.0933 15.0182 19.0742 15.0367 19.0555 15.0555C19.0367 15.0742 19.0182 15.0933 19 15.1125C18.9818 15.0933 18.9633 15.0742 18.9445 15.0555C18.9258 15.0367 18.9067 15.0182 18.8875 15C18.9067 14.9818 18.9258 14.9633 18.9445 14.9445Z"
4712 }));
4713 });
4714 var _default = WandIcon;
4715 exports["default"] = _default;
4716
4717 /***/ }),
4718
4719 /***/ "../modules/ai/assets/js/editor/icons/zoom-in-icon.js":
4720 /*!************************************************************!*\
4721 !*** ../modules/ai/assets/js/editor/icons/zoom-in-icon.js ***!
4722 \************************************************************/
4723 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4724
4725 "use strict";
4726
4727
4728 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4729 Object.defineProperty(exports, "__esModule", ({
4730 value: true
4731 }));
4732 exports["default"] = void 0;
4733 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4734 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4735 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4736 var ZoomInIcon = _react.default.forwardRef(function (props, ref) {
4737 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4738 viewBox: "0 0 24 24"
4739 }, props, {
4740 ref: ref
4741 }), /*#__PURE__*/_react.default.createElement("path", {
4742 fillRule: "evenodd",
4743 clipRule: "evenodd",
4744 d: "M10 3.75C6.54822 3.75 3.75 6.54822 3.75 10C3.75 13.4518 6.54822 16.25 10 16.25C13.4518 16.25 16.25 13.4518 16.25 10C16.25 6.54822 13.4518 3.75 10 3.75ZM2.25 10C2.25 5.71979 5.71979 2.25 10 2.25C14.2802 2.25 17.75 5.71979 17.75 10C17.75 14.2802 14.2802 17.75 10 17.75C5.71979 17.75 2.25 14.2802 2.25 10Z"
4745 }), /*#__PURE__*/_react.default.createElement("path", {
4746 fillRule: "evenodd",
4747 clipRule: "evenodd",
4748 d: "M6.25 10C6.25 9.58579 6.58579 9.25 7 9.25H13C13.4142 9.25 13.75 9.58579 13.75 10C13.75 10.4142 13.4142 10.75 13 10.75H7C6.58579 10.75 6.25 10.4142 6.25 10Z"
4749 }), /*#__PURE__*/_react.default.createElement("path", {
4750 fillRule: "evenodd",
4751 clipRule: "evenodd",
4752 d: "M10 6.25C10.4142 6.25 10.75 6.58579 10.75 7V13C10.75 13.4142 10.4142 13.75 10 13.75C9.58579 13.75 9.25 13.4142 9.25 13V7C9.25 6.58579 9.58579 6.25 10 6.25Z"
4753 }), /*#__PURE__*/_react.default.createElement("path", {
4754 fillRule: "evenodd",
4755 clipRule: "evenodd",
4756 d: "M14.4697 14.4697C14.7626 14.1768 15.2374 14.1768 15.5303 14.4697L21.5303 20.4697C21.8232 20.7626 21.8232 21.2374 21.5303 21.5303C21.2374 21.8232 20.7626 21.8232 20.4697 21.5303L14.4697 15.5303C14.1768 15.2374 14.1768 14.7626 14.4697 14.4697Z"
4757 }));
4758 });
4759 var _default = ZoomInIcon;
4760 exports["default"] = _default;
4761
4762 /***/ }),
4763
4764 /***/ "../modules/ai/assets/js/editor/page-content.js":
4765 /*!******************************************************!*\
4766 !*** ../modules/ai/assets/js/editor/page-content.js ***!
4767 \******************************************************/
4768 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4769
4770 "use strict";
4771
4772
4773 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4774 Object.defineProperty(exports, "__esModule", ({
4775 value: true
4776 }));
4777 exports["default"] = void 0;
4778 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4779 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4780 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4781 var _formText = _interopRequireDefault(__webpack_require__(/*! ./pages/form-text */ "../modules/ai/assets/js/editor/pages/form-text/index.js"));
4782 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
4783 var _formCode = _interopRequireDefault(__webpack_require__(/*! ./pages/form-code */ "../modules/ai/assets/js/editor/pages/form-code/index.js"));
4784 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
4785 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
4786 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
4787 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
4788 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
4789 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
4790 var _formMedia = _interopRequireDefault(__webpack_require__(/*! ./pages/form-media */ "../modules/ai/assets/js/editor/pages/form-media/index.js"));
4791 var _promptHistory = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-history */ "../modules/ai/assets/js/editor/components/prompt-history/index.js"));
4792 var _historyTypes = __webpack_require__(/*! ./components/prompt-history/history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
4793 var _promptHistoryActionContext = __webpack_require__(/*! ./components/prompt-history/context/prompt-history-action-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js");
4794 var _promptHistoryContext = __webpack_require__(/*! ./components/prompt-history/context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
4795 var _useUpgradeMessage2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
4796 var _usageMessages = _interopRequireDefault(__webpack_require__(/*! ./components/usage-messages */ "../modules/ai/assets/js/editor/components/usage-messages.js"));
4797 var PageContent = function PageContent(_ref) {
4798 var type = _ref.type,
4799 controlType = _ref.controlType,
4800 onClose = _ref.onClose,
4801 onConnect = _ref.onConnect,
4802 getControlValue = _ref.getControlValue,
4803 setControlValue = _ref.setControlValue,
4804 controlView = _ref.controlView,
4805 additionalOptions = _ref.additionalOptions;
4806 var _useUserInfo = (0, _useUserInfo2.default)(),
4807 isLoading = _useUserInfo.isLoading,
4808 isConnected = _useUserInfo.isConnected,
4809 isGetStarted = _useUserInfo.isGetStarted,
4810 connectUrl = _useUserInfo.connectUrl,
4811 fetchData = _useUserInfo.fetchData,
4812 hasSubscription = _useUserInfo.hasSubscription,
4813 credits = _useUserInfo.credits,
4814 usagePercentage = _useUserInfo.usagePercentage;
4815 var _useUpgradeMessage = (0, _useUpgradeMessage2.default)({
4816 usagePercentage: usagePercentage,
4817 hasSubscription: hasSubscription
4818 }),
4819 showBadge = _useUpgradeMessage.showBadge;
4820 var promptDialogStyleProps = {
4821 sx: {
4822 '& .MuiDialog-container': {
4823 alignItems: 'flex-start',
4824 mt: 'media' === type ? '2.5vh' : '18vh'
4825 },
4826 '& .MuiDialogContent-root': {
4827 willChange: 'height',
4828 transition: 'height 300ms ease-in-out',
4829 position: 'relative'
4830 }
4831 },
4832 PaperProps: {
4833 sx: {
4834 m: 0,
4835 maxHeight: 'media' === type ? '95vh' : '76vh',
4836 height: !isLoading && 'media' === type ? '95vh' : 'auto'
4837 }
4838 }
4839 };
4840 var maybeRenderUpgradeChip = function maybeRenderUpgradeChip() {
4841 if (!showBadge) {
4842 return;
4843 }
4844 return /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
4845 hasSubscription: hasSubscription,
4846 usagePercentage: usagePercentage
4847 });
4848 };
4849 if (isLoading) {
4850 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
4851 onClose: onClose
4852 }, promptDialogStyleProps, {
4853 maxWidth: 'media' === type ? 'lg' : 'sm'
4854 }), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
4855 onClose: onClose
4856 }), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
4857 dividers: true
4858 }, /*#__PURE__*/_react.default.createElement(_loader.default, null)));
4859 }
4860 if (!isConnected) {
4861 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
4862 onClose: onClose
4863 }, /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Header, {
4864 onClose: onClose
4865 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
4866 dividers: true
4867 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
4868 connectUrl: connectUrl,
4869 onSuccess: function onSuccess(data) {
4870 onConnect(data);
4871 fetchData();
4872 }
4873 })));
4874 }
4875 if (!isGetStarted) {
4876 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
4877 onClose: onClose
4878 }, /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Header, {
4879 onClose: onClose
4880 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
4881 dividers: true
4882 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
4883 onSuccess: fetchData
4884 })));
4885 }
4886 if ('media' === type) {
4887 return /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
4888 historyType: _historyTypes.HISTORY_TYPES.IMAGE
4889 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_formMedia.default, {
4890 onClose: onClose,
4891 getControlValue: getControlValue,
4892 controlView: controlView,
4893 additionalOptions: additionalOptions,
4894 credits: credits,
4895 maybeRenderUpgradeChip: maybeRenderUpgradeChip,
4896 DialogProps: promptDialogStyleProps,
4897 hasSubscription: hasSubscription,
4898 usagePercentage: usagePercentage
4899 })));
4900 }
4901 if ('code' === type) {
4902 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
4903 onClose: onClose
4904 }, promptDialogStyleProps), /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
4905 historyType: _historyTypes.HISTORY_TYPES.CODE
4906 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
4907 onClose: onClose
4908 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
4909 className: "e-ai-dialog-content",
4910 dividers: true
4911 }, /*#__PURE__*/_react.default.createElement(_formCode.default, {
4912 onClose: onClose,
4913 getControlValue: getControlValue,
4914 setControlValue: setControlValue,
4915 additionalOptions: additionalOptions,
4916 credits: credits,
4917 usagePercentage: usagePercentage
4918 }, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
4919 hasSubscription: hasSubscription,
4920 usagePercentage: usagePercentage,
4921 sx: {
4922 mb: 2
4923 }
4924 }))))));
4925 }
4926 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
4927 onClose: onClose
4928 }, promptDialogStyleProps), /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
4929 historyType: _historyTypes.HISTORY_TYPES.TEXT
4930 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
4931 onClose: onClose
4932 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
4933 className: "e-ai-dialog-content",
4934 dividers: true
4935 }, /*#__PURE__*/_react.default.createElement(_formText.default, {
4936 type: type,
4937 controlType: controlType,
4938 onClose: onClose,
4939 getControlValue: getControlValue,
4940 setControlValue: setControlValue,
4941 additionalOptions: additionalOptions,
4942 credits: credits,
4943 usagePercentage: usagePercentage
4944 }, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
4945 hasSubscription: hasSubscription,
4946 usagePercentage: usagePercentage,
4947 sx: {
4948 mb: 2
4949 }
4950 }))))));
4951 };
4952 PageContent.propTypes = {
4953 type: _propTypes.default.string,
4954 controlType: _propTypes.default.string,
4955 onClose: _propTypes.default.func.isRequired,
4956 onConnect: _propTypes.default.func.isRequired,
4957 getControlValue: _propTypes.default.func.isRequired,
4958 setControlValue: _propTypes.default.func.isRequired,
4959 additionalOptions: _propTypes.default.object,
4960 controlView: _propTypes.default.object
4961 };
4962 var _default = PageContent;
4963 exports["default"] = _default;
4964
4965 /***/ }),
4966
4967 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
4968 /*!*************************************************************!*\
4969 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
4970 \*************************************************************/
4971 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4972
4973 "use strict";
4974
4975
4976 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4977 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4978 Object.defineProperty(exports, "__esModule", ({
4979 value: true
4980 }));
4981 exports["default"] = void 0;
4982 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4983 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4984 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4985 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4986 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
4987 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
4988 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
4989 var Connect = function Connect(_ref) {
4990 var connectUrl = _ref.connectUrl,
4991 onSuccess = _ref.onSuccess;
4992 var approveButtonRef = (0, _react.useRef)();
4993 (0, _react.useEffect)(function () {
4994 // On local dev (as a standalone app), the connect lib is not loaded.
4995 if (!jQuery.fn.elementorConnect) {
4996 return;
4997 }
4998 jQuery(approveButtonRef.current).elementorConnect({
4999 success: function success(_, data) {
5000 return onSuccess(data);
5001 },
5002 error: function error() {
5003 throw new Error('Elementor AI: Failed to connect.');
5004 }
5005 });
5006 }, []);
5007 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5008 alignItems: "center",
5009 gap: 2
5010 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5011 sx: {
5012 color: 'text.primary',
5013 fontSize: '60px',
5014 mb: 1
5015 }
5016 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5017 variant: "h4",
5018 sx: {
5019 color: 'text.primary'
5020 }
5021 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5022 variant: "body2"
5023 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5024 variant: "caption",
5025 sx: {
5026 maxWidth: 520,
5027 textAlign: 'center'
5028 }
5029 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
5030 href: "https://go.elementor.com/ai-terms/",
5031 target: "_blank",
5032 color: "info.main"
5033 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
5034 href: "https://go.elementor.com/ai-privacy-policy/",
5035 target: "_blank",
5036 color: "info.main"
5037 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
5038 ref: approveButtonRef,
5039 href: connectUrl,
5040 variant: "contained",
5041 sx: {
5042 mt: 1,
5043 '&:hover': {
5044 color: 'primary.contrastText'
5045 }
5046 }
5047 }, (0, _i18n.__)('Connect', 'elementor')));
5048 };
5049 Connect.propTypes = {
5050 connectUrl: _propTypes.default.string.isRequired,
5051 onSuccess: _propTypes.default.func.isRequired
5052 };
5053 var _default = Connect;
5054 exports["default"] = _default;
5055
5056 /***/ }),
5057
5058 /***/ "../modules/ai/assets/js/editor/pages/form-code/code-block.js":
5059 /*!********************************************************************!*\
5060 !*** ../modules/ai/assets/js/editor/pages/form-code/code-block.js ***!
5061 \********************************************************************/
5062 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5063
5064 "use strict";
5065
5066
5067 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5068 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5069 Object.defineProperty(exports, "__esModule", ({
5070 value: true
5071 }));
5072 exports["default"] = void 0;
5073 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5074 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5075 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5076 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5077 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5078 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5079 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
5080 var _excluded = ["node", "inline", "children", "defaultValue", "onInsert"];
5081 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
5082 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
5083 var CodeBlock = function CodeBlock(_ref) {
5084 var node = _ref.node,
5085 inline = _ref.inline,
5086 children = _ref.children,
5087 defaultValue = _ref.defaultValue,
5088 onInsert = _ref.onInsert,
5089 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5090 var codeBlockInput = (0, _react.useRef)(null);
5091 if (inline) {
5092 return /*#__PURE__*/_react.default.createElement("code", props);
5093 }
5094 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
5095 sx: {
5096 position: 'relative'
5097 },
5098 dir: "ltr"
5099 }, /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({
5100 fullWidth: true,
5101 ref: codeBlockInput,
5102 defaultValue: children[0],
5103 sx: {
5104 mb: 1
5105 },
5106 helperText: (0, _i18n.__)('Code generated by AI may be inaccurate.', 'elementor')
5107 }, props)), /*#__PURE__*/_react.default.createElement(_ui.Button, {
5108 size: "small",
5109 variant: "contained",
5110 onClick: function onClick() {
5111 return onInsert(defaultValue + '\n' + codeBlockInput.current.value);
5112 },
5113 sx: {
5114 position: 'absolute',
5115 right: '11px /* @noflip */',
5116 bottom: '44px'
5117 }
5118 }, (0, _i18n.__)('Insert', 'elementor')));
5119 };
5120 CodeBlock.propTypes = {
5121 node: _propTypes.default.object,
5122 inline: _propTypes.default.bool,
5123 children: _propTypes.default.arrayOf(_propTypes.default.node).isRequired,
5124 defaultValue: _propTypes.default.string,
5125 onInsert: _propTypes.default.func.isRequired
5126 };
5127 var _default = CodeBlock;
5128 exports["default"] = _default;
5129
5130 /***/ }),
5131
5132 /***/ "../modules/ai/assets/js/editor/pages/form-code/index.js":
5133 /*!***************************************************************!*\
5134 !*** ../modules/ai/assets/js/editor/pages/form-code/index.js ***!
5135 \***************************************************************/
5136 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5137
5138 "use strict";
5139
5140
5141 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5142 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5143 Object.defineProperty(exports, "__esModule", ({
5144 value: true
5145 }));
5146 exports["default"] = void 0;
5147 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5148 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5149 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5150 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5151 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5152 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5153 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5154 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5155 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5156 var _reactMarkdown = _interopRequireDefault(__webpack_require__(/*! react-markdown */ "../node_modules/react-markdown/index.js"));
5157 var _actionsData = __webpack_require__(/*! ../../actions-data */ "../modules/ai/assets/js/editor/actions-data.js");
5158 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
5159 var _promptSearch = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-search */ "../modules/ai/assets/js/editor/components/prompt-search.js"));
5160 var _promptSuggestions = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-suggestions */ "../modules/ai/assets/js/editor/components/prompt-suggestions.js"));
5161 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
5162 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
5163 var _codeBlock = _interopRequireDefault(__webpack_require__(/*! ./code-block */ "../modules/ai/assets/js/editor/pages/form-code/code-block.js"));
5164 var _useCodePrompt2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-code-prompt */ "../modules/ai/assets/js/editor/hooks/use-code-prompt.js"));
5165 var _promptHistoryActionContext = __webpack_require__(/*! ../../components/prompt-history/context/prompt-history-action-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js");
5166 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
5167 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
5168 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
5169 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5170 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5171 var CodeDisplayWrapper = (0, _ui.styled)(_ui.Box)(function () {
5172 return {
5173 '& p': {
5174 mb: '10px',
5175 fontSize: '13px',
5176 lineHeight: '1.5'
5177 },
5178 '& pre': {
5179 position: 'relative'
5180 },
5181 '& textarea': {
5182 fontSize: '13px',
5183 lineHeight: '1.7'
5184 }
5185 };
5186 });
5187 var FormCode = function FormCode(_ref) {
5188 var onClose = _ref.onClose,
5189 getControlValue = _ref.getControlValue,
5190 setControlValue = _ref.setControlValue,
5191 additionalOptions = _ref.additionalOptions,
5192 credits = _ref.credits,
5193 children = _ref.children;
5194 var _useCodePrompt = (0, _useCodePrompt2.default)(_objectSpread(_objectSpread({}, additionalOptions), {}, {
5195 credits: credits
5196 })),
5197 data = _useCodePrompt.data,
5198 isLoading = _useCodePrompt.isLoading,
5199 error = _useCodePrompt.error,
5200 reset = _useCodePrompt.reset,
5201 send = _useCodePrompt.send,
5202 sendUsageData = _useCodePrompt.sendUsageData;
5203 var _useState = (0, _react.useState)(''),
5204 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5205 prompt = _useState2[0],
5206 setPrompt = _useState2[1];
5207 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
5208 type: _promptHistoryActionContext.ACTION_TYPES.REUSE,
5209 handler: function handler(action) {
5210 reset();
5211 setPrompt(action.data);
5212 }
5213 }]);
5214 var lastRun = (0, _react.useRef)(function () {});
5215 var autocompleteItems = _actionsData.codeHtmlAutocomplete;
5216 var promptLibraryLink = '';
5217 if ('css' === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.codeLanguage)) {
5218 autocompleteItems = _actionsData.codeCssAutocomplete;
5219 promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-css/';
5220 } else if (additionalOptions !== null && additionalOptions !== void 0 && additionalOptions.htmlMarkup) {
5221 promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-html/';
5222 } else {
5223 promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-custom-code/';
5224 }
5225 var showSuggestions = !prompt;
5226 var handleSubmit = /*#__PURE__*/function () {
5227 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(event) {
5228 return _regenerator.default.wrap(function _callee$(_context) {
5229 while (1) switch (_context.prev = _context.next) {
5230 case 0:
5231 event.preventDefault();
5232 lastRun.current = function () {
5233 return send(prompt);
5234 };
5235 lastRun.current();
5236 case 3:
5237 case "end":
5238 return _context.stop();
5239 }
5240 }, _callee);
5241 }));
5242 return function handleSubmit(_x) {
5243 return _ref2.apply(this, arguments);
5244 };
5245 }();
5246 var applyPrompt = function applyPrompt(inputText) {
5247 sendUsageData();
5248 setControlValue(inputText);
5249 onClose();
5250 };
5251 if (isLoading) {
5252 return /*#__PURE__*/_react.default.createElement(_loader.default, null);
5253 }
5254 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
5255 error: error,
5256 onRetry: lastRun.current,
5257 sx: {
5258 mb: 2.5
5259 }
5260 }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
5261 component: "form",
5262 onSubmit: handleSubmit
5263 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5264 sx: {
5265 pb: 1.5
5266 }
5267 }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, {
5268 placeholder: (0, _i18n.__)('Describe the code you want to use...', 'elementor'),
5269 name: "prompt",
5270 value: prompt,
5271 color: "secondary",
5272 onChange: function onChange(event) {
5273 return setPrompt(event.target.value);
5274 }
5275 })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, {
5276 suggestions: autocompleteItems,
5277 onSelect: setPrompt
5278 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
5279 libraryLink: promptLibraryLink
5280 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5281 direction: "row",
5282 alignItems: "center",
5283 sx: {
5284 py: 1.5,
5285 mt: 4
5286 }
5287 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5288 direction: "row",
5289 justifyContent: "flex-end",
5290 flexGrow: 1
5291 }, /*#__PURE__*/_react.default.createElement(_generateButton.default, null, (0, _i18n.__)('Generate code', 'elementor'))))), data.result && /*#__PURE__*/_react.default.createElement(CodeDisplayWrapper, null, /*#__PURE__*/_react.default.createElement(_reactMarkdown.default, {
5292 components: {
5293 code: function code(props) {
5294 return /*#__PURE__*/_react.default.createElement(_codeBlock.default, (0, _extends2.default)({}, props, {
5295 defaultValue: getControlValue(),
5296 onInsert: applyPrompt
5297 }));
5298 }
5299 }
5300 }, data.result), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5301 direction: "row",
5302 alignItems: "center",
5303 sx: {
5304 mt: 4
5305 }
5306 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5307 direction: "row",
5308 gap: 1,
5309 justifyContent: "flex-end",
5310 flexGrow: 1
5311 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
5312 size: "small",
5313 color: "secondary",
5314 variant: "text",
5315 onClick: reset
5316 }, (0, _i18n.__)('New prompt', 'elementor'))))));
5317 };
5318 FormCode.propTypes = {
5319 onClose: _propTypes.default.func.isRequired,
5320 getControlValue: _propTypes.default.func.isRequired,
5321 setControlValue: _propTypes.default.func.isRequired,
5322 additionalOptions: _propTypes.default.shape({
5323 codeLanguage: _propTypes.default.string,
5324 htmlMarkup: _propTypes.default.string,
5325 elementId: _propTypes.default.string,
5326 initialCredits: _propTypes.default.number
5327 }),
5328 credits: _propTypes.default.number,
5329 children: _propTypes.default.node
5330 };
5331 var _default = FormCode;
5332 exports["default"] = _default;
5333
5334 /***/ }),
5335
5336 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
5337 /*!**************************************************************************!*\
5338 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
5339 \**************************************************************************/
5340 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5341
5342 "use strict";
5343
5344
5345 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5346 Object.defineProperty(exports, "__esModule", ({
5347 value: true
5348 }));
5349 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
5350 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5351 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5352 var MODE_LAYOUT = 'layout';
5353 exports.MODE_LAYOUT = MODE_LAYOUT;
5354 var MODE_VARIATION = 'variation';
5355 exports.MODE_VARIATION = MODE_VARIATION;
5356 var LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
5357 exports.LAYOUT_APP_MODES = LAYOUT_APP_MODES;
5358 var ConfigContext = _react.default.createContext({});
5359 var useConfig = function useConfig() {
5360 return _react.default.useContext(ConfigContext);
5361 };
5362 exports.useConfig = useConfig;
5363 var ConfigProvider = function ConfigProvider(props) {
5364 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
5365 value: {
5366 mode: props.mode,
5367 attachmentsTypes: props.attachmentsTypes,
5368 onClose: props.onClose,
5369 onConnect: props.onConnect,
5370 onData: props.onData,
5371 onInsert: props.onInsert,
5372 onSelect: props.onSelect,
5373 onGenerate: props.onGenerate,
5374 currentContext: props.currentContext,
5375 hasPro: props.hasPro,
5376 sessionId: props.sessionId,
5377 editorSessionId: props.editorSessionId
5378 }
5379 }, props.children);
5380 };
5381 exports.ConfigProvider = ConfigProvider;
5382 ConfigProvider.propTypes = {
5383 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
5384 children: _propTypes.default.node.isRequired,
5385 attachmentsTypes: _propTypes.default.object.isRequired,
5386 onClose: _propTypes.default.func.isRequired,
5387 onConnect: _propTypes.default.func.isRequired,
5388 onData: _propTypes.default.func.isRequired,
5389 onInsert: _propTypes.default.func.isRequired,
5390 onSelect: _propTypes.default.func.isRequired,
5391 onGenerate: _propTypes.default.func.isRequired,
5392 currentContext: _propTypes.default.object,
5393 hasPro: _propTypes.default.bool,
5394 sessionId: _propTypes.default.string,
5395 editorSessionId: _propTypes.default.string
5396 };
5397 var _default = ConfigContext;
5398 exports["default"] = _default;
5399
5400 /***/ }),
5401
5402 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js":
5403 /*!*********************************************************************************!*\
5404 !*** ../modules/ai/assets/js/editor/pages/form-media/components/back-button.js ***!
5405 \*********************************************************************************/
5406 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5407
5408 "use strict";
5409
5410
5411 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5412 Object.defineProperty(exports, "__esModule", ({
5413 value: true
5414 }));
5415 exports["default"] = void 0;
5416 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5417 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5418 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5419 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5420 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5421 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5422 var _chevronLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-left-icon */ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js"));
5423 var _excluded = ["children"];
5424 var StyledChevronLeftIcon = (0, _ui.withDirection)(_chevronLeftIcon.default);
5425 var BackButton = function BackButton(_ref) {
5426 var children = _ref.children,
5427 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5428 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5429 size: "small",
5430 variant: "text",
5431 color: "secondary",
5432 startIcon: /*#__PURE__*/_react.default.createElement(StyledChevronLeftIcon, null)
5433 }, props), children || (0, _i18n.__)('Back', 'elementor'));
5434 };
5435 BackButton.propTypes = {
5436 children: _propTypes.default.node
5437 };
5438 var _default = BackButton;
5439 exports["default"] = _default;
5440
5441 /***/ }),
5442
5443 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5444 /*!************************************************************************************!*\
5445 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5446 \************************************************************************************/
5447 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5448
5449 "use strict";
5450
5451
5452 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5453 Object.defineProperty(exports, "__esModule", ({
5454 value: true
5455 }));
5456 exports["default"] = void 0;
5457 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5458 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5459 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5460 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5461 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5462 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5463 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5464 var _excluded = ["isLoading"];
5465 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5466 var EnhanceButton = function EnhanceButton(_ref) {
5467 var isLoading = _ref.isLoading,
5468 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5469 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5470 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5471 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5472 component: "span",
5473 sx: {
5474 cursor: props.disabled ? 'default' : 'pointer'
5475 }
5476 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5477 size: "small",
5478 color: "secondary"
5479 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5480 color: "secondary",
5481 size: 20
5482 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5483 fontSize: "small"
5484 }))));
5485 };
5486 EnhanceButton.propTypes = {
5487 disabled: _propTypes.default.bool,
5488 isLoading: _propTypes.default.bool
5489 };
5490 var _default = EnhanceButton;
5491 exports["default"] = _default;
5492
5493 /***/ }),
5494
5495 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js":
5496 /*!*****************************************************************************!*\
5497 !*** ../modules/ai/assets/js/editor/pages/form-media/components/gallery.js ***!
5498 \*****************************************************************************/
5499 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5500
5501 "use strict";
5502
5503
5504 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5505 Object.defineProperty(exports, "__esModule", ({
5506 value: true
5507 }));
5508 exports["default"] = void 0;
5509 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5510 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5511 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5512 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5513 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5514 var _overlay = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay */ "../modules/ai/assets/js/editor/components/ui/overlay.js"));
5515 var _overlayBar = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay-bar */ "../modules/ai/assets/js/editor/components/ui/overlay-bar.js"));
5516 var _overlayBarText = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay-bar-text */ "../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js"));
5517 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
5518 var _excluded = ["children"],
5519 _excluded2 = ["alt", "src", "text", "children", "aspectRatio", "variant", "OverlayBarProps"];
5520 var aspectRatios = Object.keys(_constants.IMAGE_ASPECT_RATIO);
5521 var Gallery = function Gallery(_ref) {
5522 var children = _ref.children,
5523 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5524 return /*#__PURE__*/_react.default.createElement(_ui.ImageList, (0, _extends2.default)({
5525 width: "100%",
5526 cols: 2,
5527 gap: 24
5528 }, props), children);
5529 };
5530 Gallery.propTypes = {
5531 children: _propTypes.default.node
5532 };
5533 var GalleryImage = function GalleryImage(_ref2) {
5534 var alt = _ref2.alt,
5535 src = _ref2.src,
5536 text = _ref2.text,
5537 children = _ref2.children,
5538 _ref2$aspectRatio = _ref2.aspectRatio,
5539 aspectRatio = _ref2$aspectRatio === void 0 ? '1:1' : _ref2$aspectRatio,
5540 _ref2$variant = _ref2.variant,
5541 variant = _ref2$variant === void 0 ? 'contained' : _ref2$variant,
5542 _ref2$OverlayBarProps = _ref2.OverlayBarProps,
5543 OverlayBarProps = _ref2$OverlayBarProps === void 0 ? {} : _ref2$OverlayBarProps,
5544 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
5545 var style = {};
5546 if ('thumbnail' === variant) {
5547 style.width = '100%';
5548 style.maxHeight = '238px';
5549 style.minWidth = '230px';
5550 } else {
5551 style.width = 'auto';
5552 style.height = 'auto';
5553 style.maxWidth = '100%';
5554 style.maxHeight = '1:1' === aspectRatio ? 'initial' : '100%';
5555 style.objectFit = 'contain';
5556 style.aspectRatio = aspectRatio.replace(':', ' / ');
5557 }
5558 return /*#__PURE__*/_react.default.createElement(_ui.ImageListItem, props, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5559 display: "flex",
5560 justifyContent: "center",
5561 alignItems: "center",
5562 sx: {
5563 bgcolor: 'action.selected',
5564 height: 'contained' === variant ? 336 : 'auto',
5565 position: 'relative',
5566 overflow: 'hidden'
5567 }
5568 }, /*#__PURE__*/_react.default.createElement("img", {
5569 alt: alt,
5570 src: src,
5571 style: style
5572 })), children && /*#__PURE__*/_react.default.createElement(_overlay.default, null, /*#__PURE__*/_react.default.createElement(_overlayBar.default, (0, _extends2.default)({
5573 gap: 1,
5574 position: "bottom"
5575 }, OverlayBarProps), text && /*#__PURE__*/_react.default.createElement(_overlayBarText.default, null, text), children)));
5576 };
5577 GalleryImage.propTypes = {
5578 alt: _propTypes.default.string,
5579 src: _propTypes.default.string,
5580 text: _propTypes.default.string,
5581 children: _propTypes.default.node,
5582 BoxProps: _propTypes.default.object,
5583 OverlayBarProps: _propTypes.default.object,
5584 aspectRatio: _propTypes.default.oneOf(aspectRatios),
5585 variant: _propTypes.default.oneOf(['contained', 'thumbnail'])
5586 };
5587 Gallery.Image = GalleryImage;
5588 var _default = Gallery;
5589 exports["default"] = _default;
5590
5591 /***/ }),
5592
5593 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js":
5594 /*!*******************************************************************************************!*\
5595 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js ***!
5596 \*******************************************************************************************/
5597 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5598
5599 "use strict";
5600
5601
5602 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5603 Object.defineProperty(exports, "__esModule", ({
5604 value: true
5605 }));
5606 exports["default"] = void 0;
5607 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5608 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5609 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5610 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5611 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
5612 var GenerateAgainSubmit = function GenerateAgainSubmit(props) {
5613 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5614 fullWidth: true,
5615 type: "submit",
5616 variant: "contained",
5617 color: "secondary",
5618 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null),
5619 sx: {
5620 // TODO: Remove on @elementor/ui 1.4.51.
5621 color: 'background.paper'
5622 }
5623 }, props), (0, _i18n.__)('Generate again', 'elementor'));
5624 };
5625 var _default = GenerateAgainSubmit;
5626 exports["default"] = _default;
5627
5628 /***/ }),
5629
5630 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js":
5631 /*!********************************************************************************************!*\
5632 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js ***!
5633 \********************************************************************************************/
5634 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5635
5636 "use strict";
5637
5638
5639 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5640 Object.defineProperty(exports, "__esModule", ({
5641 value: true
5642 }));
5643 exports["default"] = void 0;
5644 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5645 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5646 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
5647 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5648 var GenerateImagesSubmit = function GenerateImagesSubmit(props) {
5649 return /*#__PURE__*/_react.default.createElement(_generateButton.default, (0, _extends2.default)({
5650 size: "medium",
5651 fullWidth: true
5652 }, props), (0, _i18n.__)('Generate images', 'elementor'));
5653 };
5654 var _default = GenerateImagesSubmit;
5655 exports["default"] = _default;
5656
5657 /***/ }),
5658
5659 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js":
5660 /*!*************************************************************************************!*\
5661 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js ***!
5662 \*************************************************************************************/
5663 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5664
5665 "use strict";
5666
5667
5668 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5669 Object.defineProperty(exports, "__esModule", ({
5670 value: true
5671 }));
5672 exports["default"] = void 0;
5673 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5674 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5675 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5676 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5677 var GenerateLoader = function GenerateLoader() {
5678 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5679 alignItems: "center",
5680 justifyContent: "center",
5681 gap: 2,
5682 width: "100%"
5683 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5684 sx: {
5685 color: 'text.primary',
5686 fontSize: '60px',
5687 mb: 1
5688 }
5689 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5690 variant: "h5",
5691 sx: {
5692 color: 'text.primary'
5693 }
5694 }, (0, _i18n.__)('Bringing your vision to life...', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5695 variant: "body1"
5696 }, (0, _i18n.__)('Hold tight, painting dreams might take a moment.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Box, {
5697 sx: {
5698 px: 1.5,
5699 py: 2.5,
5700 width: '100%',
5701 maxWidth: 600
5702 }
5703 }, /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, {
5704 color: "inherit"
5705 })));
5706 };
5707 var _default = GenerateLoader;
5708 exports["default"] = _default;
5709
5710 /***/ }),
5711
5712 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5713 /*!*************************************************************************************!*\
5714 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5715 \*************************************************************************************/
5716 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5717
5718 "use strict";
5719
5720
5721 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5722 Object.defineProperty(exports, "__esModule", ({
5723 value: true
5724 }));
5725 exports["default"] = void 0;
5726 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5727 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5728 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5729 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5730 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5731 var GenerateSubmit = function GenerateSubmit(props) {
5732 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5733 fullWidth: true,
5734 size: "medium",
5735 type: "submit",
5736 variant: "contained"
5737 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5738 };
5739 GenerateSubmit.propTypes = {
5740 children: _propTypes.default.node
5741 };
5742 var _default = GenerateSubmit;
5743 exports["default"] = _default;
5744
5745 /***/ }),
5746
5747 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js":
5748 /*!***********************************************************************************!*\
5749 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js ***!
5750 \***********************************************************************************/
5751 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5752
5753 "use strict";
5754
5755
5756 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5757 Object.defineProperty(exports, "__esModule", ({
5758 value: true
5759 }));
5760 exports["default"] = void 0;
5761 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5762 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5763 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5764 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5765 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5766 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5767 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5768 var _copyIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-icon */ "../modules/ai/assets/js/editor/icons/copy-icon.js"));
5769 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
5770 var _downloadIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/download-icon */ "../modules/ai/assets/js/editor/icons/download-icon.js"));
5771 var _zoomInIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/zoom-in-icon */ "../modules/ai/assets/js/editor/icons/zoom-in-icon.js"));
5772 var _excluded = ["children"],
5773 _excluded2 = ["sx"],
5774 _excluded3 = ["sx"],
5775 _excluded4 = ["sx"],
5776 _excluded5 = ["sx"];
5777 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5778 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5779 var StyledEditSvgIcon = (0, _ui.withDirection)(_editIcon.default);
5780 var StyledCopySvgIcon = (0, _ui.withDirection)(_copyIcon.default);
5781 var StyledZoomInIcon = (0, _ui.withDirection)(_zoomInIcon.default);
5782 var Tooltip = function Tooltip(props) {
5783 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, (0, _extends2.default)({
5784 PopperProps: {
5785 sx: {
5786 '&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {
5787 mt: 1
5788 }
5789 }
5790 }
5791 }, props));
5792 };
5793 var ImageActions = function ImageActions(_ref) {
5794 var children = _ref.children,
5795 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5796 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
5797 display: "flex",
5798 justifyContent: "space-between",
5799 alignItems: "center",
5800 width: "100%",
5801 gap: 1
5802 }, props), children);
5803 };
5804 ImageActions.propTypes = {
5805 children: _propTypes.default.node
5806 };
5807 var UseImage = function UseImage(_ref2) {
5808 var sx = _ref2.sx,
5809 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
5810 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5811 size: "small",
5812 variant: "contained",
5813 startIcon: /*#__PURE__*/_react.default.createElement(_downloadIcon.default, null)
5814 }, props), (0, _i18n.__)('Use Image', 'elementor'));
5815 };
5816 UseImage.propTypes = {
5817 sx: _propTypes.default.object
5818 };
5819 var EditImage = function EditImage(props) {
5820 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5821 size: "small",
5822 color: "secondary",
5823 startIcon: /*#__PURE__*/_react.default.createElement(StyledEditSvgIcon, null)
5824 }, props), (0, _i18n.__)('Edit', 'elementor'));
5825 };
5826 var EditIcon = function EditIcon(_ref3) {
5827 var _ref3$sx = _ref3.sx,
5828 sx = _ref3$sx === void 0 ? {} : _ref3$sx,
5829 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
5830 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5831 title: (0, _i18n.__)('Edit', 'elementor')
5832 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5833 sx: _objectSpread({
5834 mr: -1.5,
5835 ml: 0.5,
5836 color: 'common.white',
5837 '&:hover': {
5838 color: 'common.white'
5839 }
5840 }, sx)
5841 }, props), /*#__PURE__*/_react.default.createElement(StyledEditSvgIcon, null)));
5842 };
5843 EditIcon.propTypes = {
5844 sx: _propTypes.default.object
5845 };
5846 var ZoomIcon = function ZoomIcon(_ref4) {
5847 var _ref4$sx = _ref4.sx,
5848 sx = _ref4$sx === void 0 ? {} : _ref4$sx,
5849 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
5850 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5851 title: (0, _i18n.__)('Zoom', 'elementor')
5852 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5853 color: "secondary",
5854 "aria-label": (0, _i18n.__)('Zoom', 'elementor'),
5855 sx: _objectSpread({
5856 color: 'common.white',
5857 '&:hover': {
5858 color: 'common.white'
5859 }
5860 }, sx)
5861 }, props), /*#__PURE__*/_react.default.createElement(StyledZoomInIcon, null)));
5862 };
5863 ZoomIcon.propTypes = {
5864 sx: _propTypes.default.object
5865 };
5866 var CopyIcon = function CopyIcon(_ref5) {
5867 var _ref5$sx = _ref5.sx,
5868 sx = _ref5$sx === void 0 ? {} : _ref5$sx,
5869 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
5870 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5871 title: (0, _i18n.__)('Copy prompt', 'elementor')
5872 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5873 sx: _objectSpread({
5874 mr: -1.5,
5875 ml: 0.5,
5876 color: 'common.white',
5877 '&:hover': {
5878 color: 'common.white'
5879 }
5880 }, sx)
5881 }, props), /*#__PURE__*/_react.default.createElement(StyledCopySvgIcon, null)));
5882 };
5883 CopyIcon.propTypes = {
5884 sx: _propTypes.default.object
5885 };
5886 ImageActions.UseImage = UseImage;
5887 ImageActions.EditImage = EditImage;
5888 ImageActions.EditIcon = EditIcon;
5889 ImageActions.ZoomIcon = ZoomIcon;
5890 ImageActions.CopyIcon = CopyIcon;
5891 var _default = ImageActions;
5892 exports["default"] = _default;
5893
5894 /***/ }),
5895
5896 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js":
5897 /*!********************************************************************************!*\
5898 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-form.js ***!
5899 \********************************************************************************/
5900 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5901
5902 "use strict";
5903
5904
5905 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5906 Object.defineProperty(exports, "__esModule", ({
5907 value: true
5908 }));
5909 exports["default"] = void 0;
5910 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5911 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5912 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5913 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5914 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5915 var _excluded = ["children"];
5916 var ImageForm = function ImageForm(_ref) {
5917 var children = _ref.children,
5918 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5919 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
5920 component: "form"
5921 }, props), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5922 spacing: 2.5
5923 }, children));
5924 };
5925 ImageForm.propTypes = {
5926 children: _propTypes.default.node
5927 };
5928 var _default = ImageForm;
5929 exports["default"] = _default;
5930
5931 /***/ }),
5932
5933 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js":
5934 /*!****************************************************************************************!*\
5935 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js ***!
5936 \****************************************************************************************/
5937 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5938
5939 "use strict";
5940
5941
5942 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5943 Object.defineProperty(exports, "__esModule", ({
5944 value: true
5945 }));
5946 exports["default"] = void 0;
5947 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5948 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5949 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5950 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
5951 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5952 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
5953 var imageRatios = Object.entries(_constants.IMAGE_ASPECT_RATIO).map(function (_ref) {
5954 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
5955 value = _ref2[0],
5956 label = _ref2[1].label;
5957 return {
5958 label: label,
5959 value: value
5960 };
5961 });
5962 var ImageRatioSelect = function ImageRatioSelect(props) {
5963 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
5964 options: imageRatios,
5965 wrapperStyle: {
5966 width: '100%'
5967 },
5968 label: (0, _i18n.__)('Aspect ratio', 'elementor')
5969 }, props));
5970 };
5971 var _default = ImageRatioSelect;
5972 exports["default"] = _default;
5973
5974 /***/ }),
5975
5976 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js":
5977 /*!**********************************************************************************!*\
5978 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js ***!
5979 \**********************************************************************************/
5980 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5981
5982 "use strict";
5983
5984
5985 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5986 Object.defineProperty(exports, "__esModule", ({
5987 value: true
5988 }));
5989 exports["default"] = void 0;
5990 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5991 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5992 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5993 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5994 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5995 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5996 var _chevronLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-left-icon */ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js"));
5997 var _chevronRightIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-right-icon */ "../modules/ai/assets/js/editor/icons/chevron-right-icon.js"));
5998 var _excluded = ["onPrev", "onNext", "children"],
5999 _excluded2 = ["children", "startAction", "sx"],
6000 _excluded3 = ["src", "alt"];
6001 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6002 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6003 var StyledChevronLeftIcon = (0, _ui.withDirection)(_chevronLeftIcon.default);
6004 var StyledChevronRightIcon = (0, _ui.withDirection)(_chevronRightIcon.default);
6005 var ImageSlider = function ImageSlider(_ref) {
6006 var onPrev = _ref.onPrev,
6007 onNext = _ref.onNext,
6008 children = _ref.children,
6009 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6010 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6011 alignItems: "flex-start",
6012 spacing: 0.5
6013 }, props), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6014 direction: "row",
6015 spacing: 2.5,
6016 alignSelf: "center",
6017 alignItems: "center"
6018 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
6019 onClick: onPrev,
6020 size: "large",
6021 color: "secondary"
6022 }, /*#__PURE__*/_react.default.createElement(StyledChevronLeftIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6023 spacing: 0.5,
6024 justifyContent: "space-around",
6025 alignItems: "center"
6026 }, children), /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
6027 onClick: onNext,
6028 size: "large",
6029 color: "secondary"
6030 }, /*#__PURE__*/_react.default.createElement(StyledChevronRightIcon, null))));
6031 };
6032 ImageSlider.propTypes = {
6033 onPrev: _propTypes.default.func.isRequired,
6034 onNext: _propTypes.default.func.isRequired,
6035 children: _propTypes.default.node.isRequired
6036 };
6037 var Actions = function Actions(_ref2) {
6038 var children = _ref2.children,
6039 startAction = _ref2.startAction,
6040 _ref2$sx = _ref2.sx,
6041 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
6042 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6043 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6044 display: "flex",
6045 justifyContent: "flex-end",
6046 alignItems: "center",
6047 width: "100%"
6048 }, props, {
6049 sx: _objectSpread({
6050 mb: 1.5
6051 }, sx)
6052 }), startAction, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6053 direction: "row",
6054 spacing: 2,
6055 justifyContent: "flex-end",
6056 flexGrow: 1,
6057 width: "100%"
6058 }, children));
6059 };
6060 Actions.propTypes = {
6061 sx: _propTypes.default.object,
6062 startAction: _propTypes.default.node,
6063 children: _propTypes.default.node.isRequired
6064 };
6065 var Image = function Image(_ref3) {
6066 var src = _ref3.src,
6067 _ref3$alt = _ref3.alt,
6068 alt = _ref3$alt === void 0 ? '' : _ref3$alt,
6069 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6070 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6071 display: "flex",
6072 justifyContent: "center",
6073 alignItems: "center"
6074 }, /*#__PURE__*/_react.default.createElement("img", (0, _extends2.default)({
6075 src: src,
6076 alt: alt
6077 }, props)));
6078 };
6079 Image.propTypes = {
6080 alt: _propTypes.default.string,
6081 src: _propTypes.default.string.isRequired
6082 };
6083 ImageSlider.Actions = Actions;
6084 ImageSlider.Image = Image;
6085 var _default = ImageSlider;
6086 exports["default"] = _default;
6087
6088 /***/ }),
6089
6090 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js":
6091 /*!*******************************************************************************************!*\
6092 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js ***!
6093 \*******************************************************************************************/
6094 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6095
6096 "use strict";
6097
6098
6099 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6100 Object.defineProperty(exports, "__esModule", ({
6101 value: true
6102 }));
6103 exports["default"] = void 0;
6104 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6105 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6106 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6107 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6108 var ImageStrengthSlider = function ImageStrengthSlider(props) {
6109 return /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
6110 sx: {
6111 width: '100%'
6112 }
6113 }, /*#__PURE__*/_react.default.createElement(_ui.Slider, (0, _extends2.default)({
6114 marks: true,
6115 min: 0,
6116 step: 10,
6117 max: 100,
6118 color: "secondary",
6119 id: "image_strength",
6120 name: "image_strength",
6121 valueLabelDisplay: "auto",
6122 getAriaValueText: function getAriaValueText(value) {
6123 return "".concat(value, "%");
6124 },
6125 "aria-label": (0, _i18n.__)('Reference strength', 'elementor')
6126 }, props)), /*#__PURE__*/_react.default.createElement(_ui.Box, {
6127 display: "flex",
6128 justifyContent: "space-between",
6129 alignItems: "center"
6130 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6131 variant: "caption"
6132 }, (0, _i18n.__)('Prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6133 variant: "caption"
6134 }, (0, _i18n.__)('Reference image', 'elementor'))));
6135 };
6136 var _default = ImageStrengthSlider;
6137 exports["default"] = _default;
6138
6139 /***/ }),
6140
6141 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js":
6142 /*!****************************************************************************************!*\
6143 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js ***!
6144 \****************************************************************************************/
6145 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6146
6147 "use strict";
6148
6149
6150 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6151 Object.defineProperty(exports, "__esModule", ({
6152 value: true
6153 }));
6154 exports["default"] = void 0;
6155 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6156 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6157 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6158 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6159 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6160 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6161 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6162 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6163 var _excluded = ["type"];
6164 var ImageStyleSelect = function ImageStyleSelect(_ref) {
6165 var _IMAGE_PROMPT_CATEGOR;
6166 var _ref$type = _ref.type,
6167 type = _ref$type === void 0 ? '' : _ref$type,
6168 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6169 // The image styles are determined by the selected type.
6170 var imageStyles = Object.entries(((_IMAGE_PROMPT_CATEGOR = _constants.IMAGE_PROMPT_CATEGORIES[type]) === null || _IMAGE_PROMPT_CATEGOR === void 0 ? void 0 : _IMAGE_PROMPT_CATEGOR.subCategories) || {}).map(function (_ref2) {
6171 var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
6172 value = _ref3[0],
6173 label = _ref3[1];
6174 return {
6175 label: label,
6176 value: value
6177 };
6178 });
6179 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6180 options: imageStyles,
6181 wrapperStyle: {
6182 width: '100%'
6183 },
6184 label: (0, _i18n.__)('Style', 'elementor')
6185 }, props));
6186 };
6187 ImageStyleSelect.propTypes = {
6188 type: _propTypes.default.string.isRequired
6189 };
6190 var _default = ImageStyleSelect;
6191 exports["default"] = _default;
6192
6193 /***/ }),
6194
6195 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js":
6196 /*!***************************************************************************************!*\
6197 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js ***!
6198 \***************************************************************************************/
6199 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6200
6201 "use strict";
6202
6203
6204 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6205 Object.defineProperty(exports, "__esModule", ({
6206 value: true
6207 }));
6208 exports["default"] = void 0;
6209 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6210 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6211 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6212 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6213 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6214 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6215 var imageTypes = Object.entries(_constants.IMAGE_PROMPT_CATEGORIES).map(function (_ref) {
6216 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
6217 key = _ref2[0],
6218 label = _ref2[1].label;
6219 return {
6220 label: label,
6221 value: key
6222 };
6223 });
6224 var ImageTypeSelect = function ImageTypeSelect(props) {
6225 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6226 options: imageTypes,
6227 wrapperStyle: {
6228 width: '100%'
6229 },
6230 label: (0, _i18n.__)('Image type', 'elementor')
6231 }, props));
6232 };
6233 var _default = ImageTypeSelect;
6234 exports["default"] = _default;
6235
6236 /***/ }),
6237
6238 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js":
6239 /*!************************************************************************************!*\
6240 !*** ../modules/ai/assets/js/editor/pages/form-media/components/images-display.js ***!
6241 \************************************************************************************/
6242 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6243
6244 "use strict";
6245
6246
6247 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6248 Object.defineProperty(exports, "__esModule", ({
6249 value: true
6250 }));
6251 exports["default"] = void 0;
6252 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6253 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6254 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6255 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6256 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6257 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6258 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
6259 var _useImageNavigation2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-navigation */ "../modules/ai/assets/js/editor/hooks/use-image-navigation.js"));
6260 var _imageSlider = _interopRequireDefault(__webpack_require__(/*! ./image-slider */ "../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js"));
6261 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ./image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
6262 var _gallery = _interopRequireDefault(__webpack_require__(/*! ./gallery */ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js"));
6263 var _backButton = _interopRequireDefault(__webpack_require__(/*! ./back-button */ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js"));
6264 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ./single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
6265 var _excluded = ["children", "sx"];
6266 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6267 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6268 var Container = function Container(_ref) {
6269 var children = _ref.children,
6270 _ref$sx = _ref.sx,
6271 sx = _ref$sx === void 0 ? {} : _ref$sx,
6272 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6273 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6274 flexGrow: 1
6275 }, props, {
6276 sx: _objectSpread({
6277 overflowY: 'scroll'
6278 }, sx)
6279 }), children);
6280 };
6281 Container.propTypes = {
6282 sx: _propTypes.default.object,
6283 children: _propTypes.default.node
6284 };
6285 var ImagesDisplay = function ImagesDisplay(_ref2) {
6286 var images = _ref2.images,
6287 aspectRatio = _ref2.aspectRatio,
6288 onUseImage = _ref2.onUseImage,
6289 onEditImage = _ref2.onEditImage,
6290 _ref2$transparentCont = _ref2.transparentContainer,
6291 transparentContainer = _ref2$transparentCont === void 0 ? false : _ref2$transparentCont;
6292 var _useImageNavigation = (0, _useImageNavigation2.default)(images),
6293 zoomIndex = _useImageNavigation.zoomIndex,
6294 setZoomIndex = _useImageNavigation.setZoomIndex,
6295 actions = _useImageNavigation.actions;
6296 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
6297 width = _useImageSize.width,
6298 height = _useImageSize.height;
6299 if (zoomIndex > -1) {
6300 var currentImage = images[zoomIndex];
6301 return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_imageSlider.default, {
6302 onPrev: actions.prev,
6303 onNext: actions.next
6304 }, /*#__PURE__*/_react.default.createElement(_imageSlider.default.Actions, {
6305 startAction: /*#__PURE__*/_react.default.createElement(_backButton.default, {
6306 onClick: actions.reset
6307 })
6308 }, /*#__PURE__*/_react.default.createElement(_imageActions.default.EditImage, {
6309 onClick: function onClick() {
6310 return onEditImage(currentImage);
6311 }
6312 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6313 onClick: function onClick() {
6314 return onUseImage(currentImage);
6315 }
6316 })), /*#__PURE__*/_react.default.createElement(_imageSlider.default.Image, {
6317 src: currentImage.image_url,
6318 style: {
6319 maxWidth: '630px',
6320 width: '100%',
6321 height: 'auto'
6322 }
6323 })));
6324 }
6325 if (1 === images.length) {
6326 var image = images[0];
6327 var singleImageStyle = {
6328 width: width,
6329 height: height
6330 };
6331 if (transparentContainer) {
6332 singleImageStyle.backgroundImage = 'linear-gradient(45deg, #bbb 25%, transparent 25%), linear-gradient(-45deg, #bbb 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #bbb 75%), linear-gradient(-45deg, transparent 75%, #bbb 75%)';
6333 singleImageStyle.backgroundSize = '20px 20px';
6334 singleImageStyle.backgroundPosition = '0 0, 0 10px, 10px -10px, -10px 0px';
6335 }
6336 return /*#__PURE__*/_react.default.createElement(Container, {
6337 flexDirection: "column"
6338 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
6339 src: image.image_url || image.url,
6340 style: singleImageStyle,
6341 alt: "generated-image"
6342 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Actions, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.EditImage, {
6343 onClick: function onClick() {
6344 return onEditImage(image);
6345 }
6346 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6347 onClick: function onClick() {
6348 return onUseImage(image);
6349 }
6350 })))));
6351 }
6352 return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_gallery.default, null, images.map(function (image, index) {
6353 return /*#__PURE__*/_react.default.createElement(_gallery.default.Image, {
6354 key: "result-".concat(image.seed),
6355 alt: "generated-".concat(index),
6356 src: image.image_url,
6357 aspectRatio: aspectRatio,
6358 "data-testid": "e-gallery-image"
6359 }, /*#__PURE__*/_react.default.createElement(_imageActions.default, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6360 onClick: function onClick() {
6361 return onUseImage(image);
6362 },
6363 size: "medium",
6364 fullWidth: true
6365 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6366 direction: "row",
6367 spacing: 0.25,
6368 alignItems: "center"
6369 }, /*#__PURE__*/_react.default.createElement(_imageActions.default.ZoomIcon, {
6370 onClick: function onClick() {
6371 return setZoomIndex(index);
6372 },
6373 size: "medium"
6374 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.EditIcon, {
6375 onClick: function onClick() {
6376 return onEditImage(image);
6377 },
6378 size: "medium"
6379 }))));
6380 })));
6381 };
6382 ImagesDisplay.propTypes = {
6383 images: _propTypes.default.array,
6384 aspectRatio: _propTypes.default.string,
6385 onUseImage: _propTypes.default.func,
6386 onEditImage: _propTypes.default.func,
6387 transparentContainer: _propTypes.default.bool
6388 };
6389 ImagesDisplay.Container = Container;
6390 var _default = ImagesDisplay;
6391 exports["default"] = _default;
6392
6393 /***/ }),
6394
6395 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js":
6396 /*!***************************************************************************************!*\
6397 !*** ../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js ***!
6398 \***************************************************************************************/
6399 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6400
6401 "use strict";
6402
6403
6404 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6405 Object.defineProperty(exports, "__esModule", ({
6406 value: true
6407 }));
6408 exports["default"] = void 0;
6409 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6410 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6411 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6412 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6413 var NewPromptButton = function NewPromptButton(props) {
6414 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
6415 fullWidth: true,
6416 variant: "text",
6417 color: "secondary"
6418 }, props), (0, _i18n.__)('New prompt', 'elementor'));
6419 };
6420 var _default = NewPromptButton;
6421 exports["default"] = _default;
6422
6423 /***/ }),
6424
6425 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js":
6426 /*!**********************************************************************************!*\
6427 !*** ../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js ***!
6428 \**********************************************************************************/
6429 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6430
6431 "use strict";
6432
6433
6434 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6435 Object.defineProperty(exports, "__esModule", ({
6436 value: true
6437 }));
6438 exports["default"] = void 0;
6439 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6440 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6441 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6442 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6443 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6444 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
6445 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ./enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
6446 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
6447 var _excluded = ["disabled", "onChange"];
6448 var PromptField = function PromptField(_ref) {
6449 var disabled = _ref.disabled,
6450 _onChange = _ref.onChange,
6451 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6452 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(props.value, 'media'),
6453 enhance = _usePromptEnhancer.enhance,
6454 isEnhancing = _usePromptEnhancer.isEnhancing;
6455 return /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({
6456 minRows: 3,
6457 maxRows: 6,
6458 InputProps: {
6459 endAdornment: /*#__PURE__*/_react.default.createElement(_ui.InputAdornment, {
6460 position: "end",
6461 sx: {
6462 position: 'absolute',
6463 bottom: '24px',
6464 right: '8px'
6465 }
6466 }, /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
6467 isLoading: isEnhancing,
6468 disabled: disabled || isEnhancing || !props.value,
6469 onClick: function onClick() {
6470 enhance(prompt).then(function (_ref2) {
6471 var result = _ref2.result;
6472 return _onChange(result);
6473 });
6474 }
6475 }))
6476 },
6477 sx: {
6478 '& .MuiInputBase-input.MuiOutlinedInput-input.MuiInputBase-inputMultiline': {
6479 pb: 5,
6480 width: '89%'
6481 }
6482 },
6483 onKeyDown: function onKeyDown(event) {
6484 if ('Tab' === event.key) {
6485 event.preventDefault();
6486 _onChange(props.placeholder);
6487 }
6488 }
6489 }, props, {
6490 onChange: function onChange(event) {
6491 return _onChange(event.target.value);
6492 },
6493 disabled: disabled || isEnhancing
6494 }));
6495 };
6496 PromptField.propTypes = {
6497 value: _propTypes.default.string,
6498 disabled: _propTypes.default.bool,
6499 placeholder: _propTypes.default.string,
6500 onChange: _propTypes.default.func.isRequired
6501 };
6502 var _default = PromptField;
6503 exports["default"] = _default;
6504
6505 /***/ }),
6506
6507 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js":
6508 /*!******************************************************************************************!*\
6509 !*** ../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js ***!
6510 \******************************************************************************************/
6511 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6512
6513 "use strict";
6514
6515
6516 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6517 Object.defineProperty(exports, "__esModule", ({
6518 value: true
6519 }));
6520 exports["default"] = void 0;
6521 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6522 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6523 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6524 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6525 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6526 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6527 var _excluded = ["children"],
6528 _excluded2 = ["children", "sx"];
6529 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6530 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6531 var SingleImagePreview = function SingleImagePreview(_ref) {
6532 var children = _ref.children,
6533 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6534 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6535 display: "flex"
6536 }, props), children);
6537 };
6538 SingleImagePreview.propTypes = {
6539 children: _propTypes.default.node.isRequired
6540 };
6541 var Actions = function Actions(_ref2) {
6542 var children = _ref2.children,
6543 _ref2$sx = _ref2.sx,
6544 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
6545 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6546 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6547 display: "flex",
6548 width: "100%",
6549 justifyContent: "flex-end",
6550 alignItems: "center"
6551 }, props, {
6552 sx: _objectSpread({
6553 mb: 1.5
6554 }, sx)
6555 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6556 direction: "row",
6557 spacing: 2,
6558 justifyContent: "flex-end",
6559 width: "100%"
6560 }, children));
6561 };
6562 Actions.propTypes = {
6563 sx: _propTypes.default.object,
6564 children: _propTypes.default.node.isRequired
6565 };
6566 var Image = function Image(_ref3) {
6567 var src = _ref3.src,
6568 alt = _ref3.alt,
6569 _ref3$style = _ref3.style,
6570 style = _ref3$style === void 0 ? {} : _ref3$style,
6571 children = _ref3.children;
6572 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6573 margin: "0 auto"
6574 }, children, /*#__PURE__*/_react.default.createElement("img", {
6575 src: src,
6576 alt: alt,
6577 style: _objectSpread({
6578 maxWidth: '100%',
6579 width: 'auto',
6580 maxHeight: '100%'
6581 }, style)
6582 }));
6583 };
6584 Image.propTypes = {
6585 style: _propTypes.default.object,
6586 children: _propTypes.default.node,
6587 src: _propTypes.default.string.isRequired,
6588 alt: _propTypes.default.string.isRequired
6589 };
6590 SingleImagePreview.Actions = Actions;
6591 SingleImagePreview.Image = Image;
6592 var _default = SingleImagePreview;
6593 exports["default"] = _default;
6594
6595 /***/ }),
6596
6597 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js":
6598 /*!*******************************************************************************************!*\
6599 !*** ../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js ***!
6600 \*******************************************************************************************/
6601 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6602
6603 "use strict";
6604
6605
6606 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6607 Object.defineProperty(exports, "__esModule", ({
6608 value: true
6609 }));
6610 exports["default"] = void 0;
6611 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6612 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6613 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6614 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6615 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6616 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6617 var _excluded = ["onClose", "onCancel"];
6618 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
6619 var onClose = _ref.onClose,
6620 onCancel = _ref.onCancel,
6621 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6622 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
6623 "aria-labelledby": "unsaved-changes-alert-title",
6624 "aria-describedby": "unsaved-changes-alert-description"
6625 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
6626 id: "unsaved-changes-alert-title"
6627 }, (0, _i18n.__)('Leave Elementor AI?', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
6628 id: "unsaved-changes-alert-description"
6629 }, (0, _i18n.__)('Images will be gone forever and we won’t be able to recover them.', 'elementor'))), /*#__PURE__*/_react.default.createElement(_ui.DialogActions, null, /*#__PURE__*/_react.default.createElement(_ui.Button, {
6630 onClick: onCancel,
6631 color: "secondary"
6632 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
6633 onClick: onClose,
6634 color: "error",
6635 variant: "contained"
6636 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
6637 };
6638 UnsavedChangesAlert.propTypes = {
6639 onClose: _propTypes.default.func,
6640 onCancel: _propTypes.default.func
6641 };
6642 var _default = UnsavedChangesAlert;
6643 exports["default"] = _default;
6644
6645 /***/ }),
6646
6647 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/view.js":
6648 /*!**************************************************************************!*\
6649 !*** ../modules/ai/assets/js/editor/pages/form-media/components/view.js ***!
6650 \**************************************************************************/
6651 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6652
6653 "use strict";
6654
6655
6656 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6657 Object.defineProperty(exports, "__esModule", ({
6658 value: true
6659 }));
6660 exports["default"] = void 0;
6661 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6662 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6663 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6664 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6665 var _panel = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/panel */ "../modules/ai/assets/js/editor/components/ui/panel.js"));
6666 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6667 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6668 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
6669 var _generateLoader = _interopRequireDefault(__webpack_require__(/*! ./generate-loader */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js"));
6670 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
6671 var _backButton = _interopRequireDefault(__webpack_require__(/*! ./back-button */ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js"));
6672 var _locationContext = __webpack_require__(/*! ../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
6673 var _useUpgradeMessage = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
6674 var _globalSettingsContext = __webpack_require__(/*! ../context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
6675 var _usageMessages = _interopRequireDefault(__webpack_require__(/*! ../../../components/usage-messages */ "../modules/ai/assets/js/editor/components/usage-messages.js"));
6676 var _excluded = ["sx"],
6677 _excluded2 = ["primary", "secondary"],
6678 _excluded3 = ["primary", "secondary"],
6679 _excluded4 = ["children"],
6680 _excluded5 = ["isLoading", "isGenerating", "children"],
6681 _excluded6 = ["sx"];
6682 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6683 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6684 var ViewBackButton = function ViewBackButton(_ref) {
6685 var _ref$sx = _ref.sx,
6686 sx = _ref$sx === void 0 ? {} : _ref$sx,
6687 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6688 var _useLocation = (0, _locationContext.useLocation)(),
6689 back = _useLocation.back;
6690 return /*#__PURE__*/_react.default.createElement(_backButton.default, (0, _extends2.default)({
6691 onClick: function onClick(e) {
6692 e.preventDefault();
6693 back();
6694 }
6695 }, props, {
6696 sx: _objectSpread({
6697 mb: 1,
6698 alignSelf: 'flex-start'
6699 }, sx)
6700 }));
6701 };
6702 ViewBackButton.propTypes = {
6703 sx: _propTypes.default.object
6704 };
6705 var PanelHeading = function PanelHeading(_ref2) {
6706 var primary = _ref2.primary,
6707 secondary = _ref2.secondary,
6708 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6709 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6710 spacing: 1,
6711 sx: {
6712 mb: 3
6713 }
6714 }, props), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6715 variant: "h4"
6716 }, primary), secondary && /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6717 variant: "body1",
6718 color: "secondary"
6719 }, secondary));
6720 };
6721 PanelHeading.propTypes = {
6722 primary: _propTypes.default.string.isRequired,
6723 secondary: _propTypes.default.string
6724 };
6725 var ContentHeading = function ContentHeading(_ref3) {
6726 var primary = _ref3.primary,
6727 secondary = _ref3.secondary,
6728 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6729 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6730 gap: 1.5,
6731 sx: {
6732 mb: 3
6733 }
6734 }, props), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6735 variant: "h6"
6736 }, primary), secondary && /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6737 variant: "subtitle1",
6738 color: "secondary"
6739 }, secondary));
6740 };
6741 ContentHeading.propTypes = {
6742 primary: _propTypes.default.string.isRequired,
6743 secondary: _propTypes.default.string
6744 };
6745 var View = function View(_ref4) {
6746 var children = _ref4.children,
6747 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
6748 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6749 className: "e-ai-dialog-content",
6750 display: "flex",
6751 sx: {
6752 overflowY: 'auto',
6753 position: 'relative'
6754 },
6755 height: "100%"
6756 }, props), children);
6757 };
6758 var Content = function Content(_ref5) {
6759 var _ref5$isLoading = _ref5.isLoading,
6760 isLoading = _ref5$isLoading === void 0 ? false : _ref5$isLoading,
6761 _ref5$isGenerating = _ref5.isGenerating,
6762 isGenerating = _ref5$isGenerating === void 0 ? false : _ref5$isGenerating,
6763 children = _ref5.children,
6764 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
6765 if (isGenerating) {
6766 return /*#__PURE__*/_react.default.createElement(_generateLoader.default, null);
6767 }
6768 if (isLoading) {
6769 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6770 sx: {
6771 width: '100%',
6772 maxWidth: 600,
6773 margin: '0 auto',
6774 alignSelf: 'center'
6775 }
6776 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
6777 color: "inherit"
6778 }));
6779 }
6780 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6781 sx: {
6782 overflowY: 'scroll',
6783 p: 4
6784 },
6785 flexGrow: 1
6786 }, props), children);
6787 };
6788 Content.propTypes = {
6789 children: _propTypes.default.node,
6790 isLoading: _propTypes.default.bool,
6791 isGenerating: _propTypes.default.bool
6792 };
6793 var ErrorMessage = function ErrorMessage(_ref6) {
6794 var _ref6$sx = _ref6.sx,
6795 sx = _ref6$sx === void 0 ? {} : _ref6$sx,
6796 props = (0, _objectWithoutProperties2.default)(_ref6, _excluded6);
6797 return /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, (0, _extends2.default)({
6798 actionPosition: "bottom"
6799 }, props, {
6800 sx: _objectSpread({
6801 mb: 2.5
6802 }, sx)
6803 }));
6804 };
6805 ErrorMessage.propTypes = {
6806 sx: _propTypes.default.object
6807 };
6808 var ViewPanel = function ViewPanel(props) {
6809 var _useGlobalSettings = (0, _globalSettingsContext.useGlobalSettings)(),
6810 hasSubscription = _useGlobalSettings.hasSubscription,
6811 usagePercentage = _useGlobalSettings.usagePercentage;
6812 return /*#__PURE__*/_react.default.createElement(_panel.default, null, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
6813 hasSubscription: hasSubscription,
6814 usagePercentage: usagePercentage,
6815 sx: {
6816 mb: 4
6817 }
6818 }), props.children);
6819 };
6820 ViewPanel.propTypes = {
6821 children: _propTypes.default.node
6822 };
6823 View.Panel = ViewPanel;
6824 View.Content = Content;
6825 View.BackButton = ViewBackButton;
6826 View.ErrorMessage = ErrorMessage;
6827 View.PanelHeading = PanelHeading;
6828 View.ContentHeading = ContentHeading;
6829 View.propTypes = {
6830 children: _propTypes.default.node
6831 };
6832 var _default = View;
6833 exports["default"] = _default;
6834
6835 /***/ }),
6836
6837 /***/ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js":
6838 /*!**************************************************************************!*\
6839 !*** ../modules/ai/assets/js/editor/pages/form-media/constants/index.js ***!
6840 \**************************************************************************/
6841 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6842
6843 "use strict";
6844
6845
6846 Object.defineProperty(exports, "__esModule", ({
6847 value: true
6848 }));
6849 exports.LOCATIONS = exports.IMAGE_PROMPT_SETTINGS = exports.IMAGE_PROMPT_CATEGORIES = exports.IMAGE_ASPECT_RATIO = void 0;
6850 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6851 var LOCATIONS = {
6852 RESIZE: 'resize',
6853 GENERATE: 'generate',
6854 VARIATIONS: 'variations',
6855 IMAGE_TOOLS: 'image-tools',
6856 IN_PAINTING: 'in-painting',
6857 OUT_PAINTING: 'out-painting',
6858 REMOVE_BACKGROUND: 'remove-background',
6859 REPLACE_BACKGROUND: 'replace-background',
6860 REMOVE_TEXT: 'remove-text'
6861 };
6862 exports.LOCATIONS = LOCATIONS;
6863 var IMAGE_PROMPT_SETTINGS = {
6864 IMAGE_TYPE: 'image_type',
6865 IMAGE_STYLE: 'style_preset',
6866 IMAGE_STRENGTH: 'image_strength',
6867 IMAGE_RATIO: 'ratio',
6868 IMAGE_ZOOM: 'zoom',
6869 IMAGE_UPSCALE: 'upscale_to'
6870 };
6871 exports.IMAGE_PROMPT_SETTINGS = IMAGE_PROMPT_SETTINGS;
6872 var IMAGE_PROMPT_CATEGORIES = {
6873 '': {
6874 label: (0, _i18n.__)('None', 'elementor'),
6875 subCategories: {}
6876 },
6877 photographic: {
6878 label: (0, _i18n.__)('Photographic', 'elementor'),
6879 subCategories: {
6880 '': (0, _i18n.__)('None', 'elementor'),
6881 landscape: (0, _i18n.__)('Landscape', 'elementor'),
6882 macro: (0, _i18n.__)('Macro', 'elementor'),
6883 portrait: (0, _i18n.__)('Portrait', 'elementor'),
6884 'long-exposure': (0, _i18n.__)('Long Exposure', 'elementor')
6885 }
6886 },
6887 background: {
6888 label: (0, _i18n.__)('Background', 'elementor'),
6889 subCategories: {
6890 '': (0, _i18n.__)('None', 'elementor'),
6891 floral: (0, _i18n.__)('Floral', 'elementor'),
6892 gradient: (0, _i18n.__)('Gradient', 'elementor'),
6893 mosaic: (0, _i18n.__)('Mosaic', 'elementor'),
6894 neon: (0, _i18n.__)('Neon', 'elementor'),
6895 bokeh: (0, _i18n.__)('Bokeh', 'elementor')
6896 }
6897 },
6898 handmade: {
6899 label: (0, _i18n.__)('Handmade', 'elementor'),
6900 subCategories: {
6901 '': (0, _i18n.__)('None', 'elementor'),
6902 doodle: (0, _i18n.__)('Doodle', 'elementor'),
6903 'line-art': (0, _i18n.__)('Line Art', 'elementor'),
6904 'oil-painting': (0, _i18n.__)('Oil Painting', 'elementor'),
6905 'pencil-drawing': (0, _i18n.__)('Pencil Drawing', 'elementor'),
6906 watercolor: (0, _i18n.__)('Watercolor', 'elementor')
6907 }
6908 },
6909 'digital-art': {
6910 label: (0, _i18n.__)('Digital Art', 'elementor'),
6911 subCategories: {
6912 '': (0, _i18n.__)('None', 'elementor'),
6913 amine: (0, _i18n.__)('Anime', 'elementor'),
6914 cartoon: (0, _i18n.__)('Cartoon', 'elementor'),
6915 cinematic: (0, _i18n.__)('Cinematic', 'elementor'),
6916 'comic-book': (0, _i18n.__)('Comic Book', 'elementor'),
6917 'fantasy-art': (0, _i18n.__)('Fantasy Art', 'elementor'),
6918 isometric: (0, _i18n.__)('Isometric', 'elementor'),
6919 vector: (0, _i18n.__)('Vector', 'elementor'),
6920 'pixel-art': (0, _i18n.__)('Pixel Art', 'elementor'),
6921 'low-poly': (0, _i18n.__)('Low Poly', 'elementor'),
6922 'neon-punk': (0, _i18n.__)('Neon Punk', 'elementor')
6923 }
6924 },
6925 '3d': {
6926 label: (0, _i18n.__)('3D', 'elementor'),
6927 subCategories: {
6928 '': (0, _i18n.__)('None', 'elementor'),
6929 clay: (0, _i18n.__)('Clay', 'elementor'),
6930 digital: (0, _i18n.__)('Digital', 'elementor'),
6931 origami: (0, _i18n.__)('Origami', 'elementor'),
6932 stone: (0, _i18n.__)('Stone', 'elementor'),
6933 wood: (0, _i18n.__)('Wood', 'elementor')
6934 }
6935 }
6936 };
6937 exports.IMAGE_PROMPT_CATEGORIES = IMAGE_PROMPT_CATEGORIES;
6938 var IMAGE_ASPECT_RATIO = {
6939 '1:1': {
6940 width: 512,
6941 height: 512,
6942 label: (0, _i18n.__)('Square', 'elementor') + ' (1:1)'
6943 },
6944 '3:2': {
6945 width: 640,
6946 height: 448,
6947 label: (0, _i18n.__)('Landscape', 'elementor') + ' (3:2)'
6948 },
6949 '4:3': {
6950 width: 640,
6951 height: 448,
6952 label: (0, _i18n.__)('Landscape', 'elementor') + ' (4:3)'
6953 },
6954 '16:9': {
6955 width: 704,
6956 height: 384,
6957 label: (0, _i18n.__)('Landscape', 'elementor') + ' (16:9)'
6958 },
6959 '2:3': {
6960 width: 448,
6961 height: 640,
6962 label: (0, _i18n.__)('Portrait', 'elementor') + ' (2:3)'
6963 },
6964 '3:4': {
6965 width: 448,
6966 height: 640,
6967 label: (0, _i18n.__)('Portrait', 'elementor') + ' (3:4)'
6968 },
6969 '9:16': {
6970 width: 384,
6971 height: 704,
6972 label: (0, _i18n.__)('Portrait', 'elementor') + ' (9:16)'
6973 }
6974 };
6975 exports.IMAGE_ASPECT_RATIO = IMAGE_ASPECT_RATIO;
6976
6977 /***/ }),
6978
6979 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js":
6980 /*!*************************************************************************************!*\
6981 !*** ../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js ***!
6982 \*************************************************************************************/
6983 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6984
6985 "use strict";
6986
6987
6988 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6989 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
6990 Object.defineProperty(exports, "__esModule", ({
6991 value: true
6992 }));
6993 exports.useEditImage = exports.SET_LOADING = exports.SET_ASPECT_RATIO = exports.RESET = exports.EditImageProvider = exports.EditImageContext = void 0;
6994 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
6995 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6996 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6997 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6998 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
6999 var _utils = __webpack_require__(/*! ../utils */ "../modules/ai/assets/js/editor/pages/form-media/utils/index.js");
7000 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7001 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7002 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7003 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7004 var EditImageContext = (0, _react.createContext)({});
7005 exports.EditImageContext = EditImageContext;
7006 var SET_STATE = 'SET_STATE';
7007 var SET_ASPECT_RATIO = 'SET_ASPECT_RATIO';
7008 exports.SET_ASPECT_RATIO = SET_ASPECT_RATIO;
7009 var SET_LOADING = 'SET_LOADING';
7010 exports.SET_LOADING = SET_LOADING;
7011 var RESET = 'RESET';
7012 exports.RESET = RESET;
7013 var initialValue = {
7014 id: '',
7015 url: '',
7016 isLoading: false,
7017 aspectRatio: '1:1'
7018 };
7019 var reducer = function reducer(state, _ref) {
7020 var type = _ref.type,
7021 payload = _ref.payload;
7022 switch (type) {
7023 case SET_STATE:
7024 return _objectSpread(_objectSpread({}, state), payload);
7025 case SET_ASPECT_RATIO:
7026 return _objectSpread(_objectSpread({}, state), {}, {
7027 aspectRatio: payload
7028 });
7029 case SET_LOADING:
7030 return _objectSpread(_objectSpread({}, state), {}, {
7031 isLoading: payload
7032 });
7033 case RESET:
7034 return initialValue;
7035 default:
7036 throw Error('Unknown action.');
7037 }
7038 };
7039 var EditImageProvider = function EditImageProvider(_ref2) {
7040 var children = _ref2.children,
7041 imageData = _ref2.imageData;
7042 var initialData = _objectSpread(_objectSpread({}, initialValue), imageData);
7043 var _useReducer = (0, _react.useReducer)(reducer, initialData),
7044 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7045 state = _useReducer2[0],
7046 dispatch = _useReducer2[1];
7047 return /*#__PURE__*/_react.default.createElement(EditImageContext.Provider, {
7048 value: {
7049 state: state,
7050 dispatch: dispatch
7051 }
7052 }, children);
7053 };
7054 exports.EditImageProvider = EditImageProvider;
7055 EditImageProvider.propTypes = {
7056 children: _propTypes.default.node,
7057 imageData: _propTypes.default.object
7058 };
7059 var useEditImage = function useEditImage() {
7060 var _useContext = (0, _react.useContext)(EditImageContext),
7061 state = _useContext.state,
7062 dispatch = _useContext.dispatch;
7063 var id = state.id,
7064 url = state.url,
7065 aspectRatio = state.aspectRatio,
7066 isLoading = state.isLoading;
7067 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
7068 width = _useImageSize.width,
7069 height = _useImageSize.height;
7070 var setEditImage = function setEditImage(payload) {
7071 return dispatch({
7072 type: SET_STATE,
7073 payload: payload
7074 });
7075 };
7076 var setAspectRatio = function setAspectRatio(payload) {
7077 return dispatch({
7078 type: SET_ASPECT_RATIO,
7079 payload: payload
7080 });
7081 };
7082 var reset = function reset() {
7083 return dispatch({
7084 type: RESET
7085 });
7086 };
7087
7088 // Getting the aspect ratio of the image.
7089 (0, _react.useEffect)(function () {
7090 if (!id) {
7091 return;
7092 }
7093 dispatch({
7094 type: SET_LOADING,
7095 payload: true
7096 });
7097 var img = new Image();
7098 img.src = url;
7099 img.onload = function () {
7100 var _getAspectRatioSizes = (0, _utils.getAspectRatioSizes)(img.width, img.height),
7101 ratio = _getAspectRatioSizes.ratio;
7102 dispatch({
7103 type: SET_STATE,
7104 payload: {
7105 aspectRatio: ratio,
7106 isLoading: false
7107 }
7108 });
7109 };
7110 }, [id]);
7111 return {
7112 editImage: state,
7113 isLoading: isLoading,
7114 aspectRatio: aspectRatio,
7115 width: width,
7116 height: height,
7117 setEditImage: setEditImage,
7118 setAspectRatio: setAspectRatio,
7119 reset: reset
7120 };
7121 };
7122 exports.useEditImage = useEditImage;
7123
7124 /***/ }),
7125
7126 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js":
7127 /*!*****************************************************************************************!*\
7128 !*** ../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js ***!
7129 \*****************************************************************************************/
7130 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7131
7132 "use strict";
7133
7134
7135 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7136 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7137 Object.defineProperty(exports, "__esModule", ({
7138 value: true
7139 }));
7140 exports.useGlobalActions = exports.GlobalActionsProvider = exports.GlobalActionsContext = void 0;
7141 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7142 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7143 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7144 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7145 var GlobalActionsContext = (0, _react.createContext)({});
7146 exports.GlobalActionsContext = GlobalActionsContext;
7147 var GlobalActionsProvider = function GlobalActionsProvider(_ref) {
7148 var actions = _ref.actions,
7149 children = _ref.children;
7150 return /*#__PURE__*/_react.default.createElement(GlobalActionsContext.Provider, {
7151 value: actions
7152 }, children);
7153 };
7154 exports.GlobalActionsProvider = GlobalActionsProvider;
7155 GlobalActionsProvider.propTypes = {
7156 actions: _propTypes.default.object,
7157 children: _propTypes.default.node
7158 };
7159 var useGlobalActions = function useGlobalActions() {
7160 return (0, _react.useContext)(GlobalActionsContext);
7161 };
7162 exports.useGlobalActions = useGlobalActions;
7163
7164 /***/ }),
7165
7166 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js":
7167 /*!******************************************************************************************!*\
7168 !*** ../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js ***!
7169 \******************************************************************************************/
7170 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7171
7172 "use strict";
7173
7174
7175 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7176 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7177 Object.defineProperty(exports, "__esModule", ({
7178 value: true
7179 }));
7180 exports.useGlobalSettings = exports.GlobalSettingsProvider = exports.GlobalSettingsContext = void 0;
7181 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7182 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7183 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7184 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7185 var GlobalSettingsContext = (0, _react.createContext)({});
7186 exports.GlobalSettingsContext = GlobalSettingsContext;
7187 var GlobalSettingsProvider = function GlobalSettingsProvider(_ref) {
7188 var settings = _ref.settings,
7189 children = _ref.children;
7190 return /*#__PURE__*/_react.default.createElement(GlobalSettingsContext.Provider, {
7191 value: settings
7192 }, children);
7193 };
7194 exports.GlobalSettingsProvider = GlobalSettingsProvider;
7195 GlobalSettingsProvider.propTypes = {
7196 settings: _propTypes.default.object,
7197 children: _propTypes.default.node
7198 };
7199 var useGlobalSettings = function useGlobalSettings() {
7200 return (0, _react.useContext)(GlobalSettingsContext);
7201 };
7202 exports.useGlobalSettings = useGlobalSettings;
7203
7204 /***/ }),
7205
7206 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js":
7207 /*!***********************************************************************************!*\
7208 !*** ../modules/ai/assets/js/editor/pages/form-media/context/location-context.js ***!
7209 \***********************************************************************************/
7210 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7211
7212 "use strict";
7213
7214
7215 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7216 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7217 Object.defineProperty(exports, "__esModule", ({
7218 value: true
7219 }));
7220 exports.useLocation = exports.RoutesContext = exports.NAVIGATE = exports.LocationProvider = exports.BACK = void 0;
7221 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7222 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7223 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
7224 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7225 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7226 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7227 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7228 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7229 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7230 var RoutesContext = (0, _react.createContext)(null);
7231 exports.RoutesContext = RoutesContext;
7232 var NAVIGATE = 'NAVIGATE';
7233 exports.NAVIGATE = NAVIGATE;
7234 var BACK = 'BACK';
7235 exports.BACK = BACK;
7236 var initialValue = {
7237 current: '',
7238 history: []
7239 };
7240 var reducer = function reducer(state, _ref) {
7241 var type = _ref.type,
7242 payload = _ref.payload;
7243 switch (type) {
7244 case NAVIGATE:
7245 return _objectSpread(_objectSpread({}, state), {}, {
7246 current: payload,
7247 history: [].concat((0, _toConsumableArray2.default)(state.history), [payload])
7248 });
7249 case BACK:
7250 return _objectSpread(_objectSpread({}, state), {}, {
7251 current: state.history[state.history.length - 2],
7252 history: state.history.slice(0, state.history.length - 1)
7253 });
7254 default:
7255 return state;
7256 }
7257 };
7258 var LocationProvider = function LocationProvider(_ref2) {
7259 var children = _ref2.children;
7260 var _useReducer = (0, _react.useReducer)(reducer, initialValue),
7261 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7262 state = _useReducer2[0],
7263 dispatch = _useReducer2[1];
7264 return /*#__PURE__*/_react.default.createElement(RoutesContext.Provider, {
7265 value: {
7266 state: state,
7267 dispatch: dispatch
7268 }
7269 }, children);
7270 };
7271 exports.LocationProvider = LocationProvider;
7272 LocationProvider.propTypes = {
7273 children: _propTypes.default.node
7274 };
7275 var useLocation = function useLocation() {
7276 var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7277 current = _ref3.current;
7278 var _useContext = (0, _react.useContext)(RoutesContext),
7279 state = _useContext.state,
7280 dispatch = _useContext.dispatch;
7281 var navigate = function navigate(location) {
7282 dispatch({
7283 type: NAVIGATE,
7284 payload: location
7285 });
7286 };
7287 var back = function back() {
7288 dispatch({
7289 type: BACK
7290 });
7291 };
7292 (0, _react.useEffect)(function () {
7293 if (current) {
7294 navigate(current);
7295 }
7296 }, []);
7297 return {
7298 current: state.current,
7299 history: state.history,
7300 navigate: navigate,
7301 back: back
7302 };
7303 };
7304 exports.useLocation = useLocation;
7305
7306 /***/ }),
7307
7308 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js":
7309 /*!**********************************************************************************!*\
7310 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js ***!
7311 \**********************************************************************************/
7312 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7313
7314 "use strict";
7315
7316
7317 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7318 Object.defineProperty(exports, "__esModule", ({
7319 value: true
7320 }));
7321 exports["default"] = void 0;
7322 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
7323 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
7324 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
7325 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7326 var _editImageContext = __webpack_require__(/*! ../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7327 var _useImageUpload2 = _interopRequireDefault(__webpack_require__(/*! ./use-image-upload */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js"));
7328 var _globalActionsContext = __webpack_require__(/*! ../context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7329 var _excluded = ["image"];
7330 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7331 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7332 var normalizeImageData = function normalizeImageData(imageToUpload) {
7333 if (!(imageToUpload !== null && imageToUpload !== void 0 && imageToUpload.imageUrl)) {
7334 return imageToUpload;
7335 }
7336 return _objectSpread(_objectSpread({}, imageToUpload), {}, {
7337 image_url: imageToUpload.imageUrl,
7338 use_gallery_image: true
7339 });
7340 };
7341 var useImageActions = function useImageActions() {
7342 var _useEditImage = (0, _editImageContext.useEditImage)(),
7343 editImage = _useEditImage.editImage,
7344 setEditImage = _useEditImage.setEditImage;
7345 var _useGlobalActions = (0, _globalActionsContext.useGlobalActions)(),
7346 setControlImage = _useGlobalActions.setControlImage,
7347 saveAndClose = _useGlobalActions.saveAndClose;
7348 var _useImageUpload = (0, _useImageUpload2.default)(),
7349 attachmentData = _useImageUpload.attachmentData,
7350 isUploading = _useImageUpload.isUploading,
7351 uploadError = _useImageUpload.uploadError,
7352 uploadImage = _useImageUpload.upload,
7353 resetUpload = _useImageUpload.resetUpload;
7354 var upload = function upload(imageToUpload, prompt) {
7355 return uploadImage({
7356 image: normalizeImageData(imageToUpload),
7357 prompt: prompt || imageToUpload.prompt
7358 });
7359 };
7360 var getFinalImage = /*#__PURE__*/function () {
7361 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(imageToUpload, prompt) {
7362 var isImageAlreadyUploaded, image, _result, result;
7363 return _regenerator.default.wrap(function _callee$(_context) {
7364 while (1) switch (_context.prev = _context.next) {
7365 case 0:
7366 isImageAlreadyUploaded = editImage.url === imageToUpload.url;
7367 if (!isImageAlreadyUploaded) {
7368 _context.next = 4;
7369 break;
7370 }
7371 // Removing inner image property to avoid duplicated uploads.
7372 image = editImage.image, _result = (0, _objectWithoutProperties2.default)(editImage, _excluded);
7373 return _context.abrupt("return", _result);
7374 case 4:
7375 _context.next = 6;
7376 return upload(imageToUpload, prompt);
7377 case 6:
7378 result = _context.sent;
7379 return _context.abrupt("return", result.image);
7380 case 8:
7381 case "end":
7382 return _context.stop();
7383 }
7384 }, _callee);
7385 }));
7386 return function getFinalImage(_x, _x2) {
7387 return _ref.apply(this, arguments);
7388 };
7389 }();
7390 var edit = /*#__PURE__*/function () {
7391 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(imageToUpload, prompt) {
7392 var result;
7393 return _regenerator.default.wrap(function _callee2$(_context2) {
7394 while (1) switch (_context2.prev = _context2.next) {
7395 case 0:
7396 _context2.next = 2;
7397 return upload(imageToUpload, prompt);
7398 case 2:
7399 result = _context2.sent;
7400 setEditImage(result.image);
7401 case 4:
7402 case "end":
7403 return _context2.stop();
7404 }
7405 }, _callee2);
7406 }));
7407 return function edit(_x3, _x4) {
7408 return _ref2.apply(this, arguments);
7409 };
7410 }();
7411 var use = /*#__PURE__*/function () {
7412 var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(imageToUpload, prompt) {
7413 var result;
7414 return _regenerator.default.wrap(function _callee3$(_context3) {
7415 while (1) switch (_context3.prev = _context3.next) {
7416 case 0:
7417 _context3.next = 2;
7418 return getFinalImage(imageToUpload, prompt);
7419 case 2:
7420 result = _context3.sent;
7421 setControlImage(result);
7422 saveAndClose();
7423 case 5:
7424 case "end":
7425 return _context3.stop();
7426 }
7427 }, _callee3);
7428 }));
7429 return function use(_x5, _x6) {
7430 return _ref3.apply(this, arguments);
7431 };
7432 }();
7433 return {
7434 use: use,
7435 edit: edit,
7436 reset: resetUpload,
7437 error: uploadError,
7438 data: attachmentData,
7439 isLoading: isUploading
7440 };
7441 };
7442 var _default = useImageActions;
7443 exports["default"] = _default;
7444
7445 /***/ }),
7446
7447 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js":
7448 /*!*********************************************************************************!*\
7449 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js ***!
7450 \*********************************************************************************/
7451 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7452
7453 "use strict";
7454
7455
7456 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7457 Object.defineProperty(exports, "__esModule", ({
7458 value: true
7459 }));
7460 exports["default"] = void 0;
7461 var _react = __webpack_require__(/*! react */ "react");
7462 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
7463 var _globalActionsContext = __webpack_require__(/*! ../context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7464 var useImagePrompt = function useImagePrompt() {
7465 var promptData = _usePrompt.default.apply(void 0, arguments);
7466 var _useGlobalActions = (0, _globalActionsContext.useGlobalActions)(),
7467 setHasUnsavedChanges = _useGlobalActions.setHasUnsavedChanges,
7468 state = _useGlobalActions.state;
7469 (0, _react.useEffect)(function () {
7470 var _promptData$data;
7471 if ((_promptData$data = promptData.data) !== null && _promptData$data !== void 0 && _promptData$data.result) {
7472 // Updating the hasUnsavedChanges global state that will trigger the unsaved changes dialog.
7473 setHasUnsavedChanges(true);
7474 }
7475 }, [promptData.data]);
7476 (0, _react.useEffect)(function () {
7477 if (state.isAllSaved) {
7478 promptData.sendUsageData();
7479 }
7480 }, [state.isAllSaved]);
7481 return promptData;
7482 };
7483 var _default = useImagePrompt;
7484 exports["default"] = _default;
7485
7486 /***/ }),
7487
7488 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js":
7489 /*!*******************************************************************************!*\
7490 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js ***!
7491 \*******************************************************************************/
7492 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7493
7494 "use strict";
7495
7496
7497 Object.defineProperty(exports, "__esModule", ({
7498 value: true
7499 }));
7500 exports["default"] = void 0;
7501 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7502 var useImageSize = function useImageSize(aspectRatio) {
7503 var _IMAGE_ASPECT_RATIO$a = _constants.IMAGE_ASPECT_RATIO[aspectRatio],
7504 width = _IMAGE_ASPECT_RATIO$a.width,
7505 height = _IMAGE_ASPECT_RATIO$a.height;
7506 return {
7507 width: width,
7508 height: height
7509 };
7510 };
7511 var _default = useImageSize;
7512 exports["default"] = _default;
7513
7514 /***/ }),
7515
7516 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js":
7517 /*!*********************************************************************************!*\
7518 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js ***!
7519 \*********************************************************************************/
7520 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7521
7522 "use strict";
7523
7524
7525 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7526 Object.defineProperty(exports, "__esModule", ({
7527 value: true
7528 }));
7529 exports["default"] = void 0;
7530 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7531 var _react = __webpack_require__(/*! react */ "react");
7532 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
7533 var useImageUpload = function useImageUpload() {
7534 var _useState = (0, _react.useState)(false),
7535 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7536 isUploading = _useState2[0],
7537 setIsUploading = _useState2[1];
7538 var _useState3 = (0, _react.useState)(''),
7539 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
7540 uploadError = _useState4[0],
7541 setUploadError = _useState4[1];
7542 var _useState5 = (0, _react.useState)({}),
7543 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
7544 attachmentData = _useState6[0],
7545 setAttachmentData = _useState6[1];
7546 var upload = function upload(_ref) {
7547 var image = _ref.image,
7548 prompt = _ref.prompt;
7549 return new Promise(function (resolve, reject) {
7550 setUploadError('');
7551 setAttachmentData({});
7552 setIsUploading(true);
7553 (0, _api.uploadImage)({
7554 image: image,
7555 prompt: prompt
7556 }).then(function (result) {
7557 setAttachmentData(result);
7558 resolve(result);
7559 }).catch(function (err) {
7560 var error = (err === null || err === void 0 ? void 0 : err.responseText) || err;
7561 setUploadError(error);
7562 reject(error);
7563 }).finally(function () {
7564 return setIsUploading(false);
7565 });
7566 });
7567 };
7568 var resetUpload = function resetUpload() {
7569 setUploadError('');
7570 setAttachmentData({});
7571 setIsUploading(false);
7572 };
7573 return {
7574 upload: upload,
7575 resetUpload: resetUpload,
7576 isUploading: isUploading,
7577 uploadError: uploadError,
7578 attachmentData: attachmentData
7579 };
7580 };
7581 var _default = useImageUpload;
7582 exports["default"] = _default;
7583
7584 /***/ }),
7585
7586 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js":
7587 /*!************************************************************************************!*\
7588 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js ***!
7589 \************************************************************************************/
7590 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7591
7592 "use strict";
7593
7594
7595 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7596 Object.defineProperty(exports, "__esModule", ({
7597 value: true
7598 }));
7599 exports["default"] = exports.IMAGE_ZOOM = exports.IMAGE_UPSCALE = exports.IMAGE_TYPE = exports.IMAGE_STYLE = exports.IMAGE_STRENGTH = exports.IMAGE_RATIO = void 0;
7600 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7601 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7602 var _react = __webpack_require__(/*! react */ "react");
7603 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7604 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7605 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7606 var IMAGE_TYPE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_TYPE,
7607 IMAGE_STYLE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_STYLE,
7608 IMAGE_STRENGTH = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_STRENGTH,
7609 IMAGE_RATIO = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_RATIO,
7610 IMAGE_ZOOM = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_ZOOM,
7611 IMAGE_UPSCALE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_UPSCALE;
7612 exports.IMAGE_UPSCALE = IMAGE_UPSCALE;
7613 exports.IMAGE_ZOOM = IMAGE_ZOOM;
7614 exports.IMAGE_RATIO = IMAGE_RATIO;
7615 exports.IMAGE_STRENGTH = IMAGE_STRENGTH;
7616 exports.IMAGE_STYLE = IMAGE_STYLE;
7617 exports.IMAGE_TYPE = IMAGE_TYPE;
7618 var DEFAULT_TYPE = '';
7619 var DEFAULT_STYLE = '';
7620 var DEFAULT_STRENGTH = 0;
7621 var DEFAULT_RATIO = '1:1';
7622 var DEFAULT_ZOOM = '1';
7623 var DEFAULT_UPSCALE = '512';
7624 var usePromptSettings = function usePromptSettings() {
7625 var _useState3;
7626 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7627 _ref$type = _ref.type,
7628 type = _ref$type === void 0 ? DEFAULT_TYPE : _ref$type,
7629 _ref$style = _ref.style,
7630 style = _ref$style === void 0 ? DEFAULT_STYLE : _ref$style,
7631 _ref$imageWeight = _ref.imageWeight,
7632 imageWeight = _ref$imageWeight === void 0 ? DEFAULT_STRENGTH : _ref$imageWeight,
7633 _ref$aspectRatio = _ref.aspectRatio,
7634 aspectRatio = _ref$aspectRatio === void 0 ? DEFAULT_RATIO : _ref$aspectRatio,
7635 _ref$zoom = _ref.zoom,
7636 zoom = _ref$zoom === void 0 ? DEFAULT_ZOOM : _ref$zoom,
7637 _ref$upScaleTo = _ref.upScaleTo,
7638 upScaleTo = _ref$upScaleTo === void 0 ? DEFAULT_UPSCALE : _ref$upScaleTo;
7639 var _useState = (0, _react.useState)((_useState3 = {}, (0, _defineProperty2.default)(_useState3, IMAGE_TYPE, type), (0, _defineProperty2.default)(_useState3, IMAGE_STYLE, style), (0, _defineProperty2.default)(_useState3, IMAGE_STRENGTH, imageWeight), (0, _defineProperty2.default)(_useState3, IMAGE_RATIO, aspectRatio), (0, _defineProperty2.default)(_useState3, IMAGE_ZOOM, zoom), (0, _defineProperty2.default)(_useState3, IMAGE_UPSCALE, upScaleTo), _useState3)),
7640 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7641 settings = _useState2[0],
7642 setSettings = _useState2[1];
7643 var updateSettings = function updateSettings(updated) {
7644 return setSettings(function (prev) {
7645 return _objectSpread(_objectSpread({}, prev), updated);
7646 });
7647 };
7648 var resetSettings = function resetSettings() {
7649 var _setSettings;
7650 setSettings((_setSettings = {}, (0, _defineProperty2.default)(_setSettings, IMAGE_TYPE, type), (0, _defineProperty2.default)(_setSettings, IMAGE_STYLE, DEFAULT_STYLE), (0, _defineProperty2.default)(_setSettings, IMAGE_STRENGTH, DEFAULT_STRENGTH), (0, _defineProperty2.default)(_setSettings, IMAGE_RATIO, aspectRatio), (0, _defineProperty2.default)(_setSettings, IMAGE_ZOOM, DEFAULT_ZOOM), (0, _defineProperty2.default)(_setSettings, IMAGE_UPSCALE, DEFAULT_UPSCALE), _setSettings));
7651 };
7652 return {
7653 settings: settings,
7654 updateSettings: updateSettings,
7655 resetSettings: resetSettings
7656 };
7657 };
7658 var _default = usePromptSettings;
7659 exports["default"] = _default;
7660
7661 /***/ }),
7662
7663 /***/ "../modules/ai/assets/js/editor/pages/form-media/index.js":
7664 /*!****************************************************************!*\
7665 !*** ../modules/ai/assets/js/editor/pages/form-media/index.js ***!
7666 \****************************************************************/
7667 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7668
7669 "use strict";
7670
7671
7672 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7673 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7674 Object.defineProperty(exports, "__esModule", ({
7675 value: true
7676 }));
7677 exports["default"] = void 0;
7678 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7679 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
7680 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7681 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7682 var _locationContext = __webpack_require__(/*! ./context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
7683 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
7684 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7685 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
7686 var _mediaOutlet = _interopRequireDefault(__webpack_require__(/*! ./media-outlet */ "../modules/ai/assets/js/editor/pages/form-media/media-outlet.js"));
7687 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js"));
7688 var _editImageContext = __webpack_require__(/*! ./context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7689 var _globalActionsContext = __webpack_require__(/*! ./context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7690 var _globalSettingsContext = __webpack_require__(/*! ./context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
7691 var _promptHistory = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-history */ "../modules/ai/assets/js/editor/components/prompt-history/index.js"));
7692 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7693 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7694 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7695 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7696 var initialData = {
7697 isAllSaved: false,
7698 hasUnsavedChanges: false
7699 };
7700 var SET_UNSAVED_CHANGES = 'SET_UNSAVED_CHANGES';
7701 var SAVE_AND_CLOSE = 'SAVE_AND_CLOSE';
7702 var reducer = function reducer(state, _ref) {
7703 var type = _ref.type,
7704 payload = _ref.payload;
7705 switch (type) {
7706 case SET_UNSAVED_CHANGES:
7707 return _objectSpread(_objectSpread({}, state), {}, {
7708 hasUnsavedChanges: payload,
7709 isAllSaved: payload ? false : state.isAllSaved
7710 });
7711 case SAVE_AND_CLOSE:
7712 return _objectSpread(_objectSpread({}, state), {}, {
7713 isAllSaved: true,
7714 hasUnsavedChanges: false
7715 });
7716 default:
7717 throw Error('Unknown action.');
7718 }
7719 };
7720 var FormMedia = function FormMedia(_ref2) {
7721 var onClose = _ref2.onClose,
7722 DialogProps = _ref2.DialogProps,
7723 getControlValue = _ref2.getControlValue,
7724 controlView = _ref2.controlView,
7725 additionalOptions = _ref2.additionalOptions,
7726 maybeRenderUpgradeChip = _ref2.maybeRenderUpgradeChip,
7727 hasSubscription = _ref2.hasSubscription,
7728 usagePercentage = _ref2.usagePercentage;
7729 var _useReducer = (0, _react.useReducer)(reducer, initialData),
7730 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7731 state = _useReducer2[0],
7732 dispatch = _useReducer2[1];
7733 var _useState = (0, _react.useState)(false),
7734 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7735 showUnsavedChangeAlert = _useState2[0],
7736 setShowUnsavedChangeAlert = _useState2[1];
7737 var setHasUnsavedChanges = function setHasUnsavedChanges(payload) {
7738 return dispatch({
7739 type: SET_UNSAVED_CHANGES,
7740 payload: payload
7741 });
7742 };
7743 var saveAndClose = function saveAndClose() {
7744 return dispatch({
7745 type: SAVE_AND_CLOSE
7746 });
7747 };
7748 var onCloseIntent = function onCloseIntent() {
7749 if (state.hasUnsavedChanges) {
7750 setShowUnsavedChangeAlert(true);
7751 return;
7752 }
7753 onClose();
7754 };
7755 var editImageInitialData = getControlValue() === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultValue) ? {} : getControlValue();
7756 var globalSettings = {
7757 initialImageType: (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultImageType) || '',
7758 hasSubscription: hasSubscription,
7759 usagePercentage: usagePercentage
7760 };
7761 var globalActions = {
7762 state: state,
7763 getControlValue: getControlValue,
7764 saveAndClose: saveAndClose,
7765 close: onCloseIntent,
7766 setHasUnsavedChanges: setHasUnsavedChanges,
7767 setControlImage: function setControlImage(image) {
7768 controlView.setSettingsModel(image);
7769 controlView.applySavedValue();
7770 }
7771 };
7772 (0, _react.useEffect)(function () {
7773 if (state.isAllSaved) {
7774 // Closing the app only once the state was updated, to allow registered effects to take place before closing.
7775 onClose();
7776 }
7777 }, [state.isAllSaved]);
7778 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
7779 id: "e-form-media",
7780 onClose: function onClose() {
7781 return onCloseIntent();
7782 },
7783 maxWidth: "lg"
7784 }, DialogProps), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
7785 onClose: function onClose() {
7786 return onCloseIntent();
7787 }
7788 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), /*#__PURE__*/_react.default.createElement(_globalSettingsContext.GlobalSettingsProvider, {
7789 settings: globalSettings
7790 }, /*#__PURE__*/_react.default.createElement(_globalActionsContext.GlobalActionsProvider, {
7791 actions: globalActions
7792 }, /*#__PURE__*/_react.default.createElement(_locationContext.LocationProvider, null, /*#__PURE__*/_react.default.createElement(_editImageContext.EditImageProvider, {
7793 imageData: editImageInitialData
7794 }, /*#__PURE__*/_react.default.createElement(_mediaOutlet.default, null)))))), showUnsavedChangeAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
7795 onClose: onClose,
7796 onCancel: function onCancel() {
7797 return setShowUnsavedChangeAlert(false);
7798 },
7799 open: true
7800 }));
7801 };
7802 FormMedia.propTypes = {
7803 onClose: _propTypes.default.func.isRequired,
7804 DialogProps: _propTypes.default.object,
7805 getControlValue: _propTypes.default.func.isRequired,
7806 controlView: _propTypes.default.object,
7807 additionalOptions: _propTypes.default.object,
7808 credits: _propTypes.default.number,
7809 maybeRenderUpgradeChip: _propTypes.default.func,
7810 hasSubscription: _propTypes.default.bool,
7811 usagePercentage: _propTypes.default.number
7812 };
7813 var _default = FormMedia;
7814 exports["default"] = _default;
7815
7816 /***/ }),
7817
7818 /***/ "../modules/ai/assets/js/editor/pages/form-media/media-outlet.js":
7819 /*!***********************************************************************!*\
7820 !*** ../modules/ai/assets/js/editor/pages/form-media/media-outlet.js ***!
7821 \***********************************************************************/
7822 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7823
7824 "use strict";
7825
7826
7827 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7828 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7829 Object.defineProperty(exports, "__esModule", ({
7830 value: true
7831 }));
7832 exports["default"] = void 0;
7833 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7834 var _view = _interopRequireDefault(__webpack_require__(/*! ./components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
7835 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
7836 var _constants = __webpack_require__(/*! ./constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7837 var _generate = _interopRequireDefault(__webpack_require__(/*! ./views/generate */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js"));
7838 var _imageTools = _interopRequireDefault(__webpack_require__(/*! ./views/image-tools */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js"));
7839 var _resize = _interopRequireDefault(__webpack_require__(/*! ./views/resize */ "../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js"));
7840 var _inPainting = _interopRequireDefault(__webpack_require__(/*! ./views/in-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js"));
7841 var _outPainting = _interopRequireDefault(__webpack_require__(/*! ./views/out-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js"));
7842 var _variations = _interopRequireDefault(__webpack_require__(/*! ./views/variations */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js"));
7843 var _replaceBackground = _interopRequireDefault(__webpack_require__(/*! ./views/replace-background */ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js"));
7844 var _removeBackground = _interopRequireDefault(__webpack_require__(/*! ./views/remove-background */ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js"));
7845 var _locationContext = __webpack_require__(/*! ./context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
7846 var _editImageContext = __webpack_require__(/*! ./context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7847 var _promptHistoryActionContext = __webpack_require__(/*! ../../components/prompt-history/context/prompt-history-action-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js");
7848 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7849 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7850 var MediaOutlet = function MediaOutlet() {
7851 var _useEditImage = (0, _editImageContext.useEditImage)(),
7852 editImage = _useEditImage.editImage;
7853 var _useLocation = (0, _locationContext.useLocation)({
7854 current: _constants.LOCATIONS.GENERATE
7855 }),
7856 current = _useLocation.current,
7857 navigate = _useLocation.navigate;
7858 (0, _react.useEffect)(function () {
7859 var isNotPlaceholderImage = editImage.id;
7860 if (isNotPlaceholderImage) {
7861 navigate(_constants.LOCATIONS.IMAGE_TOOLS);
7862 }
7863 }, [editImage.id]);
7864 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
7865 type: _promptHistoryActionContext.ACTION_TYPES.RESTORE,
7866 handler: function handler() {
7867 if (current !== _constants.LOCATIONS.GENERATE) {
7868 navigate(_constants.LOCATIONS.GENERATE);
7869 }
7870 }
7871 }]);
7872 if (!current) {
7873 return /*#__PURE__*/_react.default.createElement(_view.default, {
7874 alignItems: "center"
7875 }, /*#__PURE__*/_react.default.createElement(_loader.default, null));
7876 }
7877 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, current === _constants.LOCATIONS.GENERATE && /*#__PURE__*/_react.default.createElement(_generate.default, null), current === _constants.LOCATIONS.IMAGE_TOOLS && /*#__PURE__*/_react.default.createElement(_imageTools.default, null), current === _constants.LOCATIONS.VARIATIONS && /*#__PURE__*/_react.default.createElement(_variations.default, null), current === _constants.LOCATIONS.IN_PAINTING && /*#__PURE__*/_react.default.createElement(_inPainting.default, null), current === _constants.LOCATIONS.OUT_PAINTING && /*#__PURE__*/_react.default.createElement(_outPainting.default, null), current === _constants.LOCATIONS.RESIZE && /*#__PURE__*/_react.default.createElement(_resize.default, null), current === _constants.LOCATIONS.REPLACE_BACKGROUND && /*#__PURE__*/_react.default.createElement(_replaceBackground.default, null), current === _constants.LOCATIONS.REMOVE_BACKGROUND && /*#__PURE__*/_react.default.createElement(_removeBackground.default, null));
7878 };
7879 var _default = MediaOutlet;
7880 exports["default"] = _default;
7881
7882 /***/ }),
7883
7884 /***/ "../modules/ai/assets/js/editor/pages/form-media/utils/index.js":
7885 /*!**********************************************************************!*\
7886 !*** ../modules/ai/assets/js/editor/pages/form-media/utils/index.js ***!
7887 \**********************************************************************/
7888 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7889
7890 "use strict";
7891
7892
7893 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7894 Object.defineProperty(exports, "__esModule", ({
7895 value: true
7896 }));
7897 exports.getAspectRatioSizes = void 0;
7898 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7899 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7900 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7901 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7902 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7903 var getAspectRatioSizes = function getAspectRatioSizes(width, height) {
7904 var aspectRatios = Object.keys(_constants.IMAGE_ASPECT_RATIO);
7905 var targetRatio = width / height;
7906 var closestRatio = aspectRatios[0];
7907 var minDiff = Infinity;
7908 aspectRatios.forEach(function (ratio) {
7909 var _ratio$split$map = ratio.split(':').map(Number),
7910 _ratio$split$map2 = (0, _slicedToArray2.default)(_ratio$split$map, 2),
7911 w = _ratio$split$map2[0],
7912 h = _ratio$split$map2[1];
7913 var diff = Math.abs(targetRatio - w / h);
7914 if (diff < minDiff) {
7915 minDiff = diff;
7916 closestRatio = ratio;
7917 }
7918 });
7919 return _objectSpread({
7920 ratio: closestRatio
7921 }, _constants.IMAGE_ASPECT_RATIO[closestRatio]);
7922 };
7923 exports.getAspectRatioSizes = getAspectRatioSizes;
7924
7925 /***/ }),
7926
7927 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js":
7928 /*!****************************************************************************************************!*\
7929 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js ***!
7930 \****************************************************************************************************/
7931 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7932
7933 "use strict";
7934
7935
7936 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7937 Object.defineProperty(exports, "__esModule", ({
7938 value: true
7939 }));
7940 exports["default"] = void 0;
7941 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7942 var _react = __webpack_require__(/*! react */ "react");
7943 var _useImagesPreload2 = _interopRequireDefault(__webpack_require__(/*! ../../../../../hooks/use-images-preload */ "../modules/ai/assets/js/editor/hooks/use-images-preload.js"));
7944 var _useSessionStorage2 = _interopRequireDefault(__webpack_require__(/*! ../../../../../hooks/use-session-storage */ "../modules/ai/assets/js/editor/hooks/use-session-storage.js"));
7945 var shuffleImages = function shuffleImages(images) {
7946 return images.map(function (image) {
7947 return [Math.random(), image];
7948 }).sort(function (_ref, _ref2) {
7949 var _ref3 = (0, _slicedToArray2.default)(_ref, 1),
7950 a = _ref3[0];
7951 var _ref4 = (0, _slicedToArray2.default)(_ref2, 1),
7952 b = _ref4[0];
7953 return a - b;
7954 }).map(function (_ref5) {
7955 var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
7956 image = _ref6[1];
7957 return image;
7958 });
7959 };
7960 var useSuggestedImages = function useSuggestedImages(_ref7) {
7961 var selectedType = _ref7.selectedType;
7962 var _useState = (0, _react.useState)(false),
7963 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7964 isLoading = _useState2[0],
7965 setIsLoading = _useState2[1];
7966 var _useSessionStorage = (0, _useSessionStorage2.default)('ai-image-gallery', {
7967 images: []
7968 }),
7969 data = _useSessionStorage.data,
7970 setStateAndSessionData = _useSessionStorage.setStateAndSessionData;
7971 var _useImagesPreload = (0, _useImagesPreload2.default)(),
7972 ready = _useImagesPreload.ready,
7973 preloadImages = _useImagesPreload.preloadImages;
7974 var imagesData = (0, _react.useMemo)(function () {
7975 var shuffledImages = shuffleImages(data.images);
7976 if (!selectedType) {
7977 return shuffledImages;
7978 }
7979 var categoryImages = shuffledImages.filter(function (_ref8) {
7980 var imageType = _ref8.imageType;
7981 return imageType.includes(selectedType);
7982 });
7983
7984 // Some categories don't have images, so we TEMPORARLY fallback to the shuffled images.
7985 return categoryImages.length ? categoryImages : shuffledImages;
7986 }, [selectedType, data]);
7987 var fetchImages = function fetchImages() {
7988 setIsLoading(true);
7989 fetch('https://my.elementor.com/ai/images-prompt-gallery/ai-gallery.json').then(function (response) {
7990 return response.json();
7991 }).then(function (json) {
7992 return setStateAndSessionData(json);
7993 })
7994 // eslint-disable-next-line no-console
7995 .catch(function (e) {
7996 return console.log(e.message);
7997 }).finally(function () {
7998 return setIsLoading(false);
7999 });
8000 };
8001 (0, _react.useEffect)(function () {
8002 if (0 === (data === null || data === void 0 ? void 0 : data.images.length)) {
8003 fetchImages();
8004 return;
8005 }
8006 preloadImages(data.images.map(function (_ref9) {
8007 var thumbnailUrl = _ref9.thumbnailUrl;
8008 return thumbnailUrl;
8009 }));
8010 }, [data]);
8011 return {
8012 imagesData: imagesData,
8013 isLoading: !ready || isLoading
8014 };
8015 };
8016 var _default = useSuggestedImages;
8017 exports["default"] = _default;
8018
8019 /***/ }),
8020
8021 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js":
8022 /*!*************************************************************************************************!*\
8023 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js ***!
8024 \*************************************************************************************************/
8025 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8026
8027 "use strict";
8028
8029
8030 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8031 Object.defineProperty(exports, "__esModule", ({
8032 value: true
8033 }));
8034 exports["default"] = void 0;
8035 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8036 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8037 var useTextToImage = function useTextToImage(initialValue) {
8038 return (0, _useImagePrompt.default)(_api.getTextToImageGeneration, initialValue);
8039 };
8040 var _default = useTextToImage;
8041 exports["default"] = _default;
8042
8043 /***/ }),
8044
8045 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js":
8046 /*!*******************************************************************************!*\
8047 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js ***!
8048 \*******************************************************************************/
8049 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8050
8051 "use strict";
8052
8053
8054 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8055 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8056 Object.defineProperty(exports, "__esModule", ({
8057 value: true
8058 }));
8059 exports["default"] = void 0;
8060 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8061 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
8062 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8063 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8064 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8065 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8066 var _gallery = _interopRequireDefault(__webpack_require__(/*! ../../components/gallery */ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js"));
8067 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8068 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8069 var _imageTypeSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-type-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js"));
8070 var _imageStyleSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-style-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js"));
8071 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
8072 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8073 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8074 var _generateImagesSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-images-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js"));
8075 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8076 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ../../components/image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
8077 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8078 var _useSuggestedImages2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-suggested-images */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js"));
8079 var _useTextToImage2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-text-to-image */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js"));
8080 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8081 var _globalSettingsContext = __webpack_require__(/*! ../../context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
8082 var _promptHistoryActionContext = __webpack_require__(/*! ../../../../components/prompt-history/context/prompt-history-action-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js");
8083 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
8084 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8085 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8086 var getPromptPlaceholder = function getPromptPlaceholder(images) {
8087 if (!(images !== null && images !== void 0 && images.length)) {
8088 return (0, _i18n.__)('describe your image', 'elementor');
8089 }
8090 var randomImage = images[Math.floor(Math.random() * images.length)];
8091 return randomImage.prompt;
8092 };
8093 var Generate = function Generate() {
8094 var _useState = (0, _react.useState)(''),
8095 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8096 prompt = _useState2[0],
8097 setPrompt = _useState2[1];
8098 var _useGlobalSettings = (0, _globalSettingsContext.useGlobalSettings)(),
8099 initialImageType = _useGlobalSettings.initialImageType;
8100 var _usePromptSettings = (0, _usePromptSettings2.default)({
8101 type: initialImageType
8102 }),
8103 settings = _usePromptSettings.settings,
8104 updateSettings = _usePromptSettings.updateSettings,
8105 resetSettings = _usePromptSettings.resetSettings;
8106 var _useSuggestedImages = (0, _useSuggestedImages2.default)({
8107 selectedType: settings[_usePromptSettings2.IMAGE_TYPE]
8108 }),
8109 suggestedImages = _useSuggestedImages.imagesData,
8110 isPreloading = _useSuggestedImages.isLoading;
8111 var promptPlaceholder = getPromptPlaceholder(suggestedImages);
8112 var _useTextToImage = (0, _useTextToImage2.default)({}),
8113 generatedImages = _useTextToImage.data,
8114 setResult = _useTextToImage.setResult,
8115 send = _useTextToImage.send,
8116 isGenerating = _useTextToImage.isLoading,
8117 error = _useTextToImage.error,
8118 reset = _useTextToImage.reset;
8119 var _useImageActions = (0, _useImageActions2.default)(),
8120 use = _useImageActions.use,
8121 edit = _useImageActions.edit,
8122 isUploading = _useImageActions.isLoading;
8123 var isLoading = isPreloading || isGenerating || isUploading;
8124
8125 // The aspect ratio in the content view should only be updated when the generated images are updated.
8126 var generateAspectRatio = (0, _react.useMemo)(function () {
8127 return settings[_usePromptSettings2.IMAGE_RATIO];
8128 }, [generatedImages === null || generatedImages === void 0 ? void 0 : generatedImages.result]);
8129 var handleSubmit = function handleSubmit(event) {
8130 event.preventDefault();
8131 send(prompt, settings);
8132 };
8133 var handleCopyPrompt = function handleCopyPrompt(_ref) {
8134 var _updateSettings;
8135 var selectedPrompt = _ref.prompt,
8136 imageType = _ref.imageType;
8137 setPrompt(selectedPrompt);
8138 var _imageType$split = imageType.split('/'),
8139 _imageType$split2 = (0, _slicedToArray2.default)(_imageType$split, 2),
8140 type = _imageType$split2[0],
8141 style = _imageType$split2[1];
8142 updateSettings((_updateSettings = {}, (0, _defineProperty2.default)(_updateSettings, _usePromptSettings2.IMAGE_TYPE, type), (0, _defineProperty2.default)(_updateSettings, _usePromptSettings2.IMAGE_STYLE, style), _updateSettings));
8143 };
8144 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
8145 type: _promptHistoryActionContext.ACTION_TYPES.RESTORE,
8146 handler: function handler(action) {
8147 var _action$data, _action$data2, _action$data3, _action$data4;
8148 handleCopyPrompt({
8149 prompt: (_action$data = action.data) === null || _action$data === void 0 ? void 0 : _action$data.prompt,
8150 imageType: ((_action$data2 = action.data) === null || _action$data2 === void 0 ? void 0 : _action$data2.imageType) || ''
8151 });
8152 updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, (_action$data3 = action.data) === null || _action$data3 === void 0 ? void 0 : _action$data3.ratio));
8153 setResult((_action$data4 = action.data) === null || _action$data4 === void 0 ? void 0 : _action$data4.images, action.id);
8154 }
8155 }]);
8156 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8157 primary: (0, _i18n.__)('Imagine anything create everything', 'elementor'),
8158 secondary: (0, _i18n.__)('Generate images by selecting the desired type and style, and entering a prompt.', 'elementor')
8159 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
8160 error: error,
8161 onRetry: handleSubmit
8162 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
8163 onSubmit: handleSubmit
8164 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
8165 "data-testid": "e-image-prompt",
8166 value: prompt,
8167 disabled: isLoading,
8168 placeholder: promptPlaceholder,
8169 onChange: setPrompt
8170 }), /*#__PURE__*/_react.default.createElement(_imageTypeSelect.default, {
8171 disabled: isLoading,
8172 value: settings[_usePromptSettings2.IMAGE_TYPE],
8173 onChange: function onChange(event) {
8174 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_TYPE, event.target.value));
8175 }
8176 }), /*#__PURE__*/_react.default.createElement(_imageStyleSelect.default, {
8177 type: settings[_usePromptSettings2.IMAGE_TYPE],
8178 value: settings[_usePromptSettings2.IMAGE_STYLE],
8179 disabled: isLoading || !settings[_usePromptSettings2.IMAGE_TYPE] || false,
8180 onChange: function onChange(event) {
8181 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STYLE, event.target.value));
8182 }
8183 }), /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
8184 disabled: isLoading,
8185 value: settings[_usePromptSettings2.IMAGE_RATIO],
8186 onChange: function onChange(event) {
8187 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
8188 }
8189 }), generatedImages !== null && generatedImages !== void 0 && generatedImages.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8190 gap: 2,
8191 sx: {
8192 my: 2.5
8193 }
8194 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
8195 disabled: isLoading || '' === prompt
8196 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
8197 disabled: isLoading,
8198 onClick: function onClick() {
8199 resetSettings();
8200 setPrompt('');
8201 reset();
8202 }
8203 })) : /*#__PURE__*/_react.default.createElement(_generateImagesSubmit.default, {
8204 disabled: isLoading || '' === prompt
8205 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
8206 isLoading: isPreloading || isUploading,
8207 isGenerating: isGenerating
8208 }, generatedImages !== null && generatedImages !== void 0 && generatedImages.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
8209 images: generatedImages === null || generatedImages === void 0 ? void 0 : generatedImages.result,
8210 aspectRatio: generateAspectRatio,
8211 onUseImage: use,
8212 onEditImage: edit
8213 }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_view.default.ContentHeading, {
8214 primary: (0, _i18n.__)('Spark your imagination with images generated by our community', 'elementor')
8215 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8216 sx: {
8217 mb: 3
8218 }
8219 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
8220 libraryLink: "https://go.elementor.com/ai-prompt-library-image/"
8221 })), /*#__PURE__*/_react.default.createElement(_gallery.default, {
8222 cols: 3
8223 }, suggestedImages === null || suggestedImages === void 0 ? void 0 : suggestedImages.map(function (suggestedPrompt) {
8224 return /*#__PURE__*/_react.default.createElement(_gallery.default.Image, {
8225 variant: "thumbnail",
8226 key: suggestedPrompt.prompt,
8227 alt: suggestedPrompt.prompt,
8228 text: suggestedPrompt.prompt,
8229 src: suggestedPrompt.thumbnailUrl
8230 }, /*#__PURE__*/_react.default.createElement(_imageActions.default, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
8231 onClick: function onClick() {
8232 return use(suggestedPrompt);
8233 },
8234 fullWidth: true
8235 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.CopyIcon, {
8236 onClick: function onClick() {
8237 return handleCopyPrompt(suggestedPrompt);
8238 }
8239 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.EditIcon, {
8240 onClick: function onClick() {
8241 return edit(suggestedPrompt);
8242 }
8243 })));
8244 })))));
8245 };
8246 var _default = Generate;
8247 exports["default"] = _default;
8248
8249 /***/ }),
8250
8251 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js":
8252 /*!************************************************************************************************!*\
8253 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js ***!
8254 \************************************************************************************************/
8255 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8256
8257 "use strict";
8258
8259
8260 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8261 Object.defineProperty(exports, "__esModule", ({
8262 value: true
8263 }));
8264 exports["default"] = void 0;
8265 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8266 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
8267 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8268 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ../../components/image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
8269 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8270 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8271 var ImageToolsContent = function ImageToolsContent() {
8272 var _useEditImage = (0, _editImageContext.useEditImage)(),
8273 editImage = _useEditImage.editImage,
8274 width = _useEditImage.width,
8275 height = _useEditImage.height;
8276 var _useImageActions = (0, _useImageActions2.default)(),
8277 use = _useImageActions.use;
8278 return /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
8279 src: editImage.url,
8280 style: {
8281 width: width,
8282 height: height
8283 },
8284 alt: editImage.alt || (0, _i18n.__)('Image preview', 'elementor')
8285 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Actions, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
8286 onClick: function onClick() {
8287 return use(editImage);
8288 }
8289 }))));
8290 };
8291 var _default = ImageToolsContent;
8292 exports["default"] = _default;
8293
8294 /***/ }),
8295
8296 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js":
8297 /*!**********************************************************************************************!*\
8298 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js ***!
8299 \**********************************************************************************************/
8300 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8301
8302 "use strict";
8303
8304
8305 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8306 Object.defineProperty(exports, "__esModule", ({
8307 value: true
8308 }));
8309 exports["default"] = void 0;
8310 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8311 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8312 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8313 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8314 var _expandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/expand-icon */ "../modules/ai/assets/js/editor/icons/expand-icon.js"));
8315 var _brushIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/brush-icon */ "../modules/ai/assets/js/editor/icons/brush-icon.js"));
8316 var _evolveIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/evolve-icon */ "../modules/ai/assets/js/editor/icons/evolve-icon.js"));
8317 var _enlargerIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/enlarger-icon */ "../modules/ai/assets/js/editor/icons/enlarger-icon.js"));
8318 var _removeBg = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/remove-bg */ "../modules/ai/assets/js/editor/icons/remove-bg.js"));
8319 var _replaceBg = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/replace-bg */ "../modules/ai/assets/js/editor/icons/replace-bg.js"));
8320 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8321 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8322 var TeaserDrawing = function TeaserDrawing() {
8323 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, {
8324 viewBox: "0 0 184 80",
8325 sx: {
8326 width: 184,
8327 height: 80
8328 }
8329 }, /*#__PURE__*/_react.default.createElement("g", {
8330 clipPath: "url(#clip0_3127_96542)"
8331 }, /*#__PURE__*/_react.default.createElement("path", {
8332 fillRule: "evenodd",
8333 clipRule: "evenodd",
8334 d: "M49.6014 1.36364C49.6014 0.610521 48.9907 0 48.2373 0C47.4839 0 46.8731 0.610521 46.8731 1.36364C46.8731 1.9664 46.6336 2.54448 46.2072 2.9707C45.7808 3.39692 45.2025 3.63636 44.5995 3.63636C43.8461 3.63636 43.2354 4.24689 43.2354 5C43.2354 5.75311 43.8461 6.36364 44.5995 6.36364C45.2025 6.36364 45.7808 6.60308 46.2072 7.0293C46.6336 7.45552 46.8731 8.0336 46.8731 8.63636C46.8731 9.38948 47.4839 10 48.2373 10C48.9907 10 49.6014 9.38948 49.6014 8.63636C49.6014 8.0336 49.8409 7.45552 50.2673 7.0293C50.6937 6.60308 51.272 6.36364 51.875 6.36364C52.6284 6.36364 53.2392 5.75311 53.2392 5C53.2392 4.24689 52.6284 3.63636 51.875 3.63636C51.272 3.63636 50.6937 3.39692 50.2673 2.9707C49.8409 2.54448 49.6014 1.9664 49.6014 1.36364ZM48.1364 4.89917C48.1706 4.86501 48.2042 4.83041 48.2373 4.79538C48.2703 4.83041 48.304 4.86501 48.3381 4.89917C48.3723 4.93333 48.4069 4.96694 48.4419 5C48.4069 5.03306 48.3723 5.06667 48.3381 5.10083C48.304 5.13499 48.2703 5.16959 48.2373 5.20462C48.2042 5.16959 48.1706 5.13499 48.1364 5.10083C48.1022 5.06667 48.0676 5.03306 48.0326 5C48.0676 4.96694 48.1022 4.93333 48.1364 4.89917Z",
8335 fill: "#69727D"
8336 }), /*#__PURE__*/_react.default.createElement("path", {
8337 fillRule: "evenodd",
8338 clipRule: "evenodd",
8339 d: "M66.6927 22.3677C66.6927 21.6177 66.082 21.0098 65.3286 21.0098C64.5752 21.0098 63.9644 21.6177 63.9644 22.3677C63.9644 22.9679 63.7249 23.5436 63.2985 23.968C62.8721 24.3924 62.2938 24.6309 61.6908 24.6309C60.9374 24.6309 60.3267 25.2388 60.3267 25.9888C60.3267 26.7387 60.9374 27.3467 61.6908 27.3467C62.2938 27.3467 62.8721 27.5851 63.2985 28.0096C63.7249 28.434 63.9644 29.0096 63.9644 29.6099C63.9644 30.3598 64.5752 30.9678 65.3286 30.9678C66.082 30.9678 66.6927 30.3598 66.6927 29.6099C66.6927 29.0096 66.9323 28.434 67.3586 28.0096C67.785 27.5851 68.3633 27.3467 68.9663 27.3467C69.7197 27.3467 70.3305 26.7387 70.3305 25.9888C70.3305 25.2388 69.7197 24.6309 68.9663 24.6309C68.3633 24.6309 67.785 24.3924 67.3586 23.968C66.9323 23.5436 66.6927 22.9679 66.6927 22.3677ZM65.2277 25.8884C65.2619 25.8544 65.2955 25.8199 65.3286 25.785C65.3616 25.8199 65.3953 25.8544 65.4294 25.8884C65.4636 25.9224 65.4982 25.9559 65.5333 25.9888C65.4982 26.0217 65.4636 26.0552 65.4294 26.0892C65.3953 26.1232 65.3616 26.1577 65.3286 26.1925C65.2955 26.1577 65.2619 26.1232 65.2277 26.0892C65.1935 26.0552 65.1589 26.0217 65.1239 25.9888C65.1589 25.9559 65.1935 25.9224 65.2277 25.8884Z",
8340 fill: "#69727D"
8341 }), /*#__PURE__*/_react.default.createElement("path", {
8342 d: "M53.9717 12L57.2198 17.0456L3.24796 51.4731L-0.000164873 46.4275L53.9717 12Z",
8343 fill: "#69727D"
8344 }), /*#__PURE__*/_react.default.createElement("path", {
8345 d: "M64.9761 5L68.2242 10.0456L57.2612 17.0387L54.013 11.9931L64.9761 5Z",
8346 fill: "#E6E8EA"
8347 }), /*#__PURE__*/_react.default.createElement("path", {
8348 fillRule: "evenodd",
8349 clipRule: "evenodd",
8350 d: "M65.7284 9.49923L64.432 7.48537L56.5088 12.5394L57.8052 14.5533L65.7284 9.49923ZM64.9761 5L54.013 11.9931L57.2612 17.0387L68.2242 10.0456L64.9761 5Z",
8351 fill: "#69727D"
8352 }), /*#__PURE__*/_react.default.createElement("path", {
8353 fillRule: "evenodd",
8354 clipRule: "evenodd",
8355 d: "M128 41C128 43.7687 121.671 46.2089 112.052 47.6451L114.482 74.7976C114.494 74.8647 114.5 74.9322 114.5 75C114.5 75.0001 114.5 75.0002 114.5 75.0003C114.513 75.1456 114.487 75.2779 114.43 75.3982C113.514 77.9735 103.8 80 91.95 80C79.496 80 69.4 77.7614 69.4 75C69.4 74.8146 69.4456 74.6315 69.5343 74.4513L71.2141 47.5326C62.0087 46.0835 56 43.6977 56 41C56 36.5817 72.1177 33 92 33C111.882 33 128 36.5817 128 41Z",
8356 fill: "#69727D"
8357 }), /*#__PURE__*/_react.default.createElement("path", {
8358 d: "M106.685 3.08259C112.562 16.564 109.338 34.1761 106.713 41.4407C106.713 41.4407 105.151 41.9127 100.894 41.9715C96.6371 42.0303 95.0251 41.9866 95.0251 41.4558C95.0252 40.9249 94.6272 34.6461 96.4177 22.3308C98.0343 11.2116 102.692 5.02553 105.448 2.75675C105.865 2.4137 106.47 2.58777 106.685 3.08259Z",
8359 fill: "#E6E8EA"
8360 }), /*#__PURE__*/_react.default.createElement("path", {
8361 fillRule: "evenodd",
8362 clipRule: "evenodd",
8363 d: "M104.883 4.66783C105.347 4.17219 106.14 4.35208 106.38 4.9873C108.716 11.1748 109.254 18.1507 108.889 24.5355C108.513 31.1152 107.184 36.9856 105.954 40.5842C105.778 40.6166 105.55 40.6541 105.265 40.6927C104.388 40.8119 102.974 40.9423 100.88 40.9712C98.7385 41.0008 97.3196 41.0031 96.4377 40.9371C96.2614 40.9239 96.1203 40.9088 96.0088 40.8935C95.9567 39.0573 95.8782 32.9919 97.4073 22.4743C98.766 13.1288 102.302 7.42438 104.883 4.66783ZM106.713 41.4403L107.002 42.3975C107.305 42.3062 107.546 42.0773 107.653 41.7802C109 38.0524 110.481 31.7376 110.886 24.6496C111.29 17.5654 110.626 9.61894 107.602 2.68255C107.147 1.63949 105.792 1.17814 104.812 1.98425C101.838 4.43294 97.0752 10.8574 95.4281 22.1866C93.7715 33.5811 93.975 39.865 94.0187 41.2138C94.0225 41.3324 94.0251 41.4128 94.0251 41.4552C94.025 42.261 94.695 42.5983 95.0067 42.7098C95.3591 42.8358 95.8079 42.8956 96.2886 42.9316C97.2769 43.0055 98.7924 43.0002 100.908 42.971C103.071 42.9411 104.566 42.806 105.534 42.6745C106.018 42.6088 106.371 42.5438 106.61 42.4932C106.729 42.4679 106.82 42.4461 106.885 42.4296C106.917 42.4214 106.943 42.4144 106.962 42.409L106.987 42.4021L106.996 42.3995L106.999 42.3984L107.001 42.398C107.001 42.398 107.002 42.3975 106.713 41.4403ZM106.426 40.4822L106.428 40.4817L106.43 40.4812C106.43 40.4812 106.429 40.4814 106.426 40.4822Z",
8364 fill: "#69727D"
8365 }), /*#__PURE__*/_react.default.createElement("path", {
8366 fillRule: "evenodd",
8367 clipRule: "evenodd",
8368 d: "M104.22 13.8372C104.787 15.7536 104.996 18.3439 104.953 21.2589C104.907 24.4148 104.569 27.8559 104.134 31.0529C103.7 34.2469 103.172 37.1799 102.753 39.3152C102.544 40.3824 102.361 41.2491 102.232 41.8481C102.22 41.9009 102.209 41.9516 102.199 42.0001H100.503C100.526 38.5025 100.676 33.4168 101.183 28.2866C101.724 22.8227 102.66 17.4299 104.22 13.8372ZM103 43.0001C103.974 43.2266 103.974 43.2264 103.974 43.2262L103.978 43.2093L103.989 43.1613C103.999 43.1192 104.013 43.0571 104.031 42.976C104.067 42.814 104.12 42.5763 104.186 42.2713C104.318 41.6613 104.503 40.7819 104.716 39.7006C105.14 37.5391 105.675 34.5658 106.116 31.3223C106.556 28.0818 106.905 24.5541 106.953 21.2881C107 18.0456 106.753 14.9635 105.943 12.6671C105.815 12.3045 105.676 11.9539 105.512 11.6797C105.394 11.4809 105.045 10.9388 104.371 10.9076C103.702 10.8766 103.301 11.3772 103.156 11.5722C102.959 11.8385 102.774 12.1912 102.594 12.5778C100.767 16.4945 99.7565 22.3931 99.1929 28.0897C98.6258 33.8211 98.5 39.4812 98.5 43.0001V44.0001H103.794L103.974 43.2262L103 43.0001Z",
8369 fill: "#69727D"
8370 }), /*#__PURE__*/_react.default.createElement("path", {
8371 d: "M79.2952 3.08259C73.4181 16.564 76.6423 34.1761 79.2676 41.4407C79.2676 41.4407 80.8299 41.9127 85.0867 41.9715C89.3434 42.0303 90.9554 41.9866 90.9554 41.4558C90.9553 40.9249 91.3533 34.6461 89.5628 22.3308C87.9462 11.2116 83.2888 5.02553 80.5325 2.75675C80.1157 2.4137 79.511 2.58777 79.2952 3.08259Z",
8372 fill: "#E6E8EA"
8373 }), /*#__PURE__*/_react.default.createElement("path", {
8374 fillRule: "evenodd",
8375 clipRule: "evenodd",
8376 d: "M81.0978 4.66783C80.6337 4.17219 79.8403 4.35208 79.6005 4.9873C77.2644 11.1748 76.7267 18.1507 77.0914 24.5355C77.4671 31.1152 78.7963 36.9856 80.0267 40.5842C80.2028 40.6166 80.4308 40.6541 80.7155 40.6927C81.5929 40.8119 83.0069 40.9423 85.1005 40.9712C87.242 41.0008 88.6609 41.0031 89.5427 40.9371C89.7191 40.9239 89.8602 40.9088 89.9716 40.8935C90.0238 39.0573 90.1023 32.9919 88.5732 22.4743C87.2145 13.1288 83.6789 7.42438 81.0978 4.66783ZM79.2676 41.4403L78.9784 42.3975C78.676 42.3062 78.4345 42.0773 78.3271 41.7802C76.98 38.0524 75.4994 31.7376 75.0946 24.6496C74.69 17.5654 75.3547 9.61894 78.3786 2.68255C78.8333 1.63949 80.1887 1.17814 81.168 1.98425C84.1429 4.43294 88.9053 10.8574 90.5524 22.1866C92.209 33.5811 92.0055 39.865 91.9618 41.2138C91.958 41.3324 91.9554 41.4128 91.9554 41.4552C91.9554 42.261 91.2855 42.5983 90.9737 42.7098C90.6214 42.8358 90.1726 42.8956 89.6919 42.9316C88.7036 43.0055 87.1881 43.0002 85.0728 42.971C82.9096 42.9411 81.4141 42.806 80.4462 42.6745C79.9621 42.6088 79.6094 42.5438 79.3707 42.4932C79.2514 42.4679 79.1605 42.4461 79.0958 42.4296C79.0635 42.4214 79.0377 42.4144 79.0182 42.409L78.9937 42.4021L78.9849 42.3995L78.9814 42.3984L78.9798 42.398C78.9798 42.398 78.9784 42.3975 79.2676 41.4403ZM79.5541 40.4822L79.5526 40.4817L79.5507 40.4812C79.5507 40.4812 79.5514 40.4814 79.5541 40.4822Z",
8377 fill: "#69727D"
8378 }), /*#__PURE__*/_react.default.createElement("path", {
8379 fillRule: "evenodd",
8380 clipRule: "evenodd",
8381 d: "M81.7604 13.8372C81.1939 15.7536 80.9847 18.3439 81.0272 21.2589C81.0733 24.4148 81.4118 27.8559 81.8464 31.0529C82.2805 34.2469 82.8081 37.1799 83.2274 39.3152C83.4369 40.3824 83.6192 41.2491 83.7488 41.8481C83.7603 41.9009 83.7713 41.9516 83.7819 42.0001H85.4771C85.4542 38.5025 85.3049 33.4168 84.7973 28.2866C84.2567 22.8227 83.32 17.4299 81.7604 13.8372ZM82.9805 43.0001C82.0065 43.2266 82.0064 43.2264 82.0064 43.2262L82.0025 43.2093L81.9914 43.1613C81.9818 43.1192 81.9677 43.0571 81.9494 42.976C81.913 42.814 81.8602 42.5763 81.7941 42.2713C81.6621 41.6613 81.4772 40.7819 81.2648 39.7006C80.8404 37.5391 80.3054 34.5658 79.8646 31.3223C79.4241 28.0818 79.0751 24.5541 79.0275 21.2881C78.9801 18.0456 79.227 14.9635 80.0375 12.6671C80.1655 12.3045 80.305 11.9539 80.4683 11.6797C80.5868 11.4809 80.9351 10.9388 81.6092 10.9076C82.2782 10.8766 82.6793 11.3772 82.8241 11.5722C83.0217 11.8385 83.2064 12.1912 83.3867 12.5778C85.2136 16.4945 86.224 22.3931 86.7876 28.0897C87.3546 33.8211 87.4805 39.4812 87.4805 43.0001V44.0001H82.1863L82.0064 43.2262L82.9805 43.0001Z",
8382 fill: "#69727D"
8383 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
8384 id: "clip0_3127_96542"
8385 }, /*#__PURE__*/_react.default.createElement("rect", {
8386 width: "184",
8387 height: "80",
8388 fill: "white"
8389 }))));
8390 };
8391 var ImageToolsContainer = (0, _ui.styled)(_ui.Box)(function (_ref) {
8392 var theme = _ref.theme;
8393 return {
8394 height: "calc(100% - ".concat(theme.spacing(13), ")")
8395 };
8396 });
8397 var ToolsTeaserContainer = (0, _ui.styled)(_ui.Box)(function (_ref2) {
8398 var theme = _ref2.theme;
8399 return {
8400 position: 'sticky',
8401 top: '100%',
8402 padding: theme.spacing(4, 0, 1)
8403 };
8404 });
8405 var ImageToolsPanel = function ImageToolsPanel() {
8406 var _useLocation = (0, _locationContext.useLocation)(),
8407 navigate = _useLocation.navigate;
8408 var tools = [{
8409 label: (0, _i18n.__)('Expand Image', 'elementor'),
8410 Icon: _expandIcon.default,
8411 onClick: function onClick() {
8412 return navigate(_constants.LOCATIONS.OUT_PAINTING);
8413 }
8414 }, {
8415 label: (0, _i18n.__)('Generative Fill', 'elementor'),
8416 Icon: _brushIcon.default,
8417 onClick: function onClick() {
8418 return navigate(_constants.LOCATIONS.IN_PAINTING);
8419 }
8420 }, {
8421 label: (0, _i18n.__)('Resize', 'elementor'),
8422 Icon: _enlargerIcon.default,
8423 onClick: function onClick() {
8424 return navigate(_constants.LOCATIONS.RESIZE);
8425 }
8426 }, {
8427 label: (0, _i18n.__)('Variations', 'elementor'),
8428 Icon: _evolveIcon.default,
8429 onClick: function onClick() {
8430 return navigate(_constants.LOCATIONS.VARIATIONS);
8431 }
8432 }, {
8433 label: (0, _i18n.__)('Remove Background', 'elementor'),
8434 Icon: _removeBg.default,
8435 onClick: function onClick() {
8436 return navigate(_constants.LOCATIONS.REMOVE_BACKGROUND);
8437 }
8438 }, {
8439 label: (0, _i18n.__)('Replace Background', 'elementor'),
8440 Icon: _replaceBg.default,
8441 onClick: function onClick() {
8442 return navigate(_constants.LOCATIONS.REPLACE_BACKGROUND);
8443 }
8444 }];
8445 return /*#__PURE__*/_react.default.createElement(ImageToolsContainer, null, /*#__PURE__*/_react.default.createElement(_ui.Box, {
8446 display: "grid",
8447 gridTemplateColumns: "repeat(2, 1fr)",
8448 gap: 1,
8449 justifyContent: "center"
8450 }, tools.map(function (_ref3) {
8451 var label = _ref3.label,
8452 Icon = _ref3.Icon,
8453 onClick = _ref3.onClick;
8454 return /*#__PURE__*/_react.default.createElement(_ui.Button, {
8455 onClick: onClick,
8456 key: label,
8457 variant: "outlined",
8458 color: "secondary",
8459 disabled: false,
8460 sx: {
8461 py: 3,
8462 fontSize: '12px',
8463 height: 'auto',
8464 borderRadius: '4px'
8465 }
8466 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
8467 display: "flex",
8468 justifyContent: "center",
8469 alignItems: "center",
8470 flexDirection: "column"
8471 }, /*#__PURE__*/_react.default.createElement(Icon, {
8472 sx: {
8473 mb: 0.5
8474 }
8475 }), label));
8476 })), /*#__PURE__*/_react.default.createElement(ToolsTeaserContainer, {
8477 display: "flex",
8478 flexDirection: "column",
8479 alignItems: "center"
8480 }, /*#__PURE__*/_react.default.createElement(TeaserDrawing, null), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
8481 variant: "body2",
8482 align: "center",
8483 color: "secondary",
8484 sx: {
8485 mt: 2
8486 }
8487 }, (0, _i18n.__)('Stay tuned! More incredible AI tools are coming your way soon.', 'elementor'))));
8488 };
8489 ImageToolsPanel.propTypes = {
8490 generateNewPrompt: _propTypes.default.func,
8491 panelActive: _propTypes.default.bool
8492 };
8493 var _default = ImageToolsPanel;
8494 exports["default"] = _default;
8495
8496 /***/ }),
8497
8498 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js":
8499 /*!**********************************************************************************!*\
8500 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js ***!
8501 \**********************************************************************************/
8502 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8503
8504 "use strict";
8505
8506
8507 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8508 Object.defineProperty(exports, "__esModule", ({
8509 value: true
8510 }));
8511 exports["default"] = void 0;
8512 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8513 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8514 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8515 var _imageToolsPanel = _interopRequireDefault(__webpack_require__(/*! ./image-tools-panel */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js"));
8516 var _imageToolsContent = _interopRequireDefault(__webpack_require__(/*! ./image-tools-content */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js"));
8517 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8518 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8519 var ImageTools = function ImageTools() {
8520 var _useLocation = (0, _locationContext.useLocation)(),
8521 navigate = _useLocation.navigate;
8522 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, {
8523 onClick: function onClick() {
8524 return navigate(_constants.LOCATIONS.GENERATE);
8525 }
8526 }, (0, _i18n.__)('Generate with a prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8527 primary: (0, _i18n.__)('Edit with AI', 'elementor')
8528 }), /*#__PURE__*/_react.default.createElement(_imageToolsPanel.default, null)), /*#__PURE__*/_react.default.createElement(_view.default.Content, null, /*#__PURE__*/_react.default.createElement(_imageToolsContent.default, null)));
8529 };
8530 var _default = ImageTools;
8531 exports["default"] = _default;
8532
8533 /***/ }),
8534
8535 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js":
8536 /*!**************************************************************************************************!*\
8537 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js ***!
8538 \**************************************************************************************************/
8539 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8540
8541 "use strict";
8542
8543
8544 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8545 Object.defineProperty(exports, "__esModule", ({
8546 value: true
8547 }));
8548 exports["default"] = void 0;
8549 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8550 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8551 var useInPainting = function useInPainting(initialValue) {
8552 var fetchAction = function fetchAction(prompt, promptSettings, image, mask) {
8553 return (0, _api.getImageToImageMaskGeneration)(prompt, promptSettings, image, mask);
8554 };
8555 return (0, _useImagePrompt.default)(fetchAction, initialValue);
8556 };
8557 var _default = useInPainting;
8558 exports["default"] = _default;
8559
8560 /***/ }),
8561
8562 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js":
8563 /*!************************************************************************************************!*\
8564 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js ***!
8565 \************************************************************************************************/
8566 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8567
8568 "use strict";
8569
8570
8571 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8572 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8573 Object.defineProperty(exports, "__esModule", ({
8574 value: true
8575 }));
8576 exports["default"] = void 0;
8577 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8578 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
8579 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
8580 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8581 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8582 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8583 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8584 var _reactSketchCanvas = __webpack_require__(/*! react-sketch-canvas */ "../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js");
8585 var _undoIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/undo-icon */ "../modules/ai/assets/js/editor/icons/undo-icon.js"));
8586 var _redoIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/redo-icon */ "../modules/ai/assets/js/editor/icons/redo-icon.js"));
8587 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8588 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8589 var STROKE_SELECT_WIDTH = 120;
8590 var BRUSH_COLOR = 'rgba(0, 0, 0, 0.75)';
8591 var StyledUndoIcon = (0, _ui.withDirection)(_undoIcon.default);
8592 var StyledRedoIcon = (0, _ui.withDirection)(_redoIcon.default);
8593 var BrushCursor = (0, _ui.styled)(_ui.Box, {
8594 shouldForwardProp: function shouldForwardProp(prop) {
8595 return 'size' === prop;
8596 }
8597 })(function (_ref) {
8598 var theme = _ref.theme,
8599 size = _ref.size;
8600 return {
8601 position: 'absolute',
8602 width: size,
8603 height: size,
8604 borderRadius: '50%',
8605 backgroundColor: BRUSH_COLOR,
8606 pointerEvents: 'none',
8607 transform: "translate(".concat('rtl' === theme.direction ? '50%' : '-50%', ", -50%)"),
8608 border: "1px solid #fff"
8609 };
8610 });
8611 var BrishSizeIcon = (0, _ui.styled)(_ui.Box, {
8612 shouldForwardProp: function shouldForwardProp(prop) {
8613 return 'size' === prop;
8614 }
8615 })(function (_ref2) {
8616 var theme = _ref2.theme,
8617 size = _ref2.size;
8618 return {
8619 width: size / 2,
8620 height: size / 2,
8621 borderRadius: '50%',
8622 backgroundColor: theme.palette.secondary.main
8623 };
8624 });
8625 var InPaintingContent = function InPaintingContent(_ref3) {
8626 var editImage = _ref3.editImage,
8627 setMask = _ref3.setMask,
8628 canvasWidth = _ref3.width,
8629 canvasHeight = _ref3.height;
8630 var sketchRef = (0, _react.useRef)();
8631 var _useState = (0, _react.useState)(30),
8632 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8633 stroke = _useState2[0],
8634 setStroke = _useState2[1];
8635 var brushCursorRef = (0, _react.useRef)();
8636 (0, _react.useEffect)(function () {
8637 var canvas = document.querySelector('.eui-in-painting-canvas');
8638
8639 // The BrushCursor should follow the mouse position but should stay only inside the canvas.
8640 var positionElement = function positionElement(e) {
8641 var _canvas$getBoundingCl = canvas.getBoundingClientRect(),
8642 left = _canvas$getBoundingCl.left,
8643 top = _canvas$getBoundingCl.top,
8644 width = _canvas$getBoundingCl.width,
8645 height = _canvas$getBoundingCl.height;
8646 var x = e.clientX - left;
8647 var y = e.clientY - top;
8648 if (x > 0 && x < width && y > 0 && y < height) {
8649 brushCursorRef.current.style.left = "".concat(x, "px");
8650 brushCursorRef.current.style.top = "".concat(y, "px");
8651 }
8652 };
8653 window.addEventListener('mousemove', positionElement);
8654 return function () {
8655 window.removeEventListener('mousemove', positionElement);
8656 };
8657 }, [stroke]);
8658 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8659 alignItems: "flex-start",
8660 spacing: 0.5,
8661 flexGrow: 1
8662 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8663 width: "100%",
8664 direction: "row",
8665 spacing: 3,
8666 alignSelf: "center",
8667 justifyContent: "center",
8668 sx: {
8669 mb: 2.5
8670 }
8671 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8672 direction: "row",
8673 gap: 1
8674 }, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
8675 title: (0, _i18n.__)('Undo', 'elementor')
8676 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
8677 variant: "outlined",
8678 color: "secondary",
8679 onClick: function onClick() {
8680 return sketchRef.current.undo();
8681 },
8682 sx: {
8683 px: 0
8684 }
8685 }, /*#__PURE__*/_react.default.createElement(StyledUndoIcon, null))), /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
8686 title: (0, _i18n.__)('Redo', 'elementor')
8687 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
8688 variant: "outlined",
8689 color: "secondary",
8690 onClick: function onClick() {
8691 return sketchRef.current.redo();
8692 },
8693 sx: {
8694 px: 0
8695 }
8696 }, /*#__PURE__*/_react.default.createElement(StyledRedoIcon, null)))), /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
8697 size: "small",
8698 color: "secondary",
8699 sx: {
8700 minWidth: STROKE_SELECT_WIDTH
8701 }
8702 }, /*#__PURE__*/_react.default.createElement(_ui.InputLabel, {
8703 id: "stroke"
8704 }, "Stroke"), /*#__PURE__*/_react.default.createElement(_ui.Select, {
8705 autoWidth: true,
8706 label: "Stroke",
8707 value: stroke,
8708 id: "demo-simple-select",
8709 labelId: "demo-simple-select-label",
8710 onChange: function onChange(e) {
8711 return setStroke(e.target.value);
8712 },
8713 MenuProps: {
8714 PaperProps: {
8715 sx: {
8716 maxWidth: STROKE_SELECT_WIDTH
8717 }
8718 },
8719 MenuListProps: {
8720 sx: {
8721 minWidth: STROKE_SELECT_WIDTH
8722 }
8723 }
8724 },
8725 sx: {
8726 '& .MuiSelect-select .MuiListItemIcon-root': {
8727 mr: 0.25,
8728 width: 'initial',
8729 minWidth: 'initial',
8730 justifyContent: 'flex-start'
8731 }
8732 }
8733 }, [10, 20, 30, 40, 50].map(function (value) {
8734 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
8735 key: 'stroke-width-option-' + value,
8736 value: value
8737 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8738 direction: "row",
8739 alignItems: "center",
8740 gap: 1
8741 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, {
8742 sx: {
8743 width: 30,
8744 display: 'flex',
8745 justifyContent: 'center'
8746 }
8747 }, /*#__PURE__*/_react.default.createElement(BrishSizeIcon, {
8748 size: value
8749 })), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, null, value)));
8750 })))), /*#__PURE__*/_react.default.createElement("div", {
8751 style: {
8752 margin: '0 auto',
8753 position: 'relative',
8754 cursor: 'none',
8755 overflow: 'hidden'
8756 }
8757 }, /*#__PURE__*/_react.default.createElement(BrushCursor, {
8758 ref: brushCursorRef,
8759 size: stroke
8760 }), /*#__PURE__*/_react.default.createElement(_reactSketchCanvas.ReactSketchCanvas, {
8761 className: "eui-in-painting-canvas",
8762 withViewBox: true,
8763 ref: sketchRef,
8764 height: canvasHeight + 'px',
8765 width: canvasWidth + 'px',
8766 strokeWidth: stroke,
8767 strokeColor: BRUSH_COLOR,
8768 backgroundImage: editImage.url,
8769 onChange: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
8770 var svg;
8771 return _regenerator.default.wrap(function _callee$(_context) {
8772 while (1) switch (_context.prev = _context.next) {
8773 case 0:
8774 _context.next = 2;
8775 return sketchRef.current.exportSvg();
8776 case 2:
8777 svg = _context.sent;
8778 setMask(svg);
8779 case 4:
8780 case "end":
8781 return _context.stop();
8782 }
8783 }, _callee);
8784 }))
8785 })));
8786 };
8787 InPaintingContent.propTypes = {
8788 setMask: _propTypes.default.func.isRequired,
8789 width: _propTypes.default.number.isRequired,
8790 height: _propTypes.default.number.isRequired,
8791 editImage: _propTypes.default.object.isRequired
8792 };
8793 var _default = InPaintingContent;
8794 exports["default"] = _default;
8795
8796 /***/ }),
8797
8798 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js":
8799 /*!**********************************************************************************!*\
8800 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js ***!
8801 \**********************************************************************************/
8802 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8803
8804 "use strict";
8805
8806
8807 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8808 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8809 Object.defineProperty(exports, "__esModule", ({
8810 value: true
8811 }));
8812 exports["default"] = void 0;
8813 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8814 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8815 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8816 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8817 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8818 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8819 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8820 var _inPaintingContent = _interopRequireDefault(__webpack_require__(/*! ./in-painting-content */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js"));
8821 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
8822 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8823 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8824 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8825 var _usePromptSettings2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8826 var _useInPainting2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-in-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js"));
8827 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8828 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8829 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8830 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8831 var InPainting = function InPainting() {
8832 var _useState = (0, _react.useState)(''),
8833 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8834 prompt = _useState2[0],
8835 setPrompt = _useState2[1];
8836 var _useState3 = (0, _react.useState)(''),
8837 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
8838 mask = _useState4[0],
8839 setMask = _useState4[1];
8840 var _usePromptSettings = (0, _usePromptSettings2.default)(),
8841 settings = _usePromptSettings.settings,
8842 resetSettings = _usePromptSettings.resetSettings;
8843 var _useEditImage = (0, _editImageContext.useEditImage)(),
8844 editImage = _useEditImage.editImage,
8845 width = _useEditImage.width,
8846 height = _useEditImage.height;
8847 var _useImageActions = (0, _useImageActions2.default)(),
8848 use = _useImageActions.use,
8849 edit = _useImageActions.edit,
8850 isUploading = _useImageActions.isLoading;
8851 var _useInPainting = (0, _useInPainting2.default)(),
8852 data = _useInPainting.data,
8853 send = _useInPainting.send,
8854 isGenerating = _useInPainting.isLoading,
8855 error = _useInPainting.error,
8856 reset = _useInPainting.reset;
8857 var isLoading = isGenerating || isUploading;
8858 var handleSubmit = function handleSubmit(event) {
8859 event.preventDefault();
8860
8861 // The fallback instruction should be hidden for the user.
8862 var finalPrompt = prompt || 'Remove object and fill based on the surroundings';
8863 send(finalPrompt, settings, editImage, mask);
8864 };
8865 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, null), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8866 primary: (0, _i18n.__)('Generative Fill', 'elementor'),
8867 secondary: (0, _i18n.__)('Mark an area and edit it with a prompt.', 'elementor')
8868 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
8869 error: error,
8870 onRetry: handleSubmit
8871 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
8872 onSubmit: handleSubmit
8873 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
8874 value: prompt,
8875 disabled: isLoading,
8876 onChange: setPrompt,
8877 placeholder: (0, _i18n.__)('Describe what you want to generate in the marked area (English only)', 'elementor')
8878 }), data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8879 gap: 2,
8880 sx: {
8881 my: 2.5
8882 }
8883 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
8884 disabled: isLoading
8885 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
8886 disabled: isLoading,
8887 onClick: function onClick() {
8888 resetSettings();
8889 setPrompt('');
8890 reset();
8891 }
8892 })) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
8893 disabled: isLoading
8894 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
8895 isGenerating: isLoading
8896 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
8897 images: data.result,
8898 aspectRatio: editImage.aspectRatio,
8899 onUseImage: use,
8900 onEditImage: edit
8901 }) : /*#__PURE__*/_react.default.createElement(_inPaintingContent.default, {
8902 editImage: editImage,
8903 width: width,
8904 height: height,
8905 setMask: setMask
8906 })));
8907 };
8908 var _default = InPainting;
8909 exports["default"] = _default;
8910
8911 /***/ }),
8912
8913 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js":
8914 /*!****************************************************************************************************!*\
8915 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js ***!
8916 \****************************************************************************************************/
8917 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8918
8919 "use strict";
8920
8921
8922 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8923 Object.defineProperty(exports, "__esModule", ({
8924 value: true
8925 }));
8926 exports["default"] = void 0;
8927 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8928 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8929 var useOutPainting = function useOutPainting(initialValue) {
8930 var fetchAction = function fetchAction(prompt, promptSettings, image, mask) {
8931 return (0, _api.getImageToImageOutPainting)(prompt, promptSettings, image, mask);
8932 };
8933 return (0, _useImagePrompt.default)(fetchAction, initialValue);
8934 };
8935 var _default = useOutPainting;
8936 exports["default"] = _default;
8937
8938 /***/ }),
8939
8940 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js":
8941 /*!***********************************************************************************!*\
8942 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js ***!
8943 \***********************************************************************************/
8944 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8945
8946 "use strict";
8947
8948
8949 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8950 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8951 Object.defineProperty(exports, "__esModule", ({
8952 value: true
8953 }));
8954 exports["default"] = void 0;
8955 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8956 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
8957 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8958 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8959 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8960 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8961 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8962 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
8963 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
8964 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8965 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8966 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8967 var _outPaintingContent = _interopRequireDefault(__webpack_require__(/*! ./out-painting-content */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js"));
8968 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8969 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8970 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8971 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8972 var _useOutPainting2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-out-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js"));
8973 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8974 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8975 var OutPainting = function OutPainting() {
8976 var _useState = (0, _react.useState)(''),
8977 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8978 prompt = _useState2[0],
8979 setPrompt = _useState2[1];
8980 var _useEditImage = (0, _editImageContext.useEditImage)(),
8981 editImage = _useEditImage.editImage,
8982 initialAspectRatio = _useEditImage.aspectRatio;
8983 var _useState3 = (0, _react.useState)(''),
8984 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
8985 mask = _useState4[0],
8986 setMask = _useState4[1];
8987 var _usePromptSettings = (0, _usePromptSettings2.default)({
8988 aspectRatio: initialAspectRatio
8989 }),
8990 settings = _usePromptSettings.settings,
8991 updateSettings = _usePromptSettings.updateSettings,
8992 resetSettings = _usePromptSettings.resetSettings;
8993 var _useImageActions = (0, _useImageActions2.default)(),
8994 use = _useImageActions.use,
8995 edit = _useImageActions.edit,
8996 isUploading = _useImageActions.isLoading;
8997 var _useOutPainting = (0, _useOutPainting2.default)(),
8998 data = _useOutPainting.data,
8999 send = _useOutPainting.send,
9000 isGenerating = _useOutPainting.isLoading,
9001 error = _useOutPainting.error,
9002 reset = _useOutPainting.reset;
9003 var isLoading = isGenerating || isUploading;
9004 var generatedAspectRatio = (0, _react.useMemo)(function () {
9005 return settings[_usePromptSettings2.IMAGE_RATIO];
9006 }, [data === null || data === void 0 ? void 0 : data.result]);
9007 var hasGeneratedResult = !!(data !== null && data !== void 0 && data.result);
9008 var handleSubmit = function handleSubmit(event) {
9009 event.preventDefault();
9010
9011 // The fallback instruction should be hidden for the user.
9012 var finalPrompt = prompt || 'Fill based on the surroundings';
9013 send(finalPrompt, settings, editImage, mask);
9014 };
9015 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, null), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
9016 primary: (0, _i18n.__)('Expand Image', 'elementor'),
9017 secondary: (0, _i18n.__)('Position image in it’s new size to generate content around the edges.', 'elementor')
9018 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9019 error: error,
9020 onRetry: handleSubmit
9021 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9022 onSubmit: handleSubmit
9023 }, /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
9024 disabled: isLoading || hasGeneratedResult,
9025 value: settings[_usePromptSettings2.IMAGE_RATIO],
9026 onChange: function onChange(event) {
9027 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
9028 }
9029 }), /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
9030 sx: {
9031 width: '100%',
9032 mb: 2.5
9033 }
9034 }, /*#__PURE__*/_react.default.createElement(_ui.Slider, {
9035 marks: true,
9036 id: "zoom",
9037 name: "zoom",
9038 max: 2,
9039 min: 0.1,
9040 step: 0.1,
9041 color: "secondary",
9042 defaultValue: 1,
9043 disabled: isLoading || hasGeneratedResult,
9044 valueLabelDisplay: "auto",
9045 "aria-labelledby": "image-size-slider",
9046 "aria-label": (0, _i18n.__)('Reference strength', 'elementor'),
9047 onChange: function onChange(_, value) {
9048 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_ZOOM, value));
9049 }
9050 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9051 id: "image-size-slider",
9052 variant: "caption",
9053 gutterBottom: true
9054 }, (0, _i18n.__)('Original image size', 'elementor'))), /*#__PURE__*/_react.default.createElement(_promptField.default, {
9055 value: prompt,
9056 disabled: isLoading,
9057 onChange: setPrompt,
9058 placeholder: (0, _i18n.__)('Describe what you want to generate in the expended area (English only)', 'elementor')
9059 }), data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9060 gap: 2,
9061 sx: {
9062 my: 2.5
9063 }
9064 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
9065 disabled: isLoading
9066 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9067 disabled: isLoading,
9068 onClick: function onClick() {
9069 resetSettings();
9070 setPrompt('');
9071 reset();
9072 }
9073 })) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9074 disabled: isLoading
9075 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9076 isGenerating: isLoading
9077 }, hasGeneratedResult ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9078 onUseImage: use,
9079 onEditImage: edit,
9080 images: data.result,
9081 aspectRatio: generatedAspectRatio
9082 }) : /*#__PURE__*/_react.default.createElement(_outPaintingContent.default, {
9083 setMask: setMask,
9084 editImage: editImage,
9085 scale: settings[_usePromptSettings2.IMAGE_ZOOM],
9086 aspectRatio: settings[_usePromptSettings2.IMAGE_RATIO]
9087 })));
9088 };
9089 var _default = OutPainting;
9090 exports["default"] = _default;
9091
9092 /***/ }),
9093
9094 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js":
9095 /*!**************************************************************************************************!*\
9096 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js ***!
9097 \**************************************************************************************************/
9098 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9099
9100 "use strict";
9101
9102
9103 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9104 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9105 Object.defineProperty(exports, "__esModule", ({
9106 value: true
9107 }));
9108 exports["default"] = void 0;
9109 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9110 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
9111 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
9112 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9113 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9114 var _reactAvatarEditor = _interopRequireDefault(__webpack_require__(/*! react-avatar-editor */ "../node_modules/react-avatar-editor/dist/index.js"));
9115 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
9116 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9117 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9118 var OutPaintingContent = function OutPaintingContent(_ref) {
9119 var scale = _ref.scale,
9120 setMask = _ref.setMask,
9121 editImage = _ref.editImage,
9122 aspectRatio = _ref.aspectRatio;
9123 var cropperRef = (0, _react.useRef)();
9124 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
9125 width = _useImageSize.width,
9126 height = _useImageSize.height;
9127 var updateMask = /*#__PURE__*/function () {
9128 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
9129 var imageDataURL;
9130 return _regenerator.default.wrap(function _callee$(_context) {
9131 while (1) switch (_context.prev = _context.next) {
9132 case 0:
9133 _context.next = 2;
9134 return cropperRef.current.getImageScaledToCanvas().toDataURL();
9135 case 2:
9136 imageDataURL = _context.sent;
9137 setMask(imageDataURL);
9138 case 4:
9139 case "end":
9140 return _context.stop();
9141 }
9142 }, _callee);
9143 }));
9144 return function updateMask() {
9145 return _ref2.apply(this, arguments);
9146 };
9147 }();
9148 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9149 alignItems: 'center',
9150 spacing: 0.5,
9151 flexGrow: 1
9152 }, /*#__PURE__*/_react.default.createElement(_reactAvatarEditor.default, {
9153 ref: cropperRef,
9154 image: editImage.url,
9155 style: {
9156 backgroundImage: 'linear-gradient(45deg, #bbb 25%, transparent 25%), linear-gradient(-45deg, #bbb 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #bbb 75%), linear-gradient(-45deg, transparent 75%, #bbb 75%)',
9157 backgroundSize: '20px 20px',
9158 backgroundPosition: '0 0, 0 10px, 10px -10px, -10px 0px',
9159 outline: '2px dashed #000',
9160 marginTop: '12px'
9161 },
9162 color: [0, 0, 0, 0.9],
9163 rotate: 0,
9164 border: 0,
9165 allowZoomOut: true,
9166 backgroundColor: 'transparent',
9167 showGrid: true,
9168 onImageChange: function onImageChange() {
9169 return updateMask();
9170 },
9171 onPositionChange: function onPositionChange() {
9172 return updateMask();
9173 },
9174 width: width,
9175 height: height,
9176 scale: scale
9177 }));
9178 };
9179 OutPaintingContent.propTypes = {
9180 scale: _propTypes.default.number.isRequired,
9181 setMask: _propTypes.default.func.isRequired,
9182 editImage: _propTypes.default.object.isRequired,
9183 aspectRatio: _propTypes.default.string.isRequired
9184 };
9185 var _default = OutPaintingContent;
9186 exports["default"] = _default;
9187
9188 /***/ }),
9189
9190 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js":
9191 /*!**************************************************************************************************************!*\
9192 !*** ../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js ***!
9193 \**************************************************************************************************************/
9194 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9195
9196 "use strict";
9197
9198
9199 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9200 Object.defineProperty(exports, "__esModule", ({
9201 value: true
9202 }));
9203 exports["default"] = void 0;
9204 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9205 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9206 var useRemoveBackground = function useRemoveBackground(initialValue) {
9207 var fetchAction = function fetchAction(image) {
9208 return (0, _api.getImageToImageRemoveBackground)(image);
9209 };
9210 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9211 };
9212 var _default = useRemoveBackground;
9213 exports["default"] = _default;
9214
9215 /***/ }),
9216
9217 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js":
9218 /*!****************************************************************************************!*\
9219 !*** ../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js ***!
9220 \****************************************************************************************/
9221 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9222
9223 "use strict";
9224
9225
9226 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9227 Object.defineProperty(exports, "__esModule", ({
9228 value: true
9229 }));
9230 exports["default"] = void 0;
9231 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9232 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9233 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9234 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9235 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9236 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9237 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9238 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9239 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9240 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9241 var _useRemoveBackground2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-remove-background */ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js"));
9242 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9243 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
9244 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
9245 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
9246 var RemoveBackground = function RemoveBackground() {
9247 var _useEditImage = (0, _editImageContext.useEditImage)(),
9248 editImage = _useEditImage.editImage;
9249 var _useImageActions = (0, _useImageActions2.default)(),
9250 use = _useImageActions.use,
9251 edit = _useImageActions.edit,
9252 isUploading = _useImageActions.isLoading;
9253 var _useRemoveBackground = (0, _useRemoveBackground2.default)(),
9254 data = _useRemoveBackground.data,
9255 send = _useRemoveBackground.send,
9256 isGenerating = _useRemoveBackground.isLoading,
9257 error = _useRemoveBackground.error;
9258 var _useLocation = (0, _locationContext.useLocation)(),
9259 navigate = _useLocation.navigate;
9260 var isLoading = isGenerating || isUploading;
9261 var _useImageSize = (0, _useImageSize2.default)(editImage.aspectRatio),
9262 width = _useImageSize.width,
9263 height = _useImageSize.height;
9264 var handleSubmit = function handleSubmit(event) {
9265 event.preventDefault();
9266 send(editImage);
9267 };
9268 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, null), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
9269 primary: (0, _i18n.__)('Remove Background', 'elementor'),
9270 secondary: (0, _i18n.__)('Create an image of the subject with a transparent background', 'elementor')
9271 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9272 error: error,
9273 onRetry: handleSubmit
9274 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9275 onSubmit: handleSubmit
9276 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9277 variant: "contained",
9278 disabled: isLoading,
9279 onClick: function onClick() {
9280 return navigate(_constants.LOCATIONS.GENERATE);
9281 }
9282 }) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9283 disabled: isLoading
9284 }, (0, _i18n.__)('Remove Background', 'elementor')))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9285 isGenerating: isLoading
9286 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9287 transparentContainer: true,
9288 onUseImage: use,
9289 onEditImage: edit,
9290 images: data.result,
9291 aspectRatio: editImage.aspectRatio
9292 })) : /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9293 src: editImage.url,
9294 alt: editImage.alt,
9295 style: {
9296 width: width,
9297 height: height
9298 }
9299 })))));
9300 };
9301 var _default = RemoveBackground;
9302 exports["default"] = _default;
9303
9304 /***/ }),
9305
9306 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js":
9307 /*!****************************************************************************************************************!*\
9308 !*** ../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js ***!
9309 \****************************************************************************************************************/
9310 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9311
9312 "use strict";
9313
9314
9315 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9316 Object.defineProperty(exports, "__esModule", ({
9317 value: true
9318 }));
9319 exports["default"] = void 0;
9320 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9321 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9322 var useReplaceBackground = function useReplaceBackground(initialValue) {
9323 var fetchAction = function fetchAction(prompt, image) {
9324 return (0, _api.getImageToImageReplaceBackground)(prompt, image);
9325 };
9326 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9327 };
9328 var _default = useReplaceBackground;
9329 exports["default"] = _default;
9330
9331 /***/ }),
9332
9333 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js":
9334 /*!*****************************************************************************************!*\
9335 !*** ../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js ***!
9336 \*****************************************************************************************/
9337 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9338
9339 "use strict";
9340
9341
9342 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9343 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9344 Object.defineProperty(exports, "__esModule", ({
9345 value: true
9346 }));
9347 exports["default"] = void 0;
9348 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9349 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9350 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9351 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9352 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9353 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9354 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9355 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9356 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9357 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9358 var _useReplaceBackground2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-replace-background */ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js"));
9359 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9360 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
9361 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9362 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
9363 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9364 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9365 var ReplaceBackground = function ReplaceBackground() {
9366 var _useState = (0, _react.useState)(''),
9367 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9368 prompt = _useState2[0],
9369 setPrompt = _useState2[1];
9370 var _useEditImage = (0, _editImageContext.useEditImage)(),
9371 editImage = _useEditImage.editImage;
9372 var _useImageActions = (0, _useImageActions2.default)(),
9373 use = _useImageActions.use,
9374 edit = _useImageActions.edit,
9375 isUploading = _useImageActions.isLoading;
9376 var _useReplaceBackground = (0, _useReplaceBackground2.default)(),
9377 data = _useReplaceBackground.data,
9378 send = _useReplaceBackground.send,
9379 isGenerating = _useReplaceBackground.isLoading,
9380 error = _useReplaceBackground.error,
9381 reset = _useReplaceBackground.reset;
9382 var _useLocation = (0, _locationContext.useLocation)(),
9383 navigate = _useLocation.navigate;
9384 var isLoading = isGenerating || isUploading;
9385 var handleSubmit = function handleSubmit(event) {
9386 event.preventDefault();
9387 send(prompt, editImage);
9388 };
9389 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, null), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
9390 primary: (0, _i18n.__)('Replace Background', 'elementor'),
9391 secondary: (0, _i18n.__)('Generate a new background with a prompt.', 'elementor')
9392 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9393 error: error,
9394 onRetry: handleSubmit
9395 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9396 onSubmit: handleSubmit
9397 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
9398 value: prompt,
9399 disabled: isLoading,
9400 onChange: setPrompt,
9401 placeholder: (0, _i18n.__)('Describe what you want to generate in the background (English only)', 'elementor')
9402 }), /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9403 disabled: isLoading || '' === prompt,
9404 color: data !== null && data !== void 0 && data.result ? 'secondary' : 'primary'
9405 }, data !== null && data !== void 0 && data.result ? (0, _i18n.__)('Generate Again', 'elementor') : (0, _i18n.__)('Replace Background', 'elementor')), (data === null || data === void 0 ? void 0 : data.result) && /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9406 disabled: isLoading,
9407 onClick: function onClick() {
9408 return navigate(_constants.LOCATIONS.GENERATE);
9409 }
9410 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9411 isGenerating: isLoading
9412 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9413 onUseImage: use,
9414 onEditImage: edit,
9415 images: data.result,
9416 aspectRatio: editImage.aspectRatio
9417 }) : /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9418 src: editImage.url,
9419 alt: editImage.alt,
9420 style: {
9421 width: editImage.width,
9422 height: editImage.height
9423 }
9424 }))));
9425 };
9426 var _default = ReplaceBackground;
9427 exports["default"] = _default;
9428
9429 /***/ }),
9430
9431 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js":
9432 /*!****************************************************************************************!*\
9433 !*** ../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js ***!
9434 \****************************************************************************************/
9435 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9436
9437 "use strict";
9438
9439
9440 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9441 Object.defineProperty(exports, "__esModule", ({
9442 value: true
9443 }));
9444 exports["default"] = void 0;
9445 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9446 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9447 var useResize = function useResize(initialValue) {
9448 var fetchAction = function fetchAction(prompt, promptSettings, image) {
9449 return (0, _api.getImageToImageUpscale)(prompt, promptSettings, image);
9450 };
9451 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9452 };
9453 var _default = useResize;
9454 exports["default"] = _default;
9455
9456 /***/ }),
9457
9458 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js":
9459 /*!*****************************************************************************!*\
9460 !*** ../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js ***!
9461 \*****************************************************************************/
9462 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9463
9464 "use strict";
9465
9466
9467 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9468 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9469 Object.defineProperty(exports, "__esModule", ({
9470 value: true
9471 }));
9472 exports["default"] = void 0;
9473 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9474 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9475 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9476 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9477 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9478 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9479 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9480 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9481 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9482 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9483 var _useResize2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-resize */ "../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js"));
9484 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9485 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9486 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9487 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9488 var Resize = function Resize() {
9489 var _useEditImage = (0, _editImageContext.useEditImage)(),
9490 editImage = _useEditImage.editImage,
9491 initialEditImageWidth = _useEditImage.width;
9492 var _useImageActions = (0, _useImageActions2.default)(),
9493 use = _useImageActions.use,
9494 edit = _useImageActions.edit,
9495 isUploading = _useImageActions.isLoading;
9496 var _usePromptSettings = (0, _usePromptSettings2.default)(),
9497 settings = _usePromptSettings.settings,
9498 updateSettings = _usePromptSettings.updateSettings;
9499 var _useResize = (0, _useResize2.default)(),
9500 data = _useResize.data,
9501 send = _useResize.send,
9502 isGenerating = _useResize.isLoading,
9503 error = _useResize.error;
9504 var isLoading = isGenerating || isUploading;
9505 var handleSubmit = function handleSubmit(event) {
9506 event.preventDefault();
9507 send(null, settings, editImage);
9508 };
9509 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, null), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
9510 primary: (0, _i18n.__)('Resize', 'elementor'),
9511 secondary: (0, _i18n.__)('Make an image larger and improve it’s resolution.', 'elementor')
9512 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9513 error: error,
9514 onRetry: handleSubmit
9515 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9516 onSubmit: handleSubmit
9517 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9518 spacing: 0.2
9519 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9520 display: "flex",
9521 justifyContent: "space-between",
9522 alignItems: "center"
9523 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9524 variant: "caption"
9525 }, "512px"), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9526 variant: "caption"
9527 }, "2048px")), /*#__PURE__*/_react.default.createElement(_ui.Slider, {
9528 marks: true,
9529 step: 64,
9530 min: 512,
9531 max: 2048,
9532 id: "upscale_to",
9533 color: "secondary",
9534 name: "upscale_to",
9535 disabled: isLoading,
9536 defaultValue: initialEditImageWidth,
9537 valueLabelDisplay: "auto",
9538 "aria-label": (0, _i18n.__)('Upscale to', 'elementor'),
9539 onChange: function onChange(_, value) {
9540 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_UPSCALE, value));
9541 }
9542 }), /*#__PURE__*/_react.default.createElement(_ui.Box, {
9543 display: "flex",
9544 justifyContent: "space-between",
9545 alignItems: "center"
9546 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9547 variant: "caption"
9548 }, (0, _i18n.__)('Current', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9549 variant: "caption"
9550 }, (0, _i18n.__)('Output', 'elementor')))), /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9551 disabled: isLoading
9552 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9553 isGenerating: isLoading
9554 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9555 onUseImage: use,
9556 onEditImage: edit,
9557 images: data.result,
9558 aspectRatio: editImage.aspectRatio
9559 }) : /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9560 src: editImage.url,
9561 alt: editImage.alt,
9562 style: {
9563 width: editImage.width,
9564 height: editImage.height
9565 }
9566 }))));
9567 };
9568 var _default = Resize;
9569 exports["default"] = _default;
9570
9571 /***/ }),
9572
9573 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js":
9574 /*!*************************************************************************************************************!*\
9575 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js ***!
9576 \*************************************************************************************************************/
9577 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9578
9579 "use strict";
9580
9581
9582 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9583 Object.defineProperty(exports, "__esModule", ({
9584 value: true
9585 }));
9586 exports["default"] = void 0;
9587 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9588 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9589 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
9590 var VariationsPlaceholder = function VariationsPlaceholder() {
9591 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
9592 sx: {
9593 overflowY: 'scroll'
9594 },
9595 flexGrow: 1
9596 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9597 display: "grid",
9598 gridTemplateColumns: "repeat(2, 1fr)",
9599 gap: 3
9600 }, Array(4).fill(true).map(function (_, index) {
9601 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
9602 key: "placeholder-".concat(index),
9603 display: "flex",
9604 justifyContent: "center",
9605 alignItems: "center",
9606 sx: {
9607 bgcolor: 'action.selected',
9608 height: 336
9609 }
9610 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
9611 color: "secondary",
9612 sx: {
9613 fontSize: 36
9614 }
9615 }));
9616 })));
9617 };
9618 VariationsPlaceholder.propTypes = {};
9619 var _default = VariationsPlaceholder;
9620 exports["default"] = _default;
9621
9622 /***/ }),
9623
9624 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js":
9625 /*!****************************************************************************************************!*\
9626 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js ***!
9627 \****************************************************************************************************/
9628 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9629
9630 "use strict";
9631
9632
9633 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9634 Object.defineProperty(exports, "__esModule", ({
9635 value: true
9636 }));
9637 exports["default"] = void 0;
9638 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9639 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9640 var useImageToImage = function useImageToImage(initialValue) {
9641 var fetchAction = function fetchAction(prompt, promptSettings, image) {
9642 return (0, _api.getImageToImageGeneration)(prompt, promptSettings, image);
9643 };
9644 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9645 };
9646 var _default = useImageToImage;
9647 exports["default"] = _default;
9648
9649 /***/ }),
9650
9651 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js":
9652 /*!*********************************************************************************!*\
9653 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js ***!
9654 \*********************************************************************************/
9655 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9656
9657 "use strict";
9658
9659
9660 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9661 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9662 Object.defineProperty(exports, "__esModule", ({
9663 value: true
9664 }));
9665 exports["default"] = void 0;
9666 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9667 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9668 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9669 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9670 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9671 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9672 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9673 var _imageStrengthSlider = _interopRequireDefault(__webpack_require__(/*! ../../components/image-strength-slider */ "../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js"));
9674 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9675 var _imageTypeSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-type-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js"));
9676 var _imageStyleSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-style-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js"));
9677 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
9678 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
9679 var _generateImagesSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-images-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js"));
9680 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9681 var _variationsPlaceholder = _interopRequireDefault(__webpack_require__(/*! ./components/variations-placeholder */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js"));
9682 var _useImageToImage2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-image-to-image */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js"));
9683 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9684 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9685 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9686 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9687 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9688 var IMAGE_WEIGHT_DEFAULT = 45;
9689 var Variations = function Variations() {
9690 var _data$result;
9691 var _useState = (0, _react.useState)(''),
9692 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9693 prompt = _useState2[0],
9694 setPrompt = _useState2[1];
9695 var _useEditImage = (0, _editImageContext.useEditImage)(),
9696 editImage = _useEditImage.editImage,
9697 initialAspectRatio = _useEditImage.aspectRatio;
9698 var _usePromptSettings = (0, _usePromptSettings2.default)({
9699 aspectRatio: initialAspectRatio,
9700 imageWeight: IMAGE_WEIGHT_DEFAULT
9701 }),
9702 settings = _usePromptSettings.settings,
9703 updateSettings = _usePromptSettings.updateSettings;
9704 var _useImageToImage = (0, _useImageToImage2.default)(),
9705 data = _useImageToImage.data,
9706 send = _useImageToImage.send,
9707 isGenerating = _useImageToImage.isLoading,
9708 error = _useImageToImage.error;
9709 var _useImageActions = (0, _useImageActions2.default)(),
9710 use = _useImageActions.use,
9711 edit = _useImageActions.edit,
9712 isUploading = _useImageActions.isLoading;
9713 var isLoading = isGenerating || isUploading;
9714 var generatedAspectRatio = (0, _react.useMemo)(function () {
9715 return settings[_usePromptSettings2.IMAGE_RATIO];
9716 }, [data === null || data === void 0 ? void 0 : data.result]);
9717 var handleSubmit = function handleSubmit(event) {
9718 event.preventDefault();
9719 send(prompt, settings, editImage);
9720 };
9721 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, null), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
9722 primary: (0, _i18n.__)('Variations', 'elementor'),
9723 secondary: (0, _i18n.__)('Create new versions of the original image.', 'elementor')
9724 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9725 error: error,
9726 onRetry: handleSubmit
9727 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9728 onSubmit: handleSubmit
9729 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9730 sx: {
9731 display: 'flex',
9732 alignItems: 'center',
9733 justifyContent: 'center',
9734 bgcolor: 'action.selected'
9735 }
9736 }, /*#__PURE__*/_react.default.createElement("img", {
9737 src: (editImage === null || editImage === void 0 ? void 0 : editImage.image_url) || (editImage === null || editImage === void 0 ? void 0 : editImage.url),
9738 alt: prompt,
9739 style: {
9740 width: 'auto',
9741 height: 'auto',
9742 maxWidth: '100%',
9743 maxHeight: 166,
9744 objectFit: 'contained'
9745 }
9746 })), /*#__PURE__*/_react.default.createElement(_imageStrengthSlider.default, {
9747 disabled: isLoading,
9748 defaultValue: IMAGE_WEIGHT_DEFAULT,
9749 onChange: function onChange(event) {
9750 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STRENGTH, event.target.value));
9751 }
9752 }), /*#__PURE__*/_react.default.createElement(_promptField.default, {
9753 value: prompt,
9754 disabled: isLoading,
9755 placeholder: (0, _i18n.__)('describe your image', 'elementor'),
9756 onChange: setPrompt
9757 }), /*#__PURE__*/_react.default.createElement(_imageTypeSelect.default, {
9758 disabled: isLoading,
9759 value: settings[_usePromptSettings2.IMAGE_TYPE],
9760 onChange: function onChange(event) {
9761 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_TYPE, event.target.value));
9762 }
9763 }), /*#__PURE__*/_react.default.createElement(_imageStyleSelect.default, {
9764 type: settings[_usePromptSettings2.IMAGE_TYPE],
9765 value: settings[_usePromptSettings2.IMAGE_STYLE],
9766 disabled: isLoading || !settings[_usePromptSettings2.IMAGE_TYPE] || false,
9767 onChange: function onChange(event) {
9768 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STYLE, event.target.value));
9769 }
9770 }), /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
9771 disabled: isLoading,
9772 value: settings[_usePromptSettings2.IMAGE_RATIO],
9773 onChange: function onChange(event) {
9774 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
9775 }
9776 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9777 gap: 2,
9778 sx: {
9779 my: 2.5
9780 }
9781 }, (data === null || data === void 0 ? void 0 : (_data$result = data.result) === null || _data$result === void 0 ? void 0 : _data$result.length) > 0 ? /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
9782 disabled: isLoading || '' === prompt
9783 }) : /*#__PURE__*/_react.default.createElement(_generateImagesSubmit.default, {
9784 disabled: isLoading || '' === prompt
9785 })))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9786 isGenerating: isLoading
9787 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9788 images: data.result,
9789 aspectRatio: generatedAspectRatio,
9790 onUseImage: use,
9791 onEditImage: edit
9792 }) : /*#__PURE__*/_react.default.createElement(_variationsPlaceholder.default, null)));
9793 };
9794 Variations.propTypes = {};
9795 var _default = Variations;
9796 exports["default"] = _default;
9797
9798 /***/ }),
9799
9800 /***/ "../modules/ai/assets/js/editor/pages/form-text/index.js":
9801 /*!***************************************************************!*\
9802 !*** ../modules/ai/assets/js/editor/pages/form-text/index.js ***!
9803 \***************************************************************/
9804 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9805
9806 "use strict";
9807
9808
9809 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9810 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9811 Object.defineProperty(exports, "__esModule", ({
9812 value: true
9813 }));
9814 exports["default"] = void 0;
9815 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9816 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
9817 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
9818 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9819 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9820 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9821 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9822 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
9823 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
9824 var _promptSearch = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-search */ "../modules/ai/assets/js/editor/components/prompt-search.js"));
9825 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
9826 var _promptSuggestions = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-suggestions */ "../modules/ai/assets/js/editor/components/prompt-suggestions.js"));
9827 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
9828 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
9829 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
9830 var _promptAction = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-action */ "../modules/ai/assets/js/editor/components/prompt-action.js"));
9831 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
9832 var _useTextPrompt2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-text-prompt */ "../modules/ai/assets/js/editor/hooks/use-text-prompt.js"));
9833 var _actionsData = __webpack_require__(/*! ../../actions-data */ "../modules/ai/assets/js/editor/actions-data.js");
9834 var _promptHistoryActionContext = __webpack_require__(/*! ../../components/prompt-history/context/prompt-history-action-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js");
9835 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9836 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9837 var promptActions = [{
9838 label: (0, _i18n.__)('Simplify language', 'elementor'),
9839 icon: /*#__PURE__*/_react.default.createElement(_icons.MessageIcon, {
9840 fontSize: "small"
9841 }),
9842 value: 'Simplify the language of the following message'
9843 }, {
9844 label: (0, _i18n.__)('Make it longer', 'elementor'),
9845 icon: /*#__PURE__*/_react.default.createElement(_icons.ExpandIcon, {
9846 fontSize: "small"
9847 }),
9848 value: 'Make the following message longer'
9849 }, {
9850 label: (0, _i18n.__)('Make it shorter', 'elementor'),
9851 icon: /*#__PURE__*/_react.default.createElement(_icons.ShrinkIcon, {
9852 fontSize: "small"
9853 }),
9854 value: 'Make the following message shorter'
9855 }, {
9856 label: (0, _i18n.__)('Fix spelling & grammar', 'elementor'),
9857 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
9858 fontSize: "small"
9859 }),
9860 value: 'Fix the spelling and grammar of the following message'
9861 }];
9862 var promptInstructions = [{
9863 label: (0, _i18n.__)('Change tone', 'elementor'),
9864 options: _actionsData.vocalTones,
9865 getInstruction: function getInstruction(value) {
9866 return "Change the tone of the following message to ".concat(value);
9867 }
9868 }, {
9869 label: (0, _i18n.__)('Translate to', 'elementor'),
9870 options: _actionsData.translateLanguages,
9871 getInstruction: function getInstruction(value) {
9872 return "Translate the following message to ".concat(value);
9873 }
9874 }];
9875 var FormText = function FormText(_ref) {
9876 var type = _ref.type,
9877 onClose = _ref.onClose,
9878 getControlValue = _ref.getControlValue,
9879 setControlValue = _ref.setControlValue,
9880 additionalOptions = _ref.additionalOptions,
9881 credits = _ref.credits,
9882 children = _ref.children;
9883 var initialValue = getControlValue() === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultValue) ? '' : getControlValue();
9884 var _useTextPrompt = (0, _useTextPrompt2.default)({
9885 result: initialValue,
9886 credits: credits
9887 }),
9888 data = _useTextPrompt.data,
9889 isLoading = _useTextPrompt.isLoading,
9890 error = _useTextPrompt.error,
9891 setResult = _useTextPrompt.setResult,
9892 reset = _useTextPrompt.reset,
9893 send = _useTextPrompt.send,
9894 sendUsageData = _useTextPrompt.sendUsageData;
9895 var _useState = (0, _react.useState)(''),
9896 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9897 prompt = _useState2[0],
9898 setPrompt = _useState2[1];
9899 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
9900 type: _promptHistoryActionContext.ACTION_TYPES.REUSE,
9901 handler: function handler(action) {
9902 reset();
9903 setPrompt(action.data);
9904 }
9905 }, {
9906 type: _promptHistoryActionContext.ACTION_TYPES.EDIT,
9907 handler: function handler(action) {
9908 setResult(action.data);
9909 }
9910 }]);
9911 var searchField = (0, _react.useRef)(null);
9912 var resultField = (0, _react.useRef)(null);
9913 var lastRun = (0, _react.useRef)(function () {});
9914 var autocompleteItems = 'textarea' === type ? _actionsData.textareaAutocomplete : _actionsData.textAutocomplete;
9915 var showSuggestions = !prompt;
9916 var handleSubmit = function handleSubmit(event) {
9917 event.preventDefault();
9918 lastRun.current = function () {
9919 return send(prompt);
9920 };
9921 lastRun.current();
9922 };
9923 var handleCustomInstruction = /*#__PURE__*/function () {
9924 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(instruction) {
9925 return _regenerator.default.wrap(function _callee$(_context) {
9926 while (1) switch (_context.prev = _context.next) {
9927 case 0:
9928 lastRun.current = function () {
9929 return send(resultField.current.value, instruction);
9930 };
9931 lastRun.current();
9932 case 2:
9933 case "end":
9934 return _context.stop();
9935 }
9936 }, _callee);
9937 }));
9938 return function handleCustomInstruction(_x) {
9939 return _ref2.apply(this, arguments);
9940 };
9941 }();
9942 var handleSuggestion = function handleSuggestion(suggestion) {
9943 setPrompt(suggestion + ' ');
9944 searchField.current.focus();
9945 };
9946 var applyPrompt = function applyPrompt() {
9947 sendUsageData();
9948 setControlValue(resultField.current.value);
9949 onClose();
9950 };
9951 if (isLoading) {
9952 return /*#__PURE__*/_react.default.createElement(_loader.default, null);
9953 }
9954 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
9955 error: error,
9956 onRetry: lastRun.current,
9957 sx: {
9958 mb: 2.5
9959 }
9960 }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
9961 component: "form",
9962 onSubmit: handleSubmit
9963 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9964 sx: {
9965 mb: 2.5
9966 }
9967 }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, {
9968 ref: searchField,
9969 placeholder: (0, _i18n.__)('Describe the text and tone you want to use...', 'elementor'),
9970 name: "prompt",
9971 value: prompt,
9972 onChange: function onChange(event) {
9973 return setPrompt(event.target.value);
9974 }
9975 })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, {
9976 suggestions: autocompleteItems,
9977 onSelect: handleSuggestion,
9978 suggestionFilter: function suggestionFilter(suggestion) {
9979 return suggestion + '...';
9980 }
9981 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
9982 libraryLink: "https://go.elementor.com/ai-prompt-library-text/"
9983 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9984 direction: "row",
9985 alignItems: "center",
9986 sx: {
9987 py: 1.5,
9988 mt: 4
9989 }
9990 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9991 direction: "row",
9992 justifyContent: "flex-end",
9993 flexGrow: 1
9994 }, /*#__PURE__*/_react.default.createElement(_generateButton.default, null, (0, _i18n.__)('Generate text', 'elementor'))))), data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
9995 sx: {
9996 mt: 1
9997 }
9998 }, /*#__PURE__*/_react.default.createElement(_textarea.default, {
9999 fullWidth: true,
10000 ref: resultField,
10001 value: data.result,
10002 helperText: (0, _i18n.__)('Text generated by AI may be inaccurate or offensive.', 'elementor'),
10003 onChange: function onChange(event) {
10004 return setResult(event.target.value);
10005 }
10006 }), /*#__PURE__*/_react.default.createElement(_ui.Grid, {
10007 container: true,
10008 spacing: 1,
10009 sx: {
10010 mt: 2.5
10011 }
10012 }, promptActions.map(function (_ref3) {
10013 var label = _ref3.label,
10014 icon = _ref3.icon,
10015 value = _ref3.value;
10016 return /*#__PURE__*/_react.default.createElement(_ui.Grid, {
10017 item: true,
10018 key: label
10019 }, /*#__PURE__*/_react.default.createElement(_promptAction.default, {
10020 label: label,
10021 icon: icon,
10022 onClick: function onClick() {
10023 return handleCustomInstruction(value);
10024 }
10025 }));
10026 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10027 direction: "row",
10028 alignItems: "center",
10029 spacing: 1,
10030 sx: {
10031 mt: 2.5
10032 }
10033 }, promptInstructions.map(function (_ref4) {
10034 var label = _ref4.label,
10035 options = _ref4.options,
10036 getInstruction = _ref4.getInstruction;
10037 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, {
10038 key: label,
10039 label: label,
10040 options: options,
10041 onChange: function onChange(event) {
10042 return handleCustomInstruction(getInstruction(event.target.value));
10043 }
10044 });
10045 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10046 direction: "row",
10047 alignItems: "center",
10048 sx: {
10049 my: 1
10050 }
10051 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10052 direction: "row",
10053 gap: 1,
10054 justifyContent: "flex-end",
10055 flexGrow: 1
10056 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
10057 size: "small",
10058 color: "secondary",
10059 variant: "text",
10060 onClick: reset
10061 }, (0, _i18n.__)('New prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
10062 size: "small",
10063 variant: "contained",
10064 color: "primary",
10065 onClick: applyPrompt
10066 }, (0, _i18n.__)('Use text', 'elementor'))))));
10067 };
10068 FormText.propTypes = {
10069 type: _propTypes.default.string.isRequired,
10070 controlType: _propTypes.default.string,
10071 onClose: _propTypes.default.func.isRequired,
10072 getControlValue: _propTypes.default.func.isRequired,
10073 setControlValue: _propTypes.default.func.isRequired,
10074 additionalOptions: _propTypes.default.object,
10075 credits: _propTypes.default.number,
10076 usagePercentage: _propTypes.default.number,
10077 children: _propTypes.default.node
10078 };
10079 var _default = FormText;
10080 exports["default"] = _default;
10081
10082 /***/ }),
10083
10084 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
10085 /*!*****************************************************************!*\
10086 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
10087 \*****************************************************************/
10088 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10089
10090 "use strict";
10091
10092
10093 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10094 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
10095 Object.defineProperty(exports, "__esModule", ({
10096 value: true
10097 }));
10098 exports["default"] = void 0;
10099 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
10100 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10101 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10102 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
10103 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
10104 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10105 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
10106 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
10107 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
10108 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10109 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10110 var GetStarted = function GetStarted(_ref) {
10111 var onSuccess = _ref.onSuccess;
10112 var _useState = (0, _react.useState)(false),
10113 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
10114 isTermsChecked = _useState2[0],
10115 setIsTermsChecked = _useState2[1];
10116 var onGetStartedClick = /*#__PURE__*/function () {
10117 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
10118 return _regenerator.default.wrap(function _callee$(_context) {
10119 while (1) switch (_context.prev = _context.next) {
10120 case 0:
10121 _context.next = 2;
10122 return (0, _api.setGetStarted)();
10123 case 2:
10124 onSuccess();
10125 case 3:
10126 case "end":
10127 return _context.stop();
10128 }
10129 }, _callee);
10130 }));
10131 return function onGetStartedClick() {
10132 return _ref2.apply(this, arguments);
10133 };
10134 }();
10135 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10136 alignItems: "center",
10137 gap: 1.5
10138 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
10139 sx: {
10140 color: 'text.primary',
10141 fontSize: '60px',
10142 mb: 1
10143 }
10144 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10145 variant: "h4",
10146 sx: {
10147 color: 'text.primary'
10148 }
10149 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10150 variant: "body2"
10151 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10152 direction: "row",
10153 gap: 1.5,
10154 alignItems: "flex-start"
10155 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
10156 id: "e-ai-terms-approval",
10157 color: "secondary",
10158 sx: {
10159 p: 0
10160 },
10161 onChange: function onChange() {
10162 return setIsTermsChecked(function (prevState) {
10163 return !prevState;
10164 });
10165 }
10166 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10167 variant: "caption",
10168 sx: {
10169 maxWidth: 520
10170 },
10171 component: "label",
10172 htmlFor: "e-ai-terms-approval"
10173 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
10174 href: "https://go.elementor.com/ai-terms/",
10175 target: "_blank",
10176 color: "info.main"
10177 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
10178 href: "https://go.elementor.com/ai-privacy-policy/",
10179 target: "_blank",
10180 color: "info.main"
10181 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor'), /*#__PURE__*/_react.default.createElement("br", null), (0, _i18n.__)('This includes consenting to the collection and use of data to improve user experience.', 'elementor')))), /*#__PURE__*/_react.default.createElement(_ui.Button, {
10182 disabled: !isTermsChecked,
10183 variant: "contained",
10184 onClick: onGetStartedClick,
10185 sx: {
10186 mt: 1,
10187 '&:hover': {
10188 color: 'primary.contrastText'
10189 }
10190 }
10191 }, (0, _i18n.__)('Get Started', 'elementor')));
10192 };
10193 GetStarted.propTypes = {
10194 onSuccess: _propTypes.default.func.isRequired
10195 };
10196 var _default = GetStarted;
10197 exports["default"] = _default;
10198
10199 /***/ }),
10200
10201 /***/ "../node_modules/clsx/dist/clsx.m.js":
10202 /*!*******************************************!*\
10203 !*** ../node_modules/clsx/dist/clsx.m.js ***!
10204 \*******************************************/
10205 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10206
10207 "use strict";
10208 __webpack_require__.r(__webpack_exports__);
10209 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10210 /* harmony export */ clsx: () => (/* binding */ clsx),
10211 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10212 /* harmony export */ });
10213 function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);
10214
10215 /***/ }),
10216
10217 /***/ "../node_modules/debug/src/browser.js":
10218 /*!********************************************!*\
10219 !*** ../node_modules/debug/src/browser.js ***!
10220 \********************************************/
10221 /***/ ((module, exports, __webpack_require__) => {
10222
10223 /* eslint-env browser */
10224
10225 /**
10226 * This is the web browser implementation of `debug()`.
10227 */
10228
10229 exports.formatArgs = formatArgs;
10230 exports.save = save;
10231 exports.load = load;
10232 exports.useColors = useColors;
10233 exports.storage = localstorage();
10234 exports.destroy = (() => {
10235 let warned = false;
10236
10237 return () => {
10238 if (!warned) {
10239 warned = true;
10240 console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
10241 }
10242 };
10243 })();
10244
10245 /**
10246 * Colors.
10247 */
10248
10249 exports.colors = [
10250 '#0000CC',
10251 '#0000FF',
10252 '#0033CC',
10253 '#0033FF',
10254 '#0066CC',
10255 '#0066FF',
10256 '#0099CC',
10257 '#0099FF',
10258 '#00CC00',
10259 '#00CC33',
10260 '#00CC66',
10261 '#00CC99',
10262 '#00CCCC',
10263 '#00CCFF',
10264 '#3300CC',
10265 '#3300FF',
10266 '#3333CC',
10267 '#3333FF',
10268 '#3366CC',
10269 '#3366FF',
10270 '#3399CC',
10271 '#3399FF',
10272 '#33CC00',
10273 '#33CC33',
10274 '#33CC66',
10275 '#33CC99',
10276 '#33CCCC',
10277 '#33CCFF',
10278 '#6600CC',
10279 '#6600FF',
10280 '#6633CC',
10281 '#6633FF',
10282 '#66CC00',
10283 '#66CC33',
10284 '#9900CC',
10285 '#9900FF',
10286 '#9933CC',
10287 '#9933FF',
10288 '#99CC00',
10289 '#99CC33',
10290 '#CC0000',
10291 '#CC0033',
10292 '#CC0066',
10293 '#CC0099',
10294 '#CC00CC',
10295 '#CC00FF',
10296 '#CC3300',
10297 '#CC3333',
10298 '#CC3366',
10299 '#CC3399',
10300 '#CC33CC',
10301 '#CC33FF',
10302 '#CC6600',
10303 '#CC6633',
10304 '#CC9900',
10305 '#CC9933',
10306 '#CCCC00',
10307 '#CCCC33',
10308 '#FF0000',
10309 '#FF0033',
10310 '#FF0066',
10311 '#FF0099',
10312 '#FF00CC',
10313 '#FF00FF',
10314 '#FF3300',
10315 '#FF3333',
10316 '#FF3366',
10317 '#FF3399',
10318 '#FF33CC',
10319 '#FF33FF',
10320 '#FF6600',
10321 '#FF6633',
10322 '#FF9900',
10323 '#FF9933',
10324 '#FFCC00',
10325 '#FFCC33'
10326 ];
10327
10328 /**
10329 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
10330 * and the Firebug extension (any Firefox version) are known
10331 * to support "%c" CSS customizations.
10332 *
10333 * TODO: add a `localStorage` variable to explicitly enable/disable colors
10334 */
10335
10336 // eslint-disable-next-line complexity
10337 function useColors() {
10338 // NB: In an Electron preload script, document will be defined but not fully
10339 // initialized. Since we know we're in Chrome, we'll just detect this case
10340 // explicitly
10341 if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
10342 return true;
10343 }
10344
10345 // Internet Explorer and Edge do not support colors.
10346 if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
10347 return false;
10348 }
10349
10350 // Is webkit? http://stackoverflow.com/a/16459606/376773
10351 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
10352 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
10353 // Is firebug? http://stackoverflow.com/a/398120/376773
10354 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
10355 // Is firefox >= v31?
10356 // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
10357 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
10358 // Double check webkit in userAgent just in case we are in a worker
10359 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
10360 }
10361
10362 /**
10363 * Colorize log arguments if enabled.
10364 *
10365 * @api public
10366 */
10367
10368 function formatArgs(args) {
10369 args[0] = (this.useColors ? '%c' : '') +
10370 this.namespace +
10371 (this.useColors ? ' %c' : ' ') +
10372 args[0] +
10373 (this.useColors ? '%c ' : ' ') +
10374 '+' + module.exports.humanize(this.diff);
10375
10376 if (!this.useColors) {
10377 return;
10378 }
10379
10380 const c = 'color: ' + this.color;
10381 args.splice(1, 0, c, 'color: inherit');
10382
10383 // The final "%c" is somewhat tricky, because there could be other
10384 // arguments passed either before or after the %c, so we need to
10385 // figure out the correct index to insert the CSS into
10386 let index = 0;
10387 let lastC = 0;
10388 args[0].replace(/%[a-zA-Z%]/g, match => {
10389 if (match === '%%') {
10390 return;
10391 }
10392 index++;
10393 if (match === '%c') {
10394 // We only are interested in the *last* %c
10395 // (the user may have provided their own)
10396 lastC = index;
10397 }
10398 });
10399
10400 args.splice(lastC, 0, c);
10401 }
10402
10403 /**
10404 * Invokes `console.debug()` when available.
10405 * No-op when `console.debug` is not a "function".
10406 * If `console.debug` is not available, falls back
10407 * to `console.log`.
10408 *
10409 * @api public
10410 */
10411 exports.log = console.debug || console.log || (() => {});
10412
10413 /**
10414 * Save `namespaces`.
10415 *
10416 * @param {String} namespaces
10417 * @api private
10418 */
10419 function save(namespaces) {
10420 try {
10421 if (namespaces) {
10422 exports.storage.setItem('debug', namespaces);
10423 } else {
10424 exports.storage.removeItem('debug');
10425 }
10426 } catch (error) {
10427 // Swallow
10428 // XXX (@Qix-) should we be logging these?
10429 }
10430 }
10431
10432 /**
10433 * Load `namespaces`.
10434 *
10435 * @return {String} returns the previously persisted debug modes
10436 * @api private
10437 */
10438 function load() {
10439 let r;
10440 try {
10441 r = exports.storage.getItem('debug');
10442 } catch (error) {
10443 // Swallow
10444 // XXX (@Qix-) should we be logging these?
10445 }
10446
10447 // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
10448 if (!r && typeof process !== 'undefined' && 'env' in process) {
10449 r = process.env.DEBUG;
10450 }
10451
10452 return r;
10453 }
10454
10455 /**
10456 * Localstorage attempts to return the localstorage.
10457 *
10458 * This is necessary because safari throws
10459 * when a user disables cookies/localstorage
10460 * and you attempt to access it.
10461 *
10462 * @return {LocalStorage}
10463 * @api private
10464 */
10465
10466 function localstorage() {
10467 try {
10468 // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
10469 // The Browser also has localStorage in the global context.
10470 return localStorage;
10471 } catch (error) {
10472 // Swallow
10473 // XXX (@Qix-) should we be logging these?
10474 }
10475 }
10476
10477 module.exports = __webpack_require__(/*! ./common */ "../node_modules/debug/src/common.js")(exports);
10478
10479 const {formatters} = module.exports;
10480
10481 /**
10482 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
10483 */
10484
10485 formatters.j = function (v) {
10486 try {
10487 return JSON.stringify(v);
10488 } catch (error) {
10489 return '[UnexpectedJSONParseError]: ' + error.message;
10490 }
10491 };
10492
10493
10494 /***/ }),
10495
10496 /***/ "../node_modules/debug/src/common.js":
10497 /*!*******************************************!*\
10498 !*** ../node_modules/debug/src/common.js ***!
10499 \*******************************************/
10500 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10501
10502
10503 /**
10504 * This is the common logic for both the Node.js and web browser
10505 * implementations of `debug()`.
10506 */
10507
10508 function setup(env) {
10509 createDebug.debug = createDebug;
10510 createDebug.default = createDebug;
10511 createDebug.coerce = coerce;
10512 createDebug.disable = disable;
10513 createDebug.enable = enable;
10514 createDebug.enabled = enabled;
10515 createDebug.humanize = __webpack_require__(/*! ms */ "../node_modules/ms/index.js");
10516 createDebug.destroy = destroy;
10517
10518 Object.keys(env).forEach(key => {
10519 createDebug[key] = env[key];
10520 });
10521
10522 /**
10523 * The currently active debug mode names, and names to skip.
10524 */
10525
10526 createDebug.names = [];
10527 createDebug.skips = [];
10528
10529 /**
10530 * Map of special "%n" handling functions, for the debug "format" argument.
10531 *
10532 * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
10533 */
10534 createDebug.formatters = {};
10535
10536 /**
10537 * Selects a color for a debug namespace
10538 * @param {String} namespace The namespace string for the debug instance to be colored
10539 * @return {Number|String} An ANSI color code for the given namespace
10540 * @api private
10541 */
10542 function selectColor(namespace) {
10543 let hash = 0;
10544
10545 for (let i = 0; i < namespace.length; i++) {
10546 hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
10547 hash |= 0; // Convert to 32bit integer
10548 }
10549
10550 return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
10551 }
10552 createDebug.selectColor = selectColor;
10553
10554 /**
10555 * Create a debugger with the given `namespace`.
10556 *
10557 * @param {String} namespace
10558 * @return {Function}
10559 * @api public
10560 */
10561 function createDebug(namespace) {
10562 let prevTime;
10563 let enableOverride = null;
10564 let namespacesCache;
10565 let enabledCache;
10566
10567 function debug(...args) {
10568 // Disabled?
10569 if (!debug.enabled) {
10570 return;
10571 }
10572
10573 const self = debug;
10574
10575 // Set `diff` timestamp
10576 const curr = Number(new Date());
10577 const ms = curr - (prevTime || curr);
10578 self.diff = ms;
10579 self.prev = prevTime;
10580 self.curr = curr;
10581 prevTime = curr;
10582
10583 args[0] = createDebug.coerce(args[0]);
10584
10585 if (typeof args[0] !== 'string') {
10586 // Anything else let's inspect with %O
10587 args.unshift('%O');
10588 }
10589
10590 // Apply any `formatters` transformations
10591 let index = 0;
10592 args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
10593 // If we encounter an escaped % then don't increase the array index
10594 if (match === '%%') {
10595 return '%';
10596 }
10597 index++;
10598 const formatter = createDebug.formatters[format];
10599 if (typeof formatter === 'function') {
10600 const val = args[index];
10601 match = formatter.call(self, val);
10602
10603 // Now we need to remove `args[index]` since it's inlined in the `format`
10604 args.splice(index, 1);
10605 index--;
10606 }
10607 return match;
10608 });
10609
10610 // Apply env-specific formatting (colors, etc.)
10611 createDebug.formatArgs.call(self, args);
10612
10613 const logFn = self.log || createDebug.log;
10614 logFn.apply(self, args);
10615 }
10616
10617 debug.namespace = namespace;
10618 debug.useColors = createDebug.useColors();
10619 debug.color = createDebug.selectColor(namespace);
10620 debug.extend = extend;
10621 debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.
10622
10623 Object.defineProperty(debug, 'enabled', {
10624 enumerable: true,
10625 configurable: false,
10626 get: () => {
10627 if (enableOverride !== null) {
10628 return enableOverride;
10629 }
10630 if (namespacesCache !== createDebug.namespaces) {
10631 namespacesCache = createDebug.namespaces;
10632 enabledCache = createDebug.enabled(namespace);
10633 }
10634
10635 return enabledCache;
10636 },
10637 set: v => {
10638 enableOverride = v;
10639 }
10640 });
10641
10642 // Env-specific initialization logic for debug instances
10643 if (typeof createDebug.init === 'function') {
10644 createDebug.init(debug);
10645 }
10646
10647 return debug;
10648 }
10649
10650 function extend(namespace, delimiter) {
10651 const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
10652 newDebug.log = this.log;
10653 return newDebug;
10654 }
10655
10656 /**
10657 * Enables a debug mode by namespaces. This can include modes
10658 * separated by a colon and wildcards.
10659 *
10660 * @param {String} namespaces
10661 * @api public
10662 */
10663 function enable(namespaces) {
10664 createDebug.save(namespaces);
10665 createDebug.namespaces = namespaces;
10666
10667 createDebug.names = [];
10668 createDebug.skips = [];
10669
10670 let i;
10671 const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
10672 const len = split.length;
10673
10674 for (i = 0; i < len; i++) {
10675 if (!split[i]) {
10676 // ignore empty strings
10677 continue;
10678 }
10679
10680 namespaces = split[i].replace(/\*/g, '.*?');
10681
10682 if (namespaces[0] === '-') {
10683 createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));
10684 } else {
10685 createDebug.names.push(new RegExp('^' + namespaces + '$'));
10686 }
10687 }
10688 }
10689
10690 /**
10691 * Disable debug output.
10692 *
10693 * @return {String} namespaces
10694 * @api public
10695 */
10696 function disable() {
10697 const namespaces = [
10698 ...createDebug.names.map(toNamespace),
10699 ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
10700 ].join(',');
10701 createDebug.enable('');
10702 return namespaces;
10703 }
10704
10705 /**
10706 * Returns true if the given mode name is enabled, false otherwise.
10707 *
10708 * @param {String} name
10709 * @return {Boolean}
10710 * @api public
10711 */
10712 function enabled(name) {
10713 if (name[name.length - 1] === '*') {
10714 return true;
10715 }
10716
10717 let i;
10718 let len;
10719
10720 for (i = 0, len = createDebug.skips.length; i < len; i++) {
10721 if (createDebug.skips[i].test(name)) {
10722 return false;
10723 }
10724 }
10725
10726 for (i = 0, len = createDebug.names.length; i < len; i++) {
10727 if (createDebug.names[i].test(name)) {
10728 return true;
10729 }
10730 }
10731
10732 return false;
10733 }
10734
10735 /**
10736 * Convert regexp to namespace
10737 *
10738 * @param {RegExp} regxep
10739 * @return {String} namespace
10740 * @api private
10741 */
10742 function toNamespace(regexp) {
10743 return regexp.toString()
10744 .substring(2, regexp.toString().length - 2)
10745 .replace(/\.\*\?$/, '*');
10746 }
10747
10748 /**
10749 * Coerce `val`.
10750 *
10751 * @param {Mixed} val
10752 * @return {Mixed}
10753 * @api private
10754 */
10755 function coerce(val) {
10756 if (val instanceof Error) {
10757 return val.stack || val.message;
10758 }
10759 return val;
10760 }
10761
10762 /**
10763 * XXX DO NOT USE. This is a temporary stub function.
10764 * XXX It WILL be removed in the next major release.
10765 */
10766 function destroy() {
10767 console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
10768 }
10769
10770 createDebug.enable(createDebug.load());
10771
10772 return createDebug;
10773 }
10774
10775 module.exports = setup;
10776
10777
10778 /***/ }),
10779
10780 /***/ "../node_modules/extend/index.js":
10781 /*!***************************************!*\
10782 !*** ../node_modules/extend/index.js ***!
10783 \***************************************/
10784 /***/ ((module) => {
10785
10786 "use strict";
10787
10788
10789 var hasOwn = Object.prototype.hasOwnProperty;
10790 var toStr = Object.prototype.toString;
10791 var defineProperty = Object.defineProperty;
10792 var gOPD = Object.getOwnPropertyDescriptor;
10793
10794 var isArray = function isArray(arr) {
10795 if (typeof Array.isArray === 'function') {
10796 return Array.isArray(arr);
10797 }
10798
10799 return toStr.call(arr) === '[object Array]';
10800 };
10801
10802 var isPlainObject = function isPlainObject(obj) {
10803 if (!obj || toStr.call(obj) !== '[object Object]') {
10804 return false;
10805 }
10806
10807 var hasOwnConstructor = hasOwn.call(obj, 'constructor');
10808 var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
10809 // Not own constructor property must be Object
10810 if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
10811 return false;
10812 }
10813
10814 // Own properties are enumerated firstly, so to speed up,
10815 // if last one is own, then all properties are own.
10816 var key;
10817 for (key in obj) { /**/ }
10818
10819 return typeof key === 'undefined' || hasOwn.call(obj, key);
10820 };
10821
10822 // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
10823 var setProperty = function setProperty(target, options) {
10824 if (defineProperty && options.name === '__proto__') {
10825 defineProperty(target, options.name, {
10826 enumerable: true,
10827 configurable: true,
10828 value: options.newValue,
10829 writable: true
10830 });
10831 } else {
10832 target[options.name] = options.newValue;
10833 }
10834 };
10835
10836 // Return undefined instead of __proto__ if '__proto__' is not an own property
10837 var getProperty = function getProperty(obj, name) {
10838 if (name === '__proto__') {
10839 if (!hasOwn.call(obj, name)) {
10840 return void 0;
10841 } else if (gOPD) {
10842 // In early versions of node, obj['__proto__'] is buggy when obj has
10843 // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
10844 return gOPD(obj, name).value;
10845 }
10846 }
10847
10848 return obj[name];
10849 };
10850
10851 module.exports = function extend() {
10852 var options, name, src, copy, copyIsArray, clone;
10853 var target = arguments[0];
10854 var i = 1;
10855 var length = arguments.length;
10856 var deep = false;
10857
10858 // Handle a deep copy situation
10859 if (typeof target === 'boolean') {
10860 deep = target;
10861 target = arguments[1] || {};
10862 // skip the boolean and the target
10863 i = 2;
10864 }
10865 if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
10866 target = {};
10867 }
10868
10869 for (; i < length; ++i) {
10870 options = arguments[i];
10871 // Only deal with non-null/undefined values
10872 if (options != null) {
10873 // Extend the base object
10874 for (name in options) {
10875 src = getProperty(target, name);
10876 copy = getProperty(options, name);
10877
10878 // Prevent never-ending loop
10879 if (target !== copy) {
10880 // Recurse if we're merging plain objects or arrays
10881 if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
10882 if (copyIsArray) {
10883 copyIsArray = false;
10884 clone = src && isArray(src) ? src : [];
10885 } else {
10886 clone = src && isPlainObject(src) ? src : {};
10887 }
10888
10889 // Never move original objects, clone them
10890 setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
10891
10892 // Don't bring in undefined values
10893 } else if (typeof copy !== 'undefined') {
10894 setProperty(target, { name: name, newValue: copy });
10895 }
10896 }
10897 }
10898 }
10899 }
10900
10901 // Return the modified object
10902 return target;
10903 };
10904
10905
10906 /***/ }),
10907
10908 /***/ "../node_modules/inline-style-parser/index.js":
10909 /*!****************************************************!*\
10910 !*** ../node_modules/inline-style-parser/index.js ***!
10911 \****************************************************/
10912 /***/ ((module) => {
10913
10914 // http://www.w3.org/TR/CSS21/grammar.html
10915 // https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
10916 var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
10917
10918 var NEWLINE_REGEX = /\n/g;
10919 var WHITESPACE_REGEX = /^\s*/;
10920
10921 // declaration
10922 var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
10923 var COLON_REGEX = /^:\s*/;
10924 var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/;
10925 var SEMICOLON_REGEX = /^[;\s]*/;
10926
10927 // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
10928 var TRIM_REGEX = /^\s+|\s+$/g;
10929
10930 // strings
10931 var NEWLINE = '\n';
10932 var FORWARD_SLASH = '/';
10933 var ASTERISK = '*';
10934 var EMPTY_STRING = '';
10935
10936 // types
10937 var TYPE_COMMENT = 'comment';
10938 var TYPE_DECLARATION = 'declaration';
10939
10940 /**
10941 * @param {String} style
10942 * @param {Object} [options]
10943 * @return {Object[]}
10944 * @throws {TypeError}
10945 * @throws {Error}
10946 */
10947 module.exports = function(style, options) {
10948 if (typeof style !== 'string') {
10949 throw new TypeError('First argument must be a string');
10950 }
10951
10952 if (!style) return [];
10953
10954 options = options || {};
10955
10956 /**
10957 * Positional.
10958 */
10959 var lineno = 1;
10960 var column = 1;
10961
10962 /**
10963 * Update lineno and column based on `str`.
10964 *
10965 * @param {String} str
10966 */
10967 function updatePosition(str) {
10968 var lines = str.match(NEWLINE_REGEX);
10969 if (lines) lineno += lines.length;
10970 var i = str.lastIndexOf(NEWLINE);
10971 column = ~i ? str.length - i : column + str.length;
10972 }
10973
10974 /**
10975 * Mark position and patch `node.position`.
10976 *
10977 * @return {Function}
10978 */
10979 function position() {
10980 var start = { line: lineno, column: column };
10981 return function(node) {
10982 node.position = new Position(start);
10983 whitespace();
10984 return node;
10985 };
10986 }
10987
10988 /**
10989 * Store position information for a node.
10990 *
10991 * @constructor
10992 * @property {Object} start
10993 * @property {Object} end
10994 * @property {undefined|String} source
10995 */
10996 function Position(start) {
10997 this.start = start;
10998 this.end = { line: lineno, column: column };
10999 this.source = options.source;
11000 }
11001
11002 /**
11003 * Non-enumerable source string.
11004 */
11005 Position.prototype.content = style;
11006
11007 var errorsList = [];
11008
11009 /**
11010 * Error `msg`.
11011 *
11012 * @param {String} msg
11013 * @throws {Error}
11014 */
11015 function error(msg) {
11016 var err = new Error(
11017 options.source + ':' + lineno + ':' + column + ': ' + msg
11018 );
11019 err.reason = msg;
11020 err.filename = options.source;
11021 err.line = lineno;
11022 err.column = column;
11023 err.source = style;
11024
11025 if (options.silent) {
11026 errorsList.push(err);
11027 } else {
11028 throw err;
11029 }
11030 }
11031
11032 /**
11033 * Match `re` and return captures.
11034 *
11035 * @param {RegExp} re
11036 * @return {undefined|Array}
11037 */
11038 function match(re) {
11039 var m = re.exec(style);
11040 if (!m) return;
11041 var str = m[0];
11042 updatePosition(str);
11043 style = style.slice(str.length);
11044 return m;
11045 }
11046
11047 /**
11048 * Parse whitespace.
11049 */
11050 function whitespace() {
11051 match(WHITESPACE_REGEX);
11052 }
11053
11054 /**
11055 * Parse comments.
11056 *
11057 * @param {Object[]} [rules]
11058 * @return {Object[]}
11059 */
11060 function comments(rules) {
11061 var c;
11062 rules = rules || [];
11063 while ((c = comment())) {
11064 if (c !== false) {
11065 rules.push(c);
11066 }
11067 }
11068 return rules;
11069 }
11070
11071 /**
11072 * Parse comment.
11073 *
11074 * @return {Object}
11075 * @throws {Error}
11076 */
11077 function comment() {
11078 var pos = position();
11079 if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;
11080
11081 var i = 2;
11082 while (
11083 EMPTY_STRING != style.charAt(i) &&
11084 (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))
11085 ) {
11086 ++i;
11087 }
11088 i += 2;
11089
11090 if (EMPTY_STRING === style.charAt(i - 1)) {
11091 return error('End of comment missing');
11092 }
11093
11094 var str = style.slice(2, i - 2);
11095 column += 2;
11096 updatePosition(str);
11097 style = style.slice(i);
11098 column += 2;
11099
11100 return pos({
11101 type: TYPE_COMMENT,
11102 comment: str
11103 });
11104 }
11105
11106 /**
11107 * Parse declaration.
11108 *
11109 * @return {Object}
11110 * @throws {Error}
11111 */
11112 function declaration() {
11113 var pos = position();
11114
11115 // prop
11116 var prop = match(PROPERTY_REGEX);
11117 if (!prop) return;
11118 comment();
11119
11120 // :
11121 if (!match(COLON_REGEX)) return error("property missing ':'");
11122
11123 // val
11124 var val = match(VALUE_REGEX);
11125
11126 var ret = pos({
11127 type: TYPE_DECLARATION,
11128 property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),
11129 value: val
11130 ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))
11131 : EMPTY_STRING
11132 });
11133
11134 // ;
11135 match(SEMICOLON_REGEX);
11136
11137 return ret;
11138 }
11139
11140 /**
11141 * Parse declarations.
11142 *
11143 * @return {Object[]}
11144 */
11145 function declarations() {
11146 var decls = [];
11147
11148 comments(decls);
11149
11150 // declarations
11151 var decl;
11152 while ((decl = declaration())) {
11153 if (decl !== false) {
11154 decls.push(decl);
11155 comments(decls);
11156 }
11157 }
11158
11159 return decls;
11160 }
11161
11162 whitespace();
11163 return declarations();
11164 };
11165
11166 /**
11167 * Trim `str`.
11168 *
11169 * @param {String} str
11170 * @return {String}
11171 */
11172 function trim(str) {
11173 return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
11174 }
11175
11176
11177 /***/ }),
11178
11179 /***/ "../node_modules/is-buffer/index.js":
11180 /*!******************************************!*\
11181 !*** ../node_modules/is-buffer/index.js ***!
11182 \******************************************/
11183 /***/ ((module) => {
11184
11185 /*!
11186 * Determine if an object is a Buffer
11187 *
11188 * @author Feross Aboukhadijeh <https://feross.org>
11189 * @license MIT
11190 */
11191
11192 module.exports = function isBuffer (obj) {
11193 return obj != null && obj.constructor != null &&
11194 typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
11195 }
11196
11197
11198 /***/ }),
11199
11200 /***/ "../node_modules/ms/index.js":
11201 /*!***********************************!*\
11202 !*** ../node_modules/ms/index.js ***!
11203 \***********************************/
11204 /***/ ((module) => {
11205
11206 /**
11207 * Helpers.
11208 */
11209
11210 var s = 1000;
11211 var m = s * 60;
11212 var h = m * 60;
11213 var d = h * 24;
11214 var w = d * 7;
11215 var y = d * 365.25;
11216
11217 /**
11218 * Parse or format the given `val`.
11219 *
11220 * Options:
11221 *
11222 * - `long` verbose formatting [false]
11223 *
11224 * @param {String|Number} val
11225 * @param {Object} [options]
11226 * @throws {Error} throw an error if val is not a non-empty string or a number
11227 * @return {String|Number}
11228 * @api public
11229 */
11230
11231 module.exports = function(val, options) {
11232 options = options || {};
11233 var type = typeof val;
11234 if (type === 'string' && val.length > 0) {
11235 return parse(val);
11236 } else if (type === 'number' && isFinite(val)) {
11237 return options.long ? fmtLong(val) : fmtShort(val);
11238 }
11239 throw new Error(
11240 'val is not a non-empty string or a valid number. val=' +
11241 JSON.stringify(val)
11242 );
11243 };
11244
11245 /**
11246 * Parse the given `str` and return milliseconds.
11247 *
11248 * @param {String} str
11249 * @return {Number}
11250 * @api private
11251 */
11252
11253 function parse(str) {
11254 str = String(str);
11255 if (str.length > 100) {
11256 return;
11257 }
11258 var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
11259 str
11260 );
11261 if (!match) {
11262 return;
11263 }
11264 var n = parseFloat(match[1]);
11265 var type = (match[2] || 'ms').toLowerCase();
11266 switch (type) {
11267 case 'years':
11268 case 'year':
11269 case 'yrs':
11270 case 'yr':
11271 case 'y':
11272 return n * y;
11273 case 'weeks':
11274 case 'week':
11275 case 'w':
11276 return n * w;
11277 case 'days':
11278 case 'day':
11279 case 'd':
11280 return n * d;
11281 case 'hours':
11282 case 'hour':
11283 case 'hrs':
11284 case 'hr':
11285 case 'h':
11286 return n * h;
11287 case 'minutes':
11288 case 'minute':
11289 case 'mins':
11290 case 'min':
11291 case 'm':
11292 return n * m;
11293 case 'seconds':
11294 case 'second':
11295 case 'secs':
11296 case 'sec':
11297 case 's':
11298 return n * s;
11299 case 'milliseconds':
11300 case 'millisecond':
11301 case 'msecs':
11302 case 'msec':
11303 case 'ms':
11304 return n;
11305 default:
11306 return undefined;
11307 }
11308 }
11309
11310 /**
11311 * Short format for `ms`.
11312 *
11313 * @param {Number} ms
11314 * @return {String}
11315 * @api private
11316 */
11317
11318 function fmtShort(ms) {
11319 var msAbs = Math.abs(ms);
11320 if (msAbs >= d) {
11321 return Math.round(ms / d) + 'd';
11322 }
11323 if (msAbs >= h) {
11324 return Math.round(ms / h) + 'h';
11325 }
11326 if (msAbs >= m) {
11327 return Math.round(ms / m) + 'm';
11328 }
11329 if (msAbs >= s) {
11330 return Math.round(ms / s) + 's';
11331 }
11332 return ms + 'ms';
11333 }
11334
11335 /**
11336 * Long format for `ms`.
11337 *
11338 * @param {Number} ms
11339 * @return {String}
11340 * @api private
11341 */
11342
11343 function fmtLong(ms) {
11344 var msAbs = Math.abs(ms);
11345 if (msAbs >= d) {
11346 return plural(ms, msAbs, d, 'day');
11347 }
11348 if (msAbs >= h) {
11349 return plural(ms, msAbs, h, 'hour');
11350 }
11351 if (msAbs >= m) {
11352 return plural(ms, msAbs, m, 'minute');
11353 }
11354 if (msAbs >= s) {
11355 return plural(ms, msAbs, s, 'second');
11356 }
11357 return ms + ' ms';
11358 }
11359
11360 /**
11361 * Pluralization helper.
11362 */
11363
11364 function plural(ms, msAbs, n, name) {
11365 var isPlural = msAbs >= n * 1.5;
11366 return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
11367 }
11368
11369
11370 /***/ }),
11371
11372 /***/ "../node_modules/object-assign/index.js":
11373 /*!**********************************************!*\
11374 !*** ../node_modules/object-assign/index.js ***!
11375 \**********************************************/
11376 /***/ ((module) => {
11377
11378 "use strict";
11379 /*
11380 object-assign
11381 (c) Sindre Sorhus
11382 @license MIT
11383 */
11384
11385
11386 /* eslint-disable no-unused-vars */
11387 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
11388 var hasOwnProperty = Object.prototype.hasOwnProperty;
11389 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
11390
11391 function toObject(val) {
11392 if (val === null || val === undefined) {
11393 throw new TypeError('Object.assign cannot be called with null or undefined');
11394 }
11395
11396 return Object(val);
11397 }
11398
11399 function shouldUseNative() {
11400 try {
11401 if (!Object.assign) {
11402 return false;
11403 }
11404
11405 // Detect buggy property enumeration order in older V8 versions.
11406
11407 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
11408 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
11409 test1[5] = 'de';
11410 if (Object.getOwnPropertyNames(test1)[0] === '5') {
11411 return false;
11412 }
11413
11414 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11415 var test2 = {};
11416 for (var i = 0; i < 10; i++) {
11417 test2['_' + String.fromCharCode(i)] = i;
11418 }
11419 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
11420 return test2[n];
11421 });
11422 if (order2.join('') !== '0123456789') {
11423 return false;
11424 }
11425
11426 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11427 var test3 = {};
11428 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
11429 test3[letter] = letter;
11430 });
11431 if (Object.keys(Object.assign({}, test3)).join('') !==
11432 'abcdefghijklmnopqrst') {
11433 return false;
11434 }
11435
11436 return true;
11437 } catch (err) {
11438 // We don't expect any of the above to throw, but better to be safe.
11439 return false;
11440 }
11441 }
11442
11443 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
11444 var from;
11445 var to = toObject(target);
11446 var symbols;
11447
11448 for (var s = 1; s < arguments.length; s++) {
11449 from = Object(arguments[s]);
11450
11451 for (var key in from) {
11452 if (hasOwnProperty.call(from, key)) {
11453 to[key] = from[key];
11454 }
11455 }
11456
11457 if (getOwnPropertySymbols) {
11458 symbols = getOwnPropertySymbols(from);
11459 for (var i = 0; i < symbols.length; i++) {
11460 if (propIsEnumerable.call(from, symbols[i])) {
11461 to[symbols[i]] = from[symbols[i]];
11462 }
11463 }
11464 }
11465 }
11466
11467 return to;
11468 };
11469
11470
11471 /***/ }),
11472
11473 /***/ "../node_modules/prop-types/checkPropTypes.js":
11474 /*!****************************************************!*\
11475 !*** ../node_modules/prop-types/checkPropTypes.js ***!
11476 \****************************************************/
11477 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11478
11479 "use strict";
11480 /**
11481 * Copyright (c) 2013-present, Facebook, Inc.
11482 *
11483 * This source code is licensed under the MIT license found in the
11484 * LICENSE file in the root directory of this source tree.
11485 */
11486
11487
11488
11489 var printWarning = function() {};
11490
11491 if (true) {
11492 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
11493 var loggedTypeFailures = {};
11494 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
11495
11496 printWarning = function(text) {
11497 var message = 'Warning: ' + text;
11498 if (typeof console !== 'undefined') {
11499 console.error(message);
11500 }
11501 try {
11502 // --- Welcome to debugging React ---
11503 // This error was thrown as a convenience so that you can use this stack
11504 // to find the callsite that caused this warning to fire.
11505 throw new Error(message);
11506 } catch (x) { /**/ }
11507 };
11508 }
11509
11510 /**
11511 * Assert that the values match with the type specs.
11512 * Error messages are memorized and will only be shown once.
11513 *
11514 * @param {object} typeSpecs Map of name to a ReactPropType
11515 * @param {object} values Runtime values that need to be type-checked
11516 * @param {string} location e.g. "prop", "context", "child context"
11517 * @param {string} componentName Name of the component for error messages.
11518 * @param {?Function} getStack Returns the component stack.
11519 * @private
11520 */
11521 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
11522 if (true) {
11523 for (var typeSpecName in typeSpecs) {
11524 if (has(typeSpecs, typeSpecName)) {
11525 var error;
11526 // Prop type validation may throw. In case they do, we don't want to
11527 // fail the render phase where it didn't fail before. So we log it.
11528 // After these have been cleaned up, we'll let them throw.
11529 try {
11530 // This is intentionally an invariant that gets caught. It's the same
11531 // behavior as without this statement except with a better message.
11532 if (typeof typeSpecs[typeSpecName] !== 'function') {
11533 var err = Error(
11534 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
11535 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
11536 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
11537 );
11538 err.name = 'Invariant Violation';
11539 throw err;
11540 }
11541 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
11542 } catch (ex) {
11543 error = ex;
11544 }
11545 if (error && !(error instanceof Error)) {
11546 printWarning(
11547 (componentName || 'React class') + ': type specification of ' +
11548 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
11549 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
11550 'You may have forgotten to pass an argument to the type checker ' +
11551 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
11552 'shape all require an argument).'
11553 );
11554 }
11555 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
11556 // Only monitor this failure once because there tends to be a lot of the
11557 // same error.
11558 loggedTypeFailures[error.message] = true;
11559
11560 var stack = getStack ? getStack() : '';
11561
11562 printWarning(
11563 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
11564 );
11565 }
11566 }
11567 }
11568 }
11569 }
11570
11571 /**
11572 * Resets warning cache when testing.
11573 *
11574 * @private
11575 */
11576 checkPropTypes.resetWarningCache = function() {
11577 if (true) {
11578 loggedTypeFailures = {};
11579 }
11580 }
11581
11582 module.exports = checkPropTypes;
11583
11584
11585 /***/ }),
11586
11587 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
11588 /*!*************************************************************!*\
11589 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
11590 \*************************************************************/
11591 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11592
11593 "use strict";
11594 /**
11595 * Copyright (c) 2013-present, Facebook, Inc.
11596 *
11597 * This source code is licensed under the MIT license found in the
11598 * LICENSE file in the root directory of this source tree.
11599 */
11600
11601
11602
11603 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
11604 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
11605
11606 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
11607 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
11608 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
11609
11610 var printWarning = function() {};
11611
11612 if (true) {
11613 printWarning = function(text) {
11614 var message = 'Warning: ' + text;
11615 if (typeof console !== 'undefined') {
11616 console.error(message);
11617 }
11618 try {
11619 // --- Welcome to debugging React ---
11620 // This error was thrown as a convenience so that you can use this stack
11621 // to find the callsite that caused this warning to fire.
11622 throw new Error(message);
11623 } catch (x) {}
11624 };
11625 }
11626
11627 function emptyFunctionThatReturnsNull() {
11628 return null;
11629 }
11630
11631 module.exports = function(isValidElement, throwOnDirectAccess) {
11632 /* global Symbol */
11633 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
11634 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
11635
11636 /**
11637 * Returns the iterator method function contained on the iterable object.
11638 *
11639 * Be sure to invoke the function with the iterable as context:
11640 *
11641 * var iteratorFn = getIteratorFn(myIterable);
11642 * if (iteratorFn) {
11643 * var iterator = iteratorFn.call(myIterable);
11644 * ...
11645 * }
11646 *
11647 * @param {?object} maybeIterable
11648 * @return {?function}
11649 */
11650 function getIteratorFn(maybeIterable) {
11651 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
11652 if (typeof iteratorFn === 'function') {
11653 return iteratorFn;
11654 }
11655 }
11656
11657 /**
11658 * Collection of methods that allow declaration and validation of props that are
11659 * supplied to React components. Example usage:
11660 *
11661 * var Props = require('ReactPropTypes');
11662 * var MyArticle = React.createClass({
11663 * propTypes: {
11664 * // An optional string prop named "description".
11665 * description: Props.string,
11666 *
11667 * // A required enum prop named "category".
11668 * category: Props.oneOf(['News','Photos']).isRequired,
11669 *
11670 * // A prop named "dialog" that requires an instance of Dialog.
11671 * dialog: Props.instanceOf(Dialog).isRequired
11672 * },
11673 * render: function() { ... }
11674 * });
11675 *
11676 * A more formal specification of how these methods are used:
11677 *
11678 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
11679 * decl := ReactPropTypes.{type}(.isRequired)?
11680 *
11681 * Each and every declaration produces a function with the same signature. This
11682 * allows the creation of custom validation functions. For example:
11683 *
11684 * var MyLink = React.createClass({
11685 * propTypes: {
11686 * // An optional string or URI prop named "href".
11687 * href: function(props, propName, componentName) {
11688 * var propValue = props[propName];
11689 * if (propValue != null && typeof propValue !== 'string' &&
11690 * !(propValue instanceof URI)) {
11691 * return new Error(
11692 * 'Expected a string or an URI for ' + propName + ' in ' +
11693 * componentName
11694 * );
11695 * }
11696 * }
11697 * },
11698 * render: function() {...}
11699 * });
11700 *
11701 * @internal
11702 */
11703
11704 var ANONYMOUS = '<<anonymous>>';
11705
11706 // Important!
11707 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
11708 var ReactPropTypes = {
11709 array: createPrimitiveTypeChecker('array'),
11710 bigint: createPrimitiveTypeChecker('bigint'),
11711 bool: createPrimitiveTypeChecker('boolean'),
11712 func: createPrimitiveTypeChecker('function'),
11713 number: createPrimitiveTypeChecker('number'),
11714 object: createPrimitiveTypeChecker('object'),
11715 string: createPrimitiveTypeChecker('string'),
11716 symbol: createPrimitiveTypeChecker('symbol'),
11717
11718 any: createAnyTypeChecker(),
11719 arrayOf: createArrayOfTypeChecker,
11720 element: createElementTypeChecker(),
11721 elementType: createElementTypeTypeChecker(),
11722 instanceOf: createInstanceTypeChecker,
11723 node: createNodeChecker(),
11724 objectOf: createObjectOfTypeChecker,
11725 oneOf: createEnumTypeChecker,
11726 oneOfType: createUnionTypeChecker,
11727 shape: createShapeTypeChecker,
11728 exact: createStrictShapeTypeChecker,
11729 };
11730
11731 /**
11732 * inlined Object.is polyfill to avoid requiring consumers ship their own
11733 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
11734 */
11735 /*eslint-disable no-self-compare*/
11736 function is(x, y) {
11737 // SameValue algorithm
11738 if (x === y) {
11739 // Steps 1-5, 7-10
11740 // Steps 6.b-6.e: +0 != -0
11741 return x !== 0 || 1 / x === 1 / y;
11742 } else {
11743 // Step 6.a: NaN == NaN
11744 return x !== x && y !== y;
11745 }
11746 }
11747 /*eslint-enable no-self-compare*/
11748
11749 /**
11750 * We use an Error-like object for backward compatibility as people may call
11751 * PropTypes directly and inspect their output. However, we don't use real
11752 * Errors anymore. We don't inspect their stack anyway, and creating them
11753 * is prohibitively expensive if they are created too often, such as what
11754 * happens in oneOfType() for any type before the one that matched.
11755 */
11756 function PropTypeError(message, data) {
11757 this.message = message;
11758 this.data = data && typeof data === 'object' ? data: {};
11759 this.stack = '';
11760 }
11761 // Make `instanceof Error` still work for returned errors.
11762 PropTypeError.prototype = Error.prototype;
11763
11764 function createChainableTypeChecker(validate) {
11765 if (true) {
11766 var manualPropTypeCallCache = {};
11767 var manualPropTypeWarningCount = 0;
11768 }
11769 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
11770 componentName = componentName || ANONYMOUS;
11771 propFullName = propFullName || propName;
11772
11773 if (secret !== ReactPropTypesSecret) {
11774 if (throwOnDirectAccess) {
11775 // New behavior only for users of `prop-types` package
11776 var err = new Error(
11777 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
11778 'Use `PropTypes.checkPropTypes()` to call them. ' +
11779 'Read more at http://fb.me/use-check-prop-types'
11780 );
11781 err.name = 'Invariant Violation';
11782 throw err;
11783 } else if ( true && typeof console !== 'undefined') {
11784 // Old behavior for people using React.PropTypes
11785 var cacheKey = componentName + ':' + propName;
11786 if (
11787 !manualPropTypeCallCache[cacheKey] &&
11788 // Avoid spamming the console because they are often not actionable except for lib authors
11789 manualPropTypeWarningCount < 3
11790 ) {
11791 printWarning(
11792 'You are manually calling a React.PropTypes validation ' +
11793 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
11794 'and will throw in the standalone `prop-types` package. ' +
11795 'You may be seeing this warning due to a third-party PropTypes ' +
11796 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
11797 );
11798 manualPropTypeCallCache[cacheKey] = true;
11799 manualPropTypeWarningCount++;
11800 }
11801 }
11802 }
11803 if (props[propName] == null) {
11804 if (isRequired) {
11805 if (props[propName] === null) {
11806 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
11807 }
11808 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
11809 }
11810 return null;
11811 } else {
11812 return validate(props, propName, componentName, location, propFullName);
11813 }
11814 }
11815
11816 var chainedCheckType = checkType.bind(null, false);
11817 chainedCheckType.isRequired = checkType.bind(null, true);
11818
11819 return chainedCheckType;
11820 }
11821
11822 function createPrimitiveTypeChecker(expectedType) {
11823 function validate(props, propName, componentName, location, propFullName, secret) {
11824 var propValue = props[propName];
11825 var propType = getPropType(propValue);
11826 if (propType !== expectedType) {
11827 // `propValue` being instance of, say, date/regexp, pass the 'object'
11828 // check, but we can offer a more precise error message here rather than
11829 // 'of type `object`'.
11830 var preciseType = getPreciseType(propValue);
11831
11832 return new PropTypeError(
11833 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
11834 {expectedType: expectedType}
11835 );
11836 }
11837 return null;
11838 }
11839 return createChainableTypeChecker(validate);
11840 }
11841
11842 function createAnyTypeChecker() {
11843 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
11844 }
11845
11846 function createArrayOfTypeChecker(typeChecker) {
11847 function validate(props, propName, componentName, location, propFullName) {
11848 if (typeof typeChecker !== 'function') {
11849 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
11850 }
11851 var propValue = props[propName];
11852 if (!Array.isArray(propValue)) {
11853 var propType = getPropType(propValue);
11854 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
11855 }
11856 for (var i = 0; i < propValue.length; i++) {
11857 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
11858 if (error instanceof Error) {
11859 return error;
11860 }
11861 }
11862 return null;
11863 }
11864 return createChainableTypeChecker(validate);
11865 }
11866
11867 function createElementTypeChecker() {
11868 function validate(props, propName, componentName, location, propFullName) {
11869 var propValue = props[propName];
11870 if (!isValidElement(propValue)) {
11871 var propType = getPropType(propValue);
11872 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
11873 }
11874 return null;
11875 }
11876 return createChainableTypeChecker(validate);
11877 }
11878
11879 function createElementTypeTypeChecker() {
11880 function validate(props, propName, componentName, location, propFullName) {
11881 var propValue = props[propName];
11882 if (!ReactIs.isValidElementType(propValue)) {
11883 var propType = getPropType(propValue);
11884 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
11885 }
11886 return null;
11887 }
11888 return createChainableTypeChecker(validate);
11889 }
11890
11891 function createInstanceTypeChecker(expectedClass) {
11892 function validate(props, propName, componentName, location, propFullName) {
11893 if (!(props[propName] instanceof expectedClass)) {
11894 var expectedClassName = expectedClass.name || ANONYMOUS;
11895 var actualClassName = getClassName(props[propName]);
11896 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
11897 }
11898 return null;
11899 }
11900 return createChainableTypeChecker(validate);
11901 }
11902
11903 function createEnumTypeChecker(expectedValues) {
11904 if (!Array.isArray(expectedValues)) {
11905 if (true) {
11906 if (arguments.length > 1) {
11907 printWarning(
11908 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
11909 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
11910 );
11911 } else {
11912 printWarning('Invalid argument supplied to oneOf, expected an array.');
11913 }
11914 }
11915 return emptyFunctionThatReturnsNull;
11916 }
11917
11918 function validate(props, propName, componentName, location, propFullName) {
11919 var propValue = props[propName];
11920 for (var i = 0; i < expectedValues.length; i++) {
11921 if (is(propValue, expectedValues[i])) {
11922 return null;
11923 }
11924 }
11925
11926 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
11927 var type = getPreciseType(value);
11928 if (type === 'symbol') {
11929 return String(value);
11930 }
11931 return value;
11932 });
11933 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
11934 }
11935 return createChainableTypeChecker(validate);
11936 }
11937
11938 function createObjectOfTypeChecker(typeChecker) {
11939 function validate(props, propName, componentName, location, propFullName) {
11940 if (typeof typeChecker !== 'function') {
11941 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
11942 }
11943 var propValue = props[propName];
11944 var propType = getPropType(propValue);
11945 if (propType !== 'object') {
11946 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
11947 }
11948 for (var key in propValue) {
11949 if (has(propValue, key)) {
11950 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
11951 if (error instanceof Error) {
11952 return error;
11953 }
11954 }
11955 }
11956 return null;
11957 }
11958 return createChainableTypeChecker(validate);
11959 }
11960
11961 function createUnionTypeChecker(arrayOfTypeCheckers) {
11962 if (!Array.isArray(arrayOfTypeCheckers)) {
11963 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
11964 return emptyFunctionThatReturnsNull;
11965 }
11966
11967 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
11968 var checker = arrayOfTypeCheckers[i];
11969 if (typeof checker !== 'function') {
11970 printWarning(
11971 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
11972 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
11973 );
11974 return emptyFunctionThatReturnsNull;
11975 }
11976 }
11977
11978 function validate(props, propName, componentName, location, propFullName) {
11979 var expectedTypes = [];
11980 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
11981 var checker = arrayOfTypeCheckers[i];
11982 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
11983 if (checkerResult == null) {
11984 return null;
11985 }
11986 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
11987 expectedTypes.push(checkerResult.data.expectedType);
11988 }
11989 }
11990 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
11991 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
11992 }
11993 return createChainableTypeChecker(validate);
11994 }
11995
11996 function createNodeChecker() {
11997 function validate(props, propName, componentName, location, propFullName) {
11998 if (!isNode(props[propName])) {
11999 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
12000 }
12001 return null;
12002 }
12003 return createChainableTypeChecker(validate);
12004 }
12005
12006 function invalidValidatorError(componentName, location, propFullName, key, type) {
12007 return new PropTypeError(
12008 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
12009 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
12010 );
12011 }
12012
12013 function createShapeTypeChecker(shapeTypes) {
12014 function validate(props, propName, componentName, location, propFullName) {
12015 var propValue = props[propName];
12016 var propType = getPropType(propValue);
12017 if (propType !== 'object') {
12018 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
12019 }
12020 for (var key in shapeTypes) {
12021 var checker = shapeTypes[key];
12022 if (typeof checker !== 'function') {
12023 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
12024 }
12025 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
12026 if (error) {
12027 return error;
12028 }
12029 }
12030 return null;
12031 }
12032 return createChainableTypeChecker(validate);
12033 }
12034
12035 function createStrictShapeTypeChecker(shapeTypes) {
12036 function validate(props, propName, componentName, location, propFullName) {
12037 var propValue = props[propName];
12038 var propType = getPropType(propValue);
12039 if (propType !== 'object') {
12040 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
12041 }
12042 // We need to check all keys in case some are required but missing from props.
12043 var allKeys = assign({}, props[propName], shapeTypes);
12044 for (var key in allKeys) {
12045 var checker = shapeTypes[key];
12046 if (has(shapeTypes, key) && typeof checker !== 'function') {
12047 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
12048 }
12049 if (!checker) {
12050 return new PropTypeError(
12051 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
12052 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
12053 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
12054 );
12055 }
12056 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
12057 if (error) {
12058 return error;
12059 }
12060 }
12061 return null;
12062 }
12063
12064 return createChainableTypeChecker(validate);
12065 }
12066
12067 function isNode(propValue) {
12068 switch (typeof propValue) {
12069 case 'number':
12070 case 'string':
12071 case 'undefined':
12072 return true;
12073 case 'boolean':
12074 return !propValue;
12075 case 'object':
12076 if (Array.isArray(propValue)) {
12077 return propValue.every(isNode);
12078 }
12079 if (propValue === null || isValidElement(propValue)) {
12080 return true;
12081 }
12082
12083 var iteratorFn = getIteratorFn(propValue);
12084 if (iteratorFn) {
12085 var iterator = iteratorFn.call(propValue);
12086 var step;
12087 if (iteratorFn !== propValue.entries) {
12088 while (!(step = iterator.next()).done) {
12089 if (!isNode(step.value)) {
12090 return false;
12091 }
12092 }
12093 } else {
12094 // Iterator will provide entry [k,v] tuples rather than values.
12095 while (!(step = iterator.next()).done) {
12096 var entry = step.value;
12097 if (entry) {
12098 if (!isNode(entry[1])) {
12099 return false;
12100 }
12101 }
12102 }
12103 }
12104 } else {
12105 return false;
12106 }
12107
12108 return true;
12109 default:
12110 return false;
12111 }
12112 }
12113
12114 function isSymbol(propType, propValue) {
12115 // Native Symbol.
12116 if (propType === 'symbol') {
12117 return true;
12118 }
12119
12120 // falsy value can't be a Symbol
12121 if (!propValue) {
12122 return false;
12123 }
12124
12125 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
12126 if (propValue['@@toStringTag'] === 'Symbol') {
12127 return true;
12128 }
12129
12130 // Fallback for non-spec compliant Symbols which are polyfilled.
12131 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
12132 return true;
12133 }
12134
12135 return false;
12136 }
12137
12138 // Equivalent of `typeof` but with special handling for array and regexp.
12139 function getPropType(propValue) {
12140 var propType = typeof propValue;
12141 if (Array.isArray(propValue)) {
12142 return 'array';
12143 }
12144 if (propValue instanceof RegExp) {
12145 // Old webkits (at least until Android 4.0) return 'function' rather than
12146 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
12147 // passes PropTypes.object.
12148 return 'object';
12149 }
12150 if (isSymbol(propType, propValue)) {
12151 return 'symbol';
12152 }
12153 return propType;
12154 }
12155
12156 // This handles more types than `getPropType`. Only used for error messages.
12157 // See `createPrimitiveTypeChecker`.
12158 function getPreciseType(propValue) {
12159 if (typeof propValue === 'undefined' || propValue === null) {
12160 return '' + propValue;
12161 }
12162 var propType = getPropType(propValue);
12163 if (propType === 'object') {
12164 if (propValue instanceof Date) {
12165 return 'date';
12166 } else if (propValue instanceof RegExp) {
12167 return 'regexp';
12168 }
12169 }
12170 return propType;
12171 }
12172
12173 // Returns a string that is postfixed to a warning about an invalid type.
12174 // For example, "undefined" or "of type array"
12175 function getPostfixForTypeWarning(value) {
12176 var type = getPreciseType(value);
12177 switch (type) {
12178 case 'array':
12179 case 'object':
12180 return 'an ' + type;
12181 case 'boolean':
12182 case 'date':
12183 case 'regexp':
12184 return 'a ' + type;
12185 default:
12186 return type;
12187 }
12188 }
12189
12190 // Returns class name of the object, if any.
12191 function getClassName(propValue) {
12192 if (!propValue.constructor || !propValue.constructor.name) {
12193 return ANONYMOUS;
12194 }
12195 return propValue.constructor.name;
12196 }
12197
12198 ReactPropTypes.checkPropTypes = checkPropTypes;
12199 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
12200 ReactPropTypes.PropTypes = ReactPropTypes;
12201
12202 return ReactPropTypes;
12203 };
12204
12205
12206 /***/ }),
12207
12208 /***/ "../node_modules/prop-types/index.js":
12209 /*!*******************************************!*\
12210 !*** ../node_modules/prop-types/index.js ***!
12211 \*******************************************/
12212 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
12213
12214 /**
12215 * Copyright (c) 2013-present, Facebook, Inc.
12216 *
12217 * This source code is licensed under the MIT license found in the
12218 * LICENSE file in the root directory of this source tree.
12219 */
12220
12221 if (true) {
12222 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
12223
12224 // By explicitly using `prop-types` you are opting into new development behavior.
12225 // http://fb.me/prop-types-in-prod
12226 var throwOnDirectAccess = true;
12227 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
12228 } else {}
12229
12230
12231 /***/ }),
12232
12233 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
12234 /*!**************************************************************!*\
12235 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
12236 \**************************************************************/
12237 /***/ ((module) => {
12238
12239 "use strict";
12240 /**
12241 * Copyright (c) 2013-present, Facebook, Inc.
12242 *
12243 * This source code is licensed under the MIT license found in the
12244 * LICENSE file in the root directory of this source tree.
12245 */
12246
12247
12248
12249 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
12250
12251 module.exports = ReactPropTypesSecret;
12252
12253
12254 /***/ }),
12255
12256 /***/ "../node_modules/prop-types/lib/has.js":
12257 /*!*********************************************!*\
12258 !*** ../node_modules/prop-types/lib/has.js ***!
12259 \*********************************************/
12260 /***/ ((module) => {
12261
12262 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
12263
12264
12265 /***/ }),
12266
12267 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
12268 /*!************************************************************************************!*\
12269 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
12270 \************************************************************************************/
12271 /***/ ((__unused_webpack_module, exports) => {
12272
12273 "use strict";
12274 /** @license React v16.13.1
12275 * react-is.development.js
12276 *
12277 * Copyright (c) Facebook, Inc. and its affiliates.
12278 *
12279 * This source code is licensed under the MIT license found in the
12280 * LICENSE file in the root directory of this source tree.
12281 */
12282
12283
12284
12285
12286
12287 if (true) {
12288 (function() {
12289 'use strict';
12290
12291 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
12292 // nor polyfill, then a plain number is used for performance.
12293 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
12294 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
12295 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
12296 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
12297 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
12298 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
12299 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
12300 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
12301 // (unstable) APIs that have been removed. Can we remove the symbols?
12302
12303 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
12304 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
12305 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
12306 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
12307 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
12308 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
12309 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
12310 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
12311 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
12312 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
12313 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
12314
12315 function isValidElementType(type) {
12316 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
12317 type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
12318 }
12319
12320 function typeOf(object) {
12321 if (typeof object === 'object' && object !== null) {
12322 var $$typeof = object.$$typeof;
12323
12324 switch ($$typeof) {
12325 case REACT_ELEMENT_TYPE:
12326 var type = object.type;
12327
12328 switch (type) {
12329 case REACT_ASYNC_MODE_TYPE:
12330 case REACT_CONCURRENT_MODE_TYPE:
12331 case REACT_FRAGMENT_TYPE:
12332 case REACT_PROFILER_TYPE:
12333 case REACT_STRICT_MODE_TYPE:
12334 case REACT_SUSPENSE_TYPE:
12335 return type;
12336
12337 default:
12338 var $$typeofType = type && type.$$typeof;
12339
12340 switch ($$typeofType) {
12341 case REACT_CONTEXT_TYPE:
12342 case REACT_FORWARD_REF_TYPE:
12343 case REACT_LAZY_TYPE:
12344 case REACT_MEMO_TYPE:
12345 case REACT_PROVIDER_TYPE:
12346 return $$typeofType;
12347
12348 default:
12349 return $$typeof;
12350 }
12351
12352 }
12353
12354 case REACT_PORTAL_TYPE:
12355 return $$typeof;
12356 }
12357 }
12358
12359 return undefined;
12360 } // AsyncMode is deprecated along with isAsyncMode
12361
12362 var AsyncMode = REACT_ASYNC_MODE_TYPE;
12363 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
12364 var ContextConsumer = REACT_CONTEXT_TYPE;
12365 var ContextProvider = REACT_PROVIDER_TYPE;
12366 var Element = REACT_ELEMENT_TYPE;
12367 var ForwardRef = REACT_FORWARD_REF_TYPE;
12368 var Fragment = REACT_FRAGMENT_TYPE;
12369 var Lazy = REACT_LAZY_TYPE;
12370 var Memo = REACT_MEMO_TYPE;
12371 var Portal = REACT_PORTAL_TYPE;
12372 var Profiler = REACT_PROFILER_TYPE;
12373 var StrictMode = REACT_STRICT_MODE_TYPE;
12374 var Suspense = REACT_SUSPENSE_TYPE;
12375 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
12376
12377 function isAsyncMode(object) {
12378 {
12379 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
12380 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
12381
12382 console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
12383 }
12384 }
12385
12386 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
12387 }
12388 function isConcurrentMode(object) {
12389 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
12390 }
12391 function isContextConsumer(object) {
12392 return typeOf(object) === REACT_CONTEXT_TYPE;
12393 }
12394 function isContextProvider(object) {
12395 return typeOf(object) === REACT_PROVIDER_TYPE;
12396 }
12397 function isElement(object) {
12398 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
12399 }
12400 function isForwardRef(object) {
12401 return typeOf(object) === REACT_FORWARD_REF_TYPE;
12402 }
12403 function isFragment(object) {
12404 return typeOf(object) === REACT_FRAGMENT_TYPE;
12405 }
12406 function isLazy(object) {
12407 return typeOf(object) === REACT_LAZY_TYPE;
12408 }
12409 function isMemo(object) {
12410 return typeOf(object) === REACT_MEMO_TYPE;
12411 }
12412 function isPortal(object) {
12413 return typeOf(object) === REACT_PORTAL_TYPE;
12414 }
12415 function isProfiler(object) {
12416 return typeOf(object) === REACT_PROFILER_TYPE;
12417 }
12418 function isStrictMode(object) {
12419 return typeOf(object) === REACT_STRICT_MODE_TYPE;
12420 }
12421 function isSuspense(object) {
12422 return typeOf(object) === REACT_SUSPENSE_TYPE;
12423 }
12424
12425 exports.AsyncMode = AsyncMode;
12426 exports.ConcurrentMode = ConcurrentMode;
12427 exports.ContextConsumer = ContextConsumer;
12428 exports.ContextProvider = ContextProvider;
12429 exports.Element = Element;
12430 exports.ForwardRef = ForwardRef;
12431 exports.Fragment = Fragment;
12432 exports.Lazy = Lazy;
12433 exports.Memo = Memo;
12434 exports.Portal = Portal;
12435 exports.Profiler = Profiler;
12436 exports.StrictMode = StrictMode;
12437 exports.Suspense = Suspense;
12438 exports.isAsyncMode = isAsyncMode;
12439 exports.isConcurrentMode = isConcurrentMode;
12440 exports.isContextConsumer = isContextConsumer;
12441 exports.isContextProvider = isContextProvider;
12442 exports.isElement = isElement;
12443 exports.isForwardRef = isForwardRef;
12444 exports.isFragment = isFragment;
12445 exports.isLazy = isLazy;
12446 exports.isMemo = isMemo;
12447 exports.isPortal = isPortal;
12448 exports.isProfiler = isProfiler;
12449 exports.isStrictMode = isStrictMode;
12450 exports.isSuspense = isSuspense;
12451 exports.isValidElementType = isValidElementType;
12452 exports.typeOf = typeOf;
12453 })();
12454 }
12455
12456
12457 /***/ }),
12458
12459 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
12460 /*!*****************************************************************!*\
12461 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
12462 \*****************************************************************/
12463 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
12464
12465 "use strict";
12466
12467
12468 if (false) {} else {
12469 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
12470 }
12471
12472
12473 /***/ }),
12474
12475 /***/ "../node_modules/react-avatar-editor/dist/index.js":
12476 /*!*********************************************************!*\
12477 !*** ../node_modules/react-avatar-editor/dist/index.js ***!
12478 \*********************************************************/
12479 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
12480
12481 !function(e,t){ true?module.exports=t(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"),__webpack_require__(/*! react */ "react")):0}(this,function(e,t){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=o(e),i=o(t);function r(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e}).apply(this,arguments)}function a(t,e){var o,n=Object.keys(t);return Object.getOwnPropertySymbols&&(o=Object.getOwnPropertySymbols(t),e&&(o=o.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,o)),n}function y(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?a(Object(o),!0).forEach(function(e){s(t,e,o[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(e,t){if(null==e)return{};var o,n=function(e,t){if(null==e)return{};for(var o,n={},a=Object.keys(e),r=0;r<a.length;r++)o=a[r],0<=t.indexOf(o)||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols)for(var a=Object.getOwnPropertySymbols(e),r=0;r<a.length;r++)o=a[r],0<=t.indexOf(o)||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o]);return n}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(r){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t,o,n,a=h(r);return t=i?(e=h(this).constructor,Reflect.construct(a,arguments,e)):a.apply(this,arguments),o=this,!(n=t)||"object"!=typeof n&&"function"!=typeof n?d(o):n}}function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var o=[],n=!0,a=!1,r=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(o.push(i.value),!t||o.length!==t);n=!0);}catch(e){a=!0,r=e}finally{try{n||null==s.return||s.return()}finally{if(a)throw r}}return o}(e,t)||g(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){if(e){if("string"==typeof e)return f(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}function v(a,r){return new Promise(function(e,t){var o,n=new Image;n.onload=function(){return e(n)},n.onerror=t,!1==(null!==(o=a)&&!!o.match(/^\s*data:([a-z]+\/[a-z]+(;[a-z-]+=[a-z-]+)?)?(;base64)?,[a-z0-9!$&',()*+;=\-._~:@/?%\s]*\s*$/i))&&r&&(n.crossOrigin=r),n.src=a})}var b,w=!("undefined"==typeof window||"undefined"==typeof navigator||!("ontouchstart"in window||0<navigator.msMaxTouchPoints)),M="undefined"!=typeof File,O={touch:{react:{down:"onTouchStart",mouseDown:"onMouseDown",drag:"onTouchMove",move:"onTouchMove",mouseMove:"onMouseMove",up:"onTouchEnd",mouseUp:"onMouseUp"},native:{down:"touchstart",mouseDown:"mousedown",drag:"touchmove",move:"touchmove",mouseMove:"mousemove",up:"touchend",mouseUp:"mouseup"}},desktop:{react:{down:"onMouseDown",drag:"onDragOver",move:"onMouseMove",up:"onMouseUp"},native:{down:"mousedown",drag:"dragStart",move:"mousemove",up:"mouseup"}}},I=w?O.touch:O.desktop,P="undefined"!=typeof window&&window.devicePixelRatio?window.devicePixelRatio:1,C={x:.5,y:.5},x=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(a,i["default"].Component);var e,t,o,n=p(a);function a(e){var v;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),s(d(v=n.call(this,e)),"state",{drag:!1,my:null,mx:null,image:C}),s(d(v),"handleImageReady",function(e){var t=v.getInitialSize(e.width,e.height);t.resource=e,t.x=.5,t.y=.5,t.backgroundColor=v.props.backgroundColor,v.setState({drag:!1,image:t},v.props.onImageReady),v.props.onLoadSuccess(t)}),s(d(v),"clearImage",function(){v.canvas.getContext("2d").clearRect(0,0,v.canvas.width,v.canvas.height),v.setState({image:C})}),s(d(v),"handleMouseDown",function(e){(e=e||window.event).preventDefault(),v.setState({drag:!0,mx:null,my:null})}),s(d(v),"handleMouseUp",function(){v.state.drag&&(v.setState({drag:!1}),v.props.onMouseUp())}),s(d(v),"handleMouseMove",function(e){var t,o,n,a,r,i,s,u,h,c,l,d,p,g,f,m;e=e||window.event,!1!==v.state.drag&&(e.preventDefault(),n={mx:t=e.targetTouches?e.targetTouches[0].pageX:e.clientX,my:o=e.targetTouches?e.targetTouches[0].pageY:e.clientY},m=v.props.rotate,m=(m%=360)<0?m+360:m,v.state.mx&&v.state.my&&(a=v.state.mx-t,r=v.state.my-o,i=v.state.image.width*v.props.scale,s=v.state.image.height*v.props.scale,h=(u=v.getCroppingRect()).x,c=u.y,h*=i,c*=s,l=function(e){return e*(Math.PI/180)},d=Math.cos(l(m)),g=c+-a*(p=Math.sin(l(m)))+r*d,f={x:(h+a*d+r*p)/i+1/v.props.scale*v.getXScale()/2,y:g/s+1/v.props.scale*v.getYScale()/2},v.props.onPositionChange(f),n.image=y(y({},v.state.image),f)),v.setState(n),v.props.onMouseMove(e))}),s(d(v),"setCanvas",function(e){v.canvas=e}),v.canvas=null,v}return e=a,(t=[{key:"componentDidMount",value:function(){this.props.disableHiDPIScaling&&(P=1);var e,t,o=this.canvas.getContext("2d");this.props.image&&this.loadImage(this.props.image),this.paint(o),document&&(e=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){t=!1}return t}()&&{passive:!1},t=I.native,document.addEventListener(t.move,this.handleMouseMove,e),document.addEventListener(t.up,this.handleMouseUp,e),w&&(document.addEventListener(t.mouseMove,this.handleMouseMove,e),document.addEventListener(t.mouseUp,this.handleMouseUp,e)))}},{key:"componentDidUpdate",value:function(e,t){this.props.image&&this.props.image!==e.image||this.props.width!==e.width||this.props.height!==e.height||this.props.backgroundColor!==e.backgroundColor?this.loadImage(this.props.image):this.props.image||t.image===C||this.clearImage();var o=this.canvas.getContext("2d");o.clearRect(0,0,this.canvas.width,this.canvas.height),this.paint(o),this.paintImage(o,this.state.image,this.props.border),e.image===this.props.image&&e.width===this.props.width&&e.height===this.props.height&&e.position===this.props.position&&e.scale===this.props.scale&&e.rotate===this.props.rotate&&t.my===this.state.my&&t.mx===this.state.mx&&t.image.x===this.state.image.x&&t.image.y===this.state.image.y&&t.backgroundColor===this.state.backgroundColor||this.props.onImageChange()}},{key:"componentWillUnmount",value:function(){var e;document&&(e=I.native,document.removeEventListener(e.move,this.handleMouseMove,!1),document.removeEventListener(e.up,this.handleMouseUp,!1),w&&(document.removeEventListener(e.mouseMove,this.handleMouseMove,!1),document.removeEventListener(e.mouseUp,this.handleMouseUp,!1)))}},{key:"isVertical",value:function(){return!this.props.disableCanvasRotation&&this.props.rotate%180!=0}},{key:"getBorders",value:function(e){var t=0<arguments.length&&void 0!==e?e:this.props.border;return Array.isArray(t)?t:[t,t]}},{key:"getDimensions",value:function(){var e=this.props,t=e.width,o=e.height,n=e.rotate,a=e.border,r={},i=m(this.getBorders(a),2),s=i[0],u=i[1],h=t,c=o;return this.isVertical()?(r.width=c,r.height=h):(r.width=h,r.height=c),r.width+=2*s,r.height+=2*u,{canvas:r,rotate:n,width:t,height:o,border:a}}},{key:"getImage",value:function(){var e=this.getCroppingRect(),t=this.state.image;e.x*=t.resource.width,e.y*=t.resource.height,e.width*=t.resource.width,e.height*=t.resource.height;var o=document.createElement("canvas");this.isVertical()?(o.width=e.height,o.height=e.width):(o.width=e.width,o.height=e.height);var n=o.getContext("2d");return n.translate(o.width/2,o.height/2),n.rotate(this.props.rotate*Math.PI/180),n.translate(-o.width/2,-o.height/2),this.isVertical()&&n.translate((o.width-o.height)/2,(o.height-o.width)/2),t.backgroundColor&&(n.fillStyle=t.backgroundColor,n.fillRect(-e.x,-e.y,t.resource.width,t.resource.height)),n.drawImage(t.resource,-e.x,-e.y),o}},{key:"getImageScaledToCanvas",value:function(){var e=this.getDimensions(),t=e.width,o=e.height,n=document.createElement("canvas");return this.isVertical()?(n.width=o,n.height=t):(n.width=t,n.height=o),this.paintImage(n.getContext("2d"),this.state.image,0,1),n}},{key:"getXScale",value:function(){var e=this.props.width/this.props.height,t=this.state.image.width/this.state.image.height;return Math.min(1,e/t)}},{key:"getYScale",value:function(){var e=this.props.height/this.props.width,t=this.state.image.height/this.state.image.width;return Math.min(1,e/t)}},{key:"getCroppingRect",value:function(){var e=this.props.position||{x:this.state.image.x,y:this.state.image.y},t=1/this.props.scale*this.getXScale(),o=1/this.props.scale*this.getYScale(),n={x:e.x-t/2,y:e.y-o/2,width:t,height:o},a=0,r=1-n.width,i=0,s=1-n.height;return(this.props.disableBoundaryChecks||1<t||1<o)&&(a=-n.width,i=-n.height,s=r=1),y(y({},n),{},{x:Math.max(a,Math.min(n.x,r)),y:Math.max(i,Math.min(n.y,s))})}},{key:"loadImage",value:function(e){var t;M&&e instanceof File?this.loadingImage=(t=e,new Promise(function(o,n){var e=new FileReader;e.onload=function(e){try{var t=v(e.target.result);o(t)}catch(e){n(e)}},e.readAsDataURL(t)}).then(this.handleImageReady).catch(this.props.onLoadFailure)):"string"==typeof e&&(this.loadingImage=v(e,this.props.crossOrigin).then(this.handleImageReady).catch(this.props.onLoadFailure))}},{key:"getInitialSize",value:function(e,t){var o,n,a=this.getDimensions();return t/e<a.height/a.width?n=e*((o=this.getDimensions().height)/t):o=t*((n=this.getDimensions().width)/e),{height:o,width:n}}},{key:"paintImage",value:function(e,t,o,n){var a,r=3<arguments.length&&void 0!==n?n:P;t.resource&&(a=this.calculatePosition(t,o),e.save(),e.translate(e.canvas.width/2,e.canvas.height/2),e.rotate(this.props.rotate*Math.PI/180),e.translate(-e.canvas.width/2,-e.canvas.height/2),this.isVertical()&&e.translate((e.canvas.width-e.canvas.height)/2,(e.canvas.height-e.canvas.width)/2),e.scale(r,r),e.globalCompositeOperation="destination-over",e.drawImage(t.resource,a.x,a.y,a.width,a.height),t.backgroundColor&&(e.fillStyle=t.backgroundColor,e.fillRect(a.x,a.y,a.width,a.height)),e.restore())}},{key:"calculatePosition",value:function(e,t){e=e||this.state.image;var o=m(this.getBorders(t),2),n=o[0],a=o[1],r=this.getCroppingRect(),i=e.width*this.props.scale,s=e.height*this.props.scale,u=-r.x*i,h=-r.y*s;return this.isVertical()?(u+=a,h+=n):(u+=n,h+=a),{x:u,y:h,height:s,width:i}}},{key:"paint",value:function(e){e.save(),e.scale(P,P),e.translate(0,0),e.fillStyle="rgba("+this.props.color.slice(0,4).join(",")+")";var t,o,n,a,r,i,s,u,h=this.props.borderRadius,c=this.getDimensions(),l=m(this.getBorders(c.border),2),d=l[0],p=l[1],g=c.canvas.height,f=c.canvas.width,h=Math.max(h,0);h=Math.min(h,f/2-d,g/2-p),e.beginPath(),t=e,a=f-2*(o=d),r=g-2*(n=p),0===(i=h)?t.rect(o,n,a,r):(s=a-i,u=r-i,t.translate(o,n),t.arc(i,i,i,Math.PI,1.5*Math.PI),t.lineTo(s,0),t.arc(s,i,i,1.5*Math.PI,2*Math.PI),t.lineTo(a,u),t.arc(s,u,i,2*Math.PI,.5*Math.PI),t.lineTo(i,r),t.arc(i,u,i,.5*Math.PI,Math.PI),t.translate(-o,-n)),e.rect(f,0,-f,g),e.fill("evenodd"),e.restore()}},{key:"render",value:function(){var e=this.props,t=(e.scale,e.rotate,e.image,e.border,e.borderRadius,e.width,e.height,e.position,e.color,e.backgroundColor,e.style),o=(e.crossOrigin,e.onLoadFailure,e.onLoadSuccess,e.onImageReady,e.onImageChange,e.onMouseUp,e.onMouseMove,e.onPositionChange,e.disableBoundaryChecks,e.disableHiDPIScaling,e.disableCanvasRotation,l(e,["scale","rotate","image","border","borderRadius","width","height","position","color","backgroundColor","style","crossOrigin","onLoadFailure","onLoadSuccess","onImageReady","onImageChange","onMouseUp","onMouseMove","onPositionChange","disableBoundaryChecks","disableHiDPIScaling","disableCanvasRotation"])),n=this.getDimensions(),a={width:n.canvas.width,height:n.canvas.height,cursor:this.state.drag?"grabbing":"grab",touchAction:"none"},r={width:n.canvas.width*P,height:n.canvas.height*P,style:y(y({},a),t)};return r[I.react.down]=this.handleMouseDown,w&&(r[I.react.mouseDown]=this.handleMouseDown),i.default.createElement("canvas",u({ref:this.setCanvas},r,o))}}])&&r(e.prototype,t),o&&r(e,o),a}();return s(x,"propTypes",{scale:n.default.number,rotate:n.default.number,image:n.default.oneOfType([n.default.string].concat(function(e){if(Array.isArray(e))return f(e)}(b=M?[n.default.instanceOf(File)]:[])||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(b)||g(b)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())),border:n.default.oneOfType([n.default.number,n.default.arrayOf(n.default.number)]),borderRadius:n.default.number,width:n.default.number,height:n.default.number,position:n.default.shape({x:n.default.number,y:n.default.number}),color:n.default.arrayOf(n.default.number),backgroundColor:n.default.string,crossOrigin:n.default.oneOf(["","anonymous","use-credentials"]),onLoadFailure:n.default.func,onLoadSuccess:n.default.func,onImageReady:n.default.func,onImageChange:n.default.func,onMouseUp:n.default.func,onMouseMove:n.default.func,onPositionChange:n.default.func,disableBoundaryChecks:n.default.bool,disableHiDPIScaling:n.default.bool,disableCanvasRotation:n.default.bool}),s(x,"defaultProps",{scale:1,rotate:0,border:25,borderRadius:0,width:200,height:200,color:[0,0,0,.5],onLoadFailure:function(){},onLoadSuccess:function(){},onImageReady:function(){},onImageChange:function(){},onMouseUp:function(){},onMouseMove:function(){},onPositionChange:function(){},disableBoundaryChecks:!1,disableHiDPIScaling:!1,disableCanvasRotation:!0}),x});
12482
12483
12484 /***/ }),
12485
12486 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
12487 /*!**************************************************************!*\
12488 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
12489 \**************************************************************/
12490 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12491
12492 "use strict";
12493
12494
12495 function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
12496
12497 Object.defineProperty(exports, "__esModule", ({
12498 value: true
12499 }));
12500 Object.defineProperty(exports, "DraggableCore", ({
12501 enumerable: true,
12502 get: function get() {
12503 return _DraggableCore.default;
12504 }
12505 }));
12506 exports["default"] = void 0;
12507
12508 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
12509
12510 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
12511
12512 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
12513
12514 var _clsx2 = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/clsx/dist/clsx.m.js"));
12515
12516 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
12517
12518 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
12519
12520 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
12521
12522 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
12523
12524 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
12525
12526 var _excluded = ["axis", "bounds", "children", "defaultPosition", "defaultClassName", "defaultClassNameDragging", "defaultClassNameDragged", "position", "positionOffset", "scale"];
12527
12528 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12529
12530 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12531
12532 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12533
12534 function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
12535
12536 function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
12537
12538 function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12539
12540 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12541
12542 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12543
12544 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12545
12546 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12547
12548 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12549
12550 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12551
12552 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12553
12554 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12555
12556 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12557
12558 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
12559
12560 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
12561
12562 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
12563
12564 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12565
12566 function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12567
12568 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
12569
12570 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12571
12572 function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12573
12574 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12575
12576 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12577
12578 //
12579 // Define <Draggable>
12580 //
12581 var Draggable = /*#__PURE__*/function (_React$Component) {
12582 _inherits(Draggable, _React$Component);
12583
12584 var _super = _createSuper(Draggable);
12585
12586 function Draggable(props
12587 /*: DraggableProps*/
12588 ) {
12589 var _this;
12590
12591 _classCallCheck(this, Draggable);
12592
12593 _this = _super.call(this, props);
12594
12595 _defineProperty(_assertThisInitialized(_this), "onDragStart", function (e, coreData) {
12596 (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.
12597
12598 var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData)); // Kills start event on core as well, so move handlers are never bound.
12599
12600
12601 if (shouldStart === false) return false;
12602
12603 _this.setState({
12604 dragging: true,
12605 dragged: true
12606 });
12607 });
12608
12609 _defineProperty(_assertThisInitialized(_this), "onDrag", function (e, coreData) {
12610 if (!_this.state.dragging) return false;
12611 (0, _log.default)('Draggable: onDrag: %j', coreData);
12612 var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);
12613 var newState
12614 /*: $Shape<DraggableState>*/
12615 = {
12616 x: uiData.x,
12617 y: uiData.y
12618 }; // Keep within bounds.
12619
12620 if (_this.props.bounds) {
12621 // Save original x and y.
12622 var x = newState.x,
12623 y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if
12624 // we start removing slack, the element won't react to it right away until it's been
12625 // completely removed.
12626
12627 newState.x += _this.state.slackX;
12628 newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.
12629
12630 var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),
12631 _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),
12632 newStateX = _getBoundPosition2[0],
12633 newStateY = _getBoundPosition2[1];
12634
12635 newState.x = newStateX;
12636 newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.
12637
12638 newState.slackX = _this.state.slackX + (x - newState.x);
12639 newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.
12640
12641 uiData.x = newState.x;
12642 uiData.y = newState.y;
12643 uiData.deltaX = newState.x - _this.state.x;
12644 uiData.deltaY = newState.y - _this.state.y;
12645 } // Short-circuit if user's callback killed it.
12646
12647
12648 var shouldUpdate = _this.props.onDrag(e, uiData);
12649
12650 if (shouldUpdate === false) return false;
12651
12652 _this.setState(newState);
12653 });
12654
12655 _defineProperty(_assertThisInitialized(_this), "onDragStop", function (e, coreData) {
12656 if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.
12657
12658 var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));
12659
12660 if (shouldContinue === false) return false;
12661 (0, _log.default)('Draggable: onDragStop: %j', coreData);
12662 var newState
12663 /*: $Shape<DraggableState>*/
12664 = {
12665 dragging: false,
12666 slackX: 0,
12667 slackY: 0
12668 }; // If this is a controlled component, the result of this operation will be to
12669 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
12670
12671 var controlled = Boolean(_this.props.position);
12672
12673 if (controlled) {
12674 var _this$props$position = _this.props.position,
12675 x = _this$props$position.x,
12676 y = _this$props$position.y;
12677 newState.x = x;
12678 newState.y = y;
12679 }
12680
12681 _this.setState(newState);
12682 });
12683
12684 _this.state = {
12685 // Whether or not we are currently dragging.
12686 dragging: false,
12687 // Whether or not we have been dragged before.
12688 dragged: false,
12689 // Current transform x and y.
12690 x: props.position ? props.position.x : props.defaultPosition.x,
12691 y: props.position ? props.position.y : props.defaultPosition.y,
12692 prevPropsPosition: _objectSpread({}, props.position),
12693 // Used for compensating for out-of-bounds drags
12694 slackX: 0,
12695 slackY: 0,
12696 // Can only determine if SVG after mounting
12697 isElementSVG: false
12698 };
12699
12700 if (props.position && !(props.onDrag || props.onStop)) {
12701 // eslint-disable-next-line no-console
12702 console.warn('A `position` was applied to this <Draggable>, without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');
12703 }
12704
12705 return _this;
12706 }
12707
12708 _createClass(Draggable, [{
12709 key: "componentDidMount",
12710 value: function componentDidMount() {
12711 // Check to see if the element passed is an instanceof SVGElement
12712 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
12713 this.setState({
12714 isElementSVG: true
12715 });
12716 }
12717 }
12718 }, {
12719 key: "componentWillUnmount",
12720 value: function componentWillUnmount() {
12721 this.setState({
12722 dragging: false
12723 }); // prevents invariant if unmounted while dragging
12724 } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
12725 // the underlying DOM node ourselves. See the README for more information.
12726
12727 }, {
12728 key: "findDOMNode",
12729 value: function findDOMNode()
12730 /*: ?HTMLElement*/
12731 {
12732 var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;
12733
12734 return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);
12735 }
12736 }, {
12737 key: "render",
12738 value: function render()
12739 /*: ReactElement<any>*/
12740 {
12741 var _clsx;
12742
12743 var _this$props2 = this.props,
12744 axis = _this$props2.axis,
12745 bounds = _this$props2.bounds,
12746 children = _this$props2.children,
12747 defaultPosition = _this$props2.defaultPosition,
12748 defaultClassName = _this$props2.defaultClassName,
12749 defaultClassNameDragging = _this$props2.defaultClassNameDragging,
12750 defaultClassNameDragged = _this$props2.defaultClassNameDragged,
12751 position = _this$props2.position,
12752 positionOffset = _this$props2.positionOffset,
12753 scale = _this$props2.scale,
12754 draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);
12755
12756 var style = {};
12757 var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.
12758
12759 var controlled = Boolean(position);
12760 var draggable = !controlled || this.state.dragging;
12761 var validPosition = position || defaultPosition;
12762 var transformOpts = {
12763 // Set left if horizontal drag is enabled
12764 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
12765 // Set top if vertical drag is enabled
12766 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
12767 }; // If this element was SVG, we use the `transform` attribute.
12768
12769 if (this.state.isElementSVG) {
12770 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
12771 } else {
12772 // Add a CSS transform to move the element around. This allows us to move the element around
12773 // without worrying about whether or not it is relatively or absolutely positioned.
12774 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
12775 // has a clean slate.
12776 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
12777 } // Mark with class while dragging
12778
12779
12780 var className = (0, _clsx2.default)(children.props.className || '', defaultClassName, (_clsx = {}, _defineProperty(_clsx, defaultClassNameDragging, this.state.dragging), _defineProperty(_clsx, defaultClassNameDragged, this.state.dragged), _clsx)); // Reuse the child provided
12781 // This makes it flexible to use whatever element is wanted (div, ul, etc)
12782
12783 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
12784 onStart: this.onDragStart,
12785 onDrag: this.onDrag,
12786 onStop: this.onDragStop
12787 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
12788 className: className,
12789 style: _objectSpread(_objectSpread({}, children.props.style), style),
12790 transform: svgTransform
12791 }));
12792 }
12793 }], [{
12794 key: "getDerivedStateFromProps",
12795 value: // React 16.3+
12796 // Arity (props, state)
12797 function getDerivedStateFromProps(_ref, _ref2)
12798 /*: ?$Shape<DraggableState>*/
12799 {
12800 var position = _ref.position;
12801 var prevPropsPosition = _ref2.prevPropsPosition;
12802
12803 // Set x/y if a new position is provided in props that is different than the previous.
12804 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
12805 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
12806 position: position,
12807 prevPropsPosition: prevPropsPosition
12808 });
12809 return {
12810 x: position.x,
12811 y: position.y,
12812 prevPropsPosition: _objectSpread({}, position)
12813 };
12814 }
12815
12816 return null;
12817 }
12818 }]);
12819
12820 return Draggable;
12821 }(React.Component);
12822
12823 exports["default"] = Draggable;
12824
12825 _defineProperty(Draggable, "displayName", 'Draggable');
12826
12827 _defineProperty(Draggable, "propTypes", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {
12828 /**
12829 * `axis` determines which axis the draggable can move.
12830 *
12831 * Note that all callbacks will still return data as normal. This only
12832 * controls flushing to the DOM.
12833 *
12834 * 'both' allows movement horizontally and vertically.
12835 * 'x' limits movement to horizontal axis.
12836 * 'y' limits movement to vertical axis.
12837 * 'none' limits all movement.
12838 *
12839 * Defaults to 'both'.
12840 */
12841 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
12842
12843 /**
12844 * `bounds` determines the range of movement available to the element.
12845 * Available values are:
12846 *
12847 * 'parent' restricts movement within the Draggable's parent node.
12848 *
12849 * Alternatively, pass an object with the following properties, all of which are optional:
12850 *
12851 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
12852 *
12853 * All values are in px.
12854 *
12855 * Example:
12856 *
12857 * ```jsx
12858 * let App = React.createClass({
12859 * render: function () {
12860 * return (
12861 * <Draggable bounds={{right: 300, bottom: 300}}>
12862 * <div>Content</div>
12863 * </Draggable>
12864 * );
12865 * }
12866 * });
12867 * ```
12868 */
12869 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
12870 left: _propTypes.default.number,
12871 right: _propTypes.default.number,
12872 top: _propTypes.default.number,
12873 bottom: _propTypes.default.number
12874 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
12875 defaultClassName: _propTypes.default.string,
12876 defaultClassNameDragging: _propTypes.default.string,
12877 defaultClassNameDragged: _propTypes.default.string,
12878
12879 /**
12880 * `defaultPosition` specifies the x and y that the dragged item should start at
12881 *
12882 * Example:
12883 *
12884 * ```jsx
12885 * let App = React.createClass({
12886 * render: function () {
12887 * return (
12888 * <Draggable defaultPosition={{x: 25, y: 25}}>
12889 * <div>I start with transformX: 25px and transformY: 25px;</div>
12890 * </Draggable>
12891 * );
12892 * }
12893 * });
12894 * ```
12895 */
12896 defaultPosition: _propTypes.default.shape({
12897 x: _propTypes.default.number,
12898 y: _propTypes.default.number
12899 }),
12900 positionOffset: _propTypes.default.shape({
12901 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
12902 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
12903 }),
12904
12905 /**
12906 * `position`, if present, defines the current position of the element.
12907 *
12908 * This is similar to how form elements in React work - if no `position` is supplied, the component
12909 * is uncontrolled.
12910 *
12911 * Example:
12912 *
12913 * ```jsx
12914 * let App = React.createClass({
12915 * render: function () {
12916 * return (
12917 * <Draggable position={{x: 25, y: 25}}>
12918 * <div>I start with transformX: 25px and transformY: 25px;</div>
12919 * </Draggable>
12920 * );
12921 * }
12922 * });
12923 * ```
12924 */
12925 position: _propTypes.default.shape({
12926 x: _propTypes.default.number,
12927 y: _propTypes.default.number
12928 }),
12929
12930 /**
12931 * These properties should be defined on the child, not here.
12932 */
12933 className: _shims.dontSetMe,
12934 style: _shims.dontSetMe,
12935 transform: _shims.dontSetMe
12936 }));
12937
12938 _defineProperty(Draggable, "defaultProps", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {
12939 axis: 'both',
12940 bounds: false,
12941 defaultClassName: 'react-draggable',
12942 defaultClassNameDragging: 'react-draggable-dragging',
12943 defaultClassNameDragged: 'react-draggable-dragged',
12944 defaultPosition: {
12945 x: 0,
12946 y: 0
12947 },
12948 scale: 1
12949 }));
12950
12951 /***/ }),
12952
12953 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
12954 /*!******************************************************************!*\
12955 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
12956 \******************************************************************/
12957 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12958
12959 "use strict";
12960
12961
12962 function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
12963
12964 Object.defineProperty(exports, "__esModule", ({
12965 value: true
12966 }));
12967 exports["default"] = void 0;
12968
12969 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
12970
12971 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
12972
12973 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
12974
12975 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
12976
12977 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
12978
12979 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
12980
12981 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
12982
12983 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12984
12985 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12986
12987 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12988
12989 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12990
12991 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12992
12993 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12994
12995 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12996
12997 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12998
12999 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13000
13001 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13002
13003 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
13004
13005 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
13006
13007 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
13008
13009 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13010
13011 function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13012
13013 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
13014
13015 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13016
13017 function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13018
13019 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13020
13021 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13022
13023 // Simple abstraction for dragging events names.
13024 var eventsFor = {
13025 touch: {
13026 start: 'touchstart',
13027 move: 'touchmove',
13028 stop: 'touchend'
13029 },
13030 mouse: {
13031 start: 'mousedown',
13032 move: 'mousemove',
13033 stop: 'mouseup'
13034 }
13035 }; // Default to mouse events.
13036
13037 var dragEventFor = eventsFor.mouse;
13038 /*:: type DraggableCoreState = {
13039 dragging: boolean,
13040 lastX: number,
13041 lastY: number,
13042 touchIdentifier: ?number
13043 };*/
13044
13045 /*:: export type DraggableData = {
13046 node: HTMLElement,
13047 x: number, y: number,
13048 deltaX: number, deltaY: number,
13049 lastX: number, lastY: number,
13050 };*/
13051
13052 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
13053
13054 /*:: export type ControlPosition = {x: number, y: number};*/
13055
13056 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
13057
13058 /*:: export type DraggableCoreDefaultProps = {
13059 allowAnyClick: boolean,
13060 disabled: boolean,
13061 enableUserSelectHack: boolean,
13062 onStart: DraggableEventHandler,
13063 onDrag: DraggableEventHandler,
13064 onStop: DraggableEventHandler,
13065 onMouseDown: (e: MouseEvent) => void,
13066 scale: number,
13067 };*/
13068
13069 /*:: export type DraggableCoreProps = {
13070 ...DraggableCoreDefaultProps,
13071 cancel: string,
13072 children: ReactElement<any>,
13073 offsetParent: HTMLElement,
13074 grid: [number, number],
13075 handle: string,
13076 nodeRef?: ?React.ElementRef<any>,
13077 };*/
13078
13079 //
13080 // Define <DraggableCore>.
13081 //
13082 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
13083 // work well with libraries that require more control over the element.
13084 //
13085 var DraggableCore = /*#__PURE__*/function (_React$Component) {
13086 _inherits(DraggableCore, _React$Component);
13087
13088 var _super = _createSuper(DraggableCore);
13089
13090 function DraggableCore() {
13091 var _this;
13092
13093 _classCallCheck(this, DraggableCore);
13094
13095 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13096 args[_key] = arguments[_key];
13097 }
13098
13099 _this = _super.call.apply(_super, [this].concat(args));
13100
13101 _defineProperty(_assertThisInitialized(_this), "state", {
13102 dragging: false,
13103 // Used while dragging to determine deltas.
13104 lastX: NaN,
13105 lastY: NaN,
13106 touchIdentifier: null
13107 });
13108
13109 _defineProperty(_assertThisInitialized(_this), "mounted", false);
13110
13111 _defineProperty(_assertThisInitialized(_this), "handleDragStart", function (e) {
13112 // Make it possible to attach event handlers on top of this one.
13113 _this.props.onMouseDown(e); // Only accept left-clicks.
13114
13115
13116 if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)
13117
13118 var thisNode = _this.findDOMNode();
13119
13120 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
13121 throw new Error('<DraggableCore> not mounted on DragStart!');
13122 }
13123
13124 var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.
13125
13126 if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) {
13127 return;
13128 } // Prevent scrolling on mobile devices, like ipad/iphone.
13129 // Important that this is after handle/cancel.
13130
13131
13132 if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to
13133 // distinguish between individual touches on multitouch screens by identifying which
13134 // touchpoint was set to this element.
13135
13136 var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
13137
13138 _this.setState({
13139 touchIdentifier: touchIdentifier
13140 }); // Get the current drag point from the event. This is used as the offset.
13141
13142
13143 var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));
13144 if (position == null) return; // not possible but satisfies flow
13145
13146 var x = position.x,
13147 y = position.y; // Create an event object with all the data parents need to make a decision here.
13148
13149 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);
13150 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.
13151
13152 (0, _log.default)('calling', _this.props.onStart);
13153
13154 var shouldUpdate = _this.props.onStart(e, coreEvent);
13155
13156 if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from
13157 // being selected all over the page.
13158
13159 if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets
13160 // so we know how much we've moved during the drag. This allows us
13161 // to drag elements around even if they have been moved, without issue.
13162
13163 _this.setState({
13164 dragging: true,
13165 lastX: x,
13166 lastY: y
13167 }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of
13168 // this element. We use different events depending on whether or not we have detected that this
13169 // is a touch-capable device.
13170
13171
13172 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);
13173 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);
13174 });
13175
13176 _defineProperty(_assertThisInitialized(_this), "handleDrag", function (e) {
13177 // Get the current drag point from the event. This is used as the offset.
13178 var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));
13179 if (position == null) return;
13180 var x = position.x,
13181 y = position.y; // Snap to grid if prop has been provided
13182
13183 if (Array.isArray(_this.props.grid)) {
13184 var deltaX = x - _this.state.lastX,
13185 deltaY = y - _this.state.lastY;
13186
13187 var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);
13188
13189 var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);
13190
13191 deltaX = _snapToGrid2[0];
13192 deltaY = _snapToGrid2[1];
13193 if (!deltaX && !deltaY) return; // skip useless drag
13194
13195 x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;
13196 }
13197
13198 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);
13199 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.
13200
13201 var shouldUpdate = _this.props.onDrag(e, coreEvent);
13202
13203 if (shouldUpdate === false || _this.mounted === false) {
13204 try {
13205 // $FlowIgnore
13206 _this.handleDragStop(new MouseEvent('mouseup'));
13207 } catch (err) {
13208 // Old browsers
13209 var event = ((document.createEvent('MouseEvents')
13210 /*: any*/
13211 )
13212 /*: MouseTouchEvent*/
13213 ); // I see why this insanity was deprecated
13214 // $FlowIgnore
13215
13216 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
13217
13218 _this.handleDragStop(event);
13219 }
13220
13221 return;
13222 }
13223
13224 _this.setState({
13225 lastX: x,
13226 lastY: y
13227 });
13228 });
13229
13230 _defineProperty(_assertThisInitialized(_this), "handleDragStop", function (e) {
13231 if (!_this.state.dragging) return;
13232 var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));
13233 if (position == null) return;
13234 var x = position.x,
13235 y = position.y; // Snap to grid if prop has been provided
13236
13237 if (Array.isArray(_this.props.grid)) {
13238 var deltaX = x - _this.state.lastX || 0;
13239 var deltaY = y - _this.state.lastY || 0;
13240
13241 var _snapToGrid3 = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);
13242
13243 var _snapToGrid4 = _slicedToArray(_snapToGrid3, 2);
13244
13245 deltaX = _snapToGrid4[0];
13246 deltaY = _snapToGrid4[1];
13247 x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;
13248 }
13249
13250 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler
13251
13252 var shouldContinue = _this.props.onStop(e, coreEvent);
13253
13254 if (shouldContinue === false || _this.mounted === false) return false;
13255
13256 var thisNode = _this.findDOMNode();
13257
13258 if (thisNode) {
13259 // Remove user-select hack
13260 if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
13261 }
13262
13263 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.
13264
13265 _this.setState({
13266 dragging: false,
13267 lastX: NaN,
13268 lastY: NaN
13269 });
13270
13271 if (thisNode) {
13272 // Remove event handlers
13273 (0, _log.default)('DraggableCore: Removing handlers');
13274 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);
13275 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);
13276 }
13277 });
13278
13279 _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (e) {
13280 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
13281
13282 return _this.handleDragStart(e);
13283 });
13284
13285 _defineProperty(_assertThisInitialized(_this), "onMouseUp", function (e) {
13286 dragEventFor = eventsFor.mouse;
13287 return _this.handleDragStop(e);
13288 });
13289
13290 _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (e) {
13291 // We're on a touch device now, so change the event handlers
13292 dragEventFor = eventsFor.touch;
13293 return _this.handleDragStart(e);
13294 });
13295
13296 _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (e) {
13297 // We're on a touch device now, so change the event handlers
13298 dragEventFor = eventsFor.touch;
13299 return _this.handleDragStop(e);
13300 });
13301
13302 return _this;
13303 }
13304
13305 _createClass(DraggableCore, [{
13306 key: "componentDidMount",
13307 value: function componentDidMount() {
13308 this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.
13309 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
13310
13311 var thisNode = this.findDOMNode();
13312
13313 if (thisNode) {
13314 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
13315 passive: false
13316 });
13317 }
13318 }
13319 }, {
13320 key: "componentWillUnmount",
13321 value: function componentWillUnmount() {
13322 this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case
13323 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
13324
13325 var thisNode = this.findDOMNode();
13326
13327 if (thisNode) {
13328 var ownerDocument = thisNode.ownerDocument;
13329 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
13330 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
13331 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
13332 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
13333 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
13334 passive: false
13335 });
13336 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
13337 }
13338 } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
13339 // the underlying DOM node ourselves. See the README for more information.
13340
13341 }, {
13342 key: "findDOMNode",
13343 value: function findDOMNode()
13344 /*: ?HTMLElement*/
13345 {
13346 var _this$props, _this$props2, _this$props2$nodeRef;
13347
13348 return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 ? void 0 : (_this$props2$nodeRef = _this$props2.nodeRef) === null || _this$props2$nodeRef === void 0 ? void 0 : _this$props2$nodeRef.current : _reactDom.default.findDOMNode(this);
13349 }
13350 }, {
13351 key: "render",
13352 value: function render()
13353 /*: React.Element<any>*/
13354 {
13355 // Reuse the child provided
13356 // This makes it flexible to use whatever element is wanted (div, ul, etc)
13357 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
13358 // Note: mouseMove handler is attached to document so it will still function
13359 // when the user drags quickly and leaves the bounds of the element.
13360 onMouseDown: this.onMouseDown,
13361 onMouseUp: this.onMouseUp,
13362 // onTouchStart is added on `componentDidMount` so they can be added with
13363 // {passive: false}, which allows it to cancel. See
13364 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
13365 onTouchEnd: this.onTouchEnd
13366 });
13367 }
13368 }]);
13369
13370 return DraggableCore;
13371 }(React.Component);
13372
13373 exports["default"] = DraggableCore;
13374
13375 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
13376
13377 _defineProperty(DraggableCore, "propTypes", {
13378 /**
13379 * `allowAnyClick` allows dragging using any mouse button.
13380 * By default, we only accept the left button.
13381 *
13382 * Defaults to `false`.
13383 */
13384 allowAnyClick: _propTypes.default.bool,
13385
13386 /**
13387 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
13388 * with the exception of `onMouseDown`, will not fire.
13389 */
13390 disabled: _propTypes.default.bool,
13391
13392 /**
13393 * By default, we add 'user-select:none' attributes to the document body
13394 * to prevent ugly text selection during drag. If this is causing problems
13395 * for your app, set this to `false`.
13396 */
13397 enableUserSelectHack: _propTypes.default.bool,
13398
13399 /**
13400 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
13401 * instead of using the parent node.
13402 */
13403 offsetParent: function offsetParent(props
13404 /*: DraggableCoreProps*/
13405 , propName
13406 /*: $Keys<DraggableCoreProps>*/
13407 ) {
13408 if (props[propName] && props[propName].nodeType !== 1) {
13409 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
13410 }
13411 },
13412
13413 /**
13414 * `grid` specifies the x and y that dragging should snap to.
13415 */
13416 grid: _propTypes.default.arrayOf(_propTypes.default.number),
13417
13418 /**
13419 * `handle` specifies a selector to be used as the handle that initiates drag.
13420 *
13421 * Example:
13422 *
13423 * ```jsx
13424 * let App = React.createClass({
13425 * render: function () {
13426 * return (
13427 * <Draggable handle=".handle">
13428 * <div>
13429 * <div className="handle">Click me to drag</div>
13430 * <div>This is some other content</div>
13431 * </div>
13432 * </Draggable>
13433 * );
13434 * }
13435 * });
13436 * ```
13437 */
13438 handle: _propTypes.default.string,
13439
13440 /**
13441 * `cancel` specifies a selector to be used to prevent drag initialization.
13442 *
13443 * Example:
13444 *
13445 * ```jsx
13446 * let App = React.createClass({
13447 * render: function () {
13448 * return(
13449 * <Draggable cancel=".cancel">
13450 * <div>
13451 * <div className="cancel">You can't drag from here</div>
13452 * <div>Dragging here works fine</div>
13453 * </div>
13454 * </Draggable>
13455 * );
13456 * }
13457 * });
13458 * ```
13459 */
13460 cancel: _propTypes.default.string,
13461
13462 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
13463 * Unfortunately, in order for <Draggable> to work properly, we need raw access
13464 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
13465 * as in this example:
13466 *
13467 * function MyComponent() {
13468 * const nodeRef = React.useRef(null);
13469 * return (
13470 * <Draggable nodeRef={nodeRef}>
13471 * <div ref={nodeRef}>Example Target</div>
13472 * </Draggable>
13473 * );
13474 * }
13475 *
13476 * This can be used for arbitrarily nested components, so long as the ref ends up
13477 * pointing to the actual child DOM node and not a custom component.
13478 */
13479 nodeRef: _propTypes.default.object,
13480
13481 /**
13482 * Called when dragging starts.
13483 * If this function returns the boolean false, dragging will be canceled.
13484 */
13485 onStart: _propTypes.default.func,
13486
13487 /**
13488 * Called while dragging.
13489 * If this function returns the boolean false, dragging will be canceled.
13490 */
13491 onDrag: _propTypes.default.func,
13492
13493 /**
13494 * Called when dragging stops.
13495 * If this function returns the boolean false, the drag will remain active.
13496 */
13497 onStop: _propTypes.default.func,
13498
13499 /**
13500 * A workaround option which can be passed if onMouseDown needs to be accessed,
13501 * since it'll always be blocked (as there is internal use of onMouseDown)
13502 */
13503 onMouseDown: _propTypes.default.func,
13504
13505 /**
13506 * `scale`, if set, applies scaling while dragging an element
13507 */
13508 scale: _propTypes.default.number,
13509
13510 /**
13511 * These properties should be defined on the child, not here.
13512 */
13513 className: _shims.dontSetMe,
13514 style: _shims.dontSetMe,
13515 transform: _shims.dontSetMe
13516 });
13517
13518 _defineProperty(DraggableCore, "defaultProps", {
13519 allowAnyClick: false,
13520 // by default only accept left click
13521 disabled: false,
13522 enableUserSelectHack: true,
13523 onStart: function onStart() {},
13524 onDrag: function onDrag() {},
13525 onStop: function onStop() {},
13526 onMouseDown: function onMouseDown() {},
13527 scale: 1
13528 });
13529
13530 /***/ }),
13531
13532 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
13533 /*!********************************************************!*\
13534 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
13535 \********************************************************/
13536 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
13537
13538 "use strict";
13539
13540
13541 var _require = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js"),
13542 Draggable = _require.default,
13543 DraggableCore = _require.DraggableCore; // Previous versions of this lib exported <Draggable> as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.
13544 // See https://github.com/mzabriskie/react-draggable/pull/254
13545 // and https://github.com/mzabriskie/react-draggable/issues/266
13546
13547
13548 module.exports = Draggable;
13549 module.exports["default"] = Draggable;
13550 module.exports.DraggableCore = DraggableCore;
13551
13552 /***/ }),
13553
13554 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
13555 /*!*****************************************************************!*\
13556 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
13557 \*****************************************************************/
13558 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13559
13560 "use strict";
13561
13562
13563 function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
13564
13565 Object.defineProperty(exports, "__esModule", ({
13566 value: true
13567 }));
13568 exports.addClassName = addClassName;
13569 exports.addEvent = addEvent;
13570 exports.addUserSelectStyles = addUserSelectStyles;
13571 exports.createCSSTransform = createCSSTransform;
13572 exports.createSVGTransform = createSVGTransform;
13573 exports.getTouch = getTouch;
13574 exports.getTouchIdentifier = getTouchIdentifier;
13575 exports.getTranslation = getTranslation;
13576 exports.innerHeight = innerHeight;
13577 exports.innerWidth = innerWidth;
13578 exports.matchesSelector = matchesSelector;
13579 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
13580 exports.offsetXYFromParent = offsetXYFromParent;
13581 exports.outerHeight = outerHeight;
13582 exports.outerWidth = outerWidth;
13583 exports.removeClassName = removeClassName;
13584 exports.removeEvent = removeEvent;
13585 exports.removeUserSelectStyles = removeUserSelectStyles;
13586
13587 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
13588
13589 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
13590
13591 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13592
13593 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13594
13595 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13596
13597 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13598
13599 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13600
13601 var matchesSelectorFunc = '';
13602
13603 function matchesSelector(el
13604 /*: Node*/
13605 , selector
13606 /*: string*/
13607 )
13608 /*: boolean*/
13609 {
13610 if (!matchesSelectorFunc) {
13611 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
13612 // $FlowIgnore: Doesn't think elements are indexable
13613 return (0, _shims.isFunction)(el[method]);
13614 });
13615 } // Might not be found entirely (not an Element?) - in that case, bail
13616 // $FlowIgnore: Doesn't think elements are indexable
13617
13618
13619 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable
13620
13621 return el[matchesSelectorFunc](selector);
13622 } // Works up the tree to the draggable itself attempting to match selector.
13623
13624
13625 function matchesSelectorAndParentsTo(el
13626 /*: Node*/
13627 , selector
13628 /*: string*/
13629 , baseNode
13630 /*: Node*/
13631 )
13632 /*: boolean*/
13633 {
13634 var node = el;
13635
13636 do {
13637 if (matchesSelector(node, selector)) return true;
13638 if (node === baseNode) return false;
13639 node = node.parentNode;
13640 } while (node);
13641
13642 return false;
13643 }
13644
13645 function addEvent(el
13646 /*: ?Node*/
13647 , event
13648 /*: string*/
13649 , handler
13650 /*: Function*/
13651 , inputOptions
13652 /*: Object*/
13653 )
13654 /*: void*/
13655 {
13656 if (!el) return;
13657
13658 var options = _objectSpread({
13659 capture: true
13660 }, inputOptions); // $FlowIgnore[method-unbinding]
13661
13662
13663 if (el.addEventListener) {
13664 el.addEventListener(event, handler, options);
13665 } else if (el.attachEvent) {
13666 el.attachEvent('on' + event, handler);
13667 } else {
13668 // $FlowIgnore: Doesn't think elements are indexable
13669 el['on' + event] = handler;
13670 }
13671 }
13672
13673 function removeEvent(el
13674 /*: ?Node*/
13675 , event
13676 /*: string*/
13677 , handler
13678 /*: Function*/
13679 , inputOptions
13680 /*: Object*/
13681 )
13682 /*: void*/
13683 {
13684 if (!el) return;
13685
13686 var options = _objectSpread({
13687 capture: true
13688 }, inputOptions); // $FlowIgnore[method-unbinding]
13689
13690
13691 if (el.removeEventListener) {
13692 el.removeEventListener(event, handler, options);
13693 } else if (el.detachEvent) {
13694 el.detachEvent('on' + event, handler);
13695 } else {
13696 // $FlowIgnore: Doesn't think elements are indexable
13697 el['on' + event] = null;
13698 }
13699 }
13700
13701 function outerHeight(node
13702 /*: HTMLElement*/
13703 )
13704 /*: number*/
13705 {
13706 // This is deliberately excluding margin for our calculations, since we are using
13707 // offsetTop which is including margin. See getBoundPosition
13708 var height = node.clientHeight;
13709 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13710 height += (0, _shims.int)(computedStyle.borderTopWidth);
13711 height += (0, _shims.int)(computedStyle.borderBottomWidth);
13712 return height;
13713 }
13714
13715 function outerWidth(node
13716 /*: HTMLElement*/
13717 )
13718 /*: number*/
13719 {
13720 // This is deliberately excluding margin for our calculations, since we are using
13721 // offsetLeft which is including margin. See getBoundPosition
13722 var width = node.clientWidth;
13723 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13724 width += (0, _shims.int)(computedStyle.borderLeftWidth);
13725 width += (0, _shims.int)(computedStyle.borderRightWidth);
13726 return width;
13727 }
13728
13729 function innerHeight(node
13730 /*: HTMLElement*/
13731 )
13732 /*: number*/
13733 {
13734 var height = node.clientHeight;
13735 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13736 height -= (0, _shims.int)(computedStyle.paddingTop);
13737 height -= (0, _shims.int)(computedStyle.paddingBottom);
13738 return height;
13739 }
13740
13741 function innerWidth(node
13742 /*: HTMLElement*/
13743 )
13744 /*: number*/
13745 {
13746 var width = node.clientWidth;
13747 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13748 width -= (0, _shims.int)(computedStyle.paddingLeft);
13749 width -= (0, _shims.int)(computedStyle.paddingRight);
13750 return width;
13751 }
13752 /*:: interface EventWithOffset {
13753 clientX: number, clientY: number
13754 }*/
13755
13756
13757 // Get from offsetParent
13758 function offsetXYFromParent(evt
13759 /*: EventWithOffset*/
13760 , offsetParent
13761 /*: HTMLElement*/
13762 , scale
13763 /*: number*/
13764 )
13765 /*: ControlPosition*/
13766 {
13767 var isBody = offsetParent === offsetParent.ownerDocument.body;
13768 var offsetParentRect = isBody ? {
13769 left: 0,
13770 top: 0
13771 } : offsetParent.getBoundingClientRect();
13772 var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
13773 var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
13774 return {
13775 x: x,
13776 y: y
13777 };
13778 }
13779
13780 function createCSSTransform(controlPos
13781 /*: ControlPosition*/
13782 , positionOffset
13783 /*: PositionOffsetControlPosition*/
13784 )
13785 /*: Object*/
13786 {
13787 var translation = getTranslation(controlPos, positionOffset, 'px');
13788 return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);
13789 }
13790
13791 function createSVGTransform(controlPos
13792 /*: ControlPosition*/
13793 , positionOffset
13794 /*: PositionOffsetControlPosition*/
13795 )
13796 /*: string*/
13797 {
13798 var translation = getTranslation(controlPos, positionOffset, '');
13799 return translation;
13800 }
13801
13802 function getTranslation(_ref2, positionOffset
13803 /*: PositionOffsetControlPosition*/
13804 , unitSuffix
13805 /*: string*/
13806 )
13807 /*: string*/
13808 {
13809 var x = _ref2.x,
13810 y = _ref2.y;
13811 var translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
13812
13813 if (positionOffset) {
13814 var defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
13815 var defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
13816 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
13817 }
13818
13819 return translation;
13820 }
13821
13822 function getTouch(e
13823 /*: MouseTouchEvent*/
13824 , identifier
13825 /*: number*/
13826 )
13827 /*: ?{clientX: number, clientY: number}*/
13828 {
13829 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {
13830 return identifier === t.identifier;
13831 }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {
13832 return identifier === t.identifier;
13833 });
13834 }
13835
13836 function getTouchIdentifier(e
13837 /*: MouseTouchEvent*/
13838 )
13839 /*: ?number*/
13840 {
13841 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
13842 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
13843 } // User-select Hacks:
13844 //
13845 // Useful for preventing blue highlights all over everything when dragging.
13846 // Note we're passing `document` b/c we could be iframed
13847
13848
13849 function addUserSelectStyles(doc
13850 /*: ?Document*/
13851 ) {
13852 if (!doc) return;
13853 var styleEl = doc.getElementById('react-draggable-style-el');
13854
13855 if (!styleEl) {
13856 styleEl = doc.createElement('style');
13857 styleEl.type = 'text/css';
13858 styleEl.id = 'react-draggable-style-el';
13859 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
13860 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
13861 doc.getElementsByTagName('head')[0].appendChild(styleEl);
13862 }
13863
13864 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
13865 }
13866
13867 function removeUserSelectStyles(doc
13868 /*: ?Document*/
13869 ) {
13870 if (!doc) return;
13871
13872 try {
13873 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE
13874
13875 if (doc.selection) {
13876 // $FlowIgnore: IE
13877 doc.selection.empty();
13878 } else {
13879 // Remove selection caused by scroll, unless it's a focused input
13880 // (we use doc.defaultView in case we're in an iframe)
13881 var selection = (doc.defaultView || window).getSelection();
13882
13883 if (selection && selection.type !== 'Caret') {
13884 selection.removeAllRanges();
13885 }
13886 }
13887 } catch (e) {// probably IE
13888 }
13889 }
13890
13891 function addClassName(el
13892 /*: HTMLElement*/
13893 , className
13894 /*: string*/
13895 ) {
13896 if (el.classList) {
13897 el.classList.add(className);
13898 } else {
13899 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
13900 el.className += " ".concat(className);
13901 }
13902 }
13903 }
13904
13905 function removeClassName(el
13906 /*: HTMLElement*/
13907 , className
13908 /*: string*/
13909 ) {
13910 if (el.classList) {
13911 el.classList.remove(className);
13912 } else {
13913 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
13914 }
13915 }
13916
13917 /***/ }),
13918
13919 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
13920 /*!********************************************************************!*\
13921 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
13922 \********************************************************************/
13923 /***/ ((__unused_webpack_module, exports) => {
13924
13925 "use strict";
13926
13927
13928 Object.defineProperty(exports, "__esModule", ({
13929 value: true
13930 }));
13931 exports.browserPrefixToKey = browserPrefixToKey;
13932 exports.browserPrefixToStyle = browserPrefixToStyle;
13933 exports["default"] = void 0;
13934 exports.getPrefix = getPrefix;
13935 var prefixes = ['Moz', 'Webkit', 'O', 'ms'];
13936
13937 function getPrefix()
13938 /*: string*/
13939 {
13940 var _window$document, _window$document$docu;
13941
13942 var prop
13943 /*: string*/
13944 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
13945 // Ensure we're running in an environment where there is actually a global
13946 // `window` obj
13947 if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access
13948 // path may not exist, so bail out if it doesn't.
13949
13950 var style = (_window$document = window.document) === null || _window$document === void 0 ? void 0 : (_window$document$docu = _window$document.documentElement) === null || _window$document$docu === void 0 ? void 0 : _window$document$docu.style;
13951 if (!style) return '';
13952 if (prop in style) return '';
13953
13954 for (var i = 0; i < prefixes.length; i++) {
13955 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
13956 }
13957
13958 return '';
13959 }
13960
13961 function browserPrefixToKey(prop
13962 /*: string*/
13963 , prefix
13964 /*: string*/
13965 )
13966 /*: string*/
13967 {
13968 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
13969 }
13970
13971 function browserPrefixToStyle(prop
13972 /*: string*/
13973 , prefix
13974 /*: string*/
13975 )
13976 /*: string*/
13977 {
13978 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
13979 }
13980
13981 function kebabToTitleCase(str
13982 /*: string*/
13983 )
13984 /*: string*/
13985 {
13986 var out = '';
13987 var shouldCapitalize = true;
13988
13989 for (var i = 0; i < str.length; i++) {
13990 if (shouldCapitalize) {
13991 out += str[i].toUpperCase();
13992 shouldCapitalize = false;
13993 } else if (str[i] === '-') {
13994 shouldCapitalize = true;
13995 } else {
13996 out += str[i];
13997 }
13998 }
13999
14000 return out;
14001 } // Default export is the prefix itself, like 'Moz', 'Webkit', etc
14002 // Note that you may have to re-test for certain things; for instance, Chrome 50
14003 // can handle unprefixed `transform`, but not unprefixed `user-select`
14004
14005
14006 var _default = (getPrefix()
14007 /*: string*/
14008 );
14009
14010 exports["default"] = _default;
14011
14012 /***/ }),
14013
14014 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
14015 /*!**************************************************************!*\
14016 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
14017 \**************************************************************/
14018 /***/ ((__unused_webpack_module, exports) => {
14019
14020 "use strict";
14021
14022
14023 Object.defineProperty(exports, "__esModule", ({
14024 value: true
14025 }));
14026 exports["default"] = log;
14027
14028 /*eslint no-console:0*/
14029 function log() {
14030 var _console;
14031
14032 if (false) {}
14033 }
14034
14035 /***/ }),
14036
14037 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
14038 /*!**********************************************************************!*\
14039 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
14040 \**********************************************************************/
14041 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14042
14043 "use strict";
14044
14045
14046 Object.defineProperty(exports, "__esModule", ({
14047 value: true
14048 }));
14049 exports.canDragX = canDragX;
14050 exports.canDragY = canDragY;
14051 exports.createCoreData = createCoreData;
14052 exports.createDraggableData = createDraggableData;
14053 exports.getBoundPosition = getBoundPosition;
14054 exports.getControlPosition = getControlPosition;
14055 exports.snapToGrid = snapToGrid;
14056
14057 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
14058
14059 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
14060
14061 function getBoundPosition(draggable
14062 /*: Draggable*/
14063 , x
14064 /*: number*/
14065 , y
14066 /*: number*/
14067 )
14068 /*: [number, number]*/
14069 {
14070 // If no bounds, short-circuit and move on
14071 if (!draggable.props.bounds) return [x, y]; // Clone new bounds
14072
14073 var bounds = draggable.props.bounds;
14074 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
14075 var node = findDOMNode(draggable);
14076
14077 if (typeof bounds === 'string') {
14078 var ownerDocument = node.ownerDocument;
14079 var ownerWindow = ownerDocument.defaultView;
14080 var boundNode;
14081
14082 if (bounds === 'parent') {
14083 boundNode = node.parentNode;
14084 } else {
14085 boundNode = ownerDocument.querySelector(bounds);
14086 }
14087
14088 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
14089 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
14090 }
14091
14092 var boundNodeEl
14093 /*: HTMLElement*/
14094 = boundNode; // for Flow, can't seem to refine correctly
14095
14096 var nodeStyle = ownerWindow.getComputedStyle(node);
14097 var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
14098
14099 bounds = {
14100 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
14101 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
14102 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
14103 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
14104 };
14105 } // Keep x and y below right and bottom limits...
14106
14107
14108 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
14109 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.
14110
14111 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
14112 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
14113 return [x, y];
14114 }
14115
14116 function snapToGrid(grid
14117 /*: [number, number]*/
14118 , pendingX
14119 /*: number*/
14120 , pendingY
14121 /*: number*/
14122 )
14123 /*: [number, number]*/
14124 {
14125 var x = Math.round(pendingX / grid[0]) * grid[0];
14126 var y = Math.round(pendingY / grid[1]) * grid[1];
14127 return [x, y];
14128 }
14129
14130 function canDragX(draggable
14131 /*: Draggable*/
14132 )
14133 /*: boolean*/
14134 {
14135 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
14136 }
14137
14138 function canDragY(draggable
14139 /*: Draggable*/
14140 )
14141 /*: boolean*/
14142 {
14143 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
14144 } // Get {x, y} positions from event.
14145
14146
14147 function getControlPosition(e
14148 /*: MouseTouchEvent*/
14149 , touchIdentifier
14150 /*: ?number*/
14151 , draggableCore
14152 /*: DraggableCore*/
14153 )
14154 /*: ?ControlPosition*/
14155 {
14156 var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
14157 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
14158
14159 var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.
14160
14161 var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
14162 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
14163 } // Create an data object exposed by <DraggableCore>'s events
14164
14165
14166 function createCoreData(draggable
14167 /*: DraggableCore*/
14168 , x
14169 /*: number*/
14170 , y
14171 /*: number*/
14172 )
14173 /*: DraggableData*/
14174 {
14175 var state = draggable.state;
14176 var isStart = !(0, _shims.isNum)(state.lastX);
14177 var node = findDOMNode(draggable);
14178
14179 if (isStart) {
14180 // If this is our first move, use the x and y as last coords.
14181 return {
14182 node: node,
14183 deltaX: 0,
14184 deltaY: 0,
14185 lastX: x,
14186 lastY: y,
14187 x: x,
14188 y: y
14189 };
14190 } else {
14191 // Otherwise calculate proper values.
14192 return {
14193 node: node,
14194 deltaX: x - state.lastX,
14195 deltaY: y - state.lastY,
14196 lastX: state.lastX,
14197 lastY: state.lastY,
14198 x: x,
14199 y: y
14200 };
14201 }
14202 } // Create an data exposed by <Draggable>'s events
14203
14204
14205 function createDraggableData(draggable
14206 /*: Draggable*/
14207 , coreData
14208 /*: DraggableData*/
14209 )
14210 /*: DraggableData*/
14211 {
14212 var scale = draggable.props.scale;
14213 return {
14214 node: coreData.node,
14215 x: draggable.state.x + coreData.deltaX / scale,
14216 y: draggable.state.y + coreData.deltaY / scale,
14217 deltaX: coreData.deltaX / scale,
14218 deltaY: coreData.deltaY / scale,
14219 lastX: draggable.state.x,
14220 lastY: draggable.state.y
14221 };
14222 } // A lot faster than stringify/parse
14223
14224
14225 function cloneBounds(bounds
14226 /*: Bounds*/
14227 )
14228 /*: Bounds*/
14229 {
14230 return {
14231 left: bounds.left,
14232 top: bounds.top,
14233 right: bounds.right,
14234 bottom: bounds.bottom
14235 };
14236 }
14237
14238 function findDOMNode(draggable
14239 /*: Draggable | DraggableCore*/
14240 )
14241 /*: HTMLElement*/
14242 {
14243 var node = draggable.findDOMNode();
14244
14245 if (!node) {
14246 throw new Error('<DraggableCore>: Unmounted during event!');
14247 } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
14248
14249
14250 return node;
14251 }
14252
14253 /***/ }),
14254
14255 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
14256 /*!****************************************************************!*\
14257 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
14258 \****************************************************************/
14259 /***/ ((__unused_webpack_module, exports) => {
14260
14261 "use strict";
14262
14263
14264 Object.defineProperty(exports, "__esModule", ({
14265 value: true
14266 }));
14267 exports.dontSetMe = dontSetMe;
14268 exports.findInArray = findInArray;
14269 exports.int = int;
14270 exports.isFunction = isFunction;
14271 exports.isNum = isNum;
14272
14273 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
14274 function findInArray(array
14275 /*: Array<any> | TouchList*/
14276 , callback
14277 /*: Function*/
14278 )
14279 /*: any*/
14280 {
14281 for (var i = 0, length = array.length; i < length; i++) {
14282 if (callback.apply(callback, [array[i], i, array])) return array[i];
14283 }
14284 }
14285
14286 function isFunction(func
14287 /*: any*/
14288 )
14289 /*: boolean %checks*/
14290 {
14291 // $FlowIgnore[method-unbinding]
14292 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
14293 }
14294
14295 function isNum(num
14296 /*: any*/
14297 )
14298 /*: boolean %checks*/
14299 {
14300 return typeof num === 'number' && !isNaN(num);
14301 }
14302
14303 function int(a
14304 /*: string*/
14305 )
14306 /*: number*/
14307 {
14308 return parseInt(a, 10);
14309 }
14310
14311 function dontSetMe(props
14312 /*: Object*/
14313 , propName
14314 /*: string*/
14315 , componentName
14316 /*: string*/
14317 )
14318 /*: ?Error*/
14319 {
14320 if (props[propName]) {
14321 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
14322 }
14323 }
14324
14325 /***/ }),
14326
14327 /***/ "../node_modules/react-infinite-scroller/dist/InfiniteScroll.js":
14328 /*!**********************************************************************!*\
14329 !*** ../node_modules/react-infinite-scroller/dist/InfiniteScroll.js ***!
14330 \**********************************************************************/
14331 /***/ ((module, exports, __webpack_require__) => {
14332
14333 "use strict";
14334
14335
14336 Object.defineProperty(exports, "__esModule", ({
14337 value: true
14338 }));
14339
14340 var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
14341
14342 var _react = __webpack_require__(/*! react */ "react");
14343
14344 var _react2 = _interopRequireDefault(_react);
14345
14346 var _propTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
14347
14348 var _propTypes2 = _interopRequireDefault(_propTypes);
14349
14350 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14351
14352 function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
14353
14354 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14355
14356 function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
14357
14358 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
14359
14360 var InfiniteScroll = function (_Component) {
14361 _inherits(InfiniteScroll, _Component);
14362
14363 function InfiniteScroll(props) {
14364 _classCallCheck(this, InfiniteScroll);
14365
14366 var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));
14367
14368 _this.scrollListener = _this.scrollListener.bind(_this);
14369 _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);
14370 _this.mousewheelListener = _this.mousewheelListener.bind(_this);
14371 return _this;
14372 }
14373
14374 _createClass(InfiniteScroll, [{
14375 key: 'componentDidMount',
14376 value: function componentDidMount() {
14377 this.pageLoaded = this.props.pageStart;
14378 this.options = this.eventListenerOptions();
14379 this.attachScrollListener();
14380 }
14381 }, {
14382 key: 'componentDidUpdate',
14383 value: function componentDidUpdate() {
14384 if (this.props.isReverse && this.loadMore) {
14385 var parentElement = this.getParentElement(this.scrollComponent);
14386 parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;
14387 this.loadMore = false;
14388 }
14389 this.attachScrollListener();
14390 }
14391 }, {
14392 key: 'componentWillUnmount',
14393 value: function componentWillUnmount() {
14394 this.detachScrollListener();
14395 this.detachMousewheelListener();
14396 }
14397 }, {
14398 key: 'isPassiveSupported',
14399 value: function isPassiveSupported() {
14400 var passive = false;
14401
14402 var testOptions = {
14403 get passive() {
14404 passive = true;
14405 }
14406 };
14407
14408 try {
14409 document.addEventListener('test', null, testOptions);
14410 document.removeEventListener('test', null, testOptions);
14411 } catch (e) {
14412 // ignore
14413 }
14414 return passive;
14415 }
14416 }, {
14417 key: 'eventListenerOptions',
14418 value: function eventListenerOptions() {
14419 var options = this.props.useCapture;
14420
14421 if (this.isPassiveSupported()) {
14422 options = {
14423 useCapture: this.props.useCapture,
14424 passive: true
14425 };
14426 } else {
14427 options = {
14428 passive: false
14429 };
14430 }
14431 return options;
14432 }
14433
14434 // Set a defaut loader for all your `InfiniteScroll` components
14435
14436 }, {
14437 key: 'setDefaultLoader',
14438 value: function setDefaultLoader(loader) {
14439 this.defaultLoader = loader;
14440 }
14441 }, {
14442 key: 'detachMousewheelListener',
14443 value: function detachMousewheelListener() {
14444 var scrollEl = window;
14445 if (this.props.useWindow === false) {
14446 scrollEl = this.scrollComponent.parentNode;
14447 }
14448
14449 scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
14450 }
14451 }, {
14452 key: 'detachScrollListener',
14453 value: function detachScrollListener() {
14454 var scrollEl = window;
14455 if (this.props.useWindow === false) {
14456 scrollEl = this.getParentElement(this.scrollComponent);
14457 }
14458
14459 scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
14460 scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
14461 }
14462 }, {
14463 key: 'getParentElement',
14464 value: function getParentElement(el) {
14465 var scrollParent = this.props.getScrollParent && this.props.getScrollParent();
14466 if (scrollParent != null) {
14467 return scrollParent;
14468 }
14469 return el && el.parentNode;
14470 }
14471 }, {
14472 key: 'filterProps',
14473 value: function filterProps(props) {
14474 return props;
14475 }
14476 }, {
14477 key: 'attachScrollListener',
14478 value: function attachScrollListener() {
14479 var parentElement = this.getParentElement(this.scrollComponent);
14480
14481 if (!this.props.hasMore || !parentElement) {
14482 return;
14483 }
14484
14485 var scrollEl = window;
14486 if (this.props.useWindow === false) {
14487 scrollEl = parentElement;
14488 }
14489
14490 scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
14491 scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
14492 scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
14493
14494 if (this.props.initialLoad) {
14495 this.scrollListener();
14496 }
14497 }
14498 }, {
14499 key: 'mousewheelListener',
14500 value: function mousewheelListener(e) {
14501 // Prevents Chrome hangups
14502 // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
14503 if (e.deltaY === 1 && !this.isPassiveSupported()) {
14504 e.preventDefault();
14505 }
14506 }
14507 }, {
14508 key: 'scrollListener',
14509 value: function scrollListener() {
14510 var el = this.scrollComponent;
14511 var scrollEl = window;
14512 var parentNode = this.getParentElement(el);
14513
14514 var offset = void 0;
14515 if (this.props.useWindow) {
14516 var doc = document.documentElement || document.body.parentNode || document.body;
14517 var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;
14518 if (this.props.isReverse) {
14519 offset = scrollTop;
14520 } else {
14521 offset = this.calculateOffset(el, scrollTop);
14522 }
14523 } else if (this.props.isReverse) {
14524 offset = parentNode.scrollTop;
14525 } else {
14526 offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;
14527 }
14528
14529 // Here we make sure the element is visible as well as checking the offset
14530 if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {
14531 this.detachScrollListener();
14532 this.beforeScrollHeight = parentNode.scrollHeight;
14533 this.beforeScrollTop = parentNode.scrollTop;
14534 // Call loadMore after detachScrollListener to allow for non-async loadMore functions
14535 if (typeof this.props.loadMore === 'function') {
14536 this.props.loadMore(this.pageLoaded += 1);
14537 this.loadMore = true;
14538 }
14539 }
14540 }
14541 }, {
14542 key: 'calculateOffset',
14543 value: function calculateOffset(el, scrollTop) {
14544 if (!el) {
14545 return 0;
14546 }
14547
14548 return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);
14549 }
14550 }, {
14551 key: 'calculateTopPosition',
14552 value: function calculateTopPosition(el) {
14553 if (!el) {
14554 return 0;
14555 }
14556 return el.offsetTop + this.calculateTopPosition(el.offsetParent);
14557 }
14558 }, {
14559 key: 'render',
14560 value: function render() {
14561 var _this2 = this;
14562
14563 var renderProps = this.filterProps(this.props);
14564
14565 var children = renderProps.children,
14566 element = renderProps.element,
14567 hasMore = renderProps.hasMore,
14568 initialLoad = renderProps.initialLoad,
14569 isReverse = renderProps.isReverse,
14570 loader = renderProps.loader,
14571 loadMore = renderProps.loadMore,
14572 pageStart = renderProps.pageStart,
14573 ref = renderProps.ref,
14574 threshold = renderProps.threshold,
14575 useCapture = renderProps.useCapture,
14576 useWindow = renderProps.useWindow,
14577 getScrollParent = renderProps.getScrollParent,
14578 props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);
14579
14580 props.ref = function (node) {
14581 _this2.scrollComponent = node;
14582 if (ref) {
14583 ref(node);
14584 }
14585 };
14586
14587 var childrenArray = [children];
14588 if (hasMore) {
14589 if (loader) {
14590 isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);
14591 } else if (this.defaultLoader) {
14592 isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);
14593 }
14594 }
14595 return _react2.default.createElement(element, props, childrenArray);
14596 }
14597 }]);
14598
14599 return InfiniteScroll;
14600 }(_react.Component);
14601
14602 InfiniteScroll.propTypes = {
14603 children: _propTypes2.default.node.isRequired,
14604 element: _propTypes2.default.node,
14605 hasMore: _propTypes2.default.bool,
14606 initialLoad: _propTypes2.default.bool,
14607 isReverse: _propTypes2.default.bool,
14608 loader: _propTypes2.default.node,
14609 loadMore: _propTypes2.default.func.isRequired,
14610 pageStart: _propTypes2.default.number,
14611 ref: _propTypes2.default.func,
14612 getScrollParent: _propTypes2.default.func,
14613 threshold: _propTypes2.default.number,
14614 useCapture: _propTypes2.default.bool,
14615 useWindow: _propTypes2.default.bool
14616 };
14617 InfiniteScroll.defaultProps = {
14618 element: 'div',
14619 hasMore: false,
14620 initialLoad: true,
14621 pageStart: 0,
14622 ref: null,
14623 threshold: 250,
14624 useWindow: true,
14625 isReverse: false,
14626 useCapture: false,
14627 loader: null,
14628 getScrollParent: null
14629 };
14630 exports["default"] = InfiniteScroll;
14631 module.exports = exports['default'];
14632
14633
14634 /***/ }),
14635
14636 /***/ "../node_modules/react-infinite-scroller/index.js":
14637 /*!********************************************************!*\
14638 !*** ../node_modules/react-infinite-scroller/index.js ***!
14639 \********************************************************/
14640 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
14641
14642 module.exports = __webpack_require__(/*! ./dist/InfiniteScroll */ "../node_modules/react-infinite-scroller/dist/InfiniteScroll.js")
14643
14644
14645 /***/ }),
14646
14647 /***/ "../node_modules/react-is/cjs/react-is.development.js":
14648 /*!************************************************************!*\
14649 !*** ../node_modules/react-is/cjs/react-is.development.js ***!
14650 \************************************************************/
14651 /***/ ((__unused_webpack_module, exports) => {
14652
14653 "use strict";
14654 /**
14655 * @license React
14656 * react-is.development.js
14657 *
14658 * Copyright (c) Facebook, Inc. and its affiliates.
14659 *
14660 * This source code is licensed under the MIT license found in the
14661 * LICENSE file in the root directory of this source tree.
14662 */
14663
14664
14665
14666 if (true) {
14667 (function() {
14668 'use strict';
14669
14670 // ATTENTION
14671 // When adding new symbols to this file,
14672 // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
14673 // The Symbol used to tag the ReactElement-like types.
14674 var REACT_ELEMENT_TYPE = Symbol.for('react.element');
14675 var REACT_PORTAL_TYPE = Symbol.for('react.portal');
14676 var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
14677 var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
14678 var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
14679 var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
14680 var REACT_CONTEXT_TYPE = Symbol.for('react.context');
14681 var REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
14682 var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
14683 var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
14684 var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
14685 var REACT_MEMO_TYPE = Symbol.for('react.memo');
14686 var REACT_LAZY_TYPE = Symbol.for('react.lazy');
14687 var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
14688
14689 // -----------------------------------------------------------------------------
14690
14691 var enableScopeAPI = false; // Experimental Create Event Handle API.
14692 var enableCacheElement = false;
14693 var enableTransitionTracing = false; // No known bugs, but needs performance testing
14694
14695 var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
14696 // stuff. Intended to enable React core members to more easily debug scheduling
14697 // issues in DEV builds.
14698
14699 var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
14700
14701 var REACT_MODULE_REFERENCE;
14702
14703 {
14704 REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
14705 }
14706
14707 function isValidElementType(type) {
14708 if (typeof type === 'string' || typeof type === 'function') {
14709 return true;
14710 } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
14711
14712
14713 if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {
14714 return true;
14715 }
14716
14717 if (typeof type === 'object' && type !== null) {
14718 if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object
14719 // types supported by any Flight configuration anywhere since
14720 // we don't know which Flight build this will end up being used
14721 // with.
14722 type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
14723 return true;
14724 }
14725 }
14726
14727 return false;
14728 }
14729
14730 function typeOf(object) {
14731 if (typeof object === 'object' && object !== null) {
14732 var $$typeof = object.$$typeof;
14733
14734 switch ($$typeof) {
14735 case REACT_ELEMENT_TYPE:
14736 var type = object.type;
14737
14738 switch (type) {
14739 case REACT_FRAGMENT_TYPE:
14740 case REACT_PROFILER_TYPE:
14741 case REACT_STRICT_MODE_TYPE:
14742 case REACT_SUSPENSE_TYPE:
14743 case REACT_SUSPENSE_LIST_TYPE:
14744 return type;
14745
14746 default:
14747 var $$typeofType = type && type.$$typeof;
14748
14749 switch ($$typeofType) {
14750 case REACT_SERVER_CONTEXT_TYPE:
14751 case REACT_CONTEXT_TYPE:
14752 case REACT_FORWARD_REF_TYPE:
14753 case REACT_LAZY_TYPE:
14754 case REACT_MEMO_TYPE:
14755 case REACT_PROVIDER_TYPE:
14756 return $$typeofType;
14757
14758 default:
14759 return $$typeof;
14760 }
14761
14762 }
14763
14764 case REACT_PORTAL_TYPE:
14765 return $$typeof;
14766 }
14767 }
14768
14769 return undefined;
14770 }
14771 var ContextConsumer = REACT_CONTEXT_TYPE;
14772 var ContextProvider = REACT_PROVIDER_TYPE;
14773 var Element = REACT_ELEMENT_TYPE;
14774 var ForwardRef = REACT_FORWARD_REF_TYPE;
14775 var Fragment = REACT_FRAGMENT_TYPE;
14776 var Lazy = REACT_LAZY_TYPE;
14777 var Memo = REACT_MEMO_TYPE;
14778 var Portal = REACT_PORTAL_TYPE;
14779 var Profiler = REACT_PROFILER_TYPE;
14780 var StrictMode = REACT_STRICT_MODE_TYPE;
14781 var Suspense = REACT_SUSPENSE_TYPE;
14782 var SuspenseList = REACT_SUSPENSE_LIST_TYPE;
14783 var hasWarnedAboutDeprecatedIsAsyncMode = false;
14784 var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated
14785
14786 function isAsyncMode(object) {
14787 {
14788 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
14789 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
14790
14791 console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
14792 }
14793 }
14794
14795 return false;
14796 }
14797 function isConcurrentMode(object) {
14798 {
14799 if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
14800 hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint
14801
14802 console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
14803 }
14804 }
14805
14806 return false;
14807 }
14808 function isContextConsumer(object) {
14809 return typeOf(object) === REACT_CONTEXT_TYPE;
14810 }
14811 function isContextProvider(object) {
14812 return typeOf(object) === REACT_PROVIDER_TYPE;
14813 }
14814 function isElement(object) {
14815 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
14816 }
14817 function isForwardRef(object) {
14818 return typeOf(object) === REACT_FORWARD_REF_TYPE;
14819 }
14820 function isFragment(object) {
14821 return typeOf(object) === REACT_FRAGMENT_TYPE;
14822 }
14823 function isLazy(object) {
14824 return typeOf(object) === REACT_LAZY_TYPE;
14825 }
14826 function isMemo(object) {
14827 return typeOf(object) === REACT_MEMO_TYPE;
14828 }
14829 function isPortal(object) {
14830 return typeOf(object) === REACT_PORTAL_TYPE;
14831 }
14832 function isProfiler(object) {
14833 return typeOf(object) === REACT_PROFILER_TYPE;
14834 }
14835 function isStrictMode(object) {
14836 return typeOf(object) === REACT_STRICT_MODE_TYPE;
14837 }
14838 function isSuspense(object) {
14839 return typeOf(object) === REACT_SUSPENSE_TYPE;
14840 }
14841 function isSuspenseList(object) {
14842 return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
14843 }
14844
14845 exports.ContextConsumer = ContextConsumer;
14846 exports.ContextProvider = ContextProvider;
14847 exports.Element = Element;
14848 exports.ForwardRef = ForwardRef;
14849 exports.Fragment = Fragment;
14850 exports.Lazy = Lazy;
14851 exports.Memo = Memo;
14852 exports.Portal = Portal;
14853 exports.Profiler = Profiler;
14854 exports.StrictMode = StrictMode;
14855 exports.Suspense = Suspense;
14856 exports.SuspenseList = SuspenseList;
14857 exports.isAsyncMode = isAsyncMode;
14858 exports.isConcurrentMode = isConcurrentMode;
14859 exports.isContextConsumer = isContextConsumer;
14860 exports.isContextProvider = isContextProvider;
14861 exports.isElement = isElement;
14862 exports.isForwardRef = isForwardRef;
14863 exports.isFragment = isFragment;
14864 exports.isLazy = isLazy;
14865 exports.isMemo = isMemo;
14866 exports.isPortal = isPortal;
14867 exports.isProfiler = isProfiler;
14868 exports.isStrictMode = isStrictMode;
14869 exports.isSuspense = isSuspense;
14870 exports.isSuspenseList = isSuspenseList;
14871 exports.isValidElementType = isValidElementType;
14872 exports.typeOf = typeOf;
14873 })();
14874 }
14875
14876
14877 /***/ }),
14878
14879 /***/ "../node_modules/react-is/index.js":
14880 /*!*****************************************!*\
14881 !*** ../node_modules/react-is/index.js ***!
14882 \*****************************************/
14883 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
14884
14885 "use strict";
14886
14887
14888 if (false) {} else {
14889 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/react-is/cjs/react-is.development.js");
14890 }
14891
14892
14893 /***/ }),
14894
14895 /***/ "../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js":
14896 /*!***************************************************************************!*\
14897 !*** ../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js ***!
14898 \***************************************************************************/
14899 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
14900
14901 "use strict";
14902 __webpack_require__.r(__webpack_exports__);
14903 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14904 /* harmony export */ Canvas: () => (/* binding */ Canvas),
14905 /* harmony export */ ReactSketchCanvas: () => (/* binding */ ReactSketchCanvas)
14906 /* harmony export */ });
14907 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14908 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14909
14910
14911 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
14912 try {
14913 var info = gen[key](arg);
14914 var value = info.value;
14915 } catch (error) {
14916 reject(error);
14917 return;
14918 }
14919
14920 if (info.done) {
14921 resolve(value);
14922 } else {
14923 Promise.resolve(value).then(_next, _throw);
14924 }
14925 }
14926
14927 function _asyncToGenerator(fn) {
14928 return function () {
14929 var self = this,
14930 args = arguments;
14931 return new Promise(function (resolve, reject) {
14932 var gen = fn.apply(self, args);
14933
14934 function _next(value) {
14935 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
14936 }
14937
14938 function _throw(err) {
14939 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
14940 }
14941
14942 _next(undefined);
14943 });
14944 };
14945 }
14946
14947 function _extends() {
14948 _extends = Object.assign || function (target) {
14949 for (var i = 1; i < arguments.length; i++) {
14950 var source = arguments[i];
14951
14952 for (var key in source) {
14953 if (Object.prototype.hasOwnProperty.call(source, key)) {
14954 target[key] = source[key];
14955 }
14956 }
14957 }
14958
14959 return target;
14960 };
14961
14962 return _extends.apply(this, arguments);
14963 }
14964
14965 var runtime = {exports: {}};
14966
14967 /**
14968 * Copyright (c) 2014-present, Facebook, Inc.
14969 *
14970 * This source code is licensed under the MIT license found in the
14971 * LICENSE file in the root directory of this source tree.
14972 */
14973
14974 (function (module) {
14975 var runtime = (function (exports) {
14976
14977 var Op = Object.prototype;
14978 var hasOwn = Op.hasOwnProperty;
14979 var undefined$1; // More compressible than void 0.
14980 var $Symbol = typeof Symbol === "function" ? Symbol : {};
14981 var iteratorSymbol = $Symbol.iterator || "@@iterator";
14982 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
14983 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
14984
14985 function define(obj, key, value) {
14986 Object.defineProperty(obj, key, {
14987 value: value,
14988 enumerable: true,
14989 configurable: true,
14990 writable: true
14991 });
14992 return obj[key];
14993 }
14994 try {
14995 // IE 8 has a broken Object.defineProperty that only works on DOM objects.
14996 define({}, "");
14997 } catch (err) {
14998 define = function(obj, key, value) {
14999 return obj[key] = value;
15000 };
15001 }
15002
15003 function wrap(innerFn, outerFn, self, tryLocsList) {
15004 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
15005 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
15006 var generator = Object.create(protoGenerator.prototype);
15007 var context = new Context(tryLocsList || []);
15008
15009 // The ._invoke method unifies the implementations of the .next,
15010 // .throw, and .return methods.
15011 generator._invoke = makeInvokeMethod(innerFn, self, context);
15012
15013 return generator;
15014 }
15015 exports.wrap = wrap;
15016
15017 // Try/catch helper to minimize deoptimizations. Returns a completion
15018 // record like context.tryEntries[i].completion. This interface could
15019 // have been (and was previously) designed to take a closure to be
15020 // invoked without arguments, but in all the cases we care about we
15021 // already have an existing method we want to call, so there's no need
15022 // to create a new function object. We can even get away with assuming
15023 // the method takes exactly one argument, since that happens to be true
15024 // in every case, so we don't have to touch the arguments object. The
15025 // only additional allocation required is the completion record, which
15026 // has a stable shape and so hopefully should be cheap to allocate.
15027 function tryCatch(fn, obj, arg) {
15028 try {
15029 return { type: "normal", arg: fn.call(obj, arg) };
15030 } catch (err) {
15031 return { type: "throw", arg: err };
15032 }
15033 }
15034
15035 var GenStateSuspendedStart = "suspendedStart";
15036 var GenStateSuspendedYield = "suspendedYield";
15037 var GenStateExecuting = "executing";
15038 var GenStateCompleted = "completed";
15039
15040 // Returning this object from the innerFn has the same effect as
15041 // breaking out of the dispatch switch statement.
15042 var ContinueSentinel = {};
15043
15044 // Dummy constructor functions that we use as the .constructor and
15045 // .constructor.prototype properties for functions that return Generator
15046 // objects. For full spec compliance, you may wish to configure your
15047 // minifier not to mangle the names of these two functions.
15048 function Generator() {}
15049 function GeneratorFunction() {}
15050 function GeneratorFunctionPrototype() {}
15051
15052 // This is a polyfill for %IteratorPrototype% for environments that
15053 // don't natively support it.
15054 var IteratorPrototype = {};
15055 define(IteratorPrototype, iteratorSymbol, function () {
15056 return this;
15057 });
15058
15059 var getProto = Object.getPrototypeOf;
15060 var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
15061 if (NativeIteratorPrototype &&
15062 NativeIteratorPrototype !== Op &&
15063 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
15064 // This environment has a native %IteratorPrototype%; use it instead
15065 // of the polyfill.
15066 IteratorPrototype = NativeIteratorPrototype;
15067 }
15068
15069 var Gp = GeneratorFunctionPrototype.prototype =
15070 Generator.prototype = Object.create(IteratorPrototype);
15071 GeneratorFunction.prototype = GeneratorFunctionPrototype;
15072 define(Gp, "constructor", GeneratorFunctionPrototype);
15073 define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
15074 GeneratorFunction.displayName = define(
15075 GeneratorFunctionPrototype,
15076 toStringTagSymbol,
15077 "GeneratorFunction"
15078 );
15079
15080 // Helper for defining the .next, .throw, and .return methods of the
15081 // Iterator interface in terms of a single ._invoke method.
15082 function defineIteratorMethods(prototype) {
15083 ["next", "throw", "return"].forEach(function(method) {
15084 define(prototype, method, function(arg) {
15085 return this._invoke(method, arg);
15086 });
15087 });
15088 }
15089
15090 exports.isGeneratorFunction = function(genFun) {
15091 var ctor = typeof genFun === "function" && genFun.constructor;
15092 return ctor
15093 ? ctor === GeneratorFunction ||
15094 // For the native GeneratorFunction constructor, the best we can
15095 // do is to check its .name property.
15096 (ctor.displayName || ctor.name) === "GeneratorFunction"
15097 : false;
15098 };
15099
15100 exports.mark = function(genFun) {
15101 if (Object.setPrototypeOf) {
15102 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
15103 } else {
15104 genFun.__proto__ = GeneratorFunctionPrototype;
15105 define(genFun, toStringTagSymbol, "GeneratorFunction");
15106 }
15107 genFun.prototype = Object.create(Gp);
15108 return genFun;
15109 };
15110
15111 // Within the body of any async function, `await x` is transformed to
15112 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
15113 // `hasOwn.call(value, "__await")` to determine if the yielded value is
15114 // meant to be awaited.
15115 exports.awrap = function(arg) {
15116 return { __await: arg };
15117 };
15118
15119 function AsyncIterator(generator, PromiseImpl) {
15120 function invoke(method, arg, resolve, reject) {
15121 var record = tryCatch(generator[method], generator, arg);
15122 if (record.type === "throw") {
15123 reject(record.arg);
15124 } else {
15125 var result = record.arg;
15126 var value = result.value;
15127 if (value &&
15128 typeof value === "object" &&
15129 hasOwn.call(value, "__await")) {
15130 return PromiseImpl.resolve(value.__await).then(function(value) {
15131 invoke("next", value, resolve, reject);
15132 }, function(err) {
15133 invoke("throw", err, resolve, reject);
15134 });
15135 }
15136
15137 return PromiseImpl.resolve(value).then(function(unwrapped) {
15138 // When a yielded Promise is resolved, its final value becomes
15139 // the .value of the Promise<{value,done}> result for the
15140 // current iteration.
15141 result.value = unwrapped;
15142 resolve(result);
15143 }, function(error) {
15144 // If a rejected Promise was yielded, throw the rejection back
15145 // into the async generator function so it can be handled there.
15146 return invoke("throw", error, resolve, reject);
15147 });
15148 }
15149 }
15150
15151 var previousPromise;
15152
15153 function enqueue(method, arg) {
15154 function callInvokeWithMethodAndArg() {
15155 return new PromiseImpl(function(resolve, reject) {
15156 invoke(method, arg, resolve, reject);
15157 });
15158 }
15159
15160 return previousPromise =
15161 // If enqueue has been called before, then we want to wait until
15162 // all previous Promises have been resolved before calling invoke,
15163 // so that results are always delivered in the correct order. If
15164 // enqueue has not been called before, then it is important to
15165 // call invoke immediately, without waiting on a callback to fire,
15166 // so that the async generator function has the opportunity to do
15167 // any necessary setup in a predictable way. This predictability
15168 // is why the Promise constructor synchronously invokes its
15169 // executor callback, and why async functions synchronously
15170 // execute code before the first await. Since we implement simple
15171 // async functions in terms of async generators, it is especially
15172 // important to get this right, even though it requires care.
15173 previousPromise ? previousPromise.then(
15174 callInvokeWithMethodAndArg,
15175 // Avoid propagating failures to Promises returned by later
15176 // invocations of the iterator.
15177 callInvokeWithMethodAndArg
15178 ) : callInvokeWithMethodAndArg();
15179 }
15180
15181 // Define the unified helper method that is used to implement .next,
15182 // .throw, and .return (see defineIteratorMethods).
15183 this._invoke = enqueue;
15184 }
15185
15186 defineIteratorMethods(AsyncIterator.prototype);
15187 define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
15188 return this;
15189 });
15190 exports.AsyncIterator = AsyncIterator;
15191
15192 // Note that simple async functions are implemented on top of
15193 // AsyncIterator objects; they just return a Promise for the value of
15194 // the final result produced by the iterator.
15195 exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
15196 if (PromiseImpl === void 0) PromiseImpl = Promise;
15197
15198 var iter = new AsyncIterator(
15199 wrap(innerFn, outerFn, self, tryLocsList),
15200 PromiseImpl
15201 );
15202
15203 return exports.isGeneratorFunction(outerFn)
15204 ? iter // If outerFn is a generator, return the full iterator.
15205 : iter.next().then(function(result) {
15206 return result.done ? result.value : iter.next();
15207 });
15208 };
15209
15210 function makeInvokeMethod(innerFn, self, context) {
15211 var state = GenStateSuspendedStart;
15212
15213 return function invoke(method, arg) {
15214 if (state === GenStateExecuting) {
15215 throw new Error("Generator is already running");
15216 }
15217
15218 if (state === GenStateCompleted) {
15219 if (method === "throw") {
15220 throw arg;
15221 }
15222
15223 // Be forgiving, per 25.3.3.3.3 of the spec:
15224 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
15225 return doneResult();
15226 }
15227
15228 context.method = method;
15229 context.arg = arg;
15230
15231 while (true) {
15232 var delegate = context.delegate;
15233 if (delegate) {
15234 var delegateResult = maybeInvokeDelegate(delegate, context);
15235 if (delegateResult) {
15236 if (delegateResult === ContinueSentinel) continue;
15237 return delegateResult;
15238 }
15239 }
15240
15241 if (context.method === "next") {
15242 // Setting context._sent for legacy support of Babel's
15243 // function.sent implementation.
15244 context.sent = context._sent = context.arg;
15245
15246 } else if (context.method === "throw") {
15247 if (state === GenStateSuspendedStart) {
15248 state = GenStateCompleted;
15249 throw context.arg;
15250 }
15251
15252 context.dispatchException(context.arg);
15253
15254 } else if (context.method === "return") {
15255 context.abrupt("return", context.arg);
15256 }
15257
15258 state = GenStateExecuting;
15259
15260 var record = tryCatch(innerFn, self, context);
15261 if (record.type === "normal") {
15262 // If an exception is thrown from innerFn, we leave state ===
15263 // GenStateExecuting and loop back for another invocation.
15264 state = context.done
15265 ? GenStateCompleted
15266 : GenStateSuspendedYield;
15267
15268 if (record.arg === ContinueSentinel) {
15269 continue;
15270 }
15271
15272 return {
15273 value: record.arg,
15274 done: context.done
15275 };
15276
15277 } else if (record.type === "throw") {
15278 state = GenStateCompleted;
15279 // Dispatch the exception by looping back around to the
15280 // context.dispatchException(context.arg) call above.
15281 context.method = "throw";
15282 context.arg = record.arg;
15283 }
15284 }
15285 };
15286 }
15287
15288 // Call delegate.iterator[context.method](context.arg) and handle the
15289 // result, either by returning a { value, done } result from the
15290 // delegate iterator, or by modifying context.method and context.arg,
15291 // setting context.delegate to null, and returning the ContinueSentinel.
15292 function maybeInvokeDelegate(delegate, context) {
15293 var method = delegate.iterator[context.method];
15294 if (method === undefined$1) {
15295 // A .throw or .return when the delegate iterator has no .throw
15296 // method always terminates the yield* loop.
15297 context.delegate = null;
15298
15299 if (context.method === "throw") {
15300 // Note: ["return"] must be used for ES3 parsing compatibility.
15301 if (delegate.iterator["return"]) {
15302 // If the delegate iterator has a return method, give it a
15303 // chance to clean up.
15304 context.method = "return";
15305 context.arg = undefined$1;
15306 maybeInvokeDelegate(delegate, context);
15307
15308 if (context.method === "throw") {
15309 // If maybeInvokeDelegate(context) changed context.method from
15310 // "return" to "throw", let that override the TypeError below.
15311 return ContinueSentinel;
15312 }
15313 }
15314
15315 context.method = "throw";
15316 context.arg = new TypeError(
15317 "The iterator does not provide a 'throw' method");
15318 }
15319
15320 return ContinueSentinel;
15321 }
15322
15323 var record = tryCatch(method, delegate.iterator, context.arg);
15324
15325 if (record.type === "throw") {
15326 context.method = "throw";
15327 context.arg = record.arg;
15328 context.delegate = null;
15329 return ContinueSentinel;
15330 }
15331
15332 var info = record.arg;
15333
15334 if (! info) {
15335 context.method = "throw";
15336 context.arg = new TypeError("iterator result is not an object");
15337 context.delegate = null;
15338 return ContinueSentinel;
15339 }
15340
15341 if (info.done) {
15342 // Assign the result of the finished delegate to the temporary
15343 // variable specified by delegate.resultName (see delegateYield).
15344 context[delegate.resultName] = info.value;
15345
15346 // Resume execution at the desired location (see delegateYield).
15347 context.next = delegate.nextLoc;
15348
15349 // If context.method was "throw" but the delegate handled the
15350 // exception, let the outer generator proceed normally. If
15351 // context.method was "next", forget context.arg since it has been
15352 // "consumed" by the delegate iterator. If context.method was
15353 // "return", allow the original .return call to continue in the
15354 // outer generator.
15355 if (context.method !== "return") {
15356 context.method = "next";
15357 context.arg = undefined$1;
15358 }
15359
15360 } else {
15361 // Re-yield the result returned by the delegate method.
15362 return info;
15363 }
15364
15365 // The delegate iterator is finished, so forget it and continue with
15366 // the outer generator.
15367 context.delegate = null;
15368 return ContinueSentinel;
15369 }
15370
15371 // Define Generator.prototype.{next,throw,return} in terms of the
15372 // unified ._invoke helper method.
15373 defineIteratorMethods(Gp);
15374
15375 define(Gp, toStringTagSymbol, "Generator");
15376
15377 // A Generator should always return itself as the iterator object when the
15378 // @@iterator function is called on it. Some browsers' implementations of the
15379 // iterator prototype chain incorrectly implement this, causing the Generator
15380 // object to not be returned from this call. This ensures that doesn't happen.
15381 // See https://github.com/facebook/regenerator/issues/274 for more details.
15382 define(Gp, iteratorSymbol, function() {
15383 return this;
15384 });
15385
15386 define(Gp, "toString", function() {
15387 return "[object Generator]";
15388 });
15389
15390 function pushTryEntry(locs) {
15391 var entry = { tryLoc: locs[0] };
15392
15393 if (1 in locs) {
15394 entry.catchLoc = locs[1];
15395 }
15396
15397 if (2 in locs) {
15398 entry.finallyLoc = locs[2];
15399 entry.afterLoc = locs[3];
15400 }
15401
15402 this.tryEntries.push(entry);
15403 }
15404
15405 function resetTryEntry(entry) {
15406 var record = entry.completion || {};
15407 record.type = "normal";
15408 delete record.arg;
15409 entry.completion = record;
15410 }
15411
15412 function Context(tryLocsList) {
15413 // The root entry object (effectively a try statement without a catch
15414 // or a finally block) gives us a place to store values thrown from
15415 // locations where there is no enclosing try statement.
15416 this.tryEntries = [{ tryLoc: "root" }];
15417 tryLocsList.forEach(pushTryEntry, this);
15418 this.reset(true);
15419 }
15420
15421 exports.keys = function(object) {
15422 var keys = [];
15423 for (var key in object) {
15424 keys.push(key);
15425 }
15426 keys.reverse();
15427
15428 // Rather than returning an object with a next method, we keep
15429 // things simple and return the next function itself.
15430 return function next() {
15431 while (keys.length) {
15432 var key = keys.pop();
15433 if (key in object) {
15434 next.value = key;
15435 next.done = false;
15436 return next;
15437 }
15438 }
15439
15440 // To avoid creating an additional object, we just hang the .value
15441 // and .done properties off the next function object itself. This
15442 // also ensures that the minifier will not anonymize the function.
15443 next.done = true;
15444 return next;
15445 };
15446 };
15447
15448 function values(iterable) {
15449 if (iterable) {
15450 var iteratorMethod = iterable[iteratorSymbol];
15451 if (iteratorMethod) {
15452 return iteratorMethod.call(iterable);
15453 }
15454
15455 if (typeof iterable.next === "function") {
15456 return iterable;
15457 }
15458
15459 if (!isNaN(iterable.length)) {
15460 var i = -1, next = function next() {
15461 while (++i < iterable.length) {
15462 if (hasOwn.call(iterable, i)) {
15463 next.value = iterable[i];
15464 next.done = false;
15465 return next;
15466 }
15467 }
15468
15469 next.value = undefined$1;
15470 next.done = true;
15471
15472 return next;
15473 };
15474
15475 return next.next = next;
15476 }
15477 }
15478
15479 // Return an iterator with no values.
15480 return { next: doneResult };
15481 }
15482 exports.values = values;
15483
15484 function doneResult() {
15485 return { value: undefined$1, done: true };
15486 }
15487
15488 Context.prototype = {
15489 constructor: Context,
15490
15491 reset: function(skipTempReset) {
15492 this.prev = 0;
15493 this.next = 0;
15494 // Resetting context._sent for legacy support of Babel's
15495 // function.sent implementation.
15496 this.sent = this._sent = undefined$1;
15497 this.done = false;
15498 this.delegate = null;
15499
15500 this.method = "next";
15501 this.arg = undefined$1;
15502
15503 this.tryEntries.forEach(resetTryEntry);
15504
15505 if (!skipTempReset) {
15506 for (var name in this) {
15507 // Not sure about the optimal order of these conditions:
15508 if (name.charAt(0) === "t" &&
15509 hasOwn.call(this, name) &&
15510 !isNaN(+name.slice(1))) {
15511 this[name] = undefined$1;
15512 }
15513 }
15514 }
15515 },
15516
15517 stop: function() {
15518 this.done = true;
15519
15520 var rootEntry = this.tryEntries[0];
15521 var rootRecord = rootEntry.completion;
15522 if (rootRecord.type === "throw") {
15523 throw rootRecord.arg;
15524 }
15525
15526 return this.rval;
15527 },
15528
15529 dispatchException: function(exception) {
15530 if (this.done) {
15531 throw exception;
15532 }
15533
15534 var context = this;
15535 function handle(loc, caught) {
15536 record.type = "throw";
15537 record.arg = exception;
15538 context.next = loc;
15539
15540 if (caught) {
15541 // If the dispatched exception was caught by a catch block,
15542 // then let that catch block handle the exception normally.
15543 context.method = "next";
15544 context.arg = undefined$1;
15545 }
15546
15547 return !! caught;
15548 }
15549
15550 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15551 var entry = this.tryEntries[i];
15552 var record = entry.completion;
15553
15554 if (entry.tryLoc === "root") {
15555 // Exception thrown outside of any try block that could handle
15556 // it, so set the completion value of the entire function to
15557 // throw the exception.
15558 return handle("end");
15559 }
15560
15561 if (entry.tryLoc <= this.prev) {
15562 var hasCatch = hasOwn.call(entry, "catchLoc");
15563 var hasFinally = hasOwn.call(entry, "finallyLoc");
15564
15565 if (hasCatch && hasFinally) {
15566 if (this.prev < entry.catchLoc) {
15567 return handle(entry.catchLoc, true);
15568 } else if (this.prev < entry.finallyLoc) {
15569 return handle(entry.finallyLoc);
15570 }
15571
15572 } else if (hasCatch) {
15573 if (this.prev < entry.catchLoc) {
15574 return handle(entry.catchLoc, true);
15575 }
15576
15577 } else if (hasFinally) {
15578 if (this.prev < entry.finallyLoc) {
15579 return handle(entry.finallyLoc);
15580 }
15581
15582 } else {
15583 throw new Error("try statement without catch or finally");
15584 }
15585 }
15586 }
15587 },
15588
15589 abrupt: function(type, arg) {
15590 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15591 var entry = this.tryEntries[i];
15592 if (entry.tryLoc <= this.prev &&
15593 hasOwn.call(entry, "finallyLoc") &&
15594 this.prev < entry.finallyLoc) {
15595 var finallyEntry = entry;
15596 break;
15597 }
15598 }
15599
15600 if (finallyEntry &&
15601 (type === "break" ||
15602 type === "continue") &&
15603 finallyEntry.tryLoc <= arg &&
15604 arg <= finallyEntry.finallyLoc) {
15605 // Ignore the finally entry if control is not jumping to a
15606 // location outside the try/catch block.
15607 finallyEntry = null;
15608 }
15609
15610 var record = finallyEntry ? finallyEntry.completion : {};
15611 record.type = type;
15612 record.arg = arg;
15613
15614 if (finallyEntry) {
15615 this.method = "next";
15616 this.next = finallyEntry.finallyLoc;
15617 return ContinueSentinel;
15618 }
15619
15620 return this.complete(record);
15621 },
15622
15623 complete: function(record, afterLoc) {
15624 if (record.type === "throw") {
15625 throw record.arg;
15626 }
15627
15628 if (record.type === "break" ||
15629 record.type === "continue") {
15630 this.next = record.arg;
15631 } else if (record.type === "return") {
15632 this.rval = this.arg = record.arg;
15633 this.method = "return";
15634 this.next = "end";
15635 } else if (record.type === "normal" && afterLoc) {
15636 this.next = afterLoc;
15637 }
15638
15639 return ContinueSentinel;
15640 },
15641
15642 finish: function(finallyLoc) {
15643 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15644 var entry = this.tryEntries[i];
15645 if (entry.finallyLoc === finallyLoc) {
15646 this.complete(entry.completion, entry.afterLoc);
15647 resetTryEntry(entry);
15648 return ContinueSentinel;
15649 }
15650 }
15651 },
15652
15653 "catch": function(tryLoc) {
15654 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15655 var entry = this.tryEntries[i];
15656 if (entry.tryLoc === tryLoc) {
15657 var record = entry.completion;
15658 if (record.type === "throw") {
15659 var thrown = record.arg;
15660 resetTryEntry(entry);
15661 }
15662 return thrown;
15663 }
15664 }
15665
15666 // The context.catch method must only be called with a location
15667 // argument that corresponds to a known catch block.
15668 throw new Error("illegal catch attempt");
15669 },
15670
15671 delegateYield: function(iterable, resultName, nextLoc) {
15672 this.delegate = {
15673 iterator: values(iterable),
15674 resultName: resultName,
15675 nextLoc: nextLoc
15676 };
15677
15678 if (this.method === "next") {
15679 // Deliberately forget the last sent value so that we don't
15680 // accidentally pass it on to the delegate.
15681 this.arg = undefined$1;
15682 }
15683
15684 return ContinueSentinel;
15685 }
15686 };
15687
15688 // Regardless of whether this script is executing as a CommonJS module
15689 // or not, return the runtime object so that we can declare the variable
15690 // regeneratorRuntime in the outer scope, which allows this module to be
15691 // injected easily by `bin/regenerator --include-runtime script.js`.
15692 return exports;
15693
15694 }(
15695 // If this script is executing as a CommonJS module, use module.exports
15696 // as the regeneratorRuntime namespace. Otherwise create a new empty
15697 // object. Either way, the resulting object will be used to initialize
15698 // the regeneratorRuntime variable at the top of this file.
15699 module.exports
15700 ));
15701
15702 try {
15703 regeneratorRuntime = runtime;
15704 } catch (accidentalStrictMode) {
15705 // This module should not be running in strict mode, so the above
15706 // assignment should always work unless something is misconfigured. Just
15707 // in case runtime.js accidentally runs in strict mode, in modern engines
15708 // we can explicitly access globalThis. In older engines we can escape
15709 // strict mode using a global Function call. This could conceivably fail
15710 // if a Content Security Policy forbids using Function, but in that case
15711 // the proper solution is to fix the accidental strict mode problem. If
15712 // you've misconfigured your bundler to force strict mode and applied a
15713 // CSP to forbid Function, and you're not willing to fix either of those
15714 // problems, please detail your unique predicament in a GitHub issue.
15715 if (typeof globalThis === "object") {
15716 globalThis.regeneratorRuntime = runtime;
15717 } else {
15718 Function("r", "regeneratorRuntime = r")(runtime);
15719 }
15720 }
15721 }(runtime));
15722
15723 var _regeneratorRuntime = runtime.exports;
15724
15725 /**
15726 * Generate SVG Path tag from the given points
15727 */
15728
15729 var SvgPath = function SvgPath(_ref) {
15730 var paths = _ref.paths,
15731 id = _ref.id,
15732 strokeWidth = _ref.strokeWidth,
15733 strokeColor = _ref.strokeColor,
15734 _ref$command = _ref.command,
15735 command = _ref$command === void 0 ? bezierCommand : _ref$command;
15736
15737 if (paths.length === 1) {
15738 var _paths$ = paths[0],
15739 x = _paths$.x,
15740 y = _paths$.y;
15741 var radius = strokeWidth / 2;
15742 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("circle", {
15743 key: id,
15744 id: id,
15745 cx: x,
15746 cy: y,
15747 r: radius,
15748 stroke: strokeColor,
15749 fill: strokeColor
15750 });
15751 }
15752
15753 var d = paths.reduce(function (acc, point, i, a) {
15754 return i === 0 ? "M " + point.x + "," + point.y : acc + " " + command(point, i, a);
15755 }, '');
15756 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
15757 key: id,
15758 id: id,
15759 d: d,
15760 fill: "none",
15761 strokeLinecap: "round",
15762 stroke: strokeColor,
15763 strokeWidth: strokeWidth
15764 });
15765 };
15766 var line = function line(pointA, pointB) {
15767 var lengthX = pointB.x - pointA.x;
15768 var lengthY = pointB.y - pointA.y;
15769 return {
15770 length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),
15771 angle: Math.atan2(lengthY, lengthX)
15772 };
15773 };
15774
15775 var controlPoint = function controlPoint(controlPoints) {
15776 var current = controlPoints.current,
15777 next = controlPoints.next,
15778 previous = controlPoints.previous,
15779 reverse = controlPoints.reverse;
15780 var p = previous || current;
15781 var n = next || current;
15782 var smoothing = 0.2;
15783 var o = line(p, n);
15784 var angle = o.angle + (reverse ? Math.PI : 0);
15785 var length = o.length * smoothing;
15786 var x = current.x + Math.cos(angle) * length;
15787 var y = current.y + Math.sin(angle) * length;
15788 return [x, y];
15789 };
15790
15791 var bezierCommand = function bezierCommand(point, i, a) {
15792 var cpsX = null;
15793 var cpsY = null;
15794
15795 switch (i) {
15796 case 0:
15797 var _controlPoint = controlPoint({
15798 current: point
15799 });
15800
15801 cpsX = _controlPoint[0];
15802 cpsY = _controlPoint[1];
15803 break;
15804
15805 case 1:
15806 var _controlPoint2 = controlPoint({
15807 current: a[i - 1],
15808 next: point
15809 });
15810
15811 cpsX = _controlPoint2[0];
15812 cpsY = _controlPoint2[1];
15813 break;
15814
15815 default:
15816 var _controlPoint3 = controlPoint({
15817 current: a[i - 1],
15818 previous: a[i - 2],
15819 next: point
15820 });
15821
15822 cpsX = _controlPoint3[0];
15823 cpsY = _controlPoint3[1];
15824 break;
15825 }
15826
15827 var _controlPoint4 = controlPoint({
15828 current: point,
15829 previous: a[i - 1],
15830 next: a[i + 1],
15831 reverse: true
15832 }),
15833 cpeX = _controlPoint4[0],
15834 cpeY = _controlPoint4[1];
15835
15836 return "C " + cpsX + "," + cpsY + " " + cpeX + "," + cpeY + " " + point.x + ", " + point.y;
15837 };
15838
15839 var Paths = function Paths(_ref2) {
15840 var id = _ref2.id,
15841 paths = _ref2.paths;
15842 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, paths.map(function (path, index) {
15843 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(SvgPath, {
15844 key: id + "__" + index,
15845 paths: path.paths,
15846 id: id + "__" + index,
15847 strokeWidth: path.strokeWidth,
15848 strokeColor: path.strokeColor,
15849 command: bezierCommand
15850 });
15851 }));
15852 };
15853
15854 var loadImage = function loadImage(url) {
15855 return new Promise(function (resolve, reject) {
15856 var img = new Image();
15857 img.addEventListener('load', function () {
15858 if (img.width > 0) {
15859 resolve(img);
15860 }
15861
15862 reject('Image not found');
15863 });
15864 img.addEventListener('error', function (err) {
15865 return reject(err);
15866 });
15867 img.src = url;
15868 img.setAttribute('crossorigin', 'anonymous');
15869 });
15870 };
15871
15872 function getCanvasWithViewBox(canvas) {
15873 var _canvas$firstChild;
15874
15875 var svgCanvas = (_canvas$firstChild = canvas.firstChild) == null ? void 0 : _canvas$firstChild.cloneNode(true);
15876 var width = canvas.offsetWidth;
15877 var height = canvas.offsetHeight;
15878 svgCanvas.setAttribute('viewBox', "0 0 " + width + " " + height);
15879 svgCanvas.setAttribute('width', width.toString());
15880 svgCanvas.setAttribute('height', height.toString());
15881 return {
15882 svgCanvas: svgCanvas,
15883 width: width,
15884 height: height
15885 };
15886 }
15887
15888 var Canvas = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {
15889 var paths = props.paths,
15890 isDrawing = props.isDrawing,
15891 onPointerDown = props.onPointerDown,
15892 onPointerMove = props.onPointerMove,
15893 onPointerUp = props.onPointerUp,
15894 _props$id = props.id,
15895 id = _props$id === void 0 ? 'react-sketch-canvas' : _props$id,
15896 _props$width = props.width,
15897 width = _props$width === void 0 ? '100%' : _props$width,
15898 _props$height = props.height,
15899 height = _props$height === void 0 ? '100%' : _props$height,
15900 _props$className = props.className,
15901 className = _props$className === void 0 ? 'react-sketch-canvas' : _props$className,
15902 _props$canvasColor = props.canvasColor,
15903 canvasColor = _props$canvasColor === void 0 ? 'red' : _props$canvasColor,
15904 _props$backgroundImag = props.backgroundImage,
15905 backgroundImage = _props$backgroundImag === void 0 ? '' : _props$backgroundImag,
15906 _props$exportWithBack = props.exportWithBackgroundImage,
15907 exportWithBackgroundImage = _props$exportWithBack === void 0 ? false : _props$exportWithBack,
15908 _props$preserveBackgr = props.preserveBackgroundImageAspectRatio,
15909 preserveBackgroundImageAspectRatio = _props$preserveBackgr === void 0 ? 'none' : _props$preserveBackgr,
15910 _props$allowOnlyPoint = props.allowOnlyPointerType,
15911 allowOnlyPointerType = _props$allowOnlyPoint === void 0 ? 'all' : _props$allowOnlyPoint,
15912 _props$style = props.style,
15913 style = _props$style === void 0 ? {
15914 border: '0.0625rem solid #9c9c9c',
15915 borderRadius: '0.25rem'
15916 } : _props$style,
15917 _props$svgStyle = props.svgStyle,
15918 svgStyle = _props$svgStyle === void 0 ? {} : _props$svgStyle;
15919 var canvasRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); // Converts mouse coordinates to relative coordinate based on the absolute position of svg
15920
15921 var getCoordinates = function getCoordinates(pointerEvent) {
15922 var _canvasRef$current, _window$scrollX, _window$scrollY;
15923
15924 var boundingArea = (_canvasRef$current = canvasRef.current) == null ? void 0 : _canvasRef$current.getBoundingClientRect();
15925 var scrollLeft = (_window$scrollX = window.scrollX) != null ? _window$scrollX : 0;
15926 var scrollTop = (_window$scrollY = window.scrollY) != null ? _window$scrollY : 0;
15927
15928 if (!boundingArea) {
15929 return {
15930 x: 0,
15931 y: 0
15932 };
15933 }
15934
15935 var point = {
15936 x: pointerEvent.pageX - boundingArea.left - scrollLeft,
15937 y: pointerEvent.pageY - boundingArea.top - scrollTop
15938 };
15939 return point;
15940 };
15941 /* Mouse Handlers - Mouse down, move and up */
15942
15943
15944 var handlePointerDown = function handlePointerDown(event) {
15945 // Allow only chosen pointer type
15946 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15947 return;
15948 }
15949
15950 if (event.pointerType === 'mouse' && event.button !== 0) return;
15951 var point = getCoordinates(event);
15952 onPointerDown(point);
15953 };
15954
15955 var handlePointerMove = function handlePointerMove(event) {
15956 if (!isDrawing) return; // Allow only chosen pointer type
15957
15958 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15959 return;
15960 }
15961
15962 var point = getCoordinates(event);
15963 onPointerMove(point);
15964 };
15965
15966 var handlePointerUp = function handlePointerUp(event) {
15967 if (event.pointerType === 'mouse' && event.button !== 0) return; // Allow only chosen pointer type
15968
15969 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15970 return;
15971 }
15972
15973 onPointerUp();
15974 };
15975 /* Mouse Handlers ends */
15976
15977
15978 react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {
15979 return {
15980 exportImage: function exportImage(imageType) {
15981 return new Promise( /*#__PURE__*/function () {
15982 var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {
15983 var canvas, _getCanvasWithViewBox, svgCanvas, _width, _height, canvasSketch, loadImagePromises, img;
15984
15985 return _regeneratorRuntime.wrap(function _callee$(_context) {
15986 while (1) {
15987 switch (_context.prev = _context.next) {
15988 case 0:
15989 _context.prev = 0;
15990 canvas = canvasRef.current;
15991
15992 if (canvas) {
15993 _context.next = 4;
15994 break;
15995 }
15996
15997 throw Error('Canvas not rendered yet');
15998
15999 case 4:
16000 _getCanvasWithViewBox = getCanvasWithViewBox(canvas), svgCanvas = _getCanvasWithViewBox.svgCanvas, _width = _getCanvasWithViewBox.width, _height = _getCanvasWithViewBox.height;
16001 canvasSketch = "data:image/svg+xml;base64," + btoa(svgCanvas.outerHTML);
16002 _context.next = 8;
16003 return loadImage(canvasSketch);
16004
16005 case 8:
16006 _context.t0 = _context.sent;
16007 loadImagePromises = [_context.t0];
16008
16009 if (!exportWithBackgroundImage) {
16010 _context.next = 21;
16011 break;
16012 }
16013
16014 _context.prev = 11;
16015 _context.next = 14;
16016 return loadImage(backgroundImage);
16017
16018 case 14:
16019 img = _context.sent;
16020 loadImagePromises.push(img);
16021 _context.next = 21;
16022 break;
16023
16024 case 18:
16025 _context.prev = 18;
16026 _context.t1 = _context["catch"](11);
16027 console.warn('exportWithBackgroundImage props is set without a valid background image URL. This option is ignored');
16028
16029 case 21:
16030 Promise.all(loadImagePromises).then(function (images) {
16031 var renderCanvas = document.createElement('canvas');
16032 renderCanvas.setAttribute('width', _width.toString());
16033 renderCanvas.setAttribute('height', _height.toString());
16034 var context = renderCanvas.getContext('2d');
16035
16036 if (!context) {
16037 throw Error('Canvas not rendered yet');
16038 }
16039
16040 images.reverse().forEach(function (image) {
16041 context.drawImage(image, 0, 0);
16042 });
16043 resolve(renderCanvas.toDataURL("image/" + imageType));
16044 })["catch"](function (e) {
16045 throw e;
16046 });
16047 _context.next = 27;
16048 break;
16049
16050 case 24:
16051 _context.prev = 24;
16052 _context.t2 = _context["catch"](0);
16053 reject(_context.t2);
16054
16055 case 27:
16056 case "end":
16057 return _context.stop();
16058 }
16059 }
16060 }, _callee, null, [[0, 24], [11, 18]]);
16061 }));
16062
16063 return function (_x, _x2) {
16064 return _ref.apply(this, arguments);
16065 };
16066 }());
16067 },
16068 exportSvg: function exportSvg() {
16069 return new Promise(function (resolve, reject) {
16070 try {
16071 var _canvasRef$current2;
16072
16073 var canvas = (_canvasRef$current2 = canvasRef.current) != null ? _canvasRef$current2 : null;
16074
16075 if (canvas !== null) {
16076 var _svgCanvas$querySelec, _svgCanvas$querySelec2;
16077
16078 var _getCanvasWithViewBox2 = getCanvasWithViewBox(canvas),
16079 svgCanvas = _getCanvasWithViewBox2.svgCanvas;
16080
16081 if (exportWithBackgroundImage) {
16082 resolve(svgCanvas.outerHTML);
16083 return;
16084 }
16085
16086 (_svgCanvas$querySelec = svgCanvas.querySelector("#" + id + "__background")) == null ? void 0 : _svgCanvas$querySelec.remove();
16087 (_svgCanvas$querySelec2 = svgCanvas.querySelector("#" + id + "__canvas-background")) == null ? void 0 : _svgCanvas$querySelec2.setAttribute('fill', canvasColor);
16088 resolve(svgCanvas.outerHTML);
16089 }
16090
16091 reject(new Error('Canvas not loaded'));
16092 } catch (e) {
16093 reject(e);
16094 }
16095 });
16096 }
16097 };
16098 });
16099 /* Add event listener to Mouse up and Touch up to
16100 release drawing even when point goes out of canvas */
16101
16102 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16103 document.addEventListener('pointerup', handlePointerUp);
16104 return function () {
16105 document.removeEventListener('pointerup', handlePointerUp);
16106 };
16107 }, [handlePointerUp]);
16108 var eraserPaths = paths.filter(function (path) {
16109 return !path.drawMode;
16110 });
16111 var currentGroup = 0;
16112 var pathGroups = paths.reduce(function (arrayGroup, path) {
16113 if (!path.drawMode) {
16114 currentGroup += 1;
16115 return arrayGroup;
16116 }
16117
16118 if (arrayGroup[currentGroup] === undefined) {
16119 arrayGroup[currentGroup] = [];
16120 }
16121
16122 arrayGroup[currentGroup].push(path);
16123 return arrayGroup;
16124 }, [[]]);
16125 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
16126 role: "presentation",
16127 ref: canvasRef,
16128 className: className,
16129 style: _extends({
16130 touchAction: 'none',
16131 width: width,
16132 height: height
16133 }, style),
16134 "touch-action": "none",
16135 onPointerDown: handlePointerDown,
16136 onPointerMove: handlePointerMove,
16137 onPointerUp: handlePointerUp
16138 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", {
16139 version: "1.1",
16140 baseProfile: "full",
16141 xmlns: "http://www.w3.org/2000/svg",
16142 xmlnsXlink: "http://www.w3.org/1999/xlink",
16143 style: _extends({
16144 width: '100%',
16145 height: '100%'
16146 }, svgStyle),
16147 id: id
16148 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16149 id: id + "__eraser-stroke-group",
16150 display: "none"
16151 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
16152 id: id + "__mask-background",
16153 x: "0",
16154 y: "0",
16155 width: "100%",
16156 height: "100%",
16157 fill: "white"
16158 }), eraserPaths.map(function (eraserPath, i) {
16159 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(SvgPath, {
16160 key: id + "__eraser-" + i,
16161 id: id + "__eraser-" + i,
16162 paths: eraserPath.paths,
16163 strokeColor: "#000000",
16164 strokeWidth: eraserPath.strokeWidth
16165 });
16166 })), react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, backgroundImage && react__WEBPACK_IMPORTED_MODULE_0__.createElement("pattern", {
16167 id: id + "__background",
16168 x: "0",
16169 y: "0",
16170 width: "100%",
16171 height: "100%",
16172 patternUnits: "userSpaceOnUse"
16173 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("image", {
16174 x: "0",
16175 y: "0",
16176 width: "100%",
16177 height: "100%",
16178 xlinkHref: backgroundImage,
16179 preserveAspectRatio: preserveBackgroundImageAspectRatio
16180 })), eraserPaths.map(function (_, i) {
16181 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("mask", {
16182 id: id + "__eraser-mask-" + i,
16183 key: id + "__eraser-mask-" + i,
16184 maskUnits: "userSpaceOnUse"
16185 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", {
16186 href: "#" + id + "__mask-background"
16187 }), Array.from({
16188 length: eraserPaths.length - i
16189 }, function (_, j) {
16190 return j + i;
16191 }).map(function (k) {
16192 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", {
16193 key: k.toString(),
16194 href: "#" + id + "__eraser-" + k.toString()
16195 });
16196 }));
16197 })), react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16198 id: id + "__canvas-background-group"
16199 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
16200 id: id + "__canvas-background",
16201 x: "0",
16202 y: "0",
16203 width: "100%",
16204 height: "100%",
16205 fill: backgroundImage ? "url(#" + id + "__background)" : canvasColor
16206 })), pathGroups.map(function (pathGroup, i) {
16207 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16208 id: id + "__stroke-group-" + i,
16209 key: id + "__stroke-group-" + i,
16210 mask: "url(#" + id + "__eraser-mask-" + i + ")"
16211 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement(Paths, {
16212 id: id,
16213 paths: pathGroup
16214 }));
16215 })));
16216 });
16217
16218 var ReactSketchCanvas = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {
16219 var _props$id = props.id,
16220 id = _props$id === void 0 ? 'react-sketch-canvas' : _props$id,
16221 _props$width = props.width,
16222 width = _props$width === void 0 ? '100%' : _props$width,
16223 _props$height = props.height,
16224 height = _props$height === void 0 ? '100%' : _props$height,
16225 _props$className = props.className,
16226 className = _props$className === void 0 ? '' : _props$className,
16227 _props$canvasColor = props.canvasColor,
16228 canvasColor = _props$canvasColor === void 0 ? 'white' : _props$canvasColor,
16229 _props$strokeColor = props.strokeColor,
16230 strokeColor = _props$strokeColor === void 0 ? 'red' : _props$strokeColor,
16231 _props$backgroundImag = props.backgroundImage,
16232 backgroundImage = _props$backgroundImag === void 0 ? '' : _props$backgroundImag,
16233 _props$exportWithBack = props.exportWithBackgroundImage,
16234 exportWithBackgroundImage = _props$exportWithBack === void 0 ? false : _props$exportWithBack,
16235 _props$preserveBackgr = props.preserveBackgroundImageAspectRatio,
16236 preserveBackgroundImageAspectRatio = _props$preserveBackgr === void 0 ? 'none' : _props$preserveBackgr,
16237 _props$strokeWidth = props.strokeWidth,
16238 strokeWidth = _props$strokeWidth === void 0 ? 4 : _props$strokeWidth,
16239 _props$eraserWidth = props.eraserWidth,
16240 eraserWidth = _props$eraserWidth === void 0 ? 8 : _props$eraserWidth,
16241 _props$allowOnlyPoint = props.allowOnlyPointerType,
16242 allowOnlyPointerType = _props$allowOnlyPoint === void 0 ? 'all' : _props$allowOnlyPoint,
16243 _props$style = props.style,
16244 style = _props$style === void 0 ? {
16245 border: '0.0625rem solid #9c9c9c',
16246 borderRadius: '0.25rem'
16247 } : _props$style,
16248 _props$svgStyle = props.svgStyle,
16249 svgStyle = _props$svgStyle === void 0 ? {} : _props$svgStyle,
16250 _props$onChange = props.onChange,
16251 onChange = _props$onChange === void 0 ? function (_paths) {} : _props$onChange,
16252 _props$onStroke = props.onStroke,
16253 onStroke = _props$onStroke === void 0 ? function (_path, _isEraser) {} : _props$onStroke,
16254 _props$withTimestamp = props.withTimestamp,
16255 withTimestamp = _props$withTimestamp === void 0 ? false : _props$withTimestamp;
16256 var svgCanvas = react__WEBPACK_IMPORTED_MODULE_0__.createRef();
16257
16258 var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(true),
16259 drawMode = _React$useState[0],
16260 setDrawMode = _React$useState[1];
16261
16262 var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),
16263 isDrawing = _React$useState2[0],
16264 setIsDrawing = _React$useState2[1];
16265
16266 var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16267 resetStack = _React$useState3[0],
16268 setResetStack = _React$useState3[1];
16269
16270 var _React$useState4 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16271 undoStack = _React$useState4[0],
16272 setUndoStack = _React$useState4[1];
16273
16274 var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16275 currentPaths = _React$useState5[0],
16276 setCurrentPaths = _React$useState5[1];
16277
16278 var liftStrokeUp = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
16279 var _currentPaths$slice$, _currentPaths$slice;
16280
16281 var lastStroke = (_currentPaths$slice$ = (_currentPaths$slice = currentPaths.slice(-1)) == null ? void 0 : _currentPaths$slice[0]) != null ? _currentPaths$slice$ : null;
16282
16283 if (lastStroke === null) {
16284 console.warn('No stroke found!');
16285 return;
16286 }
16287
16288 onStroke(lastStroke, !lastStroke.drawMode);
16289 }, [isDrawing]);
16290 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16291 liftStrokeUp();
16292 }, [isDrawing]);
16293 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16294 onChange(currentPaths);
16295 }, [currentPaths]);
16296 react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {
16297 return {
16298 eraseMode: function eraseMode(erase) {
16299 setDrawMode(!erase);
16300 },
16301 clearCanvas: function clearCanvas() {
16302 setResetStack([].concat(currentPaths));
16303 setCurrentPaths([]);
16304 },
16305 undo: function undo() {
16306 // If there was a last reset then
16307 if (resetStack.length !== 0) {
16308 setCurrentPaths([].concat(resetStack));
16309 setResetStack([]);
16310 return;
16311 }
16312
16313 setUndoStack(function (undoStack) {
16314 return [].concat(undoStack, currentPaths.slice(-1));
16315 });
16316 setCurrentPaths(function (currentPaths) {
16317 return currentPaths.slice(0, -1);
16318 });
16319 },
16320 redo: function redo() {
16321 // Nothing to Redo
16322 if (undoStack.length === 0) return;
16323 setCurrentPaths(function (currentPaths) {
16324 return [].concat(currentPaths, undoStack.slice(-1));
16325 });
16326 setUndoStack(function (undoStack) {
16327 return undoStack.slice(0, -1);
16328 });
16329 },
16330 exportImage: function exportImage(imageType) {
16331 var _svgCanvas$current;
16332
16333 var exportImage = (_svgCanvas$current = svgCanvas.current) == null ? void 0 : _svgCanvas$current.exportImage;
16334
16335 if (!exportImage) {
16336 throw Error('Export function called before canvas loaded');
16337 } else {
16338 return exportImage(imageType);
16339 }
16340 },
16341 exportSvg: function exportSvg() {
16342 return new Promise(function (resolve, reject) {
16343 var _svgCanvas$current2;
16344
16345 var exportSvg = (_svgCanvas$current2 = svgCanvas.current) == null ? void 0 : _svgCanvas$current2.exportSvg;
16346
16347 if (!exportSvg) {
16348 reject(Error('Export function called before canvas loaded'));
16349 } else {
16350 exportSvg().then(function (data) {
16351 resolve(data);
16352 })["catch"](function (e) {
16353 reject(e);
16354 });
16355 }
16356 });
16357 },
16358 exportPaths: function exportPaths() {
16359 return new Promise(function (resolve, reject) {
16360 try {
16361 resolve(currentPaths);
16362 } catch (e) {
16363 reject(e);
16364 }
16365 });
16366 },
16367 loadPaths: function loadPaths(paths) {
16368 setCurrentPaths(function (currentPaths) {
16369 return [].concat(currentPaths, paths);
16370 });
16371 },
16372 getSketchingTime: function getSketchingTime() {
16373 return new Promise(function (resolve, reject) {
16374 if (!withTimestamp) {
16375 reject(new Error("Set 'withTimestamp' prop to get sketching time"));
16376 }
16377
16378 try {
16379 var sketchingTime = currentPaths.reduce(function (totalSketchingTime, path) {
16380 var _path$startTimestamp, _path$endTimestamp;
16381
16382 var startTimestamp = (_path$startTimestamp = path.startTimestamp) != null ? _path$startTimestamp : 0;
16383 var endTimestamp = (_path$endTimestamp = path.endTimestamp) != null ? _path$endTimestamp : 0;
16384 return totalSketchingTime + (endTimestamp - startTimestamp);
16385 }, 0);
16386 resolve(sketchingTime);
16387 } catch (e) {
16388 reject(e);
16389 }
16390 });
16391 },
16392 resetCanvas: function resetCanvas() {
16393 setResetStack([]);
16394 setUndoStack([]);
16395 setCurrentPaths([]);
16396 }
16397 };
16398 });
16399
16400 var handlePointerDown = function handlePointerDown(point) {
16401 setIsDrawing(true);
16402 setUndoStack([]);
16403 var stroke = {
16404 drawMode: drawMode,
16405 strokeColor: drawMode ? strokeColor : '#000000',
16406 strokeWidth: drawMode ? strokeWidth : eraserWidth,
16407 paths: [point]
16408 };
16409
16410 if (withTimestamp) {
16411 stroke = _extends({}, stroke, {
16412 startTimestamp: Date.now(),
16413 endTimestamp: 0
16414 });
16415 }
16416
16417 setCurrentPaths(function (currentPaths) {
16418 return [].concat(currentPaths, [stroke]);
16419 });
16420 };
16421
16422 var handlePointerMove = function handlePointerMove(point) {
16423 if (!isDrawing) return;
16424 var currentStroke = currentPaths.slice(-1)[0];
16425
16426 var updatedStroke = _extends({}, currentStroke, {
16427 paths: [].concat(currentStroke.paths, [point])
16428 });
16429
16430 setCurrentPaths(function (currentPaths) {
16431 return [].concat(currentPaths.slice(0, -1), [updatedStroke]);
16432 });
16433 };
16434
16435 var handlePointerUp = function handlePointerUp() {
16436 var _currentPaths$slice$2, _currentPaths$slice2;
16437
16438 if (!isDrawing) {
16439 return;
16440 }
16441
16442 setIsDrawing(false);
16443
16444 if (!withTimestamp) {
16445 return;
16446 }
16447
16448 var currentStroke = (_currentPaths$slice$2 = (_currentPaths$slice2 = currentPaths.slice(-1)) == null ? void 0 : _currentPaths$slice2[0]) != null ? _currentPaths$slice$2 : null;
16449
16450 if (currentStroke === null) {
16451 return;
16452 }
16453
16454 var updatedStroke = _extends({}, currentStroke, {
16455 endTimestamp: Date.now()
16456 });
16457
16458 setCurrentPaths(function (currentPaths) {
16459 return [].concat(currentPaths.slice(0, -1), [updatedStroke]);
16460 });
16461 };
16462
16463 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Canvas, {
16464 ref: svgCanvas,
16465 id: id,
16466 width: width,
16467 height: height,
16468 className: className,
16469 canvasColor: canvasColor,
16470 backgroundImage: backgroundImage,
16471 exportWithBackgroundImage: exportWithBackgroundImage,
16472 preserveBackgroundImageAspectRatio: preserveBackgroundImageAspectRatio,
16473 allowOnlyPointerType: allowOnlyPointerType,
16474 style: style,
16475 svgStyle: svgStyle,
16476 paths: currentPaths,
16477 isDrawing: isDrawing,
16478 onPointerDown: handlePointerDown,
16479 onPointerMove: handlePointerMove,
16480 onPointerUp: handlePointerUp
16481 });
16482 });
16483
16484
16485 //# sourceMappingURL=react-sketch-canvas.esm.js.map
16486
16487
16488 /***/ }),
16489
16490 /***/ "../node_modules/style-to-object/index.js":
16491 /*!************************************************!*\
16492 !*** ../node_modules/style-to-object/index.js ***!
16493 \************************************************/
16494 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16495
16496 var parse = __webpack_require__(/*! inline-style-parser */ "../node_modules/inline-style-parser/index.js");
16497
16498 /**
16499 * Parses inline style to object.
16500 *
16501 * @example
16502 * // returns { 'line-height': '42' }
16503 * StyleToObject('line-height: 42;');
16504 *
16505 * @param {String} style - The inline style.
16506 * @param {Function} [iterator] - The iterator function.
16507 * @return {null|Object}
16508 */
16509 function StyleToObject(style, iterator) {
16510 var output = null;
16511 if (!style || typeof style !== 'string') {
16512 return output;
16513 }
16514
16515 var declaration;
16516 var declarations = parse(style);
16517 var hasIterator = typeof iterator === 'function';
16518 var property;
16519 var value;
16520
16521 for (var i = 0, len = declarations.length; i < len; i++) {
16522 declaration = declarations[i];
16523 property = declaration.property;
16524 value = declaration.value;
16525
16526 if (hasIterator) {
16527 iterator(property, value, declaration);
16528 } else if (value) {
16529 output || (output = {});
16530 output[property] = value;
16531 }
16532 }
16533
16534 return output;
16535 }
16536
16537 module.exports = StyleToObject;
16538 module.exports["default"] = StyleToObject; // ESM support
16539
16540
16541 /***/ }),
16542
16543 /***/ "react":
16544 /*!************************!*\
16545 !*** external "React" ***!
16546 \************************/
16547 /***/ ((module) => {
16548
16549 "use strict";
16550 module.exports = React;
16551
16552 /***/ }),
16553
16554 /***/ "react-dom":
16555 /*!***************************!*\
16556 !*** external "ReactDOM" ***!
16557 \***************************/
16558 /***/ ((module) => {
16559
16560 "use strict";
16561 module.exports = ReactDOM;
16562
16563 /***/ }),
16564
16565 /***/ "@elementor/icons":
16566 /*!************************************!*\
16567 !*** external "elementorV2.icons" ***!
16568 \************************************/
16569 /***/ ((module) => {
16570
16571 "use strict";
16572 module.exports = elementorV2.icons;
16573
16574 /***/ }),
16575
16576 /***/ "@elementor/ui":
16577 /*!*********************************!*\
16578 !*** external "elementorV2.ui" ***!
16579 \*********************************/
16580 /***/ ((module) => {
16581
16582 "use strict";
16583 module.exports = elementorV2.ui;
16584
16585 /***/ }),
16586
16587 /***/ "@wordpress/i18n":
16588 /*!**************************!*\
16589 !*** external "wp.i18n" ***!
16590 \**************************/
16591 /***/ ((module) => {
16592
16593 "use strict";
16594 module.exports = wp.i18n;
16595
16596 /***/ }),
16597
16598 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
16599 /*!******************************************************************!*\
16600 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
16601 \******************************************************************/
16602 /***/ ((module) => {
16603
16604 function _arrayLikeToArray(arr, len) {
16605 if (len == null || len > arr.length) len = arr.length;
16606 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
16607 return arr2;
16608 }
16609 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
16610
16611 /***/ }),
16612
16613 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
16614 /*!****************************************************************!*\
16615 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
16616 \****************************************************************/
16617 /***/ ((module) => {
16618
16619 function _arrayWithHoles(arr) {
16620 if (Array.isArray(arr)) return arr;
16621 }
16622 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
16623
16624 /***/ }),
16625
16626 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
16627 /*!*******************************************************************!*\
16628 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
16629 \*******************************************************************/
16630 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16631
16632 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
16633 function _arrayWithoutHoles(arr) {
16634 if (Array.isArray(arr)) return arrayLikeToArray(arr);
16635 }
16636 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
16637
16638 /***/ }),
16639
16640 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
16641 /*!******************************************************************!*\
16642 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
16643 \******************************************************************/
16644 /***/ ((module) => {
16645
16646 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
16647 try {
16648 var info = gen[key](arg);
16649 var value = info.value;
16650 } catch (error) {
16651 reject(error);
16652 return;
16653 }
16654 if (info.done) {
16655 resolve(value);
16656 } else {
16657 Promise.resolve(value).then(_next, _throw);
16658 }
16659 }
16660 function _asyncToGenerator(fn) {
16661 return function () {
16662 var self = this,
16663 args = arguments;
16664 return new Promise(function (resolve, reject) {
16665 var gen = fn.apply(self, args);
16666 function _next(value) {
16667 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
16668 }
16669 function _throw(err) {
16670 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
16671 }
16672 _next(undefined);
16673 });
16674 };
16675 }
16676 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
16677
16678 /***/ }),
16679
16680 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
16681 /*!****************************************************************!*\
16682 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
16683 \****************************************************************/
16684 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16685
16686 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
16687 function _defineProperty(obj, key, value) {
16688 key = toPropertyKey(key);
16689 if (key in obj) {
16690 Object.defineProperty(obj, key, {
16691 value: value,
16692 enumerable: true,
16693 configurable: true,
16694 writable: true
16695 });
16696 } else {
16697 obj[key] = value;
16698 }
16699 return obj;
16700 }
16701 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
16702
16703 /***/ }),
16704
16705 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
16706 /*!*********************************************************!*\
16707 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
16708 \*********************************************************/
16709 /***/ ((module) => {
16710
16711 function _extends() {
16712 module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
16713 for (var i = 1; i < arguments.length; i++) {
16714 var source = arguments[i];
16715 for (var key in source) {
16716 if (Object.prototype.hasOwnProperty.call(source, key)) {
16717 target[key] = source[key];
16718 }
16719 }
16720 }
16721 return target;
16722 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
16723 return _extends.apply(this, arguments);
16724 }
16725 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
16726
16727 /***/ }),
16728
16729 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
16730 /*!***********************************************************************!*\
16731 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
16732 \***********************************************************************/
16733 /***/ ((module) => {
16734
16735 function _interopRequireDefault(obj) {
16736 return obj && obj.__esModule ? obj : {
16737 "default": obj
16738 };
16739 }
16740 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
16741
16742 /***/ }),
16743
16744 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
16745 /*!*****************************************************************!*\
16746 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
16747 \*****************************************************************/
16748 /***/ ((module) => {
16749
16750 function _iterableToArray(iter) {
16751 if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
16752 }
16753 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
16754
16755 /***/ }),
16756
16757 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
16758 /*!**********************************************************************!*\
16759 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
16760 \**********************************************************************/
16761 /***/ ((module) => {
16762
16763 function _iterableToArrayLimit(r, l) {
16764 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
16765 if (null != t) {
16766 var e,
16767 n,
16768 i,
16769 u,
16770 a = [],
16771 f = !0,
16772 o = !1;
16773 try {
16774 if (i = (t = t.call(r)).next, 0 === l) {
16775 if (Object(t) !== t) return;
16776 f = !1;
16777 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
16778 } catch (r) {
16779 o = !0, n = r;
16780 } finally {
16781 try {
16782 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
16783 } finally {
16784 if (o) throw n;
16785 }
16786 }
16787 return a;
16788 }
16789 }
16790 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
16791
16792 /***/ }),
16793
16794 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
16795 /*!*****************************************************************!*\
16796 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
16797 \*****************************************************************/
16798 /***/ ((module) => {
16799
16800 function _nonIterableRest() {
16801 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16802 }
16803 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
16804
16805 /***/ }),
16806
16807 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
16808 /*!*******************************************************************!*\
16809 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
16810 \*******************************************************************/
16811 /***/ ((module) => {
16812
16813 function _nonIterableSpread() {
16814 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16815 }
16816 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
16817
16818 /***/ }),
16819
16820 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
16821 /*!*************************************************************************!*\
16822 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
16823 \*************************************************************************/
16824 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16825
16826 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
16827 function _objectWithoutProperties(source, excluded) {
16828 if (source == null) return {};
16829 var target = objectWithoutPropertiesLoose(source, excluded);
16830 var key, i;
16831 if (Object.getOwnPropertySymbols) {
16832 var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
16833 for (i = 0; i < sourceSymbolKeys.length; i++) {
16834 key = sourceSymbolKeys[i];
16835 if (excluded.indexOf(key) >= 0) continue;
16836 if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
16837 target[key] = source[key];
16838 }
16839 }
16840 return target;
16841 }
16842 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
16843
16844 /***/ }),
16845
16846 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
16847 /*!******************************************************************************!*\
16848 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
16849 \******************************************************************************/
16850 /***/ ((module) => {
16851
16852 function _objectWithoutPropertiesLoose(source, excluded) {
16853 if (source == null) return {};
16854 var target = {};
16855 var sourceKeys = Object.keys(source);
16856 var key, i;
16857 for (i = 0; i < sourceKeys.length; i++) {
16858 key = sourceKeys[i];
16859 if (excluded.indexOf(key) >= 0) continue;
16860 target[key] = source[key];
16861 }
16862 return target;
16863 }
16864 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
16865
16866 /***/ }),
16867
16868 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
16869 /*!********************************************************************!*\
16870 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
16871 \********************************************************************/
16872 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16873
16874 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
16875 function _regeneratorRuntime() {
16876 "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
16877 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
16878 return e;
16879 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
16880 var t,
16881 e = {},
16882 r = Object.prototype,
16883 n = r.hasOwnProperty,
16884 o = Object.defineProperty || function (t, e, r) {
16885 t[e] = r.value;
16886 },
16887 i = "function" == typeof Symbol ? Symbol : {},
16888 a = i.iterator || "@@iterator",
16889 c = i.asyncIterator || "@@asyncIterator",
16890 u = i.toStringTag || "@@toStringTag";
16891 function define(t, e, r) {
16892 return Object.defineProperty(t, e, {
16893 value: r,
16894 enumerable: !0,
16895 configurable: !0,
16896 writable: !0
16897 }), t[e];
16898 }
16899 try {
16900 define({}, "");
16901 } catch (t) {
16902 define = function define(t, e, r) {
16903 return t[e] = r;
16904 };
16905 }
16906 function wrap(t, e, r, n) {
16907 var i = e && e.prototype instanceof Generator ? e : Generator,
16908 a = Object.create(i.prototype),
16909 c = new Context(n || []);
16910 return o(a, "_invoke", {
16911 value: makeInvokeMethod(t, r, c)
16912 }), a;
16913 }
16914 function tryCatch(t, e, r) {
16915 try {
16916 return {
16917 type: "normal",
16918 arg: t.call(e, r)
16919 };
16920 } catch (t) {
16921 return {
16922 type: "throw",
16923 arg: t
16924 };
16925 }
16926 }
16927 e.wrap = wrap;
16928 var h = "suspendedStart",
16929 l = "suspendedYield",
16930 f = "executing",
16931 s = "completed",
16932 y = {};
16933 function Generator() {}
16934 function GeneratorFunction() {}
16935 function GeneratorFunctionPrototype() {}
16936 var p = {};
16937 define(p, a, function () {
16938 return this;
16939 });
16940 var d = Object.getPrototypeOf,
16941 v = d && d(d(values([])));
16942 v && v !== r && n.call(v, a) && (p = v);
16943 var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
16944 function defineIteratorMethods(t) {
16945 ["next", "throw", "return"].forEach(function (e) {
16946 define(t, e, function (t) {
16947 return this._invoke(e, t);
16948 });
16949 });
16950 }
16951 function AsyncIterator(t, e) {
16952 function invoke(r, o, i, a) {
16953 var c = tryCatch(t[r], t, o);
16954 if ("throw" !== c.type) {
16955 var u = c.arg,
16956 h = u.value;
16957 return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
16958 invoke("next", t, i, a);
16959 }, function (t) {
16960 invoke("throw", t, i, a);
16961 }) : e.resolve(h).then(function (t) {
16962 u.value = t, i(u);
16963 }, function (t) {
16964 return invoke("throw", t, i, a);
16965 });
16966 }
16967 a(c.arg);
16968 }
16969 var r;
16970 o(this, "_invoke", {
16971 value: function value(t, n) {
16972 function callInvokeWithMethodAndArg() {
16973 return new e(function (e, r) {
16974 invoke(t, n, e, r);
16975 });
16976 }
16977 return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
16978 }
16979 });
16980 }
16981 function makeInvokeMethod(e, r, n) {
16982 var o = h;
16983 return function (i, a) {
16984 if (o === f) throw new Error("Generator is already running");
16985 if (o === s) {
16986 if ("throw" === i) throw a;
16987 return {
16988 value: t,
16989 done: !0
16990 };
16991 }
16992 for (n.method = i, n.arg = a;;) {
16993 var c = n.delegate;
16994 if (c) {
16995 var u = maybeInvokeDelegate(c, n);
16996 if (u) {
16997 if (u === y) continue;
16998 return u;
16999 }
17000 }
17001 if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
17002 if (o === h) throw o = s, n.arg;
17003 n.dispatchException(n.arg);
17004 } else "return" === n.method && n.abrupt("return", n.arg);
17005 o = f;
17006 var p = tryCatch(e, r, n);
17007 if ("normal" === p.type) {
17008 if (o = n.done ? s : l, p.arg === y) continue;
17009 return {
17010 value: p.arg,
17011 done: n.done
17012 };
17013 }
17014 "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
17015 }
17016 };
17017 }
17018 function maybeInvokeDelegate(e, r) {
17019 var n = r.method,
17020 o = e.iterator[n];
17021 if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
17022 var i = tryCatch(o, e.iterator, r.arg);
17023 if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
17024 var a = i.arg;
17025 return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
17026 }
17027 function pushTryEntry(t) {
17028 var e = {
17029 tryLoc: t[0]
17030 };
17031 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
17032 }
17033 function resetTryEntry(t) {
17034 var e = t.completion || {};
17035 e.type = "normal", delete e.arg, t.completion = e;
17036 }
17037 function Context(t) {
17038 this.tryEntries = [{
17039 tryLoc: "root"
17040 }], t.forEach(pushTryEntry, this), this.reset(!0);
17041 }
17042 function values(e) {
17043 if (e || "" === e) {
17044 var r = e[a];
17045 if (r) return r.call(e);
17046 if ("function" == typeof e.next) return e;
17047 if (!isNaN(e.length)) {
17048 var o = -1,
17049 i = function next() {
17050 for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
17051 return next.value = t, next.done = !0, next;
17052 };
17053 return i.next = i;
17054 }
17055 }
17056 throw new TypeError(_typeof(e) + " is not iterable");
17057 }
17058 return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
17059 value: GeneratorFunctionPrototype,
17060 configurable: !0
17061 }), o(GeneratorFunctionPrototype, "constructor", {
17062 value: GeneratorFunction,
17063 configurable: !0
17064 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
17065 var e = "function" == typeof t && t.constructor;
17066 return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
17067 }, e.mark = function (t) {
17068 return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
17069 }, e.awrap = function (t) {
17070 return {
17071 __await: t
17072 };
17073 }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
17074 return this;
17075 }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
17076 void 0 === i && (i = Promise);
17077 var a = new AsyncIterator(wrap(t, r, n, o), i);
17078 return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
17079 return t.done ? t.value : a.next();
17080 });
17081 }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
17082 return this;
17083 }), define(g, "toString", function () {
17084 return "[object Generator]";
17085 }), e.keys = function (t) {
17086 var e = Object(t),
17087 r = [];
17088 for (var n in e) r.push(n);
17089 return r.reverse(), function next() {
17090 for (; r.length;) {
17091 var t = r.pop();
17092 if (t in e) return next.value = t, next.done = !1, next;
17093 }
17094 return next.done = !0, next;
17095 };
17096 }, e.values = values, Context.prototype = {
17097 constructor: Context,
17098 reset: function reset(e) {
17099 if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
17100 },
17101 stop: function stop() {
17102 this.done = !0;
17103 var t = this.tryEntries[0].completion;
17104 if ("throw" === t.type) throw t.arg;
17105 return this.rval;
17106 },
17107 dispatchException: function dispatchException(e) {
17108 if (this.done) throw e;
17109 var r = this;
17110 function handle(n, o) {
17111 return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
17112 }
17113 for (var o = this.tryEntries.length - 1; o >= 0; --o) {
17114 var i = this.tryEntries[o],
17115 a = i.completion;
17116 if ("root" === i.tryLoc) return handle("end");
17117 if (i.tryLoc <= this.prev) {
17118 var c = n.call(i, "catchLoc"),
17119 u = n.call(i, "finallyLoc");
17120 if (c && u) {
17121 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
17122 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
17123 } else if (c) {
17124 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
17125 } else {
17126 if (!u) throw new Error("try statement without catch or finally");
17127 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
17128 }
17129 }
17130 }
17131 },
17132 abrupt: function abrupt(t, e) {
17133 for (var r = this.tryEntries.length - 1; r >= 0; --r) {
17134 var o = this.tryEntries[r];
17135 if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
17136 var i = o;
17137 break;
17138 }
17139 }
17140 i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
17141 var a = i ? i.completion : {};
17142 return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
17143 },
17144 complete: function complete(t, e) {
17145 if ("throw" === t.type) throw t.arg;
17146 return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
17147 },
17148 finish: function finish(t) {
17149 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
17150 var r = this.tryEntries[e];
17151 if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
17152 }
17153 },
17154 "catch": function _catch(t) {
17155 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
17156 var r = this.tryEntries[e];
17157 if (r.tryLoc === t) {
17158 var n = r.completion;
17159 if ("throw" === n.type) {
17160 var o = n.arg;
17161 resetTryEntry(r);
17162 }
17163 return o;
17164 }
17165 }
17166 throw new Error("illegal catch attempt");
17167 },
17168 delegateYield: function delegateYield(e, r, n) {
17169 return this.delegate = {
17170 iterator: values(e),
17171 resultName: r,
17172 nextLoc: n
17173 }, "next" === this.method && (this.arg = t), y;
17174 }
17175 }, e;
17176 }
17177 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
17178
17179 /***/ }),
17180
17181 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
17182 /*!***************************************************************!*\
17183 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
17184 \***************************************************************/
17185 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17186
17187 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
17188 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
17189 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
17190 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
17191 function _slicedToArray(arr, i) {
17192 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
17193 }
17194 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17195
17196 /***/ }),
17197
17198 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
17199 /*!***********************************************************************!*\
17200 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
17201 \***********************************************************************/
17202 /***/ ((module) => {
17203
17204 function _taggedTemplateLiteral(strings, raw) {
17205 if (!raw) {
17206 raw = strings.slice(0);
17207 }
17208 return Object.freeze(Object.defineProperties(strings, {
17209 raw: {
17210 value: Object.freeze(raw)
17211 }
17212 }));
17213 }
17214 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
17215
17216 /***/ }),
17217
17218 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
17219 /*!*******************************************************************!*\
17220 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
17221 \*******************************************************************/
17222 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17223
17224 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
17225 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
17226 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
17227 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
17228 function _toConsumableArray(arr) {
17229 return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
17230 }
17231 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17232
17233 /***/ }),
17234
17235 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
17236 /*!*************************************************************!*\
17237 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
17238 \*************************************************************/
17239 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17240
17241 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17242 function _toPrimitive(input, hint) {
17243 if (_typeof(input) !== "object" || input === null) return input;
17244 var prim = input[Symbol.toPrimitive];
17245 if (prim !== undefined) {
17246 var res = prim.call(input, hint || "default");
17247 if (_typeof(res) !== "object") return res;
17248 throw new TypeError("@@toPrimitive must return a primitive value.");
17249 }
17250 return (hint === "string" ? String : Number)(input);
17251 }
17252 module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
17253
17254 /***/ }),
17255
17256 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
17257 /*!***************************************************************!*\
17258 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
17259 \***************************************************************/
17260 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17261
17262 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17263 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
17264 function _toPropertyKey(arg) {
17265 var key = toPrimitive(arg, "string");
17266 return _typeof(key) === "symbol" ? key : String(key);
17267 }
17268 module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
17269
17270 /***/ }),
17271
17272 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
17273 /*!********************************************************!*\
17274 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
17275 \********************************************************/
17276 /***/ ((module) => {
17277
17278 function _typeof(o) {
17279 "@babel/helpers - typeof";
17280
17281 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
17282 return typeof o;
17283 } : function (o) {
17284 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
17285 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);
17286 }
17287 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
17288
17289 /***/ }),
17290
17291 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
17292 /*!****************************************************************************!*\
17293 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
17294 \****************************************************************************/
17295 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17296
17297 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
17298 function _unsupportedIterableToArray(o, minLen) {
17299 if (!o) return;
17300 if (typeof o === "string") return arrayLikeToArray(o, minLen);
17301 var n = Object.prototype.toString.call(o).slice(8, -1);
17302 if (n === "Object" && o.constructor) n = o.constructor.name;
17303 if (n === "Map" || n === "Set") return Array.from(o);
17304 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
17305 }
17306 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17307
17308 /***/ }),
17309
17310 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
17311 /*!***********************************************************!*\
17312 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
17313 \***********************************************************/
17314 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17315
17316 // TODO(Babel 8): Remove this file.
17317
17318 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
17319 module.exports = runtime;
17320
17321 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
17322 try {
17323 regeneratorRuntime = runtime;
17324 } catch (accidentalStrictMode) {
17325 if (typeof globalThis === "object") {
17326 globalThis.regeneratorRuntime = runtime;
17327 } else {
17328 Function("r", "regeneratorRuntime = r")(runtime);
17329 }
17330 }
17331
17332
17333 /***/ }),
17334
17335 /***/ "../node_modules/bail/index.js":
17336 /*!*************************************!*\
17337 !*** ../node_modules/bail/index.js ***!
17338 \*************************************/
17339 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17340
17341 "use strict";
17342 __webpack_require__.r(__webpack_exports__);
17343 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17344 /* harmony export */ bail: () => (/* binding */ bail)
17345 /* harmony export */ });
17346 /**
17347 * Throw a given error.
17348 *
17349 * @param {Error|null|undefined} [error]
17350 * Maybe error.
17351 * @returns {asserts error is null|undefined}
17352 */
17353 function bail(error) {
17354 if (error) {
17355 throw error
17356 }
17357 }
17358
17359
17360 /***/ }),
17361
17362 /***/ "../node_modules/comma-separated-tokens/index.js":
17363 /*!*******************************************************!*\
17364 !*** ../node_modules/comma-separated-tokens/index.js ***!
17365 \*******************************************************/
17366 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17367
17368 "use strict";
17369 __webpack_require__.r(__webpack_exports__);
17370 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17371 /* harmony export */ parse: () => (/* binding */ parse),
17372 /* harmony export */ stringify: () => (/* binding */ stringify)
17373 /* harmony export */ });
17374 /**
17375 * @typedef Options
17376 * Configuration for `stringify`.
17377 * @property {boolean} [padLeft=true]
17378 * Whether to pad a space before a token.
17379 * @property {boolean} [padRight=false]
17380 * Whether to pad a space after a token.
17381 */
17382
17383 /**
17384 * @typedef {Options} StringifyOptions
17385 * Please use `StringifyOptions` instead.
17386 */
17387
17388 /**
17389 * Parse comma-separated tokens to an array.
17390 *
17391 * @param {string} value
17392 * Comma-separated tokens.
17393 * @returns {Array<string>}
17394 * List of tokens.
17395 */
17396 function parse(value) {
17397 /** @type {Array<string>} */
17398 const tokens = []
17399 const input = String(value || '')
17400 let index = input.indexOf(',')
17401 let start = 0
17402 /** @type {boolean} */
17403 let end = false
17404
17405 while (!end) {
17406 if (index === -1) {
17407 index = input.length
17408 end = true
17409 }
17410
17411 const token = input.slice(start, index).trim()
17412
17413 if (token || !end) {
17414 tokens.push(token)
17415 }
17416
17417 start = index + 1
17418 index = input.indexOf(',', start)
17419 }
17420
17421 return tokens
17422 }
17423
17424 /**
17425 * Serialize an array of strings or numbers to comma-separated tokens.
17426 *
17427 * @param {Array<string|number>} values
17428 * List of tokens.
17429 * @param {Options} [options]
17430 * Configuration for `stringify` (optional).
17431 * @returns {string}
17432 * Comma-separated tokens.
17433 */
17434 function stringify(values, options) {
17435 const settings = options || {}
17436
17437 // Ensure the last empty entry is seen.
17438 const input = values[values.length - 1] === '' ? [...values, ''] : values
17439
17440 return input
17441 .join(
17442 (settings.padRight ? ' ' : '') +
17443 ',' +
17444 (settings.padLeft === false ? '' : ' ')
17445 )
17446 .trim()
17447 }
17448
17449
17450 /***/ }),
17451
17452 /***/ "../node_modules/decode-named-character-reference/index.dom.js":
17453 /*!*********************************************************************!*\
17454 !*** ../node_modules/decode-named-character-reference/index.dom.js ***!
17455 \*********************************************************************/
17456 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17457
17458 "use strict";
17459 __webpack_require__.r(__webpack_exports__);
17460 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17461 /* harmony export */ decodeNamedCharacterReference: () => (/* binding */ decodeNamedCharacterReference)
17462 /* harmony export */ });
17463 /// <reference lib="dom" />
17464
17465 /* eslint-env browser */
17466
17467 const element = document.createElement('i')
17468
17469 /**
17470 * @param {string} value
17471 * @returns {string|false}
17472 */
17473 function decodeNamedCharacterReference(value) {
17474 const characterReference = '&' + value + ';'
17475 element.innerHTML = characterReference
17476 const char = element.textContent
17477
17478 // Some named character references do not require the closing semicolon
17479 // (`&not`, for instance), which leads to situations where parsing the assumed
17480 // named reference of `&notit;` will result in the string `¬it;`.
17481 // When we encounter a trailing semicolon after parsing, and the character
17482 // reference to decode was not a semicolon (`&semi;`), we can assume that the
17483 // matching was not complete.
17484 // @ts-expect-error: TypeScript is wrong that `textContent` on elements can
17485 // yield `null`.
17486 if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {
17487 return false
17488 }
17489
17490 // If the decoded string is equal to the input, the character reference was
17491 // not valid.
17492 // @ts-expect-error: TypeScript is wrong that `textContent` on elements can
17493 // yield `null`.
17494 return char === characterReference ? false : char
17495 }
17496
17497
17498 /***/ }),
17499
17500 /***/ "../node_modules/dequal/dist/index.mjs":
17501 /*!*********************************************!*\
17502 !*** ../node_modules/dequal/dist/index.mjs ***!
17503 \*********************************************/
17504 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17505
17506 "use strict";
17507 __webpack_require__.r(__webpack_exports__);
17508 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17509 /* harmony export */ dequal: () => (/* binding */ dequal)
17510 /* harmony export */ });
17511 var has = Object.prototype.hasOwnProperty;
17512
17513 function find(iter, tar, key) {
17514 for (key of iter.keys()) {
17515 if (dequal(key, tar)) return key;
17516 }
17517 }
17518
17519 function dequal(foo, bar) {
17520 var ctor, len, tmp;
17521 if (foo === bar) return true;
17522
17523 if (foo && bar && (ctor=foo.constructor) === bar.constructor) {
17524 if (ctor === Date) return foo.getTime() === bar.getTime();
17525 if (ctor === RegExp) return foo.toString() === bar.toString();
17526
17527 if (ctor === Array) {
17528 if ((len=foo.length) === bar.length) {
17529 while (len-- && dequal(foo[len], bar[len]));
17530 }
17531 return len === -1;
17532 }
17533
17534 if (ctor === Set) {
17535 if (foo.size !== bar.size) {
17536 return false;
17537 }
17538 for (len of foo) {
17539 tmp = len;
17540 if (tmp && typeof tmp === 'object') {
17541 tmp = find(bar, tmp);
17542 if (!tmp) return false;
17543 }
17544 if (!bar.has(tmp)) return false;
17545 }
17546 return true;
17547 }
17548
17549 if (ctor === Map) {
17550 if (foo.size !== bar.size) {
17551 return false;
17552 }
17553 for (len of foo) {
17554 tmp = len[0];
17555 if (tmp && typeof tmp === 'object') {
17556 tmp = find(bar, tmp);
17557 if (!tmp) return false;
17558 }
17559 if (!dequal(len[1], bar.get(tmp))) {
17560 return false;
17561 }
17562 }
17563 return true;
17564 }
17565
17566 if (ctor === ArrayBuffer) {
17567 foo = new Uint8Array(foo);
17568 bar = new Uint8Array(bar);
17569 } else if (ctor === DataView) {
17570 if ((len=foo.byteLength) === bar.byteLength) {
17571 while (len-- && foo.getInt8(len) === bar.getInt8(len));
17572 }
17573 return len === -1;
17574 }
17575
17576 if (ArrayBuffer.isView(foo)) {
17577 if ((len=foo.byteLength) === bar.byteLength) {
17578 while (len-- && foo[len] === bar[len]);
17579 }
17580 return len === -1;
17581 }
17582
17583 if (!ctor || typeof foo === 'object') {
17584 len = 0;
17585 for (ctor in foo) {
17586 if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
17587 if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
17588 }
17589 return Object.keys(bar).length === len;
17590 }
17591 }
17592
17593 return foo !== foo && bar !== bar;
17594 }
17595
17596
17597 /***/ }),
17598
17599 /***/ "../node_modules/diff/lib/index.mjs":
17600 /*!******************************************!*\
17601 !*** ../node_modules/diff/lib/index.mjs ***!
17602 \******************************************/
17603 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17604
17605 "use strict";
17606 __webpack_require__.r(__webpack_exports__);
17607 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17608 /* harmony export */ Diff: () => (/* binding */ Diff),
17609 /* harmony export */ applyPatch: () => (/* binding */ applyPatch),
17610 /* harmony export */ applyPatches: () => (/* binding */ applyPatches),
17611 /* harmony export */ canonicalize: () => (/* binding */ canonicalize),
17612 /* harmony export */ convertChangesToDMP: () => (/* binding */ convertChangesToDMP),
17613 /* harmony export */ convertChangesToXML: () => (/* binding */ convertChangesToXML),
17614 /* harmony export */ createPatch: () => (/* binding */ createPatch),
17615 /* harmony export */ createTwoFilesPatch: () => (/* binding */ createTwoFilesPatch),
17616 /* harmony export */ diffArrays: () => (/* binding */ diffArrays),
17617 /* harmony export */ diffChars: () => (/* binding */ diffChars),
17618 /* harmony export */ diffCss: () => (/* binding */ diffCss),
17619 /* harmony export */ diffJson: () => (/* binding */ diffJson),
17620 /* harmony export */ diffLines: () => (/* binding */ diffLines),
17621 /* harmony export */ diffSentences: () => (/* binding */ diffSentences),
17622 /* harmony export */ diffTrimmedLines: () => (/* binding */ diffTrimmedLines),
17623 /* harmony export */ diffWords: () => (/* binding */ diffWords),
17624 /* harmony export */ diffWordsWithSpace: () => (/* binding */ diffWordsWithSpace),
17625 /* harmony export */ merge: () => (/* binding */ merge),
17626 /* harmony export */ parsePatch: () => (/* binding */ parsePatch),
17627 /* harmony export */ structuredPatch: () => (/* binding */ structuredPatch)
17628 /* harmony export */ });
17629 function Diff() {}
17630 Diff.prototype = {
17631 diff: function diff(oldString, newString) {
17632 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
17633 var callback = options.callback;
17634
17635 if (typeof options === 'function') {
17636 callback = options;
17637 options = {};
17638 }
17639
17640 this.options = options;
17641 var self = this;
17642
17643 function done(value) {
17644 if (callback) {
17645 setTimeout(function () {
17646 callback(undefined, value);
17647 }, 0);
17648 return true;
17649 } else {
17650 return value;
17651 }
17652 } // Allow subclasses to massage the input prior to running
17653
17654
17655 oldString = this.castInput(oldString);
17656 newString = this.castInput(newString);
17657 oldString = this.removeEmpty(this.tokenize(oldString));
17658 newString = this.removeEmpty(this.tokenize(newString));
17659 var newLen = newString.length,
17660 oldLen = oldString.length;
17661 var editLength = 1;
17662 var maxEditLength = newLen + oldLen;
17663
17664 if (options.maxEditLength) {
17665 maxEditLength = Math.min(maxEditLength, options.maxEditLength);
17666 }
17667
17668 var bestPath = [{
17669 newPos: -1,
17670 components: []
17671 }]; // Seed editLength = 0, i.e. the content starts with the same values
17672
17673 var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
17674
17675 if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
17676 // Identity per the equality and tokenizer
17677 return done([{
17678 value: this.join(newString),
17679 count: newString.length
17680 }]);
17681 } // Main worker method. checks all permutations of a given edit length for acceptance.
17682
17683
17684 function execEditLength() {
17685 for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
17686 var basePath = void 0;
17687
17688 var addPath = bestPath[diagonalPath - 1],
17689 removePath = bestPath[diagonalPath + 1],
17690 _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
17691
17692 if (addPath) {
17693 // No one else is going to attempt to use this value, clear it
17694 bestPath[diagonalPath - 1] = undefined;
17695 }
17696
17697 var canAdd = addPath && addPath.newPos + 1 < newLen,
17698 canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
17699
17700 if (!canAdd && !canRemove) {
17701 // If this path is a terminal then prune
17702 bestPath[diagonalPath] = undefined;
17703 continue;
17704 } // Select the diagonal that we want to branch from. We select the prior
17705 // path whose position in the new string is the farthest from the origin
17706 // and does not pass the bounds of the diff graph
17707
17708
17709 if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
17710 basePath = clonePath(removePath);
17711 self.pushComponent(basePath.components, undefined, true);
17712 } else {
17713 basePath = addPath; // No need to clone, we've pulled it from the list
17714
17715 basePath.newPos++;
17716 self.pushComponent(basePath.components, true, undefined);
17717 }
17718
17719 _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done
17720
17721 if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
17722 return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
17723 } else {
17724 // Otherwise track this path as a potential candidate and continue.
17725 bestPath[diagonalPath] = basePath;
17726 }
17727 }
17728
17729 editLength++;
17730 } // Performs the length of edit iteration. Is a bit fugly as this has to support the
17731 // sync and async mode which is never fun. Loops over execEditLength until a value
17732 // is produced, or until the edit length exceeds options.maxEditLength (if given),
17733 // in which case it will return undefined.
17734
17735
17736 if (callback) {
17737 (function exec() {
17738 setTimeout(function () {
17739 if (editLength > maxEditLength) {
17740 return callback();
17741 }
17742
17743 if (!execEditLength()) {
17744 exec();
17745 }
17746 }, 0);
17747 })();
17748 } else {
17749 while (editLength <= maxEditLength) {
17750 var ret = execEditLength();
17751
17752 if (ret) {
17753 return ret;
17754 }
17755 }
17756 }
17757 },
17758 pushComponent: function pushComponent(components, added, removed) {
17759 var last = components[components.length - 1];
17760
17761 if (last && last.added === added && last.removed === removed) {
17762 // We need to clone here as the component clone operation is just
17763 // as shallow array clone
17764 components[components.length - 1] = {
17765 count: last.count + 1,
17766 added: added,
17767 removed: removed
17768 };
17769 } else {
17770 components.push({
17771 count: 1,
17772 added: added,
17773 removed: removed
17774 });
17775 }
17776 },
17777 extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
17778 var newLen = newString.length,
17779 oldLen = oldString.length,
17780 newPos = basePath.newPos,
17781 oldPos = newPos - diagonalPath,
17782 commonCount = 0;
17783
17784 while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
17785 newPos++;
17786 oldPos++;
17787 commonCount++;
17788 }
17789
17790 if (commonCount) {
17791 basePath.components.push({
17792 count: commonCount
17793 });
17794 }
17795
17796 basePath.newPos = newPos;
17797 return oldPos;
17798 },
17799 equals: function equals(left, right) {
17800 if (this.options.comparator) {
17801 return this.options.comparator(left, right);
17802 } else {
17803 return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
17804 }
17805 },
17806 removeEmpty: function removeEmpty(array) {
17807 var ret = [];
17808
17809 for (var i = 0; i < array.length; i++) {
17810 if (array[i]) {
17811 ret.push(array[i]);
17812 }
17813 }
17814
17815 return ret;
17816 },
17817 castInput: function castInput(value) {
17818 return value;
17819 },
17820 tokenize: function tokenize(value) {
17821 return value.split('');
17822 },
17823 join: function join(chars) {
17824 return chars.join('');
17825 }
17826 };
17827
17828 function buildValues(diff, components, newString, oldString, useLongestToken) {
17829 var componentPos = 0,
17830 componentLen = components.length,
17831 newPos = 0,
17832 oldPos = 0;
17833
17834 for (; componentPos < componentLen; componentPos++) {
17835 var component = components[componentPos];
17836
17837 if (!component.removed) {
17838 if (!component.added && useLongestToken) {
17839 var value = newString.slice(newPos, newPos + component.count);
17840 value = value.map(function (value, i) {
17841 var oldValue = oldString[oldPos + i];
17842 return oldValue.length > value.length ? oldValue : value;
17843 });
17844 component.value = diff.join(value);
17845 } else {
17846 component.value = diff.join(newString.slice(newPos, newPos + component.count));
17847 }
17848
17849 newPos += component.count; // Common case
17850
17851 if (!component.added) {
17852 oldPos += component.count;
17853 }
17854 } else {
17855 component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
17856 oldPos += component.count; // Reverse add and remove so removes are output first to match common convention
17857 // The diffing algorithm is tied to add then remove output and this is the simplest
17858 // route to get the desired output with minimal overhead.
17859
17860 if (componentPos && components[componentPos - 1].added) {
17861 var tmp = components[componentPos - 1];
17862 components[componentPos - 1] = components[componentPos];
17863 components[componentPos] = tmp;
17864 }
17865 }
17866 } // Special case handle for when one terminal is ignored (i.e. whitespace).
17867 // For this case we merge the terminal into the prior string and drop the change.
17868 // This is only available for string mode.
17869
17870
17871 var lastComponent = components[componentLen - 1];
17872
17873 if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
17874 components[componentLen - 2].value += lastComponent.value;
17875 components.pop();
17876 }
17877
17878 return components;
17879 }
17880
17881 function clonePath(path) {
17882 return {
17883 newPos: path.newPos,
17884 components: path.components.slice(0)
17885 };
17886 }
17887
17888 var characterDiff = new Diff();
17889 function diffChars(oldStr, newStr, options) {
17890 return characterDiff.diff(oldStr, newStr, options);
17891 }
17892
17893 function generateOptions(options, defaults) {
17894 if (typeof options === 'function') {
17895 defaults.callback = options;
17896 } else if (options) {
17897 for (var name in options) {
17898 /* istanbul ignore else */
17899 if (options.hasOwnProperty(name)) {
17900 defaults[name] = options[name];
17901 }
17902 }
17903 }
17904
17905 return defaults;
17906 }
17907
17908 //
17909 // Ranges and exceptions:
17910 // Latin-1 Supplement, 0080–00FF
17911 // - U+00D7 × Multiplication sign
17912 // - U+00F7 ÷ Division sign
17913 // Latin Extended-A, 0100–017F
17914 // Latin Extended-B, 0180–024F
17915 // IPA Extensions, 0250–02AF
17916 // Spacing Modifier Letters, 02B0–02FF
17917 // - U+02C7 ˇ &#711; Caron
17918 // - U+02D8 ˘ &#728; Breve
17919 // - U+02D9 ˙ &#729; Dot Above
17920 // - U+02DA ˚ &#730; Ring Above
17921 // - U+02DB ˛ &#731; Ogonek
17922 // - U+02DC ˜ &#732; Small Tilde
17923 // - U+02DD ˝ &#733; Double Acute Accent
17924 // Latin Extended Additional, 1E00–1EFF
17925
17926 var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
17927 var reWhitespace = /\S/;
17928 var wordDiff = new Diff();
17929
17930 wordDiff.equals = function (left, right) {
17931 if (this.options.ignoreCase) {
17932 left = left.toLowerCase();
17933 right = right.toLowerCase();
17934 }
17935
17936 return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
17937 };
17938
17939 wordDiff.tokenize = function (value) {
17940 // All whitespace symbols except newline group into one token, each newline - in separate token
17941 var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.
17942
17943 for (var i = 0; i < tokens.length - 1; i++) {
17944 // If we have an empty string in the next field and we have only word chars before and after, merge
17945 if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
17946 tokens[i] += tokens[i + 2];
17947 tokens.splice(i + 1, 2);
17948 i--;
17949 }
17950 }
17951
17952 return tokens;
17953 };
17954
17955 function diffWords(oldStr, newStr, options) {
17956 options = generateOptions(options, {
17957 ignoreWhitespace: true
17958 });
17959 return wordDiff.diff(oldStr, newStr, options);
17960 }
17961 function diffWordsWithSpace(oldStr, newStr, options) {
17962 return wordDiff.diff(oldStr, newStr, options);
17963 }
17964
17965 var lineDiff = new Diff();
17966
17967 lineDiff.tokenize = function (value) {
17968 var retLines = [],
17969 linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line
17970
17971 if (!linesAndNewlines[linesAndNewlines.length - 1]) {
17972 linesAndNewlines.pop();
17973 } // Merge the content and line separators into single tokens
17974
17975
17976 for (var i = 0; i < linesAndNewlines.length; i++) {
17977 var line = linesAndNewlines[i];
17978
17979 if (i % 2 && !this.options.newlineIsToken) {
17980 retLines[retLines.length - 1] += line;
17981 } else {
17982 if (this.options.ignoreWhitespace) {
17983 line = line.trim();
17984 }
17985
17986 retLines.push(line);
17987 }
17988 }
17989
17990 return retLines;
17991 };
17992
17993 function diffLines(oldStr, newStr, callback) {
17994 return lineDiff.diff(oldStr, newStr, callback);
17995 }
17996 function diffTrimmedLines(oldStr, newStr, callback) {
17997 var options = generateOptions(callback, {
17998 ignoreWhitespace: true
17999 });
18000 return lineDiff.diff(oldStr, newStr, options);
18001 }
18002
18003 var sentenceDiff = new Diff();
18004
18005 sentenceDiff.tokenize = function (value) {
18006 return value.split(/(\S.+?[.!?])(?=\s+|$)/);
18007 };
18008
18009 function diffSentences(oldStr, newStr, callback) {
18010 return sentenceDiff.diff(oldStr, newStr, callback);
18011 }
18012
18013 var cssDiff = new Diff();
18014
18015 cssDiff.tokenize = function (value) {
18016 return value.split(/([{}:;,]|\s+)/);
18017 };
18018
18019 function diffCss(oldStr, newStr, callback) {
18020 return cssDiff.diff(oldStr, newStr, callback);
18021 }
18022
18023 function _typeof(obj) {
18024 "@babel/helpers - typeof";
18025
18026 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
18027 _typeof = function (obj) {
18028 return typeof obj;
18029 };
18030 } else {
18031 _typeof = function (obj) {
18032 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
18033 };
18034 }
18035
18036 return _typeof(obj);
18037 }
18038
18039 function _toConsumableArray(arr) {
18040 return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
18041 }
18042
18043 function _arrayWithoutHoles(arr) {
18044 if (Array.isArray(arr)) return _arrayLikeToArray(arr);
18045 }
18046
18047 function _iterableToArray(iter) {
18048 if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
18049 }
18050
18051 function _unsupportedIterableToArray(o, minLen) {
18052 if (!o) return;
18053 if (typeof o === "string") return _arrayLikeToArray(o, minLen);
18054 var n = Object.prototype.toString.call(o).slice(8, -1);
18055 if (n === "Object" && o.constructor) n = o.constructor.name;
18056 if (n === "Map" || n === "Set") return Array.from(o);
18057 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
18058 }
18059
18060 function _arrayLikeToArray(arr, len) {
18061 if (len == null || len > arr.length) len = arr.length;
18062
18063 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
18064
18065 return arr2;
18066 }
18067
18068 function _nonIterableSpread() {
18069 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18070 }
18071
18072 var objectPrototypeToString = Object.prototype.toString;
18073 var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
18074 // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
18075
18076 jsonDiff.useLongestToken = true;
18077 jsonDiff.tokenize = lineDiff.tokenize;
18078
18079 jsonDiff.castInput = function (value) {
18080 var _this$options = this.options,
18081 undefinedReplacement = _this$options.undefinedReplacement,
18082 _this$options$stringi = _this$options.stringifyReplacer,
18083 stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {
18084 return typeof v === 'undefined' ? undefinedReplacement : v;
18085 } : _this$options$stringi;
18086 return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');
18087 };
18088
18089 jsonDiff.equals = function (left, right) {
18090 return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'));
18091 };
18092
18093 function diffJson(oldObj, newObj, options) {
18094 return jsonDiff.diff(oldObj, newObj, options);
18095 } // This function handles the presence of circular references by bailing out when encountering an
18096 // object that is already on the "stack" of items being processed. Accepts an optional replacer
18097
18098 function canonicalize(obj, stack, replacementStack, replacer, key) {
18099 stack = stack || [];
18100 replacementStack = replacementStack || [];
18101
18102 if (replacer) {
18103 obj = replacer(key, obj);
18104 }
18105
18106 var i;
18107
18108 for (i = 0; i < stack.length; i += 1) {
18109 if (stack[i] === obj) {
18110 return replacementStack[i];
18111 }
18112 }
18113
18114 var canonicalizedObj;
18115
18116 if ('[object Array]' === objectPrototypeToString.call(obj)) {
18117 stack.push(obj);
18118 canonicalizedObj = new Array(obj.length);
18119 replacementStack.push(canonicalizedObj);
18120
18121 for (i = 0; i < obj.length; i += 1) {
18122 canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);
18123 }
18124
18125 stack.pop();
18126 replacementStack.pop();
18127 return canonicalizedObj;
18128 }
18129
18130 if (obj && obj.toJSON) {
18131 obj = obj.toJSON();
18132 }
18133
18134 if (_typeof(obj) === 'object' && obj !== null) {
18135 stack.push(obj);
18136 canonicalizedObj = {};
18137 replacementStack.push(canonicalizedObj);
18138
18139 var sortedKeys = [],
18140 _key;
18141
18142 for (_key in obj) {
18143 /* istanbul ignore else */
18144 if (obj.hasOwnProperty(_key)) {
18145 sortedKeys.push(_key);
18146 }
18147 }
18148
18149 sortedKeys.sort();
18150
18151 for (i = 0; i < sortedKeys.length; i += 1) {
18152 _key = sortedKeys[i];
18153 canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);
18154 }
18155
18156 stack.pop();
18157 replacementStack.pop();
18158 } else {
18159 canonicalizedObj = obj;
18160 }
18161
18162 return canonicalizedObj;
18163 }
18164
18165 var arrayDiff = new Diff();
18166
18167 arrayDiff.tokenize = function (value) {
18168 return value.slice();
18169 };
18170
18171 arrayDiff.join = arrayDiff.removeEmpty = function (value) {
18172 return value;
18173 };
18174
18175 function diffArrays(oldArr, newArr, callback) {
18176 return arrayDiff.diff(oldArr, newArr, callback);
18177 }
18178
18179 function parsePatch(uniDiff) {
18180 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
18181 var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/),
18182 delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [],
18183 list = [],
18184 i = 0;
18185
18186 function parseIndex() {
18187 var index = {};
18188 list.push(index); // Parse diff metadata
18189
18190 while (i < diffstr.length) {
18191 var line = diffstr[i]; // File header found, end parsing diff metadata
18192
18193 if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
18194 break;
18195 } // Diff index
18196
18197
18198 var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
18199
18200 if (header) {
18201 index.index = header[1];
18202 }
18203
18204 i++;
18205 } // Parse file headers if they are defined. Unified diff requires them, but
18206 // there's no technical issues to have an isolated hunk without file header
18207
18208
18209 parseFileHeader(index);
18210 parseFileHeader(index); // Parse hunks
18211
18212 index.hunks = [];
18213
18214 while (i < diffstr.length) {
18215 var _line = diffstr[i];
18216
18217 if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
18218 break;
18219 } else if (/^@@/.test(_line)) {
18220 index.hunks.push(parseHunk());
18221 } else if (_line && options.strict) {
18222 // Ignore unexpected content unless in strict mode
18223 throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
18224 } else {
18225 i++;
18226 }
18227 }
18228 } // Parses the --- and +++ headers, if none are found, no lines
18229 // are consumed.
18230
18231
18232 function parseFileHeader(index) {
18233 var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
18234
18235 if (fileHeader) {
18236 var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
18237 var data = fileHeader[2].split('\t', 2);
18238 var fileName = data[0].replace(/\\\\/g, '\\');
18239
18240 if (/^".*"$/.test(fileName)) {
18241 fileName = fileName.substr(1, fileName.length - 2);
18242 }
18243
18244 index[keyPrefix + 'FileName'] = fileName;
18245 index[keyPrefix + 'Header'] = (data[1] || '').trim();
18246 i++;
18247 }
18248 } // Parses a hunk
18249 // This assumes that we are at the start of a hunk.
18250
18251
18252 function parseHunk() {
18253 var chunkHeaderIndex = i,
18254 chunkHeaderLine = diffstr[i++],
18255 chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
18256 var hunk = {
18257 oldStart: +chunkHeader[1],
18258 oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],
18259 newStart: +chunkHeader[3],
18260 newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],
18261 lines: [],
18262 linedelimiters: []
18263 }; // Unified Diff Format quirk: If the chunk size is 0,
18264 // the first number is one lower than one would expect.
18265 // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
18266
18267 if (hunk.oldLines === 0) {
18268 hunk.oldStart += 1;
18269 }
18270
18271 if (hunk.newLines === 0) {
18272 hunk.newStart += 1;
18273 }
18274
18275 var addCount = 0,
18276 removeCount = 0;
18277
18278 for (; i < diffstr.length; i++) {
18279 // Lines starting with '---' could be mistaken for the "remove line" operation
18280 // But they could be the header for the next file. Therefore prune such cases out.
18281 if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {
18282 break;
18283 }
18284
18285 var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];
18286
18287 if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
18288 hunk.lines.push(diffstr[i]);
18289 hunk.linedelimiters.push(delimiters[i] || '\n');
18290
18291 if (operation === '+') {
18292 addCount++;
18293 } else if (operation === '-') {
18294 removeCount++;
18295 } else if (operation === ' ') {
18296 addCount++;
18297 removeCount++;
18298 }
18299 } else {
18300 break;
18301 }
18302 } // Handle the empty block count case
18303
18304
18305 if (!addCount && hunk.newLines === 1) {
18306 hunk.newLines = 0;
18307 }
18308
18309 if (!removeCount && hunk.oldLines === 1) {
18310 hunk.oldLines = 0;
18311 } // Perform optional sanity checking
18312
18313
18314 if (options.strict) {
18315 if (addCount !== hunk.newLines) {
18316 throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
18317 }
18318
18319 if (removeCount !== hunk.oldLines) {
18320 throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
18321 }
18322 }
18323
18324 return hunk;
18325 }
18326
18327 while (i < diffstr.length) {
18328 parseIndex();
18329 }
18330
18331 return list;
18332 }
18333
18334 // Iterator that traverses in the range of [min, max], stepping
18335 // by distance from a given start position. I.e. for [0, 4], with
18336 // start of 2, this will iterate 2, 3, 1, 4, 0.
18337 function distanceIterator (start, minLine, maxLine) {
18338 var wantForward = true,
18339 backwardExhausted = false,
18340 forwardExhausted = false,
18341 localOffset = 1;
18342 return function iterator() {
18343 if (wantForward && !forwardExhausted) {
18344 if (backwardExhausted) {
18345 localOffset++;
18346 } else {
18347 wantForward = false;
18348 } // Check if trying to fit beyond text length, and if not, check it fits
18349 // after offset location (or desired location on first iteration)
18350
18351
18352 if (start + localOffset <= maxLine) {
18353 return localOffset;
18354 }
18355
18356 forwardExhausted = true;
18357 }
18358
18359 if (!backwardExhausted) {
18360 if (!forwardExhausted) {
18361 wantForward = true;
18362 } // Check if trying to fit before text beginning, and if not, check it fits
18363 // before offset location
18364
18365
18366 if (minLine <= start - localOffset) {
18367 return -localOffset++;
18368 }
18369
18370 backwardExhausted = true;
18371 return iterator();
18372 } // We tried to fit hunk before text beginning and beyond text length, then
18373 // hunk can't fit on the text. Return undefined
18374
18375 };
18376 }
18377
18378 function applyPatch(source, uniDiff) {
18379 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
18380
18381 if (typeof uniDiff === 'string') {
18382 uniDiff = parsePatch(uniDiff);
18383 }
18384
18385 if (Array.isArray(uniDiff)) {
18386 if (uniDiff.length > 1) {
18387 throw new Error('applyPatch only works with a single input.');
18388 }
18389
18390 uniDiff = uniDiff[0];
18391 } // Apply the diff to the input
18392
18393
18394 var lines = source.split(/\r\n|[\n\v\f\r\x85]/),
18395 delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [],
18396 hunks = uniDiff.hunks,
18397 compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {
18398 return line === patchContent;
18399 },
18400 errorCount = 0,
18401 fuzzFactor = options.fuzzFactor || 0,
18402 minLine = 0,
18403 offset = 0,
18404 removeEOFNL,
18405 addEOFNL;
18406 /**
18407 * Checks if the hunk exactly fits on the provided location
18408 */
18409
18410
18411 function hunkFits(hunk, toPos) {
18412 for (var j = 0; j < hunk.lines.length; j++) {
18413 var line = hunk.lines[j],
18414 operation = line.length > 0 ? line[0] : ' ',
18415 content = line.length > 0 ? line.substr(1) : line;
18416
18417 if (operation === ' ' || operation === '-') {
18418 // Context sanity check
18419 if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
18420 errorCount++;
18421
18422 if (errorCount > fuzzFactor) {
18423 return false;
18424 }
18425 }
18426
18427 toPos++;
18428 }
18429 }
18430
18431 return true;
18432 } // Search best fit offsets for each hunk based on the previous ones
18433
18434
18435 for (var i = 0; i < hunks.length; i++) {
18436 var hunk = hunks[i],
18437 maxLine = lines.length - hunk.oldLines,
18438 localOffset = 0,
18439 toPos = offset + hunk.oldStart - 1;
18440 var iterator = distanceIterator(toPos, minLine, maxLine);
18441
18442 for (; localOffset !== undefined; localOffset = iterator()) {
18443 if (hunkFits(hunk, toPos + localOffset)) {
18444 hunk.offset = offset += localOffset;
18445 break;
18446 }
18447 }
18448
18449 if (localOffset === undefined) {
18450 return false;
18451 } // Set lower text limit to end of the current hunk, so next ones don't try
18452 // to fit over already patched text
18453
18454
18455 minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
18456 } // Apply patch hunks
18457
18458
18459 var diffOffset = 0;
18460
18461 for (var _i = 0; _i < hunks.length; _i++) {
18462 var _hunk = hunks[_i],
18463 _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
18464
18465 diffOffset += _hunk.newLines - _hunk.oldLines;
18466
18467 for (var j = 0; j < _hunk.lines.length; j++) {
18468 var line = _hunk.lines[j],
18469 operation = line.length > 0 ? line[0] : ' ',
18470 content = line.length > 0 ? line.substr(1) : line,
18471 delimiter = _hunk.linedelimiters[j];
18472
18473 if (operation === ' ') {
18474 _toPos++;
18475 } else if (operation === '-') {
18476 lines.splice(_toPos, 1);
18477 delimiters.splice(_toPos, 1);
18478 /* istanbul ignore else */
18479 } else if (operation === '+') {
18480 lines.splice(_toPos, 0, content);
18481 delimiters.splice(_toPos, 0, delimiter);
18482 _toPos++;
18483 } else if (operation === '\\') {
18484 var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
18485
18486 if (previousOperation === '+') {
18487 removeEOFNL = true;
18488 } else if (previousOperation === '-') {
18489 addEOFNL = true;
18490 }
18491 }
18492 }
18493 } // Handle EOFNL insertion/removal
18494
18495
18496 if (removeEOFNL) {
18497 while (!lines[lines.length - 1]) {
18498 lines.pop();
18499 delimiters.pop();
18500 }
18501 } else if (addEOFNL) {
18502 lines.push('');
18503 delimiters.push('\n');
18504 }
18505
18506 for (var _k = 0; _k < lines.length - 1; _k++) {
18507 lines[_k] = lines[_k] + delimiters[_k];
18508 }
18509
18510 return lines.join('');
18511 } // Wrapper that supports multiple file patches via callbacks.
18512
18513 function applyPatches(uniDiff, options) {
18514 if (typeof uniDiff === 'string') {
18515 uniDiff = parsePatch(uniDiff);
18516 }
18517
18518 var currentIndex = 0;
18519
18520 function processIndex() {
18521 var index = uniDiff[currentIndex++];
18522
18523 if (!index) {
18524 return options.complete();
18525 }
18526
18527 options.loadFile(index, function (err, data) {
18528 if (err) {
18529 return options.complete(err);
18530 }
18531
18532 var updatedContent = applyPatch(data, index, options);
18533 options.patched(index, updatedContent, function (err) {
18534 if (err) {
18535 return options.complete(err);
18536 }
18537
18538 processIndex();
18539 });
18540 });
18541 }
18542
18543 processIndex();
18544 }
18545
18546 function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
18547 if (!options) {
18548 options = {};
18549 }
18550
18551 if (typeof options.context === 'undefined') {
18552 options.context = 4;
18553 }
18554
18555 var diff = diffLines(oldStr, newStr, options);
18556
18557 if (!diff) {
18558 return;
18559 }
18560
18561 diff.push({
18562 value: '',
18563 lines: []
18564 }); // Append an empty value to make cleanup easier
18565
18566 function contextLines(lines) {
18567 return lines.map(function (entry) {
18568 return ' ' + entry;
18569 });
18570 }
18571
18572 var hunks = [];
18573 var oldRangeStart = 0,
18574 newRangeStart = 0,
18575 curRange = [],
18576 oldLine = 1,
18577 newLine = 1;
18578
18579 var _loop = function _loop(i) {
18580 var current = diff[i],
18581 lines = current.lines || current.value.replace(/\n$/, '').split('\n');
18582 current.lines = lines;
18583
18584 if (current.added || current.removed) {
18585 var _curRange;
18586
18587 // If we have previous context, start with that
18588 if (!oldRangeStart) {
18589 var prev = diff[i - 1];
18590 oldRangeStart = oldLine;
18591 newRangeStart = newLine;
18592
18593 if (prev) {
18594 curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
18595 oldRangeStart -= curRange.length;
18596 newRangeStart -= curRange.length;
18597 }
18598 } // Output our changes
18599
18600
18601 (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {
18602 return (current.added ? '+' : '-') + entry;
18603 }))); // Track the updated file position
18604
18605
18606 if (current.added) {
18607 newLine += lines.length;
18608 } else {
18609 oldLine += lines.length;
18610 }
18611 } else {
18612 // Identical context lines. Track line changes
18613 if (oldRangeStart) {
18614 // Close out any changes that have been output (or join overlapping)
18615 if (lines.length <= options.context * 2 && i < diff.length - 2) {
18616 var _curRange2;
18617
18618 // Overlapping
18619 (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));
18620 } else {
18621 var _curRange3;
18622
18623 // end the range and output
18624 var contextSize = Math.min(lines.length, options.context);
18625
18626 (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));
18627
18628 var hunk = {
18629 oldStart: oldRangeStart,
18630 oldLines: oldLine - oldRangeStart + contextSize,
18631 newStart: newRangeStart,
18632 newLines: newLine - newRangeStart + contextSize,
18633 lines: curRange
18634 };
18635
18636 if (i >= diff.length - 2 && lines.length <= options.context) {
18637 // EOF is inside this hunk
18638 var oldEOFNewline = /\n$/.test(oldStr);
18639 var newEOFNewline = /\n$/.test(newStr);
18640 var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;
18641
18642 if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {
18643 // special case: old has no eol and no trailing context; no-nl can end up before adds
18644 // however, if the old file is empty, do not output the no-nl line
18645 curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
18646 }
18647
18648 if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {
18649 curRange.push('\\ No newline at end of file');
18650 }
18651 }
18652
18653 hunks.push(hunk);
18654 oldRangeStart = 0;
18655 newRangeStart = 0;
18656 curRange = [];
18657 }
18658 }
18659
18660 oldLine += lines.length;
18661 newLine += lines.length;
18662 }
18663 };
18664
18665 for (var i = 0; i < diff.length; i++) {
18666 _loop(i);
18667 }
18668
18669 return {
18670 oldFileName: oldFileName,
18671 newFileName: newFileName,
18672 oldHeader: oldHeader,
18673 newHeader: newHeader,
18674 hunks: hunks
18675 };
18676 }
18677 function formatPatch(diff) {
18678 var ret = [];
18679
18680 if (diff.oldFileName == diff.newFileName) {
18681 ret.push('Index: ' + diff.oldFileName);
18682 }
18683
18684 ret.push('===================================================================');
18685 ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
18686 ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
18687
18688 for (var i = 0; i < diff.hunks.length; i++) {
18689 var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,
18690 // the first number is one lower than one would expect.
18691 // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
18692
18693 if (hunk.oldLines === 0) {
18694 hunk.oldStart -= 1;
18695 }
18696
18697 if (hunk.newLines === 0) {
18698 hunk.newStart -= 1;
18699 }
18700
18701 ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
18702 ret.push.apply(ret, hunk.lines);
18703 }
18704
18705 return ret.join('\n') + '\n';
18706 }
18707 function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
18708 return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));
18709 }
18710 function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
18711 return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
18712 }
18713
18714 function arrayEqual(a, b) {
18715 if (a.length !== b.length) {
18716 return false;
18717 }
18718
18719 return arrayStartsWith(a, b);
18720 }
18721 function arrayStartsWith(array, start) {
18722 if (start.length > array.length) {
18723 return false;
18724 }
18725
18726 for (var i = 0; i < start.length; i++) {
18727 if (start[i] !== array[i]) {
18728 return false;
18729 }
18730 }
18731
18732 return true;
18733 }
18734
18735 function calcLineCount(hunk) {
18736 var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),
18737 oldLines = _calcOldNewLineCount.oldLines,
18738 newLines = _calcOldNewLineCount.newLines;
18739
18740 if (oldLines !== undefined) {
18741 hunk.oldLines = oldLines;
18742 } else {
18743 delete hunk.oldLines;
18744 }
18745
18746 if (newLines !== undefined) {
18747 hunk.newLines = newLines;
18748 } else {
18749 delete hunk.newLines;
18750 }
18751 }
18752 function merge(mine, theirs, base) {
18753 mine = loadPatch(mine, base);
18754 theirs = loadPatch(theirs, base);
18755 var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.
18756 // Leaving sanity checks on this to the API consumer that may know more about the
18757 // meaning in their own context.
18758
18759 if (mine.index || theirs.index) {
18760 ret.index = mine.index || theirs.index;
18761 }
18762
18763 if (mine.newFileName || theirs.newFileName) {
18764 if (!fileNameChanged(mine)) {
18765 // No header or no change in ours, use theirs (and ours if theirs does not exist)
18766 ret.oldFileName = theirs.oldFileName || mine.oldFileName;
18767 ret.newFileName = theirs.newFileName || mine.newFileName;
18768 ret.oldHeader = theirs.oldHeader || mine.oldHeader;
18769 ret.newHeader = theirs.newHeader || mine.newHeader;
18770 } else if (!fileNameChanged(theirs)) {
18771 // No header or no change in theirs, use ours
18772 ret.oldFileName = mine.oldFileName;
18773 ret.newFileName = mine.newFileName;
18774 ret.oldHeader = mine.oldHeader;
18775 ret.newHeader = mine.newHeader;
18776 } else {
18777 // Both changed... figure it out
18778 ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
18779 ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
18780 ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
18781 ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
18782 }
18783 }
18784
18785 ret.hunks = [];
18786 var mineIndex = 0,
18787 theirsIndex = 0,
18788 mineOffset = 0,
18789 theirsOffset = 0;
18790
18791 while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
18792 var mineCurrent = mine.hunks[mineIndex] || {
18793 oldStart: Infinity
18794 },
18795 theirsCurrent = theirs.hunks[theirsIndex] || {
18796 oldStart: Infinity
18797 };
18798
18799 if (hunkBefore(mineCurrent, theirsCurrent)) {
18800 // This patch does not overlap with any of the others, yay.
18801 ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
18802 mineIndex++;
18803 theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
18804 } else if (hunkBefore(theirsCurrent, mineCurrent)) {
18805 // This patch does not overlap with any of the others, yay.
18806 ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
18807 theirsIndex++;
18808 mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
18809 } else {
18810 // Overlap, merge as best we can
18811 var mergedHunk = {
18812 oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
18813 oldLines: 0,
18814 newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
18815 newLines: 0,
18816 lines: []
18817 };
18818 mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
18819 theirsIndex++;
18820 mineIndex++;
18821 ret.hunks.push(mergedHunk);
18822 }
18823 }
18824
18825 return ret;
18826 }
18827
18828 function loadPatch(param, base) {
18829 if (typeof param === 'string') {
18830 if (/^@@/m.test(param) || /^Index:/m.test(param)) {
18831 return parsePatch(param)[0];
18832 }
18833
18834 if (!base) {
18835 throw new Error('Must provide a base reference or pass in a patch');
18836 }
18837
18838 return structuredPatch(undefined, undefined, base, param);
18839 }
18840
18841 return param;
18842 }
18843
18844 function fileNameChanged(patch) {
18845 return patch.newFileName && patch.newFileName !== patch.oldFileName;
18846 }
18847
18848 function selectField(index, mine, theirs) {
18849 if (mine === theirs) {
18850 return mine;
18851 } else {
18852 index.conflict = true;
18853 return {
18854 mine: mine,
18855 theirs: theirs
18856 };
18857 }
18858 }
18859
18860 function hunkBefore(test, check) {
18861 return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
18862 }
18863
18864 function cloneHunk(hunk, offset) {
18865 return {
18866 oldStart: hunk.oldStart,
18867 oldLines: hunk.oldLines,
18868 newStart: hunk.newStart + offset,
18869 newLines: hunk.newLines,
18870 lines: hunk.lines
18871 };
18872 }
18873
18874 function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
18875 // This will generally result in a conflicted hunk, but there are cases where the context
18876 // is the only overlap where we can successfully merge the content here.
18877 var mine = {
18878 offset: mineOffset,
18879 lines: mineLines,
18880 index: 0
18881 },
18882 their = {
18883 offset: theirOffset,
18884 lines: theirLines,
18885 index: 0
18886 }; // Handle any leading content
18887
18888 insertLeading(hunk, mine, their);
18889 insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.
18890
18891 while (mine.index < mine.lines.length && their.index < their.lines.length) {
18892 var mineCurrent = mine.lines[mine.index],
18893 theirCurrent = their.lines[their.index];
18894
18895 if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {
18896 // Both modified ...
18897 mutualChange(hunk, mine, their);
18898 } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {
18899 var _hunk$lines;
18900
18901 // Mine inserted
18902 (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));
18903 } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {
18904 var _hunk$lines2;
18905
18906 // Theirs inserted
18907 (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));
18908 } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {
18909 // Mine removed or edited
18910 removal(hunk, mine, their);
18911 } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {
18912 // Their removed or edited
18913 removal(hunk, their, mine, true);
18914 } else if (mineCurrent === theirCurrent) {
18915 // Context identity
18916 hunk.lines.push(mineCurrent);
18917 mine.index++;
18918 their.index++;
18919 } else {
18920 // Context mismatch
18921 conflict(hunk, collectChange(mine), collectChange(their));
18922 }
18923 } // Now push anything that may be remaining
18924
18925
18926 insertTrailing(hunk, mine);
18927 insertTrailing(hunk, their);
18928 calcLineCount(hunk);
18929 }
18930
18931 function mutualChange(hunk, mine, their) {
18932 var myChanges = collectChange(mine),
18933 theirChanges = collectChange(their);
18934
18935 if (allRemoves(myChanges) && allRemoves(theirChanges)) {
18936 // Special case for remove changes that are supersets of one another
18937 if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {
18938 var _hunk$lines3;
18939
18940 (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));
18941
18942 return;
18943 } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {
18944 var _hunk$lines4;
18945
18946 (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));
18947
18948 return;
18949 }
18950 } else if (arrayEqual(myChanges, theirChanges)) {
18951 var _hunk$lines5;
18952
18953 (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));
18954
18955 return;
18956 }
18957
18958 conflict(hunk, myChanges, theirChanges);
18959 }
18960
18961 function removal(hunk, mine, their, swap) {
18962 var myChanges = collectChange(mine),
18963 theirChanges = collectContext(their, myChanges);
18964
18965 if (theirChanges.merged) {
18966 var _hunk$lines6;
18967
18968 (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));
18969 } else {
18970 conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
18971 }
18972 }
18973
18974 function conflict(hunk, mine, their) {
18975 hunk.conflict = true;
18976 hunk.lines.push({
18977 conflict: true,
18978 mine: mine,
18979 theirs: their
18980 });
18981 }
18982
18983 function insertLeading(hunk, insert, their) {
18984 while (insert.offset < their.offset && insert.index < insert.lines.length) {
18985 var line = insert.lines[insert.index++];
18986 hunk.lines.push(line);
18987 insert.offset++;
18988 }
18989 }
18990
18991 function insertTrailing(hunk, insert) {
18992 while (insert.index < insert.lines.length) {
18993 var line = insert.lines[insert.index++];
18994 hunk.lines.push(line);
18995 }
18996 }
18997
18998 function collectChange(state) {
18999 var ret = [],
19000 operation = state.lines[state.index][0];
19001
19002 while (state.index < state.lines.length) {
19003 var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one "atomic" modify change.
19004
19005 if (operation === '-' && line[0] === '+') {
19006 operation = '+';
19007 }
19008
19009 if (operation === line[0]) {
19010 ret.push(line);
19011 state.index++;
19012 } else {
19013 break;
19014 }
19015 }
19016
19017 return ret;
19018 }
19019
19020 function collectContext(state, matchChanges) {
19021 var changes = [],
19022 merged = [],
19023 matchIndex = 0,
19024 contextChanges = false,
19025 conflicted = false;
19026
19027 while (matchIndex < matchChanges.length && state.index < state.lines.length) {
19028 var change = state.lines[state.index],
19029 match = matchChanges[matchIndex]; // Once we've hit our add, then we are done
19030
19031 if (match[0] === '+') {
19032 break;
19033 }
19034
19035 contextChanges = contextChanges || change[0] !== ' ';
19036 merged.push(match);
19037 matchIndex++; // Consume any additions in the other block as a conflict to attempt
19038 // to pull in the remaining context after this
19039
19040 if (change[0] === '+') {
19041 conflicted = true;
19042
19043 while (change[0] === '+') {
19044 changes.push(change);
19045 change = state.lines[++state.index];
19046 }
19047 }
19048
19049 if (match.substr(1) === change.substr(1)) {
19050 changes.push(change);
19051 state.index++;
19052 } else {
19053 conflicted = true;
19054 }
19055 }
19056
19057 if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {
19058 conflicted = true;
19059 }
19060
19061 if (conflicted) {
19062 return changes;
19063 }
19064
19065 while (matchIndex < matchChanges.length) {
19066 merged.push(matchChanges[matchIndex++]);
19067 }
19068
19069 return {
19070 merged: merged,
19071 changes: changes
19072 };
19073 }
19074
19075 function allRemoves(changes) {
19076 return changes.reduce(function (prev, change) {
19077 return prev && change[0] === '-';
19078 }, true);
19079 }
19080
19081 function skipRemoveSuperset(state, removeChanges, delta) {
19082 for (var i = 0; i < delta; i++) {
19083 var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
19084
19085 if (state.lines[state.index + i] !== ' ' + changeContent) {
19086 return false;
19087 }
19088 }
19089
19090 state.index += delta;
19091 return true;
19092 }
19093
19094 function calcOldNewLineCount(lines) {
19095 var oldLines = 0;
19096 var newLines = 0;
19097 lines.forEach(function (line) {
19098 if (typeof line !== 'string') {
19099 var myCount = calcOldNewLineCount(line.mine);
19100 var theirCount = calcOldNewLineCount(line.theirs);
19101
19102 if (oldLines !== undefined) {
19103 if (myCount.oldLines === theirCount.oldLines) {
19104 oldLines += myCount.oldLines;
19105 } else {
19106 oldLines = undefined;
19107 }
19108 }
19109
19110 if (newLines !== undefined) {
19111 if (myCount.newLines === theirCount.newLines) {
19112 newLines += myCount.newLines;
19113 } else {
19114 newLines = undefined;
19115 }
19116 }
19117 } else {
19118 if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {
19119 newLines++;
19120 }
19121
19122 if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {
19123 oldLines++;
19124 }
19125 }
19126 });
19127 return {
19128 oldLines: oldLines,
19129 newLines: newLines
19130 };
19131 }
19132
19133 // See: http://code.google.com/p/google-diff-match-patch/wiki/API
19134 function convertChangesToDMP(changes) {
19135 var ret = [],
19136 change,
19137 operation;
19138
19139 for (var i = 0; i < changes.length; i++) {
19140 change = changes[i];
19141
19142 if (change.added) {
19143 operation = 1;
19144 } else if (change.removed) {
19145 operation = -1;
19146 } else {
19147 operation = 0;
19148 }
19149
19150 ret.push([operation, change.value]);
19151 }
19152
19153 return ret;
19154 }
19155
19156 function convertChangesToXML(changes) {
19157 var ret = [];
19158
19159 for (var i = 0; i < changes.length; i++) {
19160 var change = changes[i];
19161
19162 if (change.added) {
19163 ret.push('<ins>');
19164 } else if (change.removed) {
19165 ret.push('<del>');
19166 }
19167
19168 ret.push(escapeHTML(change.value));
19169
19170 if (change.added) {
19171 ret.push('</ins>');
19172 } else if (change.removed) {
19173 ret.push('</del>');
19174 }
19175 }
19176
19177 return ret.join('');
19178 }
19179
19180 function escapeHTML(s) {
19181 var n = s;
19182 n = n.replace(/&/g, '&amp;');
19183 n = n.replace(/</g, '&lt;');
19184 n = n.replace(/>/g, '&gt;');
19185 n = n.replace(/"/g, '&quot;');
19186 return n;
19187 }
19188
19189
19190
19191
19192 /***/ }),
19193
19194 /***/ "../node_modules/hast-util-whitespace/index.js":
19195 /*!*****************************************************!*\
19196 !*** ../node_modules/hast-util-whitespace/index.js ***!
19197 \*****************************************************/
19198 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19199
19200 "use strict";
19201 __webpack_require__.r(__webpack_exports__);
19202 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19203 /* harmony export */ whitespace: () => (/* binding */ whitespace)
19204 /* harmony export */ });
19205 /**
19206 * Check if the given value is *inter-element whitespace*.
19207 *
19208 * @param {unknown} thing
19209 * Thing to check (typically `Node` or `string`).
19210 * @returns {boolean}
19211 * Whether the `value` is inter-element whitespace (`boolean`): consisting of
19212 * zero or more of space, tab (`\t`), line feed (`\n`), carriage return
19213 * (`\r`), or form feed (`\f`).
19214 * If a node is passed it must be a `Text` node, whose `value` field is
19215 * checked.
19216 */
19217 function whitespace(thing) {
19218 /** @type {string} */
19219 const value =
19220 // @ts-expect-error looks like a node.
19221 thing && typeof thing === 'object' && thing.type === 'text'
19222 ? // @ts-expect-error looks like a text.
19223 thing.value || ''
19224 : thing
19225
19226 // HTML whitespace expression.
19227 // See <https://infra.spec.whatwg.org/#ascii-whitespace>.
19228 return typeof value === 'string' && value.replace(/[ \t\n\f\r]/g, '') === ''
19229 }
19230
19231
19232 /***/ }),
19233
19234 /***/ "../node_modules/is-plain-obj/index.js":
19235 /*!*********************************************!*\
19236 !*** ../node_modules/is-plain-obj/index.js ***!
19237 \*********************************************/
19238 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19239
19240 "use strict";
19241 __webpack_require__.r(__webpack_exports__);
19242 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19243 /* harmony export */ "default": () => (/* binding */ isPlainObject)
19244 /* harmony export */ });
19245 function isPlainObject(value) {
19246 if (typeof value !== 'object' || value === null) {
19247 return false;
19248 }
19249
19250 const prototype = Object.getPrototypeOf(value);
19251 return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
19252 }
19253
19254
19255 /***/ }),
19256
19257 /***/ "../node_modules/mdast-util-definitions/lib/index.js":
19258 /*!***********************************************************!*\
19259 !*** ../node_modules/mdast-util-definitions/lib/index.js ***!
19260 \***********************************************************/
19261 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19262
19263 "use strict";
19264 __webpack_require__.r(__webpack_exports__);
19265 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19266 /* harmony export */ definitions: () => (/* binding */ definitions)
19267 /* harmony export */ });
19268 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
19269 /**
19270 * @typedef {import('mdast').Root} Root
19271 * @typedef {import('mdast').Content} Content
19272 * @typedef {import('mdast').Definition} Definition
19273 */
19274
19275 /**
19276 * @typedef {Root | Content} Node
19277 *
19278 * @callback GetDefinition
19279 * Get a definition by identifier.
19280 * @param {string | null | undefined} [identifier]
19281 * Identifier of definition.
19282 * @returns {Definition | null}
19283 * Definition corresponding to `identifier` or `null`.
19284 */
19285
19286
19287
19288 const own = {}.hasOwnProperty
19289
19290 /**
19291 * Find definitions in `tree`.
19292 *
19293 * Uses CommonMark precedence, which means that earlier definitions are
19294 * preferred over duplicate later definitions.
19295 *
19296 * @param {Node} tree
19297 * Tree to check.
19298 * @returns {GetDefinition}
19299 * Getter.
19300 */
19301 function definitions(tree) {
19302 /** @type {Record<string, Definition>} */
19303 const cache = Object.create(null)
19304
19305 if (!tree || !tree.type) {
19306 throw new Error('mdast-util-definitions expected node')
19307 }
19308
19309 (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(tree, 'definition', (definition) => {
19310 const id = clean(definition.identifier)
19311 if (id && !own.call(cache, id)) {
19312 cache[id] = definition
19313 }
19314 })
19315
19316 return definition
19317
19318 /** @type {GetDefinition} */
19319 function definition(identifier) {
19320 const id = clean(identifier)
19321 // To do: next major: return `undefined` when not found.
19322 return id && own.call(cache, id) ? cache[id] : null
19323 }
19324 }
19325
19326 /**
19327 * @param {string | null | undefined} [value]
19328 * @returns {string}
19329 */
19330 function clean(value) {
19331 return String(value || '').toUpperCase()
19332 }
19333
19334
19335 /***/ }),
19336
19337 /***/ "../node_modules/mdast-util-from-markdown/dev/lib/index.js":
19338 /*!*****************************************************************!*\
19339 !*** ../node_modules/mdast-util-from-markdown/dev/lib/index.js ***!
19340 \*****************************************************************/
19341 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19342
19343 "use strict";
19344 __webpack_require__.r(__webpack_exports__);
19345 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19346 /* harmony export */ fromMarkdown: () => (/* binding */ fromMarkdown)
19347 /* harmony export */ });
19348 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
19349 /* harmony import */ var mdast_util_to_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mdast-util-to-string */ "../node_modules/mdast-util-to-string/lib/index.js");
19350 /* harmony import */ var micromark_lib_parse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark/lib/parse.js */ "../node_modules/micromark/dev/lib/parse.js");
19351 /* harmony import */ var micromark_lib_preprocess_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark/lib/preprocess.js */ "../node_modules/micromark/dev/lib/preprocess.js");
19352 /* harmony import */ var micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark/lib/postprocess.js */ "../node_modules/micromark/dev/lib/postprocess.js");
19353 /* harmony import */ var micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-util-decode-numeric-character-reference */ "../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js");
19354 /* harmony import */ var micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-util-decode-string */ "../node_modules/micromark-util-decode-string/dev/index.js");
19355 /* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-util-normalize-identifier */ "../node_modules/micromark-util-normalize-identifier/dev/index.js");
19356 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
19357 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
19358 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
19359 /* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! decode-named-character-reference */ "../node_modules/decode-named-character-reference/index.dom.js");
19360 /* harmony import */ var unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! unist-util-stringify-position */ "../node_modules/unist-util-stringify-position/lib/index.js");
19361 /**
19362 * @typedef {import('micromark-util-types').Encoding} Encoding
19363 * @typedef {import('micromark-util-types').Event} Event
19364 * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
19365 * @typedef {import('micromark-util-types').Token} Token
19366 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
19367 * @typedef {import('micromark-util-types').Value} Value
19368 *
19369 * @typedef {import('unist').Parent} UnistParent
19370 * @typedef {import('unist').Point} Point
19371 *
19372 * @typedef {import('mdast').PhrasingContent} PhrasingContent
19373 * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent
19374 * @typedef {import('mdast').Content} Content
19375 * @typedef {import('mdast').Break} Break
19376 * @typedef {import('mdast').Blockquote} Blockquote
19377 * @typedef {import('mdast').Code} Code
19378 * @typedef {import('mdast').Definition} Definition
19379 * @typedef {import('mdast').Emphasis} Emphasis
19380 * @typedef {import('mdast').Heading} Heading
19381 * @typedef {import('mdast').HTML} HTML
19382 * @typedef {import('mdast').Image} Image
19383 * @typedef {import('mdast').ImageReference} ImageReference
19384 * @typedef {import('mdast').InlineCode} InlineCode
19385 * @typedef {import('mdast').Link} Link
19386 * @typedef {import('mdast').LinkReference} LinkReference
19387 * @typedef {import('mdast').List} List
19388 * @typedef {import('mdast').ListItem} ListItem
19389 * @typedef {import('mdast').Paragraph} Paragraph
19390 * @typedef {import('mdast').Root} Root
19391 * @typedef {import('mdast').Strong} Strong
19392 * @typedef {import('mdast').Text} Text
19393 * @typedef {import('mdast').ThematicBreak} ThematicBreak
19394 * @typedef {import('mdast').ReferenceType} ReferenceType
19395 * @typedef {import('../index.js').CompileData} CompileData
19396 */
19397
19398 /**
19399 * @typedef {Root | Content} Node
19400 * @typedef {Extract<Node, UnistParent>} Parent
19401 *
19402 * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment
19403 */
19404
19405 /**
19406 * @callback Transform
19407 * Extra transform, to change the AST afterwards.
19408 * @param {Root} tree
19409 * Tree to transform.
19410 * @returns {Root | undefined | null | void}
19411 * New tree or nothing (in which case the current tree is used).
19412 *
19413 * @callback Handle
19414 * Handle a token.
19415 * @param {CompileContext} this
19416 * Context.
19417 * @param {Token} token
19418 * Current token.
19419 * @returns {void}
19420 * Nothing.
19421 *
19422 * @typedef {Record<string, Handle>} Handles
19423 * Token types mapping to handles
19424 *
19425 * @callback OnEnterError
19426 * Handle the case where the `right` token is open, but it is closed (by the
19427 * `left` token) or because we reached the end of the document.
19428 * @param {Omit<CompileContext, 'sliceSerialize'>} this
19429 * Context.
19430 * @param {Token | undefined} left
19431 * Left token.
19432 * @param {Token} right
19433 * Right token.
19434 * @returns {void}
19435 * Nothing.
19436 *
19437 * @callback OnExitError
19438 * Handle the case where the `right` token is open but it is closed by
19439 * exiting the `left` token.
19440 * @param {Omit<CompileContext, 'sliceSerialize'>} this
19441 * Context.
19442 * @param {Token} left
19443 * Left token.
19444 * @param {Token} right
19445 * Right token.
19446 * @returns {void}
19447 * Nothing.
19448 *
19449 * @typedef {[Token, OnEnterError | undefined]} TokenTuple
19450 * Open token on the stack, with an optional error handler for when
19451 * that token isn’t closed properly.
19452 */
19453
19454 /**
19455 * @typedef Config
19456 * Configuration.
19457 *
19458 * We have our defaults, but extensions will add more.
19459 * @property {Array<string>} canContainEols
19460 * Token types where line endings are used.
19461 * @property {Handles} enter
19462 * Opening handles.
19463 * @property {Handles} exit
19464 * Closing handles.
19465 * @property {Array<Transform>} transforms
19466 * Tree transforms.
19467 *
19468 * @typedef {Partial<Config>} Extension
19469 * Change how markdown tokens from micromark are turned into mdast.
19470 *
19471 * @typedef CompileContext
19472 * mdast compiler context.
19473 * @property {Array<Node | Fragment>} stack
19474 * Stack of nodes.
19475 * @property {Array<TokenTuple>} tokenStack
19476 * Stack of tokens.
19477 * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData
19478 * Get data from the key/value store.
19479 * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData
19480 * Set data into the key/value store.
19481 * @property {(this: CompileContext) => void} buffer
19482 * Capture some of the output data.
19483 * @property {(this: CompileContext) => string} resume
19484 * Stop capturing and access the output data.
19485 * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter
19486 * Enter a token.
19487 * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit
19488 * Exit a token.
19489 * @property {TokenizeContext['sliceSerialize']} sliceSerialize
19490 * Get the string value of a token.
19491 * @property {Config} config
19492 * Configuration.
19493 *
19494 * @typedef FromMarkdownOptions
19495 * Configuration for how to build mdast.
19496 * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]
19497 * Extensions for this utility to change how tokens are turned into a tree.
19498 *
19499 * @typedef {ParseOptions & FromMarkdownOptions} Options
19500 * Configuration.
19501 */
19502
19503 // To do: micromark: create a registry of tokens?
19504 // To do: next major: don’t return given `Node` from `enter`.
19505 // To do: next major: remove setter/getter.
19506
19507
19508
19509
19510
19511
19512
19513
19514
19515
19516
19517
19518
19519
19520
19521 const own = {}.hasOwnProperty
19522
19523 /**
19524 * @param value
19525 * Markdown to parse.
19526 * @param encoding
19527 * Character encoding for when `value` is `Buffer`.
19528 * @param options
19529 * Configuration.
19530 * @returns
19531 * mdast tree.
19532 */
19533 const fromMarkdown =
19534 /**
19535 * @type {(
19536 * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &
19537 * ((value: Value, options?: Options | null | undefined) => Root)
19538 * )}
19539 */
19540 (
19541 /**
19542 * @param {Value} value
19543 * @param {Encoding | Options | null | undefined} [encoding]
19544 * @param {Options | null | undefined} [options]
19545 * @returns {Root}
19546 */
19547 function (value, encoding, options) {
19548 if (typeof encoding !== 'string') {
19549 options = encoding
19550 encoding = undefined
19551 }
19552
19553 return compiler(options)(
19554 (0,micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_1__.postprocess)(
19555 (0,micromark_lib_parse_js__WEBPACK_IMPORTED_MODULE_2__.parse)(options).document().write((0,micromark_lib_preprocess_js__WEBPACK_IMPORTED_MODULE_3__.preprocess)()(value, encoding, true))
19556 )
19557 )
19558 }
19559 )
19560
19561 /**
19562 * Note this compiler only understand complete buffering, not streaming.
19563 *
19564 * @param {Options | null | undefined} [options]
19565 */
19566 function compiler(options) {
19567 /** @type {Config} */
19568 const config = {
19569 transforms: [],
19570 canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],
19571 enter: {
19572 autolink: opener(link),
19573 autolinkProtocol: onenterdata,
19574 autolinkEmail: onenterdata,
19575 atxHeading: opener(heading),
19576 blockQuote: opener(blockQuote),
19577 characterEscape: onenterdata,
19578 characterReference: onenterdata,
19579 codeFenced: opener(codeFlow),
19580 codeFencedFenceInfo: buffer,
19581 codeFencedFenceMeta: buffer,
19582 codeIndented: opener(codeFlow, buffer),
19583 codeText: opener(codeText, buffer),
19584 codeTextData: onenterdata,
19585 data: onenterdata,
19586 codeFlowValue: onenterdata,
19587 definition: opener(definition),
19588 definitionDestinationString: buffer,
19589 definitionLabelString: buffer,
19590 definitionTitleString: buffer,
19591 emphasis: opener(emphasis),
19592 hardBreakEscape: opener(hardBreak),
19593 hardBreakTrailing: opener(hardBreak),
19594 htmlFlow: opener(html, buffer),
19595 htmlFlowData: onenterdata,
19596 htmlText: opener(html, buffer),
19597 htmlTextData: onenterdata,
19598 image: opener(image),
19599 label: buffer,
19600 link: opener(link),
19601 listItem: opener(listItem),
19602 listItemValue: onenterlistitemvalue,
19603 listOrdered: opener(list, onenterlistordered),
19604 listUnordered: opener(list),
19605 paragraph: opener(paragraph),
19606 reference: onenterreference,
19607 referenceString: buffer,
19608 resourceDestinationString: buffer,
19609 resourceTitleString: buffer,
19610 setextHeading: opener(heading),
19611 strong: opener(strong),
19612 thematicBreak: opener(thematicBreak)
19613 },
19614 exit: {
19615 atxHeading: closer(),
19616 atxHeadingSequence: onexitatxheadingsequence,
19617 autolink: closer(),
19618 autolinkEmail: onexitautolinkemail,
19619 autolinkProtocol: onexitautolinkprotocol,
19620 blockQuote: closer(),
19621 characterEscapeValue: onexitdata,
19622 characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
19623 characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
19624 characterReferenceValue: onexitcharacterreferencevalue,
19625 codeFenced: closer(onexitcodefenced),
19626 codeFencedFence: onexitcodefencedfence,
19627 codeFencedFenceInfo: onexitcodefencedfenceinfo,
19628 codeFencedFenceMeta: onexitcodefencedfencemeta,
19629 codeFlowValue: onexitdata,
19630 codeIndented: closer(onexitcodeindented),
19631 codeText: closer(onexitcodetext),
19632 codeTextData: onexitdata,
19633 data: onexitdata,
19634 definition: closer(),
19635 definitionDestinationString: onexitdefinitiondestinationstring,
19636 definitionLabelString: onexitdefinitionlabelstring,
19637 definitionTitleString: onexitdefinitiontitlestring,
19638 emphasis: closer(),
19639 hardBreakEscape: closer(onexithardbreak),
19640 hardBreakTrailing: closer(onexithardbreak),
19641 htmlFlow: closer(onexithtmlflow),
19642 htmlFlowData: onexitdata,
19643 htmlText: closer(onexithtmltext),
19644 htmlTextData: onexitdata,
19645 image: closer(onexitimage),
19646 label: onexitlabel,
19647 labelText: onexitlabeltext,
19648 lineEnding: onexitlineending,
19649 link: closer(onexitlink),
19650 listItem: closer(),
19651 listOrdered: closer(),
19652 listUnordered: closer(),
19653 paragraph: closer(),
19654 referenceString: onexitreferencestring,
19655 resourceDestinationString: onexitresourcedestinationstring,
19656 resourceTitleString: onexitresourcetitlestring,
19657 resource: onexitresource,
19658 setextHeading: closer(onexitsetextheading),
19659 setextHeadingLineSequence: onexitsetextheadinglinesequence,
19660 setextHeadingText: onexitsetextheadingtext,
19661 strong: closer(),
19662 thematicBreak: closer()
19663 }
19664 }
19665
19666 configure(config, (options || {}).mdastExtensions || [])
19667
19668 /** @type {CompileData} */
19669 const data = {}
19670
19671 return compile
19672
19673 /**
19674 * Turn micromark events into an mdast tree.
19675 *
19676 * @param {Array<Event>} events
19677 * Events.
19678 * @returns {Root}
19679 * mdast tree.
19680 */
19681 function compile(events) {
19682 /** @type {Root} */
19683 let tree = {type: 'root', children: []}
19684 /** @type {Omit<CompileContext, 'sliceSerialize'>} */
19685 const context = {
19686 stack: [tree],
19687 tokenStack: [],
19688 config,
19689 enter,
19690 exit,
19691 buffer,
19692 resume,
19693 setData,
19694 getData
19695 }
19696 /** @type {Array<number>} */
19697 const listStack = []
19698 let index = -1
19699
19700 while (++index < events.length) {
19701 // We preprocess lists to add `listItem` tokens, and to infer whether
19702 // items the list itself are spread out.
19703 if (
19704 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered ||
19705 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered
19706 ) {
19707 if (events[index][0] === 'enter') {
19708 listStack.push(index)
19709 } else {
19710 const tail = listStack.pop()
19711 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tail === 'number', 'expected list ot be open')
19712 index = prepareList(events, tail, index)
19713 }
19714 }
19715 }
19716
19717 index = -1
19718
19719 while (++index < events.length) {
19720 const handler = config[events[index][0]]
19721
19722 if (own.call(handler, events[index][1].type)) {
19723 handler[events[index][1].type].call(
19724 Object.assign(
19725 {sliceSerialize: events[index][2].sliceSerialize},
19726 context
19727 ),
19728 events[index][1]
19729 )
19730 }
19731 }
19732
19733 // Handle tokens still being open.
19734 if (context.tokenStack.length > 0) {
19735 const tail = context.tokenStack[context.tokenStack.length - 1]
19736 const handler = tail[1] || defaultOnError
19737 handler.call(context, undefined, tail[0])
19738 }
19739
19740 // Figure out `root` position.
19741 tree.position = {
19742 start: point(
19743 events.length > 0 ? events[0][1].start : {line: 1, column: 1, offset: 0}
19744 ),
19745 end: point(
19746 events.length > 0
19747 ? events[events.length - 2][1].end
19748 : {line: 1, column: 1, offset: 0}
19749 )
19750 }
19751
19752 // Call transforms.
19753 index = -1
19754 while (++index < config.transforms.length) {
19755 tree = config.transforms[index](tree) || tree
19756 }
19757
19758 return tree
19759 }
19760
19761 /**
19762 * @param {Array<Event>} events
19763 * @param {number} start
19764 * @param {number} length
19765 * @returns {number}
19766 */
19767 function prepareList(events, start, length) {
19768 let index = start - 1
19769 let containerBalance = -1
19770 let listSpread = false
19771 /** @type {Token | undefined} */
19772 let listItem
19773 /** @type {number | undefined} */
19774 let lineIndex
19775 /** @type {number | undefined} */
19776 let firstBlankLineIndex
19777 /** @type {boolean | undefined} */
19778 let atMarker
19779
19780 while (++index <= length) {
19781 const event = events[index]
19782
19783 if (
19784 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered ||
19785 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered ||
19786 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuote
19787 ) {
19788 if (event[0] === 'enter') {
19789 containerBalance++
19790 } else {
19791 containerBalance--
19792 }
19793
19794 atMarker = undefined
19795 } else if (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank) {
19796 if (event[0] === 'enter') {
19797 if (
19798 listItem &&
19799 !atMarker &&
19800 !containerBalance &&
19801 !firstBlankLineIndex
19802 ) {
19803 firstBlankLineIndex = index
19804 }
19805
19806 atMarker = undefined
19807 }
19808 } else if (
19809 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix ||
19810 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemValue ||
19811 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemMarker ||
19812 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix ||
19813 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefixWhitespace
19814 ) {
19815 // Empty.
19816 } else {
19817 atMarker = undefined
19818 }
19819
19820 if (
19821 (!containerBalance &&
19822 event[0] === 'enter' &&
19823 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix) ||
19824 (containerBalance === -1 &&
19825 event[0] === 'exit' &&
19826 (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered ||
19827 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered))
19828 ) {
19829 if (listItem) {
19830 let tailIndex = index
19831 lineIndex = undefined
19832
19833 while (tailIndex--) {
19834 const tailEvent = events[tailIndex]
19835
19836 if (
19837 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding ||
19838 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank
19839 ) {
19840 if (tailEvent[0] === 'exit') continue
19841
19842 if (lineIndex) {
19843 events[lineIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank
19844 listSpread = true
19845 }
19846
19847 tailEvent[1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding
19848 lineIndex = tailIndex
19849 } else if (
19850 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix ||
19851 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuotePrefix ||
19852 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuotePrefixWhitespace ||
19853 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuoteMarker ||
19854 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemIndent
19855 ) {
19856 // Empty
19857 } else {
19858 break
19859 }
19860 }
19861
19862 if (
19863 firstBlankLineIndex &&
19864 (!lineIndex || firstBlankLineIndex < lineIndex)
19865 ) {
19866 listItem._spread = true
19867 }
19868
19869 // Fix position.
19870 listItem.end = Object.assign(
19871 {},
19872 lineIndex ? events[lineIndex][1].start : event[1].end
19873 )
19874
19875 events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])
19876 index++
19877 length++
19878 }
19879
19880 // Create a new list item.
19881 if (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix) {
19882 listItem = {
19883 type: 'listItem',
19884 _spread: false,
19885 start: Object.assign({}, event[1].start),
19886 // @ts-expect-error: we’ll add `end` in a second.
19887 end: undefined
19888 }
19889 // @ts-expect-error: `listItem` is most definitely defined, TS...
19890 events.splice(index, 0, ['enter', listItem, event[2]])
19891 index++
19892 length++
19893 firstBlankLineIndex = undefined
19894 atMarker = true
19895 }
19896 }
19897 }
19898
19899 events[start][1]._spread = listSpread
19900 return length
19901 }
19902
19903 /**
19904 * Set data.
19905 *
19906 * @template {keyof CompileData} Key
19907 * Field type.
19908 * @param {Key} key
19909 * Key of field.
19910 * @param {CompileData[Key]} [value]
19911 * New value.
19912 * @returns {void}
19913 * Nothing.
19914 */
19915 function setData(key, value) {
19916 data[key] = value
19917 }
19918
19919 /**
19920 * Get data.
19921 *
19922 * @template {keyof CompileData} Key
19923 * Field type.
19924 * @param {Key} key
19925 * Key of field.
19926 * @returns {CompileData[Key]}
19927 * Value.
19928 */
19929 function getData(key) {
19930 return data[key]
19931 }
19932
19933 /**
19934 * Create an opener handle.
19935 *
19936 * @param {(token: Token) => Node} create
19937 * Create a node.
19938 * @param {Handle} [and]
19939 * Optional function to also run.
19940 * @returns {Handle}
19941 * Handle.
19942 */
19943 function opener(create, and) {
19944 return open
19945
19946 /**
19947 * @this {CompileContext}
19948 * @param {Token} token
19949 * @returns {void}
19950 */
19951 function open(token) {
19952 enter.call(this, create(token), token)
19953 if (and) and.call(this, token)
19954 }
19955 }
19956
19957 /**
19958 * @this {CompileContext}
19959 * @returns {void}
19960 */
19961 function buffer() {
19962 this.stack.push({type: 'fragment', children: []})
19963 }
19964
19965 /**
19966 * @template {Node} Kind
19967 * Node type.
19968 * @this {CompileContext}
19969 * Context.
19970 * @param {Kind} node
19971 * Node to enter.
19972 * @param {Token} token
19973 * Corresponding token.
19974 * @param {OnEnterError | undefined} [errorHandler]
19975 * Handle the case where this token is open, but it is closed by something else.
19976 * @returns {Kind}
19977 * The given node.
19978 */
19979 function enter(node, token, errorHandler) {
19980 const parent = this.stack[this.stack.length - 1]
19981 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(parent, 'expected `parent`')
19982 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in parent, 'expected `parent`')
19983 // @ts-expect-error: Assume `Node` can exist as a child of `parent`.
19984 parent.children.push(node)
19985 this.stack.push(node)
19986 this.tokenStack.push([token, errorHandler])
19987 // @ts-expect-error: `end` will be patched later.
19988 node.position = {start: point(token.start)}
19989 return node
19990 }
19991
19992 /**
19993 * Create a closer handle.
19994 *
19995 * @param {Handle} [and]
19996 * Optional function to also run.
19997 * @returns {Handle}
19998 * Handle.
19999 */
20000 function closer(and) {
20001 return close
20002
20003 /**
20004 * @this {CompileContext}
20005 * @param {Token} token
20006 * @returns {void}
20007 */
20008 function close(token) {
20009 if (and) and.call(this, token)
20010 exit.call(this, token)
20011 }
20012 }
20013
20014 /**
20015 * @this {CompileContext}
20016 * Context.
20017 * @param {Token} token
20018 * Corresponding token.
20019 * @param {OnExitError | undefined} [onExitError]
20020 * Handle the case where another token is open.
20021 * @returns {Node}
20022 * The closed node.
20023 */
20024 function exit(token, onExitError) {
20025 const node = this.stack.pop()
20026 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected `node`')
20027 const open = this.tokenStack.pop()
20028
20029 if (!open) {
20030 throw new Error(
20031 'Cannot close `' +
20032 token.type +
20033 '` (' +
20034 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: token.start, end: token.end}) +
20035 '): it’s not open'
20036 )
20037 } else if (open[0].type !== token.type) {
20038 if (onExitError) {
20039 onExitError.call(this, token, open[0])
20040 } else {
20041 const handler = open[1] || defaultOnError
20042 handler.call(this, token, open[0])
20043 }
20044 }
20045
20046 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type !== 'fragment', 'unexpected fragment `exit`ed')
20047 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.position, 'expected `position` to be defined')
20048 node.position.end = point(token.end)
20049 return node
20050 }
20051
20052 /**
20053 * @this {CompileContext}
20054 * @returns {string}
20055 */
20056 function resume() {
20057 return (0,mdast_util_to_string__WEBPACK_IMPORTED_MODULE_6__.toString)(this.stack.pop())
20058 }
20059
20060 //
20061 // Handlers.
20062 //
20063
20064 /**
20065 * @this {CompileContext}
20066 * @type {Handle}
20067 */
20068 function onenterlistordered() {
20069 setData('expectingFirstListItemValue', true)
20070 }
20071
20072 /**
20073 * @this {CompileContext}
20074 * @type {Handle}
20075 */
20076 function onenterlistitemvalue(token) {
20077 if (getData('expectingFirstListItemValue')) {
20078 const ancestor = this.stack[this.stack.length - 2]
20079 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor, 'expected nodes on stack')
20080 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor.type === 'list', 'expected list on stack')
20081 ancestor.start = Number.parseInt(
20082 this.sliceSerialize(token),
20083 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal
20084 )
20085 setData('expectingFirstListItemValue')
20086 }
20087 }
20088
20089 /**
20090 * @this {CompileContext}
20091 * @type {Handle}
20092 */
20093 function onexitcodefencedfenceinfo() {
20094 const data = this.resume()
20095 const node = this.stack[this.stack.length - 1]
20096 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20097 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20098 node.lang = data
20099 }
20100
20101 /**
20102 * @this {CompileContext}
20103 * @type {Handle}
20104 */
20105 function onexitcodefencedfencemeta() {
20106 const data = this.resume()
20107 const node = this.stack[this.stack.length - 1]
20108 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20109 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20110 node.meta = data
20111 }
20112
20113 /**
20114 * @this {CompileContext}
20115 * @type {Handle}
20116 */
20117 function onexitcodefencedfence() {
20118 // Exit if this is the closing fence.
20119 if (getData('flowCodeInside')) return
20120 this.buffer()
20121 setData('flowCodeInside', true)
20122 }
20123
20124 /**
20125 * @this {CompileContext}
20126 * @type {Handle}
20127 */
20128 function onexitcodefenced() {
20129 const data = this.resume()
20130 const node = this.stack[this.stack.length - 1]
20131 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20132 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20133
20134 node.value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '')
20135 setData('flowCodeInside')
20136 }
20137
20138 /**
20139 * @this {CompileContext}
20140 * @type {Handle}
20141 */
20142 function onexitcodeindented() {
20143 const data = this.resume()
20144 const node = this.stack[this.stack.length - 1]
20145 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20146 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20147
20148 node.value = data.replace(/(\r?\n|\r)$/g, '')
20149 }
20150
20151 /**
20152 * @this {CompileContext}
20153 * @type {Handle}
20154 */
20155 function onexitdefinitionlabelstring(token) {
20156 const label = this.resume()
20157 const node = this.stack[this.stack.length - 1]
20158 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20159 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20160
20161 node.label = label
20162 node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(
20163 this.sliceSerialize(token)
20164 ).toLowerCase()
20165 }
20166
20167 /**
20168 * @this {CompileContext}
20169 * @type {Handle}
20170 */
20171 function onexitdefinitiontitlestring() {
20172 const data = this.resume()
20173 const node = this.stack[this.stack.length - 1]
20174 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20175 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20176
20177 node.title = data
20178 }
20179
20180 /**
20181 * @this {CompileContext}
20182 * @type {Handle}
20183 */
20184 function onexitdefinitiondestinationstring() {
20185 const data = this.resume()
20186 const node = this.stack[this.stack.length - 1]
20187 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20188 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20189
20190 node.url = data
20191 }
20192
20193 /**
20194 * @this {CompileContext}
20195 * @type {Handle}
20196 */
20197 function onexitatxheadingsequence(token) {
20198 const node = this.stack[this.stack.length - 1]
20199 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20200 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'heading', 'expected heading on stack')
20201
20202 if (!node.depth) {
20203 const depth = this.sliceSerialize(token).length
20204
20205 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20206 depth === 1 ||
20207 depth === 2 ||
20208 depth === 3 ||
20209 depth === 4 ||
20210 depth === 5 ||
20211 depth === 6,
20212 'expected `depth` between `1` and `6`'
20213 )
20214
20215 node.depth = depth
20216 }
20217 }
20218
20219 /**
20220 * @this {CompileContext}
20221 * @type {Handle}
20222 */
20223 function onexitsetextheadingtext() {
20224 setData('setextHeadingSlurpLineEnding', true)
20225 }
20226
20227 /**
20228 * @this {CompileContext}
20229 * @type {Handle}
20230 */
20231 function onexitsetextheadinglinesequence(token) {
20232 const node = this.stack[this.stack.length - 1]
20233 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20234 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'heading', 'expected heading on stack')
20235
20236 node.depth =
20237 this.sliceSerialize(token).charCodeAt(0) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_9__.codes.equalsTo ? 1 : 2
20238 }
20239
20240 /**
20241 * @this {CompileContext}
20242 * @type {Handle}
20243 */
20244 function onexitsetextheading() {
20245 setData('setextHeadingSlurpLineEnding')
20246 }
20247
20248 /**
20249 * @this {CompileContext}
20250 * @type {Handle}
20251 */
20252
20253 function onenterdata(token) {
20254 const node = this.stack[this.stack.length - 1]
20255 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20256 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in node, 'expected parent on stack')
20257
20258 let tail = node.children[node.children.length - 1]
20259
20260 if (!tail || tail.type !== 'text') {
20261 // Add a new text node.
20262 tail = text()
20263 // @ts-expect-error: we’ll add `end` later.
20264 tail.position = {start: point(token.start)}
20265 // @ts-expect-error: Assume `parent` accepts `text`.
20266 node.children.push(tail)
20267 }
20268
20269 this.stack.push(tail)
20270 }
20271
20272 /**
20273 * @this {CompileContext}
20274 * @type {Handle}
20275 */
20276
20277 function onexitdata(token) {
20278 const tail = this.stack.pop()
20279 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail, 'expected a `node` to be on the stack')
20280 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('value' in tail, 'expected a `literal` to be on the stack')
20281 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected `node` to have an open position')
20282 tail.value += this.sliceSerialize(token)
20283 tail.position.end = point(token.end)
20284 }
20285
20286 /**
20287 * @this {CompileContext}
20288 * @type {Handle}
20289 */
20290
20291 function onexitlineending(token) {
20292 const context = this.stack[this.stack.length - 1]
20293 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(context, 'expected `node`')
20294
20295 // If we’re at a hard break, include the line ending in there.
20296 if (getData('atHardBreak')) {
20297 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in context, 'expected `parent`')
20298 const tail = context.children[context.children.length - 1]
20299 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected tail to have a starting position')
20300 tail.position.end = point(token.end)
20301 setData('atHardBreak')
20302 return
20303 }
20304
20305 if (
20306 !getData('setextHeadingSlurpLineEnding') &&
20307 config.canContainEols.includes(context.type)
20308 ) {
20309 onenterdata.call(this, token)
20310 onexitdata.call(this, token)
20311 }
20312 }
20313
20314 /**
20315 * @this {CompileContext}
20316 * @type {Handle}
20317 */
20318
20319 function onexithardbreak() {
20320 setData('atHardBreak', true)
20321 }
20322
20323 /**
20324 * @this {CompileContext}
20325 * @type {Handle}
20326 */
20327
20328 function onexithtmlflow() {
20329 const data = this.resume()
20330 const node = this.stack[this.stack.length - 1]
20331 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20332 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'html', 'expected html on stack')
20333
20334 node.value = data
20335 }
20336
20337 /**
20338 * @this {CompileContext}
20339 * @type {Handle}
20340 */
20341
20342 function onexithtmltext() {
20343 const data = this.resume()
20344 const node = this.stack[this.stack.length - 1]
20345 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20346 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'html', 'expected html on stack')
20347
20348 node.value = data
20349 }
20350
20351 /**
20352 * @this {CompileContext}
20353 * @type {Handle}
20354 */
20355
20356 function onexitcodetext() {
20357 const data = this.resume()
20358 const node = this.stack[this.stack.length - 1]
20359 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20360 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'inlineCode', 'expected inline code on stack')
20361
20362 node.value = data
20363 }
20364
20365 /**
20366 * @this {CompileContext}
20367 * @type {Handle}
20368 */
20369
20370 function onexitlink() {
20371 const node = this.stack[this.stack.length - 1]
20372 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20373 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20374
20375 // Note: there are also `identifier` and `label` fields on this link node!
20376 // These are used / cleaned here.
20377
20378 // To do: clean.
20379 if (getData('inReference')) {
20380 /** @type {ReferenceType} */
20381 const referenceType = getData('referenceType') || 'shortcut'
20382
20383 node.type += 'Reference'
20384 // @ts-expect-error: mutate.
20385 node.referenceType = referenceType
20386 // @ts-expect-error: mutate.
20387 delete node.url
20388 delete node.title
20389 } else {
20390 // @ts-expect-error: mutate.
20391 delete node.identifier
20392 // @ts-expect-error: mutate.
20393 delete node.label
20394 }
20395
20396 setData('referenceType')
20397 }
20398
20399 /**
20400 * @this {CompileContext}
20401 * @type {Handle}
20402 */
20403
20404 function onexitimage() {
20405 const node = this.stack[this.stack.length - 1]
20406 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20407 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'image', 'expected image on stack')
20408
20409 // Note: there are also `identifier` and `label` fields on this link node!
20410 // These are used / cleaned here.
20411
20412 // To do: clean.
20413 if (getData('inReference')) {
20414 /** @type {ReferenceType} */
20415 const referenceType = getData('referenceType') || 'shortcut'
20416
20417 node.type += 'Reference'
20418 // @ts-expect-error: mutate.
20419 node.referenceType = referenceType
20420 // @ts-expect-error: mutate.
20421 delete node.url
20422 delete node.title
20423 } else {
20424 // @ts-expect-error: mutate.
20425 delete node.identifier
20426 // @ts-expect-error: mutate.
20427 delete node.label
20428 }
20429
20430 setData('referenceType')
20431 }
20432
20433 /**
20434 * @this {CompileContext}
20435 * @type {Handle}
20436 */
20437
20438 function onexitlabeltext(token) {
20439 const string = this.sliceSerialize(token)
20440 const ancestor = this.stack[this.stack.length - 2]
20441 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor, 'expected ancestor on stack')
20442 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20443 ancestor.type === 'image' || ancestor.type === 'link',
20444 'expected image or link on stack'
20445 )
20446
20447 // @ts-expect-error: stash this on the node, as it might become a reference
20448 // later.
20449 ancestor.label = (0,micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_10__.decodeString)(string)
20450 // @ts-expect-error: same as above.
20451 ancestor.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(string).toLowerCase()
20452 }
20453
20454 /**
20455 * @this {CompileContext}
20456 * @type {Handle}
20457 */
20458
20459 function onexitlabel() {
20460 const fragment = this.stack[this.stack.length - 1]
20461 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(fragment, 'expected node on stack')
20462 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(fragment.type === 'fragment', 'expected fragment on stack')
20463 const value = this.resume()
20464 const node = this.stack[this.stack.length - 1]
20465 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20466 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20467 node.type === 'image' || node.type === 'link',
20468 'expected image or link on stack'
20469 )
20470
20471 // Assume a reference.
20472 setData('inReference', true)
20473
20474 if (node.type === 'link') {
20475 /** @type {Array<StaticPhrasingContent>} */
20476 // @ts-expect-error: Assume static phrasing content.
20477 const children = fragment.children
20478
20479 node.children = children
20480 } else {
20481 node.alt = value
20482 }
20483 }
20484
20485 /**
20486 * @this {CompileContext}
20487 * @type {Handle}
20488 */
20489
20490 function onexitresourcedestinationstring() {
20491 const data = this.resume()
20492 const node = this.stack[this.stack.length - 1]
20493 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20494 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20495 node.type === 'image' || node.type === 'link',
20496 'expected image or link on stack'
20497 )
20498 node.url = data
20499 }
20500
20501 /**
20502 * @this {CompileContext}
20503 * @type {Handle}
20504 */
20505
20506 function onexitresourcetitlestring() {
20507 const data = this.resume()
20508 const node = this.stack[this.stack.length - 1]
20509 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20510 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20511 node.type === 'image' || node.type === 'link',
20512 'expected image or link on stack'
20513 )
20514 node.title = data
20515 }
20516
20517 /**
20518 * @this {CompileContext}
20519 * @type {Handle}
20520 */
20521
20522 function onexitresource() {
20523 setData('inReference')
20524 }
20525
20526 /**
20527 * @this {CompileContext}
20528 * @type {Handle}
20529 */
20530
20531 function onenterreference() {
20532 setData('referenceType', 'collapsed')
20533 }
20534
20535 /**
20536 * @this {CompileContext}
20537 * @type {Handle}
20538 */
20539
20540 function onexitreferencestring(token) {
20541 const label = this.resume()
20542 const node = this.stack[this.stack.length - 1]
20543 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20544 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20545 node.type === 'image' || node.type === 'link',
20546 'expected image reference or link reference on stack'
20547 )
20548
20549 // @ts-expect-error: stash this on the node, as it might become a reference
20550 // later.
20551 node.label = label
20552 // @ts-expect-error: same as above.
20553 node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(
20554 this.sliceSerialize(token)
20555 ).toLowerCase()
20556 setData('referenceType', 'full')
20557 }
20558
20559 /**
20560 * @this {CompileContext}
20561 * @type {Handle}
20562 */
20563
20564 function onexitcharacterreferencemarker(token) {
20565 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20566 token.type === 'characterReferenceMarkerNumeric' ||
20567 token.type === 'characterReferenceMarkerHexadecimal'
20568 )
20569 setData('characterReferenceType', token.type)
20570 }
20571
20572 /**
20573 * @this {CompileContext}
20574 * @type {Handle}
20575 */
20576 function onexitcharacterreferencevalue(token) {
20577 const data = this.sliceSerialize(token)
20578 const type = getData('characterReferenceType')
20579 /** @type {string} */
20580 let value
20581
20582 if (type) {
20583 value = (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_11__.decodeNumericCharacterReference)(
20584 data,
20585 type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.characterReferenceMarkerNumeric
20586 ? micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal
20587 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseHexadecimal
20588 )
20589 setData('characterReferenceType')
20590 } else {
20591 const result = (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_12__.decodeNamedCharacterReference)(data)
20592 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(result !== false, 'expected reference to decode')
20593 value = result
20594 }
20595
20596 const tail = this.stack.pop()
20597 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail, 'expected `node`')
20598 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected `node.position`')
20599 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('value' in tail, 'expected `node.value`')
20600 tail.value += value
20601 tail.position.end = point(token.end)
20602 }
20603
20604 /**
20605 * @this {CompileContext}
20606 * @type {Handle}
20607 */
20608 function onexitautolinkprotocol(token) {
20609 onexitdata.call(this, token)
20610 const node = this.stack[this.stack.length - 1]
20611 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20612 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20613
20614 node.url = this.sliceSerialize(token)
20615 }
20616
20617 /**
20618 * @this {CompileContext}
20619 * @type {Handle}
20620 */
20621 function onexitautolinkemail(token) {
20622 onexitdata.call(this, token)
20623 const node = this.stack[this.stack.length - 1]
20624 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20625 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20626
20627 node.url = 'mailto:' + this.sliceSerialize(token)
20628 }
20629
20630 //
20631 // Creaters.
20632 //
20633
20634 /** @returns {Blockquote} */
20635 function blockQuote() {
20636 return {type: 'blockquote', children: []}
20637 }
20638
20639 /** @returns {Code} */
20640 function codeFlow() {
20641 return {type: 'code', lang: null, meta: null, value: ''}
20642 }
20643
20644 /** @returns {InlineCode} */
20645 function codeText() {
20646 return {type: 'inlineCode', value: ''}
20647 }
20648
20649 /** @returns {Definition} */
20650 function definition() {
20651 return {
20652 type: 'definition',
20653 identifier: '',
20654 label: null,
20655 title: null,
20656 url: ''
20657 }
20658 }
20659
20660 /** @returns {Emphasis} */
20661 function emphasis() {
20662 return {type: 'emphasis', children: []}
20663 }
20664
20665 /** @returns {Heading} */
20666 function heading() {
20667 // @ts-expect-error `depth` will be set later.
20668 return {type: 'heading', depth: undefined, children: []}
20669 }
20670
20671 /** @returns {Break} */
20672 function hardBreak() {
20673 return {type: 'break'}
20674 }
20675
20676 /** @returns {HTML} */
20677 function html() {
20678 return {type: 'html', value: ''}
20679 }
20680
20681 /** @returns {Image} */
20682 function image() {
20683 return {type: 'image', title: null, url: '', alt: null}
20684 }
20685
20686 /** @returns {Link} */
20687 function link() {
20688 return {type: 'link', title: null, url: '', children: []}
20689 }
20690
20691 /**
20692 * @param {Token} token
20693 * @returns {List}
20694 */
20695 function list(token) {
20696 return {
20697 type: 'list',
20698 ordered: token.type === 'listOrdered',
20699 start: null,
20700 spread: token._spread,
20701 children: []
20702 }
20703 }
20704
20705 /**
20706 * @param {Token} token
20707 * @returns {ListItem}
20708 */
20709 function listItem(token) {
20710 return {
20711 type: 'listItem',
20712 spread: token._spread,
20713 checked: null,
20714 children: []
20715 }
20716 }
20717
20718 /** @returns {Paragraph} */
20719 function paragraph() {
20720 return {type: 'paragraph', children: []}
20721 }
20722
20723 /** @returns {Strong} */
20724 function strong() {
20725 return {type: 'strong', children: []}
20726 }
20727
20728 /** @returns {Text} */
20729 function text() {
20730 return {type: 'text', value: ''}
20731 }
20732
20733 /** @returns {ThematicBreak} */
20734 function thematicBreak() {
20735 return {type: 'thematicBreak'}
20736 }
20737 }
20738
20739 /**
20740 * Copy a point-like value.
20741 *
20742 * @param {Point} d
20743 * Point-like value.
20744 * @returns {Point}
20745 * unist point.
20746 */
20747 function point(d) {
20748 return {line: d.line, column: d.column, offset: d.offset}
20749 }
20750
20751 /**
20752 * @param {Config} combined
20753 * @param {Array<Extension | Array<Extension>>} extensions
20754 * @returns {void}
20755 */
20756 function configure(combined, extensions) {
20757 let index = -1
20758
20759 while (++index < extensions.length) {
20760 const value = extensions[index]
20761
20762 if (Array.isArray(value)) {
20763 configure(combined, value)
20764 } else {
20765 extension(combined, value)
20766 }
20767 }
20768 }
20769
20770 /**
20771 * @param {Config} combined
20772 * @param {Extension} extension
20773 * @returns {void}
20774 */
20775 function extension(combined, extension) {
20776 /** @type {keyof Extension} */
20777 let key
20778
20779 for (key in extension) {
20780 if (own.call(extension, key)) {
20781 if (key === 'canContainEols') {
20782 const right = extension[key]
20783 if (right) {
20784 combined[key].push(...right)
20785 }
20786 } else if (key === 'transforms') {
20787 const right = extension[key]
20788 if (right) {
20789 combined[key].push(...right)
20790 }
20791 } else if (key === 'enter' || key === 'exit') {
20792 const right = extension[key]
20793 if (right) {
20794 Object.assign(combined[key], right)
20795 }
20796 }
20797 }
20798 }
20799 }
20800
20801 /** @type {OnEnterError} */
20802 function defaultOnError(left, right) {
20803 if (left) {
20804 throw new Error(
20805 'Cannot close `' +
20806 left.type +
20807 '` (' +
20808 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: left.start, end: left.end}) +
20809 '): a different token (`' +
20810 right.type +
20811 '`, ' +
20812 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: right.start, end: right.end}) +
20813 ') is open'
20814 )
20815 } else {
20816 throw new Error(
20817 'Cannot close document, a token (`' +
20818 right.type +
20819 '`, ' +
20820 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: right.start, end: right.end}) +
20821 ') is still open'
20822 )
20823 }
20824 }
20825
20826
20827 /***/ }),
20828
20829 /***/ "../node_modules/mdast-util-to-hast/lib/footer.js":
20830 /*!********************************************************!*\
20831 !*** ../node_modules/mdast-util-to-hast/lib/footer.js ***!
20832 \********************************************************/
20833 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20834
20835 "use strict";
20836 __webpack_require__.r(__webpack_exports__);
20837 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20838 /* harmony export */ footer: () => (/* binding */ footer)
20839 /* harmony export */ });
20840 /* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ "../node_modules/micromark-util-sanitize-uri/dev/index.js");
20841 /**
20842 * @typedef {import('hast').Element} Element
20843 * @typedef {import('hast').ElementContent} ElementContent
20844 *
20845 * @typedef {import('./state.js').State} State
20846 */
20847
20848
20849
20850 /**
20851 * Generate a hast footer for called footnote definitions.
20852 *
20853 * @param {State} state
20854 * Info passed around.
20855 * @returns {Element | undefined}
20856 * `section` element or `undefined`.
20857 */
20858 function footer(state) {
20859 /** @type {Array<ElementContent>} */
20860 const listItems = []
20861 let index = -1
20862
20863 while (++index < state.footnoteOrder.length) {
20864 const def = state.footnoteById[state.footnoteOrder[index]]
20865
20866 if (!def) {
20867 continue
20868 }
20869
20870 const content = state.all(def)
20871 const id = String(def.identifier).toUpperCase()
20872 const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())
20873 let referenceIndex = 0
20874 /** @type {Array<ElementContent>} */
20875 const backReferences = []
20876
20877 while (++referenceIndex <= state.footnoteCounts[id]) {
20878 /** @type {Element} */
20879 const backReference = {
20880 type: 'element',
20881 tagName: 'a',
20882 properties: {
20883 href:
20884 '#' +
20885 state.clobberPrefix +
20886 'fnref-' +
20887 safeId +
20888 (referenceIndex > 1 ? '-' + referenceIndex : ''),
20889 dataFootnoteBackref: true,
20890 className: ['data-footnote-backref'],
20891 ariaLabel: state.footnoteBackLabel
20892 },
20893 children: [{type: 'text', value: '↩'}]
20894 }
20895
20896 if (referenceIndex > 1) {
20897 backReference.children.push({
20898 type: 'element',
20899 tagName: 'sup',
20900 children: [{type: 'text', value: String(referenceIndex)}]
20901 })
20902 }
20903
20904 if (backReferences.length > 0) {
20905 backReferences.push({type: 'text', value: ' '})
20906 }
20907
20908 backReferences.push(backReference)
20909 }
20910
20911 const tail = content[content.length - 1]
20912
20913 if (tail && tail.type === 'element' && tail.tagName === 'p') {
20914 const tailTail = tail.children[tail.children.length - 1]
20915 if (tailTail && tailTail.type === 'text') {
20916 tailTail.value += ' '
20917 } else {
20918 tail.children.push({type: 'text', value: ' '})
20919 }
20920
20921 tail.children.push(...backReferences)
20922 } else {
20923 content.push(...backReferences)
20924 }
20925
20926 /** @type {Element} */
20927 const listItem = {
20928 type: 'element',
20929 tagName: 'li',
20930 properties: {id: state.clobberPrefix + 'fn-' + safeId},
20931 children: state.wrap(content, true)
20932 }
20933
20934 state.patch(def, listItem)
20935
20936 listItems.push(listItem)
20937 }
20938
20939 if (listItems.length === 0) {
20940 return
20941 }
20942
20943 return {
20944 type: 'element',
20945 tagName: 'section',
20946 properties: {dataFootnotes: true, className: ['footnotes']},
20947 children: [
20948 {
20949 type: 'element',
20950 tagName: state.footnoteLabelTagName,
20951 properties: {
20952 // To do: use structured clone.
20953 ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),
20954 id: 'footnote-label'
20955 },
20956 children: [{type: 'text', value: state.footnoteLabel}]
20957 },
20958 {type: 'text', value: '\n'},
20959 {
20960 type: 'element',
20961 tagName: 'ol',
20962 properties: {},
20963 children: state.wrap(listItems, true)
20964 },
20965 {type: 'text', value: '\n'}
20966 ]
20967 }
20968 }
20969
20970
20971 /***/ }),
20972
20973 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js":
20974 /*!*********************************************************************!*\
20975 !*** ../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js ***!
20976 \*********************************************************************/
20977 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20978
20979 "use strict";
20980 __webpack_require__.r(__webpack_exports__);
20981 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20982 /* harmony export */ blockquote: () => (/* binding */ blockquote)
20983 /* harmony export */ });
20984 /**
20985 * @typedef {import('hast').Element} Element
20986 * @typedef {import('mdast').Blockquote} Blockquote
20987 * @typedef {import('../state.js').State} State
20988 */
20989
20990 /**
20991 * Turn an mdast `blockquote` node into hast.
20992 *
20993 * @param {State} state
20994 * Info passed around.
20995 * @param {Blockquote} node
20996 * mdast node.
20997 * @returns {Element}
20998 * hast node.
20999 */
21000 function blockquote(state, node) {
21001 /** @type {Element} */
21002 const result = {
21003 type: 'element',
21004 tagName: 'blockquote',
21005 properties: {},
21006 children: state.wrap(state.all(node), true)
21007 }
21008 state.patch(node, result)
21009 return state.applyData(node, result)
21010 }
21011
21012
21013 /***/ }),
21014
21015 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/break.js":
21016 /*!****************************************************************!*\
21017 !*** ../node_modules/mdast-util-to-hast/lib/handlers/break.js ***!
21018 \****************************************************************/
21019 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21020
21021 "use strict";
21022 __webpack_require__.r(__webpack_exports__);
21023 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21024 /* harmony export */ hardBreak: () => (/* binding */ hardBreak)
21025 /* harmony export */ });
21026 /**
21027 * @typedef {import('hast').Element} Element
21028 * @typedef {import('hast').Text} Text
21029 * @typedef {import('mdast').Break} Break
21030 * @typedef {import('../state.js').State} State
21031 */
21032
21033 /**
21034 * Turn an mdast `break` node into hast.
21035 *
21036 * @param {State} state
21037 * Info passed around.
21038 * @param {Break} node
21039 * mdast node.
21040 * @returns {Array<Element | Text>}
21041 * hast element content.
21042 */
21043 function hardBreak(state, node) {
21044 /** @type {Element} */
21045 const result = {type: 'element', tagName: 'br', properties: {}, children: []}
21046 state.patch(node, result)
21047 return [state.applyData(node, result), {type: 'text', value: '\n'}]
21048 }
21049
21050
21051 /***/ }),
21052
21053 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/code.js":
21054 /*!***************************************************************!*\
21055 !*** ../node_modules/mdast-util-to-hast/lib/handlers/code.js ***!
21056 \***************************************************************/
21057 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21058
21059 "use strict";
21060 __webpack_require__.r(__webpack_exports__);
21061 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21062 /* harmony export */ code: () => (/* binding */ code)
21063 /* harmony export */ });
21064 /**
21065 * @typedef {import('hast').Element} Element
21066 * @typedef {import('hast').Properties} Properties
21067 * @typedef {import('mdast').Code} Code
21068 * @typedef {import('../state.js').State} State
21069
21070 */
21071
21072 /**
21073 * Turn an mdast `code` node into hast.
21074 *
21075 * @param {State} state
21076 * Info passed around.
21077 * @param {Code} node
21078 * mdast node.
21079 * @returns {Element}
21080 * hast node.
21081 */
21082 function code(state, node) {
21083 const value = node.value ? node.value + '\n' : ''
21084 // To do: next major, use `node.lang` w/o regex, the splitting’s been going
21085 // on for years in remark now.
21086 const lang = node.lang ? node.lang.match(/^[^ \t]+(?=[ \t]|$)/) : null
21087 /** @type {Properties} */
21088 const properties = {}
21089
21090 if (lang) {
21091 properties.className = ['language-' + lang]
21092 }
21093
21094 // Create `<code>`.
21095 /** @type {Element} */
21096 let result = {
21097 type: 'element',
21098 tagName: 'code',
21099 properties,
21100 children: [{type: 'text', value}]
21101 }
21102
21103 if (node.meta) {
21104 result.data = {meta: node.meta}
21105 }
21106
21107 state.patch(node, result)
21108 result = state.applyData(node, result)
21109
21110 // Create `<pre>`.
21111 result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}
21112 state.patch(node, result)
21113 return result
21114 }
21115
21116
21117 /***/ }),
21118
21119 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/delete.js":
21120 /*!*****************************************************************!*\
21121 !*** ../node_modules/mdast-util-to-hast/lib/handlers/delete.js ***!
21122 \*****************************************************************/
21123 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21124
21125 "use strict";
21126 __webpack_require__.r(__webpack_exports__);
21127 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21128 /* harmony export */ strikethrough: () => (/* binding */ strikethrough)
21129 /* harmony export */ });
21130 /**
21131 * @typedef {import('hast').Element} Element
21132 * @typedef {import('mdast').Delete} Delete
21133 * @typedef {import('../state.js').State} State
21134
21135 */
21136
21137 /**
21138 * Turn an mdast `delete` node into hast.
21139 *
21140 * @param {State} state
21141 * Info passed around.
21142 * @param {Delete} node
21143 * mdast node.
21144 * @returns {Element}
21145 * hast node.
21146 */
21147 function strikethrough(state, node) {
21148 /** @type {Element} */
21149 const result = {
21150 type: 'element',
21151 tagName: 'del',
21152 properties: {},
21153 children: state.all(node)
21154 }
21155 state.patch(node, result)
21156 return state.applyData(node, result)
21157 }
21158
21159
21160 /***/ }),
21161
21162 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js":
21163 /*!*******************************************************************!*\
21164 !*** ../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js ***!
21165 \*******************************************************************/
21166 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21167
21168 "use strict";
21169 __webpack_require__.r(__webpack_exports__);
21170 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21171 /* harmony export */ emphasis: () => (/* binding */ emphasis)
21172 /* harmony export */ });
21173 /**
21174 * @typedef {import('hast').Element} Element
21175 * @typedef {import('mdast').Emphasis} Emphasis
21176 * @typedef {import('../state.js').State} State
21177 */
21178
21179 /**
21180 * Turn an mdast `emphasis` node into hast.
21181 *
21182 * @param {State} state
21183 * Info passed around.
21184 * @param {Emphasis} node
21185 * mdast node.
21186 * @returns {Element}
21187 * hast node.
21188 */
21189 function emphasis(state, node) {
21190 /** @type {Element} */
21191 const result = {
21192 type: 'element',
21193 tagName: 'em',
21194 properties: {},
21195 children: state.all(node)
21196 }
21197 state.patch(node, result)
21198 return state.applyData(node, result)
21199 }
21200
21201
21202 /***/ }),
21203
21204 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js":
21205 /*!*****************************************************************************!*\
21206 !*** ../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js ***!
21207 \*****************************************************************************/
21208 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21209
21210 "use strict";
21211 __webpack_require__.r(__webpack_exports__);
21212 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21213 /* harmony export */ footnoteReference: () => (/* binding */ footnoteReference)
21214 /* harmony export */ });
21215 /* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ "../node_modules/micromark-util-sanitize-uri/dev/index.js");
21216 /**
21217 * @typedef {import('mdast').FootnoteReference} FootnoteReference
21218 * @typedef {import('hast').Element} Element
21219 * @typedef {import('../state.js').State} State
21220 */
21221
21222
21223
21224 /**
21225 * Turn an mdast `footnoteReference` node into hast.
21226 *
21227 * @param {State} state
21228 * Info passed around.
21229 * @param {FootnoteReference} node
21230 * mdast node.
21231 * @returns {Element}
21232 * hast node.
21233 */
21234 function footnoteReference(state, node) {
21235 const id = String(node.identifier).toUpperCase()
21236 const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())
21237 const index = state.footnoteOrder.indexOf(id)
21238 /** @type {number} */
21239 let counter
21240
21241 if (index === -1) {
21242 state.footnoteOrder.push(id)
21243 state.footnoteCounts[id] = 1
21244 counter = state.footnoteOrder.length
21245 } else {
21246 state.footnoteCounts[id]++
21247 counter = index + 1
21248 }
21249
21250 const reuseCounter = state.footnoteCounts[id]
21251
21252 /** @type {Element} */
21253 const link = {
21254 type: 'element',
21255 tagName: 'a',
21256 properties: {
21257 href: '#' + state.clobberPrefix + 'fn-' + safeId,
21258 id:
21259 state.clobberPrefix +
21260 'fnref-' +
21261 safeId +
21262 (reuseCounter > 1 ? '-' + reuseCounter : ''),
21263 dataFootnoteRef: true,
21264 ariaDescribedBy: ['footnote-label']
21265 },
21266 children: [{type: 'text', value: String(counter)}]
21267 }
21268 state.patch(node, link)
21269
21270 /** @type {Element} */
21271 const sup = {
21272 type: 'element',
21273 tagName: 'sup',
21274 properties: {},
21275 children: [link]
21276 }
21277 state.patch(node, sup)
21278 return state.applyData(node, sup)
21279 }
21280
21281
21282 /***/ }),
21283
21284 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/footnote.js":
21285 /*!*******************************************************************!*\
21286 !*** ../node_modules/mdast-util-to-hast/lib/handlers/footnote.js ***!
21287 \*******************************************************************/
21288 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21289
21290 "use strict";
21291 __webpack_require__.r(__webpack_exports__);
21292 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21293 /* harmony export */ footnote: () => (/* binding */ footnote)
21294 /* harmony export */ });
21295 /* harmony import */ var _footnote_reference_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./footnote-reference.js */ "../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js");
21296 /**
21297 * @typedef {import('hast').Element} Element
21298 * @typedef {import('mdast').Footnote} Footnote
21299 * @typedef {import('../state.js').State} State
21300 */
21301
21302
21303
21304 // To do: when both:
21305 // * <https://github.com/micromark/micromark-extension-footnote>
21306 // * <https://github.com/syntax-tree/mdast-util-footnote>
21307 // …are archived, remove this (also from mdast).
21308 // These inline notes are not used in GFM.
21309
21310 /**
21311 * Turn an mdast `footnote` node into hast.
21312 *
21313 * @param {State} state
21314 * Info passed around.
21315 * @param {Footnote} node
21316 * mdast node.
21317 * @returns {Element}
21318 * hast node.
21319 */
21320 function footnote(state, node) {
21321 const footnoteById = state.footnoteById
21322 let no = 1
21323
21324 while (no in footnoteById) no++
21325
21326 const identifier = String(no)
21327
21328 footnoteById[identifier] = {
21329 type: 'footnoteDefinition',
21330 identifier,
21331 children: [{type: 'paragraph', children: node.children}],
21332 position: node.position
21333 }
21334
21335 return (0,_footnote_reference_js__WEBPACK_IMPORTED_MODULE_0__.footnoteReference)(state, {
21336 type: 'footnoteReference',
21337 identifier,
21338 position: node.position
21339 })
21340 }
21341
21342
21343 /***/ }),
21344
21345 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/heading.js":
21346 /*!******************************************************************!*\
21347 !*** ../node_modules/mdast-util-to-hast/lib/handlers/heading.js ***!
21348 \******************************************************************/
21349 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21350
21351 "use strict";
21352 __webpack_require__.r(__webpack_exports__);
21353 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21354 /* harmony export */ heading: () => (/* binding */ heading)
21355 /* harmony export */ });
21356 /**
21357 * @typedef {import('hast').Element} Element
21358 * @typedef {import('mdast').Heading} Heading
21359 * @typedef {import('../state.js').State} State
21360 */
21361
21362 /**
21363 * Turn an mdast `heading` node into hast.
21364 *
21365 * @param {State} state
21366 * Info passed around.
21367 * @param {Heading} node
21368 * mdast node.
21369 * @returns {Element}
21370 * hast node.
21371 */
21372 function heading(state, node) {
21373 /** @type {Element} */
21374 const result = {
21375 type: 'element',
21376 tagName: 'h' + node.depth,
21377 properties: {},
21378 children: state.all(node)
21379 }
21380 state.patch(node, result)
21381 return state.applyData(node, result)
21382 }
21383
21384
21385 /***/ }),
21386
21387 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/html.js":
21388 /*!***************************************************************!*\
21389 !*** ../node_modules/mdast-util-to-hast/lib/handlers/html.js ***!
21390 \***************************************************************/
21391 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21392
21393 "use strict";
21394 __webpack_require__.r(__webpack_exports__);
21395 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21396 /* harmony export */ html: () => (/* binding */ html)
21397 /* harmony export */ });
21398 /**
21399 * @typedef {import('hast').Element} Element
21400 * @typedef {import('mdast').HTML} Html
21401 * @typedef {import('../state.js').State} State
21402 * @typedef {import('../../index.js').Raw} Raw
21403 */
21404
21405 /**
21406 * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise
21407 * nothing).
21408 *
21409 * @param {State} state
21410 * Info passed around.
21411 * @param {Html} node
21412 * mdast node.
21413 * @returns {Raw | Element | null}
21414 * hast node.
21415 */
21416 function html(state, node) {
21417 if (state.dangerous) {
21418 /** @type {Raw} */
21419 const result = {type: 'raw', value: node.value}
21420 state.patch(node, result)
21421 return state.applyData(node, result)
21422 }
21423
21424 // To do: next major: return `undefined`.
21425 return null
21426 }
21427
21428
21429 /***/ }),
21430
21431 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js":
21432 /*!**************************************************************************!*\
21433 !*** ../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js ***!
21434 \**************************************************************************/
21435 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21436
21437 "use strict";
21438 __webpack_require__.r(__webpack_exports__);
21439 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21440 /* harmony export */ imageReference: () => (/* binding */ imageReference)
21441 /* harmony export */ });
21442 /* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-sanitize-uri */ "../node_modules/micromark-util-sanitize-uri/dev/index.js");
21443 /* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ "../node_modules/mdast-util-to-hast/lib/revert.js");
21444 /**
21445 * @typedef {import('hast').ElementContent} ElementContent
21446 * @typedef {import('hast').Element} Element
21447 * @typedef {import('hast').Properties} Properties
21448 * @typedef {import('mdast').ImageReference} ImageReference
21449 * @typedef {import('../state.js').State} State
21450 */
21451
21452
21453
21454
21455 /**
21456 * Turn an mdast `imageReference` node into hast.
21457 *
21458 * @param {State} state
21459 * Info passed around.
21460 * @param {ImageReference} node
21461 * mdast node.
21462 * @returns {ElementContent | Array<ElementContent>}
21463 * hast node.
21464 */
21465 function imageReference(state, node) {
21466 const def = state.definition(node.identifier)
21467
21468 if (!def) {
21469 return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node)
21470 }
21471
21472 /** @type {Properties} */
21473 const properties = {src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || ''), alt: node.alt}
21474
21475 if (def.title !== null && def.title !== undefined) {
21476 properties.title = def.title
21477 }
21478
21479 /** @type {Element} */
21480 const result = {type: 'element', tagName: 'img', properties, children: []}
21481 state.patch(node, result)
21482 return state.applyData(node, result)
21483 }
21484
21485
21486 /***/ }),
21487
21488 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/image.js":
21489 /*!****************************************************************!*\
21490 !*** ../node_modules/mdast-util-to-hast/lib/handlers/image.js ***!
21491 \****************************************************************/
21492 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21493
21494 "use strict";
21495 __webpack_require__.r(__webpack_exports__);
21496 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21497 /* harmony export */ image: () => (/* binding */ image)
21498 /* harmony export */ });
21499 /* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ "../node_modules/micromark-util-sanitize-uri/dev/index.js");
21500 /**
21501 * @typedef {import('hast').Element} Element
21502 * @typedef {import('hast').Properties} Properties
21503 * @typedef {import('mdast').Image} Image
21504 * @typedef {import('../state.js').State} State
21505 */
21506
21507
21508
21509 /**
21510 * Turn an mdast `image` node into hast.
21511 *
21512 * @param {State} state
21513 * Info passed around.
21514 * @param {Image} node
21515 * mdast node.
21516 * @returns {Element}
21517 * hast node.
21518 */
21519 function image(state, node) {
21520 /** @type {Properties} */
21521 const properties = {src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)}
21522
21523 if (node.alt !== null && node.alt !== undefined) {
21524 properties.alt = node.alt
21525 }
21526
21527 if (node.title !== null && node.title !== undefined) {
21528 properties.title = node.title
21529 }
21530
21531 /** @type {Element} */
21532 const result = {type: 'element', tagName: 'img', properties, children: []}
21533 state.patch(node, result)
21534 return state.applyData(node, result)
21535 }
21536
21537
21538 /***/ }),
21539
21540 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/index.js":
21541 /*!****************************************************************!*\
21542 !*** ../node_modules/mdast-util-to-hast/lib/handlers/index.js ***!
21543 \****************************************************************/
21544 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21545
21546 "use strict";
21547 __webpack_require__.r(__webpack_exports__);
21548 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21549 /* harmony export */ handlers: () => (/* binding */ handlers)
21550 /* harmony export */ });
21551 /* harmony import */ var _blockquote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blockquote.js */ "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js");
21552 /* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./break.js */ "../node_modules/mdast-util-to-hast/lib/handlers/break.js");
21553 /* harmony import */ var _code_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./code.js */ "../node_modules/mdast-util-to-hast/lib/handlers/code.js");
21554 /* harmony import */ var _delete_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete.js */ "../node_modules/mdast-util-to-hast/lib/handlers/delete.js");
21555 /* harmony import */ var _emphasis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emphasis.js */ "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js");
21556 /* harmony import */ var _footnote_reference_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./footnote-reference.js */ "../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js");
21557 /* harmony import */ var _footnote_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./footnote.js */ "../node_modules/mdast-util-to-hast/lib/handlers/footnote.js");
21558 /* harmony import */ var _heading_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./heading.js */ "../node_modules/mdast-util-to-hast/lib/handlers/heading.js");
21559 /* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./html.js */ "../node_modules/mdast-util-to-hast/lib/handlers/html.js");
21560 /* harmony import */ var _image_reference_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./image-reference.js */ "../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js");
21561 /* harmony import */ var _image_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./image.js */ "../node_modules/mdast-util-to-hast/lib/handlers/image.js");
21562 /* harmony import */ var _inline_code_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./inline-code.js */ "../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js");
21563 /* harmony import */ var _link_reference_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./link-reference.js */ "../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js");
21564 /* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./link.js */ "../node_modules/mdast-util-to-hast/lib/handlers/link.js");
21565 /* harmony import */ var _list_item_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./list-item.js */ "../node_modules/mdast-util-to-hast/lib/handlers/list-item.js");
21566 /* harmony import */ var _list_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./list.js */ "../node_modules/mdast-util-to-hast/lib/handlers/list.js");
21567 /* harmony import */ var _paragraph_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./paragraph.js */ "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js");
21568 /* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./root.js */ "../node_modules/mdast-util-to-hast/lib/handlers/root.js");
21569 /* harmony import */ var _strong_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./strong.js */ "../node_modules/mdast-util-to-hast/lib/handlers/strong.js");
21570 /* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./table.js */ "../node_modules/mdast-util-to-hast/lib/handlers/table.js");
21571 /* harmony import */ var _table_row_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./table-row.js */ "../node_modules/mdast-util-to-hast/lib/handlers/table-row.js");
21572 /* harmony import */ var _table_cell_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./table-cell.js */ "../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js");
21573 /* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./text.js */ "../node_modules/mdast-util-to-hast/lib/handlers/text.js");
21574 /* harmony import */ var _thematic_break_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./thematic-break.js */ "../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js");
21575
21576
21577
21578
21579
21580
21581
21582
21583
21584
21585
21586
21587
21588
21589
21590
21591
21592
21593
21594
21595
21596
21597
21598
21599
21600 /**
21601 * Default handlers for nodes.
21602 */
21603 const handlers = {
21604 blockquote: _blockquote_js__WEBPACK_IMPORTED_MODULE_0__.blockquote,
21605 break: _break_js__WEBPACK_IMPORTED_MODULE_1__.hardBreak,
21606 code: _code_js__WEBPACK_IMPORTED_MODULE_2__.code,
21607 delete: _delete_js__WEBPACK_IMPORTED_MODULE_3__.strikethrough,
21608 emphasis: _emphasis_js__WEBPACK_IMPORTED_MODULE_4__.emphasis,
21609 footnoteReference: _footnote_reference_js__WEBPACK_IMPORTED_MODULE_5__.footnoteReference,
21610 footnote: _footnote_js__WEBPACK_IMPORTED_MODULE_6__.footnote,
21611 heading: _heading_js__WEBPACK_IMPORTED_MODULE_7__.heading,
21612 html: _html_js__WEBPACK_IMPORTED_MODULE_8__.html,
21613 imageReference: _image_reference_js__WEBPACK_IMPORTED_MODULE_9__.imageReference,
21614 image: _image_js__WEBPACK_IMPORTED_MODULE_10__.image,
21615 inlineCode: _inline_code_js__WEBPACK_IMPORTED_MODULE_11__.inlineCode,
21616 linkReference: _link_reference_js__WEBPACK_IMPORTED_MODULE_12__.linkReference,
21617 link: _link_js__WEBPACK_IMPORTED_MODULE_13__.link,
21618 listItem: _list_item_js__WEBPACK_IMPORTED_MODULE_14__.listItem,
21619 list: _list_js__WEBPACK_IMPORTED_MODULE_15__.list,
21620 paragraph: _paragraph_js__WEBPACK_IMPORTED_MODULE_16__.paragraph,
21621 root: _root_js__WEBPACK_IMPORTED_MODULE_17__.root,
21622 strong: _strong_js__WEBPACK_IMPORTED_MODULE_18__.strong,
21623 table: _table_js__WEBPACK_IMPORTED_MODULE_19__.table,
21624 tableCell: _table_cell_js__WEBPACK_IMPORTED_MODULE_20__.tableCell,
21625 tableRow: _table_row_js__WEBPACK_IMPORTED_MODULE_21__.tableRow,
21626 text: _text_js__WEBPACK_IMPORTED_MODULE_22__.text,
21627 thematicBreak: _thematic_break_js__WEBPACK_IMPORTED_MODULE_23__.thematicBreak,
21628 toml: ignore,
21629 yaml: ignore,
21630 definition: ignore,
21631 footnoteDefinition: ignore
21632 }
21633
21634 // Return nothing for nodes that are ignored.
21635 function ignore() {
21636 // To do: next major: return `undefined`.
21637 return null
21638 }
21639
21640
21641 /***/ }),
21642
21643 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js":
21644 /*!**********************************************************************!*\
21645 !*** ../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js ***!
21646 \**********************************************************************/
21647 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21648
21649 "use strict";
21650 __webpack_require__.r(__webpack_exports__);
21651 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21652 /* harmony export */ inlineCode: () => (/* binding */ inlineCode)
21653 /* harmony export */ });
21654 /**
21655 * @typedef {import('hast').Element} Element
21656 * @typedef {import('hast').Text} Text
21657 * @typedef {import('mdast').InlineCode} InlineCode
21658 * @typedef {import('../state.js').State} State
21659 */
21660
21661 /**
21662 * Turn an mdast `inlineCode` node into hast.
21663 *
21664 * @param {State} state
21665 * Info passed around.
21666 * @param {InlineCode} node
21667 * mdast node.
21668 * @returns {Element}
21669 * hast node.
21670 */
21671 function inlineCode(state, node) {
21672 /** @type {Text} */
21673 const text = {type: 'text', value: node.value.replace(/\r?\n|\r/g, ' ')}
21674 state.patch(node, text)
21675
21676 /** @type {Element} */
21677 const result = {
21678 type: 'element',
21679 tagName: 'code',
21680 properties: {},
21681 children: [text]
21682 }
21683 state.patch(node, result)
21684 return state.applyData(node, result)
21685 }
21686
21687
21688 /***/ }),
21689
21690 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js":
21691 /*!*************************************************************************!*\
21692 !*** ../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js ***!
21693 \*************************************************************************/
21694 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21695
21696 "use strict";
21697 __webpack_require__.r(__webpack_exports__);
21698 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21699 /* harmony export */ linkReference: () => (/* binding */ linkReference)
21700 /* harmony export */ });
21701 /* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-sanitize-uri */ "../node_modules/micromark-util-sanitize-uri/dev/index.js");
21702 /* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ "../node_modules/mdast-util-to-hast/lib/revert.js");
21703 /**
21704 * @typedef {import('hast').Element} Element
21705 * @typedef {import('hast').ElementContent} ElementContent
21706 * @typedef {import('hast').Properties} Properties
21707 * @typedef {import('mdast').LinkReference} LinkReference
21708 * @typedef {import('../state.js').State} State
21709 */
21710
21711
21712
21713
21714 /**
21715 * Turn an mdast `linkReference` node into hast.
21716 *
21717 * @param {State} state
21718 * Info passed around.
21719 * @param {LinkReference} node
21720 * mdast node.
21721 * @returns {ElementContent | Array<ElementContent>}
21722 * hast node.
21723 */
21724 function linkReference(state, node) {
21725 const def = state.definition(node.identifier)
21726
21727 if (!def) {
21728 return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node)
21729 }
21730
21731 /** @type {Properties} */
21732 const properties = {href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || '')}
21733
21734 if (def.title !== null && def.title !== undefined) {
21735 properties.title = def.title
21736 }
21737
21738 /** @type {Element} */
21739 const result = {
21740 type: 'element',
21741 tagName: 'a',
21742 properties,
21743 children: state.all(node)
21744 }
21745 state.patch(node, result)
21746 return state.applyData(node, result)
21747 }
21748
21749
21750 /***/ }),
21751
21752 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/link.js":
21753 /*!***************************************************************!*\
21754 !*** ../node_modules/mdast-util-to-hast/lib/handlers/link.js ***!
21755 \***************************************************************/
21756 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21757
21758 "use strict";
21759 __webpack_require__.r(__webpack_exports__);
21760 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21761 /* harmony export */ link: () => (/* binding */ link)
21762 /* harmony export */ });
21763 /* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ "../node_modules/micromark-util-sanitize-uri/dev/index.js");
21764 /**
21765 * @typedef {import('hast').Element} Element
21766 * @typedef {import('hast').Properties} Properties
21767 * @typedef {import('mdast').Link} Link
21768 * @typedef {import('../state.js').State} State
21769 */
21770
21771
21772
21773 /**
21774 * Turn an mdast `link` node into hast.
21775 *
21776 * @param {State} state
21777 * Info passed around.
21778 * @param {Link} node
21779 * mdast node.
21780 * @returns {Element}
21781 * hast node.
21782 */
21783 function link(state, node) {
21784 /** @type {Properties} */
21785 const properties = {href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)}
21786
21787 if (node.title !== null && node.title !== undefined) {
21788 properties.title = node.title
21789 }
21790
21791 /** @type {Element} */
21792 const result = {
21793 type: 'element',
21794 tagName: 'a',
21795 properties,
21796 children: state.all(node)
21797 }
21798 state.patch(node, result)
21799 return state.applyData(node, result)
21800 }
21801
21802
21803 /***/ }),
21804
21805 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/list-item.js":
21806 /*!********************************************************************!*\
21807 !*** ../node_modules/mdast-util-to-hast/lib/handlers/list-item.js ***!
21808 \********************************************************************/
21809 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21810
21811 "use strict";
21812 __webpack_require__.r(__webpack_exports__);
21813 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21814 /* harmony export */ listItem: () => (/* binding */ listItem)
21815 /* harmony export */ });
21816 /**
21817 * @typedef {import('hast').Element} Element
21818 * @typedef {import('hast').ElementContent} ElementContent
21819 * @typedef {import('hast').Properties} Properties
21820 * @typedef {import('mdast').Content} Content
21821 * @typedef {import('mdast').ListItem} ListItem
21822 * @typedef {import('mdast').Parent} Parent
21823 * @typedef {import('mdast').Root} Root
21824 * @typedef {import('../state.js').State} State
21825 */
21826
21827 /**
21828 * @typedef {Root | Content} Nodes
21829 * @typedef {Extract<Nodes, Parent>} Parents
21830 */
21831
21832 /**
21833 * Turn an mdast `listItem` node into hast.
21834 *
21835 * @param {State} state
21836 * Info passed around.
21837 * @param {ListItem} node
21838 * mdast node.
21839 * @param {Parents | null | undefined} parent
21840 * Parent of `node`.
21841 * @returns {Element}
21842 * hast node.
21843 */
21844 function listItem(state, node, parent) {
21845 const results = state.all(node)
21846 const loose = parent ? listLoose(parent) : listItemLoose(node)
21847 /** @type {Properties} */
21848 const properties = {}
21849 /** @type {Array<ElementContent>} */
21850 const children = []
21851
21852 if (typeof node.checked === 'boolean') {
21853 const head = results[0]
21854 /** @type {Element} */
21855 let paragraph
21856
21857 if (head && head.type === 'element' && head.tagName === 'p') {
21858 paragraph = head
21859 } else {
21860 paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}
21861 results.unshift(paragraph)
21862 }
21863
21864 if (paragraph.children.length > 0) {
21865 paragraph.children.unshift({type: 'text', value: ' '})
21866 }
21867
21868 paragraph.children.unshift({
21869 type: 'element',
21870 tagName: 'input',
21871 properties: {type: 'checkbox', checked: node.checked, disabled: true},
21872 children: []
21873 })
21874
21875 // According to github-markdown-css, this class hides bullet.
21876 // See: <https://github.com/sindresorhus/github-markdown-css>.
21877 properties.className = ['task-list-item']
21878 }
21879
21880 let index = -1
21881
21882 while (++index < results.length) {
21883 const child = results[index]
21884
21885 // Add eols before nodes, except if this is a loose, first paragraph.
21886 if (
21887 loose ||
21888 index !== 0 ||
21889 child.type !== 'element' ||
21890 child.tagName !== 'p'
21891 ) {
21892 children.push({type: 'text', value: '\n'})
21893 }
21894
21895 if (child.type === 'element' && child.tagName === 'p' && !loose) {
21896 children.push(...child.children)
21897 } else {
21898 children.push(child)
21899 }
21900 }
21901
21902 const tail = results[results.length - 1]
21903
21904 // Add a final eol.
21905 if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {
21906 children.push({type: 'text', value: '\n'})
21907 }
21908
21909 /** @type {Element} */
21910 const result = {type: 'element', tagName: 'li', properties, children}
21911 state.patch(node, result)
21912 return state.applyData(node, result)
21913 }
21914
21915 /**
21916 * @param {Parents} node
21917 * @return {Boolean}
21918 */
21919 function listLoose(node) {
21920 let loose = false
21921 if (node.type === 'list') {
21922 loose = node.spread || false
21923 const children = node.children
21924 let index = -1
21925
21926 while (!loose && ++index < children.length) {
21927 loose = listItemLoose(children[index])
21928 }
21929 }
21930
21931 return loose
21932 }
21933
21934 /**
21935 * @param {ListItem} node
21936 * @return {Boolean}
21937 */
21938 function listItemLoose(node) {
21939 const spread = node.spread
21940
21941 return spread === undefined || spread === null
21942 ? node.children.length > 1
21943 : spread
21944 }
21945
21946
21947 /***/ }),
21948
21949 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/list.js":
21950 /*!***************************************************************!*\
21951 !*** ../node_modules/mdast-util-to-hast/lib/handlers/list.js ***!
21952 \***************************************************************/
21953 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21954
21955 "use strict";
21956 __webpack_require__.r(__webpack_exports__);
21957 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21958 /* harmony export */ list: () => (/* binding */ list)
21959 /* harmony export */ });
21960 /**
21961 * @typedef {import('hast').Element} Element
21962 * @typedef {import('hast').Properties} Properties
21963 * @typedef {import('mdast').List} List
21964 * @typedef {import('../state.js').State} State
21965 */
21966
21967 /**
21968 * Turn an mdast `list` node into hast.
21969 *
21970 * @param {State} state
21971 * Info passed around.
21972 * @param {List} node
21973 * mdast node.
21974 * @returns {Element}
21975 * hast node.
21976 */
21977 function list(state, node) {
21978 /** @type {Properties} */
21979 const properties = {}
21980 const results = state.all(node)
21981 let index = -1
21982
21983 if (typeof node.start === 'number' && node.start !== 1) {
21984 properties.start = node.start
21985 }
21986
21987 // Like GitHub, add a class for custom styling.
21988 while (++index < results.length) {
21989 const child = results[index]
21990
21991 if (
21992 child.type === 'element' &&
21993 child.tagName === 'li' &&
21994 child.properties &&
21995 Array.isArray(child.properties.className) &&
21996 child.properties.className.includes('task-list-item')
21997 ) {
21998 properties.className = ['contains-task-list']
21999 break
22000 }
22001 }
22002
22003 /** @type {Element} */
22004 const result = {
22005 type: 'element',
22006 tagName: node.ordered ? 'ol' : 'ul',
22007 properties,
22008 children: state.wrap(results, true)
22009 }
22010 state.patch(node, result)
22011 return state.applyData(node, result)
22012 }
22013
22014
22015 /***/ }),
22016
22017 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js":
22018 /*!********************************************************************!*\
22019 !*** ../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js ***!
22020 \********************************************************************/
22021 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22022
22023 "use strict";
22024 __webpack_require__.r(__webpack_exports__);
22025 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22026 /* harmony export */ paragraph: () => (/* binding */ paragraph)
22027 /* harmony export */ });
22028 /**
22029 * @typedef {import('hast').Element} Element
22030 * @typedef {import('mdast').Paragraph} Paragraph
22031 * @typedef {import('../state.js').State} State
22032 */
22033
22034 /**
22035 * Turn an mdast `paragraph` node into hast.
22036 *
22037 * @param {State} state
22038 * Info passed around.
22039 * @param {Paragraph} node
22040 * mdast node.
22041 * @returns {Element}
22042 * hast node.
22043 */
22044 function paragraph(state, node) {
22045 /** @type {Element} */
22046 const result = {
22047 type: 'element',
22048 tagName: 'p',
22049 properties: {},
22050 children: state.all(node)
22051 }
22052 state.patch(node, result)
22053 return state.applyData(node, result)
22054 }
22055
22056
22057 /***/ }),
22058
22059 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/root.js":
22060 /*!***************************************************************!*\
22061 !*** ../node_modules/mdast-util-to-hast/lib/handlers/root.js ***!
22062 \***************************************************************/
22063 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22064
22065 "use strict";
22066 __webpack_require__.r(__webpack_exports__);
22067 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22068 /* harmony export */ root: () => (/* binding */ root)
22069 /* harmony export */ });
22070 /**
22071 * @typedef {import('hast').Root} HastRoot
22072 * @typedef {import('hast').Element} HastElement
22073 * @typedef {import('mdast').Root} MdastRoot
22074 * @typedef {import('../state.js').State} State
22075 */
22076
22077 /**
22078 * Turn an mdast `root` node into hast.
22079 *
22080 * @param {State} state
22081 * Info passed around.
22082 * @param {MdastRoot} node
22083 * mdast node.
22084 * @returns {HastRoot | HastElement}
22085 * hast node.
22086 */
22087 function root(state, node) {
22088 /** @type {HastRoot} */
22089 const result = {type: 'root', children: state.wrap(state.all(node))}
22090 state.patch(node, result)
22091 return state.applyData(node, result)
22092 }
22093
22094
22095 /***/ }),
22096
22097 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/strong.js":
22098 /*!*****************************************************************!*\
22099 !*** ../node_modules/mdast-util-to-hast/lib/handlers/strong.js ***!
22100 \*****************************************************************/
22101 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22102
22103 "use strict";
22104 __webpack_require__.r(__webpack_exports__);
22105 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22106 /* harmony export */ strong: () => (/* binding */ strong)
22107 /* harmony export */ });
22108 /**
22109 * @typedef {import('hast').Element} Element
22110 * @typedef {import('mdast').Strong} Strong
22111 * @typedef {import('../state.js').State} State
22112 */
22113
22114 /**
22115 * Turn an mdast `strong` node into hast.
22116 *
22117 * @param {State} state
22118 * Info passed around.
22119 * @param {Strong} node
22120 * mdast node.
22121 * @returns {Element}
22122 * hast node.
22123 */
22124 function strong(state, node) {
22125 /** @type {Element} */
22126 const result = {
22127 type: 'element',
22128 tagName: 'strong',
22129 properties: {},
22130 children: state.all(node)
22131 }
22132 state.patch(node, result)
22133 return state.applyData(node, result)
22134 }
22135
22136
22137 /***/ }),
22138
22139 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js":
22140 /*!*********************************************************************!*\
22141 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js ***!
22142 \*********************************************************************/
22143 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22144
22145 "use strict";
22146 __webpack_require__.r(__webpack_exports__);
22147 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22148 /* harmony export */ tableCell: () => (/* binding */ tableCell)
22149 /* harmony export */ });
22150 /**
22151 * @typedef {import('hast').Element} Element
22152 * @typedef {import('mdast').TableCell} TableCell
22153 * @typedef {import('../state.js').State} State
22154 */
22155
22156 /**
22157 * Turn an mdast `tableCell` node into hast.
22158 *
22159 * @param {State} state
22160 * Info passed around.
22161 * @param {TableCell} node
22162 * mdast node.
22163 * @returns {Element}
22164 * hast node.
22165 */
22166 function tableCell(state, node) {
22167 // Note: this function is normally not called: see `table-row` for how rows
22168 // and their cells are compiled.
22169 /** @type {Element} */
22170 const result = {
22171 type: 'element',
22172 tagName: 'td', // Assume body cell.
22173 properties: {},
22174 children: state.all(node)
22175 }
22176 state.patch(node, result)
22177 return state.applyData(node, result)
22178 }
22179
22180
22181 /***/ }),
22182
22183 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table-row.js":
22184 /*!********************************************************************!*\
22185 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table-row.js ***!
22186 \********************************************************************/
22187 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22188
22189 "use strict";
22190 __webpack_require__.r(__webpack_exports__);
22191 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22192 /* harmony export */ tableRow: () => (/* binding */ tableRow)
22193 /* harmony export */ });
22194 /**
22195 * @typedef {import('hast').Properties} Properties
22196 * @typedef {import('hast').Element} Element
22197 * @typedef {import('hast').ElementContent} ElementContent
22198 * @typedef {import('mdast').Content} Content
22199 * @typedef {import('mdast').Parent} Parent
22200 * @typedef {import('mdast').Root} Root
22201 * @typedef {import('mdast').TableRow} TableRow
22202 * @typedef {import('../state.js').State} State
22203 */
22204
22205 /**
22206 * @typedef {Root | Content} Nodes
22207 * @typedef {Extract<Nodes, Parent>} Parents
22208 */
22209
22210 /**
22211 * Turn an mdast `tableRow` node into hast.
22212 *
22213 * @param {State} state
22214 * Info passed around.
22215 * @param {TableRow} node
22216 * mdast node.
22217 * @param {Parents | null | undefined} parent
22218 * Parent of `node`.
22219 * @returns {Element}
22220 * hast node.
22221 */
22222 function tableRow(state, node, parent) {
22223 const siblings = parent ? parent.children : undefined
22224 // Generate a body row when without parent.
22225 const rowIndex = siblings ? siblings.indexOf(node) : 1
22226 const tagName = rowIndex === 0 ? 'th' : 'td'
22227 const align = parent && parent.type === 'table' ? parent.align : undefined
22228 const length = align ? align.length : node.children.length
22229 let cellIndex = -1
22230 /** @type {Array<ElementContent>} */
22231 const cells = []
22232
22233 while (++cellIndex < length) {
22234 // Note: can also be undefined.
22235 const cell = node.children[cellIndex]
22236 /** @type {Properties} */
22237 const properties = {}
22238 const alignValue = align ? align[cellIndex] : undefined
22239
22240 if (alignValue) {
22241 properties.align = alignValue
22242 }
22243
22244 /** @type {Element} */
22245 let result = {type: 'element', tagName, properties, children: []}
22246
22247 if (cell) {
22248 result.children = state.all(cell)
22249 state.patch(cell, result)
22250 result = state.applyData(node, result)
22251 }
22252
22253 cells.push(result)
22254 }
22255
22256 /** @type {Element} */
22257 const result = {
22258 type: 'element',
22259 tagName: 'tr',
22260 properties: {},
22261 children: state.wrap(cells, true)
22262 }
22263 state.patch(node, result)
22264 return state.applyData(node, result)
22265 }
22266
22267
22268 /***/ }),
22269
22270 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table.js":
22271 /*!****************************************************************!*\
22272 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table.js ***!
22273 \****************************************************************/
22274 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22275
22276 "use strict";
22277 __webpack_require__.r(__webpack_exports__);
22278 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22279 /* harmony export */ table: () => (/* binding */ table)
22280 /* harmony export */ });
22281 /* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-position */ "../node_modules/unist-util-position/lib/index.js");
22282 /**
22283 * @typedef {import('hast').Element} Element
22284 * @typedef {import('mdast').Table} Table
22285 * @typedef {import('../state.js').State} State
22286 */
22287
22288
22289
22290 /**
22291 * Turn an mdast `table` node into hast.
22292 *
22293 * @param {State} state
22294 * Info passed around.
22295 * @param {Table} node
22296 * mdast node.
22297 * @returns {Element}
22298 * hast node.
22299 */
22300 function table(state, node) {
22301 const rows = state.all(node)
22302 const firstRow = rows.shift()
22303 /** @type {Array<Element>} */
22304 const tableContent = []
22305
22306 if (firstRow) {
22307 /** @type {Element} */
22308 const head = {
22309 type: 'element',
22310 tagName: 'thead',
22311 properties: {},
22312 children: state.wrap([firstRow], true)
22313 }
22314 state.patch(node.children[0], head)
22315 tableContent.push(head)
22316 }
22317
22318 if (rows.length > 0) {
22319 /** @type {Element} */
22320 const body = {
22321 type: 'element',
22322 tagName: 'tbody',
22323 properties: {},
22324 children: state.wrap(rows, true)
22325 }
22326
22327 const start = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointStart)(node.children[1])
22328 const end = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointEnd)(node.children[node.children.length - 1])
22329 if (start.line && end.line) body.position = {start, end}
22330 tableContent.push(body)
22331 }
22332
22333 /** @type {Element} */
22334 const result = {
22335 type: 'element',
22336 tagName: 'table',
22337 properties: {},
22338 children: state.wrap(tableContent, true)
22339 }
22340 state.patch(node, result)
22341 return state.applyData(node, result)
22342 }
22343
22344
22345 /***/ }),
22346
22347 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/text.js":
22348 /*!***************************************************************!*\
22349 !*** ../node_modules/mdast-util-to-hast/lib/handlers/text.js ***!
22350 \***************************************************************/
22351 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22352
22353 "use strict";
22354 __webpack_require__.r(__webpack_exports__);
22355 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22356 /* harmony export */ text: () => (/* binding */ text)
22357 /* harmony export */ });
22358 /* harmony import */ var trim_lines__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! trim-lines */ "../node_modules/trim-lines/index.js");
22359 /**
22360 * @typedef {import('hast').Element} HastElement
22361 * @typedef {import('hast').Text} HastText
22362 * @typedef {import('mdast').Text} MdastText
22363 * @typedef {import('../state.js').State} State
22364 */
22365
22366
22367
22368 /**
22369 * Turn an mdast `text` node into hast.
22370 *
22371 * @param {State} state
22372 * Info passed around.
22373 * @param {MdastText} node
22374 * mdast node.
22375 * @returns {HastText | HastElement}
22376 * hast node.
22377 */
22378 function text(state, node) {
22379 /** @type {HastText} */
22380 const result = {type: 'text', value: (0,trim_lines__WEBPACK_IMPORTED_MODULE_0__.trimLines)(String(node.value))}
22381 state.patch(node, result)
22382 return state.applyData(node, result)
22383 }
22384
22385
22386 /***/ }),
22387
22388 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js":
22389 /*!*************************************************************************!*\
22390 !*** ../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js ***!
22391 \*************************************************************************/
22392 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22393
22394 "use strict";
22395 __webpack_require__.r(__webpack_exports__);
22396 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22397 /* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)
22398 /* harmony export */ });
22399 /**
22400 * @typedef {import('hast').Element} Element
22401 * @typedef {import('mdast').ThematicBreak} ThematicBreak
22402 * @typedef {import('../state.js').State} State
22403 */
22404
22405 /**
22406 * Turn an mdast `thematicBreak` node into hast.
22407 *
22408 * @param {State} state
22409 * Info passed around.
22410 * @param {ThematicBreak} node
22411 * mdast node.
22412 * @returns {Element}
22413 * hast node.
22414 */
22415 function thematicBreak(state, node) {
22416 /** @type {Element} */
22417 const result = {
22418 type: 'element',
22419 tagName: 'hr',
22420 properties: {},
22421 children: []
22422 }
22423 state.patch(node, result)
22424 return state.applyData(node, result)
22425 }
22426
22427
22428 /***/ }),
22429
22430 /***/ "../node_modules/mdast-util-to-hast/lib/index.js":
22431 /*!*******************************************************!*\
22432 !*** ../node_modules/mdast-util-to-hast/lib/index.js ***!
22433 \*******************************************************/
22434 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22435
22436 "use strict";
22437 __webpack_require__.r(__webpack_exports__);
22438 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22439 /* harmony export */ toHast: () => (/* binding */ toHast)
22440 /* harmony export */ });
22441 /* harmony import */ var _footer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./footer.js */ "../node_modules/mdast-util-to-hast/lib/footer.js");
22442 /* harmony import */ var _state_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.js */ "../node_modules/mdast-util-to-hast/lib/state.js");
22443 /**
22444 * @typedef {import('hast').Content} HastContent
22445 * @typedef {import('hast').Root} HastRoot
22446 *
22447 * @typedef {import('mdast').Content} MdastContent
22448 * @typedef {import('mdast').Root} MdastRoot
22449 *
22450 * @typedef {import('./state.js').Options} Options
22451 */
22452
22453 /**
22454 * @typedef {HastRoot | HastContent} HastNodes
22455 * @typedef {MdastRoot | MdastContent} MdastNodes
22456 */
22457
22458
22459
22460
22461 /**
22462 * Transform mdast to hast.
22463 *
22464 * ##### Notes
22465 *
22466 * ###### HTML
22467 *
22468 * Raw HTML is available in mdast as `html` nodes and can be embedded in hast
22469 * as semistandard `raw` nodes.
22470 * Most utilities ignore `raw` nodes but two notable ones don’t:
22471 *
22472 * * `hast-util-to-html` also has an option `allowDangerousHtml` which will
22473 * output the raw HTML.
22474 * This is typically discouraged as noted by the option name but is useful
22475 * if you completely trust authors
22476 * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them
22477 * into standard hast nodes (`element`, `text`, etc).
22478 * This is a heavy task as it needs a full HTML parser, but it is the only
22479 * way to support untrusted content
22480 *
22481 * ###### Footnotes
22482 *
22483 * Many options supported here relate to footnotes.
22484 * Footnotes are not specified by CommonMark, which we follow by default.
22485 * They are supported by GitHub, so footnotes can be enabled in markdown with
22486 * `mdast-util-gfm`.
22487 *
22488 * The options `footnoteBackLabel` and `footnoteLabel` define natural language
22489 * that explains footnotes, which is hidden for sighted users but shown to
22490 * assistive technology.
22491 * When your page is not in English, you must define translated values.
22492 *
22493 * Back references use ARIA attributes, but the section label itself uses a
22494 * heading that is hidden with an `sr-only` class.
22495 * To show it to sighted users, define different attributes in
22496 * `footnoteLabelProperties`.
22497 *
22498 * ###### Clobbering
22499 *
22500 * Footnotes introduces a problem, as it links footnote calls to footnote
22501 * definitions on the page through `id` attributes generated from user content,
22502 * which results in DOM clobbering.
22503 *
22504 * DOM clobbering is this:
22505 *
22506 * ```html
22507 * <p id=x></p>
22508 * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>
22509 * ```
22510 *
22511 * Elements by their ID are made available by browsers on the `window` object,
22512 * which is a security risk.
22513 * Using a prefix solves this problem.
22514 *
22515 * More information on how to handle clobbering and the prefix is explained in
22516 * Example: headings (DOM clobbering) in `rehype-sanitize`.
22517 *
22518 * ###### Unknown nodes
22519 *
22520 * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.
22521 * The default behavior for unknown nodes is:
22522 *
22523 * * when the node has a `value` (and doesn’t have `data.hName`,
22524 * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`
22525 * node
22526 * * otherwise, create a `<div>` element (which could be changed with
22527 * `data.hName`), with its children mapped from mdast to hast as well
22528 *
22529 * This behavior can be changed by passing an `unknownHandler`.
22530 *
22531 * @param {MdastNodes} tree
22532 * mdast tree.
22533 * @param {Options | null | undefined} [options]
22534 * Configuration.
22535 * @returns {HastNodes | null | undefined}
22536 * hast tree.
22537 */
22538 // To do: next major: always return a single `root`.
22539 function toHast(tree, options) {
22540 const state = (0,_state_js__WEBPACK_IMPORTED_MODULE_0__.createState)(tree, options)
22541 const node = state.one(tree, null)
22542 const foot = (0,_footer_js__WEBPACK_IMPORTED_MODULE_1__.footer)(state)
22543
22544 if (foot) {
22545 // @ts-expect-error If there’s a footer, there were definitions, meaning block
22546 // content.
22547 // So assume `node` is a parent node.
22548 node.children.push({type: 'text', value: '\n'}, foot)
22549 }
22550
22551 // To do: next major: always return root?
22552 return Array.isArray(node) ? {type: 'root', children: node} : node
22553 }
22554
22555
22556 /***/ }),
22557
22558 /***/ "../node_modules/mdast-util-to-hast/lib/revert.js":
22559 /*!********************************************************!*\
22560 !*** ../node_modules/mdast-util-to-hast/lib/revert.js ***!
22561 \********************************************************/
22562 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22563
22564 "use strict";
22565 __webpack_require__.r(__webpack_exports__);
22566 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22567 /* harmony export */ revert: () => (/* binding */ revert)
22568 /* harmony export */ });
22569 /**
22570 * @typedef {import('hast').ElementContent} ElementContent
22571 *
22572 * @typedef {import('mdast').Content} Content
22573 * @typedef {import('mdast').Reference} Reference
22574 * @typedef {import('mdast').Root} Root
22575 *
22576 * @typedef {import('./state.js').State} State
22577 */
22578
22579 /**
22580 * @typedef {Root | Content} Nodes
22581 * @typedef {Extract<Nodes, Reference>} References
22582 */
22583
22584 // To do: next major: always return array.
22585
22586 /**
22587 * Return the content of a reference without definition as plain text.
22588 *
22589 * @param {State} state
22590 * Info passed around.
22591 * @param {References} node
22592 * Reference node (image, link).
22593 * @returns {ElementContent | Array<ElementContent>}
22594 * hast content.
22595 */
22596 function revert(state, node) {
22597 const subtype = node.referenceType
22598 let suffix = ']'
22599
22600 if (subtype === 'collapsed') {
22601 suffix += '[]'
22602 } else if (subtype === 'full') {
22603 suffix += '[' + (node.label || node.identifier) + ']'
22604 }
22605
22606 if (node.type === 'imageReference') {
22607 return {type: 'text', value: '![' + node.alt + suffix}
22608 }
22609
22610 const contents = state.all(node)
22611 const head = contents[0]
22612
22613 if (head && head.type === 'text') {
22614 head.value = '[' + head.value
22615 } else {
22616 contents.unshift({type: 'text', value: '['})
22617 }
22618
22619 const tail = contents[contents.length - 1]
22620
22621 if (tail && tail.type === 'text') {
22622 tail.value += suffix
22623 } else {
22624 contents.push({type: 'text', value: suffix})
22625 }
22626
22627 return contents
22628 }
22629
22630
22631 /***/ }),
22632
22633 /***/ "../node_modules/mdast-util-to-hast/lib/state.js":
22634 /*!*******************************************************!*\
22635 !*** ../node_modules/mdast-util-to-hast/lib/state.js ***!
22636 \*******************************************************/
22637 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22638
22639 "use strict";
22640 __webpack_require__.r(__webpack_exports__);
22641 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22642 /* harmony export */ all: () => (/* binding */ all),
22643 /* harmony export */ createState: () => (/* binding */ createState),
22644 /* harmony export */ one: () => (/* binding */ one),
22645 /* harmony export */ wrap: () => (/* binding */ wrap)
22646 /* harmony export */ });
22647 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
22648 /* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! unist-util-position */ "../node_modules/unist-util-position/lib/index.js");
22649 /* harmony import */ var unist_util_generated__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! unist-util-generated */ "../node_modules/unist-util-generated/lib/index.js");
22650 /* harmony import */ var mdast_util_definitions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-definitions */ "../node_modules/mdast-util-definitions/lib/index.js");
22651 /* harmony import */ var _handlers_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handlers/index.js */ "../node_modules/mdast-util-to-hast/lib/handlers/index.js");
22652 /**
22653 * @typedef {import('hast').Content} HastContent
22654 * @typedef {import('hast').Element} HastElement
22655 * @typedef {import('hast').ElementContent} HastElementContent
22656 * @typedef {import('hast').Properties} HastProperties
22657 * @typedef {import('hast').Root} HastRoot
22658 * @typedef {import('hast').Text} HastText
22659 *
22660 * @typedef {import('mdast').Content} MdastContent
22661 * @typedef {import('mdast').Definition} MdastDefinition
22662 * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition
22663 * @typedef {import('mdast').Parent} MdastParent
22664 * @typedef {import('mdast').Root} MdastRoot
22665 */
22666
22667 /**
22668 * @typedef {HastRoot | HastContent} HastNodes
22669 * @typedef {MdastRoot | MdastContent} MdastNodes
22670 * @typedef {Extract<MdastNodes, MdastParent>} MdastParents
22671 *
22672 * @typedef EmbeddedHastFields
22673 * hast fields.
22674 * @property {string | null | undefined} [hName]
22675 * Generate a specific element with this tag name instead.
22676 * @property {HastProperties | null | undefined} [hProperties]
22677 * Generate an element with these properties instead.
22678 * @property {Array<HastElementContent> | null | undefined} [hChildren]
22679 * Generate an element with this content instead.
22680 *
22681 * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData
22682 * mdast data with embedded hast fields.
22683 *
22684 * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData
22685 * mdast node with embedded hast data.
22686 *
22687 * @typedef PointLike
22688 * Point-like value.
22689 * @property {number | null | undefined} [line]
22690 * Line.
22691 * @property {number | null | undefined} [column]
22692 * Column.
22693 * @property {number | null | undefined} [offset]
22694 * Offset.
22695 *
22696 * @typedef PositionLike
22697 * Position-like value.
22698 * @property {PointLike | null | undefined} [start]
22699 * Point-like value.
22700 * @property {PointLike | null | undefined} [end]
22701 * Point-like value.
22702 *
22703 * @callback Handler
22704 * Handle a node.
22705 * @param {State} state
22706 * Info passed around.
22707 * @param {any} node
22708 * mdast node to handle.
22709 * @param {MdastParents | null | undefined} parent
22710 * Parent of `node`.
22711 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
22712 * hast node.
22713 *
22714 * @callback HFunctionProps
22715 * Signature of `state` for when props are passed.
22716 * @param {MdastNodes | PositionLike | null | undefined} node
22717 * mdast node or unist position.
22718 * @param {string} tagName
22719 * HTML tag name.
22720 * @param {HastProperties} props
22721 * Properties.
22722 * @param {Array<HastElementContent> | null | undefined} [children]
22723 * hast content.
22724 * @returns {HastElement}
22725 * Compiled element.
22726 *
22727 * @callback HFunctionNoProps
22728 * Signature of `state` for when no props are passed.
22729 * @param {MdastNodes | PositionLike | null | undefined} node
22730 * mdast node or unist position.
22731 * @param {string} tagName
22732 * HTML tag name.
22733 * @param {Array<HastElementContent> | null | undefined} [children]
22734 * hast content.
22735 * @returns {HastElement}
22736 * Compiled element.
22737 *
22738 * @typedef HFields
22739 * Info on `state`.
22740 * @property {boolean} dangerous
22741 * Whether HTML is allowed.
22742 * @property {string} clobberPrefix
22743 * Prefix to use to prevent DOM clobbering.
22744 * @property {string} footnoteLabel
22745 * Label to use to introduce the footnote section.
22746 * @property {string} footnoteLabelTagName
22747 * HTML used for the footnote label.
22748 * @property {HastProperties} footnoteLabelProperties
22749 * Properties on the HTML tag used for the footnote label.
22750 * @property {string} footnoteBackLabel
22751 * Label to use from backreferences back to their footnote call.
22752 * @property {(identifier: string) => MdastDefinition | null} definition
22753 * Definition cache.
22754 * @property {Record<string, MdastFootnoteDefinition>} footnoteById
22755 * Footnote definitions by their identifier.
22756 * @property {Array<string>} footnoteOrder
22757 * Identifiers of order when footnote calls first appear in tree order.
22758 * @property {Record<string, number>} footnoteCounts
22759 * Counts for how often the same footnote was called.
22760 * @property {Handlers} handlers
22761 * Applied handlers.
22762 * @property {Handler} unknownHandler
22763 * Handler for any none not in `passThrough` or otherwise handled.
22764 * @property {(from: MdastNodes, node: HastNodes) => void} patch
22765 * Copy a node’s positional info.
22766 * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData
22767 * Honor the `data` of `from`, and generate an element instead of `node`.
22768 * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one
22769 * Transform an mdast node to hast.
22770 * @property {(node: MdastNodes) => Array<HastElementContent>} all
22771 * Transform the children of an mdast parent to hast.
22772 * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap
22773 * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.
22774 * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment
22775 * Like `state` but lower-level and usable on non-elements.
22776 * Deprecated: use `patch` and `applyData`.
22777 * @property {Array<string>} passThrough
22778 * List of node types to pass through untouched (except for their children).
22779 *
22780 * @typedef Options
22781 * Configuration (optional).
22782 * @property {boolean | null | undefined} [allowDangerousHtml=false]
22783 * Whether to persist raw HTML in markdown in the hast tree.
22784 * @property {string | null | undefined} [clobberPrefix='user-content-']
22785 * Prefix to use before the `id` attribute on footnotes to prevent it from
22786 * *clobbering*.
22787 * @property {string | null | undefined} [footnoteBackLabel='Back to content']
22788 * Label to use from backreferences back to their footnote call (affects
22789 * screen readers).
22790 * @property {string | null | undefined} [footnoteLabel='Footnotes']
22791 * Label to use for the footnotes section (affects screen readers).
22792 * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]
22793 * Properties to use on the footnote label (note that `id: 'footnote-label'`
22794 * is always added as footnote calls use it with `aria-describedby` to
22795 * provide an accessible label).
22796 * @property {string | null | undefined} [footnoteLabelTagName='h2']
22797 * Tag name to use for the footnote label.
22798 * @property {Handlers | null | undefined} [handlers]
22799 * Extra handlers for nodes.
22800 * @property {Array<string> | null | undefined} [passThrough]
22801 * List of custom mdast node types to pass through (keep) in hast (note that
22802 * the node itself is passed, but eventual children are transformed).
22803 * @property {Handler | null | undefined} [unknownHandler]
22804 * Handler for all unknown nodes.
22805 *
22806 * @typedef {Record<string, Handler>} Handlers
22807 * Handle nodes.
22808 *
22809 * @typedef {HFunctionProps & HFunctionNoProps & HFields} State
22810 * Info passed around.
22811 */
22812
22813
22814
22815
22816
22817
22818
22819 const own = {}.hasOwnProperty
22820
22821 /**
22822 * Create `state` from an mdast tree.
22823 *
22824 * @param {MdastNodes} tree
22825 * mdast node to transform.
22826 * @param {Options | null | undefined} [options]
22827 * Configuration.
22828 * @returns {State}
22829 * `state` function.
22830 */
22831 function createState(tree, options) {
22832 const settings = options || {}
22833 const dangerous = settings.allowDangerousHtml || false
22834 /** @type {Record<string, MdastFootnoteDefinition>} */
22835 const footnoteById = {}
22836
22837 // To do: next major: add `options` to state, remove:
22838 // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,
22839 // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,
22840 // `unknownHandler`.
22841
22842 // To do: next major: move to `state.options.allowDangerousHtml`.
22843 state.dangerous = dangerous
22844 // To do: next major: move to `state.options`.
22845 state.clobberPrefix =
22846 settings.clobberPrefix === undefined || settings.clobberPrefix === null
22847 ? 'user-content-'
22848 : settings.clobberPrefix
22849 // To do: next major: move to `state.options`.
22850 state.footnoteLabel = settings.footnoteLabel || 'Footnotes'
22851 // To do: next major: move to `state.options`.
22852 state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'
22853 // To do: next major: move to `state.options`.
22854 state.footnoteLabelProperties = settings.footnoteLabelProperties || {
22855 className: ['sr-only']
22856 }
22857 // To do: next major: move to `state.options`.
22858 state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'
22859 // To do: next major: move to `state.options`.
22860 state.unknownHandler = settings.unknownHandler
22861 // To do: next major: move to `state.options`.
22862 state.passThrough = settings.passThrough
22863
22864 state.handlers = {..._handlers_index_js__WEBPACK_IMPORTED_MODULE_0__.handlers, ...settings.handlers}
22865
22866 // To do: next major: replace utility with `definitionById` object, so we
22867 // only walk once (as we need footnotes too).
22868 state.definition = (0,mdast_util_definitions__WEBPACK_IMPORTED_MODULE_1__.definitions)(tree)
22869 state.footnoteById = footnoteById
22870 /** @type {Array<string>} */
22871 state.footnoteOrder = []
22872 /** @type {Record<string, number>} */
22873 state.footnoteCounts = {}
22874
22875 state.patch = patch
22876 state.applyData = applyData
22877 state.one = oneBound
22878 state.all = allBound
22879 state.wrap = wrap
22880 // To do: next major: remove `augment`.
22881 state.augment = augment
22882
22883 ;(0,unist_util_visit__WEBPACK_IMPORTED_MODULE_2__.visit)(tree, 'footnoteDefinition', (definition) => {
22884 const id = String(definition.identifier).toUpperCase()
22885
22886 // Mimick CM behavior of link definitions.
22887 // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.
22888 if (!own.call(footnoteById, id)) {
22889 footnoteById[id] = definition
22890 }
22891 })
22892
22893 // @ts-expect-error Hush, it’s fine!
22894 return state
22895
22896 /**
22897 * Finalise the created `right`, a hast node, from `left`, an mdast node.
22898 *
22899 * @param {MdastNodeWithData | PositionLike | null | undefined} left
22900 * @param {HastElementContent} right
22901 * @returns {HastElementContent}
22902 */
22903 /* c8 ignore start */
22904 // To do: next major: remove.
22905 function augment(left, right) {
22906 // Handle `data.hName`, `data.hProperties, `data.hChildren`.
22907 if (left && 'data' in left && left.data) {
22908 /** @type {MdastData} */
22909 const data = left.data
22910
22911 if (data.hName) {
22912 if (right.type !== 'element') {
22913 right = {
22914 type: 'element',
22915 tagName: '',
22916 properties: {},
22917 children: []
22918 }
22919 }
22920
22921 right.tagName = data.hName
22922 }
22923
22924 if (right.type === 'element' && data.hProperties) {
22925 right.properties = {...right.properties, ...data.hProperties}
22926 }
22927
22928 if ('children' in right && right.children && data.hChildren) {
22929 right.children = data.hChildren
22930 }
22931 }
22932
22933 if (left) {
22934 const ctx = 'type' in left ? left : {position: left}
22935
22936 if (!(0,unist_util_generated__WEBPACK_IMPORTED_MODULE_3__.generated)(ctx)) {
22937 // @ts-expect-error: fine.
22938 right.position = {start: (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointStart)(ctx), end: (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointEnd)(ctx)}
22939 }
22940 }
22941
22942 return right
22943 }
22944 /* c8 ignore stop */
22945
22946 /**
22947 * Create an element for `node`.
22948 *
22949 * @type {HFunctionProps}
22950 */
22951 /* c8 ignore start */
22952 // To do: next major: remove.
22953 function state(node, tagName, props, children) {
22954 if (Array.isArray(props)) {
22955 children = props
22956 props = {}
22957 }
22958
22959 // @ts-expect-error augmenting an element yields an element.
22960 return augment(node, {
22961 type: 'element',
22962 tagName,
22963 properties: props || {},
22964 children: children || []
22965 })
22966 }
22967 /* c8 ignore stop */
22968
22969 /**
22970 * Transform an mdast node into a hast node.
22971 *
22972 * @param {MdastNodes} node
22973 * mdast node.
22974 * @param {MdastParents | null | undefined} [parent]
22975 * Parent of `node`.
22976 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
22977 * Resulting hast node.
22978 */
22979 function oneBound(node, parent) {
22980 // @ts-expect-error: that’s a state :)
22981 return one(state, node, parent)
22982 }
22983
22984 /**
22985 * Transform the children of an mdast node into hast nodes.
22986 *
22987 * @param {MdastNodes} parent
22988 * mdast node to compile
22989 * @returns {Array<HastElementContent>}
22990 * Resulting hast nodes.
22991 */
22992 function allBound(parent) {
22993 // @ts-expect-error: that’s a state :)
22994 return all(state, parent)
22995 }
22996 }
22997
22998 /**
22999 * Copy a node’s positional info.
23000 *
23001 * @param {MdastNodes} from
23002 * mdast node to copy from.
23003 * @param {HastNodes} to
23004 * hast node to copy into.
23005 * @returns {void}
23006 * Nothing.
23007 */
23008 function patch(from, to) {
23009 if (from.position) to.position = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.position)(from)
23010 }
23011
23012 /**
23013 * Honor the `data` of `from` and maybe generate an element instead of `to`.
23014 *
23015 * @template {HastNodes} Type
23016 * Node type.
23017 * @param {MdastNodes} from
23018 * mdast node to use data from.
23019 * @param {Type} to
23020 * hast node to change.
23021 * @returns {Type | HastElement}
23022 * Nothing.
23023 */
23024 function applyData(from, to) {
23025 /** @type {Type | HastElement} */
23026 let result = to
23027
23028 // Handle `data.hName`, `data.hProperties, `data.hChildren`.
23029 if (from && from.data) {
23030 const hName = from.data.hName
23031 const hChildren = from.data.hChildren
23032 const hProperties = from.data.hProperties
23033
23034 if (typeof hName === 'string') {
23035 // Transforming the node resulted in an element with a different name
23036 // than wanted:
23037 if (result.type === 'element') {
23038 result.tagName = hName
23039 }
23040 // Transforming the node resulted in a non-element, which happens for
23041 // raw, text, and root nodes (unless custom handlers are passed).
23042 // The intent is likely to keep the content around (otherwise: pass
23043 // `hChildren`).
23044 else {
23045 result = {
23046 type: 'element',
23047 tagName: hName,
23048 properties: {},
23049 children: []
23050 }
23051
23052 // To do: next major: take the children from the `root`, or inject the
23053 // raw/text/comment or so into the element?
23054 // if ('children' in node) {
23055 // // @ts-expect-error: assume `children` are allowed in elements.
23056 // result.children = node.children
23057 // } else {
23058 // // @ts-expect-error: assume `node` is allowed in elements.
23059 // result.children.push(node)
23060 // }
23061 }
23062 }
23063
23064 if (result.type === 'element' && hProperties) {
23065 result.properties = {...result.properties, ...hProperties}
23066 }
23067
23068 if (
23069 'children' in result &&
23070 result.children &&
23071 hChildren !== null &&
23072 hChildren !== undefined
23073 ) {
23074 // @ts-expect-error: assume valid children are defined.
23075 result.children = hChildren
23076 }
23077 }
23078
23079 return result
23080 }
23081
23082 /**
23083 * Transform an mdast node into a hast node.
23084 *
23085 * @param {State} state
23086 * Info passed around.
23087 * @param {MdastNodes} node
23088 * mdast node.
23089 * @param {MdastParents | null | undefined} [parent]
23090 * Parent of `node`.
23091 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
23092 * Resulting hast node.
23093 */
23094 // To do: next major: do not expose, keep bound.
23095 function one(state, node, parent) {
23096 const type = node && node.type
23097
23098 // Fail on non-nodes.
23099 if (!type) {
23100 throw new Error('Expected node, got `' + node + '`')
23101 }
23102
23103 if (own.call(state.handlers, type)) {
23104 return state.handlers[type](state, node, parent)
23105 }
23106
23107 if (state.passThrough && state.passThrough.includes(type)) {
23108 // To do: next major: deep clone.
23109 // @ts-expect-error: types of passed through nodes are expected to be added manually.
23110 return 'children' in node ? {...node, children: all(state, node)} : node
23111 }
23112
23113 if (state.unknownHandler) {
23114 return state.unknownHandler(state, node, parent)
23115 }
23116
23117 return defaultUnknownHandler(state, node)
23118 }
23119
23120 /**
23121 * Transform the children of an mdast node into hast nodes.
23122 *
23123 * @param {State} state
23124 * Info passed around.
23125 * @param {MdastNodes} parent
23126 * mdast node to compile
23127 * @returns {Array<HastElementContent>}
23128 * Resulting hast nodes.
23129 */
23130 // To do: next major: do not expose, keep bound.
23131 function all(state, parent) {
23132 /** @type {Array<HastElementContent>} */
23133 const values = []
23134
23135 if ('children' in parent) {
23136 const nodes = parent.children
23137 let index = -1
23138 while (++index < nodes.length) {
23139 const result = one(state, nodes[index], parent)
23140
23141 // To do: see if we van clean this? Can we merge texts?
23142 if (result) {
23143 if (index && nodes[index - 1].type === 'break') {
23144 if (!Array.isArray(result) && result.type === 'text') {
23145 result.value = result.value.replace(/^\s+/, '')
23146 }
23147
23148 if (!Array.isArray(result) && result.type === 'element') {
23149 const head = result.children[0]
23150
23151 if (head && head.type === 'text') {
23152 head.value = head.value.replace(/^\s+/, '')
23153 }
23154 }
23155 }
23156
23157 if (Array.isArray(result)) {
23158 values.push(...result)
23159 } else {
23160 values.push(result)
23161 }
23162 }
23163 }
23164 }
23165
23166 return values
23167 }
23168
23169 /**
23170 * Transform an unknown node.
23171 *
23172 * @param {State} state
23173 * Info passed around.
23174 * @param {MdastNodes} node
23175 * Unknown mdast node.
23176 * @returns {HastText | HastElement}
23177 * Resulting hast node.
23178 */
23179 function defaultUnknownHandler(state, node) {
23180 const data = node.data || {}
23181 /** @type {HastText | HastElement} */
23182 const result =
23183 'value' in node &&
23184 !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))
23185 ? {type: 'text', value: node.value}
23186 : {
23187 type: 'element',
23188 tagName: 'div',
23189 properties: {},
23190 children: all(state, node)
23191 }
23192
23193 state.patch(node, result)
23194 return state.applyData(node, result)
23195 }
23196
23197 /**
23198 * Wrap `nodes` with line endings between each node.
23199 *
23200 * @template {HastContent} Type
23201 * Node type.
23202 * @param {Array<Type>} nodes
23203 * List of nodes to wrap.
23204 * @param {boolean | null | undefined} [loose=false]
23205 * Whether to add line endings at start and end.
23206 * @returns {Array<Type | HastText>}
23207 * Wrapped nodes.
23208 */
23209 function wrap(nodes, loose) {
23210 /** @type {Array<Type | HastText>} */
23211 const result = []
23212 let index = -1
23213
23214 if (loose) {
23215 result.push({type: 'text', value: '\n'})
23216 }
23217
23218 while (++index < nodes.length) {
23219 if (index) result.push({type: 'text', value: '\n'})
23220 result.push(nodes[index])
23221 }
23222
23223 if (loose && nodes.length > 0) {
23224 result.push({type: 'text', value: '\n'})
23225 }
23226
23227 return result
23228 }
23229
23230
23231 /***/ }),
23232
23233 /***/ "../node_modules/mdast-util-to-string/lib/index.js":
23234 /*!*********************************************************!*\
23235 !*** ../node_modules/mdast-util-to-string/lib/index.js ***!
23236 \*********************************************************/
23237 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23238
23239 "use strict";
23240 __webpack_require__.r(__webpack_exports__);
23241 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23242 /* harmony export */ toString: () => (/* binding */ toString)
23243 /* harmony export */ });
23244 /**
23245 * @typedef {import('mdast').Root|import('mdast').Content} Node
23246 *
23247 * @typedef Options
23248 * Configuration (optional).
23249 * @property {boolean | null | undefined} [includeImageAlt=true]
23250 * Whether to use `alt` for `image`s.
23251 * @property {boolean | null | undefined} [includeHtml=true]
23252 * Whether to use `value` of HTML.
23253 */
23254
23255 /** @type {Options} */
23256 const emptyOptions = {}
23257
23258 /**
23259 * Get the text content of a node or list of nodes.
23260 *
23261 * Prefers the node’s plain-text fields, otherwise serializes its children,
23262 * and if the given value is an array, serialize the nodes in it.
23263 *
23264 * @param {unknown} value
23265 * Thing to serialize, typically `Node`.
23266 * @param {Options | null | undefined} [options]
23267 * Configuration (optional).
23268 * @returns {string}
23269 * Serialized `value`.
23270 */
23271 function toString(value, options) {
23272 const settings = options || emptyOptions
23273 const includeImageAlt =
23274 typeof settings.includeImageAlt === 'boolean'
23275 ? settings.includeImageAlt
23276 : true
23277 const includeHtml =
23278 typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true
23279
23280 return one(value, includeImageAlt, includeHtml)
23281 }
23282
23283 /**
23284 * One node or several nodes.
23285 *
23286 * @param {unknown} value
23287 * Thing to serialize.
23288 * @param {boolean} includeImageAlt
23289 * Include image `alt`s.
23290 * @param {boolean} includeHtml
23291 * Include HTML.
23292 * @returns {string}
23293 * Serialized node.
23294 */
23295 function one(value, includeImageAlt, includeHtml) {
23296 if (node(value)) {
23297 if ('value' in value) {
23298 return value.type === 'html' && !includeHtml ? '' : value.value
23299 }
23300
23301 if (includeImageAlt && 'alt' in value && value.alt) {
23302 return value.alt
23303 }
23304
23305 if ('children' in value) {
23306 return all(value.children, includeImageAlt, includeHtml)
23307 }
23308 }
23309
23310 if (Array.isArray(value)) {
23311 return all(value, includeImageAlt, includeHtml)
23312 }
23313
23314 return ''
23315 }
23316
23317 /**
23318 * Serialize a list of nodes.
23319 *
23320 * @param {Array<unknown>} values
23321 * Thing to serialize.
23322 * @param {boolean} includeImageAlt
23323 * Include image `alt`s.
23324 * @param {boolean} includeHtml
23325 * Include HTML.
23326 * @returns {string}
23327 * Serialized nodes.
23328 */
23329 function all(values, includeImageAlt, includeHtml) {
23330 /** @type {Array<string>} */
23331 const result = []
23332 let index = -1
23333
23334 while (++index < values.length) {
23335 result[index] = one(values[index], includeImageAlt, includeHtml)
23336 }
23337
23338 return result.join('')
23339 }
23340
23341 /**
23342 * Check if `value` looks like a node.
23343 *
23344 * @param {unknown} value
23345 * Thing.
23346 * @returns {value is Node}
23347 * Whether `value` is a node.
23348 */
23349 function node(value) {
23350 return Boolean(value && typeof value === 'object')
23351 }
23352
23353
23354 /***/ }),
23355
23356 /***/ "../node_modules/micromark-core-commonmark/dev/lib/attention.js":
23357 /*!**********************************************************************!*\
23358 !*** ../node_modules/micromark-core-commonmark/dev/lib/attention.js ***!
23359 \**********************************************************************/
23360 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23361
23362 "use strict";
23363 __webpack_require__.r(__webpack_exports__);
23364 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23365 /* harmony export */ attention: () => (/* binding */ attention)
23366 /* harmony export */ });
23367 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
23368 /* harmony import */ var micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-classify-character */ "../node_modules/micromark-util-classify-character/dev/index.js");
23369 /* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-resolve-all */ "../node_modules/micromark-util-resolve-all/index.js");
23370 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
23371 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
23372 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
23373 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23374 /**
23375 * @typedef {import('micromark-util-types').Code} Code
23376 * @typedef {import('micromark-util-types').Construct} Construct
23377 * @typedef {import('micromark-util-types').Event} Event
23378 * @typedef {import('micromark-util-types').Point} Point
23379 * @typedef {import('micromark-util-types').Resolver} Resolver
23380 * @typedef {import('micromark-util-types').State} State
23381 * @typedef {import('micromark-util-types').Token} Token
23382 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23383 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23384 */
23385
23386
23387
23388
23389
23390
23391
23392
23393
23394 /** @type {Construct} */
23395 const attention = {
23396 name: 'attention',
23397 tokenize: tokenizeAttention,
23398 resolveAll: resolveAllAttention
23399 }
23400
23401 /**
23402 * Take all events and resolve attention to emphasis or strong.
23403 *
23404 * @type {Resolver}
23405 */
23406 function resolveAllAttention(events, context) {
23407 let index = -1
23408 /** @type {number} */
23409 let open
23410 /** @type {Token} */
23411 let group
23412 /** @type {Token} */
23413 let text
23414 /** @type {Token} */
23415 let openingSequence
23416 /** @type {Token} */
23417 let closingSequence
23418 /** @type {number} */
23419 let use
23420 /** @type {Array<Event>} */
23421 let nextEvents
23422 /** @type {number} */
23423 let offset
23424
23425 // Walk through all events.
23426 //
23427 // Note: performance of this is fine on an mb of normal markdown, but it’s
23428 // a bottleneck for malicious stuff.
23429 while (++index < events.length) {
23430 // Find a token that can close.
23431 if (
23432 events[index][0] === 'enter' &&
23433 events[index][1].type === 'attentionSequence' &&
23434 events[index][1]._close
23435 ) {
23436 open = index
23437
23438 // Now walk back to find an opener.
23439 while (open--) {
23440 // Find a token that can open the closer.
23441 if (
23442 events[open][0] === 'exit' &&
23443 events[open][1].type === 'attentionSequence' &&
23444 events[open][1]._open &&
23445 // If the markers are the same:
23446 context.sliceSerialize(events[open][1]).charCodeAt(0) ===
23447 context.sliceSerialize(events[index][1]).charCodeAt(0)
23448 ) {
23449 // If the opening can close or the closing can open,
23450 // and the close size *is not* a multiple of three,
23451 // but the sum of the opening and closing size *is* multiple of three,
23452 // then don’t match.
23453 if (
23454 (events[open][1]._close || events[index][1]._open) &&
23455 (events[index][1].end.offset - events[index][1].start.offset) % 3 &&
23456 !(
23457 (events[open][1].end.offset -
23458 events[open][1].start.offset +
23459 events[index][1].end.offset -
23460 events[index][1].start.offset) %
23461 3
23462 )
23463 ) {
23464 continue
23465 }
23466
23467 // Number of markers to use from the sequence.
23468 use =
23469 events[open][1].end.offset - events[open][1].start.offset > 1 &&
23470 events[index][1].end.offset - events[index][1].start.offset > 1
23471 ? 2
23472 : 1
23473
23474 const start = Object.assign({}, events[open][1].end)
23475 const end = Object.assign({}, events[index][1].start)
23476 movePoint(start, -use)
23477 movePoint(end, use)
23478
23479 openingSequence = {
23480 type: use > 1 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.strongSequence : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.emphasisSequence,
23481 start,
23482 end: Object.assign({}, events[open][1].end)
23483 }
23484 closingSequence = {
23485 type: use > 1 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.strongSequence : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.emphasisSequence,
23486 start: Object.assign({}, events[index][1].start),
23487 end
23488 }
23489 text = {
23490 type: use > 1 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.strongText : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.emphasisText,
23491 start: Object.assign({}, events[open][1].end),
23492 end: Object.assign({}, events[index][1].start)
23493 }
23494 group = {
23495 type: use > 1 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.strong : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.emphasis,
23496 start: Object.assign({}, openingSequence.start),
23497 end: Object.assign({}, closingSequence.end)
23498 }
23499
23500 events[open][1].end = Object.assign({}, openingSequence.start)
23501 events[index][1].start = Object.assign({}, closingSequence.end)
23502
23503 nextEvents = []
23504
23505 // If there are more markers in the opening, add them before.
23506 if (events[open][1].end.offset - events[open][1].start.offset) {
23507 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23508 ['enter', events[open][1], context],
23509 ['exit', events[open][1], context]
23510 ])
23511 }
23512
23513 // Opening.
23514 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23515 ['enter', group, context],
23516 ['enter', openingSequence, context],
23517 ['exit', openingSequence, context],
23518 ['enter', text, context]
23519 ])
23520
23521 // Always populated by defaults.
23522 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
23523 context.parser.constructs.insideSpan.null,
23524 'expected `insideSpan` to be populated'
23525 )
23526
23527 // Between.
23528 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(
23529 nextEvents,
23530 (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(
23531 context.parser.constructs.insideSpan.null,
23532 events.slice(open + 1, index),
23533 context
23534 )
23535 )
23536
23537 // Closing.
23538 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23539 ['exit', text, context],
23540 ['enter', closingSequence, context],
23541 ['exit', closingSequence, context],
23542 ['exit', group, context]
23543 ])
23544
23545 // If there are more markers in the closing, add them after.
23546 if (events[index][1].end.offset - events[index][1].start.offset) {
23547 offset = 2
23548 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23549 ['enter', events[index][1], context],
23550 ['exit', events[index][1], context]
23551 ])
23552 } else {
23553 offset = 0
23554 }
23555
23556 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open - 1, index - open + 3, nextEvents)
23557
23558 index = open + nextEvents.length - offset - 2
23559 break
23560 }
23561 }
23562 }
23563 }
23564
23565 // Remove remaining sequences.
23566 index = -1
23567
23568 while (++index < events.length) {
23569 if (events[index][1].type === 'attentionSequence') {
23570 events[index][1].type = 'data'
23571 }
23572 }
23573
23574 return events
23575 }
23576
23577 /**
23578 * @this {TokenizeContext}
23579 * @type {Tokenizer}
23580 */
23581 function tokenizeAttention(effects, ok) {
23582 const attentionMarkers = this.parser.constructs.attentionMarkers.null
23583 const previous = this.previous
23584 const before = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(previous)
23585
23586 /** @type {NonNullable<Code>} */
23587 let marker
23588
23589 return start
23590
23591 /**
23592 * Before a sequence.
23593 *
23594 * ```markdown
23595 * > | **
23596 * ^
23597 * ```
23598 *
23599 * @type {State}
23600 */
23601 function start(code) {
23602 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
23603 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.underscore,
23604 'expected asterisk or underscore'
23605 )
23606 marker = code
23607 effects.enter('attentionSequence')
23608 return inside(code)
23609 }
23610
23611 /**
23612 * In a sequence.
23613 *
23614 * ```markdown
23615 * > | **
23616 * ^^
23617 * ```
23618 *
23619 * @type {State}
23620 */
23621 function inside(code) {
23622 if (code === marker) {
23623 effects.consume(code)
23624 return inside
23625 }
23626
23627 const token = effects.exit('attentionSequence')
23628
23629 // To do: next major: move this to resolver, just like `markdown-rs`.
23630 const after = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(code)
23631
23632 // Always populated by defaults.
23633 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(attentionMarkers, 'expected `attentionMarkers` to be populated')
23634
23635 const open =
23636 !after ||
23637 (after === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && before) ||
23638 attentionMarkers.includes(code)
23639 const close =
23640 !before ||
23641 (before === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && after) ||
23642 attentionMarkers.includes(previous)
23643
23644 token._open = Boolean(
23645 marker === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? open : open && (before || !close)
23646 )
23647 token._close = Boolean(
23648 marker === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? close : close && (after || !open)
23649 )
23650 return ok(code)
23651 }
23652 }
23653
23654 /**
23655 * Move a point a bit.
23656 *
23657 * Note: `move` only works inside lines! It’s not possible to move past other
23658 * chunks (replacement characters, tabs, or line endings).
23659 *
23660 * @param {Point} point
23661 * @param {number} offset
23662 * @returns {void}
23663 */
23664 function movePoint(point, offset) {
23665 point.column += offset
23666 point.offset += offset
23667 point._bufferIndex += offset
23668 }
23669
23670
23671 /***/ }),
23672
23673 /***/ "../node_modules/micromark-core-commonmark/dev/lib/autolink.js":
23674 /*!*********************************************************************!*\
23675 !*** ../node_modules/micromark-core-commonmark/dev/lib/autolink.js ***!
23676 \*********************************************************************/
23677 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23678
23679 "use strict";
23680 __webpack_require__.r(__webpack_exports__);
23681 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23682 /* harmony export */ autolink: () => (/* binding */ autolink)
23683 /* harmony export */ });
23684 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
23685 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
23686 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
23687 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
23688 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23689 /**
23690 * @typedef {import('micromark-util-types').Construct} Construct
23691 * @typedef {import('micromark-util-types').State} State
23692 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23693 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23694 */
23695
23696
23697
23698
23699
23700
23701
23702 /** @type {Construct} */
23703 const autolink = {name: 'autolink', tokenize: tokenizeAutolink}
23704
23705 /**
23706 * @this {TokenizeContext}
23707 * @type {Tokenizer}
23708 */
23709 function tokenizeAutolink(effects, ok, nok) {
23710 let size = 0
23711
23712 return start
23713
23714 /**
23715 * Start of an autolink.
23716 *
23717 * ```markdown
23718 * > | a<https://example.com>b
23719 * ^
23720 * > | a<[email protected]>b
23721 * ^
23722 * ```
23723 *
23724 * @type {State}
23725 */
23726 function start(code) {
23727 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')
23728 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23729 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23730 effects.consume(code)
23731 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23732 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)
23733 return open
23734 }
23735
23736 /**
23737 * After `<`, at protocol or atext.
23738 *
23739 * ```markdown
23740 * > | a<https://example.com>b
23741 * ^
23742 * > | a<[email protected]>b
23743 * ^
23744 * ```
23745 *
23746 * @type {State}
23747 */
23748 function open(code) {
23749 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
23750 effects.consume(code)
23751 return schemeOrEmailAtext
23752 }
23753
23754 return emailAtext(code)
23755 }
23756
23757 /**
23758 * At second byte of protocol or atext.
23759 *
23760 * ```markdown
23761 * > | a<https://example.com>b
23762 * ^
23763 * > | a<[email protected]>b
23764 * ^
23765 * ```
23766 *
23767 * @type {State}
23768 */
23769 function schemeOrEmailAtext(code) {
23770 // ASCII alphanumeric and `+`, `-`, and `.`.
23771 if (
23772 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||
23773 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
23774 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
23775 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)
23776 ) {
23777 // Count the previous alphabetical from `open` too.
23778 size = 1
23779 return schemeInsideOrEmailAtext(code)
23780 }
23781
23782 return emailAtext(code)
23783 }
23784
23785 /**
23786 * In ambiguous protocol or atext.
23787 *
23788 * ```markdown
23789 * > | a<https://example.com>b
23790 * ^
23791 * > | a<[email protected]>b
23792 * ^
23793 * ```
23794 *
23795 * @type {State}
23796 */
23797 function schemeInsideOrEmailAtext(code) {
23798 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {
23799 effects.consume(code)
23800 size = 0
23801 return urlInside
23802 }
23803
23804 // ASCII alphanumeric and `+`, `-`, and `.`.
23805 if (
23806 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||
23807 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
23808 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
23809 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&
23810 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkSchemeSizeMax
23811 ) {
23812 effects.consume(code)
23813 return schemeInsideOrEmailAtext
23814 }
23815
23816 size = 0
23817 return emailAtext(code)
23818 }
23819
23820 /**
23821 * After protocol, in URL.
23822 *
23823 * ```markdown
23824 * > | a<https://example.com>b
23825 * ^
23826 * ```
23827 *
23828 * @type {State}
23829 */
23830 function urlInside(code) {
23831 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
23832 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)
23833 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23834 effects.consume(code)
23835 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23836 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23837 return ok
23838 }
23839
23840 // ASCII control, space, or `<`.
23841 if (
23842 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
23843 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.space ||
23844 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
23845 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiControl)(code)
23846 ) {
23847 return nok(code)
23848 }
23849
23850 effects.consume(code)
23851 return urlInside
23852 }
23853
23854 /**
23855 * In email atext.
23856 *
23857 * ```markdown
23858 * > | a<[email protected]>b
23859 * ^
23860 * ```
23861 *
23862 * @type {State}
23863 */
23864 function emailAtext(code) {
23865 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.atSign) {
23866 effects.consume(code)
23867 return emailAtSignOrDot
23868 }
23869
23870 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAtext)(code)) {
23871 effects.consume(code)
23872 return emailAtext
23873 }
23874
23875 return nok(code)
23876 }
23877
23878 /**
23879 * In label, after at-sign or dot.
23880 *
23881 * ```markdown
23882 * > | a<[email protected]>b
23883 * ^ ^
23884 * ```
23885 *
23886 * @type {State}
23887 */
23888 function emailAtSignOrDot(code) {
23889 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code) ? emailLabel(code) : nok(code)
23890 }
23891
23892 /**
23893 * In label, where `.` and `>` are allowed.
23894 *
23895 * ```markdown
23896 * > | a<[email protected]>b
23897 * ^
23898 * ```
23899 *
23900 * @type {State}
23901 */
23902 function emailLabel(code) {
23903 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot) {
23904 effects.consume(code)
23905 size = 0
23906 return emailAtSignOrDot
23907 }
23908
23909 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
23910 // Exit, then change the token type.
23911 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol).type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkEmail
23912 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23913 effects.consume(code)
23914 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23915 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23916 return ok
23917 }
23918
23919 return emailValue(code)
23920 }
23921
23922 /**
23923 * In label, where `.` and `>` are *not* allowed.
23924 *
23925 * Though, this is also used in `emailLabel` to parse other values.
23926 *
23927 * ```markdown
23928 * > | a<[email protected]>b
23929 * ^
23930 * ```
23931 *
23932 * @type {State}
23933 */
23934 function emailValue(code) {
23935 // ASCII alphanumeric or `-`.
23936 if (
23937 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&
23938 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkDomainSizeMax
23939 ) {
23940 const next = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ? emailValue : emailLabel
23941 effects.consume(code)
23942 return next
23943 }
23944
23945 return nok(code)
23946 }
23947 }
23948
23949
23950 /***/ }),
23951
23952 /***/ "../node_modules/micromark-core-commonmark/dev/lib/blank-line.js":
23953 /*!***********************************************************************!*\
23954 !*** ../node_modules/micromark-core-commonmark/dev/lib/blank-line.js ***!
23955 \***********************************************************************/
23956 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23957
23958 "use strict";
23959 __webpack_require__.r(__webpack_exports__);
23960 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23961 /* harmony export */ blankLine: () => (/* binding */ blankLine)
23962 /* harmony export */ });
23963 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
23964 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
23965 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
23966 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
23967 /**
23968 * @typedef {import('micromark-util-types').Construct} Construct
23969 * @typedef {import('micromark-util-types').State} State
23970 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23971 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23972 */
23973
23974
23975
23976
23977
23978
23979 /** @type {Construct} */
23980 const blankLine = {tokenize: tokenizeBlankLine, partial: true}
23981
23982 /**
23983 * @this {TokenizeContext}
23984 * @type {Tokenizer}
23985 */
23986 function tokenizeBlankLine(effects, ok, nok) {
23987 return start
23988
23989 /**
23990 * Start of blank line.
23991 *
23992 * > 👉 **Note**: `␠` represents a space character.
23993 *
23994 * ```markdown
23995 * > | ␠␠␊
23996 * ^
23997 * > | ␊
23998 * ^
23999 * ```
24000 *
24001 * @type {State}
24002 */
24003 function start(code) {
24004 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)
24005 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__.factorySpace)(effects, after, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)(code)
24006 : after(code)
24007 }
24008
24009 /**
24010 * At eof/eol, after optional whitespace.
24011 *
24012 * > 👉 **Note**: `␠` represents a space character.
24013 *
24014 * ```markdown
24015 * > | ␠␠␊
24016 * ^
24017 * > | ␊
24018 * ^
24019 * ```
24020 *
24021 * @type {State}
24022 */
24023 function after(code) {
24024 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownLineEnding)(code) ? ok(code) : nok(code)
24025 }
24026 }
24027
24028
24029 /***/ }),
24030
24031 /***/ "../node_modules/micromark-core-commonmark/dev/lib/block-quote.js":
24032 /*!************************************************************************!*\
24033 !*** ../node_modules/micromark-core-commonmark/dev/lib/block-quote.js ***!
24034 \************************************************************************/
24035 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24036
24037 "use strict";
24038 __webpack_require__.r(__webpack_exports__);
24039 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24040 /* harmony export */ blockQuote: () => (/* binding */ blockQuote)
24041 /* harmony export */ });
24042 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24043 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24044 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
24045 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
24046 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
24047 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24048 /**
24049 * @typedef {import('micromark-util-types').Construct} Construct
24050 * @typedef {import('micromark-util-types').Exiter} Exiter
24051 * @typedef {import('micromark-util-types').State} State
24052 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24053 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24054 */
24055
24056
24057
24058
24059
24060
24061
24062
24063 /** @type {Construct} */
24064 const blockQuote = {
24065 name: 'blockQuote',
24066 tokenize: tokenizeBlockQuoteStart,
24067 continuation: {tokenize: tokenizeBlockQuoteContinuation},
24068 exit
24069 }
24070
24071 /**
24072 * @this {TokenizeContext}
24073 * @type {Tokenizer}
24074 */
24075 function tokenizeBlockQuoteStart(effects, ok, nok) {
24076 const self = this
24077
24078 return start
24079
24080 /**
24081 * Start of block quote.
24082 *
24083 * ```markdown
24084 * > | > a
24085 * ^
24086 * ```
24087 *
24088 * @type {State}
24089 */
24090 function start(code) {
24091 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
24092 const state = self.containerState
24093
24094 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(state, 'expected `containerState` to be defined in container')
24095
24096 if (!state.open) {
24097 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote, {_container: true})
24098 state.open = true
24099 }
24100
24101 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24102 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker)
24103 effects.consume(code)
24104 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker)
24105 return after
24106 }
24107
24108 return nok(code)
24109 }
24110
24111 /**
24112 * After `>`, before optional whitespace.
24113 *
24114 * ```markdown
24115 * > | > a
24116 * ^
24117 * ```
24118 *
24119 * @type {State}
24120 */
24121 function after(code) {
24122 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
24123 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace)
24124 effects.consume(code)
24125 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace)
24126 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24127 return ok
24128 }
24129
24130 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24131 return ok(code)
24132 }
24133 }
24134
24135 /**
24136 * Start of block quote continuation.
24137 *
24138 * ```markdown
24139 * | > a
24140 * > | > b
24141 * ^
24142 * ```
24143 *
24144 * @this {TokenizeContext}
24145 * @type {Tokenizer}
24146 */
24147 function tokenizeBlockQuoteContinuation(effects, ok, nok) {
24148 const self = this
24149
24150 return contStart
24151
24152 /**
24153 * Start of block quote continuation.
24154 *
24155 * Also used to parse the first block quote opening.
24156 *
24157 * ```markdown
24158 * | > a
24159 * > | > b
24160 * ^
24161 * ```
24162 *
24163 * @type {State}
24164 */
24165 function contStart(code) {
24166 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
24167 // Always populated by defaults.
24168 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24169 self.parser.constructs.disable.null,
24170 'expected `disable.null` to be populated'
24171 )
24172
24173 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(
24174 effects,
24175 contBefore,
24176 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24177 self.parser.constructs.disable.null.includes('codeIndented')
24178 ? undefined
24179 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
24180 )(code)
24181 }
24182
24183 return contBefore(code)
24184 }
24185
24186 /**
24187 * At `>`, after optional whitespace.
24188 *
24189 * Also used to parse the first block quote opening.
24190 *
24191 * ```markdown
24192 * | > a
24193 * > | > b
24194 * ^
24195 * ```
24196 *
24197 * @type {State}
24198 */
24199 function contBefore(code) {
24200 return effects.attempt(blockQuote, ok, nok)(code)
24201 }
24202 }
24203
24204 /** @type {Exiter} */
24205 function exit(effects) {
24206 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote)
24207 }
24208
24209
24210 /***/ }),
24211
24212 /***/ "../node_modules/micromark-core-commonmark/dev/lib/character-escape.js":
24213 /*!*****************************************************************************!*\
24214 !*** ../node_modules/micromark-core-commonmark/dev/lib/character-escape.js ***!
24215 \*****************************************************************************/
24216 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24217
24218 "use strict";
24219 __webpack_require__.r(__webpack_exports__);
24220 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24221 /* harmony export */ characterEscape: () => (/* binding */ characterEscape)
24222 /* harmony export */ });
24223 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24224 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
24225 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
24226 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24227 /**
24228 * @typedef {import('micromark-util-types').Construct} Construct
24229 * @typedef {import('micromark-util-types').State} State
24230 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24231 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24232 */
24233
24234
24235
24236
24237
24238
24239 /** @type {Construct} */
24240 const characterEscape = {
24241 name: 'characterEscape',
24242 tokenize: tokenizeCharacterEscape
24243 }
24244
24245 /**
24246 * @this {TokenizeContext}
24247 * @type {Tokenizer}
24248 */
24249 function tokenizeCharacterEscape(effects, ok, nok) {
24250 return start
24251
24252 /**
24253 * Start of character escape.
24254 *
24255 * ```markdown
24256 * > | a\*b
24257 * ^
24258 * ```
24259 *
24260 * @type {State}
24261 */
24262 function start(code) {
24263 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, 'expected `\\`')
24264 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape)
24265 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker)
24266 effects.consume(code)
24267 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker)
24268 return inside
24269 }
24270
24271 /**
24272 * After `\`, at punctuation.
24273 *
24274 * ```markdown
24275 * > | a\*b
24276 * ^
24277 * ```
24278 *
24279 * @type {State}
24280 */
24281 function inside(code) {
24282 // ASCII punctuation.
24283 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiPunctuation)(code)) {
24284 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue)
24285 effects.consume(code)
24286 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue)
24287 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape)
24288 return ok
24289 }
24290
24291 return nok(code)
24292 }
24293 }
24294
24295
24296 /***/ }),
24297
24298 /***/ "../node_modules/micromark-core-commonmark/dev/lib/character-reference.js":
24299 /*!********************************************************************************!*\
24300 !*** ../node_modules/micromark-core-commonmark/dev/lib/character-reference.js ***!
24301 \********************************************************************************/
24302 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24303
24304 "use strict";
24305 __webpack_require__.r(__webpack_exports__);
24306 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24307 /* harmony export */ characterReference: () => (/* binding */ characterReference)
24308 /* harmony export */ });
24309 /* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! decode-named-character-reference */ "../node_modules/decode-named-character-reference/index.dom.js");
24310 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24311 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
24312 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
24313 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
24314 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24315 /**
24316 * @typedef {import('micromark-util-types').Code} Code
24317 * @typedef {import('micromark-util-types').Construct} Construct
24318 * @typedef {import('micromark-util-types').State} State
24319 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24320 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24321 */
24322
24323
24324
24325
24326
24327
24328
24329
24330 /** @type {Construct} */
24331 const characterReference = {
24332 name: 'characterReference',
24333 tokenize: tokenizeCharacterReference
24334 }
24335
24336 /**
24337 * @this {TokenizeContext}
24338 * @type {Tokenizer}
24339 */
24340 function tokenizeCharacterReference(effects, ok, nok) {
24341 const self = this
24342 let size = 0
24343 /** @type {number} */
24344 let max
24345 /** @type {(code: Code) => boolean} */
24346 let test
24347
24348 return start
24349
24350 /**
24351 * Start of character reference.
24352 *
24353 * ```markdown
24354 * > | a&amp;b
24355 * ^
24356 * > | a&#123;b
24357 * ^
24358 * > | a&#x9;b
24359 * ^
24360 * ```
24361 *
24362 * @type {State}
24363 */
24364 function start(code) {
24365 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.ampersand, 'expected `&`')
24366 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReference)
24367 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24368 effects.consume(code)
24369 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24370 return open
24371 }
24372
24373 /**
24374 * After `&`, at `#` for numeric references or alphanumeric for named
24375 * references.
24376 *
24377 * ```markdown
24378 * > | a&amp;b
24379 * ^
24380 * > | a&#123;b
24381 * ^
24382 * > | a&#x9;b
24383 * ^
24384 * ```
24385 *
24386 * @type {State}
24387 */
24388 function open(code) {
24389 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.numberSign) {
24390 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric)
24391 effects.consume(code)
24392 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric)
24393 return numeric
24394 }
24395
24396 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24397 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceNamedSizeMax
24398 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric
24399 return value(code)
24400 }
24401
24402 /**
24403 * After `#`, at `x` for hexadecimals or digit for decimals.
24404 *
24405 * ```markdown
24406 * > | a&#123;b
24407 * ^
24408 * > | a&#x9;b
24409 * ^
24410 * ```
24411 *
24412 * @type {State}
24413 */
24414 function numeric(code) {
24415 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.uppercaseX || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lowercaseX) {
24416 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal)
24417 effects.consume(code)
24418 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal)
24419 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24420 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceHexadecimalSizeMax
24421 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiHexDigit
24422 return value
24423 }
24424
24425 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24426 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceDecimalSizeMax
24427 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiDigit
24428 return value(code)
24429 }
24430
24431 /**
24432 * After markers (`&#x`, `&#`, or `&`), in value, before `;`.
24433 *
24434 * The character reference kind defines what and how many characters are
24435 * allowed.
24436 *
24437 * ```markdown
24438 * > | a&amp;b
24439 * ^^^
24440 * > | a&#123;b
24441 * ^^^
24442 * > | a&#x9;b
24443 * ^
24444 * ```
24445 *
24446 * @type {State}
24447 */
24448 function value(code) {
24449 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.semicolon && size) {
24450 const token = effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24451
24452 if (
24453 test === micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric &&
24454 !(0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_5__.decodeNamedCharacterReference)(self.sliceSerialize(token))
24455 ) {
24456 return nok(code)
24457 }
24458
24459 // To do: `markdown-rs` uses a different name:
24460 // `CharacterReferenceMarkerSemi`.
24461 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24462 effects.consume(code)
24463 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24464 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReference)
24465 return ok
24466 }
24467
24468 if (test(code) && size++ < max) {
24469 effects.consume(code)
24470 return value
24471 }
24472
24473 return nok(code)
24474 }
24475 }
24476
24477
24478 /***/ }),
24479
24480 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js":
24481 /*!************************************************************************!*\
24482 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js ***!
24483 \************************************************************************/
24484 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24485
24486 "use strict";
24487 __webpack_require__.r(__webpack_exports__);
24488 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24489 /* harmony export */ codeFenced: () => (/* binding */ codeFenced)
24490 /* harmony export */ });
24491 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24492 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24493 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
24494 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
24495 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
24496 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24497 /**
24498 * @typedef {import('micromark-util-types').Code} Code
24499 * @typedef {import('micromark-util-types').Construct} Construct
24500 * @typedef {import('micromark-util-types').State} State
24501 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24502 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24503 */
24504
24505
24506
24507
24508
24509
24510
24511
24512 /** @type {Construct} */
24513 const nonLazyContinuation = {
24514 tokenize: tokenizeNonLazyContinuation,
24515 partial: true
24516 }
24517
24518 /** @type {Construct} */
24519 const codeFenced = {
24520 name: 'codeFenced',
24521 tokenize: tokenizeCodeFenced,
24522 concrete: true
24523 }
24524
24525 /**
24526 * @this {TokenizeContext}
24527 * @type {Tokenizer}
24528 */
24529 function tokenizeCodeFenced(effects, ok, nok) {
24530 const self = this
24531 /** @type {Construct} */
24532 const closeStart = {tokenize: tokenizeCloseStart, partial: true}
24533 let initialPrefix = 0
24534 let sizeOpen = 0
24535 /** @type {NonNullable<Code>} */
24536 let marker
24537
24538 return start
24539
24540 /**
24541 * Start of code.
24542 *
24543 * ```markdown
24544 * > | ~~~js
24545 * ^
24546 * | alert(1)
24547 * | ~~~
24548 * ```
24549 *
24550 * @type {State}
24551 */
24552 function start(code) {
24553 // To do: parse whitespace like `markdown-rs`.
24554 return beforeSequenceOpen(code)
24555 }
24556
24557 /**
24558 * In opening fence, after prefix, at sequence.
24559 *
24560 * ```markdown
24561 * > | ~~~js
24562 * ^
24563 * | alert(1)
24564 * | ~~~
24565 * ```
24566 *
24567 * @type {State}
24568 */
24569 function beforeSequenceOpen(code) {
24570 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24571 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.tilde,
24572 'expected `` ` `` or `~`'
24573 )
24574
24575 const tail = self.events[self.events.length - 1]
24576 initialPrefix =
24577 tail && tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix
24578 ? tail[2].sliceSerialize(tail[1], true).length
24579 : 0
24580
24581 marker = code
24582 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced)
24583 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24584 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24585 return sequenceOpen(code)
24586 }
24587
24588 /**
24589 * In opening fence sequence.
24590 *
24591 * ```markdown
24592 * > | ~~~js
24593 * ^
24594 * | alert(1)
24595 * | ~~~
24596 * ```
24597 *
24598 * @type {State}
24599 */
24600 function sequenceOpen(code) {
24601 if (code === marker) {
24602 sizeOpen++
24603 effects.consume(code)
24604 return sequenceOpen
24605 }
24606
24607 if (sizeOpen < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.codeFencedSequenceSizeMin) {
24608 return nok(code)
24609 }
24610
24611 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24612 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24613 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, infoBefore, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24614 : infoBefore(code)
24615 }
24616
24617 /**
24618 * In opening fence, after the sequence (and optional whitespace), before info.
24619 *
24620 * ```markdown
24621 * > | ~~~js
24622 * ^
24623 * | alert(1)
24624 * | ~~~
24625 * ```
24626 *
24627 * @type {State}
24628 */
24629 function infoBefore(code) {
24630 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24631 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24632 return self.interrupt
24633 ? ok(code)
24634 : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
24635 }
24636
24637 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24638 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.contentTypeString})
24639 return info(code)
24640 }
24641
24642 /**
24643 * In info.
24644 *
24645 * ```markdown
24646 * > | ~~~js
24647 * ^
24648 * | alert(1)
24649 * | ~~~
24650 * ```
24651 *
24652 * @type {State}
24653 */
24654 function info(code) {
24655 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24656 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24657 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24658 return infoBefore(code)
24659 }
24660
24661 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
24662 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24663 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24664 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, metaBefore, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24665 }
24666
24667 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {
24668 return nok(code)
24669 }
24670
24671 effects.consume(code)
24672 return info
24673 }
24674
24675 /**
24676 * In opening fence, after info and whitespace, before meta.
24677 *
24678 * ```markdown
24679 * > | ~~~js eval
24680 * ^
24681 * | alert(1)
24682 * | ~~~
24683 * ```
24684 *
24685 * @type {State}
24686 */
24687 function metaBefore(code) {
24688 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24689 return infoBefore(code)
24690 }
24691
24692 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta)
24693 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.contentTypeString})
24694 return meta(code)
24695 }
24696
24697 /**
24698 * In meta.
24699 *
24700 * ```markdown
24701 * > | ~~~js eval
24702 * ^
24703 * | alert(1)
24704 * | ~~~
24705 * ```
24706 *
24707 * @type {State}
24708 */
24709 function meta(code) {
24710 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24711 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24712 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta)
24713 return infoBefore(code)
24714 }
24715
24716 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {
24717 return nok(code)
24718 }
24719
24720 effects.consume(code)
24721 return meta
24722 }
24723
24724 /**
24725 * At eol/eof in code, before a non-lazy closing fence or content.
24726 *
24727 * ```markdown
24728 * > | ~~~js
24729 * ^
24730 * > | alert(1)
24731 * ^
24732 * | ~~~
24733 * ```
24734 *
24735 * @type {State}
24736 */
24737 function atNonLazyBreak(code) {
24738 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24739 return effects.attempt(closeStart, after, contentBefore)(code)
24740 }
24741
24742 /**
24743 * Before code content, not a closing fence, at eol.
24744 *
24745 * ```markdown
24746 * | ~~~js
24747 * > | alert(1)
24748 * ^
24749 * | ~~~
24750 * ```
24751 *
24752 * @type {State}
24753 */
24754 function contentBefore(code) {
24755 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24756 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24757 effects.consume(code)
24758 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24759 return contentStart
24760 }
24761
24762 /**
24763 * Before code content, not a closing fence.
24764 *
24765 * ```markdown
24766 * | ~~~js
24767 * > | alert(1)
24768 * ^
24769 * | ~~~
24770 * ```
24771 *
24772 * @type {State}
24773 */
24774 function contentStart(code) {
24775 return initialPrefix > 0 && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24776 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
24777 effects,
24778 beforeContentChunk,
24779 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24780 initialPrefix + 1
24781 )(code)
24782 : beforeContentChunk(code)
24783 }
24784
24785 /**
24786 * Before code content, after optional prefix.
24787 *
24788 * ```markdown
24789 * | ~~~js
24790 * > | alert(1)
24791 * ^
24792 * | ~~~
24793 * ```
24794 *
24795 * @type {State}
24796 */
24797 function beforeContentChunk(code) {
24798 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24799 return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
24800 }
24801
24802 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
24803 return contentChunk(code)
24804 }
24805
24806 /**
24807 * In code content.
24808 *
24809 * ```markdown
24810 * | ~~~js
24811 * > | alert(1)
24812 * ^^^^^^^^
24813 * | ~~~
24814 * ```
24815 *
24816 * @type {State}
24817 */
24818 function contentChunk(code) {
24819 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24820 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
24821 return beforeContentChunk(code)
24822 }
24823
24824 effects.consume(code)
24825 return contentChunk
24826 }
24827
24828 /**
24829 * After code.
24830 *
24831 * ```markdown
24832 * | ~~~js
24833 * | alert(1)
24834 * > | ~~~
24835 * ^
24836 * ```
24837 *
24838 * @type {State}
24839 */
24840 function after(code) {
24841 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced)
24842 return ok(code)
24843 }
24844
24845 /**
24846 * @this {TokenizeContext}
24847 * @type {Tokenizer}
24848 */
24849 function tokenizeCloseStart(effects, ok, nok) {
24850 let size = 0
24851
24852 return startBefore
24853
24854 /**
24855 *
24856 *
24857 * @type {State}
24858 */
24859 function startBefore(code) {
24860 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24861 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24862 effects.consume(code)
24863 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24864 return start
24865 }
24866
24867 /**
24868 * Before closing fence, at optional whitespace.
24869 *
24870 * ```markdown
24871 * | ~~~js
24872 * | alert(1)
24873 * > | ~~~
24874 * ^
24875 * ```
24876 *
24877 * @type {State}
24878 */
24879 function start(code) {
24880 // Always populated by defaults.
24881 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24882 self.parser.constructs.disable.null,
24883 'expected `disable.null` to be populated'
24884 )
24885
24886 // To do: `enter` here or in next state?
24887 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24888 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24889 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
24890 effects,
24891 beforeSequenceClose,
24892 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24893 self.parser.constructs.disable.null.includes('codeIndented')
24894 ? undefined
24895 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.tabSize
24896 )(code)
24897 : beforeSequenceClose(code)
24898 }
24899
24900 /**
24901 * In closing fence, after optional whitespace, at sequence.
24902 *
24903 * ```markdown
24904 * | ~~~js
24905 * | alert(1)
24906 * > | ~~~
24907 * ^
24908 * ```
24909 *
24910 * @type {State}
24911 */
24912 function beforeSequenceClose(code) {
24913 if (code === marker) {
24914 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24915 return sequenceClose(code)
24916 }
24917
24918 return nok(code)
24919 }
24920
24921 /**
24922 * In closing fence sequence.
24923 *
24924 * ```markdown
24925 * | ~~~js
24926 * | alert(1)
24927 * > | ~~~
24928 * ^
24929 * ```
24930 *
24931 * @type {State}
24932 */
24933 function sequenceClose(code) {
24934 if (code === marker) {
24935 size++
24936 effects.consume(code)
24937 return sequenceClose
24938 }
24939
24940 if (size >= sizeOpen) {
24941 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24942 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24943 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, sequenceCloseAfter, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24944 : sequenceCloseAfter(code)
24945 }
24946
24947 return nok(code)
24948 }
24949
24950 /**
24951 * After closing fence sequence, after optional whitespace.
24952 *
24953 * ```markdown
24954 * | ~~~js
24955 * | alert(1)
24956 * > | ~~~
24957 * ^
24958 * ```
24959 *
24960 * @type {State}
24961 */
24962 function sequenceCloseAfter(code) {
24963 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24964 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24965 return ok(code)
24966 }
24967
24968 return nok(code)
24969 }
24970 }
24971 }
24972
24973 /**
24974 * @this {TokenizeContext}
24975 * @type {Tokenizer}
24976 */
24977 function tokenizeNonLazyContinuation(effects, ok, nok) {
24978 const self = this
24979
24980 return start
24981
24982 /**
24983 *
24984 *
24985 * @type {State}
24986 */
24987 function start(code) {
24988 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
24989 return nok(code)
24990 }
24991
24992 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24993 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24994 effects.consume(code)
24995 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24996 return lineStart
24997 }
24998
24999 /**
25000 *
25001 *
25002 * @type {State}
25003 */
25004 function lineStart(code) {
25005 return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
25006 }
25007 }
25008
25009
25010 /***/ }),
25011
25012 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-indented.js":
25013 /*!**************************************************************************!*\
25014 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-indented.js ***!
25015 \**************************************************************************/
25016 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25017
25018 "use strict";
25019 __webpack_require__.r(__webpack_exports__);
25020 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25021 /* harmony export */ codeIndented: () => (/* binding */ codeIndented)
25022 /* harmony export */ });
25023 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25024 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25025 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
25026 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
25027 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
25028 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25029 /**
25030 * @typedef {import('micromark-util-types').Construct} Construct
25031 * @typedef {import('micromark-util-types').State} State
25032 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25033 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25034 */
25035
25036
25037
25038
25039
25040
25041
25042
25043 /** @type {Construct} */
25044 const codeIndented = {
25045 name: 'codeIndented',
25046 tokenize: tokenizeCodeIndented
25047 }
25048
25049 /** @type {Construct} */
25050 const furtherStart = {tokenize: tokenizeFurtherStart, partial: true}
25051
25052 /**
25053 * @this {TokenizeContext}
25054 * @type {Tokenizer}
25055 */
25056 function tokenizeCodeIndented(effects, ok, nok) {
25057 const self = this
25058 return start
25059
25060 /**
25061 * Start of code (indented).
25062 *
25063 * > **Parsing note**: it is not needed to check if this first line is a
25064 * > filled line (that it has a non-whitespace character), because blank lines
25065 * > are parsed already, so we never run into that.
25066 *
25067 * ```markdown
25068 * > | aaa
25069 * ^
25070 * ```
25071 *
25072 * @type {State}
25073 */
25074 function start(code) {
25075 // To do: manually check if interrupting like `markdown-rs`.
25076 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownSpace)(code))
25077 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented)
25078 // To do: use an improved `space_or_tab` function like `markdown-rs`,
25079 // so that we can drop the next state.
25080 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(
25081 effects,
25082 afterPrefix,
25083 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25084 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1
25085 )(code)
25086 }
25087
25088 /**
25089 * At start, after 1 or 4 spaces.
25090 *
25091 * ```markdown
25092 * > | aaa
25093 * ^
25094 * ```
25095 *
25096 * @type {State}
25097 */
25098 function afterPrefix(code) {
25099 const tail = self.events[self.events.length - 1]
25100 return tail &&
25101 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix &&
25102 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
25103 ? atBreak(code)
25104 : nok(code)
25105 }
25106
25107 /**
25108 * At a break.
25109 *
25110 * ```markdown
25111 * > | aaa
25112 * ^ ^
25113 * ```
25114 *
25115 * @type {State}
25116 */
25117 function atBreak(code) {
25118 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
25119 return after(code)
25120 }
25121
25122 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25123 return effects.attempt(furtherStart, atBreak, after)(code)
25124 }
25125
25126 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25127 return inside(code)
25128 }
25129
25130 /**
25131 * In code content.
25132 *
25133 * ```markdown
25134 * > | aaa
25135 * ^^^^
25136 * ```
25137 *
25138 * @type {State}
25139 */
25140 function inside(code) {
25141 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25142 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25143 return atBreak(code)
25144 }
25145
25146 effects.consume(code)
25147 return inside
25148 }
25149
25150 /** @type {State} */
25151 function after(code) {
25152 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented)
25153 // To do: allow interrupting like `markdown-rs`.
25154 // Feel free to interrupt.
25155 // tokenizer.interrupt = false
25156 return ok(code)
25157 }
25158 }
25159
25160 /**
25161 * @this {TokenizeContext}
25162 * @type {Tokenizer}
25163 */
25164 function tokenizeFurtherStart(effects, ok, nok) {
25165 const self = this
25166
25167 return furtherStart
25168
25169 /**
25170 * At eol, trying to parse another indent.
25171 *
25172 * ```markdown
25173 * > | aaa
25174 * ^
25175 * | bbb
25176 * ```
25177 *
25178 * @type {State}
25179 */
25180 function furtherStart(code) {
25181 // To do: improve `lazy` / `pierce` handling.
25182 // If this is a lazy line, it can’t be code.
25183 if (self.parser.lazy[self.now().line]) {
25184 return nok(code)
25185 }
25186
25187 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25188 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25189 effects.consume(code)
25190 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25191 return furtherStart
25192 }
25193
25194 // To do: the code here in `micromark-js` is a bit different from
25195 // `markdown-rs` because there it can attempt spaces.
25196 // We can’t yet.
25197 //
25198 // To do: use an improved `space_or_tab` function like `markdown-rs`,
25199 // so that we can drop the next state.
25200 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(
25201 effects,
25202 afterPrefix,
25203 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25204 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1
25205 )(code)
25206 }
25207
25208 /**
25209 * At start, after 1 or 4 spaces.
25210 *
25211 * ```markdown
25212 * > | aaa
25213 * ^
25214 * ```
25215 *
25216 * @type {State}
25217 */
25218 function afterPrefix(code) {
25219 const tail = self.events[self.events.length - 1]
25220 return tail &&
25221 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix &&
25222 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
25223 ? ok(code)
25224 : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)
25225 ? furtherStart(code)
25226 : nok(code)
25227 }
25228 }
25229
25230
25231 /***/ }),
25232
25233 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-text.js":
25234 /*!**********************************************************************!*\
25235 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-text.js ***!
25236 \**********************************************************************/
25237 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25238
25239 "use strict";
25240 __webpack_require__.r(__webpack_exports__);
25241 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25242 /* harmony export */ codeText: () => (/* binding */ codeText)
25243 /* harmony export */ });
25244 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25245 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
25246 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
25247 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25248 /**
25249 * @typedef {import('micromark-util-types').Construct} Construct
25250 * @typedef {import('micromark-util-types').Previous} Previous
25251 * @typedef {import('micromark-util-types').Resolver} Resolver
25252 * @typedef {import('micromark-util-types').State} State
25253 * @typedef {import('micromark-util-types').Token} Token
25254 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25255 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25256 */
25257
25258
25259
25260
25261
25262
25263 /** @type {Construct} */
25264 const codeText = {
25265 name: 'codeText',
25266 tokenize: tokenizeCodeText,
25267 resolve: resolveCodeText,
25268 previous
25269 }
25270
25271 // To do: next major: don’t resolve, like `markdown-rs`.
25272 /** @type {Resolver} */
25273 function resolveCodeText(events) {
25274 let tailExitIndex = events.length - 4
25275 let headEnterIndex = 3
25276 /** @type {number} */
25277 let index
25278 /** @type {number | undefined} */
25279 let enter
25280
25281 // If we start and end with an EOL or a space.
25282 if (
25283 (events[headEnterIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
25284 events[headEnterIndex][1].type === 'space') &&
25285 (events[tailExitIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
25286 events[tailExitIndex][1].type === 'space')
25287 ) {
25288 index = headEnterIndex
25289
25290 // And we have data.
25291 while (++index < tailExitIndex) {
25292 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData) {
25293 // Then we have padding.
25294 events[headEnterIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextPadding
25295 events[tailExitIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextPadding
25296 headEnterIndex += 2
25297 tailExitIndex -= 2
25298 break
25299 }
25300 }
25301 }
25302
25303 // Merge adjacent spaces and data.
25304 index = headEnterIndex - 1
25305 tailExitIndex++
25306
25307 while (++index <= tailExitIndex) {
25308 if (enter === undefined) {
25309 if (
25310 index !== tailExitIndex &&
25311 events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
25312 ) {
25313 enter = index
25314 }
25315 } else if (
25316 index === tailExitIndex ||
25317 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
25318 ) {
25319 events[enter][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData
25320
25321 if (index !== enter + 2) {
25322 events[enter][1].end = events[index - 1][1].end
25323 events.splice(enter + 2, index - enter - 2)
25324 tailExitIndex -= index - enter - 2
25325 index = enter + 2
25326 }
25327
25328 enter = undefined
25329 }
25330 }
25331
25332 return events
25333 }
25334
25335 /**
25336 * @this {TokenizeContext}
25337 * @type {Previous}
25338 */
25339 function previous(code) {
25340 // If there is a previous code, there will always be a tail.
25341 return (
25342 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
25343 this.events[this.events.length - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.characterEscape
25344 )
25345 }
25346
25347 /**
25348 * @this {TokenizeContext}
25349 * @type {Tokenizer}
25350 */
25351 function tokenizeCodeText(effects, ok, nok) {
25352 const self = this
25353 let sizeOpen = 0
25354 /** @type {number} */
25355 let size
25356 /** @type {Token} */
25357 let token
25358
25359 return start
25360
25361 /**
25362 * Start of code (text).
25363 *
25364 * ```markdown
25365 * > | `a`
25366 * ^
25367 * > | \`a`
25368 * ^
25369 * ```
25370 *
25371 * @type {State}
25372 */
25373 function start(code) {
25374 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent, 'expected `` ` ``')
25375 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(previous.call(self, self.previous), 'expected correct previous')
25376 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeText)
25377 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25378 return sequenceOpen(code)
25379 }
25380
25381 /**
25382 * In opening sequence.
25383 *
25384 * ```markdown
25385 * > | `a`
25386 * ^
25387 * ```
25388 *
25389 * @type {State}
25390 */
25391 function sequenceOpen(code) {
25392 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25393 effects.consume(code)
25394 sizeOpen++
25395 return sequenceOpen
25396 }
25397
25398 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25399 return between(code)
25400 }
25401
25402 /**
25403 * Between something and something else.
25404 *
25405 * ```markdown
25406 * > | `a`
25407 * ^^
25408 * ```
25409 *
25410 * @type {State}
25411 */
25412 function between(code) {
25413 // EOF.
25414 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
25415 return nok(code)
25416 }
25417
25418 // To do: next major: don’t do spaces in resolve, but when compiling,
25419 // like `markdown-rs`.
25420 // Tabs don’t work, and virtual spaces don’t make sense.
25421 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.space) {
25422 effects.enter('space')
25423 effects.consume(code)
25424 effects.exit('space')
25425 return between
25426 }
25427
25428 // Closing fence? Could also be data.
25429 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25430 token = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25431 size = 0
25432 return sequenceClose(code)
25433 }
25434
25435 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25436 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
25437 effects.consume(code)
25438 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
25439 return between
25440 }
25441
25442 // Data.
25443 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData)
25444 return data(code)
25445 }
25446
25447 /**
25448 * In data.
25449 *
25450 * ```markdown
25451 * > | `a`
25452 * ^
25453 * ```
25454 *
25455 * @type {State}
25456 */
25457 function data(code) {
25458 if (
25459 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
25460 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.space ||
25461 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
25462 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)
25463 ) {
25464 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData)
25465 return between(code)
25466 }
25467
25468 effects.consume(code)
25469 return data
25470 }
25471
25472 /**
25473 * In closing sequence.
25474 *
25475 * ```markdown
25476 * > | `a`
25477 * ^
25478 * ```
25479 *
25480 * @type {State}
25481 */
25482 function sequenceClose(code) {
25483 // More.
25484 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25485 effects.consume(code)
25486 size++
25487 return sequenceClose
25488 }
25489
25490 // Done!
25491 if (size === sizeOpen) {
25492 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25493 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeText)
25494 return ok(code)
25495 }
25496
25497 // More or less accents: mark as data.
25498 token.type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData
25499 return data(code)
25500 }
25501 }
25502
25503
25504 /***/ }),
25505
25506 /***/ "../node_modules/micromark-core-commonmark/dev/lib/content.js":
25507 /*!********************************************************************!*\
25508 !*** ../node_modules/micromark-core-commonmark/dev/lib/content.js ***!
25509 \********************************************************************/
25510 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25511
25512 "use strict";
25513 __webpack_require__.r(__webpack_exports__);
25514 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25515 /* harmony export */ content: () => (/* binding */ content)
25516 /* harmony export */ });
25517 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25518 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25519 /* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-subtokenize */ "../node_modules/micromark-util-subtokenize/dev/index.js");
25520 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
25521 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
25522 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
25523 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25524 /**
25525 * @typedef {import('micromark-util-types').Construct} Construct
25526 * @typedef {import('micromark-util-types').Resolver} Resolver
25527 * @typedef {import('micromark-util-types').State} State
25528 * @typedef {import('micromark-util-types').Token} Token
25529 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25530 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25531 */
25532
25533
25534
25535
25536
25537
25538
25539
25540
25541 /**
25542 * No name because it must not be turned off.
25543 * @type {Construct}
25544 */
25545 const content = {tokenize: tokenizeContent, resolve: resolveContent}
25546
25547 /** @type {Construct} */
25548 const continuationConstruct = {tokenize: tokenizeContinuation, partial: true}
25549
25550 /**
25551 * Content is transparent: it’s parsed right now. That way, definitions are also
25552 * parsed right now: before text in paragraphs (specifically, media) are parsed.
25553 *
25554 * @type {Resolver}
25555 */
25556 function resolveContent(events) {
25557 ;(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_1__.subtokenize)(events)
25558 return events
25559 }
25560
25561 /**
25562 * @this {TokenizeContext}
25563 * @type {Tokenizer}
25564 */
25565 function tokenizeContent(effects, ok) {
25566 /** @type {Token | undefined} */
25567 let previous
25568
25569 return chunkStart
25570
25571 /**
25572 * Before a content chunk.
25573 *
25574 * ```markdown
25575 * > | abc
25576 * ^
25577 * ```
25578 *
25579 * @type {State}
25580 */
25581 function chunkStart(code) {
25582 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25583 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code),
25584 'expected no eof or eol'
25585 )
25586
25587 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.content)
25588 previous = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {
25589 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent
25590 })
25591 return chunkInside(code)
25592 }
25593
25594 /**
25595 * In a content chunk.
25596 *
25597 * ```markdown
25598 * > | abc
25599 * ^^^
25600 * ```
25601 *
25602 * @type {State}
25603 */
25604 function chunkInside(code) {
25605 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
25606 return contentEnd(code)
25607 }
25608
25609 // To do: in `markdown-rs`, each line is parsed on its own, and everything
25610 // is stitched together resolving.
25611 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25612 return effects.check(
25613 continuationConstruct,
25614 contentContinue,
25615 contentEnd
25616 )(code)
25617 }
25618
25619 // Data.
25620 effects.consume(code)
25621 return chunkInside
25622 }
25623
25624 /**
25625 *
25626 *
25627 * @type {State}
25628 */
25629 function contentEnd(code) {
25630 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25631 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.content)
25632 return ok(code)
25633 }
25634
25635 /**
25636 *
25637 *
25638 * @type {State}
25639 */
25640 function contentContinue(code) {
25641 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected eol')
25642 effects.consume(code)
25643 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25644 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(previous, 'expected previous token')
25645 previous.next = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {
25646 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent,
25647 previous
25648 })
25649 previous = previous.next
25650 return chunkInside
25651 }
25652 }
25653
25654 /**
25655 * @this {TokenizeContext}
25656 * @type {Tokenizer}
25657 */
25658 function tokenizeContinuation(effects, ok, nok) {
25659 const self = this
25660
25661 return startLookahead
25662
25663 /**
25664 *
25665 *
25666 * @type {State}
25667 */
25668 function startLookahead(code) {
25669 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected a line ending')
25670 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25671 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
25672 effects.consume(code)
25673 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
25674 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, prefixed, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix)
25675 }
25676
25677 /**
25678 *
25679 *
25680 * @type {State}
25681 */
25682 function prefixed(code) {
25683 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25684 return nok(code)
25685 }
25686
25687 // Always populated by defaults.
25688 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25689 self.parser.constructs.disable.null,
25690 'expected `disable.null` to be populated'
25691 )
25692
25693 const tail = self.events[self.events.length - 1]
25694
25695 if (
25696 !self.parser.constructs.disable.null.includes('codeIndented') &&
25697 tail &&
25698 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix &&
25699 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
25700 ) {
25701 return ok(code)
25702 }
25703
25704 return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)
25705 }
25706 }
25707
25708
25709 /***/ }),
25710
25711 /***/ "../node_modules/micromark-core-commonmark/dev/lib/definition.js":
25712 /*!***********************************************************************!*\
25713 !*** ../node_modules/micromark-core-commonmark/dev/lib/definition.js ***!
25714 \***********************************************************************/
25715 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25716
25717 "use strict";
25718 __webpack_require__.r(__webpack_exports__);
25719 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25720 /* harmony export */ definition: () => (/* binding */ definition)
25721 /* harmony export */ });
25722 /* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-destination */ "../node_modules/micromark-factory-destination/dev/index.js");
25723 /* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-label */ "../node_modules/micromark-factory-label/dev/index.js");
25724 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25725 /* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-factory-title */ "../node_modules/micromark-factory-title/dev/index.js");
25726 /* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-whitespace */ "../node_modules/micromark-factory-whitespace/dev/index.js");
25727 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25728 /* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-normalize-identifier */ "../node_modules/micromark-util-normalize-identifier/dev/index.js");
25729 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
25730 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
25731 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25732 /**
25733 * @typedef {import('micromark-util-types').Construct} Construct
25734 * @typedef {import('micromark-util-types').State} State
25735 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25736 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25737 */
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749
25750 /** @type {Construct} */
25751 const definition = {name: 'definition', tokenize: tokenizeDefinition}
25752
25753 /** @type {Construct} */
25754 const titleBefore = {tokenize: tokenizeTitleBefore, partial: true}
25755
25756 /**
25757 * @this {TokenizeContext}
25758 * @type {Tokenizer}
25759 */
25760 function tokenizeDefinition(effects, ok, nok) {
25761 const self = this
25762 /** @type {string} */
25763 let identifier
25764
25765 return start
25766
25767 /**
25768 * At start of a definition.
25769 *
25770 * ```markdown
25771 * > | [a]: b "c"
25772 * ^
25773 * ```
25774 *
25775 * @type {State}
25776 */
25777 function start(code) {
25778 // Do not interrupt paragraphs (but do follow definitions).
25779 // To do: do `interrupt` the way `markdown-rs` does.
25780 // To do: parse whitespace the way `markdown-rs` does.
25781 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition)
25782 return before(code)
25783 }
25784
25785 /**
25786 * After optional whitespace, at `[`.
25787 *
25788 * ```markdown
25789 * > | [a]: b "c"
25790 * ^
25791 * ```
25792 *
25793 * @type {State}
25794 */
25795 function before(code) {
25796 // To do: parse whitespace the way `markdown-rs` does.
25797 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, 'expected `[`')
25798 return micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__.factoryLabel.call(
25799 self,
25800 effects,
25801 labelAfter,
25802 // Note: we don’t need to reset the way `markdown-rs` does.
25803 nok,
25804 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabel,
25805 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabelMarker,
25806 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabelString
25807 )(code)
25808 }
25809
25810 /**
25811 * After label.
25812 *
25813 * ```markdown
25814 * > | [a]: b "c"
25815 * ^
25816 * ```
25817 *
25818 * @type {State}
25819 */
25820 function labelAfter(code) {
25821 identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_4__.normalizeIdentifier)(
25822 self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
25823 )
25824
25825 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon) {
25826 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionMarker)
25827 effects.consume(code)
25828 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionMarker)
25829 return markerAfter
25830 }
25831
25832 return nok(code)
25833 }
25834
25835 /**
25836 * After marker.
25837 *
25838 * ```markdown
25839 * > | [a]: b "c"
25840 * ^
25841 * ```
25842 *
25843 * @type {State}
25844 */
25845 function markerAfter(code) {
25846 // Note: whitespace is optional.
25847 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
25848 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, destinationBefore)(code)
25849 : destinationBefore(code)
25850 }
25851
25852 /**
25853 * Before destination.
25854 *
25855 * ```markdown
25856 * > | [a]: b "c"
25857 * ^
25858 * ```
25859 *
25860 * @type {State}
25861 */
25862 function destinationBefore(code) {
25863 return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__.factoryDestination)(
25864 effects,
25865 destinationAfter,
25866 // Note: we don’t need to reset the way `markdown-rs` does.
25867 nok,
25868 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestination,
25869 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationLiteral,
25870 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationLiteralMarker,
25871 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationRaw,
25872 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationString
25873 )(code)
25874 }
25875
25876 /**
25877 * After destination.
25878 *
25879 * ```markdown
25880 * > | [a]: b "c"
25881 * ^
25882 * ```
25883 *
25884 * @type {State}
25885 */
25886 function destinationAfter(code) {
25887 return effects.attempt(titleBefore, after, after)(code)
25888 }
25889
25890 /**
25891 * After definition.
25892 *
25893 * ```markdown
25894 * > | [a]: b
25895 * ^
25896 * > | [a]: b "c"
25897 * ^
25898 * ```
25899 *
25900 * @type {State}
25901 */
25902 function after(code) {
25903 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)
25904 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(effects, afterWhitespace, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
25905 : afterWhitespace(code)
25906 }
25907
25908 /**
25909 * After definition, after optional whitespace.
25910 *
25911 * ```markdown
25912 * > | [a]: b
25913 * ^
25914 * > | [a]: b "c"
25915 * ^
25916 * ```
25917 *
25918 * @type {State}
25919 */
25920 function afterWhitespace(code) {
25921 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
25922 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition)
25923
25924 // Note: we don’t care about uniqueness.
25925 // It’s likely that that doesn’t happen very frequently.
25926 // It is more likely that it wastes precious time.
25927 self.parser.defined.push(identifier)
25928
25929 // To do: `markdown-rs` interrupt.
25930 // // You’d be interrupting.
25931 // tokenizer.interrupt = true
25932 return ok(code)
25933 }
25934
25935 return nok(code)
25936 }
25937 }
25938
25939 /**
25940 * @this {TokenizeContext}
25941 * @type {Tokenizer}
25942 */
25943 function tokenizeTitleBefore(effects, ok, nok) {
25944 return titleBefore
25945
25946 /**
25947 * After destination, at whitespace.
25948 *
25949 * ```markdown
25950 * > | [a]: b
25951 * ^
25952 * > | [a]: b "c"
25953 * ^
25954 * ```
25955 *
25956 * @type {State}
25957 */
25958 function titleBefore(code) {
25959 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
25960 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, beforeMarker)(code)
25961 : nok(code)
25962 }
25963
25964 /**
25965 * At title.
25966 *
25967 * ```markdown
25968 * | [a]: b
25969 * > | "c"
25970 * ^
25971 * ```
25972 *
25973 * @type {State}
25974 */
25975 function beforeMarker(code) {
25976 return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__.factoryTitle)(
25977 effects,
25978 titleAfter,
25979 nok,
25980 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitle,
25981 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitleMarker,
25982 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitleString
25983 )(code)
25984 }
25985
25986 /**
25987 * After title.
25988 *
25989 * ```markdown
25990 * > | [a]: b "c"
25991 * ^
25992 * ```
25993 *
25994 * @type {State}
25995 */
25996 function titleAfter(code) {
25997 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)
25998 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(
25999 effects,
26000 titleAfterOptionalWhitespace,
26001 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace
26002 )(code)
26003 : titleAfterOptionalWhitespace(code)
26004 }
26005
26006 /**
26007 * After title, after optional whitespace.
26008 *
26009 * ```markdown
26010 * > | [a]: b "c"
26011 * ^
26012 * ```
26013 *
26014 * @type {State}
26015 */
26016 function titleAfterOptionalWhitespace(code) {
26017 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code) ? ok(code) : nok(code)
26018 }
26019 }
26020
26021
26022 /***/ }),
26023
26024 /***/ "../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js":
26025 /*!******************************************************************************!*\
26026 !*** ../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js ***!
26027 \******************************************************************************/
26028 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26029
26030 "use strict";
26031 __webpack_require__.r(__webpack_exports__);
26032 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26033 /* harmony export */ hardBreakEscape: () => (/* binding */ hardBreakEscape)
26034 /* harmony export */ });
26035 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26036 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
26037 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
26038 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26039 /**
26040 * @typedef {import('micromark-util-types').Construct} Construct
26041 * @typedef {import('micromark-util-types').State} State
26042 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26043 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26044 */
26045
26046
26047
26048
26049
26050
26051 /** @type {Construct} */
26052 const hardBreakEscape = {
26053 name: 'hardBreakEscape',
26054 tokenize: tokenizeHardBreakEscape
26055 }
26056
26057 /**
26058 * @this {TokenizeContext}
26059 * @type {Tokenizer}
26060 */
26061 function tokenizeHardBreakEscape(effects, ok, nok) {
26062 return start
26063
26064 /**
26065 * Start of a hard break (escape).
26066 *
26067 * ```markdown
26068 * > | a\
26069 * ^
26070 * | b
26071 * ```
26072 *
26073 * @type {State}
26074 */
26075 function start(code) {
26076 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, 'expected `\\`')
26077 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape)
26078 effects.consume(code)
26079 return after
26080 }
26081
26082 /**
26083 * After `\`, at eol.
26084 *
26085 * ```markdown
26086 * > | a\
26087 * ^
26088 * | b
26089 * ```
26090 *
26091 * @type {State}
26092 */
26093 function after(code) {
26094 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
26095 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape)
26096 return ok(code)
26097 }
26098
26099 return nok(code)
26100 }
26101 }
26102
26103
26104 /***/ }),
26105
26106 /***/ "../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js":
26107 /*!************************************************************************!*\
26108 !*** ../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js ***!
26109 \************************************************************************/
26110 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26111
26112 "use strict";
26113 __webpack_require__.r(__webpack_exports__);
26114 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26115 /* harmony export */ headingAtx: () => (/* binding */ headingAtx)
26116 /* harmony export */ });
26117 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
26118 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26119 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
26120 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
26121 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
26122 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
26123 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26124 /**
26125 * @typedef {import('micromark-util-types').Construct} Construct
26126 * @typedef {import('micromark-util-types').Resolver} Resolver
26127 * @typedef {import('micromark-util-types').State} State
26128 * @typedef {import('micromark-util-types').Token} Token
26129 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26130 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26131 */
26132
26133
26134
26135
26136
26137
26138
26139
26140
26141 /** @type {Construct} */
26142 const headingAtx = {
26143 name: 'headingAtx',
26144 tokenize: tokenizeHeadingAtx,
26145 resolve: resolveHeadingAtx
26146 }
26147
26148 /** @type {Resolver} */
26149 function resolveHeadingAtx(events, context) {
26150 let contentEnd = events.length - 2
26151 let contentStart = 3
26152 /** @type {Token} */
26153 let content
26154 /** @type {Token} */
26155 let text
26156
26157 // Prefix whitespace, part of the opening.
26158 if (events[contentStart][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace) {
26159 contentStart += 2
26160 }
26161
26162 // Suffix whitespace, part of the closing.
26163 if (
26164 contentEnd - 2 > contentStart &&
26165 events[contentEnd][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace
26166 ) {
26167 contentEnd -= 2
26168 }
26169
26170 if (
26171 events[contentEnd][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence &&
26172 (contentStart === contentEnd - 1 ||
26173 (contentEnd - 4 > contentStart &&
26174 events[contentEnd - 2][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace))
26175 ) {
26176 contentEnd -= contentStart + 1 === contentEnd ? 2 : 4
26177 }
26178
26179 if (contentEnd > contentStart) {
26180 content = {
26181 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText,
26182 start: events[contentStart][1].start,
26183 end: events[contentEnd][1].end
26184 }
26185 text = {
26186 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkText,
26187 start: events[contentStart][1].start,
26188 end: events[contentEnd][1].end,
26189 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.contentTypeText
26190 }
26191
26192 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.splice)(events, contentStart, contentEnd - contentStart + 1, [
26193 ['enter', content, context],
26194 ['enter', text, context],
26195 ['exit', text, context],
26196 ['exit', content, context]
26197 ])
26198 }
26199
26200 return events
26201 }
26202
26203 /**
26204 * @this {TokenizeContext}
26205 * @type {Tokenizer}
26206 */
26207 function tokenizeHeadingAtx(effects, ok, nok) {
26208 let size = 0
26209
26210 return start
26211
26212 /**
26213 * Start of a heading (atx).
26214 *
26215 * ```markdown
26216 * > | ## aa
26217 * ^
26218 * ```
26219 *
26220 * @type {State}
26221 */
26222 function start(code) {
26223 // To do: parse indent like `markdown-rs`.
26224 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeading)
26225 return before(code)
26226 }
26227
26228 /**
26229 * After optional whitespace, at `#`.
26230 *
26231 * ```markdown
26232 * > | ## aa
26233 * ^
26234 * ```
26235 *
26236 * @type {State}
26237 */
26238 function before(code) {
26239 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign, 'expected `#`')
26240 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26241 return sequenceOpen(code)
26242 }
26243
26244 /**
26245 * In opening sequence.
26246 *
26247 * ```markdown
26248 * > | ## aa
26249 * ^
26250 * ```
26251 *
26252 * @type {State}
26253 */
26254 function sequenceOpen(code) {
26255 if (
26256 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign &&
26257 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.atxHeadingOpeningFenceSizeMax
26258 ) {
26259 effects.consume(code)
26260 return sequenceOpen
26261 }
26262
26263 // Always at least one `#`.
26264 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {
26265 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26266 return atBreak(code)
26267 }
26268
26269 return nok(code)
26270 }
26271
26272 /**
26273 * After something, before something else.
26274 *
26275 * ```markdown
26276 * > | ## aa
26277 * ^
26278 * ```
26279 *
26280 * @type {State}
26281 */
26282 function atBreak(code) {
26283 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {
26284 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26285 return sequenceFurther(code)
26286 }
26287
26288 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
26289 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeading)
26290 // To do: interrupt like `markdown-rs`.
26291 // // Feel free to interrupt.
26292 // tokenizer.interrupt = false
26293 return ok(code)
26294 }
26295
26296 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)) {
26297 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
26298 }
26299
26300 // To do: generate `data` tokens, add the `text` token later.
26301 // Needs edit map, see: `markdown.rs`.
26302 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText)
26303 return data(code)
26304 }
26305
26306 /**
26307 * In further sequence (after whitespace).
26308 *
26309 * Could be normal “visible” hashes in the heading or a final sequence.
26310 *
26311 * ```markdown
26312 * > | ## aa ##
26313 * ^
26314 * ```
26315 *
26316 * @type {State}
26317 */
26318 function sequenceFurther(code) {
26319 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {
26320 effects.consume(code)
26321 return sequenceFurther
26322 }
26323
26324 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26325 return atBreak(code)
26326 }
26327
26328 /**
26329 * In text.
26330 *
26331 * ```markdown
26332 * > | ## aa
26333 * ^
26334 * ```
26335 *
26336 * @type {State}
26337 */
26338 function data(code) {
26339 if (
26340 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof ||
26341 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign ||
26342 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
26343 ) {
26344 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText)
26345 return atBreak(code)
26346 }
26347
26348 effects.consume(code)
26349 return data
26350 }
26351 }
26352
26353
26354 /***/ }),
26355
26356 /***/ "../node_modules/micromark-core-commonmark/dev/lib/html-flow.js":
26357 /*!**********************************************************************!*\
26358 !*** ../node_modules/micromark-core-commonmark/dev/lib/html-flow.js ***!
26359 \**********************************************************************/
26360 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26361
26362 "use strict";
26363 __webpack_require__.r(__webpack_exports__);
26364 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26365 /* harmony export */ htmlFlow: () => (/* binding */ htmlFlow)
26366 /* harmony export */ });
26367 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26368 /* harmony import */ var micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-html-tag-name */ "../node_modules/micromark-util-html-tag-name/index.js");
26369 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
26370 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
26371 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
26372 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26373 /* harmony import */ var _blank_line_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blank-line.js */ "../node_modules/micromark-core-commonmark/dev/lib/blank-line.js");
26374 /**
26375 * @typedef {import('micromark-util-types').Code} Code
26376 * @typedef {import('micromark-util-types').Construct} Construct
26377 * @typedef {import('micromark-util-types').Resolver} Resolver
26378 * @typedef {import('micromark-util-types').State} State
26379 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26380 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26381 */
26382
26383
26384
26385
26386
26387
26388
26389
26390
26391 /** @type {Construct} */
26392 const htmlFlow = {
26393 name: 'htmlFlow',
26394 tokenize: tokenizeHtmlFlow,
26395 resolveTo: resolveToHtmlFlow,
26396 concrete: true
26397 }
26398
26399 /** @type {Construct} */
26400 const blankLineBefore = {tokenize: tokenizeBlankLineBefore, partial: true}
26401 const nonLazyContinuationStart = {
26402 tokenize: tokenizeNonLazyContinuationStart,
26403 partial: true
26404 }
26405
26406 /** @type {Resolver} */
26407 function resolveToHtmlFlow(events) {
26408 let index = events.length
26409
26410 while (index--) {
26411 if (
26412 events[index][0] === 'enter' &&
26413 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow
26414 ) {
26415 break
26416 }
26417 }
26418
26419 if (index > 1 && events[index - 2][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix) {
26420 // Add the prefix start to the HTML token.
26421 events[index][1].start = events[index - 2][1].start
26422 // Add the prefix start to the HTML line token.
26423 events[index + 1][1].start = events[index - 2][1].start
26424 // Remove the line prefix.
26425 events.splice(index - 2, 2)
26426 }
26427
26428 return events
26429 }
26430
26431 /**
26432 * @this {TokenizeContext}
26433 * @type {Tokenizer}
26434 */
26435 function tokenizeHtmlFlow(effects, ok, nok) {
26436 const self = this
26437 /** @type {number} */
26438 let marker
26439 /** @type {boolean} */
26440 let closingTag
26441 /** @type {string} */
26442 let buffer
26443 /** @type {number} */
26444 let index
26445 /** @type {Code} */
26446 let markerB
26447
26448 return start
26449
26450 /**
26451 * Start of HTML (flow).
26452 *
26453 * ```markdown
26454 * > | <x />
26455 * ^
26456 * ```
26457 *
26458 * @type {State}
26459 */
26460 function start(code) {
26461 // To do: parse indent like `markdown-rs`.
26462 return before(code)
26463 }
26464
26465 /**
26466 * At `<`, after optional whitespace.
26467 *
26468 * ```markdown
26469 * > | <x />
26470 * ^
26471 * ```
26472 *
26473 * @type {State}
26474 */
26475 function before(code) {
26476 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan, 'expected `<`')
26477 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow)
26478 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
26479 effects.consume(code)
26480 return open
26481 }
26482
26483 /**
26484 * After `<`, at tag name or other stuff.
26485 *
26486 * ```markdown
26487 * > | <x />
26488 * ^
26489 * > | <!doctype>
26490 * ^
26491 * > | <!--xxx-->
26492 * ^
26493 * ```
26494 *
26495 * @type {State}
26496 */
26497 function open(code) {
26498 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark) {
26499 effects.consume(code)
26500 return declarationOpen
26501 }
26502
26503 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
26504 effects.consume(code)
26505 closingTag = true
26506 return tagCloseStart
26507 }
26508
26509 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark) {
26510 effects.consume(code)
26511 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction
26512 // To do:
26513 // tokenizer.concrete = true
26514 // To do: use `markdown-rs` style interrupt.
26515 // While we’re in an instruction instead of a declaration, we’re on a `?`
26516 // right now, so we do need to search for `>`, similar to declarations.
26517 return self.interrupt ? ok : continuationDeclarationInside
26518 }
26519
26520 // ASCII alphabetical.
26521 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26522 effects.consume(code)
26523 // @ts-expect-error: not null.
26524 buffer = String.fromCharCode(code)
26525 return tagName
26526 }
26527
26528 return nok(code)
26529 }
26530
26531 /**
26532 * After `<!`, at declaration, comment, or CDATA.
26533 *
26534 * ```markdown
26535 * > | <!doctype>
26536 * ^
26537 * > | <!--xxx-->
26538 * ^
26539 * > | <![CDATA[>&<]]>
26540 * ^
26541 * ```
26542 *
26543 * @type {State}
26544 */
26545 function declarationOpen(code) {
26546 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
26547 effects.consume(code)
26548 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment
26549 return commentOpenInside
26550 }
26551
26552 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {
26553 effects.consume(code)
26554 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata
26555 index = 0
26556 return cdataOpenInside
26557 }
26558
26559 // ASCII alphabetical.
26560 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26561 effects.consume(code)
26562 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration
26563 // // Do not form containers.
26564 // tokenizer.concrete = true
26565 return self.interrupt ? ok : continuationDeclarationInside
26566 }
26567
26568 return nok(code)
26569 }
26570
26571 /**
26572 * After `<!-`, inside a comment, at another `-`.
26573 *
26574 * ```markdown
26575 * > | <!--xxx-->
26576 * ^
26577 * ```
26578 *
26579 * @type {State}
26580 */
26581 function commentOpenInside(code) {
26582 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
26583 effects.consume(code)
26584 // // Do not form containers.
26585 // tokenizer.concrete = true
26586 return self.interrupt ? ok : continuationDeclarationInside
26587 }
26588
26589 return nok(code)
26590 }
26591
26592 /**
26593 * After `<![`, inside CDATA, expecting `CDATA[`.
26594 *
26595 * ```markdown
26596 * > | <![CDATA[>&<]]>
26597 * ^^^^^^
26598 * ```
26599 *
26600 * @type {State}
26601 */
26602 function cdataOpenInside(code) {
26603 const value = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.cdataOpeningString
26604
26605 if (code === value.charCodeAt(index++)) {
26606 effects.consume(code)
26607
26608 if (index === value.length) {
26609 // // Do not form containers.
26610 // tokenizer.concrete = true
26611 return self.interrupt ? ok : continuation
26612 }
26613
26614 return cdataOpenInside
26615 }
26616
26617 return nok(code)
26618 }
26619
26620 /**
26621 * After `</`, in closing tag, at tag name.
26622 *
26623 * ```markdown
26624 * > | </x>
26625 * ^
26626 * ```
26627 *
26628 * @type {State}
26629 */
26630 function tagCloseStart(code) {
26631 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26632 effects.consume(code)
26633 // @ts-expect-error: not null.
26634 buffer = String.fromCharCode(code)
26635 return tagName
26636 }
26637
26638 return nok(code)
26639 }
26640
26641 /**
26642 * In tag name.
26643 *
26644 * ```markdown
26645 * > | <ab>
26646 * ^^
26647 * > | </ab>
26648 * ^^
26649 * ```
26650 *
26651 * @type {State}
26652 */
26653 function tagName(code) {
26654 if (
26655 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26656 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26657 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26658 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)
26659 ) {
26660 const slash = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash
26661 const name = buffer.toLowerCase()
26662
26663 if (!slash && !closingTag && micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {
26664 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw
26665 // // Do not form containers.
26666 // tokenizer.concrete = true
26667 return self.interrupt ? ok(code) : continuation(code)
26668 }
26669
26670 if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlBlockNames.includes(buffer.toLowerCase())) {
26671 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic
26672
26673 if (slash) {
26674 effects.consume(code)
26675 return basicSelfClosing
26676 }
26677
26678 // // Do not form containers.
26679 // tokenizer.concrete = true
26680 return self.interrupt ? ok(code) : continuation(code)
26681 }
26682
26683 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete
26684 // Do not support complete HTML when interrupting.
26685 return self.interrupt && !self.parser.lazy[self.now().line]
26686 ? nok(code)
26687 : closingTag
26688 ? completeClosingTagAfter(code)
26689 : completeAttributeNameBefore(code)
26690 }
26691
26692 // ASCII alphanumerical and `-`.
26693 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)) {
26694 effects.consume(code)
26695 buffer += String.fromCharCode(code)
26696 return tagName
26697 }
26698
26699 return nok(code)
26700 }
26701
26702 /**
26703 * After closing slash of a basic tag name.
26704 *
26705 * ```markdown
26706 * > | <div/>
26707 * ^
26708 * ```
26709 *
26710 * @type {State}
26711 */
26712 function basicSelfClosing(code) {
26713 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
26714 effects.consume(code)
26715 // // Do not form containers.
26716 // tokenizer.concrete = true
26717 return self.interrupt ? ok : continuation
26718 }
26719
26720 return nok(code)
26721 }
26722
26723 /**
26724 * After closing slash of a complete tag name.
26725 *
26726 * ```markdown
26727 * > | <x/>
26728 * ^
26729 * ```
26730 *
26731 * @type {State}
26732 */
26733 function completeClosingTagAfter(code) {
26734 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26735 effects.consume(code)
26736 return completeClosingTagAfter
26737 }
26738
26739 return completeEnd(code)
26740 }
26741
26742 /**
26743 * At an attribute name.
26744 *
26745 * At first, this state is used after a complete tag name, after whitespace,
26746 * where it expects optional attributes or the end of the tag.
26747 * It is also reused after attributes, when expecting more optional
26748 * attributes.
26749 *
26750 * ```markdown
26751 * > | <a />
26752 * ^
26753 * > | <a :b>
26754 * ^
26755 * > | <a _b>
26756 * ^
26757 * > | <a b>
26758 * ^
26759 * > | <a >
26760 * ^
26761 * ```
26762 *
26763 * @type {State}
26764 */
26765 function completeAttributeNameBefore(code) {
26766 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
26767 effects.consume(code)
26768 return completeEnd
26769 }
26770
26771 // ASCII alphanumerical and `:` and `_`.
26772 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26773 effects.consume(code)
26774 return completeAttributeName
26775 }
26776
26777 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26778 effects.consume(code)
26779 return completeAttributeNameBefore
26780 }
26781
26782 return completeEnd(code)
26783 }
26784
26785 /**
26786 * In attribute name.
26787 *
26788 * ```markdown
26789 * > | <a :b>
26790 * ^
26791 * > | <a _b>
26792 * ^
26793 * > | <a b>
26794 * ^
26795 * ```
26796 *
26797 * @type {State}
26798 */
26799 function completeAttributeName(code) {
26800 // ASCII alphanumerical and `-`, `.`, `:`, and `_`.
26801 if (
26802 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||
26803 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dot ||
26804 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon ||
26805 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore ||
26806 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)
26807 ) {
26808 effects.consume(code)
26809 return completeAttributeName
26810 }
26811
26812 return completeAttributeNameAfter(code)
26813 }
26814
26815 /**
26816 * After attribute name, at an optional initializer, the end of the tag, or
26817 * whitespace.
26818 *
26819 * ```markdown
26820 * > | <a b>
26821 * ^
26822 * > | <a b=c>
26823 * ^
26824 * ```
26825 *
26826 * @type {State}
26827 */
26828 function completeAttributeNameAfter(code) {
26829 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo) {
26830 effects.consume(code)
26831 return completeAttributeValueBefore
26832 }
26833
26834 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26835 effects.consume(code)
26836 return completeAttributeNameAfter
26837 }
26838
26839 return completeAttributeNameBefore(code)
26840 }
26841
26842 /**
26843 * Before unquoted, double quoted, or single quoted attribute value, allowing
26844 * whitespace.
26845 *
26846 * ```markdown
26847 * > | <a b=c>
26848 * ^
26849 * > | <a b="c">
26850 * ^
26851 * ```
26852 *
26853 * @type {State}
26854 */
26855 function completeAttributeValueBefore(code) {
26856 if (
26857 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26858 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||
26859 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||
26860 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26861 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent
26862 ) {
26863 return nok(code)
26864 }
26865
26866 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe) {
26867 effects.consume(code)
26868 markerB = code
26869 return completeAttributeValueQuoted
26870 }
26871
26872 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26873 effects.consume(code)
26874 return completeAttributeValueBefore
26875 }
26876
26877 return completeAttributeValueUnquoted(code)
26878 }
26879
26880 /**
26881 * In double or single quoted attribute value.
26882 *
26883 * ```markdown
26884 * > | <a b="c">
26885 * ^
26886 * > | <a b='c'>
26887 * ^
26888 * ```
26889 *
26890 * @type {State}
26891 */
26892 function completeAttributeValueQuoted(code) {
26893 if (code === markerB) {
26894 effects.consume(code)
26895 markerB = null
26896 return completeAttributeValueQuotedAfter
26897 }
26898
26899 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
26900 return nok(code)
26901 }
26902
26903 effects.consume(code)
26904 return completeAttributeValueQuoted
26905 }
26906
26907 /**
26908 * In unquoted attribute value.
26909 *
26910 * ```markdown
26911 * > | <a b=c>
26912 * ^
26913 * ```
26914 *
26915 * @type {State}
26916 */
26917 function completeAttributeValueUnquoted(code) {
26918 if (
26919 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26920 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark ||
26921 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe ||
26922 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26923 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||
26924 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||
26925 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26926 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
26927 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)
26928 ) {
26929 return completeAttributeNameAfter(code)
26930 }
26931
26932 effects.consume(code)
26933 return completeAttributeValueUnquoted
26934 }
26935
26936 /**
26937 * After double or single quoted attribute value, before whitespace or the
26938 * end of the tag.
26939 *
26940 * ```markdown
26941 * > | <a b="c">
26942 * ^
26943 * ```
26944 *
26945 * @type {State}
26946 */
26947 function completeAttributeValueQuotedAfter(code) {
26948 if (
26949 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26950 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26951 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
26952 ) {
26953 return completeAttributeNameBefore(code)
26954 }
26955
26956 return nok(code)
26957 }
26958
26959 /**
26960 * In certain circumstances of a complete tag where only an `>` is allowed.
26961 *
26962 * ```markdown
26963 * > | <a b="c">
26964 * ^
26965 * ```
26966 *
26967 * @type {State}
26968 */
26969 function completeEnd(code) {
26970 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
26971 effects.consume(code)
26972 return completeAfter
26973 }
26974
26975 return nok(code)
26976 }
26977
26978 /**
26979 * After `>` in a complete tag.
26980 *
26981 * ```markdown
26982 * > | <x>
26983 * ^
26984 * ```
26985 *
26986 * @type {State}
26987 */
26988 function completeAfter(code) {
26989 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
26990 // // Do not form containers.
26991 // tokenizer.concrete = true
26992 return continuation(code)
26993 }
26994
26995 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26996 effects.consume(code)
26997 return completeAfter
26998 }
26999
27000 return nok(code)
27001 }
27002
27003 /**
27004 * In continuation of any HTML kind.
27005 *
27006 * ```markdown
27007 * > | <!--xxx-->
27008 * ^
27009 * ```
27010 *
27011 * @type {State}
27012 */
27013 function continuation(code) {
27014 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash && marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment) {
27015 effects.consume(code)
27016 return continuationCommentInside
27017 }
27018
27019 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan && marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw) {
27020 effects.consume(code)
27021 return continuationRawTagOpen
27022 }
27023
27024 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan && marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration) {
27025 effects.consume(code)
27026 return continuationClose
27027 }
27028
27029 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark && marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction) {
27030 effects.consume(code)
27031 return continuationDeclarationInside
27032 }
27033
27034 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightSquareBracket && marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata) {
27035 effects.consume(code)
27036 return continuationCdataInside
27037 }
27038
27039 if (
27040 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code) &&
27041 (marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic || marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete)
27042 ) {
27043 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27044 return effects.check(
27045 blankLineBefore,
27046 continuationAfter,
27047 continuationStart
27048 )(code)
27049 }
27050
27051 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27052 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27053 return continuationStart(code)
27054 }
27055
27056 effects.consume(code)
27057 return continuation
27058 }
27059
27060 /**
27061 * In continuation, at eol.
27062 *
27063 * ```markdown
27064 * > | <x>
27065 * ^
27066 * | asd
27067 * ```
27068 *
27069 * @type {State}
27070 */
27071 function continuationStart(code) {
27072 return effects.check(
27073 nonLazyContinuationStart,
27074 continuationStartNonLazy,
27075 continuationAfter
27076 )(code)
27077 }
27078
27079 /**
27080 * In continuation, at eol, before non-lazy content.
27081 *
27082 * ```markdown
27083 * > | <x>
27084 * ^
27085 * | asd
27086 * ```
27087 *
27088 * @type {State}
27089 */
27090 function continuationStartNonLazy(code) {
27091 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))
27092 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27093 effects.consume(code)
27094 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27095 return continuationBefore
27096 }
27097
27098 /**
27099 * In continuation, before non-lazy content.
27100 *
27101 * ```markdown
27102 * | <x>
27103 * > | asd
27104 * ^
27105 * ```
27106 *
27107 * @type {State}
27108 */
27109 function continuationBefore(code) {
27110 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27111 return continuationStart(code)
27112 }
27113
27114 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27115 return continuation(code)
27116 }
27117
27118 /**
27119 * In comment continuation, after one `-`, expecting another.
27120 *
27121 * ```markdown
27122 * > | <!--xxx-->
27123 * ^
27124 * ```
27125 *
27126 * @type {State}
27127 */
27128 function continuationCommentInside(code) {
27129 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
27130 effects.consume(code)
27131 return continuationDeclarationInside
27132 }
27133
27134 return continuation(code)
27135 }
27136
27137 /**
27138 * In raw continuation, after `<`, at `/`.
27139 *
27140 * ```markdown
27141 * > | <script>console.log(1)</script>
27142 * ^
27143 * ```
27144 *
27145 * @type {State}
27146 */
27147 function continuationRawTagOpen(code) {
27148 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
27149 effects.consume(code)
27150 buffer = ''
27151 return continuationRawEndTag
27152 }
27153
27154 return continuation(code)
27155 }
27156
27157 /**
27158 * In raw continuation, after `</`, in a raw tag name.
27159 *
27160 * ```markdown
27161 * > | <script>console.log(1)</script>
27162 * ^^^^^^
27163 * ```
27164 *
27165 * @type {State}
27166 */
27167 function continuationRawEndTag(code) {
27168 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27169 const name = buffer.toLowerCase()
27170
27171 if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {
27172 effects.consume(code)
27173 return continuationClose
27174 }
27175
27176 return continuation(code)
27177 }
27178
27179 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code) && buffer.length < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRawSizeMax) {
27180 effects.consume(code)
27181 // @ts-expect-error: not null.
27182 buffer += String.fromCharCode(code)
27183 return continuationRawEndTag
27184 }
27185
27186 return continuation(code)
27187 }
27188
27189 /**
27190 * In cdata continuation, after `]`, expecting `]>`.
27191 *
27192 * ```markdown
27193 * > | <![CDATA[>&<]]>
27194 * ^
27195 * ```
27196 *
27197 * @type {State}
27198 */
27199 function continuationCdataInside(code) {
27200 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightSquareBracket) {
27201 effects.consume(code)
27202 return continuationDeclarationInside
27203 }
27204
27205 return continuation(code)
27206 }
27207
27208 /**
27209 * In declaration or instruction continuation, at `>`.
27210 *
27211 * ```markdown
27212 * > | <!-->
27213 * ^
27214 * > | <?>
27215 * ^
27216 * > | <!q>
27217 * ^
27218 * > | <!--ab-->
27219 * ^
27220 * > | <![CDATA[>&<]]>
27221 * ^
27222 * ```
27223 *
27224 * @type {State}
27225 */
27226 function continuationDeclarationInside(code) {
27227 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27228 effects.consume(code)
27229 return continuationClose
27230 }
27231
27232 // More dashes.
27233 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash && marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment) {
27234 effects.consume(code)
27235 return continuationDeclarationInside
27236 }
27237
27238 return continuation(code)
27239 }
27240
27241 /**
27242 * In closed continuation: everything we get until the eol/eof is part of it.
27243 *
27244 * ```markdown
27245 * > | <!doctype>
27246 * ^
27247 * ```
27248 *
27249 * @type {State}
27250 */
27251 function continuationClose(code) {
27252 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27253 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27254 return continuationAfter(code)
27255 }
27256
27257 effects.consume(code)
27258 return continuationClose
27259 }
27260
27261 /**
27262 * Done.
27263 *
27264 * ```markdown
27265 * > | <!doctype>
27266 * ^
27267 * ```
27268 *
27269 * @type {State}
27270 */
27271 function continuationAfter(code) {
27272 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow)
27273 // // Feel free to interrupt.
27274 // tokenizer.interrupt = false
27275 // // No longer concrete.
27276 // tokenizer.concrete = false
27277 return ok(code)
27278 }
27279 }
27280
27281 /**
27282 * @this {TokenizeContext}
27283 * @type {Tokenizer}
27284 */
27285 function tokenizeNonLazyContinuationStart(effects, ok, nok) {
27286 const self = this
27287
27288 return start
27289
27290 /**
27291 * At eol, before continuation.
27292 *
27293 * ```markdown
27294 * > | * ```js
27295 * ^
27296 * | b
27297 * ```
27298 *
27299 * @type {State}
27300 */
27301 function start(code) {
27302 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27303 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27304 effects.consume(code)
27305 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27306 return after
27307 }
27308
27309 return nok(code)
27310 }
27311
27312 /**
27313 * A continuation.
27314 *
27315 * ```markdown
27316 * | * ```js
27317 * > | b
27318 * ^
27319 * ```
27320 *
27321 * @type {State}
27322 */
27323 function after(code) {
27324 return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
27325 }
27326 }
27327
27328 /**
27329 * @this {TokenizeContext}
27330 * @type {Tokenizer}
27331 */
27332 function tokenizeBlankLineBefore(effects, ok, nok) {
27333 return start
27334
27335 /**
27336 * Before eol, expecting blank line.
27337 *
27338 * ```markdown
27339 * > | <div>
27340 * ^
27341 * |
27342 * ```
27343 *
27344 * @type {State}
27345 */
27346 function start(code) {
27347 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected a line ending')
27348 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27349 effects.consume(code)
27350 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27351 return effects.attempt(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, ok, nok)
27352 }
27353 }
27354
27355
27356 /***/ }),
27357
27358 /***/ "../node_modules/micromark-core-commonmark/dev/lib/html-text.js":
27359 /*!**********************************************************************!*\
27360 !*** ../node_modules/micromark-core-commonmark/dev/lib/html-text.js ***!
27361 \**********************************************************************/
27362 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
27363
27364 "use strict";
27365 __webpack_require__.r(__webpack_exports__);
27366 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
27367 /* harmony export */ htmlText: () => (/* binding */ htmlText)
27368 /* harmony export */ });
27369 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
27370 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
27371 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
27372 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
27373 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
27374 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
27375 /**
27376 * @typedef {import('micromark-util-types').Code} Code
27377 * @typedef {import('micromark-util-types').Construct} Construct
27378 * @typedef {import('micromark-util-types').State} State
27379 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
27380 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
27381 */
27382
27383
27384
27385
27386
27387
27388
27389
27390 /** @type {Construct} */
27391 const htmlText = {name: 'htmlText', tokenize: tokenizeHtmlText}
27392
27393 /**
27394 * @this {TokenizeContext}
27395 * @type {Tokenizer}
27396 */
27397 function tokenizeHtmlText(effects, ok, nok) {
27398 const self = this
27399 /** @type {NonNullable<Code> | undefined} */
27400 let marker
27401 /** @type {number} */
27402 let index
27403 /** @type {State} */
27404 let returnState
27405
27406 return start
27407
27408 /**
27409 * Start of HTML (text).
27410 *
27411 * ```markdown
27412 * > | a <b> c
27413 * ^
27414 * ```
27415 *
27416 * @type {State}
27417 */
27418 function start(code) {
27419 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')
27420 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlText)
27421 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
27422 effects.consume(code)
27423 return open
27424 }
27425
27426 /**
27427 * After `<`, at tag name or other stuff.
27428 *
27429 * ```markdown
27430 * > | a <b> c
27431 * ^
27432 * > | a <!doctype> c
27433 * ^
27434 * > | a <!--b--> c
27435 * ^
27436 * ```
27437 *
27438 * @type {State}
27439 */
27440 function open(code) {
27441 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.exclamationMark) {
27442 effects.consume(code)
27443 return declarationOpen
27444 }
27445
27446 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {
27447 effects.consume(code)
27448 return tagCloseStart
27449 }
27450
27451 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {
27452 effects.consume(code)
27453 return instruction
27454 }
27455
27456 // ASCII alphabetical.
27457 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27458 effects.consume(code)
27459 return tagOpen
27460 }
27461
27462 return nok(code)
27463 }
27464
27465 /**
27466 * After `<!`, at declaration, comment, or CDATA.
27467 *
27468 * ```markdown
27469 * > | a <!doctype> c
27470 * ^
27471 * > | a <!--b--> c
27472 * ^
27473 * > | a <![CDATA[>&<]]> c
27474 * ^
27475 * ```
27476 *
27477 * @type {State}
27478 */
27479 function declarationOpen(code) {
27480 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27481 effects.consume(code)
27482 return commentOpenInside
27483 }
27484
27485 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket) {
27486 effects.consume(code)
27487 index = 0
27488 return cdataOpenInside
27489 }
27490
27491 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27492 effects.consume(code)
27493 return declaration
27494 }
27495
27496 return nok(code)
27497 }
27498
27499 /**
27500 * In a comment, after `<!-`, at another `-`.
27501 *
27502 * ```markdown
27503 * > | a <!--b--> c
27504 * ^
27505 * ```
27506 *
27507 * @type {State}
27508 */
27509 function commentOpenInside(code) {
27510 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27511 effects.consume(code)
27512 return commentEnd
27513 }
27514
27515 return nok(code)
27516 }
27517
27518 /**
27519 * In comment.
27520 *
27521 * ```markdown
27522 * > | a <!--b--> c
27523 * ^
27524 * ```
27525 *
27526 * @type {State}
27527 */
27528 function comment(code) {
27529 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27530 return nok(code)
27531 }
27532
27533 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27534 effects.consume(code)
27535 return commentClose
27536 }
27537
27538 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27539 returnState = comment
27540 return lineEndingBefore(code)
27541 }
27542
27543 effects.consume(code)
27544 return comment
27545 }
27546
27547 /**
27548 * In comment, after `-`.
27549 *
27550 * ```markdown
27551 * > | a <!--b--> c
27552 * ^
27553 * ```
27554 *
27555 * @type {State}
27556 */
27557 function commentClose(code) {
27558 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27559 effects.consume(code)
27560 return commentEnd
27561 }
27562
27563 return comment(code)
27564 }
27565
27566 /**
27567 * In comment, after `--`.
27568 *
27569 * ```markdown
27570 * > | a <!--b--> c
27571 * ^
27572 * ```
27573 *
27574 * @type {State}
27575 */
27576 function commentEnd(code) {
27577 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan
27578 ? end(code)
27579 : code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash
27580 ? commentClose(code)
27581 : comment(code)
27582 }
27583
27584 /**
27585 * After `<![`, in CDATA, expecting `CDATA[`.
27586 *
27587 * ```markdown
27588 * > | a <![CDATA[>&<]]> b
27589 * ^^^^^^
27590 * ```
27591 *
27592 * @type {State}
27593 */
27594 function cdataOpenInside(code) {
27595 const value = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.cdataOpeningString
27596
27597 if (code === value.charCodeAt(index++)) {
27598 effects.consume(code)
27599 return index === value.length ? cdata : cdataOpenInside
27600 }
27601
27602 return nok(code)
27603 }
27604
27605 /**
27606 * In CDATA.
27607 *
27608 * ```markdown
27609 * > | a <![CDATA[>&<]]> b
27610 * ^^^
27611 * ```
27612 *
27613 * @type {State}
27614 */
27615 function cdata(code) {
27616 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27617 return nok(code)
27618 }
27619
27620 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27621 effects.consume(code)
27622 return cdataClose
27623 }
27624
27625 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27626 returnState = cdata
27627 return lineEndingBefore(code)
27628 }
27629
27630 effects.consume(code)
27631 return cdata
27632 }
27633
27634 /**
27635 * In CDATA, after `]`, at another `]`.
27636 *
27637 * ```markdown
27638 * > | a <![CDATA[>&<]]> b
27639 * ^
27640 * ```
27641 *
27642 * @type {State}
27643 */
27644 function cdataClose(code) {
27645 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27646 effects.consume(code)
27647 return cdataEnd
27648 }
27649
27650 return cdata(code)
27651 }
27652
27653 /**
27654 * In CDATA, after `]]`, at `>`.
27655 *
27656 * ```markdown
27657 * > | a <![CDATA[>&<]]> b
27658 * ^
27659 * ```
27660 *
27661 * @type {State}
27662 */
27663 function cdataEnd(code) {
27664 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
27665 return end(code)
27666 }
27667
27668 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27669 effects.consume(code)
27670 return cdataEnd
27671 }
27672
27673 return cdata(code)
27674 }
27675
27676 /**
27677 * In declaration.
27678 *
27679 * ```markdown
27680 * > | a <!b> c
27681 * ^
27682 * ```
27683 *
27684 * @type {State}
27685 */
27686 function declaration(code) {
27687 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
27688 return end(code)
27689 }
27690
27691 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27692 returnState = declaration
27693 return lineEndingBefore(code)
27694 }
27695
27696 effects.consume(code)
27697 return declaration
27698 }
27699
27700 /**
27701 * In instruction.
27702 *
27703 * ```markdown
27704 * > | a <?b?> c
27705 * ^
27706 * ```
27707 *
27708 * @type {State}
27709 */
27710 function instruction(code) {
27711 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27712 return nok(code)
27713 }
27714
27715 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {
27716 effects.consume(code)
27717 return instructionClose
27718 }
27719
27720 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27721 returnState = instruction
27722 return lineEndingBefore(code)
27723 }
27724
27725 effects.consume(code)
27726 return instruction
27727 }
27728
27729 /**
27730 * In instruction, after `?`, at `>`.
27731 *
27732 * ```markdown
27733 * > | a <?b?> c
27734 * ^
27735 * ```
27736 *
27737 * @type {State}
27738 */
27739 function instructionClose(code) {
27740 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ? end(code) : instruction(code)
27741 }
27742
27743 /**
27744 * After `</`, in closing tag, at tag name.
27745 *
27746 * ```markdown
27747 * > | a </b> c
27748 * ^
27749 * ```
27750 *
27751 * @type {State}
27752 */
27753 function tagCloseStart(code) {
27754 // ASCII alphabetical.
27755 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27756 effects.consume(code)
27757 return tagClose
27758 }
27759
27760 return nok(code)
27761 }
27762
27763 /**
27764 * After `</x`, in a tag name.
27765 *
27766 * ```markdown
27767 * > | a </b> c
27768 * ^
27769 * ```
27770 *
27771 * @type {State}
27772 */
27773 function tagClose(code) {
27774 // ASCII alphanumerical and `-`.
27775 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {
27776 effects.consume(code)
27777 return tagClose
27778 }
27779
27780 return tagCloseBetween(code)
27781 }
27782
27783 /**
27784 * In closing tag, after tag name.
27785 *
27786 * ```markdown
27787 * > | a </b> c
27788 * ^
27789 * ```
27790 *
27791 * @type {State}
27792 */
27793 function tagCloseBetween(code) {
27794 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27795 returnState = tagCloseBetween
27796 return lineEndingBefore(code)
27797 }
27798
27799 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27800 effects.consume(code)
27801 return tagCloseBetween
27802 }
27803
27804 return end(code)
27805 }
27806
27807 /**
27808 * After `<x`, in opening tag name.
27809 *
27810 * ```markdown
27811 * > | a <b> c
27812 * ^
27813 * ```
27814 *
27815 * @type {State}
27816 */
27817 function tagOpen(code) {
27818 // ASCII alphanumerical and `-`.
27819 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {
27820 effects.consume(code)
27821 return tagOpen
27822 }
27823
27824 if (
27825 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
27826 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
27827 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
27828 ) {
27829 return tagOpenBetween(code)
27830 }
27831
27832 return nok(code)
27833 }
27834
27835 /**
27836 * In opening tag, after tag name.
27837 *
27838 * ```markdown
27839 * > | a <b> c
27840 * ^
27841 * ```
27842 *
27843 * @type {State}
27844 */
27845 function tagOpenBetween(code) {
27846 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {
27847 effects.consume(code)
27848 return end
27849 }
27850
27851 // ASCII alphabetical and `:` and `_`.
27852 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27853 effects.consume(code)
27854 return tagOpenAttributeName
27855 }
27856
27857 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27858 returnState = tagOpenBetween
27859 return lineEndingBefore(code)
27860 }
27861
27862 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27863 effects.consume(code)
27864 return tagOpenBetween
27865 }
27866
27867 return end(code)
27868 }
27869
27870 /**
27871 * In attribute name.
27872 *
27873 * ```markdown
27874 * > | a <b c> d
27875 * ^
27876 * ```
27877 *
27878 * @type {State}
27879 */
27880 function tagOpenAttributeName(code) {
27881 // ASCII alphabetical and `-`, `.`, `:`, and `_`.
27882 if (
27883 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
27884 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
27885 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon ||
27886 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.underscore ||
27887 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)
27888 ) {
27889 effects.consume(code)
27890 return tagOpenAttributeName
27891 }
27892
27893 return tagOpenAttributeNameAfter(code)
27894 }
27895
27896 /**
27897 * After attribute name, before initializer, the end of the tag, or
27898 * whitespace.
27899 *
27900 * ```markdown
27901 * > | a <b c> d
27902 * ^
27903 * ```
27904 *
27905 * @type {State}
27906 */
27907 function tagOpenAttributeNameAfter(code) {
27908 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo) {
27909 effects.consume(code)
27910 return tagOpenAttributeValueBefore
27911 }
27912
27913 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27914 returnState = tagOpenAttributeNameAfter
27915 return lineEndingBefore(code)
27916 }
27917
27918 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27919 effects.consume(code)
27920 return tagOpenAttributeNameAfter
27921 }
27922
27923 return tagOpenBetween(code)
27924 }
27925
27926 /**
27927 * Before unquoted, double quoted, or single quoted attribute value, allowing
27928 * whitespace.
27929 *
27930 * ```markdown
27931 * > | a <b c=d> e
27932 * ^
27933 * ```
27934 *
27935 * @type {State}
27936 */
27937 function tagOpenAttributeValueBefore(code) {
27938 if (
27939 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
27940 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
27941 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo ||
27942 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
27943 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent
27944 ) {
27945 return nok(code)
27946 }
27947
27948 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.quotationMark || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.apostrophe) {
27949 effects.consume(code)
27950 marker = code
27951 return tagOpenAttributeValueQuoted
27952 }
27953
27954 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27955 returnState = tagOpenAttributeValueBefore
27956 return lineEndingBefore(code)
27957 }
27958
27959 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27960 effects.consume(code)
27961 return tagOpenAttributeValueBefore
27962 }
27963
27964 effects.consume(code)
27965 return tagOpenAttributeValueUnquoted
27966 }
27967
27968 /**
27969 * In double or single quoted attribute value.
27970 *
27971 * ```markdown
27972 * > | a <b c="d"> e
27973 * ^
27974 * ```
27975 *
27976 * @type {State}
27977 */
27978 function tagOpenAttributeValueQuoted(code) {
27979 if (code === marker) {
27980 effects.consume(code)
27981 marker = undefined
27982 return tagOpenAttributeValueQuotedAfter
27983 }
27984
27985 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27986 return nok(code)
27987 }
27988
27989 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27990 returnState = tagOpenAttributeValueQuoted
27991 return lineEndingBefore(code)
27992 }
27993
27994 effects.consume(code)
27995 return tagOpenAttributeValueQuoted
27996 }
27997
27998 /**
27999 * In unquoted attribute value.
28000 *
28001 * ```markdown
28002 * > | a <b c=d> e
28003 * ^
28004 * ```
28005 *
28006 * @type {State}
28007 */
28008 function tagOpenAttributeValueUnquoted(code) {
28009 if (
28010 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
28011 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.quotationMark ||
28012 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.apostrophe ||
28013 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
28014 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo ||
28015 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent
28016 ) {
28017 return nok(code)
28018 }
28019
28020 if (
28021 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
28022 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
28023 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
28024 ) {
28025 return tagOpenBetween(code)
28026 }
28027
28028 effects.consume(code)
28029 return tagOpenAttributeValueUnquoted
28030 }
28031
28032 /**
28033 * After double or single quoted attribute value, before whitespace or the end
28034 * of the tag.
28035 *
28036 * ```markdown
28037 * > | a <b c="d"> e
28038 * ^
28039 * ```
28040 *
28041 * @type {State}
28042 */
28043 function tagOpenAttributeValueQuotedAfter(code) {
28044 if (
28045 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
28046 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
28047 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
28048 ) {
28049 return tagOpenBetween(code)
28050 }
28051
28052 return nok(code)
28053 }
28054
28055 /**
28056 * In certain circumstances of a tag where only an `>` is allowed.
28057 *
28058 * ```markdown
28059 * > | a <b c="d"> e
28060 * ^
28061 * ```
28062 *
28063 * @type {State}
28064 */
28065 function end(code) {
28066 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
28067 effects.consume(code)
28068 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28069 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlText)
28070 return ok
28071 }
28072
28073 return nok(code)
28074 }
28075
28076 /**
28077 * At eol.
28078 *
28079 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28080 * > empty tokens.
28081 *
28082 * ```markdown
28083 * > | a <!--a
28084 * ^
28085 * | b-->
28086 * ```
28087 *
28088 * @type {State}
28089 */
28090 function lineEndingBefore(code) {
28091 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(returnState, 'expected return state')
28092 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected eol')
28093 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28094 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
28095 effects.consume(code)
28096 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
28097 return lineEndingAfter
28098 }
28099
28100 /**
28101 * After eol, at optional whitespace.
28102 *
28103 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28104 * > empty tokens.
28105 *
28106 * ```markdown
28107 * | a <!--a
28108 * > | b-->
28109 * ^
28110 * ```
28111 *
28112 * @type {State}
28113 */
28114 function lineEndingAfter(code) {
28115 // Always populated by defaults.
28116 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
28117 self.parser.constructs.disable.null,
28118 'expected `disable.null` to be populated'
28119 )
28120 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
28121 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
28122 effects,
28123 lineEndingAfterPrefix,
28124 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
28125 self.parser.constructs.disable.null.includes('codeIndented')
28126 ? undefined
28127 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
28128 )(code)
28129 : lineEndingAfterPrefix(code)
28130 }
28131
28132 /**
28133 * After eol, after optional whitespace.
28134 *
28135 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28136 * > empty tokens.
28137 *
28138 * ```markdown
28139 * | a <!--a
28140 * > | b-->
28141 * ^
28142 * ```
28143 *
28144 * @type {State}
28145 */
28146 function lineEndingAfterPrefix(code) {
28147 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28148 return returnState(code)
28149 }
28150 }
28151
28152
28153 /***/ }),
28154
28155 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-end.js":
28156 /*!**********************************************************************!*\
28157 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-end.js ***!
28158 \**********************************************************************/
28159 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28160
28161 "use strict";
28162 __webpack_require__.r(__webpack_exports__);
28163 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28164 /* harmony export */ labelEnd: () => (/* binding */ labelEnd)
28165 /* harmony export */ });
28166 /* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-destination */ "../node_modules/micromark-factory-destination/dev/index.js");
28167 /* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-factory-label */ "../node_modules/micromark-factory-label/dev/index.js");
28168 /* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-factory-title */ "../node_modules/micromark-factory-title/dev/index.js");
28169 /* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-whitespace */ "../node_modules/micromark-factory-whitespace/dev/index.js");
28170 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
28171 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
28172 /* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-normalize-identifier */ "../node_modules/micromark-util-normalize-identifier/dev/index.js");
28173 /* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-resolve-all */ "../node_modules/micromark-util-resolve-all/index.js");
28174 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
28175 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
28176 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
28177 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28178 /**
28179 * @typedef {import('micromark-util-types').Construct} Construct
28180 * @typedef {import('micromark-util-types').Event} Event
28181 * @typedef {import('micromark-util-types').Resolver} Resolver
28182 * @typedef {import('micromark-util-types').State} State
28183 * @typedef {import('micromark-util-types').Token} Token
28184 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28185 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28186 */
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201 /** @type {Construct} */
28202 const labelEnd = {
28203 name: 'labelEnd',
28204 tokenize: tokenizeLabelEnd,
28205 resolveTo: resolveToLabelEnd,
28206 resolveAll: resolveAllLabelEnd
28207 }
28208
28209 /** @type {Construct} */
28210 const resourceConstruct = {tokenize: tokenizeResource}
28211 /** @type {Construct} */
28212 const referenceFullConstruct = {tokenize: tokenizeReferenceFull}
28213 /** @type {Construct} */
28214 const referenceCollapsedConstruct = {tokenize: tokenizeReferenceCollapsed}
28215
28216 /** @type {Resolver} */
28217 function resolveAllLabelEnd(events) {
28218 let index = -1
28219
28220 while (++index < events.length) {
28221 const token = events[index][1]
28222
28223 if (
28224 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ||
28225 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink ||
28226 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd
28227 ) {
28228 // Remove the marker.
28229 events.splice(index + 1, token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ? 4 : 2)
28230 token.type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.data
28231 index++
28232 }
28233 }
28234
28235 return events
28236 }
28237
28238 /** @type {Resolver} */
28239 function resolveToLabelEnd(events, context) {
28240 let index = events.length
28241 let offset = 0
28242 /** @type {Token} */
28243 let token
28244 /** @type {number | undefined} */
28245 let open
28246 /** @type {number | undefined} */
28247 let close
28248 /** @type {Array<Event>} */
28249 let media
28250
28251 // Find an opening.
28252 while (index--) {
28253 token = events[index][1]
28254
28255 if (open) {
28256 // If we see another link, or inactive link label, we’ve been here before.
28257 if (
28258 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.link ||
28259 (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink && token._inactive)
28260 ) {
28261 break
28262 }
28263
28264 // Mark other link openings as inactive, as we can’t have links in
28265 // links.
28266 if (events[index][0] === 'enter' && token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) {
28267 token._inactive = true
28268 }
28269 } else if (close) {
28270 if (
28271 events[index][0] === 'enter' &&
28272 (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage || token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) &&
28273 !token._balanced
28274 ) {
28275 open = index
28276
28277 if (token.type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) {
28278 offset = 2
28279 break
28280 }
28281 }
28282 } else if (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd) {
28283 close = index
28284 }
28285 }
28286
28287 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(open !== undefined, '`open` is supposed to be found')
28288 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(close !== undefined, '`close` is supposed to be found')
28289
28290 const group = {
28291 type: events[open][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.link : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.image,
28292 start: Object.assign({}, events[open][1].start),
28293 end: Object.assign({}, events[events.length - 1][1].end)
28294 }
28295
28296 const label = {
28297 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.label,
28298 start: Object.assign({}, events[open][1].start),
28299 end: Object.assign({}, events[close][1].end)
28300 }
28301
28302 const text = {
28303 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelText,
28304 start: Object.assign({}, events[open + offset + 2][1].end),
28305 end: Object.assign({}, events[close - 2][1].start)
28306 }
28307
28308 media = [
28309 ['enter', group, context],
28310 ['enter', label, context]
28311 ]
28312
28313 // Opening marker.
28314 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(open + 1, open + offset + 3))
28315
28316 // Text open.
28317 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [['enter', text, context]])
28318
28319 // Always populated by defaults.
28320 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
28321 context.parser.constructs.insideSpan.null,
28322 'expected `insideSpan.null` to be populated'
28323 )
28324 // Between.
28325 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(
28326 media,
28327 (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(
28328 context.parser.constructs.insideSpan.null,
28329 events.slice(open + offset + 4, close - 3),
28330 context
28331 )
28332 )
28333
28334 // Text close, marker close, label close.
28335 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [
28336 ['exit', text, context],
28337 events[close - 2],
28338 events[close - 1],
28339 ['exit', label, context]
28340 ])
28341
28342 // Reference, resource, or so.
28343 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(close + 1))
28344
28345 // Media close.
28346 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [['exit', group, context]])
28347
28348 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open, events.length, media)
28349
28350 return events
28351 }
28352
28353 /**
28354 * @this {TokenizeContext}
28355 * @type {Tokenizer}
28356 */
28357 function tokenizeLabelEnd(effects, ok, nok) {
28358 const self = this
28359 let index = self.events.length
28360 /** @type {Token} */
28361 let labelStart
28362 /** @type {boolean} */
28363 let defined
28364
28365 // Find an opening.
28366 while (index--) {
28367 if (
28368 (self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ||
28369 self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) &&
28370 !self.events[index][1]._balanced
28371 ) {
28372 labelStart = self.events[index][1]
28373 break
28374 }
28375 }
28376
28377 return start
28378
28379 /**
28380 * Start of label end.
28381 *
28382 * ```markdown
28383 * > | [a](b) c
28384 * ^
28385 * > | [a][b] c
28386 * ^
28387 * > | [a][] b
28388 * ^
28389 * > | [a] b
28390 * ```
28391 *
28392 * @type {State}
28393 */
28394 function start(code) {
28395 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket, 'expected `]`')
28396
28397 // If there is not an okay opening.
28398 if (!labelStart) {
28399 return nok(code)
28400 }
28401
28402 // If the corresponding label (link) start is marked as inactive,
28403 // it means we’d be wrapping a link, like this:
28404 //
28405 // ```markdown
28406 // > | a [b [c](d) e](f) g.
28407 // ^
28408 // ```
28409 //
28410 // We can’t have that, so it’s just balanced brackets.
28411 if (labelStart._inactive) {
28412 return labelEndNok(code)
28413 }
28414
28415 defined = self.parser.defined.includes(
28416 (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(
28417 self.sliceSerialize({start: labelStart.end, end: self.now()})
28418 )
28419 )
28420 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd)
28421 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelMarker)
28422 effects.consume(code)
28423 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelMarker)
28424 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd)
28425 return after
28426 }
28427
28428 /**
28429 * After `]`.
28430 *
28431 * ```markdown
28432 * > | [a](b) c
28433 * ^
28434 * > | [a][b] c
28435 * ^
28436 * > | [a][] b
28437 * ^
28438 * > | [a] b
28439 * ^
28440 * ```
28441 *
28442 * @type {State}
28443 */
28444 function after(code) {
28445 // Note: `markdown-rs` also parses GFM footnotes here, which for us is in
28446 // an extension.
28447
28448 // Resource (`[asd](fgh)`)?
28449 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis) {
28450 return effects.attempt(
28451 resourceConstruct,
28452 labelEndOk,
28453 defined ? labelEndOk : labelEndNok
28454 )(code)
28455 }
28456
28457 // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?
28458 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket) {
28459 return effects.attempt(
28460 referenceFullConstruct,
28461 labelEndOk,
28462 defined ? referenceNotFull : labelEndNok
28463 )(code)
28464 }
28465
28466 // Shortcut (`[asd]`) reference?
28467 return defined ? labelEndOk(code) : labelEndNok(code)
28468 }
28469
28470 /**
28471 * After `]`, at `[`, but not at a full reference.
28472 *
28473 * > 👉 **Note**: we only get here if the label is defined.
28474 *
28475 * ```markdown
28476 * > | [a][] b
28477 * ^
28478 * > | [a] b
28479 * ^
28480 * ```
28481 *
28482 * @type {State}
28483 */
28484 function referenceNotFull(code) {
28485 return effects.attempt(
28486 referenceCollapsedConstruct,
28487 labelEndOk,
28488 labelEndNok
28489 )(code)
28490 }
28491
28492 /**
28493 * Done, we found something.
28494 *
28495 * ```markdown
28496 * > | [a](b) c
28497 * ^
28498 * > | [a][b] c
28499 * ^
28500 * > | [a][] b
28501 * ^
28502 * > | [a] b
28503 * ^
28504 * ```
28505 *
28506 * @type {State}
28507 */
28508 function labelEndOk(code) {
28509 // Note: `markdown-rs` does a bunch of stuff here.
28510 return ok(code)
28511 }
28512
28513 /**
28514 * Done, it’s nothing.
28515 *
28516 * There was an okay opening, but we didn’t match anything.
28517 *
28518 * ```markdown
28519 * > | [a](b c
28520 * ^
28521 * > | [a][b c
28522 * ^
28523 * > | [a] b
28524 * ^
28525 * ```
28526 *
28527 * @type {State}
28528 */
28529 function labelEndNok(code) {
28530 labelStart._balanced = true
28531 return nok(code)
28532 }
28533 }
28534
28535 /**
28536 * @this {TokenizeContext}
28537 * @type {Tokenizer}
28538 */
28539 function tokenizeResource(effects, ok, nok) {
28540 return resourceStart
28541
28542 /**
28543 * At a resource.
28544 *
28545 * ```markdown
28546 * > | [a](b) c
28547 * ^
28548 * ```
28549 *
28550 * @type {State}
28551 */
28552 function resourceStart(code) {
28553 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis, 'expected left paren')
28554 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resource)
28555 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28556 effects.consume(code)
28557 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28558 return resourceBefore
28559 }
28560
28561 /**
28562 * In resource, after `(`, at optional whitespace.
28563 *
28564 * ```markdown
28565 * > | [a](b) c
28566 * ^
28567 * ```
28568 *
28569 * @type {State}
28570 */
28571 function resourceBefore(code) {
28572 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28573 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceOpen)(code)
28574 : resourceOpen(code)
28575 }
28576
28577 /**
28578 * In resource, after optional whitespace, at `)` or a destination.
28579 *
28580 * ```markdown
28581 * > | [a](b) c
28582 * ^
28583 * ```
28584 *
28585 * @type {State}
28586 */
28587 function resourceOpen(code) {
28588 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {
28589 return resourceEnd(code)
28590 }
28591
28592 return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__.factoryDestination)(
28593 effects,
28594 resourceDestinationAfter,
28595 resourceDestinationMissing,
28596 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestination,
28597 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationLiteral,
28598 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationLiteralMarker,
28599 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationRaw,
28600 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationString,
28601 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_9__.constants.linkResourceDestinationBalanceMax
28602 )(code)
28603 }
28604
28605 /**
28606 * In resource, after destination, at optional whitespace.
28607 *
28608 * ```markdown
28609 * > | [a](b) c
28610 * ^
28611 * ```
28612 *
28613 * @type {State}
28614 */
28615 function resourceDestinationAfter(code) {
28616 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28617 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceBetween)(code)
28618 : resourceEnd(code)
28619 }
28620
28621 /**
28622 * At invalid destination.
28623 *
28624 * ```markdown
28625 * > | [a](<<) b
28626 * ^
28627 * ```
28628 *
28629 * @type {State}
28630 */
28631 function resourceDestinationMissing(code) {
28632 return nok(code)
28633 }
28634
28635 /**
28636 * In resource, after destination and whitespace, at `(` or title.
28637 *
28638 * ```markdown
28639 * > | [a](b ) c
28640 * ^
28641 * ```
28642 *
28643 * @type {State}
28644 */
28645 function resourceBetween(code) {
28646 if (
28647 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.quotationMark ||
28648 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.apostrophe ||
28649 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis
28650 ) {
28651 return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__.factoryTitle)(
28652 effects,
28653 resourceTitleAfter,
28654 nok,
28655 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitle,
28656 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitleMarker,
28657 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitleString
28658 )(code)
28659 }
28660
28661 return resourceEnd(code)
28662 }
28663
28664 /**
28665 * In resource, after title, at optional whitespace.
28666 *
28667 * ```markdown
28668 * > | [a](b "c") d
28669 * ^
28670 * ```
28671 *
28672 * @type {State}
28673 */
28674 function resourceTitleAfter(code) {
28675 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28676 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceEnd)(code)
28677 : resourceEnd(code)
28678 }
28679
28680 /**
28681 * In resource, at `)`.
28682 *
28683 * ```markdown
28684 * > | [a](b) d
28685 * ^
28686 * ```
28687 *
28688 * @type {State}
28689 */
28690 function resourceEnd(code) {
28691 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {
28692 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28693 effects.consume(code)
28694 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28695 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resource)
28696 return ok
28697 }
28698
28699 return nok(code)
28700 }
28701 }
28702
28703 /**
28704 * @this {TokenizeContext}
28705 * @type {Tokenizer}
28706 */
28707 function tokenizeReferenceFull(effects, ok, nok) {
28708 const self = this
28709
28710 return referenceFull
28711
28712 /**
28713 * In a reference (full), at the `[`.
28714 *
28715 * ```markdown
28716 * > | [a][b] d
28717 * ^
28718 * ```
28719 *
28720 * @type {State}
28721 */
28722 function referenceFull(code) {
28723 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, 'expected left bracket')
28724 return micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__.factoryLabel.call(
28725 self,
28726 effects,
28727 referenceFullAfter,
28728 referenceFullMissing,
28729 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference,
28730 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker,
28731 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceString
28732 )(code)
28733 }
28734
28735 /**
28736 * In a reference (full), after `]`.
28737 *
28738 * ```markdown
28739 * > | [a][b] d
28740 * ^
28741 * ```
28742 *
28743 * @type {State}
28744 */
28745 function referenceFullAfter(code) {
28746 return self.parser.defined.includes(
28747 (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(
28748 self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
28749 )
28750 )
28751 ? ok(code)
28752 : nok(code)
28753 }
28754
28755 /**
28756 * In reference (full) that was missing.
28757 *
28758 * ```markdown
28759 * > | [a][b d
28760 * ^
28761 * ```
28762 *
28763 * @type {State}
28764 */
28765 function referenceFullMissing(code) {
28766 return nok(code)
28767 }
28768 }
28769
28770 /**
28771 * @this {TokenizeContext}
28772 * @type {Tokenizer}
28773 */
28774 function tokenizeReferenceCollapsed(effects, ok, nok) {
28775 return referenceCollapsedStart
28776
28777 /**
28778 * In reference (collapsed), at `[`.
28779 *
28780 * > 👉 **Note**: we only get here if the label is defined.
28781 *
28782 * ```markdown
28783 * > | [a][] d
28784 * ^
28785 * ```
28786 *
28787 * @type {State}
28788 */
28789 function referenceCollapsedStart(code) {
28790 // We only attempt a collapsed label if there’s a `[`.
28791 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, 'expected left bracket')
28792 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference)
28793 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28794 effects.consume(code)
28795 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28796 return referenceCollapsedOpen
28797 }
28798
28799 /**
28800 * In reference (collapsed), at `]`.
28801 *
28802 * > 👉 **Note**: we only get here if the label is defined.
28803 *
28804 * ```markdown
28805 * > | [a][] d
28806 * ^
28807 * ```
28808 *
28809 * @type {State}
28810 */
28811 function referenceCollapsedOpen(code) {
28812 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket) {
28813 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28814 effects.consume(code)
28815 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28816 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference)
28817 return ok
28818 }
28819
28820 return nok(code)
28821 }
28822 }
28823
28824
28825 /***/ }),
28826
28827 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js":
28828 /*!******************************************************************************!*\
28829 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js ***!
28830 \******************************************************************************/
28831 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28832
28833 "use strict";
28834 __webpack_require__.r(__webpack_exports__);
28835 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28836 /* harmony export */ labelStartImage: () => (/* binding */ labelStartImage)
28837 /* harmony export */ });
28838 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
28839 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
28840 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28841 /* harmony import */ var _label_end_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./label-end.js */ "../node_modules/micromark-core-commonmark/dev/lib/label-end.js");
28842 /**
28843 * @typedef {import('micromark-util-types').Construct} Construct
28844 * @typedef {import('micromark-util-types').State} State
28845 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28846 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28847 */
28848
28849
28850
28851
28852
28853
28854 /** @type {Construct} */
28855 const labelStartImage = {
28856 name: 'labelStartImage',
28857 tokenize: tokenizeLabelStartImage,
28858 resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_1__.labelEnd.resolveAll
28859 }
28860
28861 /**
28862 * @this {TokenizeContext}
28863 * @type {Tokenizer}
28864 */
28865 function tokenizeLabelStartImage(effects, ok, nok) {
28866 const self = this
28867
28868 return start
28869
28870 /**
28871 * Start of label (image) start.
28872 *
28873 * ```markdown
28874 * > | a ![b] c
28875 * ^
28876 * ```
28877 *
28878 * @type {State}
28879 */
28880 function start(code) {
28881 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark, 'expected `!`')
28882 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImage)
28883 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker)
28884 effects.consume(code)
28885 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker)
28886 return open
28887 }
28888
28889 /**
28890 * After `!`, at `[`.
28891 *
28892 * ```markdown
28893 * > | a ![b] c
28894 * ^
28895 * ```
28896 *
28897 * @type {State}
28898 */
28899 function open(code) {
28900 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {
28901 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
28902 effects.consume(code)
28903 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
28904 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImage)
28905 return after
28906 }
28907
28908 return nok(code)
28909 }
28910
28911 /**
28912 * After `![`.
28913 *
28914 * ```markdown
28915 * > | a ![b] c
28916 * ^
28917 * ```
28918 *
28919 * This is needed in because, when GFM footnotes are enabled, images never
28920 * form when started with a `^`.
28921 * Instead, links form:
28922 *
28923 * ```markdown
28924 * ![^a](b)
28925 *
28926 * ![^a][b]
28927 *
28928 * [b]: c
28929 * ```
28930 *
28931 * ```html
28932 * <p>!<a href=\"b\">^a</a></p>
28933 * <p>!<a href=\"c\">^a</a></p>
28934 * ```
28935 *
28936 * @type {State}
28937 */
28938 function after(code) {
28939 // To do: use a new field to do this, this is still needed for
28940 // `micromark-extension-gfm-footnote`, but the `label-start-link`
28941 // behavior isn’t.
28942 // Hidden footnotes hook.
28943 /* c8 ignore next 3 */
28944 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.caret &&
28945 '_hiddenFootnoteSupport' in self.parser.constructs
28946 ? nok(code)
28947 : ok(code)
28948 }
28949 }
28950
28951
28952 /***/ }),
28953
28954 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js":
28955 /*!*****************************************************************************!*\
28956 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js ***!
28957 \*****************************************************************************/
28958 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28959
28960 "use strict";
28961 __webpack_require__.r(__webpack_exports__);
28962 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28963 /* harmony export */ labelStartLink: () => (/* binding */ labelStartLink)
28964 /* harmony export */ });
28965 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
28966 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
28967 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28968 /* harmony import */ var _label_end_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./label-end.js */ "../node_modules/micromark-core-commonmark/dev/lib/label-end.js");
28969 /**
28970 * @typedef {import('micromark-util-types').Construct} Construct
28971 * @typedef {import('micromark-util-types').State} State
28972 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28973 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28974 */
28975
28976
28977
28978
28979
28980
28981 /** @type {Construct} */
28982 const labelStartLink = {
28983 name: 'labelStartLink',
28984 tokenize: tokenizeLabelStartLink,
28985 resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_1__.labelEnd.resolveAll
28986 }
28987
28988 /**
28989 * @this {TokenizeContext}
28990 * @type {Tokenizer}
28991 */
28992 function tokenizeLabelStartLink(effects, ok, nok) {
28993 const self = this
28994
28995 return start
28996
28997 /**
28998 * Start of label (link) start.
28999 *
29000 * ```markdown
29001 * > | a [b] c
29002 * ^
29003 * ```
29004 *
29005 * @type {State}
29006 */
29007 function start(code) {
29008 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, 'expected `[`')
29009 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelLink)
29010 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
29011 effects.consume(code)
29012 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
29013 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelLink)
29014 return after
29015 }
29016
29017 /** @type {State} */
29018 function after(code) {
29019 // To do: this isn’t needed in `micromark-extension-gfm-footnote`,
29020 // remove.
29021 // Hidden footnotes hook.
29022 /* c8 ignore next 3 */
29023 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.caret &&
29024 '_hiddenFootnoteSupport' in self.parser.constructs
29025 ? nok(code)
29026 : ok(code)
29027 }
29028 }
29029
29030
29031 /***/ }),
29032
29033 /***/ "../node_modules/micromark-core-commonmark/dev/lib/line-ending.js":
29034 /*!************************************************************************!*\
29035 !*** ../node_modules/micromark-core-commonmark/dev/lib/line-ending.js ***!
29036 \************************************************************************/
29037 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29038
29039 "use strict";
29040 __webpack_require__.r(__webpack_exports__);
29041 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29042 /* harmony export */ lineEnding: () => (/* binding */ lineEnding)
29043 /* harmony export */ });
29044 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29045 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29046 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
29047 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29048 /**
29049 * @typedef {import('micromark-util-types').Construct} Construct
29050 * @typedef {import('micromark-util-types').State} State
29051 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29052 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29053 */
29054
29055
29056
29057
29058
29059
29060 /** @type {Construct} */
29061 const lineEnding = {name: 'lineEnding', tokenize: tokenizeLineEnding}
29062
29063 /**
29064 * @this {TokenizeContext}
29065 * @type {Tokenizer}
29066 */
29067 function tokenizeLineEnding(effects, ok) {
29068 return start
29069
29070 /** @type {State} */
29071 function start(code) {
29072 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code), 'expected eol')
29073 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
29074 effects.consume(code)
29075 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
29076 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, ok, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)
29077 }
29078 }
29079
29080
29081 /***/ }),
29082
29083 /***/ "../node_modules/micromark-core-commonmark/dev/lib/list.js":
29084 /*!*****************************************************************!*\
29085 !*** ../node_modules/micromark-core-commonmark/dev/lib/list.js ***!
29086 \*****************************************************************/
29087 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29088
29089 "use strict";
29090 __webpack_require__.r(__webpack_exports__);
29091 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29092 /* harmony export */ list: () => (/* binding */ list)
29093 /* harmony export */ });
29094 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29095 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29096 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
29097 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
29098 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
29099 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29100 /* harmony import */ var _blank_line_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blank-line.js */ "../node_modules/micromark-core-commonmark/dev/lib/blank-line.js");
29101 /* harmony import */ var _thematic_break_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./thematic-break.js */ "../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js");
29102 /**
29103 * @typedef {import('micromark-util-types').Code} Code
29104 * @typedef {import('micromark-util-types').Construct} Construct
29105 * @typedef {import('micromark-util-types').ContainerState} ContainerState
29106 * @typedef {import('micromark-util-types').Exiter} Exiter
29107 * @typedef {import('micromark-util-types').State} State
29108 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29109 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29110 */
29111
29112
29113
29114
29115
29116
29117
29118
29119
29120
29121 /** @type {Construct} */
29122 const list = {
29123 name: 'list',
29124 tokenize: tokenizeListStart,
29125 continuation: {tokenize: tokenizeListContinuation},
29126 exit: tokenizeListEnd
29127 }
29128
29129 /** @type {Construct} */
29130 const listItemPrefixWhitespaceConstruct = {
29131 tokenize: tokenizeListItemPrefixWhitespace,
29132 partial: true
29133 }
29134
29135 /** @type {Construct} */
29136 const indentConstruct = {tokenize: tokenizeIndent, partial: true}
29137
29138 // To do: `markdown-rs` parses list items on their own and later stitches them
29139 // together.
29140
29141 /**
29142 * @type {Tokenizer}
29143 * @this {TokenizeContext}
29144 */
29145 function tokenizeListStart(effects, ok, nok) {
29146 const self = this
29147 const tail = self.events[self.events.length - 1]
29148 let initialSize =
29149 tail && tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix
29150 ? tail[2].sliceSerialize(tail[1], true).length
29151 : 0
29152 let size = 0
29153
29154 return start
29155
29156 /** @type {State} */
29157 function start(code) {
29158 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29159 const kind =
29160 self.containerState.type ||
29161 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.plusSign || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash
29162 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered
29163 : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listOrdered)
29164
29165 if (
29166 kind === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered
29167 ? !self.containerState.marker || code === self.containerState.marker
29168 : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code)
29169 ) {
29170 if (!self.containerState.type) {
29171 self.containerState.type = kind
29172 effects.enter(kind, {_container: true})
29173 }
29174
29175 if (kind === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered) {
29176 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix)
29177 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash
29178 ? effects.check(_thematic_break_js__WEBPACK_IMPORTED_MODULE_4__.thematicBreak, nok, atMarker)(code)
29179 : atMarker(code)
29180 }
29181
29182 if (!self.interrupt || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.digit1) {
29183 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix)
29184 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemValue)
29185 return inside(code)
29186 }
29187 }
29188
29189 return nok(code)
29190 }
29191
29192 /** @type {State} */
29193 function inside(code) {
29194 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29195 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code) && ++size < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.listItemValueSizeMax) {
29196 effects.consume(code)
29197 return inside
29198 }
29199
29200 if (
29201 (!self.interrupt || size < 2) &&
29202 (self.containerState.marker
29203 ? code === self.containerState.marker
29204 : code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightParenthesis || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dot)
29205 ) {
29206 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemValue)
29207 return atMarker(code)
29208 }
29209
29210 return nok(code)
29211 }
29212
29213 /**
29214 * @type {State}
29215 **/
29216 function atMarker(code) {
29217 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29218 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof, 'eof (`null`) is not a marker')
29219 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemMarker)
29220 effects.consume(code)
29221 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemMarker)
29222 self.containerState.marker = self.containerState.marker || code
29223 return effects.check(
29224 _blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine,
29225 // Can’t be empty when interrupting.
29226 self.interrupt ? nok : onBlank,
29227 effects.attempt(
29228 listItemPrefixWhitespaceConstruct,
29229 endOfPrefix,
29230 otherPrefix
29231 )
29232 )
29233 }
29234
29235 /** @type {State} */
29236 function onBlank(code) {
29237 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29238 self.containerState.initialBlankLine = true
29239 initialSize++
29240 return endOfPrefix(code)
29241 }
29242
29243 /** @type {State} */
29244 function otherPrefix(code) {
29245 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
29246 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace)
29247 effects.consume(code)
29248 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace)
29249 return endOfPrefix
29250 }
29251
29252 return nok(code)
29253 }
29254
29255 /** @type {State} */
29256 function endOfPrefix(code) {
29257 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29258 self.containerState.size =
29259 initialSize +
29260 self.sliceSerialize(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix), true).length
29261 return ok(code)
29262 }
29263 }
29264
29265 /**
29266 * @type {Tokenizer}
29267 * @this {TokenizeContext}
29268 */
29269 function tokenizeListContinuation(effects, ok, nok) {
29270 const self = this
29271
29272 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29273 self.containerState._closeFlow = undefined
29274
29275 return effects.check(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, onBlank, notBlank)
29276
29277 /** @type {State} */
29278 function onBlank(code) {
29279 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29280 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof self.containerState.size === 'number', 'expected size')
29281 self.containerState.furtherBlankLines =
29282 self.containerState.furtherBlankLines ||
29283 self.containerState.initialBlankLine
29284
29285 // We have a blank line.
29286 // Still, try to consume at most the items size.
29287 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29288 effects,
29289 ok,
29290 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent,
29291 self.containerState.size + 1
29292 )(code)
29293 }
29294
29295 /** @type {State} */
29296 function notBlank(code) {
29297 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29298 if (self.containerState.furtherBlankLines || !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
29299 self.containerState.furtherBlankLines = undefined
29300 self.containerState.initialBlankLine = undefined
29301 return notInCurrentItem(code)
29302 }
29303
29304 self.containerState.furtherBlankLines = undefined
29305 self.containerState.initialBlankLine = undefined
29306 return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)
29307 }
29308
29309 /** @type {State} */
29310 function notInCurrentItem(code) {
29311 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29312 // While we do continue, we signal that the flow should be closed.
29313 self.containerState._closeFlow = true
29314 // As we’re closing flow, we’re no longer interrupting.
29315 self.interrupt = undefined
29316 // Always populated by defaults.
29317 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29318 self.parser.constructs.disable.null,
29319 'expected `disable.null` to be populated'
29320 )
29321 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29322 effects,
29323 effects.attempt(list, ok, nok),
29324 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix,
29325 self.parser.constructs.disable.null.includes('codeIndented')
29326 ? undefined
29327 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
29328 )(code)
29329 }
29330 }
29331
29332 /**
29333 * @type {Tokenizer}
29334 * @this {TokenizeContext}
29335 */
29336 function tokenizeIndent(effects, ok, nok) {
29337 const self = this
29338
29339 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29340 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof self.containerState.size === 'number', 'expected size')
29341
29342 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29343 effects,
29344 afterPrefix,
29345 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent,
29346 self.containerState.size + 1
29347 )
29348
29349 /** @type {State} */
29350 function afterPrefix(code) {
29351 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29352 const tail = self.events[self.events.length - 1]
29353 return tail &&
29354 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent &&
29355 tail[2].sliceSerialize(tail[1], true).length === self.containerState.size
29356 ? ok(code)
29357 : nok(code)
29358 }
29359 }
29360
29361 /**
29362 * @type {Exiter}
29363 * @this {TokenizeContext}
29364 */
29365 function tokenizeListEnd(effects) {
29366 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(this.containerState, 'expected state')
29367 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof this.containerState.type === 'string', 'expected type')
29368 effects.exit(this.containerState.type)
29369 }
29370
29371 /**
29372 * @type {Tokenizer}
29373 * @this {TokenizeContext}
29374 */
29375 function tokenizeListItemPrefixWhitespace(effects, ok, nok) {
29376 const self = this
29377
29378 // Always populated by defaults.
29379 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29380 self.parser.constructs.disable.null,
29381 'expected `disable.null` to be populated'
29382 )
29383
29384 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29385 effects,
29386 afterPrefix,
29387 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace,
29388 self.parser.constructs.disable.null.includes('codeIndented')
29389 ? undefined
29390 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize + 1
29391 )
29392
29393 /** @type {State} */
29394 function afterPrefix(code) {
29395 const tail = self.events[self.events.length - 1]
29396
29397 return !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code) &&
29398 tail &&
29399 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace
29400 ? ok(code)
29401 : nok(code)
29402 }
29403 }
29404
29405
29406 /***/ }),
29407
29408 /***/ "../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js":
29409 /*!*****************************************************************************!*\
29410 !*** ../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js ***!
29411 \*****************************************************************************/
29412 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29413
29414 "use strict";
29415 __webpack_require__.r(__webpack_exports__);
29416 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29417 /* harmony export */ setextUnderline: () => (/* binding */ setextUnderline)
29418 /* harmony export */ });
29419 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29420 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29421 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
29422 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
29423 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29424 /**
29425 * @typedef {import('micromark-util-types').Code} Code
29426 * @typedef {import('micromark-util-types').Construct} Construct
29427 * @typedef {import('micromark-util-types').Resolver} Resolver
29428 * @typedef {import('micromark-util-types').State} State
29429 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29430 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29431 */
29432
29433
29434
29435
29436
29437
29438
29439 /** @type {Construct} */
29440 const setextUnderline = {
29441 name: 'setextUnderline',
29442 tokenize: tokenizeSetextUnderline,
29443 resolveTo: resolveToSetextUnderline
29444 }
29445
29446 /** @type {Resolver} */
29447 function resolveToSetextUnderline(events, context) {
29448 // To do: resolve like `markdown-rs`.
29449 let index = events.length
29450 /** @type {number | undefined} */
29451 let content
29452 /** @type {number | undefined} */
29453 let text
29454 /** @type {number | undefined} */
29455 let definition
29456
29457 // Find the opening of the content.
29458 // It’ll always exist: we don’t tokenize if it isn’t there.
29459 while (index--) {
29460 if (events[index][0] === 'enter') {
29461 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
29462 content = index
29463 break
29464 }
29465
29466 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.paragraph) {
29467 text = index
29468 }
29469 }
29470 // Exit
29471 else {
29472 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
29473 // Remove the content end (if needed we’ll add it later)
29474 events.splice(index, 1)
29475 }
29476
29477 if (!definition && events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition) {
29478 definition = index
29479 }
29480 }
29481 }
29482
29483 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(text !== undefined, 'expected a `text` index to be found')
29484 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(content !== undefined, 'expected a `text` index to be found')
29485
29486 const heading = {
29487 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeading,
29488 start: Object.assign({}, events[text][1].start),
29489 end: Object.assign({}, events[events.length - 1][1].end)
29490 }
29491
29492 // Change the paragraph to setext heading text.
29493 events[text][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingText
29494
29495 // If we have definitions in the content, we’ll keep on having content,
29496 // but we need move it.
29497 if (definition) {
29498 events.splice(text, 0, ['enter', heading, context])
29499 events.splice(definition + 1, 0, ['exit', events[content][1], context])
29500 events[content][1].end = Object.assign({}, events[definition][1].end)
29501 } else {
29502 events[content][1] = heading
29503 }
29504
29505 // Add the heading exit at the end.
29506 events.push(['exit', heading, context])
29507
29508 return events
29509 }
29510
29511 /**
29512 * @this {TokenizeContext}
29513 * @type {Tokenizer}
29514 */
29515 function tokenizeSetextUnderline(effects, ok, nok) {
29516 const self = this
29517 /** @type {NonNullable<Code>} */
29518 let marker
29519
29520 return start
29521
29522 /**
29523 * At start of heading (setext) underline.
29524 *
29525 * ```markdown
29526 * | aa
29527 * > | ==
29528 * ^
29529 * ```
29530 *
29531 * @type {State}
29532 */
29533 function start(code) {
29534 let index = self.events.length
29535 /** @type {boolean | undefined} */
29536 let paragraph
29537
29538 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29539 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo,
29540 'expected `=` or `-`'
29541 )
29542
29543 // Find an opening.
29544 while (index--) {
29545 // Skip enter/exit of line ending, line prefix, and content.
29546 // We can now either have a definition or a paragraph.
29547 if (
29548 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding &&
29549 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix &&
29550 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content
29551 ) {
29552 paragraph = self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.paragraph
29553 break
29554 }
29555 }
29556
29557 // To do: handle lazy/pierce like `markdown-rs`.
29558 // To do: parse indent like `markdown-rs`.
29559 if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {
29560 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLine)
29561 marker = code
29562 return before(code)
29563 }
29564
29565 return nok(code)
29566 }
29567
29568 /**
29569 * After optional whitespace, at `-` or `=`.
29570 *
29571 * ```markdown
29572 * | aa
29573 * > | ==
29574 * ^
29575 * ```
29576 *
29577 * @type {State}
29578 */
29579 function before(code) {
29580 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLineSequence)
29581 return inside(code)
29582 }
29583
29584 /**
29585 * In sequence.
29586 *
29587 * ```markdown
29588 * | aa
29589 * > | ==
29590 * ^
29591 * ```
29592 *
29593 * @type {State}
29594 */
29595 function inside(code) {
29596 if (code === marker) {
29597 effects.consume(code)
29598 return inside
29599 }
29600
29601 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLineSequence)
29602
29603 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
29604 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, after, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix)(code)
29605 : after(code)
29606 }
29607
29608 /**
29609 * After sequence, after optional whitespace.
29610 *
29611 * ```markdown
29612 * | aa
29613 * > | ==
29614 * ^
29615 * ```
29616 *
29617 * @type {State}
29618 */
29619 function after(code) {
29620 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
29621 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLine)
29622 return ok(code)
29623 }
29624
29625 return nok(code)
29626 }
29627 }
29628
29629
29630 /***/ }),
29631
29632 /***/ "../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js":
29633 /*!***************************************************************************!*\
29634 !*** ../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js ***!
29635 \***************************************************************************/
29636 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29637
29638 "use strict";
29639 __webpack_require__.r(__webpack_exports__);
29640 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29641 /* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)
29642 /* harmony export */ });
29643 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29644 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29645 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
29646 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
29647 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
29648 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29649 /**
29650 * @typedef {import('micromark-util-types').Code} Code
29651 * @typedef {import('micromark-util-types').Construct} Construct
29652 * @typedef {import('micromark-util-types').State} State
29653 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29654 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29655 */
29656
29657
29658
29659
29660
29661
29662
29663
29664 /** @type {Construct} */
29665 const thematicBreak = {
29666 name: 'thematicBreak',
29667 tokenize: tokenizeThematicBreak
29668 }
29669
29670 /**
29671 * @this {TokenizeContext}
29672 * @type {Tokenizer}
29673 */
29674 function tokenizeThematicBreak(effects, ok, nok) {
29675 let size = 0
29676 /** @type {NonNullable<Code>} */
29677 let marker
29678
29679 return start
29680
29681 /**
29682 * Start of thematic break.
29683 *
29684 * ```markdown
29685 * > | ***
29686 * ^
29687 * ```
29688 *
29689 * @type {State}
29690 */
29691 function start(code) {
29692 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreak)
29693 // To do: parse indent like `markdown-rs`.
29694 return before(code)
29695 }
29696
29697 /**
29698 * After optional whitespace, at marker.
29699 *
29700 * ```markdown
29701 * > | ***
29702 * ^
29703 * ```
29704 *
29705 * @type {State}
29706 */
29707 function before(code) {
29708 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29709 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk ||
29710 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||
29711 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore,
29712 'expected `*`, `-`, or `_`'
29713 )
29714 marker = code
29715 return atBreak(code)
29716 }
29717
29718 /**
29719 * After something, before something else.
29720 *
29721 * ```markdown
29722 * > | ***
29723 * ^
29724 * ```
29725 *
29726 * @type {State}
29727 */
29728 function atBreak(code) {
29729 if (code === marker) {
29730 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreakSequence)
29731 return sequence(code)
29732 }
29733
29734 if (
29735 size >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.thematicBreakMarkerCountMin &&
29736 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))
29737 ) {
29738 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreak)
29739 return ok(code)
29740 }
29741
29742 return nok(code)
29743 }
29744
29745 /**
29746 * In sequence.
29747 *
29748 * ```markdown
29749 * > | ***
29750 * ^
29751 * ```
29752 *
29753 * @type {State}
29754 */
29755 function sequence(code) {
29756 if (code === marker) {
29757 effects.consume(code)
29758 size++
29759 return sequence
29760 }
29761
29762 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreakSequence)
29763 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
29764 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
29765 : atBreak(code)
29766 }
29767 }
29768
29769
29770 /***/ }),
29771
29772 /***/ "../node_modules/micromark-factory-destination/dev/index.js":
29773 /*!******************************************************************!*\
29774 !*** ../node_modules/micromark-factory-destination/dev/index.js ***!
29775 \******************************************************************/
29776 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29777
29778 "use strict";
29779 __webpack_require__.r(__webpack_exports__);
29780 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29781 /* harmony export */ factoryDestination: () => (/* binding */ factoryDestination)
29782 /* harmony export */ });
29783 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29784 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
29785 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
29786 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
29787 /**
29788 * @typedef {import('micromark-util-types').Effects} Effects
29789 * @typedef {import('micromark-util-types').State} State
29790 * @typedef {import('micromark-util-types').TokenType} TokenType
29791 */
29792
29793
29794
29795
29796
29797
29798 /**
29799 * Parse destinations.
29800 *
29801 * ###### Examples
29802 *
29803 * ```markdown
29804 * <a>
29805 * <a\>b>
29806 * <a b>
29807 * <a)>
29808 * a
29809 * a\)b
29810 * a(b)c
29811 * a(b)
29812 * ```
29813 *
29814 * @param {Effects} effects
29815 * Context.
29816 * @param {State} ok
29817 * State switched to when successful.
29818 * @param {State} nok
29819 * State switched to when unsuccessful.
29820 * @param {TokenType} type
29821 * Type for whole (`<a>` or `b`).
29822 * @param {TokenType} literalType
29823 * Type when enclosed (`<a>`).
29824 * @param {TokenType} literalMarkerType
29825 * Type for enclosing (`<` and `>`).
29826 * @param {TokenType} rawType
29827 * Type when not enclosed (`b`).
29828 * @param {TokenType} stringType
29829 * Type for the value (`a` or `b`).
29830 * @param {number | undefined} [max=Infinity]
29831 * Depth of nested parens (inclusive).
29832 * @returns {State}
29833 * Start state.
29834 */
29835 // eslint-disable-next-line max-params
29836 function factoryDestination(
29837 effects,
29838 ok,
29839 nok,
29840 type,
29841 literalType,
29842 literalMarkerType,
29843 rawType,
29844 stringType,
29845 max
29846 ) {
29847 const limit = max || Number.POSITIVE_INFINITY
29848 let balance = 0
29849
29850 return start
29851
29852 /**
29853 * Start of destination.
29854 *
29855 * ```markdown
29856 * > | <aa>
29857 * ^
29858 * > | aa
29859 * ^
29860 * ```
29861 *
29862 * @type {State}
29863 */
29864 function start(code) {
29865 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan) {
29866 effects.enter(type)
29867 effects.enter(literalType)
29868 effects.enter(literalMarkerType)
29869 effects.consume(code)
29870 effects.exit(literalMarkerType)
29871 return enclosedBefore
29872 }
29873
29874 // ASCII control, space, closing paren.
29875 if (
29876 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29877 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space ||
29878 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
29879 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)
29880 ) {
29881 return nok(code)
29882 }
29883
29884 effects.enter(type)
29885 effects.enter(rawType)
29886 effects.enter(stringType)
29887 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.contentTypeString})
29888 return raw(code)
29889 }
29890
29891 /**
29892 * After `<`, at an enclosed destination.
29893 *
29894 * ```markdown
29895 * > | <aa>
29896 * ^
29897 * ```
29898 *
29899 * @type {State}
29900 */
29901 function enclosedBefore(code) {
29902 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {
29903 effects.enter(literalMarkerType)
29904 effects.consume(code)
29905 effects.exit(literalMarkerType)
29906 effects.exit(literalType)
29907 effects.exit(type)
29908 return ok
29909 }
29910
29911 effects.enter(stringType)
29912 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.contentTypeString})
29913 return enclosed(code)
29914 }
29915
29916 /**
29917 * In enclosed destination.
29918 *
29919 * ```markdown
29920 * > | <aa>
29921 * ^
29922 * ```
29923 *
29924 * @type {State}
29925 */
29926 function enclosed(code) {
29927 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {
29928 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
29929 effects.exit(stringType)
29930 return enclosedBefore(code)
29931 }
29932
29933 if (
29934 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29935 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan ||
29936 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)
29937 ) {
29938 return nok(code)
29939 }
29940
29941 effects.consume(code)
29942 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? enclosedEscape : enclosed
29943 }
29944
29945 /**
29946 * After `\`, at a special character.
29947 *
29948 * ```markdown
29949 * > | <a\*a>
29950 * ^
29951 * ```
29952 *
29953 * @type {State}
29954 */
29955 function enclosedEscape(code) {
29956 if (
29957 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan ||
29958 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan ||
29959 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash
29960 ) {
29961 effects.consume(code)
29962 return enclosed
29963 }
29964
29965 return enclosed(code)
29966 }
29967
29968 /**
29969 * In raw destination.
29970 *
29971 * ```markdown
29972 * > | aa
29973 * ^
29974 * ```
29975 *
29976 * @type {State}
29977 */
29978 function raw(code) {
29979 if (
29980 !balance &&
29981 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29982 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
29983 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code))
29984 ) {
29985 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
29986 effects.exit(stringType)
29987 effects.exit(rawType)
29988 effects.exit(type)
29989 return ok(code)
29990 }
29991
29992 if (balance < limit && code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis) {
29993 effects.consume(code)
29994 balance++
29995 return raw
29996 }
29997
29998 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis) {
29999 effects.consume(code)
30000 balance--
30001 return raw
30002 }
30003
30004 // ASCII control (but *not* `\0`) and space and `(`.
30005 // Note: in `markdown-rs`, `\0` exists in codes, in `micromark-js` it
30006 // doesn’t.
30007 if (
30008 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
30009 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space ||
30010 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ||
30011 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)
30012 ) {
30013 return nok(code)
30014 }
30015
30016 effects.consume(code)
30017 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? rawEscape : raw
30018 }
30019
30020 /**
30021 * After `\`, at special character.
30022 *
30023 * ```markdown
30024 * > | a\*a
30025 * ^
30026 * ```
30027 *
30028 * @type {State}
30029 */
30030 function rawEscape(code) {
30031 if (
30032 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ||
30033 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
30034 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash
30035 ) {
30036 effects.consume(code)
30037 return raw
30038 }
30039
30040 return raw(code)
30041 }
30042 }
30043
30044
30045 /***/ }),
30046
30047 /***/ "../node_modules/micromark-factory-label/dev/index.js":
30048 /*!************************************************************!*\
30049 !*** ../node_modules/micromark-factory-label/dev/index.js ***!
30050 \************************************************************/
30051 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30052
30053 "use strict";
30054 __webpack_require__.r(__webpack_exports__);
30055 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30056 /* harmony export */ factoryLabel: () => (/* binding */ factoryLabel)
30057 /* harmony export */ });
30058 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30059 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
30060 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
30061 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
30062 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
30063 /**
30064 * @typedef {import('micromark-util-types').Effects} Effects
30065 * @typedef {import('micromark-util-types').State} State
30066 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
30067 * @typedef {import('micromark-util-types').TokenType} TokenType
30068 */
30069
30070
30071
30072
30073
30074
30075
30076 /**
30077 * Parse labels.
30078 *
30079 * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.
30080 *
30081 * ###### Examples
30082 *
30083 * ```markdown
30084 * [a]
30085 * [a
30086 * b]
30087 * [a\]b]
30088 * ```
30089 *
30090 * @this {TokenizeContext}
30091 * Tokenize context.
30092 * @param {Effects} effects
30093 * Context.
30094 * @param {State} ok
30095 * State switched to when successful.
30096 * @param {State} nok
30097 * State switched to when unsuccessful.
30098 * @param {TokenType} type
30099 * Type of the whole label (`[a]`).
30100 * @param {TokenType} markerType
30101 * Type for the markers (`[` and `]`).
30102 * @param {TokenType} stringType
30103 * Type for the identifier (`a`).
30104 * @returns {State}
30105 * Start state.
30106 */
30107 // eslint-disable-next-line max-params
30108 function factoryLabel(effects, ok, nok, type, markerType, stringType) {
30109 const self = this
30110 let size = 0
30111 /** @type {boolean} */
30112 let seen
30113
30114 return start
30115
30116 /**
30117 * Start of label.
30118 *
30119 * ```markdown
30120 * > | [a]
30121 * ^
30122 * ```
30123 *
30124 * @type {State}
30125 */
30126 function start(code) {
30127 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket, 'expected `[`')
30128 effects.enter(type)
30129 effects.enter(markerType)
30130 effects.consume(code)
30131 effects.exit(markerType)
30132 effects.enter(stringType)
30133 return atBreak
30134 }
30135
30136 /**
30137 * In label, at something, before something else.
30138 *
30139 * ```markdown
30140 * > | [a]
30141 * ^
30142 * ```
30143 *
30144 * @type {State}
30145 */
30146 function atBreak(code) {
30147 if (
30148 size > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax ||
30149 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
30150 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30151 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket && !seen) ||
30152 // To do: remove in the future once we’ve switched from
30153 // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
30154 // which doesn’t need this.
30155 // Hidden footnotes hook.
30156 /* c8 ignore next 3 */
30157 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.caret &&
30158 !size &&
30159 '_hiddenFootnoteSupport' in self.parser.constructs)
30160 ) {
30161 return nok(code)
30162 }
30163
30164 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
30165 effects.exit(stringType)
30166 effects.enter(markerType)
30167 effects.consume(code)
30168 effects.exit(markerType)
30169 effects.exit(type)
30170 return ok
30171 }
30172
30173 // To do: indent? Link chunks and EOLs together?
30174 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
30175 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
30176 effects.consume(code)
30177 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
30178 return atBreak
30179 }
30180
30181 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkString, {contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.contentTypeString})
30182 return labelInside(code)
30183 }
30184
30185 /**
30186 * In label, in text.
30187 *
30188 * ```markdown
30189 * > | [a]
30190 * ^
30191 * ```
30192 *
30193 * @type {State}
30194 */
30195 function labelInside(code) {
30196 if (
30197 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
30198 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30199 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket ||
30200 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code) ||
30201 size++ > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax
30202 ) {
30203 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkString)
30204 return atBreak(code)
30205 }
30206
30207 effects.consume(code)
30208 if (!seen) seen = !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
30209 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? labelEscape : labelInside
30210 }
30211
30212 /**
30213 * After `\`, at a special character.
30214 *
30215 * ```markdown
30216 * > | [a\*a]
30217 * ^
30218 * ```
30219 *
30220 * @type {State}
30221 */
30222 function labelEscape(code) {
30223 if (
30224 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30225 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ||
30226 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket
30227 ) {
30228 effects.consume(code)
30229 size++
30230 return labelInside
30231 }
30232
30233 return labelInside(code)
30234 }
30235 }
30236
30237
30238 /***/ }),
30239
30240 /***/ "../node_modules/micromark-factory-space/dev/index.js":
30241 /*!************************************************************!*\
30242 !*** ../node_modules/micromark-factory-space/dev/index.js ***!
30243 \************************************************************/
30244 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30245
30246 "use strict";
30247 __webpack_require__.r(__webpack_exports__);
30248 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30249 /* harmony export */ factorySpace: () => (/* binding */ factorySpace)
30250 /* harmony export */ });
30251 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30252 /**
30253 * @typedef {import('micromark-util-types').Effects} Effects
30254 * @typedef {import('micromark-util-types').State} State
30255 * @typedef {import('micromark-util-types').TokenType} TokenType
30256 */
30257
30258
30259
30260 // To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.
30261
30262 /**
30263 * Parse spaces and tabs.
30264 *
30265 * There is no `nok` parameter:
30266 *
30267 * * spaces in markdown are often optional, in which case this factory can be
30268 * used and `ok` will be switched to whether spaces were found or not
30269 * * one line ending or space can be detected with `markdownSpace(code)` right
30270 * before using `factorySpace`
30271 *
30272 * ###### Examples
30273 *
30274 * Where `␉` represents a tab (plus how much it expands) and `␠` represents a
30275 * single space.
30276 *
30277 * ```markdown
30278 * ␉
30279 * ␠␠␠␠
30280 * ␉␠
30281 * ```
30282 *
30283 * @param {Effects} effects
30284 * Context.
30285 * @param {State} ok
30286 * State switched to when successful.
30287 * @param {TokenType} type
30288 * Type (`' \t'`).
30289 * @param {number | undefined} [max=Infinity]
30290 * Max (exclusive).
30291 * @returns
30292 * Start state.
30293 */
30294 function factorySpace(effects, ok, type, max) {
30295 const limit = max ? max - 1 : Number.POSITIVE_INFINITY
30296 let size = 0
30297
30298 return start
30299
30300 /** @type {State} */
30301 function start(code) {
30302 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {
30303 effects.enter(type)
30304 return prefix(code)
30305 }
30306
30307 return ok(code)
30308 }
30309
30310 /** @type {State} */
30311 function prefix(code) {
30312 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code) && size++ < limit) {
30313 effects.consume(code)
30314 return prefix
30315 }
30316
30317 effects.exit(type)
30318 return ok(code)
30319 }
30320 }
30321
30322
30323 /***/ }),
30324
30325 /***/ "../node_modules/micromark-factory-title/dev/index.js":
30326 /*!************************************************************!*\
30327 !*** ../node_modules/micromark-factory-title/dev/index.js ***!
30328 \************************************************************/
30329 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30330
30331 "use strict";
30332 __webpack_require__.r(__webpack_exports__);
30333 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30334 /* harmony export */ factoryTitle: () => (/* binding */ factoryTitle)
30335 /* harmony export */ });
30336 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
30337 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30338 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
30339 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
30340 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
30341 /**
30342 * @typedef {import('micromark-util-types').Code} Code
30343 * @typedef {import('micromark-util-types').Effects} Effects
30344 * @typedef {import('micromark-util-types').State} State
30345 * @typedef {import('micromark-util-types').TokenType} TokenType
30346 */
30347
30348
30349
30350
30351
30352
30353
30354 /**
30355 * Parse titles.
30356 *
30357 * ###### Examples
30358 *
30359 * ```markdown
30360 * "a"
30361 * 'b'
30362 * (c)
30363 * "a
30364 * b"
30365 * 'a
30366 * b'
30367 * (a\)b)
30368 * ```
30369 *
30370 * @param {Effects} effects
30371 * Context.
30372 * @param {State} ok
30373 * State switched to when successful.
30374 * @param {State} nok
30375 * State switched to when unsuccessful.
30376 * @param {TokenType} type
30377 * Type of the whole title (`"a"`, `'b'`, `(c)`).
30378 * @param {TokenType} markerType
30379 * Type for the markers (`"`, `'`, `(`, and `)`).
30380 * @param {TokenType} stringType
30381 * Type for the value (`a`).
30382 * @returns {State}
30383 * Start state.
30384 */
30385 // eslint-disable-next-line max-params
30386 function factoryTitle(effects, ok, nok, type, markerType, stringType) {
30387 /** @type {NonNullable<Code>} */
30388 let marker
30389
30390 return start
30391
30392 /**
30393 * Start of title.
30394 *
30395 * ```markdown
30396 * > | "a"
30397 * ^
30398 * ```
30399 *
30400 * @type {State}
30401 */
30402 function start(code) {
30403 if (
30404 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.quotationMark ||
30405 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.apostrophe ||
30406 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis
30407 ) {
30408 effects.enter(type)
30409 effects.enter(markerType)
30410 effects.consume(code)
30411 effects.exit(markerType)
30412 marker = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ? micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis : code
30413 return begin
30414 }
30415
30416 return nok(code)
30417 }
30418
30419 /**
30420 * After opening marker.
30421 *
30422 * This is also used at the closing marker.
30423 *
30424 * ```markdown
30425 * > | "a"
30426 * ^
30427 * ```
30428 *
30429 * @type {State}
30430 */
30431 function begin(code) {
30432 if (code === marker) {
30433 effects.enter(markerType)
30434 effects.consume(code)
30435 effects.exit(markerType)
30436 effects.exit(type)
30437 return ok
30438 }
30439
30440 effects.enter(stringType)
30441 return atBreak(code)
30442 }
30443
30444 /**
30445 * At something, before something else.
30446 *
30447 * ```markdown
30448 * > | "a"
30449 * ^
30450 * ```
30451 *
30452 * @type {State}
30453 */
30454 function atBreak(code) {
30455 if (code === marker) {
30456 effects.exit(stringType)
30457 return begin(marker)
30458 }
30459
30460 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof) {
30461 return nok(code)
30462 }
30463
30464 // Note: blank lines can’t exist in content.
30465 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
30466 // To do: use `space_or_tab_eol_with_options`, connect.
30467 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
30468 effects.consume(code)
30469 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
30470 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)
30471 }
30472
30473 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString, {contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.contentTypeString})
30474 return inside(code)
30475 }
30476
30477 /**
30478 *
30479 *
30480 * @type {State}
30481 */
30482 function inside(code) {
30483 if (code === marker || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
30484 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
30485 return atBreak(code)
30486 }
30487
30488 effects.consume(code)
30489 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? escape : inside
30490 }
30491
30492 /**
30493 * After `\`, at a special character.
30494 *
30495 * ```markdown
30496 * > | "a\*b"
30497 * ^
30498 * ```
30499 *
30500 * @type {State}
30501 */
30502 function escape(code) {
30503 if (code === marker || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash) {
30504 effects.consume(code)
30505 return inside
30506 }
30507
30508 return inside(code)
30509 }
30510 }
30511
30512
30513 /***/ }),
30514
30515 /***/ "../node_modules/micromark-factory-whitespace/dev/index.js":
30516 /*!*****************************************************************!*\
30517 !*** ../node_modules/micromark-factory-whitespace/dev/index.js ***!
30518 \*****************************************************************/
30519 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30520
30521 "use strict";
30522 __webpack_require__.r(__webpack_exports__);
30523 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30524 /* harmony export */ factoryWhitespace: () => (/* binding */ factoryWhitespace)
30525 /* harmony export */ });
30526 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
30527 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30528 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
30529 /**
30530 * @typedef {import('micromark-util-types').Effects} Effects
30531 * @typedef {import('micromark-util-types').State} State
30532 */
30533
30534
30535
30536
30537
30538 /**
30539 * Parse spaces and tabs.
30540 *
30541 * There is no `nok` parameter:
30542 *
30543 * * line endings or spaces in markdown are often optional, in which case this
30544 * factory can be used and `ok` will be switched to whether spaces were found
30545 * or not
30546 * * one line ending or space can be detected with
30547 * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`
30548 *
30549 * @param {Effects} effects
30550 * Context.
30551 * @param {State} ok
30552 * State switched to when successful.
30553 * @returns
30554 * Start state.
30555 */
30556 function factoryWhitespace(effects, ok) {
30557 /** @type {boolean} */
30558 let seen
30559
30560 return start
30561
30562 /** @type {State} */
30563 function start(code) {
30564 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownLineEnding)(code)) {
30565 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
30566 effects.consume(code)
30567 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
30568 seen = true
30569 return start
30570 }
30571
30572 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {
30573 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(
30574 effects,
30575 start,
30576 seen ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix
30577 )(code)
30578 }
30579
30580 return ok(code)
30581 }
30582 }
30583
30584
30585 /***/ }),
30586
30587 /***/ "../node_modules/micromark-util-character/dev/index.js":
30588 /*!*************************************************************!*\
30589 !*** ../node_modules/micromark-util-character/dev/index.js ***!
30590 \*************************************************************/
30591 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30592
30593 "use strict";
30594 __webpack_require__.r(__webpack_exports__);
30595 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30596 /* harmony export */ asciiAlpha: () => (/* binding */ asciiAlpha),
30597 /* harmony export */ asciiAlphanumeric: () => (/* binding */ asciiAlphanumeric),
30598 /* harmony export */ asciiAtext: () => (/* binding */ asciiAtext),
30599 /* harmony export */ asciiControl: () => (/* binding */ asciiControl),
30600 /* harmony export */ asciiDigit: () => (/* binding */ asciiDigit),
30601 /* harmony export */ asciiHexDigit: () => (/* binding */ asciiHexDigit),
30602 /* harmony export */ asciiPunctuation: () => (/* binding */ asciiPunctuation),
30603 /* harmony export */ markdownLineEnding: () => (/* binding */ markdownLineEnding),
30604 /* harmony export */ markdownLineEndingOrSpace: () => (/* binding */ markdownLineEndingOrSpace),
30605 /* harmony export */ markdownSpace: () => (/* binding */ markdownSpace),
30606 /* harmony export */ unicodePunctuation: () => (/* binding */ unicodePunctuation),
30607 /* harmony export */ unicodeWhitespace: () => (/* binding */ unicodeWhitespace)
30608 /* harmony export */ });
30609 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
30610 /* harmony import */ var _lib_unicode_punctuation_regex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/unicode-punctuation-regex.js */ "../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js");
30611 /**
30612 * @typedef {import('micromark-util-types').Code} Code
30613 */
30614
30615
30616
30617
30618 /**
30619 * Check whether the character code represents an ASCII alpha (`a` through `z`,
30620 * case insensitive).
30621 *
30622 * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.
30623 *
30624 * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)
30625 * to U+005A (`Z`).
30626 *
30627 * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)
30628 * to U+007A (`z`).
30629 *
30630 * @param code
30631 * Code.
30632 * @returns
30633 * Whether it matches.
30634 */
30635 const asciiAlpha = regexCheck(/[A-Za-z]/)
30636
30637 /**
30638 * Check whether the character code represents an ASCII alphanumeric (`a`
30639 * through `z`, case insensitive, or `0` through `9`).
30640 *
30641 * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha
30642 * (see `asciiAlpha`).
30643 *
30644 * @param code
30645 * Code.
30646 * @returns
30647 * Whether it matches.
30648 */
30649 const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/)
30650
30651 /**
30652 * Check whether the character code represents an ASCII atext.
30653 *
30654 * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in
30655 * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),
30656 * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F
30657 * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E
30658 * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE
30659 * (`{`) to U+007E TILDE (`~`).
30660 *
30661 * See:
30662 * **\[RFC5322]**:
30663 * [Internet Message Format](https://tools.ietf.org/html/rfc5322).
30664 * P. Resnick.
30665 * IETF.
30666 *
30667 * @param code
30668 * Code.
30669 * @returns
30670 * Whether it matches.
30671 */
30672 const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/)
30673
30674 /**
30675 * Check whether a character code is an ASCII control character.
30676 *
30677 * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)
30678 * to U+001F (US), or U+007F (DEL).
30679 *
30680 * @param {Code} code
30681 * Code.
30682 * @returns {boolean}
30683 * Whether it matches.
30684 */
30685 function asciiControl(code) {
30686 return (
30687 // Special whitespace codes (which have negative values), C0 and Control
30688 // character DEL
30689 code !== null && (code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.del)
30690 )
30691 }
30692
30693 /**
30694 * Check whether the character code represents an ASCII digit (`0` through `9`).
30695 *
30696 * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to
30697 * U+0039 (`9`).
30698 *
30699 * @param code
30700 * Code.
30701 * @returns
30702 * Whether it matches.
30703 */
30704 const asciiDigit = regexCheck(/\d/)
30705
30706 /**
30707 * Check whether the character code represents an ASCII hex digit (`a` through
30708 * `f`, case insensitive, or `0` through `9`).
30709 *
30710 * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex
30711 * digit, or an ASCII lower hex digit.
30712 *
30713 * An **ASCII upper hex digit** is a character in the inclusive range U+0041
30714 * (`A`) to U+0046 (`F`).
30715 *
30716 * An **ASCII lower hex digit** is a character in the inclusive range U+0061
30717 * (`a`) to U+0066 (`f`).
30718 *
30719 * @param code
30720 * Code.
30721 * @returns
30722 * Whether it matches.
30723 */
30724 const asciiHexDigit = regexCheck(/[\dA-Fa-f]/)
30725
30726 /**
30727 * Check whether the character code represents ASCII punctuation.
30728 *
30729 * An **ASCII punctuation** is a character in the inclusive ranges U+0021
30730 * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT
30731 * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT
30732 * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).
30733 *
30734 * @param code
30735 * Code.
30736 * @returns
30737 * Whether it matches.
30738 */
30739 const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)
30740
30741 /**
30742 * Check whether a character code is a markdown line ending.
30743 *
30744 * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN
30745 * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).
30746 *
30747 * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE
30748 * RETURN (CR) are replaced by these virtual characters depending on whether
30749 * they occurred together.
30750 *
30751 * @param {Code} code
30752 * Code.
30753 * @returns {boolean}
30754 * Whether it matches.
30755 */
30756 function markdownLineEnding(code) {
30757 return code !== null && code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab
30758 }
30759
30760 /**
30761 * Check whether a character code is a markdown line ending (see
30762 * `markdownLineEnding`) or markdown space (see `markdownSpace`).
30763 *
30764 * @param {Code} code
30765 * Code.
30766 * @returns {boolean}
30767 * Whether it matches.
30768 */
30769 function markdownLineEndingOrSpace(code) {
30770 return code !== null && (code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.nul || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space)
30771 }
30772
30773 /**
30774 * Check whether a character code is a markdown space.
30775 *
30776 * A **markdown space** is the concrete character U+0020 SPACE (SP) and the
30777 * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).
30778 *
30779 * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is
30780 * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL
30781 * SPACE (VS) characters, depending on the column at which the tab occurred.
30782 *
30783 * @param {Code} code
30784 * Code.
30785 * @returns {boolean}
30786 * Whether it matches.
30787 */
30788 function markdownSpace(code) {
30789 return (
30790 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab ||
30791 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace ||
30792 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space
30793 )
30794 }
30795
30796 // Size note: removing ASCII from the regex and using `asciiPunctuation` here
30797 // In fact adds to the bundle size.
30798 /**
30799 * Check whether the character code represents Unicode punctuation.
30800 *
30801 * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,
30802 * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`
30803 * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`
30804 * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII
30805 * punctuation (see `asciiPunctuation`).
30806 *
30807 * See:
30808 * **\[UNICODE]**:
30809 * [The Unicode Standard](https://www.unicode.org/versions/).
30810 * Unicode Consortium.
30811 *
30812 * @param code
30813 * Code.
30814 * @returns
30815 * Whether it matches.
30816 */
30817 const unicodePunctuation = regexCheck(_lib_unicode_punctuation_regex_js__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuationRegex)
30818
30819 /**
30820 * Check whether the character code represents Unicode whitespace.
30821 *
30822 * Note that this does handle micromark specific markdown whitespace characters.
30823 * See `markdownLineEndingOrSpace` to check that.
30824 *
30825 * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,
30826 * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),
30827 * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**).
30828 *
30829 * See:
30830 * **\[UNICODE]**:
30831 * [The Unicode Standard](https://www.unicode.org/versions/).
30832 * Unicode Consortium.
30833 *
30834 * @param code
30835 * Code.
30836 * @returns
30837 * Whether it matches.
30838 */
30839 const unicodeWhitespace = regexCheck(/\s/)
30840
30841 /**
30842 * Create a code check from a regex.
30843 *
30844 * @param {RegExp} regex
30845 * @returns {(code: Code) => boolean}
30846 */
30847 function regexCheck(regex) {
30848 return check
30849
30850 /**
30851 * Check whether a code matches the bound regex.
30852 *
30853 * @param {Code} code
30854 * Character code.
30855 * @returns {boolean}
30856 * Whether the character code matches the bound regex.
30857 */
30858 function check(code) {
30859 return code !== null && regex.test(String.fromCharCode(code))
30860 }
30861 }
30862
30863
30864 /***/ }),
30865
30866 /***/ "../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js":
30867 /*!*************************************************************************************!*\
30868 !*** ../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js ***!
30869 \*************************************************************************************/
30870 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30871
30872 "use strict";
30873 __webpack_require__.r(__webpack_exports__);
30874 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30875 /* harmony export */ unicodePunctuationRegex: () => (/* binding */ unicodePunctuationRegex)
30876 /* harmony export */ });
30877 // This module is generated by `script/`.
30878 //
30879 // CommonMark handles attention (emphasis, strong) markers based on what comes
30880 // before or after them.
30881 // One such difference is if those characters are Unicode punctuation.
30882 // This script is generated from the Unicode data.
30883
30884 /**
30885 * Regular expression that matches a unicode punctuation character.
30886 */
30887 const unicodePunctuationRegex =
30888 /[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/
30889
30890
30891 /***/ }),
30892
30893 /***/ "../node_modules/micromark-util-chunked/dev/index.js":
30894 /*!***********************************************************!*\
30895 !*** ../node_modules/micromark-util-chunked/dev/index.js ***!
30896 \***********************************************************/
30897 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30898
30899 "use strict";
30900 __webpack_require__.r(__webpack_exports__);
30901 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30902 /* harmony export */ push: () => (/* binding */ push),
30903 /* harmony export */ splice: () => (/* binding */ splice)
30904 /* harmony export */ });
30905 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
30906
30907
30908 /**
30909 * Like `Array#splice`, but smarter for giant arrays.
30910 *
30911 * `Array#splice` takes all items to be inserted as individual argument which
30912 * causes a stack overflow in V8 when trying to insert 100k items for instance.
30913 *
30914 * Otherwise, this does not return the removed items, and takes `items` as an
30915 * array instead of rest parameters.
30916 *
30917 * @template {unknown} T
30918 * Item type.
30919 * @param {Array<T>} list
30920 * List to operate on.
30921 * @param {number} start
30922 * Index to remove/insert at (can be negative).
30923 * @param {number} remove
30924 * Number of items to remove.
30925 * @param {Array<T>} items
30926 * Items to inject into `list`.
30927 * @returns {void}
30928 * Nothing.
30929 */
30930 function splice(list, start, remove, items) {
30931 const end = list.length
30932 let chunkStart = 0
30933 /** @type {Array<unknown>} */
30934 let parameters
30935
30936 // Make start between zero and `end` (included).
30937 if (start < 0) {
30938 start = -start > end ? 0 : end + start
30939 } else {
30940 start = start > end ? end : start
30941 }
30942
30943 remove = remove > 0 ? remove : 0
30944
30945 // No need to chunk the items if there’s only a couple (10k) items.
30946 if (items.length < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize) {
30947 parameters = Array.from(items)
30948 parameters.unshift(start, remove)
30949 // @ts-expect-error Hush, it’s fine.
30950 list.splice(...parameters)
30951 } else {
30952 // Delete `remove` items starting from `start`
30953 if (remove) list.splice(start, remove)
30954
30955 // Insert the items in chunks to not cause stack overflows.
30956 while (chunkStart < items.length) {
30957 parameters = items.slice(
30958 chunkStart,
30959 chunkStart + micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30960 )
30961 parameters.unshift(start, 0)
30962 // @ts-expect-error Hush, it’s fine.
30963 list.splice(...parameters)
30964
30965 chunkStart += micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30966 start += micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30967 }
30968 }
30969 }
30970
30971 /**
30972 * Append `items` (an array) at the end of `list` (another array).
30973 * When `list` was empty, returns `items` instead.
30974 *
30975 * This prevents a potentially expensive operation when `list` is empty,
30976 * and adds items in batches to prevent V8 from hanging.
30977 *
30978 * @template {unknown} T
30979 * Item type.
30980 * @param {Array<T>} list
30981 * List to operate on.
30982 * @param {Array<T>} items
30983 * Items to add to `list`.
30984 * @returns {Array<T>}
30985 * Either `list` or `items`.
30986 */
30987 function push(list, items) {
30988 if (list.length > 0) {
30989 splice(list, list.length, 0, items)
30990 return list
30991 }
30992
30993 return items
30994 }
30995
30996
30997 /***/ }),
30998
30999 /***/ "../node_modules/micromark-util-classify-character/dev/index.js":
31000 /*!**********************************************************************!*\
31001 !*** ../node_modules/micromark-util-classify-character/dev/index.js ***!
31002 \**********************************************************************/
31003 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31004
31005 "use strict";
31006 __webpack_require__.r(__webpack_exports__);
31007 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31008 /* harmony export */ classifyCharacter: () => (/* binding */ classifyCharacter)
31009 /* harmony export */ });
31010 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
31011 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
31012 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
31013 /**
31014 * @typedef {import('micromark-util-types').Code} Code
31015 */
31016
31017
31018
31019
31020
31021 /**
31022 * Classify whether a code represents whitespace, punctuation, or something
31023 * else.
31024 *
31025 * Used for attention (emphasis, strong), whose sequences can open or close
31026 * based on the class of surrounding characters.
31027 *
31028 * > 👉 **Note**: eof (`null`) is seen as whitespace.
31029 *
31030 * @param {Code} code
31031 * Code.
31032 * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}
31033 * Group.
31034 */
31035 function classifyCharacter(code) {
31036 if (
31037 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
31038 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) ||
31039 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code)
31040 ) {
31041 return micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupWhitespace
31042 }
31043
31044 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuation)(code)) {
31045 return micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupPunctuation
31046 }
31047 }
31048
31049
31050 /***/ }),
31051
31052 /***/ "../node_modules/micromark-util-combine-extensions/index.js":
31053 /*!******************************************************************!*\
31054 !*** ../node_modules/micromark-util-combine-extensions/index.js ***!
31055 \******************************************************************/
31056 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31057
31058 "use strict";
31059 __webpack_require__.r(__webpack_exports__);
31060 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31061 /* harmony export */ combineExtensions: () => (/* binding */ combineExtensions),
31062 /* harmony export */ combineHtmlExtensions: () => (/* binding */ combineHtmlExtensions)
31063 /* harmony export */ });
31064 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
31065 /**
31066 * @typedef {import('micromark-util-types').Extension} Extension
31067 * @typedef {import('micromark-util-types').Handles} Handles
31068 * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension
31069 * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension
31070 */
31071
31072
31073
31074 const hasOwnProperty = {}.hasOwnProperty
31075
31076 /**
31077 * Combine multiple syntax extensions into one.
31078 *
31079 * @param {Array<Extension>} extensions
31080 * List of syntax extensions.
31081 * @returns {NormalizedExtension}
31082 * A single combined extension.
31083 */
31084 function combineExtensions(extensions) {
31085 /** @type {NormalizedExtension} */
31086 const all = {}
31087 let index = -1
31088
31089 while (++index < extensions.length) {
31090 syntaxExtension(all, extensions[index])
31091 }
31092
31093 return all
31094 }
31095
31096 /**
31097 * Merge `extension` into `all`.
31098 *
31099 * @param {NormalizedExtension} all
31100 * Extension to merge into.
31101 * @param {Extension} extension
31102 * Extension to merge.
31103 * @returns {void}
31104 */
31105 function syntaxExtension(all, extension) {
31106 /** @type {keyof Extension} */
31107 let hook
31108
31109 for (hook in extension) {
31110 const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined
31111 /** @type {Record<string, unknown>} */
31112 const left = maybe || (all[hook] = {})
31113 /** @type {Record<string, unknown> | undefined} */
31114 const right = extension[hook]
31115 /** @type {string} */
31116 let code
31117
31118 if (right) {
31119 for (code in right) {
31120 if (!hasOwnProperty.call(left, code)) left[code] = []
31121 const value = right[code]
31122 constructs(
31123 // @ts-expect-error Looks like a list.
31124 left[code],
31125 Array.isArray(value) ? value : value ? [value] : []
31126 )
31127 }
31128 }
31129 }
31130 }
31131
31132 /**
31133 * Merge `list` into `existing` (both lists of constructs).
31134 * Mutates `existing`.
31135 *
31136 * @param {Array<unknown>} existing
31137 * @param {Array<unknown>} list
31138 * @returns {void}
31139 */
31140 function constructs(existing, list) {
31141 let index = -1
31142 /** @type {Array<unknown>} */
31143 const before = []
31144
31145 while (++index < list.length) {
31146 // @ts-expect-error Looks like an object.
31147 ;(list[index].add === 'after' ? existing : before).push(list[index])
31148 }
31149
31150 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__.splice)(existing, 0, 0, before)
31151 }
31152
31153 /**
31154 * Combine multiple HTML extensions into one.
31155 *
31156 * @param {Array<HtmlExtension>} htmlExtensions
31157 * List of HTML extensions.
31158 * @returns {HtmlExtension}
31159 * A single combined HTML extension.
31160 */
31161 function combineHtmlExtensions(htmlExtensions) {
31162 /** @type {HtmlExtension} */
31163 const handlers = {}
31164 let index = -1
31165
31166 while (++index < htmlExtensions.length) {
31167 htmlExtension(handlers, htmlExtensions[index])
31168 }
31169
31170 return handlers
31171 }
31172
31173 /**
31174 * Merge `extension` into `all`.
31175 *
31176 * @param {HtmlExtension} all
31177 * Extension to merge into.
31178 * @param {HtmlExtension} extension
31179 * Extension to merge.
31180 * @returns {void}
31181 */
31182 function htmlExtension(all, extension) {
31183 /** @type {keyof HtmlExtension} */
31184 let hook
31185
31186 for (hook in extension) {
31187 const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined
31188 const left = maybe || (all[hook] = {})
31189 const right = extension[hook]
31190 /** @type {keyof Handles} */
31191 let type
31192
31193 if (right) {
31194 for (type in right) {
31195 // @ts-expect-error assume document vs regular handler are managed correctly.
31196 left[type] = right[type]
31197 }
31198 }
31199 }
31200 }
31201
31202
31203 /***/ }),
31204
31205 /***/ "../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js":
31206 /*!**************************************************************************************!*\
31207 !*** ../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js ***!
31208 \**************************************************************************************/
31209 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31210
31211 "use strict";
31212 __webpack_require__.r(__webpack_exports__);
31213 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31214 /* harmony export */ decodeNumericCharacterReference: () => (/* binding */ decodeNumericCharacterReference)
31215 /* harmony export */ });
31216 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
31217 /* harmony import */ var micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/values.js */ "../node_modules/micromark-util-symbol/values.js");
31218
31219
31220
31221 /**
31222 * Turn the number (in string form as either hexa- or plain decimal) coming from
31223 * a numeric character reference into a character.
31224 *
31225 * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes
31226 * non-characters and control characters safe.
31227 *
31228 * @param {string} value
31229 * Value to decode.
31230 * @param {number} base
31231 * Numeric base.
31232 * @returns {string}
31233 * Character.
31234 */
31235 function decodeNumericCharacterReference(value, base) {
31236 const code = Number.parseInt(value, base)
31237
31238 if (
31239 // C0 except for HT, LF, FF, CR, space.
31240 code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ht ||
31241 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.vt ||
31242 (code > micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.cr && code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space) ||
31243 // Control character (DEL) of C0, and C1 controls.
31244 (code > micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.tilde && code < 160) ||
31245 // Lone high surrogates and low surrogates.
31246 (code > 55295 && code < 57344) ||
31247 // Noncharacters.
31248 (code > 64975 && code < 65008) ||
31249 /* eslint-disable no-bitwise */
31250 (code & 65535) === 65535 ||
31251 (code & 65535) === 65534 ||
31252 /* eslint-enable no-bitwise */
31253 // Out of range
31254 code > 1114111
31255 ) {
31256 return micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_1__.values.replacementCharacter
31257 }
31258
31259 return String.fromCharCode(code)
31260 }
31261
31262
31263 /***/ }),
31264
31265 /***/ "../node_modules/micromark-util-decode-string/dev/index.js":
31266 /*!*****************************************************************!*\
31267 !*** ../node_modules/micromark-util-decode-string/dev/index.js ***!
31268 \*****************************************************************/
31269 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31270
31271 "use strict";
31272 __webpack_require__.r(__webpack_exports__);
31273 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31274 /* harmony export */ decodeString: () => (/* binding */ decodeString)
31275 /* harmony export */ });
31276 /* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! decode-named-character-reference */ "../node_modules/decode-named-character-reference/index.dom.js");
31277 /* harmony import */ var micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-decode-numeric-character-reference */ "../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js");
31278 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
31279 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
31280
31281
31282
31283
31284
31285 const characterEscapeOrReference =
31286 /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi
31287
31288 /**
31289 * Decode markdown strings (which occur in places such as fenced code info
31290 * strings, destinations, labels, and titles).
31291 *
31292 * The “string” content type allows character escapes and -references.
31293 * This decodes those.
31294 *
31295 * @param {string} value
31296 * Value to decode.
31297 * @returns {string}
31298 * Decoded value.
31299 */
31300 function decodeString(value) {
31301 return value.replace(characterEscapeOrReference, decode)
31302 }
31303
31304 /**
31305 * @param {string} $0
31306 * @param {string} $1
31307 * @param {string} $2
31308 * @returns {string}
31309 */
31310 function decode($0, $1, $2) {
31311 if ($1) {
31312 // Escape.
31313 return $1
31314 }
31315
31316 // Reference.
31317 const head = $2.charCodeAt(0)
31318
31319 if (head === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign) {
31320 const head = $2.charCodeAt(1)
31321 const hex = head === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lowercaseX || head === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.uppercaseX
31322 return (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__.decodeNumericCharacterReference)(
31323 $2.slice(hex ? 2 : 1),
31324 hex ? micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseHexadecimal : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseDecimal
31325 )
31326 }
31327
31328 return (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_3__.decodeNamedCharacterReference)($2) || $0
31329 }
31330
31331
31332 /***/ }),
31333
31334 /***/ "../node_modules/micromark-util-encode/index.js":
31335 /*!******************************************************!*\
31336 !*** ../node_modules/micromark-util-encode/index.js ***!
31337 \******************************************************/
31338 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31339
31340 "use strict";
31341 __webpack_require__.r(__webpack_exports__);
31342 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31343 /* harmony export */ encode: () => (/* binding */ encode)
31344 /* harmony export */ });
31345 const characterReferences = {'"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}
31346
31347 /**
31348 * Encode only the dangerous HTML characters.
31349 *
31350 * This ensures that certain characters which have special meaning in HTML are
31351 * dealt with.
31352 * Technically, we can skip `>` and `"` in many cases, but CM includes them.
31353 *
31354 * @param {string} value
31355 * Value to encode.
31356 * @returns {string}
31357 * Encoded value.
31358 */
31359 function encode(value) {
31360 return value.replace(/["&<>]/g, replace)
31361
31362 /**
31363 * @param {string} value
31364 * @returns {string}
31365 */
31366 function replace(value) {
31367 // @ts-expect-error Hush, it’s fine.
31368 return '&' + characterReferences[value] + ';'
31369 }
31370 }
31371
31372
31373 /***/ }),
31374
31375 /***/ "../node_modules/micromark-util-html-tag-name/index.js":
31376 /*!*************************************************************!*\
31377 !*** ../node_modules/micromark-util-html-tag-name/index.js ***!
31378 \*************************************************************/
31379 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31380
31381 "use strict";
31382 __webpack_require__.r(__webpack_exports__);
31383 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31384 /* harmony export */ htmlBlockNames: () => (/* binding */ htmlBlockNames),
31385 /* harmony export */ htmlRawNames: () => (/* binding */ htmlRawNames)
31386 /* harmony export */ });
31387 /**
31388 * List of lowercase HTML “block” tag names.
31389 *
31390 * The list, when parsing HTML (flow), results in more relaxed rules (condition
31391 * 6).
31392 * Because they are known blocks, the HTML-like syntax doesn’t have to be
31393 * strictly parsed.
31394 * For tag names not in this list, a more strict algorithm (condition 7) is used
31395 * to detect whether the HTML-like syntax is seen as HTML (flow) or not.
31396 *
31397 * This is copied from:
31398 * <https://spec.commonmark.org/0.30/#html-blocks>.
31399 *
31400 * > 👉 **Note**: `search` was added in `[email protected]`.
31401 */
31402 const htmlBlockNames = [
31403 'address',
31404 'article',
31405 'aside',
31406 'base',
31407 'basefont',
31408 'blockquote',
31409 'body',
31410 'caption',
31411 'center',
31412 'col',
31413 'colgroup',
31414 'dd',
31415 'details',
31416 'dialog',
31417 'dir',
31418 'div',
31419 'dl',
31420 'dt',
31421 'fieldset',
31422 'figcaption',
31423 'figure',
31424 'footer',
31425 'form',
31426 'frame',
31427 'frameset',
31428 'h1',
31429 'h2',
31430 'h3',
31431 'h4',
31432 'h5',
31433 'h6',
31434 'head',
31435 'header',
31436 'hr',
31437 'html',
31438 'iframe',
31439 'legend',
31440 'li',
31441 'link',
31442 'main',
31443 'menu',
31444 'menuitem',
31445 'nav',
31446 'noframes',
31447 'ol',
31448 'optgroup',
31449 'option',
31450 'p',
31451 'param',
31452 'search',
31453 'section',
31454 'summary',
31455 'table',
31456 'tbody',
31457 'td',
31458 'tfoot',
31459 'th',
31460 'thead',
31461 'title',
31462 'tr',
31463 'track',
31464 'ul'
31465 ]
31466
31467 /**
31468 * List of lowercase HTML “raw” tag names.
31469 *
31470 * The list, when parsing HTML (flow), results in HTML that can include lines
31471 * without exiting, until a closing tag also in this list is found (condition
31472 * 1).
31473 *
31474 * This module is copied from:
31475 * <https://spec.commonmark.org/0.30/#html-blocks>.
31476 *
31477 * > 👉 **Note**: `textarea` was added in `[email protected]`.
31478 */
31479 const htmlRawNames = ['pre', 'script', 'style', 'textarea']
31480
31481
31482 /***/ }),
31483
31484 /***/ "../node_modules/micromark-util-normalize-identifier/dev/index.js":
31485 /*!************************************************************************!*\
31486 !*** ../node_modules/micromark-util-normalize-identifier/dev/index.js ***!
31487 \************************************************************************/
31488 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31489
31490 "use strict";
31491 __webpack_require__.r(__webpack_exports__);
31492 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31493 /* harmony export */ normalizeIdentifier: () => (/* binding */ normalizeIdentifier)
31494 /* harmony export */ });
31495 /* harmony import */ var micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/values.js */ "../node_modules/micromark-util-symbol/values.js");
31496
31497
31498 /**
31499 * Normalize an identifier (as found in references, definitions).
31500 *
31501 * Collapses markdown whitespace, trim, and then lower- and uppercase.
31502 *
31503 * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their
31504 * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different
31505 * uppercase character (U+0398 (`Θ`)).
31506 * So, to get a canonical form, we perform both lower- and uppercase.
31507 *
31508 * Using uppercase last makes sure keys will never interact with default
31509 * prototypal values (such as `constructor`): nothing in the prototype of
31510 * `Object` is uppercase.
31511 *
31512 * @param {string} value
31513 * Identifier to normalize.
31514 * @returns {string}
31515 * Normalized identifier.
31516 */
31517 function normalizeIdentifier(value) {
31518 return (
31519 value
31520 // Collapse markdown whitespace.
31521 .replace(/[\t\n\r ]+/g, micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_0__.values.space)
31522 // Trim.
31523 .replace(/^ | $/g, '')
31524 // Some characters are considered “uppercase”, but if their lowercase
31525 // counterpart is uppercased will result in a different uppercase
31526 // character.
31527 // Hence, to get that form, we perform both lower- and uppercase.
31528 // Upper case makes sure keys will not interact with default prototypal
31529 // methods: no method is uppercase.
31530 .toLowerCase()
31531 .toUpperCase()
31532 )
31533 }
31534
31535
31536 /***/ }),
31537
31538 /***/ "../node_modules/micromark-util-resolve-all/index.js":
31539 /*!***********************************************************!*\
31540 !*** ../node_modules/micromark-util-resolve-all/index.js ***!
31541 \***********************************************************/
31542 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31543
31544 "use strict";
31545 __webpack_require__.r(__webpack_exports__);
31546 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31547 /* harmony export */ resolveAll: () => (/* binding */ resolveAll)
31548 /* harmony export */ });
31549 /**
31550 * @typedef {import('micromark-util-types').Event} Event
31551 * @typedef {import('micromark-util-types').Resolver} Resolver
31552 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
31553 */
31554
31555 /**
31556 * Call all `resolveAll`s.
31557 *
31558 * @param {Array<{resolveAll?: Resolver | undefined}>} constructs
31559 * List of constructs, optionally with `resolveAll`s.
31560 * @param {Array<Event>} events
31561 * List of events.
31562 * @param {TokenizeContext} context
31563 * Context used by `tokenize`.
31564 * @returns {Array<Event>}
31565 * Changed events.
31566 */
31567 function resolveAll(constructs, events, context) {
31568 /** @type {Array<Resolver>} */
31569 const called = []
31570 let index = -1
31571
31572 while (++index < constructs.length) {
31573 const resolve = constructs[index].resolveAll
31574
31575 if (resolve && !called.includes(resolve)) {
31576 events = resolve(events, context)
31577 called.push(resolve)
31578 }
31579 }
31580
31581 return events
31582 }
31583
31584
31585 /***/ }),
31586
31587 /***/ "../node_modules/micromark-util-sanitize-uri/dev/index.js":
31588 /*!****************************************************************!*\
31589 !*** ../node_modules/micromark-util-sanitize-uri/dev/index.js ***!
31590 \****************************************************************/
31591 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31592
31593 "use strict";
31594 __webpack_require__.r(__webpack_exports__);
31595 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31596 /* harmony export */ normalizeUri: () => (/* binding */ normalizeUri),
31597 /* harmony export */ sanitizeUri: () => (/* binding */ sanitizeUri)
31598 /* harmony export */ });
31599 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
31600 /* harmony import */ var micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-encode */ "../node_modules/micromark-util-encode/index.js");
31601 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
31602 /* harmony import */ var micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/values.js */ "../node_modules/micromark-util-symbol/values.js");
31603
31604
31605
31606
31607
31608 /**
31609 * Make a value safe for injection as a URL.
31610 *
31611 * This encodes unsafe characters with percent-encoding and skips already
31612 * encoded sequences (see `normalizeUri`).
31613 * Further unsafe characters are encoded as character references (see
31614 * `micromark-util-encode`).
31615 *
31616 * A regex of allowed protocols can be given, in which case the URL is
31617 * sanitized.
31618 * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or
31619 * `/^https?$/i` for `img[src]` (this is what `github.com` allows).
31620 * If the URL includes an unknown protocol (one not matched by `protocol`, such
31621 * as a dangerous example, `javascript:`), the value is ignored.
31622 *
31623 * @param {string | undefined} url
31624 * URI to sanitize.
31625 * @param {RegExp | null | undefined} [protocol]
31626 * Allowed protocols.
31627 * @returns {string}
31628 * Sanitized URI.
31629 */
31630 function sanitizeUri(url, protocol) {
31631 const value = (0,micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__.encode)(normalizeUri(url || ''))
31632
31633 if (!protocol) {
31634 return value
31635 }
31636
31637 const colon = value.indexOf(':')
31638 const questionMark = value.indexOf('?')
31639 const numberSign = value.indexOf('#')
31640 const slash = value.indexOf('/')
31641
31642 if (
31643 // If there is no protocol, it’s relative.
31644 colon < 0 ||
31645 // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.
31646 (slash > -1 && colon > slash) ||
31647 (questionMark > -1 && colon > questionMark) ||
31648 (numberSign > -1 && colon > numberSign) ||
31649 // It is a protocol, it should be allowed.
31650 protocol.test(value.slice(0, colon))
31651 ) {
31652 return value
31653 }
31654
31655 return ''
31656 }
31657
31658 /**
31659 * Normalize a URL.
31660 *
31661 * Encode unsafe characters with percent-encoding, skipping already encoded
31662 * sequences.
31663 *
31664 * @param {string} value
31665 * URI to normalize.
31666 * @returns {string}
31667 * Normalized URI.
31668 */
31669 function normalizeUri(value) {
31670 /** @type {Array<string>} */
31671 const result = []
31672 let index = -1
31673 let start = 0
31674 let skip = 0
31675
31676 while (++index < value.length) {
31677 const code = value.charCodeAt(index)
31678 /** @type {string} */
31679 let replace = ''
31680
31681 // A correct percent encoded value.
31682 if (
31683 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.percentSign &&
31684 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 1)) &&
31685 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 2))
31686 ) {
31687 skip = 2
31688 }
31689 // ASCII.
31690 else if (code < 128) {
31691 if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {
31692 replace = String.fromCharCode(code)
31693 }
31694 }
31695 // Astral.
31696 else if (code > 55295 && code < 57344) {
31697 const next = value.charCodeAt(index + 1)
31698
31699 // A correct surrogate pair.
31700 if (code < 56320 && next > 56319 && next < 57344) {
31701 replace = String.fromCharCode(code, next)
31702 skip = 1
31703 }
31704 // Lone surrogate.
31705 else {
31706 replace = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_3__.values.replacementCharacter
31707 }
31708 }
31709 // Unicode.
31710 else {
31711 replace = String.fromCharCode(code)
31712 }
31713
31714 if (replace) {
31715 result.push(value.slice(start, index), encodeURIComponent(replace))
31716 start = index + skip + 1
31717 replace = ''
31718 }
31719
31720 if (skip) {
31721 index += skip
31722 skip = 0
31723 }
31724 }
31725
31726 return result.join('') + value.slice(start)
31727 }
31728
31729
31730 /***/ }),
31731
31732 /***/ "../node_modules/micromark-util-subtokenize/dev/index.js":
31733 /*!***************************************************************!*\
31734 !*** ../node_modules/micromark-util-subtokenize/dev/index.js ***!
31735 \***************************************************************/
31736 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31737
31738 "use strict";
31739 __webpack_require__.r(__webpack_exports__);
31740 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31741 /* harmony export */ subtokenize: () => (/* binding */ subtokenize)
31742 /* harmony export */ });
31743 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
31744 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
31745 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
31746 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
31747 /**
31748 * @typedef {import('micromark-util-types').Chunk} Chunk
31749 * @typedef {import('micromark-util-types').Event} Event
31750 * @typedef {import('micromark-util-types').Token} Token
31751 */
31752
31753
31754
31755
31756
31757
31758 /**
31759 * Tokenize subcontent.
31760 *
31761 * @param {Array<Event>} events
31762 * List of events.
31763 * @returns {boolean}
31764 * Whether subtokens were found.
31765 */
31766 function subtokenize(events) {
31767 /** @type {Record<string, number>} */
31768 const jumps = {}
31769 let index = -1
31770 /** @type {Event} */
31771 let event
31772 /** @type {number | undefined} */
31773 let lineIndex
31774 /** @type {number} */
31775 let otherIndex
31776 /** @type {Event} */
31777 let otherEvent
31778 /** @type {Array<Event>} */
31779 let parameters
31780 /** @type {Array<Event>} */
31781 let subevents
31782 /** @type {boolean | undefined} */
31783 let more
31784
31785 while (++index < events.length) {
31786 while (index in jumps) {
31787 index = jumps[index]
31788 }
31789
31790 event = events[index]
31791
31792 // Add a hook for the GFM tasklist extension, which needs to know if text
31793 // is in the first content of a list item.
31794 if (
31795 index &&
31796 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow &&
31797 events[index - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix
31798 ) {
31799 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(event[1]._tokenizer, 'expected `_tokenizer` on subtokens')
31800 subevents = event[1]._tokenizer.events
31801 otherIndex = 0
31802
31803 if (
31804 otherIndex < subevents.length &&
31805 subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31806 ) {
31807 otherIndex += 2
31808 }
31809
31810 if (
31811 otherIndex < subevents.length &&
31812 subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content
31813 ) {
31814 while (++otherIndex < subevents.length) {
31815 if (subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
31816 break
31817 }
31818
31819 if (subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkText) {
31820 subevents[otherIndex][1]._isInFirstContentOfListItem = true
31821 otherIndex++
31822 }
31823 }
31824 }
31825 }
31826
31827 // Enter.
31828 if (event[0] === 'enter') {
31829 if (event[1].contentType) {
31830 Object.assign(jumps, subcontent(events, index))
31831 index = jumps[index]
31832 more = true
31833 }
31834 }
31835 // Exit.
31836 else if (event[1]._container) {
31837 otherIndex = index
31838 lineIndex = undefined
31839
31840 while (otherIndex--) {
31841 otherEvent = events[otherIndex]
31842
31843 if (
31844 otherEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
31845 otherEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31846 ) {
31847 if (otherEvent[0] === 'enter') {
31848 if (lineIndex) {
31849 events[lineIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31850 }
31851
31852 otherEvent[1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
31853 lineIndex = otherIndex
31854 }
31855 } else {
31856 break
31857 }
31858 }
31859
31860 if (lineIndex) {
31861 // Fix position.
31862 event[1].end = Object.assign({}, events[lineIndex][1].start)
31863
31864 // Switch container exit w/ line endings.
31865 parameters = events.slice(lineIndex, index)
31866 parameters.unshift(event)
31867 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, lineIndex, index - lineIndex + 1, parameters)
31868 }
31869 }
31870 }
31871
31872 return !more
31873 }
31874
31875 /**
31876 * Tokenize embedded tokens.
31877 *
31878 * @param {Array<Event>} events
31879 * @param {number} eventIndex
31880 * @returns {Record<string, number>}
31881 */
31882 function subcontent(events, eventIndex) {
31883 const token = events[eventIndex][1]
31884 const context = events[eventIndex][2]
31885 let startPosition = eventIndex - 1
31886 /** @type {Array<number>} */
31887 const startPositions = []
31888 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(token.contentType, 'expected `contentType` on subtokens')
31889 const tokenizer =
31890 token._tokenizer || context.parser[token.contentType](token.start)
31891 const childEvents = tokenizer.events
31892 /** @type {Array<[number, number]>} */
31893 const jumps = []
31894 /** @type {Record<string, number>} */
31895 const gaps = {}
31896 /** @type {Array<Chunk>} */
31897 let stream
31898 /** @type {Token | undefined} */
31899 let previous
31900 let index = -1
31901 /** @type {Token | undefined} */
31902 let current = token
31903 let adjust = 0
31904 let start = 0
31905 const breaks = [start]
31906
31907 // Loop forward through the linked tokens to pass them in order to the
31908 // subtokenizer.
31909 while (current) {
31910 // Find the position of the event for this token.
31911 while (events[++startPosition][1] !== current) {
31912 // Empty.
31913 }
31914
31915 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
31916 !previous || current.previous === previous,
31917 'expected previous to match'
31918 )
31919 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(!previous || previous.next === current, 'expected next to match')
31920
31921 startPositions.push(startPosition)
31922
31923 if (!current._tokenizer) {
31924 stream = context.sliceStream(current)
31925
31926 if (!current.next) {
31927 stream.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof)
31928 }
31929
31930 if (previous) {
31931 tokenizer.defineSkip(current.start)
31932 }
31933
31934 if (current._isInFirstContentOfListItem) {
31935 tokenizer._gfmTasklistFirstContentOfListItem = true
31936 }
31937
31938 tokenizer.write(stream)
31939
31940 if (current._isInFirstContentOfListItem) {
31941 tokenizer._gfmTasklistFirstContentOfListItem = undefined
31942 }
31943 }
31944
31945 // Unravel the next token.
31946 previous = current
31947 current = current.next
31948 }
31949
31950 // Now, loop back through all events (and linked tokens), to figure out which
31951 // parts belong where.
31952 current = token
31953
31954 while (++index < childEvents.length) {
31955 if (
31956 // Find a void token that includes a break.
31957 childEvents[index][0] === 'exit' &&
31958 childEvents[index - 1][0] === 'enter' &&
31959 childEvents[index][1].type === childEvents[index - 1][1].type &&
31960 childEvents[index][1].start.line !== childEvents[index][1].end.line
31961 ) {
31962 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(current, 'expected a current token')
31963 start = index + 1
31964 breaks.push(start)
31965 // Help GC.
31966 current._tokenizer = undefined
31967 current.previous = undefined
31968 current = current.next
31969 }
31970 }
31971
31972 // Help GC.
31973 tokenizer.events = []
31974
31975 // If there’s one more token (which is the cases for lines that end in an
31976 // EOF), that’s perfect: the last point we found starts it.
31977 // If there isn’t then make sure any remaining content is added to it.
31978 if (current) {
31979 // Help GC.
31980 current._tokenizer = undefined
31981 current.previous = undefined
31982 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(!current.next, 'expected no next token')
31983 } else {
31984 breaks.pop()
31985 }
31986
31987 // Now splice the events from the subtokenizer into the current events,
31988 // moving back to front so that splice indices aren’t affected.
31989 index = breaks.length
31990
31991 while (index--) {
31992 const slice = childEvents.slice(breaks[index], breaks[index + 1])
31993 const start = startPositions.pop()
31994 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(start !== undefined, 'expected a start position when splicing')
31995 jumps.unshift([start, start + slice.length - 1])
31996 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, start, 2, slice)
31997 }
31998
31999 index = -1
32000
32001 while (++index < jumps.length) {
32002 gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]
32003 adjust += jumps[index][1] - jumps[index][0] - 1
32004 }
32005
32006 return gaps
32007 }
32008
32009
32010 /***/ }),
32011
32012 /***/ "../node_modules/micromark-util-symbol/codes.js":
32013 /*!******************************************************!*\
32014 !*** ../node_modules/micromark-util-symbol/codes.js ***!
32015 \******************************************************/
32016 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32017
32018 "use strict";
32019 __webpack_require__.r(__webpack_exports__);
32020 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32021 /* harmony export */ codes: () => (/* binding */ codes)
32022 /* harmony export */ });
32023 /**
32024 * Character codes.
32025 *
32026 * This module is compiled away!
32027 *
32028 * micromark works based on character codes.
32029 * This module contains constants for the ASCII block and the replacement
32030 * character.
32031 * A couple of them are handled in a special way, such as the line endings
32032 * (CR, LF, and CR+LF, commonly known as end-of-line: EOLs), the tab (horizontal
32033 * tab) and its expansion based on what column it’s at (virtual space),
32034 * and the end-of-file (eof) character.
32035 * As values are preprocessed before handling them, the actual characters LF,
32036 * CR, HT, and NUL (which is present as the replacement character), are
32037 * guaranteed to not exist.
32038 *
32039 * Unicode basic latin block.
32040 */
32041 const codes = /** @type {const} */ ({
32042 carriageReturn: -5,
32043 lineFeed: -4,
32044 carriageReturnLineFeed: -3,
32045 horizontalTab: -2,
32046 virtualSpace: -1,
32047 eof: null,
32048 nul: 0,
32049 soh: 1,
32050 stx: 2,
32051 etx: 3,
32052 eot: 4,
32053 enq: 5,
32054 ack: 6,
32055 bel: 7,
32056 bs: 8,
32057 ht: 9, // `\t`
32058 lf: 10, // `\n`
32059 vt: 11, // `\v`
32060 ff: 12, // `\f`
32061 cr: 13, // `\r`
32062 so: 14,
32063 si: 15,
32064 dle: 16,
32065 dc1: 17,
32066 dc2: 18,
32067 dc3: 19,
32068 dc4: 20,
32069 nak: 21,
32070 syn: 22,
32071 etb: 23,
32072 can: 24,
32073 em: 25,
32074 sub: 26,
32075 esc: 27,
32076 fs: 28,
32077 gs: 29,
32078 rs: 30,
32079 us: 31,
32080 space: 32,
32081 exclamationMark: 33, // `!`
32082 quotationMark: 34, // `"`
32083 numberSign: 35, // `#`
32084 dollarSign: 36, // `$`
32085 percentSign: 37, // `%`
32086 ampersand: 38, // `&`
32087 apostrophe: 39, // `'`
32088 leftParenthesis: 40, // `(`
32089 rightParenthesis: 41, // `)`
32090 asterisk: 42, // `*`
32091 plusSign: 43, // `+`
32092 comma: 44, // `,`
32093 dash: 45, // `-`
32094 dot: 46, // `.`
32095 slash: 47, // `/`
32096 digit0: 48, // `0`
32097 digit1: 49, // `1`
32098 digit2: 50, // `2`
32099 digit3: 51, // `3`
32100 digit4: 52, // `4`
32101 digit5: 53, // `5`
32102 digit6: 54, // `6`
32103 digit7: 55, // `7`
32104 digit8: 56, // `8`
32105 digit9: 57, // `9`
32106 colon: 58, // `:`
32107 semicolon: 59, // `;`
32108 lessThan: 60, // `<`
32109 equalsTo: 61, // `=`
32110 greaterThan: 62, // `>`
32111 questionMark: 63, // `?`
32112 atSign: 64, // `@`
32113 uppercaseA: 65, // `A`
32114 uppercaseB: 66, // `B`
32115 uppercaseC: 67, // `C`
32116 uppercaseD: 68, // `D`
32117 uppercaseE: 69, // `E`
32118 uppercaseF: 70, // `F`
32119 uppercaseG: 71, // `G`
32120 uppercaseH: 72, // `H`
32121 uppercaseI: 73, // `I`
32122 uppercaseJ: 74, // `J`
32123 uppercaseK: 75, // `K`
32124 uppercaseL: 76, // `L`
32125 uppercaseM: 77, // `M`
32126 uppercaseN: 78, // `N`
32127 uppercaseO: 79, // `O`
32128 uppercaseP: 80, // `P`
32129 uppercaseQ: 81, // `Q`
32130 uppercaseR: 82, // `R`
32131 uppercaseS: 83, // `S`
32132 uppercaseT: 84, // `T`
32133 uppercaseU: 85, // `U`
32134 uppercaseV: 86, // `V`
32135 uppercaseW: 87, // `W`
32136 uppercaseX: 88, // `X`
32137 uppercaseY: 89, // `Y`
32138 uppercaseZ: 90, // `Z`
32139 leftSquareBracket: 91, // `[`
32140 backslash: 92, // `\`
32141 rightSquareBracket: 93, // `]`
32142 caret: 94, // `^`
32143 underscore: 95, // `_`
32144 graveAccent: 96, // `` ` ``
32145 lowercaseA: 97, // `a`
32146 lowercaseB: 98, // `b`
32147 lowercaseC: 99, // `c`
32148 lowercaseD: 100, // `d`
32149 lowercaseE: 101, // `e`
32150 lowercaseF: 102, // `f`
32151 lowercaseG: 103, // `g`
32152 lowercaseH: 104, // `h`
32153 lowercaseI: 105, // `i`
32154 lowercaseJ: 106, // `j`
32155 lowercaseK: 107, // `k`
32156 lowercaseL: 108, // `l`
32157 lowercaseM: 109, // `m`
32158 lowercaseN: 110, // `n`
32159 lowercaseO: 111, // `o`
32160 lowercaseP: 112, // `p`
32161 lowercaseQ: 113, // `q`
32162 lowercaseR: 114, // `r`
32163 lowercaseS: 115, // `s`
32164 lowercaseT: 116, // `t`
32165 lowercaseU: 117, // `u`
32166 lowercaseV: 118, // `v`
32167 lowercaseW: 119, // `w`
32168 lowercaseX: 120, // `x`
32169 lowercaseY: 121, // `y`
32170 lowercaseZ: 122, // `z`
32171 leftCurlyBrace: 123, // `{`
32172 verticalBar: 124, // `|`
32173 rightCurlyBrace: 125, // `}`
32174 tilde: 126, // `~`
32175 del: 127,
32176 // Unicode Specials block.
32177 byteOrderMarker: 65279,
32178 // Unicode Specials block.
32179 replacementCharacter: 65533 // ``
32180 })
32181
32182
32183 /***/ }),
32184
32185 /***/ "../node_modules/micromark-util-symbol/constants.js":
32186 /*!**********************************************************!*\
32187 !*** ../node_modules/micromark-util-symbol/constants.js ***!
32188 \**********************************************************/
32189 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32190
32191 "use strict";
32192 __webpack_require__.r(__webpack_exports__);
32193 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32194 /* harmony export */ constants: () => (/* binding */ constants)
32195 /* harmony export */ });
32196 /**
32197 * This module is compiled away!
32198 *
32199 * Parsing markdown comes with a couple of constants, such as minimum or maximum
32200 * sizes of certain sequences.
32201 * Additionally, there are a couple symbols used inside micromark.
32202 * These are all defined here, but compiled away by scripts.
32203 */
32204 const constants = /** @type {const} */ ({
32205 attentionSideBefore: 1, // Symbol to mark an attention sequence as before content: `*a`
32206 attentionSideAfter: 2, // Symbol to mark an attention sequence as after content: `a*`
32207 atxHeadingOpeningFenceSizeMax: 6, // 6 number signs is fine, 7 isn’t.
32208 autolinkDomainSizeMax: 63, // 63 characters is fine, 64 is too many.
32209 autolinkSchemeSizeMax: 32, // 32 characters is fine, 33 is too many.
32210 cdataOpeningString: 'CDATA[', // And preceded by `<![`.
32211 characterGroupWhitespace: 1, // Symbol used to indicate a character is whitespace
32212 characterGroupPunctuation: 2, // Symbol used to indicate a character is punctuation
32213 characterReferenceDecimalSizeMax: 7, // `&#9999999;`.
32214 characterReferenceHexadecimalSizeMax: 6, // `&#xff9999;`.
32215 characterReferenceNamedSizeMax: 31, // `&CounterClockwiseContourIntegral;`.
32216 codeFencedSequenceSizeMin: 3, // At least 3 ticks or tildes are needed.
32217 contentTypeDocument: 'document',
32218 contentTypeFlow: 'flow',
32219 contentTypeContent: 'content',
32220 contentTypeString: 'string',
32221 contentTypeText: 'text',
32222 hardBreakPrefixSizeMin: 2, // At least 2 trailing spaces are needed.
32223 htmlRaw: 1, // Symbol for `<script>`
32224 htmlComment: 2, // Symbol for `<!---->`
32225 htmlInstruction: 3, // Symbol for `<?php?>`
32226 htmlDeclaration: 4, // Symbol for `<!doctype>`
32227 htmlCdata: 5, // Symbol for `<![CDATA[]]>`
32228 htmlBasic: 6, // Symbol for `<div`
32229 htmlComplete: 7, // Symbol for `<x>`
32230 htmlRawSizeMax: 8, // Length of `textarea`.
32231 linkResourceDestinationBalanceMax: 32, // See: <https://spec.commonmark.org/0.30/#link-destination>, <https://github.com/remarkjs/react-markdown/issues/658#issuecomment-984345577>
32232 linkReferenceSizeMax: 999, // See: <https://spec.commonmark.org/0.30/#link-label>
32233 listItemValueSizeMax: 10, // See: <https://spec.commonmark.org/0.30/#ordered-list-marker>
32234 numericBaseDecimal: 10,
32235 numericBaseHexadecimal: 0x10,
32236 tabSize: 4, // Tabs have a hard-coded size of 4, per CommonMark.
32237 thematicBreakMarkerCountMin: 3, // At least 3 asterisks, dashes, or underscores are needed.
32238 v8MaxSafeChunkSize: 10000 // V8 (and potentially others) have problems injecting giant arrays into other arrays, hence we operate in chunks.
32239 })
32240
32241
32242 /***/ }),
32243
32244 /***/ "../node_modules/micromark-util-symbol/types.js":
32245 /*!******************************************************!*\
32246 !*** ../node_modules/micromark-util-symbol/types.js ***!
32247 \******************************************************/
32248 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32249
32250 "use strict";
32251 __webpack_require__.r(__webpack_exports__);
32252 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32253 /* harmony export */ types: () => (/* binding */ types)
32254 /* harmony export */ });
32255 /**
32256 * This module is compiled away!
32257 *
32258 * Here is the list of all types of tokens exposed by micromark, with a short
32259 * explanation of what they include and where they are found.
32260 * In picking names, generally, the rule is to be as explicit as possible
32261 * instead of reusing names.
32262 * For example, there is a `definitionDestination` and a `resourceDestination`,
32263 * instead of one shared name.
32264 */
32265
32266 // Note: when changing the next record, you must also change `TokenTypeMap`
32267 // in `micromark-util-types/index.d.ts`.
32268 const types = /** @type {const} */ ({
32269 // Generic type for data, such as in a title, a destination, etc.
32270 data: 'data',
32271
32272 // Generic type for syntactic whitespace (tabs, virtual spaces, spaces).
32273 // Such as, between a fenced code fence and an info string.
32274 whitespace: 'whitespace',
32275
32276 // Generic type for line endings (line feed, carriage return, carriage return +
32277 // line feed).
32278 lineEnding: 'lineEnding',
32279
32280 // A line ending, but ending a blank line.
32281 lineEndingBlank: 'lineEndingBlank',
32282
32283 // Generic type for whitespace (tabs, virtual spaces, spaces) at the start of a
32284 // line.
32285 linePrefix: 'linePrefix',
32286
32287 // Generic type for whitespace (tabs, virtual spaces, spaces) at the end of a
32288 // line.
32289 lineSuffix: 'lineSuffix',
32290
32291 // Whole ATX heading:
32292 //
32293 // ```markdown
32294 // #
32295 // ## Alpha
32296 // ### Bravo ###
32297 // ```
32298 //
32299 // Includes `atxHeadingSequence`, `whitespace`, `atxHeadingText`.
32300 atxHeading: 'atxHeading',
32301
32302 // Sequence of number signs in an ATX heading (`###`).
32303 atxHeadingSequence: 'atxHeadingSequence',
32304
32305 // Content in an ATX heading (`alpha`).
32306 // Includes text.
32307 atxHeadingText: 'atxHeadingText',
32308
32309 // Whole autolink (`<https://example.com>` or `<[email protected]>`)
32310 // Includes `autolinkMarker` and `autolinkProtocol` or `autolinkEmail`.
32311 autolink: 'autolink',
32312
32313 // Email autolink w/o markers (`[email protected]`)
32314 autolinkEmail: 'autolinkEmail',
32315
32316 // Marker around an `autolinkProtocol` or `autolinkEmail` (`<` or `>`).
32317 autolinkMarker: 'autolinkMarker',
32318
32319 // Protocol autolink w/o markers (`https://example.com`)
32320 autolinkProtocol: 'autolinkProtocol',
32321
32322 // A whole character escape (`\-`).
32323 // Includes `escapeMarker` and `characterEscapeValue`.
32324 characterEscape: 'characterEscape',
32325
32326 // The escaped character (`-`).
32327 characterEscapeValue: 'characterEscapeValue',
32328
32329 // A whole character reference (`&amp;`, `&#8800;`, or `&#x1D306;`).
32330 // Includes `characterReferenceMarker`, an optional
32331 // `characterReferenceMarkerNumeric`, in which case an optional
32332 // `characterReferenceMarkerHexadecimal`, and a `characterReferenceValue`.
32333 characterReference: 'characterReference',
32334
32335 // The start or end marker (`&` or `;`).
32336 characterReferenceMarker: 'characterReferenceMarker',
32337
32338 // Mark reference as numeric (`#`).
32339 characterReferenceMarkerNumeric: 'characterReferenceMarkerNumeric',
32340
32341 // Mark reference as numeric (`x` or `X`).
32342 characterReferenceMarkerHexadecimal: 'characterReferenceMarkerHexadecimal',
32343
32344 // Value of character reference w/o markers (`amp`, `8800`, or `1D306`).
32345 characterReferenceValue: 'characterReferenceValue',
32346
32347 // Whole fenced code:
32348 //
32349 // ````markdown
32350 // ```js
32351 // alert(1)
32352 // ```
32353 // ````
32354 codeFenced: 'codeFenced',
32355
32356 // A fenced code fence, including whitespace, sequence, info, and meta
32357 // (` ```js `).
32358 codeFencedFence: 'codeFencedFence',
32359
32360 // Sequence of grave accent or tilde characters (` ``` `) in a fence.
32361 codeFencedFenceSequence: 'codeFencedFenceSequence',
32362
32363 // Info word (`js`) in a fence.
32364 // Includes string.
32365 codeFencedFenceInfo: 'codeFencedFenceInfo',
32366
32367 // Meta words (`highlight="1"`) in a fence.
32368 // Includes string.
32369 codeFencedFenceMeta: 'codeFencedFenceMeta',
32370
32371 // A line of code.
32372 codeFlowValue: 'codeFlowValue',
32373
32374 // Whole indented code:
32375 //
32376 // ```markdown
32377 // alert(1)
32378 // ```
32379 //
32380 // Includes `lineEnding`, `linePrefix`, and `codeFlowValue`.
32381 codeIndented: 'codeIndented',
32382
32383 // A text code (``` `alpha` ```).
32384 // Includes `codeTextSequence`, `codeTextData`, `lineEnding`, and can include
32385 // `codeTextPadding`.
32386 codeText: 'codeText',
32387
32388 codeTextData: 'codeTextData',
32389
32390 // A space or line ending right after or before a tick.
32391 codeTextPadding: 'codeTextPadding',
32392
32393 // A text code fence (` `` `).
32394 codeTextSequence: 'codeTextSequence',
32395
32396 // Whole content:
32397 //
32398 // ```markdown
32399 // [a]: b
32400 // c
32401 // =
32402 // d
32403 // ```
32404 //
32405 // Includes `paragraph` and `definition`.
32406 content: 'content',
32407 // Whole definition:
32408 //
32409 // ```markdown
32410 // [micromark]: https://github.com/micromark/micromark
32411 // ```
32412 //
32413 // Includes `definitionLabel`, `definitionMarker`, `whitespace`,
32414 // `definitionDestination`, and optionally `lineEnding` and `definitionTitle`.
32415 definition: 'definition',
32416
32417 // Destination of a definition (`https://github.com/micromark/micromark` or
32418 // `<https://github.com/micromark/micromark>`).
32419 // Includes `definitionDestinationLiteral` or `definitionDestinationRaw`.
32420 definitionDestination: 'definitionDestination',
32421
32422 // Enclosed destination of a definition
32423 // (`<https://github.com/micromark/micromark>`).
32424 // Includes `definitionDestinationLiteralMarker` and optionally
32425 // `definitionDestinationString`.
32426 definitionDestinationLiteral: 'definitionDestinationLiteral',
32427
32428 // Markers of an enclosed definition destination (`<` or `>`).
32429 definitionDestinationLiteralMarker: 'definitionDestinationLiteralMarker',
32430
32431 // Unenclosed destination of a definition
32432 // (`https://github.com/micromark/micromark`).
32433 // Includes `definitionDestinationString`.
32434 definitionDestinationRaw: 'definitionDestinationRaw',
32435
32436 // Text in an destination (`https://github.com/micromark/micromark`).
32437 // Includes string.
32438 definitionDestinationString: 'definitionDestinationString',
32439
32440 // Label of a definition (`[micromark]`).
32441 // Includes `definitionLabelMarker` and `definitionLabelString`.
32442 definitionLabel: 'definitionLabel',
32443
32444 // Markers of a definition label (`[` or `]`).
32445 definitionLabelMarker: 'definitionLabelMarker',
32446
32447 // Value of a definition label (`micromark`).
32448 // Includes string.
32449 definitionLabelString: 'definitionLabelString',
32450
32451 // Marker between a label and a destination (`:`).
32452 definitionMarker: 'definitionMarker',
32453
32454 // Title of a definition (`"x"`, `'y'`, or `(z)`).
32455 // Includes `definitionTitleMarker` and optionally `definitionTitleString`.
32456 definitionTitle: 'definitionTitle',
32457
32458 // Marker around a title of a definition (`"`, `'`, `(`, or `)`).
32459 definitionTitleMarker: 'definitionTitleMarker',
32460
32461 // Data without markers in a title (`z`).
32462 // Includes string.
32463 definitionTitleString: 'definitionTitleString',
32464
32465 // Emphasis (`*alpha*`).
32466 // Includes `emphasisSequence` and `emphasisText`.
32467 emphasis: 'emphasis',
32468
32469 // Sequence of emphasis markers (`*` or `_`).
32470 emphasisSequence: 'emphasisSequence',
32471
32472 // Emphasis text (`alpha`).
32473 // Includes text.
32474 emphasisText: 'emphasisText',
32475
32476 // The character escape marker (`\`).
32477 escapeMarker: 'escapeMarker',
32478
32479 // A hard break created with a backslash (`\\n`).
32480 // Note: does not include the line ending.
32481 hardBreakEscape: 'hardBreakEscape',
32482
32483 // A hard break created with trailing spaces (` \n`).
32484 // Does not include the line ending.
32485 hardBreakTrailing: 'hardBreakTrailing',
32486
32487 // Flow HTML:
32488 //
32489 // ```markdown
32490 // <div
32491 // ```
32492 //
32493 // Inlcudes `lineEnding`, `htmlFlowData`.
32494 htmlFlow: 'htmlFlow',
32495
32496 htmlFlowData: 'htmlFlowData',
32497
32498 // HTML in text (the tag in `a <i> b`).
32499 // Includes `lineEnding`, `htmlTextData`.
32500 htmlText: 'htmlText',
32501
32502 htmlTextData: 'htmlTextData',
32503
32504 // Whole image (`![alpha](bravo)`, `![alpha][bravo]`, `![alpha][]`, or
32505 // `![alpha]`).
32506 // Includes `label` and an optional `resource` or `reference`.
32507 image: 'image',
32508
32509 // Whole link label (`[*alpha*]`).
32510 // Includes `labelLink` or `labelImage`, `labelText`, and `labelEnd`.
32511 label: 'label',
32512
32513 // Text in an label (`*alpha*`).
32514 // Includes text.
32515 labelText: 'labelText',
32516
32517 // Start a link label (`[`).
32518 // Includes a `labelMarker`.
32519 labelLink: 'labelLink',
32520
32521 // Start an image label (`![`).
32522 // Includes `labelImageMarker` and `labelMarker`.
32523 labelImage: 'labelImage',
32524
32525 // Marker of a label (`[` or `]`).
32526 labelMarker: 'labelMarker',
32527
32528 // Marker to start an image (`!`).
32529 labelImageMarker: 'labelImageMarker',
32530
32531 // End a label (`]`).
32532 // Includes `labelMarker`.
32533 labelEnd: 'labelEnd',
32534
32535 // Whole link (`[alpha](bravo)`, `[alpha][bravo]`, `[alpha][]`, or `[alpha]`).
32536 // Includes `label` and an optional `resource` or `reference`.
32537 link: 'link',
32538
32539 // Whole paragraph:
32540 //
32541 // ```markdown
32542 // alpha
32543 // bravo.
32544 // ```
32545 //
32546 // Includes text.
32547 paragraph: 'paragraph',
32548
32549 // A reference (`[alpha]` or `[]`).
32550 // Includes `referenceMarker` and an optional `referenceString`.
32551 reference: 'reference',
32552
32553 // A reference marker (`[` or `]`).
32554 referenceMarker: 'referenceMarker',
32555
32556 // Reference text (`alpha`).
32557 // Includes string.
32558 referenceString: 'referenceString',
32559
32560 // A resource (`(https://example.com "alpha")`).
32561 // Includes `resourceMarker`, an optional `resourceDestination` with an optional
32562 // `whitespace` and `resourceTitle`.
32563 resource: 'resource',
32564
32565 // A resource destination (`https://example.com`).
32566 // Includes `resourceDestinationLiteral` or `resourceDestinationRaw`.
32567 resourceDestination: 'resourceDestination',
32568
32569 // A literal resource destination (`<https://example.com>`).
32570 // Includes `resourceDestinationLiteralMarker` and optionally
32571 // `resourceDestinationString`.
32572 resourceDestinationLiteral: 'resourceDestinationLiteral',
32573
32574 // A resource destination marker (`<` or `>`).
32575 resourceDestinationLiteralMarker: 'resourceDestinationLiteralMarker',
32576
32577 // A raw resource destination (`https://example.com`).
32578 // Includes `resourceDestinationString`.
32579 resourceDestinationRaw: 'resourceDestinationRaw',
32580
32581 // Resource destination text (`https://example.com`).
32582 // Includes string.
32583 resourceDestinationString: 'resourceDestinationString',
32584
32585 // A resource marker (`(` or `)`).
32586 resourceMarker: 'resourceMarker',
32587
32588 // A resource title (`"alpha"`, `'alpha'`, or `(alpha)`).
32589 // Includes `resourceTitleMarker` and optionally `resourceTitleString`.
32590 resourceTitle: 'resourceTitle',
32591
32592 // A resource title marker (`"`, `'`, `(`, or `)`).
32593 resourceTitleMarker: 'resourceTitleMarker',
32594
32595 // Resource destination title (`alpha`).
32596 // Includes string.
32597 resourceTitleString: 'resourceTitleString',
32598
32599 // Whole setext heading:
32600 //
32601 // ```markdown
32602 // alpha
32603 // bravo
32604 // =====
32605 // ```
32606 //
32607 // Includes `setextHeadingText`, `lineEnding`, `linePrefix`, and
32608 // `setextHeadingLine`.
32609 setextHeading: 'setextHeading',
32610
32611 // Content in a setext heading (`alpha\nbravo`).
32612 // Includes text.
32613 setextHeadingText: 'setextHeadingText',
32614
32615 // Underline in a setext heading, including whitespace suffix (`==`).
32616 // Includes `setextHeadingLineSequence`.
32617 setextHeadingLine: 'setextHeadingLine',
32618
32619 // Sequence of equals or dash characters in underline in a setext heading (`-`).
32620 setextHeadingLineSequence: 'setextHeadingLineSequence',
32621
32622 // Strong (`**alpha**`).
32623 // Includes `strongSequence` and `strongText`.
32624 strong: 'strong',
32625
32626 // Sequence of strong markers (`**` or `__`).
32627 strongSequence: 'strongSequence',
32628
32629 // Strong text (`alpha`).
32630 // Includes text.
32631 strongText: 'strongText',
32632
32633 // Whole thematic break:
32634 //
32635 // ```markdown
32636 // * * *
32637 // ```
32638 //
32639 // Includes `thematicBreakSequence` and `whitespace`.
32640 thematicBreak: 'thematicBreak',
32641
32642 // A sequence of one or more thematic break markers (`***`).
32643 thematicBreakSequence: 'thematicBreakSequence',
32644
32645 // Whole block quote:
32646 //
32647 // ```markdown
32648 // > a
32649 // >
32650 // > b
32651 // ```
32652 //
32653 // Includes `blockQuotePrefix` and flow.
32654 blockQuote: 'blockQuote',
32655 // The `>` or `> ` of a block quote.
32656 blockQuotePrefix: 'blockQuotePrefix',
32657 // The `>` of a block quote prefix.
32658 blockQuoteMarker: 'blockQuoteMarker',
32659 // The optional ` ` of a block quote prefix.
32660 blockQuotePrefixWhitespace: 'blockQuotePrefixWhitespace',
32661
32662 // Whole unordered list:
32663 //
32664 // ```markdown
32665 // - a
32666 // b
32667 // ```
32668 //
32669 // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
32670 // lines.
32671 listOrdered: 'listOrdered',
32672
32673 // Whole ordered list:
32674 //
32675 // ```markdown
32676 // 1. a
32677 // b
32678 // ```
32679 //
32680 // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
32681 // lines.
32682 listUnordered: 'listUnordered',
32683
32684 // The indent of further list item lines.
32685 listItemIndent: 'listItemIndent',
32686
32687 // A marker, as in, `*`, `+`, `-`, `.`, or `)`.
32688 listItemMarker: 'listItemMarker',
32689
32690 // The thing that starts a list item, such as `1. `.
32691 // Includes `listItemValue` if ordered, `listItemMarker`, and
32692 // `listItemPrefixWhitespace` (unless followed by a line ending).
32693 listItemPrefix: 'listItemPrefix',
32694
32695 // The whitespace after a marker.
32696 listItemPrefixWhitespace: 'listItemPrefixWhitespace',
32697
32698 // The numerical value of an ordered item.
32699 listItemValue: 'listItemValue',
32700
32701 // Internal types used for subtokenizers, compiled away
32702 chunkDocument: 'chunkDocument',
32703 chunkContent: 'chunkContent',
32704 chunkFlow: 'chunkFlow',
32705 chunkText: 'chunkText',
32706 chunkString: 'chunkString'
32707 })
32708
32709
32710 /***/ }),
32711
32712 /***/ "../node_modules/micromark-util-symbol/values.js":
32713 /*!*******************************************************!*\
32714 !*** ../node_modules/micromark-util-symbol/values.js ***!
32715 \*******************************************************/
32716 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32717
32718 "use strict";
32719 __webpack_require__.r(__webpack_exports__);
32720 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32721 /* harmony export */ values: () => (/* binding */ values)
32722 /* harmony export */ });
32723 /**
32724 * This module is compiled away!
32725 *
32726 * While micromark works based on character codes, this module includes the
32727 * string versions of ’em.
32728 * The C0 block, except for LF, CR, HT, and w/ the replacement character added,
32729 * are available here.
32730 */
32731 const values = /** @type {const} */ ({
32732 ht: '\t',
32733 lf: '\n',
32734 cr: '\r',
32735 space: ' ',
32736 exclamationMark: '!',
32737 quotationMark: '"',
32738 numberSign: '#',
32739 dollarSign: '$',
32740 percentSign: '%',
32741 ampersand: '&',
32742 apostrophe: "'",
32743 leftParenthesis: '(',
32744 rightParenthesis: ')',
32745 asterisk: '*',
32746 plusSign: '+',
32747 comma: ',',
32748 dash: '-',
32749 dot: '.',
32750 slash: '/',
32751 digit0: '0',
32752 digit1: '1',
32753 digit2: '2',
32754 digit3: '3',
32755 digit4: '4',
32756 digit5: '5',
32757 digit6: '6',
32758 digit7: '7',
32759 digit8: '8',
32760 digit9: '9',
32761 colon: ':',
32762 semicolon: ';',
32763 lessThan: '<',
32764 equalsTo: '=',
32765 greaterThan: '>',
32766 questionMark: '?',
32767 atSign: '@',
32768 uppercaseA: 'A',
32769 uppercaseB: 'B',
32770 uppercaseC: 'C',
32771 uppercaseD: 'D',
32772 uppercaseE: 'E',
32773 uppercaseF: 'F',
32774 uppercaseG: 'G',
32775 uppercaseH: 'H',
32776 uppercaseI: 'I',
32777 uppercaseJ: 'J',
32778 uppercaseK: 'K',
32779 uppercaseL: 'L',
32780 uppercaseM: 'M',
32781 uppercaseN: 'N',
32782 uppercaseO: 'O',
32783 uppercaseP: 'P',
32784 uppercaseQ: 'Q',
32785 uppercaseR: 'R',
32786 uppercaseS: 'S',
32787 uppercaseT: 'T',
32788 uppercaseU: 'U',
32789 uppercaseV: 'V',
32790 uppercaseW: 'W',
32791 uppercaseX: 'X',
32792 uppercaseY: 'Y',
32793 uppercaseZ: 'Z',
32794 leftSquareBracket: '[',
32795 backslash: '\\',
32796 rightSquareBracket: ']',
32797 caret: '^',
32798 underscore: '_',
32799 graveAccent: '`',
32800 lowercaseA: 'a',
32801 lowercaseB: 'b',
32802 lowercaseC: 'c',
32803 lowercaseD: 'd',
32804 lowercaseE: 'e',
32805 lowercaseF: 'f',
32806 lowercaseG: 'g',
32807 lowercaseH: 'h',
32808 lowercaseI: 'i',
32809 lowercaseJ: 'j',
32810 lowercaseK: 'k',
32811 lowercaseL: 'l',
32812 lowercaseM: 'm',
32813 lowercaseN: 'n',
32814 lowercaseO: 'o',
32815 lowercaseP: 'p',
32816 lowercaseQ: 'q',
32817 lowercaseR: 'r',
32818 lowercaseS: 's',
32819 lowercaseT: 't',
32820 lowercaseU: 'u',
32821 lowercaseV: 'v',
32822 lowercaseW: 'w',
32823 lowercaseX: 'x',
32824 lowercaseY: 'y',
32825 lowercaseZ: 'z',
32826 leftCurlyBrace: '{',
32827 verticalBar: '|',
32828 rightCurlyBrace: '}',
32829 tilde: '~',
32830 replacementCharacter: ''
32831 })
32832
32833
32834 /***/ }),
32835
32836 /***/ "../node_modules/micromark/dev/lib/constructs.js":
32837 /*!*******************************************************!*\
32838 !*** ../node_modules/micromark/dev/lib/constructs.js ***!
32839 \*******************************************************/
32840 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32841
32842 "use strict";
32843 __webpack_require__.r(__webpack_exports__);
32844 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32845 /* harmony export */ attentionMarkers: () => (/* binding */ attentionMarkers),
32846 /* harmony export */ contentInitial: () => (/* binding */ contentInitial),
32847 /* harmony export */ disable: () => (/* binding */ disable),
32848 /* harmony export */ document: () => (/* binding */ document),
32849 /* harmony export */ flow: () => (/* binding */ flow),
32850 /* harmony export */ flowInitial: () => (/* binding */ flowInitial),
32851 /* harmony export */ insideSpan: () => (/* binding */ insideSpan),
32852 /* harmony export */ string: () => (/* binding */ string),
32853 /* harmony export */ text: () => (/* binding */ text)
32854 /* harmony export */ });
32855 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/list.js");
32856 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/block-quote.js");
32857 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/definition.js");
32858 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/code-indented.js");
32859 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js");
32860 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js");
32861 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js");
32862 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/html-flow.js");
32863 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js");
32864 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/character-reference.js");
32865 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/character-escape.js");
32866 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/line-ending.js");
32867 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js");
32868 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/attention.js");
32869 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/autolink.js");
32870 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/html-text.js");
32871 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js");
32872 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js");
32873 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/label-end.js");
32874 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/code-text.js");
32875 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
32876 /* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./initialize/text.js */ "../node_modules/micromark/dev/lib/initialize/text.js");
32877 /**
32878 * @typedef {import('micromark-util-types').Extension} Extension
32879 */
32880
32881
32882
32883
32884
32885 /** @satisfies {Extension['document']} */
32886 const document = {
32887 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32888 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.plusSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32889 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.dash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32890 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit0]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32891 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit1]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32892 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit2]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32893 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit3]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32894 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit4]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32895 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit5]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32896 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit6]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32897 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit7]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32898 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit8]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32899 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit9]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32900 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__.blockQuote
32901 }
32902
32903 /** @satisfies {Extension['contentInitial']} */
32904 const contentInitial = {
32905 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.definition
32906 }
32907
32908 /** @satisfies {Extension['flowInitial']} */
32909 const flowInitial = {
32910 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,
32911 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,
32912 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented
32913 }
32914
32915 /** @satisfies {Extension['flow']} */
32916 const flow = {
32917 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_5__.headingAtx,
32918 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,
32919 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.dash]: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.setextUnderline, micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak],
32920 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_8__.htmlFlow,
32921 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.equalsTo]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.setextUnderline,
32922 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,
32923 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced,
32924 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.tilde]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced
32925 }
32926
32927 /** @satisfies {Extension['string']} */
32928 const string = {
32929 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,
32930 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__.characterEscape
32931 }
32932
32933 /** @satisfies {Extension['text']} */
32934 const text = {
32935 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32936 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32937 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32938 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.exclamationMark]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_13__.labelStartImage,
32939 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,
32940 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,
32941 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan]: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_15__.autolink, micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_16__.htmlText],
32942 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_17__.labelStartLink,
32943 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash]: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_18__.hardBreakEscape, micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__.characterEscape],
32944 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_19__.labelEnd,
32945 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,
32946 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_20__.codeText
32947 }
32948
32949 /** @satisfies {Extension['insideSpan']} */
32950 const insideSpan = {null: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention, _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__.resolver]}
32951
32952 /** @satisfies {Extension['attentionMarkers']} */
32953 const attentionMarkers = {null: [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk, micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]}
32954
32955 /** @satisfies {Extension['disable']} */
32956 const disable = {null: []}
32957
32958
32959 /***/ }),
32960
32961 /***/ "../node_modules/micromark/dev/lib/create-tokenizer.js":
32962 /*!*************************************************************!*\
32963 !*** ../node_modules/micromark/dev/lib/create-tokenizer.js ***!
32964 \*************************************************************/
32965 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32966
32967 "use strict";
32968 __webpack_require__.r(__webpack_exports__);
32969 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32970 /* harmony export */ createTokenizer: () => (/* binding */ createTokenizer)
32971 /* harmony export */ });
32972 /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "../node_modules/debug/src/browser.js");
32973 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
32974 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
32975 /* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-resolve-all */ "../node_modules/micromark-util-resolve-all/index.js");
32976 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
32977 /* harmony import */ var micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-symbol/values.js */ "../node_modules/micromark-util-symbol/values.js");
32978 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
32979 /**
32980 * @typedef {import('micromark-util-types').Chunk} Chunk
32981 * @typedef {import('micromark-util-types').Code} Code
32982 * @typedef {import('micromark-util-types').Construct} Construct
32983 * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord
32984 * @typedef {import('micromark-util-types').Effects} Effects
32985 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
32986 * @typedef {import('micromark-util-types').ParseContext} ParseContext
32987 * @typedef {import('micromark-util-types').Point} Point
32988 * @typedef {import('micromark-util-types').State} State
32989 * @typedef {import('micromark-util-types').Token} Token
32990 * @typedef {import('micromark-util-types').TokenType} TokenType
32991 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
32992 */
32993
32994 /**
32995 * @callback Restore
32996 * @returns {void}
32997 *
32998 * @typedef Info
32999 * @property {Restore} restore
33000 * @property {number} from
33001 *
33002 * @callback ReturnHandle
33003 * Handle a successful run.
33004 * @param {Construct} construct
33005 * @param {Info} info
33006 * @returns {void}
33007 */
33008
33009
33010
33011
33012
33013
33014
33015
33016
33017 const debug = debug__WEBPACK_IMPORTED_MODULE_0__('micromark')
33018
33019 /**
33020 * Create a tokenizer.
33021 * Tokenizers deal with one type of data (e.g., containers, flow, text).
33022 * The parser is the object dealing with it all.
33023 * `initialize` works like other constructs, except that only its `tokenize`
33024 * function is used, in which case it doesn’t receive an `ok` or `nok`.
33025 * `from` can be given to set the point before the first character, although
33026 * when further lines are indented, they must be set with `defineSkip`.
33027 *
33028 * @param {ParseContext} parser
33029 * @param {InitialConstruct} initialize
33030 * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]
33031 * @returns {TokenizeContext}
33032 */
33033 function createTokenizer(parser, initialize, from) {
33034 /** @type {Point} */
33035 let point = Object.assign(
33036 from ? Object.assign({}, from) : {line: 1, column: 1, offset: 0},
33037 {_index: 0, _bufferIndex: -1}
33038 )
33039 /** @type {Record<string, number>} */
33040 const columnStart = {}
33041 /** @type {Array<Construct>} */
33042 const resolveAllConstructs = []
33043 /** @type {Array<Chunk>} */
33044 let chunks = []
33045 /** @type {Array<Token>} */
33046 let stack = []
33047 /** @type {boolean | undefined} */
33048 let consumed = true
33049
33050 /**
33051 * Tools used for tokenizing.
33052 *
33053 * @type {Effects}
33054 */
33055 const effects = {
33056 consume,
33057 enter,
33058 exit,
33059 attempt: constructFactory(onsuccessfulconstruct),
33060 check: constructFactory(onsuccessfulcheck),
33061 interrupt: constructFactory(onsuccessfulcheck, {interrupt: true})
33062 }
33063
33064 /**
33065 * State and tools for resolving and serializing.
33066 *
33067 * @type {TokenizeContext}
33068 */
33069 const context = {
33070 previous: micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof,
33071 code: micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof,
33072 containerState: {},
33073 events: [],
33074 parser,
33075 sliceStream,
33076 sliceSerialize,
33077 now,
33078 defineSkip,
33079 write
33080 }
33081
33082 /**
33083 * The state function.
33084 *
33085 * @type {State | void}
33086 */
33087 let state = initialize.tokenize.call(context, effects)
33088
33089 /**
33090 * Track which character we expect to be consumed, to catch bugs.
33091 *
33092 * @type {Code}
33093 */
33094 let expectedCode
33095
33096 if (initialize.resolveAll) {
33097 resolveAllConstructs.push(initialize)
33098 }
33099
33100 return context
33101
33102 /** @type {TokenizeContext['write']} */
33103 function write(slice) {
33104 chunks = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.push)(chunks, slice)
33105
33106 main()
33107
33108 // Exit if we’re not done, resolve might change stuff.
33109 if (chunks[chunks.length - 1] !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
33110 return []
33111 }
33112
33113 addResult(initialize, 0)
33114
33115 // Otherwise, resolve, and exit.
33116 context.events = (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_4__.resolveAll)(resolveAllConstructs, context.events, context)
33117
33118 return context.events
33119 }
33120
33121 //
33122 // Tools.
33123 //
33124
33125 /** @type {TokenizeContext['sliceSerialize']} */
33126 function sliceSerialize(token, expandTabs) {
33127 return serializeChunks(sliceStream(token), expandTabs)
33128 }
33129
33130 /** @type {TokenizeContext['sliceStream']} */
33131 function sliceStream(token) {
33132 return sliceChunks(chunks, token)
33133 }
33134
33135 /** @type {TokenizeContext['now']} */
33136 function now() {
33137 // This is a hot path, so we clone manually instead of `Object.assign({}, point)`
33138 const {line, column, offset, _index, _bufferIndex} = point
33139 return {line, column, offset, _index, _bufferIndex}
33140 }
33141
33142 /** @type {TokenizeContext['defineSkip']} */
33143 function defineSkip(value) {
33144 columnStart[value.line] = value.column
33145 accountForPotentialSkip()
33146 debug('position: define skip: `%j`', point)
33147 }
33148
33149 //
33150 // State management.
33151 //
33152
33153 /**
33154 * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by
33155 * `consume`).
33156 * Here is where we walk through the chunks, which either include strings of
33157 * several characters, or numerical character codes.
33158 * The reason to do this in a loop instead of a call is so the stack can
33159 * drain.
33160 *
33161 * @returns {void}
33162 */
33163 function main() {
33164 /** @type {number} */
33165 let chunkIndex
33166
33167 while (point._index < chunks.length) {
33168 const chunk = chunks[point._index]
33169
33170 // If we’re in a buffer chunk, loop through it.
33171 if (typeof chunk === 'string') {
33172 chunkIndex = point._index
33173
33174 if (point._bufferIndex < 0) {
33175 point._bufferIndex = 0
33176 }
33177
33178 while (
33179 point._index === chunkIndex &&
33180 point._bufferIndex < chunk.length
33181 ) {
33182 go(chunk.charCodeAt(point._bufferIndex))
33183 }
33184 } else {
33185 go(chunk)
33186 }
33187 }
33188 }
33189
33190 /**
33191 * Deal with one code.
33192 *
33193 * @param {Code} code
33194 * @returns {void}
33195 */
33196 function go(code) {
33197 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(consumed === true, 'expected character to be consumed')
33198 consumed = undefined
33199 debug('main: passing `%s` to %s', code, state && state.name)
33200 expectedCode = code
33201 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof state === 'function', 'expected state')
33202 state = state(code)
33203 }
33204
33205 /** @type {Effects['consume']} */
33206 function consume(code) {
33207 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected given code to equal expected code')
33208
33209 debug('consume: `%s`', code)
33210
33211 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33212 consumed === undefined,
33213 'expected code to not have been consumed: this might be because `return x(code)` instead of `return x` was used'
33214 )
33215 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33216 code === null
33217 ? context.events.length === 0 ||
33218 context.events[context.events.length - 1][0] === 'exit'
33219 : context.events[context.events.length - 1][0] === 'enter',
33220 'expected last token to be open'
33221 )
33222
33223 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
33224 point.line++
33225 point.column = 1
33226 point.offset += code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturnLineFeed ? 2 : 1
33227 accountForPotentialSkip()
33228 debug('position: after eol: `%j`', point)
33229 } else if (code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.virtualSpace) {
33230 point.column++
33231 point.offset++
33232 }
33233
33234 // Not in a string chunk.
33235 if (point._bufferIndex < 0) {
33236 point._index++
33237 } else {
33238 point._bufferIndex++
33239
33240 // At end of string chunk.
33241 // @ts-expect-error Points w/ non-negative `_bufferIndex` reference
33242 // strings.
33243 if (point._bufferIndex === chunks[point._index].length) {
33244 point._bufferIndex = -1
33245 point._index++
33246 }
33247 }
33248
33249 // Expose the previous character.
33250 context.previous = code
33251
33252 // Mark as consumed.
33253 consumed = true
33254 }
33255
33256 /** @type {Effects['enter']} */
33257 function enter(type, fields) {
33258 /** @type {Token} */
33259 // @ts-expect-error Patch instead of assign required fields to help GC.
33260 const token = fields || {}
33261 token.type = type
33262 token.start = now()
33263
33264 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof type === 'string', 'expected string type')
33265 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type.length > 0, 'expected non-empty string')
33266 debug('enter: `%s`', type)
33267
33268 context.events.push(['enter', token, context])
33269
33270 stack.push(token)
33271
33272 return token
33273 }
33274
33275 /** @type {Effects['exit']} */
33276 function exit(type) {
33277 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof type === 'string', 'expected string type')
33278 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type.length > 0, 'expected non-empty string')
33279
33280 const token = stack.pop()
33281 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(token, 'cannot close w/o open tokens')
33282 token.end = now()
33283
33284 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type === token.type, 'expected exit token to match current token')
33285
33286 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33287 !(
33288 token.start._index === token.end._index &&
33289 token.start._bufferIndex === token.end._bufferIndex
33290 ),
33291 'expected non-empty token (`' + type + '`)'
33292 )
33293
33294 debug('exit: `%s`', token.type)
33295 context.events.push(['exit', token, context])
33296
33297 return token
33298 }
33299
33300 /**
33301 * Use results.
33302 *
33303 * @type {ReturnHandle}
33304 */
33305 function onsuccessfulconstruct(construct, info) {
33306 addResult(construct, info.from)
33307 }
33308
33309 /**
33310 * Discard results.
33311 *
33312 * @type {ReturnHandle}
33313 */
33314 function onsuccessfulcheck(_, info) {
33315 info.restore()
33316 }
33317
33318 /**
33319 * Factory to attempt/check/interrupt.
33320 *
33321 * @param {ReturnHandle} onreturn
33322 * @param {{interrupt?: boolean | undefined} | undefined} [fields]
33323 */
33324 function constructFactory(onreturn, fields) {
33325 return hook
33326
33327 /**
33328 * Handle either an object mapping codes to constructs, a list of
33329 * constructs, or a single construct.
33330 *
33331 * @param {Array<Construct> | Construct | ConstructRecord} constructs
33332 * @param {State} returnState
33333 * @param {State | undefined} [bogusState]
33334 * @returns {State}
33335 */
33336 function hook(constructs, returnState, bogusState) {
33337 /** @type {Array<Construct>} */
33338 let listOfConstructs
33339 /** @type {number} */
33340 let constructIndex
33341 /** @type {Construct} */
33342 let currentConstruct
33343 /** @type {Info} */
33344 let info
33345
33346 return Array.isArray(constructs)
33347 ? /* c8 ignore next 1 */
33348 handleListOfConstructs(constructs)
33349 : 'tokenize' in constructs
33350 ? // @ts-expect-error Looks like a construct.
33351 handleListOfConstructs([constructs])
33352 : handleMapOfConstructs(constructs)
33353
33354 /**
33355 * Handle a list of construct.
33356 *
33357 * @param {ConstructRecord} map
33358 * @returns {State}
33359 */
33360 function handleMapOfConstructs(map) {
33361 return start
33362
33363 /** @type {State} */
33364 function start(code) {
33365 const def = code !== null && map[code]
33366 const all = code !== null && map.null
33367 const list = [
33368 // To do: add more extension tests.
33369 /* c8 ignore next 2 */
33370 ...(Array.isArray(def) ? def : def ? [def] : []),
33371 ...(Array.isArray(all) ? all : all ? [all] : [])
33372 ]
33373
33374 return handleListOfConstructs(list)(code)
33375 }
33376 }
33377
33378 /**
33379 * Handle a list of construct.
33380 *
33381 * @param {Array<Construct>} list
33382 * @returns {State}
33383 */
33384 function handleListOfConstructs(list) {
33385 listOfConstructs = list
33386 constructIndex = 0
33387
33388 if (list.length === 0) {
33389 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(bogusState, 'expected `bogusState` to be given')
33390 return bogusState
33391 }
33392
33393 return handleConstruct(list[constructIndex])
33394 }
33395
33396 /**
33397 * Handle a single construct.
33398 *
33399 * @param {Construct} construct
33400 * @returns {State}
33401 */
33402 function handleConstruct(construct) {
33403 return start
33404
33405 /** @type {State} */
33406 function start(code) {
33407 // To do: not needed to store if there is no bogus state, probably?
33408 // Currently doesn’t work because `inspect` in document does a check
33409 // w/o a bogus, which doesn’t make sense. But it does seem to help perf
33410 // by not storing.
33411 info = store()
33412 currentConstruct = construct
33413
33414 if (!construct.partial) {
33415 context.currentConstruct = construct
33416 }
33417
33418 // Always populated by defaults.
33419 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33420 context.parser.constructs.disable.null,
33421 'expected `disable.null` to be populated'
33422 )
33423
33424 if (
33425 construct.name &&
33426 context.parser.constructs.disable.null.includes(construct.name)
33427 ) {
33428 return nok(code)
33429 }
33430
33431 return construct.tokenize.call(
33432 // If we do have fields, create an object w/ `context` as its
33433 // prototype.
33434 // This allows a “live binding”, which is needed for `interrupt`.
33435 fields ? Object.assign(Object.create(context), fields) : context,
33436 effects,
33437 ok,
33438 nok
33439 )(code)
33440 }
33441 }
33442
33443 /** @type {State} */
33444 function ok(code) {
33445 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected code')
33446 consumed = true
33447 onreturn(currentConstruct, info)
33448 return returnState
33449 }
33450
33451 /** @type {State} */
33452 function nok(code) {
33453 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected code')
33454 consumed = true
33455 info.restore()
33456
33457 if (++constructIndex < listOfConstructs.length) {
33458 return handleConstruct(listOfConstructs[constructIndex])
33459 }
33460
33461 return bogusState
33462 }
33463 }
33464 }
33465
33466 /**
33467 * @param {Construct} construct
33468 * @param {number} from
33469 * @returns {void}
33470 */
33471 function addResult(construct, from) {
33472 if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {
33473 resolveAllConstructs.push(construct)
33474 }
33475
33476 if (construct.resolve) {
33477 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.splice)(
33478 context.events,
33479 from,
33480 context.events.length - from,
33481 construct.resolve(context.events.slice(from), context)
33482 )
33483 }
33484
33485 if (construct.resolveTo) {
33486 context.events = construct.resolveTo(context.events, context)
33487 }
33488
33489 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33490 construct.partial ||
33491 context.events.length === 0 ||
33492 context.events[context.events.length - 1][0] === 'exit',
33493 'expected last token to end'
33494 )
33495 }
33496
33497 /**
33498 * Store state.
33499 *
33500 * @returns {Info}
33501 */
33502 function store() {
33503 const startPoint = now()
33504 const startPrevious = context.previous
33505 const startCurrentConstruct = context.currentConstruct
33506 const startEventsIndex = context.events.length
33507 const startStack = Array.from(stack)
33508
33509 return {restore, from: startEventsIndex}
33510
33511 /**
33512 * Restore state.
33513 *
33514 * @returns {void}
33515 */
33516 function restore() {
33517 point = startPoint
33518 context.previous = startPrevious
33519 context.currentConstruct = startCurrentConstruct
33520 context.events.length = startEventsIndex
33521 stack = startStack
33522 accountForPotentialSkip()
33523 debug('position: restore: `%j`', point)
33524 }
33525 }
33526
33527 /**
33528 * Move the current point a bit forward in the line when it’s on a column
33529 * skip.
33530 *
33531 * @returns {void}
33532 */
33533 function accountForPotentialSkip() {
33534 if (point.line in columnStart && point.column < 2) {
33535 point.column = columnStart[point.line]
33536 point.offset += columnStart[point.line] - 1
33537 }
33538 }
33539 }
33540
33541 /**
33542 * Get the chunks from a slice of chunks in the range of a token.
33543 *
33544 * @param {Array<Chunk>} chunks
33545 * @param {Pick<Token, 'end' | 'start'>} token
33546 * @returns {Array<Chunk>}
33547 */
33548 function sliceChunks(chunks, token) {
33549 const startIndex = token.start._index
33550 const startBufferIndex = token.start._bufferIndex
33551 const endIndex = token.end._index
33552 const endBufferIndex = token.end._bufferIndex
33553 /** @type {Array<Chunk>} */
33554 let view
33555
33556 if (startIndex === endIndex) {
33557 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(endBufferIndex > -1, 'expected non-negative end buffer index')
33558 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(startBufferIndex > -1, 'expected non-negative start buffer index')
33559 // @ts-expect-error `_bufferIndex` is used on string chunks.
33560 view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]
33561 } else {
33562 view = chunks.slice(startIndex, endIndex)
33563
33564 if (startBufferIndex > -1) {
33565 const head = view[0]
33566 if (typeof head === 'string') {
33567 view[0] = head.slice(startBufferIndex)
33568 } else {
33569 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(startBufferIndex === 0, 'expected `startBufferIndex` to be `0`')
33570 view.shift()
33571 }
33572 }
33573
33574 if (endBufferIndex > 0) {
33575 // @ts-expect-error `_bufferIndex` is used on string chunks.
33576 view.push(chunks[endIndex].slice(0, endBufferIndex))
33577 }
33578 }
33579
33580 return view
33581 }
33582
33583 /**
33584 * Get the string value of a slice of chunks.
33585 *
33586 * @param {Array<Chunk>} chunks
33587 * @param {boolean | undefined} [expandTabs=false]
33588 * @returns {string}
33589 */
33590 function serializeChunks(chunks, expandTabs) {
33591 let index = -1
33592 /** @type {Array<string>} */
33593 const result = []
33594 /** @type {boolean | undefined} */
33595 let atTab
33596
33597 while (++index < chunks.length) {
33598 const chunk = chunks[index]
33599 /** @type {string} */
33600 let value
33601
33602 if (typeof chunk === 'string') {
33603 value = chunk
33604 } else
33605 switch (chunk) {
33606 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturn: {
33607 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.cr
33608
33609 break
33610 }
33611
33612 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lineFeed: {
33613 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.lf
33614
33615 break
33616 }
33617
33618 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturnLineFeed: {
33619 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.cr + micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.lf
33620
33621 break
33622 }
33623
33624 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.horizontalTab: {
33625 value = expandTabs ? micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.space : micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.ht
33626
33627 break
33628 }
33629
33630 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.virtualSpace: {
33631 if (!expandTabs && atTab) continue
33632 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.space
33633
33634 break
33635 }
33636
33637 default: {
33638 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof chunk === 'number', 'expected number')
33639 // Currently only replacement character.
33640 value = String.fromCharCode(chunk)
33641 }
33642 }
33643
33644 atTab = chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.horizontalTab
33645 result.push(value)
33646 }
33647
33648 return result.join('')
33649 }
33650
33651
33652 /***/ }),
33653
33654 /***/ "../node_modules/micromark/dev/lib/initialize/content.js":
33655 /*!***************************************************************!*\
33656 !*** ../node_modules/micromark/dev/lib/initialize/content.js ***!
33657 \***************************************************************/
33658 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33659
33660 "use strict";
33661 __webpack_require__.r(__webpack_exports__);
33662 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33663 /* harmony export */ content: () => (/* binding */ content)
33664 /* harmony export */ });
33665 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
33666 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
33667 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
33668 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
33669 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
33670 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
33671 /**
33672 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
33673 * @typedef {import('micromark-util-types').Initializer} Initializer
33674 * @typedef {import('micromark-util-types').State} State
33675 * @typedef {import('micromark-util-types').Token} Token
33676 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
33677 */
33678
33679
33680
33681
33682
33683
33684
33685
33686 /** @type {InitialConstruct} */
33687 const content = {tokenize: initializeContent}
33688
33689 /**
33690 * @this {TokenizeContext}
33691 * @type {Initializer}
33692 */
33693 function initializeContent(effects) {
33694 const contentStart = effects.attempt(
33695 this.parser.constructs.contentInitial,
33696 afterContentStartConstruct,
33697 paragraphInitial
33698 )
33699 /** @type {Token} */
33700 let previous
33701
33702 return contentStart
33703
33704 /** @type {State} */
33705 function afterContentStartConstruct(code) {
33706 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33707 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code),
33708 'expected eol or eof'
33709 )
33710
33711 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
33712 effects.consume(code)
33713 return
33714 }
33715
33716 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding)
33717 effects.consume(code)
33718 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding)
33719 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, contentStart, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.linePrefix)
33720 }
33721
33722 /** @type {State} */
33723 function paragraphInitial(code) {
33724 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33725 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code),
33726 'expected anything other than a line ending or EOF'
33727 )
33728 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.paragraph)
33729 return lineStart(code)
33730 }
33731
33732 /** @type {State} */
33733 function lineStart(code) {
33734 const token = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText, {
33735 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeText,
33736 previous
33737 })
33738
33739 if (previous) {
33740 previous.next = token
33741 }
33742
33743 previous = token
33744
33745 return data(code)
33746 }
33747
33748 /** @type {State} */
33749 function data(code) {
33750 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
33751 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText)
33752 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.paragraph)
33753 effects.consume(code)
33754 return
33755 }
33756
33757 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {
33758 effects.consume(code)
33759 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText)
33760 return lineStart
33761 }
33762
33763 // Data.
33764 effects.consume(code)
33765 return data
33766 }
33767 }
33768
33769
33770 /***/ }),
33771
33772 /***/ "../node_modules/micromark/dev/lib/initialize/document.js":
33773 /*!****************************************************************!*\
33774 !*** ../node_modules/micromark/dev/lib/initialize/document.js ***!
33775 \****************************************************************/
33776 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33777
33778 "use strict";
33779 __webpack_require__.r(__webpack_exports__);
33780 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33781 /* harmony export */ document: () => (/* binding */ document)
33782 /* harmony export */ });
33783 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
33784 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
33785 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
33786 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
33787 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
33788 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
33789 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
33790 /**
33791 * @typedef {import('micromark-util-types').Construct} Construct
33792 * @typedef {import('micromark-util-types').ContainerState} ContainerState
33793 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
33794 * @typedef {import('micromark-util-types').Initializer} Initializer
33795 * @typedef {import('micromark-util-types').Point} Point
33796 * @typedef {import('micromark-util-types').State} State
33797 * @typedef {import('micromark-util-types').Token} Token
33798 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
33799 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
33800 */
33801
33802 /**
33803 * @typedef {[Construct, ContainerState]} StackItem
33804 */
33805
33806
33807
33808
33809
33810
33811
33812
33813
33814 /** @type {InitialConstruct} */
33815 const document = {tokenize: initializeDocument}
33816
33817 /** @type {Construct} */
33818 const containerConstruct = {tokenize: tokenizeContainer}
33819
33820 /**
33821 * @this {TokenizeContext}
33822 * @type {Initializer}
33823 */
33824 function initializeDocument(effects) {
33825 const self = this
33826 /** @type {Array<StackItem>} */
33827 const stack = []
33828 let continued = 0
33829 /** @type {TokenizeContext | undefined} */
33830 let childFlow
33831 /** @type {Token | undefined} */
33832 let childToken
33833 /** @type {number} */
33834 let lineStartOffset
33835
33836 return start
33837
33838 /** @type {State} */
33839 function start(code) {
33840 // First we iterate through the open blocks, starting with the root
33841 // document, and descending through last children down to the last open
33842 // block.
33843 // Each block imposes a condition that the line must satisfy if the block is
33844 // to remain open.
33845 // For example, a block quote requires a `>` character.
33846 // A paragraph requires a non-blank line.
33847 // In this phase we may match all or just some of the open blocks.
33848 // But we cannot close unmatched blocks yet, because we may have a lazy
33849 // continuation line.
33850 if (continued < stack.length) {
33851 const item = stack[continued]
33852 self.containerState = item[1]
33853 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33854 item[0].continuation,
33855 'expected `continuation` to be defined on container construct'
33856 )
33857 return effects.attempt(
33858 item[0].continuation,
33859 documentContinue,
33860 checkNewContainers
33861 )(code)
33862 }
33863
33864 // Done.
33865 return checkNewContainers(code)
33866 }
33867
33868 /** @type {State} */
33869 function documentContinue(code) {
33870 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33871 self.containerState,
33872 'expected `containerState` to be defined after continuation'
33873 )
33874
33875 continued++
33876
33877 // Note: this field is called `_closeFlow` but it also closes containers.
33878 // Perhaps a good idea to rename it but it’s already used in the wild by
33879 // extensions.
33880 if (self.containerState._closeFlow) {
33881 self.containerState._closeFlow = undefined
33882
33883 if (childFlow) {
33884 closeFlow()
33885 }
33886
33887 // Note: this algorithm for moving events around is similar to the
33888 // algorithm when dealing with lazy lines in `writeToChild`.
33889 const indexBeforeExits = self.events.length
33890 let indexBeforeFlow = indexBeforeExits
33891 /** @type {Point | undefined} */
33892 let point
33893
33894 // Find the flow chunk.
33895 while (indexBeforeFlow--) {
33896 if (
33897 self.events[indexBeforeFlow][0] === 'exit' &&
33898 self.events[indexBeforeFlow][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow
33899 ) {
33900 point = self.events[indexBeforeFlow][1].end
33901 break
33902 }
33903 }
33904
33905 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(point, 'could not find previous flow chunk')
33906
33907 exitContainers(continued)
33908
33909 // Fix positions.
33910 let index = indexBeforeExits
33911
33912 while (index < self.events.length) {
33913 self.events[index][1].end = Object.assign({}, point)
33914 index++
33915 }
33916
33917 // Inject the exits earlier (they’re still also at the end).
33918 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(
33919 self.events,
33920 indexBeforeFlow + 1,
33921 0,
33922 self.events.slice(indexBeforeExits)
33923 )
33924
33925 // Discard the duplicate exits.
33926 self.events.length = index
33927
33928 return checkNewContainers(code)
33929 }
33930
33931 return start(code)
33932 }
33933
33934 /** @type {State} */
33935 function checkNewContainers(code) {
33936 // Next, after consuming the continuation markers for existing blocks, we
33937 // look for new block starts (e.g. `>` for a block quote).
33938 // If we encounter a new block start, we close any blocks unmatched in
33939 // step 1 before creating the new block as a child of the last matched
33940 // block.
33941 if (continued === stack.length) {
33942 // No need to `check` whether there’s a container, of `exitContainers`
33943 // would be moot.
33944 // We can instead immediately `attempt` to parse one.
33945 if (!childFlow) {
33946 return documentContinued(code)
33947 }
33948
33949 // If we have concrete content, such as block HTML or fenced code,
33950 // we can’t have containers “pierce” into them, so we can immediately
33951 // start.
33952 if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {
33953 return flowStart(code)
33954 }
33955
33956 // If we do have flow, it could still be a blank line,
33957 // but we’d be interrupting it w/ a new container if there’s a current
33958 // construct.
33959 // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer
33960 // needed in [email protected]).
33961 self.interrupt = Boolean(
33962 childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack
33963 )
33964 }
33965
33966 // Check if there is a new container.
33967 self.containerState = {}
33968 return effects.check(
33969 containerConstruct,
33970 thereIsANewContainer,
33971 thereIsNoNewContainer
33972 )(code)
33973 }
33974
33975 /** @type {State} */
33976 function thereIsANewContainer(code) {
33977 if (childFlow) closeFlow()
33978 exitContainers(continued)
33979 return documentContinued(code)
33980 }
33981
33982 /** @type {State} */
33983 function thereIsNoNewContainer(code) {
33984 self.parser.lazy[self.now().line] = continued !== stack.length
33985 lineStartOffset = self.now().offset
33986 return flowStart(code)
33987 }
33988
33989 /** @type {State} */
33990 function documentContinued(code) {
33991 // Try new containers.
33992 self.containerState = {}
33993 return effects.attempt(
33994 containerConstruct,
33995 containerContinue,
33996 flowStart
33997 )(code)
33998 }
33999
34000 /** @type {State} */
34001 function containerContinue(code) {
34002 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34003 self.currentConstruct,
34004 'expected `currentConstruct` to be defined on tokenizer'
34005 )
34006 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34007 self.containerState,
34008 'expected `containerState` to be defined on tokenizer'
34009 )
34010 continued++
34011 stack.push([self.currentConstruct, self.containerState])
34012 // Try another.
34013 return documentContinued(code)
34014 }
34015
34016 /** @type {State} */
34017 function flowStart(code) {
34018 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {
34019 if (childFlow) closeFlow()
34020 exitContainers(0)
34021 effects.consume(code)
34022 return
34023 }
34024
34025 childFlow = childFlow || self.parser.flow(self.now())
34026 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow, {
34027 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.contentTypeFlow,
34028 previous: childToken,
34029 _tokenizer: childFlow
34030 })
34031
34032 return flowContinue(code)
34033 }
34034
34035 /** @type {State} */
34036 function flowContinue(code) {
34037 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {
34038 writeToChild(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow), true)
34039 exitContainers(0)
34040 effects.consume(code)
34041 return
34042 }
34043
34044 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
34045 effects.consume(code)
34046 writeToChild(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow))
34047 // Get ready for the next line.
34048 continued = 0
34049 self.interrupt = undefined
34050 return start
34051 }
34052
34053 effects.consume(code)
34054 return flowContinue
34055 }
34056
34057 /**
34058 * @param {Token} token
34059 * @param {boolean | undefined} [eof]
34060 * @returns {void}
34061 */
34062 function writeToChild(token, eof) {
34063 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, 'expected `childFlow` to be defined when continuing')
34064 const stream = self.sliceStream(token)
34065 if (eof) stream.push(null)
34066 token.previous = childToken
34067 if (childToken) childToken.next = token
34068 childToken = token
34069 childFlow.defineSkip(token.start)
34070 childFlow.write(stream)
34071
34072 // Alright, so we just added a lazy line:
34073 //
34074 // ```markdown
34075 // > a
34076 // b.
34077 //
34078 // Or:
34079 //
34080 // > ~~~c
34081 // d
34082 //
34083 // Or:
34084 //
34085 // > | e |
34086 // f
34087 // ```
34088 //
34089 // The construct in the second example (fenced code) does not accept lazy
34090 // lines, so it marked itself as done at the end of its first line, and
34091 // then the content construct parses `d`.
34092 // Most constructs in markdown match on the first line: if the first line
34093 // forms a construct, a non-lazy line can’t “unmake” it.
34094 //
34095 // The construct in the third example is potentially a GFM table, and
34096 // those are *weird*.
34097 // It *could* be a table, from the first line, if the following line
34098 // matches a condition.
34099 // In this case, that second line is lazy, which “unmakes” the first line
34100 // and turns the whole into one content block.
34101 //
34102 // We’ve now parsed the non-lazy and the lazy line, and can figure out
34103 // whether the lazy line started a new flow block.
34104 // If it did, we exit the current containers between the two flow blocks.
34105 if (self.parser.lazy[token.start.line]) {
34106 let index = childFlow.events.length
34107
34108 while (index--) {
34109 if (
34110 // The token starts before the line ending…
34111 childFlow.events[index][1].start.offset < lineStartOffset &&
34112 // …and either is not ended yet…
34113 (!childFlow.events[index][1].end ||
34114 // …or ends after it.
34115 childFlow.events[index][1].end.offset > lineStartOffset)
34116 ) {
34117 // Exit: there’s still something open, which means it’s a lazy line
34118 // part of something.
34119 return
34120 }
34121 }
34122
34123 // Note: this algorithm for moving events around is similar to the
34124 // algorithm when closing flow in `documentContinue`.
34125 const indexBeforeExits = self.events.length
34126 let indexBeforeFlow = indexBeforeExits
34127 /** @type {boolean | undefined} */
34128 let seen
34129 /** @type {Point | undefined} */
34130 let point
34131
34132 // Find the previous chunk (the one before the lazy line).
34133 while (indexBeforeFlow--) {
34134 if (
34135 self.events[indexBeforeFlow][0] === 'exit' &&
34136 self.events[indexBeforeFlow][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow
34137 ) {
34138 if (seen) {
34139 point = self.events[indexBeforeFlow][1].end
34140 break
34141 }
34142
34143 seen = true
34144 }
34145 }
34146
34147 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(point, 'could not find previous flow chunk')
34148
34149 exitContainers(continued)
34150
34151 // Fix positions.
34152 index = indexBeforeExits
34153
34154 while (index < self.events.length) {
34155 self.events[index][1].end = Object.assign({}, point)
34156 index++
34157 }
34158
34159 // Inject the exits earlier (they’re still also at the end).
34160 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(
34161 self.events,
34162 indexBeforeFlow + 1,
34163 0,
34164 self.events.slice(indexBeforeExits)
34165 )
34166
34167 // Discard the duplicate exits.
34168 self.events.length = index
34169 }
34170 }
34171
34172 /**
34173 * @param {number} size
34174 * @returns {void}
34175 */
34176 function exitContainers(size) {
34177 let index = stack.length
34178
34179 // Exit open containers.
34180 while (index-- > size) {
34181 const entry = stack[index]
34182 self.containerState = entry[1]
34183 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34184 entry[0].exit,
34185 'expected `exit` to be defined on container construct'
34186 )
34187 entry[0].exit.call(self, effects)
34188 }
34189
34190 stack.length = size
34191 }
34192
34193 function closeFlow() {
34194 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34195 self.containerState,
34196 'expected `containerState` to be defined when closing flow'
34197 )
34198 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, 'expected `childFlow` to be defined when closing it')
34199 childFlow.write([micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof])
34200 childToken = undefined
34201 childFlow = undefined
34202 self.containerState._closeFlow = undefined
34203 }
34204 }
34205
34206 /**
34207 * @this {TokenizeContext}
34208 * @type {Tokenizer}
34209 */
34210 function tokenizeContainer(effects, ok, nok) {
34211 // Always populated by defaults.
34212 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34213 this.parser.constructs.disable.null,
34214 'expected `disable.null` to be populated'
34215 )
34216 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(
34217 effects,
34218 effects.attempt(this.parser.constructs.document, ok, nok),
34219 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix,
34220 this.parser.constructs.disable.null.includes('codeIndented')
34221 ? undefined
34222 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
34223 )
34224 }
34225
34226
34227 /***/ }),
34228
34229 /***/ "../node_modules/micromark/dev/lib/initialize/flow.js":
34230 /*!************************************************************!*\
34231 !*** ../node_modules/micromark/dev/lib/initialize/flow.js ***!
34232 \************************************************************/
34233 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34234
34235 "use strict";
34236 __webpack_require__.r(__webpack_exports__);
34237 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34238 /* harmony export */ flow: () => (/* binding */ flow)
34239 /* harmony export */ });
34240 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/blank-line.js");
34241 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/content.js");
34242 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
34243 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
34244 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
34245 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
34246 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34247 /**
34248 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34249 * @typedef {import('micromark-util-types').Initializer} Initializer
34250 * @typedef {import('micromark-util-types').State} State
34251 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34252 */
34253
34254
34255
34256
34257
34258
34259
34260
34261 /** @type {InitialConstruct} */
34262 const flow = {tokenize: initializeFlow}
34263
34264 /**
34265 * @this {TokenizeContext}
34266 * @type {Initializer}
34267 */
34268 function initializeFlow(effects) {
34269 const self = this
34270 const initial = effects.attempt(
34271 // Try to parse a blank line.
34272 micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.blankLine,
34273 atBlankEnding,
34274 // Try to parse initial flow (essentially, only code).
34275 effects.attempt(
34276 this.parser.constructs.flowInitial,
34277 afterConstruct,
34278 (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(
34279 effects,
34280 effects.attempt(
34281 this.parser.constructs.flow,
34282 afterConstruct,
34283 effects.attempt(micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.content, afterConstruct)
34284 ),
34285 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix
34286 )
34287 )
34288 )
34289
34290 return initial
34291
34292 /** @type {State} */
34293 function atBlankEnding(code) {
34294 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34295 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code),
34296 'expected eol or eof'
34297 )
34298
34299 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
34300 effects.consume(code)
34301 return
34302 }
34303
34304 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank)
34305 effects.consume(code)
34306 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank)
34307 self.currentConstruct = undefined
34308 return initial
34309 }
34310
34311 /** @type {State} */
34312 function afterConstruct(code) {
34313 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34314 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code),
34315 'expected eol or eof'
34316 )
34317
34318 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
34319 effects.consume(code)
34320 return
34321 }
34322
34323 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
34324 effects.consume(code)
34325 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
34326 self.currentConstruct = undefined
34327 return initial
34328 }
34329 }
34330
34331
34332 /***/ }),
34333
34334 /***/ "../node_modules/micromark/dev/lib/initialize/text.js":
34335 /*!************************************************************!*\
34336 !*** ../node_modules/micromark/dev/lib/initialize/text.js ***!
34337 \************************************************************/
34338 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34339
34340 "use strict";
34341 __webpack_require__.r(__webpack_exports__);
34342 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34343 /* harmony export */ resolver: () => (/* binding */ resolver),
34344 /* harmony export */ string: () => (/* binding */ string),
34345 /* harmony export */ text: () => (/* binding */ text)
34346 /* harmony export */ });
34347 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
34348 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
34349 /* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ "../node_modules/micromark-util-symbol/types.js");
34350 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34351 /**
34352 * @typedef {import('micromark-util-types').Code} Code
34353 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34354 * @typedef {import('micromark-util-types').Initializer} Initializer
34355 * @typedef {import('micromark-util-types').Resolver} Resolver
34356 * @typedef {import('micromark-util-types').State} State
34357 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34358 */
34359
34360
34361
34362
34363
34364
34365 const resolver = {resolveAll: createResolver()}
34366 const string = initializeFactory('string')
34367 const text = initializeFactory('text')
34368
34369 /**
34370 * @param {'string' | 'text'} field
34371 * @returns {InitialConstruct}
34372 */
34373 function initializeFactory(field) {
34374 return {
34375 tokenize: initializeText,
34376 resolveAll: createResolver(
34377 field === 'text' ? resolveAllLineSuffixes : undefined
34378 )
34379 }
34380
34381 /**
34382 * @this {TokenizeContext}
34383 * @type {Initializer}
34384 */
34385 function initializeText(effects) {
34386 const self = this
34387 const constructs = this.parser.constructs[field]
34388 const text = effects.attempt(constructs, start, notText)
34389
34390 return start
34391
34392 /** @type {State} */
34393 function start(code) {
34394 return atBreak(code) ? text(code) : notText(code)
34395 }
34396
34397 /** @type {State} */
34398 function notText(code) {
34399 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34400 effects.consume(code)
34401 return
34402 }
34403
34404 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data)
34405 effects.consume(code)
34406 return data
34407 }
34408
34409 /** @type {State} */
34410 function data(code) {
34411 if (atBreak(code)) {
34412 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data)
34413 return text(code)
34414 }
34415
34416 // Data.
34417 effects.consume(code)
34418 return data
34419 }
34420
34421 /**
34422 * @param {Code} code
34423 * @returns {boolean}
34424 */
34425 function atBreak(code) {
34426 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34427 return true
34428 }
34429
34430 const list = constructs[code]
34431 let index = -1
34432
34433 if (list) {
34434 // Always populated by defaults.
34435 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(Array.isArray(list), 'expected `disable.null` to be populated')
34436
34437 while (++index < list.length) {
34438 const item = list[index]
34439 if (!item.previous || item.previous.call(self, self.previous)) {
34440 return true
34441 }
34442 }
34443 }
34444
34445 return false
34446 }
34447 }
34448 }
34449
34450 /**
34451 * @param {Resolver | undefined} [extraResolver]
34452 * @returns {Resolver}
34453 */
34454 function createResolver(extraResolver) {
34455 return resolveAllText
34456
34457 /** @type {Resolver} */
34458 function resolveAllText(events, context) {
34459 let index = -1
34460 /** @type {number | undefined} */
34461 let enter
34462
34463 // A rather boring computation (to merge adjacent `data` events) which
34464 // improves mm performance by 29%.
34465 while (++index <= events.length) {
34466 if (enter === undefined) {
34467 if (events[index] && events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data) {
34468 enter = index
34469 index++
34470 }
34471 } else if (!events[index] || events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data) {
34472 // Don’t do anything if there is one data token.
34473 if (index !== enter + 2) {
34474 events[enter][1].end = events[index - 1][1].end
34475 events.splice(enter + 2, index - enter - 2)
34476 index = enter + 2
34477 }
34478
34479 enter = undefined
34480 }
34481 }
34482
34483 return extraResolver ? extraResolver(events, context) : events
34484 }
34485 }
34486
34487 /**
34488 * A rather ugly set of instructions which again looks at chunks in the input
34489 * stream.
34490 * The reason to do this here is that it is *much* faster to parse in reverse.
34491 * And that we can’t hook into `null` to split the line suffix before an EOF.
34492 * To do: figure out if we can make this into a clean utility, or even in core.
34493 * As it will be useful for GFMs literal autolink extension (and maybe even
34494 * tables?)
34495 *
34496 * @type {Resolver}
34497 */
34498 function resolveAllLineSuffixes(events, context) {
34499 let eventIndex = 0 // Skip first.
34500
34501 while (++eventIndex <= events.length) {
34502 if (
34503 (eventIndex === events.length ||
34504 events[eventIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding) &&
34505 events[eventIndex - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data
34506 ) {
34507 const data = events[eventIndex - 1][1]
34508 const chunks = context.sliceStream(data)
34509 let index = chunks.length
34510 let bufferIndex = -1
34511 let size = 0
34512 /** @type {boolean | undefined} */
34513 let tabs
34514
34515 while (index--) {
34516 const chunk = chunks[index]
34517
34518 if (typeof chunk === 'string') {
34519 bufferIndex = chunk.length
34520
34521 while (chunk.charCodeAt(bufferIndex - 1) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.space) {
34522 size++
34523 bufferIndex--
34524 }
34525
34526 if (bufferIndex) break
34527 bufferIndex = -1
34528 }
34529 // Number
34530 else if (chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.horizontalTab) {
34531 tabs = true
34532 size++
34533 } else if (chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.virtualSpace) {
34534 // Empty
34535 } else {
34536 // Replacement character, exit.
34537 index++
34538 break
34539 }
34540 }
34541
34542 if (size) {
34543 const token = {
34544 type:
34545 eventIndex === events.length ||
34546 tabs ||
34547 size < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.hardBreakPrefixSizeMin
34548 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineSuffix
34549 : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakTrailing,
34550 start: {
34551 line: data.end.line,
34552 column: data.end.column - size,
34553 offset: data.end.offset - size,
34554 _index: data.start._index + index,
34555 _bufferIndex: index
34556 ? bufferIndex
34557 : data.start._bufferIndex + bufferIndex
34558 },
34559 end: Object.assign({}, data.end)
34560 }
34561
34562 data.end = Object.assign({}, token.start)
34563
34564 if (data.start.offset === data.end.offset) {
34565 Object.assign(data, token)
34566 } else {
34567 events.splice(
34568 eventIndex,
34569 0,
34570 ['enter', token, context],
34571 ['exit', token, context]
34572 )
34573 eventIndex += 2
34574 }
34575 }
34576
34577 eventIndex++
34578 }
34579 }
34580
34581 return events
34582 }
34583
34584
34585 /***/ }),
34586
34587 /***/ "../node_modules/micromark/dev/lib/parse.js":
34588 /*!**************************************************!*\
34589 !*** ../node_modules/micromark/dev/lib/parse.js ***!
34590 \**************************************************/
34591 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34592
34593 "use strict";
34594 __webpack_require__.r(__webpack_exports__);
34595 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34596 /* harmony export */ parse: () => (/* binding */ parse)
34597 /* harmony export */ });
34598 /* harmony import */ var micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-combine-extensions */ "../node_modules/micromark-util-combine-extensions/index.js");
34599 /* harmony import */ var _initialize_content_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./initialize/content.js */ "../node_modules/micromark/dev/lib/initialize/content.js");
34600 /* harmony import */ var _initialize_document_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./initialize/document.js */ "../node_modules/micromark/dev/lib/initialize/document.js");
34601 /* harmony import */ var _initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./initialize/flow.js */ "../node_modules/micromark/dev/lib/initialize/flow.js");
34602 /* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./initialize/text.js */ "../node_modules/micromark/dev/lib/initialize/text.js");
34603 /* harmony import */ var _create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./create-tokenizer.js */ "../node_modules/micromark/dev/lib/create-tokenizer.js");
34604 /* harmony import */ var _constructs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructs.js */ "../node_modules/micromark/dev/lib/constructs.js");
34605 /**
34606 * @typedef {import('micromark-util-types').Create} Create
34607 * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension
34608 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34609 * @typedef {import('micromark-util-types').ParseContext} ParseContext
34610 * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
34611 */
34612
34613
34614
34615
34616
34617
34618
34619
34620
34621 /**
34622 * @param {ParseOptions | null | undefined} [options]
34623 * @returns {ParseContext}
34624 */
34625 function parse(options) {
34626 const settings = options || {}
34627 const constructs = /** @type {FullNormalizedExtension} */ (
34628 (0,micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__.combineExtensions)([_constructs_js__WEBPACK_IMPORTED_MODULE_1__, ...(settings.extensions || [])])
34629 )
34630
34631 /** @type {ParseContext} */
34632 const parser = {
34633 defined: [],
34634 lazy: {},
34635 constructs,
34636 content: create(_initialize_content_js__WEBPACK_IMPORTED_MODULE_2__.content),
34637 document: create(_initialize_document_js__WEBPACK_IMPORTED_MODULE_3__.document),
34638 flow: create(_initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__.flow),
34639 string: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.string),
34640 text: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.text)
34641 }
34642
34643 return parser
34644
34645 /**
34646 * @param {InitialConstruct} initial
34647 */
34648 function create(initial) {
34649 return creator
34650 /** @type {Create} */
34651 function creator(from) {
34652 return (0,_create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__.createTokenizer)(parser, initial, from)
34653 }
34654 }
34655 }
34656
34657
34658 /***/ }),
34659
34660 /***/ "../node_modules/micromark/dev/lib/postprocess.js":
34661 /*!********************************************************!*\
34662 !*** ../node_modules/micromark/dev/lib/postprocess.js ***!
34663 \********************************************************/
34664 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34665
34666 "use strict";
34667 __webpack_require__.r(__webpack_exports__);
34668 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34669 /* harmony export */ postprocess: () => (/* binding */ postprocess)
34670 /* harmony export */ });
34671 /* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-subtokenize */ "../node_modules/micromark-util-subtokenize/dev/index.js");
34672 /**
34673 * @typedef {import('micromark-util-types').Event} Event
34674 */
34675
34676
34677
34678 /**
34679 * @param {Array<Event>} events
34680 * @returns {Array<Event>}
34681 */
34682 function postprocess(events) {
34683 while (!(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__.subtokenize)(events)) {
34684 // Empty
34685 }
34686
34687 return events
34688 }
34689
34690
34691 /***/ }),
34692
34693 /***/ "../node_modules/micromark/dev/lib/preprocess.js":
34694 /*!*******************************************************!*\
34695 !*** ../node_modules/micromark/dev/lib/preprocess.js ***!
34696 \*******************************************************/
34697 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34698
34699 "use strict";
34700 __webpack_require__.r(__webpack_exports__);
34701 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34702 /* harmony export */ preprocess: () => (/* binding */ preprocess)
34703 /* harmony export */ });
34704 /* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ "../node_modules/micromark-util-symbol/codes.js");
34705 /* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ "../node_modules/micromark-util-symbol/constants.js");
34706 /**
34707 * @typedef {import('micromark-util-types').Chunk} Chunk
34708 * @typedef {import('micromark-util-types').Code} Code
34709 * @typedef {import('micromark-util-types').Encoding} Encoding
34710 * @typedef {import('micromark-util-types').Value} Value
34711 */
34712
34713 /**
34714 * @callback Preprocessor
34715 * @param {Value} value
34716 * @param {Encoding | null | undefined} [encoding]
34717 * @param {boolean | null | undefined} [end=false]
34718 * @returns {Array<Chunk>}
34719 */
34720
34721
34722
34723
34724 const search = /[\0\t\n\r]/g
34725
34726 /**
34727 * @returns {Preprocessor}
34728 */
34729 function preprocess() {
34730 let column = 1
34731 let buffer = ''
34732 /** @type {boolean | undefined} */
34733 let start = true
34734 /** @type {boolean | undefined} */
34735 let atCarriageReturn
34736
34737 return preprocessor
34738
34739 /** @type {Preprocessor} */
34740 function preprocessor(value, encoding, end) {
34741 /** @type {Array<Chunk>} */
34742 const chunks = []
34743 /** @type {RegExpMatchArray | null} */
34744 let match
34745 /** @type {number} */
34746 let next
34747 /** @type {number} */
34748 let startPosition
34749 /** @type {number} */
34750 let endPosition
34751 /** @type {Code} */
34752 let code
34753
34754 // @ts-expect-error `Buffer` does allow an encoding.
34755 value = buffer + value.toString(encoding)
34756 startPosition = 0
34757 buffer = ''
34758
34759 if (start) {
34760 // To do: `markdown-rs` actually parses BOMs (byte order mark).
34761 if (value.charCodeAt(0) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.byteOrderMarker) {
34762 startPosition++
34763 }
34764
34765 start = undefined
34766 }
34767
34768 while (startPosition < value.length) {
34769 search.lastIndex = startPosition
34770 match = search.exec(value)
34771 endPosition =
34772 match && match.index !== undefined ? match.index : value.length
34773 code = value.charCodeAt(endPosition)
34774
34775 if (!match) {
34776 buffer = value.slice(startPosition)
34777 break
34778 }
34779
34780 if (
34781 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lf &&
34782 startPosition === endPosition &&
34783 atCarriageReturn
34784 ) {
34785 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed)
34786 atCarriageReturn = undefined
34787 } else {
34788 if (atCarriageReturn) {
34789 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn)
34790 atCarriageReturn = undefined
34791 }
34792
34793 if (startPosition < endPosition) {
34794 chunks.push(value.slice(startPosition, endPosition))
34795 column += endPosition - startPosition
34796 }
34797
34798 switch (code) {
34799 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.nul: {
34800 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.replacementCharacter)
34801 column++
34802
34803 break
34804 }
34805
34806 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ht: {
34807 next = Math.ceil(column / micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_1__.constants.tabSize) * micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_1__.constants.tabSize
34808 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab)
34809 while (column++ < next) chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace)
34810
34811 break
34812 }
34813
34814 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lf: {
34815 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed)
34816 column = 1
34817
34818 break
34819 }
34820
34821 default: {
34822 atCarriageReturn = true
34823 column = 1
34824 }
34825 }
34826 }
34827
34828 startPosition = endPosition + 1
34829 }
34830
34831 if (end) {
34832 if (atCarriageReturn) chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn)
34833 if (buffer) chunks.push(buffer)
34834 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof)
34835 }
34836
34837 return chunks
34838 }
34839 }
34840
34841
34842 /***/ }),
34843
34844 /***/ "../node_modules/property-information/index.js":
34845 /*!*****************************************************!*\
34846 !*** ../node_modules/property-information/index.js ***!
34847 \*****************************************************/
34848 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34849
34850 "use strict";
34851 __webpack_require__.r(__webpack_exports__);
34852 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34853 /* harmony export */ find: () => (/* reexport safe */ _lib_find_js__WEBPACK_IMPORTED_MODULE_0__.find),
34854 /* harmony export */ hastToReact: () => (/* reexport safe */ _lib_hast_to_react_js__WEBPACK_IMPORTED_MODULE_1__.hastToReact),
34855 /* harmony export */ html: () => (/* binding */ html),
34856 /* harmony export */ normalize: () => (/* reexport safe */ _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__.normalize),
34857 /* harmony export */ svg: () => (/* binding */ svg)
34858 /* harmony export */ });
34859 /* harmony import */ var _lib_util_merge_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/util/merge.js */ "../node_modules/property-information/lib/util/merge.js");
34860 /* harmony import */ var _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/xlink.js */ "../node_modules/property-information/lib/xlink.js");
34861 /* harmony import */ var _lib_xml_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/xml.js */ "../node_modules/property-information/lib/xml.js");
34862 /* harmony import */ var _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/xmlns.js */ "../node_modules/property-information/lib/xmlns.js");
34863 /* harmony import */ var _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/aria.js */ "../node_modules/property-information/lib/aria.js");
34864 /* harmony import */ var _lib_html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/html.js */ "../node_modules/property-information/lib/html.js");
34865 /* harmony import */ var _lib_svg_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lib/svg.js */ "../node_modules/property-information/lib/svg.js");
34866 /* harmony import */ var _lib_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/find.js */ "../node_modules/property-information/lib/find.js");
34867 /* harmony import */ var _lib_hast_to_react_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/hast-to-react.js */ "../node_modules/property-information/lib/hast-to-react.js");
34868 /* harmony import */ var _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/normalize.js */ "../node_modules/property-information/lib/normalize.js");
34869 /**
34870 * @typedef {import('./lib/util/info.js').Info} Info
34871 * @typedef {import('./lib/util/schema.js').Schema} Schema
34872 */
34873
34874
34875
34876
34877
34878
34879
34880
34881
34882
34883
34884
34885 const html = (0,_lib_util_merge_js__WEBPACK_IMPORTED_MODULE_3__.merge)([_lib_xml_js__WEBPACK_IMPORTED_MODULE_4__.xml, _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__.xlink, _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__.xmlns, _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__.aria, _lib_html_js__WEBPACK_IMPORTED_MODULE_8__.html], 'html')
34886 const svg = (0,_lib_util_merge_js__WEBPACK_IMPORTED_MODULE_3__.merge)([_lib_xml_js__WEBPACK_IMPORTED_MODULE_4__.xml, _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__.xlink, _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__.xmlns, _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__.aria, _lib_svg_js__WEBPACK_IMPORTED_MODULE_9__.svg], 'svg')
34887
34888
34889 /***/ }),
34890
34891 /***/ "../node_modules/property-information/lib/aria.js":
34892 /*!********************************************************!*\
34893 !*** ../node_modules/property-information/lib/aria.js ***!
34894 \********************************************************/
34895 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34896
34897 "use strict";
34898 __webpack_require__.r(__webpack_exports__);
34899 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34900 /* harmony export */ aria: () => (/* binding */ aria)
34901 /* harmony export */ });
34902 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
34903 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
34904
34905
34906
34907 const aria = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
34908 transform(_, prop) {
34909 return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()
34910 },
34911 properties: {
34912 ariaActiveDescendant: null,
34913 ariaAtomic: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34914 ariaAutoComplete: null,
34915 ariaBusy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34916 ariaChecked: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34917 ariaColCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34918 ariaColIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34919 ariaColSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34920 ariaControls: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34921 ariaCurrent: null,
34922 ariaDescribedBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34923 ariaDetails: null,
34924 ariaDisabled: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34925 ariaDropEffect: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34926 ariaErrorMessage: null,
34927 ariaExpanded: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34928 ariaFlowTo: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34929 ariaGrabbed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34930 ariaHasPopup: null,
34931 ariaHidden: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34932 ariaInvalid: null,
34933 ariaKeyShortcuts: null,
34934 ariaLabel: null,
34935 ariaLabelledBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34936 ariaLevel: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34937 ariaLive: null,
34938 ariaModal: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34939 ariaMultiLine: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34940 ariaMultiSelectable: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34941 ariaOrientation: null,
34942 ariaOwns: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34943 ariaPlaceholder: null,
34944 ariaPosInSet: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34945 ariaPressed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34946 ariaReadOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34947 ariaRelevant: null,
34948 ariaRequired: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34949 ariaRoleDescription: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34950 ariaRowCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34951 ariaRowIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34952 ariaRowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34953 ariaSelected: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34954 ariaSetSize: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34955 ariaSort: null,
34956 ariaValueMax: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34957 ariaValueMin: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34958 ariaValueNow: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34959 ariaValueText: null,
34960 role: null
34961 }
34962 })
34963
34964
34965 /***/ }),
34966
34967 /***/ "../node_modules/property-information/lib/find.js":
34968 /*!********************************************************!*\
34969 !*** ../node_modules/property-information/lib/find.js ***!
34970 \********************************************************/
34971 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34972
34973 "use strict";
34974 __webpack_require__.r(__webpack_exports__);
34975 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34976 /* harmony export */ find: () => (/* binding */ find)
34977 /* harmony export */ });
34978 /* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normalize.js */ "../node_modules/property-information/lib/normalize.js");
34979 /* harmony import */ var _util_defined_info_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/defined-info.js */ "../node_modules/property-information/lib/util/defined-info.js");
34980 /* harmony import */ var _util_info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/info.js */ "../node_modules/property-information/lib/util/info.js");
34981 /**
34982 * @typedef {import('./util/schema.js').Schema} Schema
34983 */
34984
34985
34986
34987
34988
34989 const valid = /^data[-\w.:]+$/i
34990 const dash = /-[a-z]/g
34991 const cap = /[A-Z]/g
34992
34993 /**
34994 * @param {Schema} schema
34995 * @param {string} value
34996 * @returns {Info}
34997 */
34998 function find(schema, value) {
34999 const normal = (0,_normalize_js__WEBPACK_IMPORTED_MODULE_0__.normalize)(value)
35000 let prop = value
35001 let Type = _util_info_js__WEBPACK_IMPORTED_MODULE_1__.Info
35002
35003 if (normal in schema.normal) {
35004 return schema.property[schema.normal[normal]]
35005 }
35006
35007 if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {
35008 // Attribute or property.
35009 if (value.charAt(4) === '-') {
35010 // Turn it into a property.
35011 const rest = value.slice(5).replace(dash, camelcase)
35012 prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)
35013 } else {
35014 // Turn it into an attribute.
35015 const rest = value.slice(4)
35016
35017 if (!dash.test(rest)) {
35018 let dashes = rest.replace(cap, kebab)
35019
35020 if (dashes.charAt(0) !== '-') {
35021 dashes = '-' + dashes
35022 }
35023
35024 value = 'data' + dashes
35025 }
35026 }
35027
35028 Type = _util_defined_info_js__WEBPACK_IMPORTED_MODULE_2__.DefinedInfo
35029 }
35030
35031 return new Type(prop, value)
35032 }
35033
35034 /**
35035 * @param {string} $0
35036 * @returns {string}
35037 */
35038 function kebab($0) {
35039 return '-' + $0.toLowerCase()
35040 }
35041
35042 /**
35043 * @param {string} $0
35044 * @returns {string}
35045 */
35046 function camelcase($0) {
35047 return $0.charAt(1).toUpperCase()
35048 }
35049
35050
35051 /***/ }),
35052
35053 /***/ "../node_modules/property-information/lib/hast-to-react.js":
35054 /*!*****************************************************************!*\
35055 !*** ../node_modules/property-information/lib/hast-to-react.js ***!
35056 \*****************************************************************/
35057 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35058
35059 "use strict";
35060 __webpack_require__.r(__webpack_exports__);
35061 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35062 /* harmony export */ hastToReact: () => (/* binding */ hastToReact)
35063 /* harmony export */ });
35064 /**
35065 * `hast` is close to `React`, but differs in a couple of cases.
35066 *
35067 * To get a React property from a hast property, check if it is in
35068 * `hastToReact`, if it is, then use the corresponding value,
35069 * otherwise, use the hast property.
35070 *
35071 * @type {Record<string, string>}
35072 */
35073 const hastToReact = {
35074 classId: 'classID',
35075 dataType: 'datatype',
35076 itemId: 'itemID',
35077 strokeDashArray: 'strokeDasharray',
35078 strokeDashOffset: 'strokeDashoffset',
35079 strokeLineCap: 'strokeLinecap',
35080 strokeLineJoin: 'strokeLinejoin',
35081 strokeMiterLimit: 'strokeMiterlimit',
35082 typeOf: 'typeof',
35083 xLinkActuate: 'xlinkActuate',
35084 xLinkArcRole: 'xlinkArcrole',
35085 xLinkHref: 'xlinkHref',
35086 xLinkRole: 'xlinkRole',
35087 xLinkShow: 'xlinkShow',
35088 xLinkTitle: 'xlinkTitle',
35089 xLinkType: 'xlinkType',
35090 xmlnsXLink: 'xmlnsXlink'
35091 }
35092
35093
35094 /***/ }),
35095
35096 /***/ "../node_modules/property-information/lib/html.js":
35097 /*!********************************************************!*\
35098 !*** ../node_modules/property-information/lib/html.js ***!
35099 \********************************************************/
35100 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35101
35102 "use strict";
35103 __webpack_require__.r(__webpack_exports__);
35104 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35105 /* harmony export */ html: () => (/* binding */ html)
35106 /* harmony export */ });
35107 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35108 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35109 /* harmony import */ var _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/case-insensitive-transform.js */ "../node_modules/property-information/lib/util/case-insensitive-transform.js");
35110
35111
35112
35113
35114 const html = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35115 space: 'html',
35116 attributes: {
35117 acceptcharset: 'accept-charset',
35118 classname: 'class',
35119 htmlfor: 'for',
35120 httpequiv: 'http-equiv'
35121 },
35122 transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,
35123 mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],
35124 properties: {
35125 // Standard Properties.
35126 abbr: null,
35127 accept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35128 acceptCharset: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35129 accessKey: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35130 action: null,
35131 allow: null,
35132 allowFullScreen: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35133 allowPaymentRequest: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35134 allowUserMedia: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35135 alt: null,
35136 as: null,
35137 async: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35138 autoCapitalize: null,
35139 autoComplete: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35140 autoFocus: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35141 autoPlay: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35142 capture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35143 charSet: null,
35144 checked: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35145 cite: null,
35146 className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35147 cols: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35148 colSpan: null,
35149 content: null,
35150 contentEditable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35151 controls: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35152 controlsList: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35153 coords: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number | _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35154 crossOrigin: null,
35155 data: null,
35156 dateTime: null,
35157 decoding: null,
35158 default: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35159 defer: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35160 dir: null,
35161 dirName: null,
35162 disabled: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35163 download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.overloadedBoolean,
35164 draggable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35165 encType: null,
35166 enterKeyHint: null,
35167 form: null,
35168 formAction: null,
35169 formEncType: null,
35170 formMethod: null,
35171 formNoValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35172 formTarget: null,
35173 headers: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35174 height: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35175 hidden: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35176 high: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35177 href: null,
35178 hrefLang: null,
35179 htmlFor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35180 httpEquiv: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35181 id: null,
35182 imageSizes: null,
35183 imageSrcSet: null,
35184 inputMode: null,
35185 integrity: null,
35186 is: null,
35187 isMap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35188 itemId: null,
35189 itemProp: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35190 itemRef: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35191 itemScope: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35192 itemType: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35193 kind: null,
35194 label: null,
35195 lang: null,
35196 language: null,
35197 list: null,
35198 loading: null,
35199 loop: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35200 low: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35201 manifest: null,
35202 max: null,
35203 maxLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35204 media: null,
35205 method: null,
35206 min: null,
35207 minLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35208 multiple: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35209 muted: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35210 name: null,
35211 nonce: null,
35212 noModule: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35213 noValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35214 onAbort: null,
35215 onAfterPrint: null,
35216 onAuxClick: null,
35217 onBeforeMatch: null,
35218 onBeforePrint: null,
35219 onBeforeUnload: null,
35220 onBlur: null,
35221 onCancel: null,
35222 onCanPlay: null,
35223 onCanPlayThrough: null,
35224 onChange: null,
35225 onClick: null,
35226 onClose: null,
35227 onContextLost: null,
35228 onContextMenu: null,
35229 onContextRestored: null,
35230 onCopy: null,
35231 onCueChange: null,
35232 onCut: null,
35233 onDblClick: null,
35234 onDrag: null,
35235 onDragEnd: null,
35236 onDragEnter: null,
35237 onDragExit: null,
35238 onDragLeave: null,
35239 onDragOver: null,
35240 onDragStart: null,
35241 onDrop: null,
35242 onDurationChange: null,
35243 onEmptied: null,
35244 onEnded: null,
35245 onError: null,
35246 onFocus: null,
35247 onFormData: null,
35248 onHashChange: null,
35249 onInput: null,
35250 onInvalid: null,
35251 onKeyDown: null,
35252 onKeyPress: null,
35253 onKeyUp: null,
35254 onLanguageChange: null,
35255 onLoad: null,
35256 onLoadedData: null,
35257 onLoadedMetadata: null,
35258 onLoadEnd: null,
35259 onLoadStart: null,
35260 onMessage: null,
35261 onMessageError: null,
35262 onMouseDown: null,
35263 onMouseEnter: null,
35264 onMouseLeave: null,
35265 onMouseMove: null,
35266 onMouseOut: null,
35267 onMouseOver: null,
35268 onMouseUp: null,
35269 onOffline: null,
35270 onOnline: null,
35271 onPageHide: null,
35272 onPageShow: null,
35273 onPaste: null,
35274 onPause: null,
35275 onPlay: null,
35276 onPlaying: null,
35277 onPopState: null,
35278 onProgress: null,
35279 onRateChange: null,
35280 onRejectionHandled: null,
35281 onReset: null,
35282 onResize: null,
35283 onScroll: null,
35284 onScrollEnd: null,
35285 onSecurityPolicyViolation: null,
35286 onSeeked: null,
35287 onSeeking: null,
35288 onSelect: null,
35289 onSlotChange: null,
35290 onStalled: null,
35291 onStorage: null,
35292 onSubmit: null,
35293 onSuspend: null,
35294 onTimeUpdate: null,
35295 onToggle: null,
35296 onUnhandledRejection: null,
35297 onUnload: null,
35298 onVolumeChange: null,
35299 onWaiting: null,
35300 onWheel: null,
35301 open: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35302 optimum: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35303 pattern: null,
35304 ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35305 placeholder: null,
35306 playsInline: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35307 poster: null,
35308 preload: null,
35309 readOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35310 referrerPolicy: null,
35311 rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35312 required: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35313 reversed: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35314 rows: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35315 rowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35316 sandbox: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35317 scope: null,
35318 scoped: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35319 seamless: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35320 selected: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35321 shape: null,
35322 size: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35323 sizes: null,
35324 slot: null,
35325 span: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35326 spellCheck: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35327 src: null,
35328 srcDoc: null,
35329 srcLang: null,
35330 srcSet: null,
35331 start: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35332 step: null,
35333 style: null,
35334 tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35335 target: null,
35336 title: null,
35337 translate: null,
35338 type: null,
35339 typeMustMatch: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35340 useMap: null,
35341 value: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35342 width: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35343 wrap: null,
35344
35345 // Legacy.
35346 // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis
35347 align: null, // Several. Use CSS `text-align` instead,
35348 aLink: null, // `<body>`. Use CSS `a:active {color}` instead
35349 archive: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated, // `<object>`. List of URIs to archives
35350 axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`
35351 background: null, // `<body>`. Use CSS `background-image` instead
35352 bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead
35353 border: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<table>`. Use CSS `border-width` instead,
35354 borderColor: null, // `<table>`. Use CSS `border-color` instead,
35355 bottomMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35356 cellPadding: null, // `<table>`
35357 cellSpacing: null, // `<table>`
35358 char: null, // Several table elements. When `align=char`, sets the character to align on
35359 charOff: null, // Several table elements. When `char`, offsets the alignment
35360 classId: null, // `<object>`
35361 clear: null, // `<br>`. Use CSS `clear` instead
35362 code: null, // `<object>`
35363 codeBase: null, // `<object>`
35364 codeType: null, // `<object>`
35365 color: null, // `<font>` and `<hr>`. Use CSS instead
35366 compact: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // Lists. Use CSS to reduce space between items instead
35367 declare: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<object>`
35368 event: null, // `<script>`
35369 face: null, // `<font>`. Use CSS instead
35370 frame: null, // `<table>`
35371 frameBorder: null, // `<iframe>`. Use CSS `border` instead
35372 hSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<img>` and `<object>`
35373 leftMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35374 link: null, // `<body>`. Use CSS `a:link {color: *}` instead
35375 longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
35376 lowSrc: null, // `<img>`. Use a `<picture>`
35377 marginHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35378 marginWidth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35379 noResize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<frame>`
35380 noHref: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<area>`. Use no href instead of an explicit `nohref`
35381 noShade: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<hr>`. Use background-color and height instead of borders
35382 noWrap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<td>` and `<th>`
35383 object: null, // `<applet>`
35384 profile: null, // `<head>`
35385 prompt: null, // `<isindex>`
35386 rev: null, // `<link>`
35387 rightMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35388 rules: null, // `<table>`
35389 scheme: null, // `<meta>`
35390 scrolling: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish, // `<frame>`. Use overflow in the child context
35391 standby: null, // `<object>`
35392 summary: null, // `<table>`
35393 text: null, // `<body>`. Use CSS `color` instead
35394 topMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35395 valueType: null, // `<param>`
35396 version: null, // `<html>`. Use a doctype.
35397 vAlign: null, // Several. Use CSS `vertical-align` instead
35398 vLink: null, // `<body>`. Use CSS `a:visited {color}` instead
35399 vSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<img>` and `<object>`
35400
35401 // Non-standard Properties.
35402 allowTransparency: null,
35403 autoCorrect: null,
35404 autoSave: null,
35405 disablePictureInPicture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35406 disableRemotePlayback: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35407 prefix: null,
35408 property: null,
35409 results: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35410 security: null,
35411 unselectable: null
35412 }
35413 })
35414
35415
35416 /***/ }),
35417
35418 /***/ "../node_modules/property-information/lib/normalize.js":
35419 /*!*************************************************************!*\
35420 !*** ../node_modules/property-information/lib/normalize.js ***!
35421 \*************************************************************/
35422 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35423
35424 "use strict";
35425 __webpack_require__.r(__webpack_exports__);
35426 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35427 /* harmony export */ normalize: () => (/* binding */ normalize)
35428 /* harmony export */ });
35429 /**
35430 * @param {string} value
35431 * @returns {string}
35432 */
35433 function normalize(value) {
35434 return value.toLowerCase()
35435 }
35436
35437
35438 /***/ }),
35439
35440 /***/ "../node_modules/property-information/lib/svg.js":
35441 /*!*******************************************************!*\
35442 !*** ../node_modules/property-information/lib/svg.js ***!
35443 \*******************************************************/
35444 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35445
35446 "use strict";
35447 __webpack_require__.r(__webpack_exports__);
35448 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35449 /* harmony export */ svg: () => (/* binding */ svg)
35450 /* harmony export */ });
35451 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35452 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35453 /* harmony import */ var _util_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/case-sensitive-transform.js */ "../node_modules/property-information/lib/util/case-sensitive-transform.js");
35454
35455
35456
35457
35458 const svg = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35459 space: 'svg',
35460 attributes: {
35461 accentHeight: 'accent-height',
35462 alignmentBaseline: 'alignment-baseline',
35463 arabicForm: 'arabic-form',
35464 baselineShift: 'baseline-shift',
35465 capHeight: 'cap-height',
35466 className: 'class',
35467 clipPath: 'clip-path',
35468 clipRule: 'clip-rule',
35469 colorInterpolation: 'color-interpolation',
35470 colorInterpolationFilters: 'color-interpolation-filters',
35471 colorProfile: 'color-profile',
35472 colorRendering: 'color-rendering',
35473 crossOrigin: 'crossorigin',
35474 dataType: 'datatype',
35475 dominantBaseline: 'dominant-baseline',
35476 enableBackground: 'enable-background',
35477 fillOpacity: 'fill-opacity',
35478 fillRule: 'fill-rule',
35479 floodColor: 'flood-color',
35480 floodOpacity: 'flood-opacity',
35481 fontFamily: 'font-family',
35482 fontSize: 'font-size',
35483 fontSizeAdjust: 'font-size-adjust',
35484 fontStretch: 'font-stretch',
35485 fontStyle: 'font-style',
35486 fontVariant: 'font-variant',
35487 fontWeight: 'font-weight',
35488 glyphName: 'glyph-name',
35489 glyphOrientationHorizontal: 'glyph-orientation-horizontal',
35490 glyphOrientationVertical: 'glyph-orientation-vertical',
35491 hrefLang: 'hreflang',
35492 horizAdvX: 'horiz-adv-x',
35493 horizOriginX: 'horiz-origin-x',
35494 horizOriginY: 'horiz-origin-y',
35495 imageRendering: 'image-rendering',
35496 letterSpacing: 'letter-spacing',
35497 lightingColor: 'lighting-color',
35498 markerEnd: 'marker-end',
35499 markerMid: 'marker-mid',
35500 markerStart: 'marker-start',
35501 navDown: 'nav-down',
35502 navDownLeft: 'nav-down-left',
35503 navDownRight: 'nav-down-right',
35504 navLeft: 'nav-left',
35505 navNext: 'nav-next',
35506 navPrev: 'nav-prev',
35507 navRight: 'nav-right',
35508 navUp: 'nav-up',
35509 navUpLeft: 'nav-up-left',
35510 navUpRight: 'nav-up-right',
35511 onAbort: 'onabort',
35512 onActivate: 'onactivate',
35513 onAfterPrint: 'onafterprint',
35514 onBeforePrint: 'onbeforeprint',
35515 onBegin: 'onbegin',
35516 onCancel: 'oncancel',
35517 onCanPlay: 'oncanplay',
35518 onCanPlayThrough: 'oncanplaythrough',
35519 onChange: 'onchange',
35520 onClick: 'onclick',
35521 onClose: 'onclose',
35522 onCopy: 'oncopy',
35523 onCueChange: 'oncuechange',
35524 onCut: 'oncut',
35525 onDblClick: 'ondblclick',
35526 onDrag: 'ondrag',
35527 onDragEnd: 'ondragend',
35528 onDragEnter: 'ondragenter',
35529 onDragExit: 'ondragexit',
35530 onDragLeave: 'ondragleave',
35531 onDragOver: 'ondragover',
35532 onDragStart: 'ondragstart',
35533 onDrop: 'ondrop',
35534 onDurationChange: 'ondurationchange',
35535 onEmptied: 'onemptied',
35536 onEnd: 'onend',
35537 onEnded: 'onended',
35538 onError: 'onerror',
35539 onFocus: 'onfocus',
35540 onFocusIn: 'onfocusin',
35541 onFocusOut: 'onfocusout',
35542 onHashChange: 'onhashchange',
35543 onInput: 'oninput',
35544 onInvalid: 'oninvalid',
35545 onKeyDown: 'onkeydown',
35546 onKeyPress: 'onkeypress',
35547 onKeyUp: 'onkeyup',
35548 onLoad: 'onload',
35549 onLoadedData: 'onloadeddata',
35550 onLoadedMetadata: 'onloadedmetadata',
35551 onLoadStart: 'onloadstart',
35552 onMessage: 'onmessage',
35553 onMouseDown: 'onmousedown',
35554 onMouseEnter: 'onmouseenter',
35555 onMouseLeave: 'onmouseleave',
35556 onMouseMove: 'onmousemove',
35557 onMouseOut: 'onmouseout',
35558 onMouseOver: 'onmouseover',
35559 onMouseUp: 'onmouseup',
35560 onMouseWheel: 'onmousewheel',
35561 onOffline: 'onoffline',
35562 onOnline: 'ononline',
35563 onPageHide: 'onpagehide',
35564 onPageShow: 'onpageshow',
35565 onPaste: 'onpaste',
35566 onPause: 'onpause',
35567 onPlay: 'onplay',
35568 onPlaying: 'onplaying',
35569 onPopState: 'onpopstate',
35570 onProgress: 'onprogress',
35571 onRateChange: 'onratechange',
35572 onRepeat: 'onrepeat',
35573 onReset: 'onreset',
35574 onResize: 'onresize',
35575 onScroll: 'onscroll',
35576 onSeeked: 'onseeked',
35577 onSeeking: 'onseeking',
35578 onSelect: 'onselect',
35579 onShow: 'onshow',
35580 onStalled: 'onstalled',
35581 onStorage: 'onstorage',
35582 onSubmit: 'onsubmit',
35583 onSuspend: 'onsuspend',
35584 onTimeUpdate: 'ontimeupdate',
35585 onToggle: 'ontoggle',
35586 onUnload: 'onunload',
35587 onVolumeChange: 'onvolumechange',
35588 onWaiting: 'onwaiting',
35589 onZoom: 'onzoom',
35590 overlinePosition: 'overline-position',
35591 overlineThickness: 'overline-thickness',
35592 paintOrder: 'paint-order',
35593 panose1: 'panose-1',
35594 pointerEvents: 'pointer-events',
35595 referrerPolicy: 'referrerpolicy',
35596 renderingIntent: 'rendering-intent',
35597 shapeRendering: 'shape-rendering',
35598 stopColor: 'stop-color',
35599 stopOpacity: 'stop-opacity',
35600 strikethroughPosition: 'strikethrough-position',
35601 strikethroughThickness: 'strikethrough-thickness',
35602 strokeDashArray: 'stroke-dasharray',
35603 strokeDashOffset: 'stroke-dashoffset',
35604 strokeLineCap: 'stroke-linecap',
35605 strokeLineJoin: 'stroke-linejoin',
35606 strokeMiterLimit: 'stroke-miterlimit',
35607 strokeOpacity: 'stroke-opacity',
35608 strokeWidth: 'stroke-width',
35609 tabIndex: 'tabindex',
35610 textAnchor: 'text-anchor',
35611 textDecoration: 'text-decoration',
35612 textRendering: 'text-rendering',
35613 typeOf: 'typeof',
35614 underlinePosition: 'underline-position',
35615 underlineThickness: 'underline-thickness',
35616 unicodeBidi: 'unicode-bidi',
35617 unicodeRange: 'unicode-range',
35618 unitsPerEm: 'units-per-em',
35619 vAlphabetic: 'v-alphabetic',
35620 vHanging: 'v-hanging',
35621 vIdeographic: 'v-ideographic',
35622 vMathematical: 'v-mathematical',
35623 vectorEffect: 'vector-effect',
35624 vertAdvY: 'vert-adv-y',
35625 vertOriginX: 'vert-origin-x',
35626 vertOriginY: 'vert-origin-y',
35627 wordSpacing: 'word-spacing',
35628 writingMode: 'writing-mode',
35629 xHeight: 'x-height',
35630 // These were camelcased in Tiny. Now lowercased in SVG 2
35631 playbackOrder: 'playbackorder',
35632 timelineBegin: 'timelinebegin'
35633 },
35634 transform: _util_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseSensitiveTransform,
35635 properties: {
35636 about: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35637 accentHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35638 accumulate: null,
35639 additive: null,
35640 alignmentBaseline: null,
35641 alphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35642 amplitude: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35643 arabicForm: null,
35644 ascent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35645 attributeName: null,
35646 attributeType: null,
35647 azimuth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35648 bandwidth: null,
35649 baselineShift: null,
35650 baseFrequency: null,
35651 baseProfile: null,
35652 bbox: null,
35653 begin: null,
35654 bias: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35655 by: null,
35656 calcMode: null,
35657 capHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35658 className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35659 clip: null,
35660 clipPath: null,
35661 clipPathUnits: null,
35662 clipRule: null,
35663 color: null,
35664 colorInterpolation: null,
35665 colorInterpolationFilters: null,
35666 colorProfile: null,
35667 colorRendering: null,
35668 content: null,
35669 contentScriptType: null,
35670 contentStyleType: null,
35671 crossOrigin: null,
35672 cursor: null,
35673 cx: null,
35674 cy: null,
35675 d: null,
35676 dataType: null,
35677 defaultAction: null,
35678 descent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35679 diffuseConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35680 direction: null,
35681 display: null,
35682 dur: null,
35683 divisor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35684 dominantBaseline: null,
35685 download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35686 dx: null,
35687 dy: null,
35688 edgeMode: null,
35689 editable: null,
35690 elevation: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35691 enableBackground: null,
35692 end: null,
35693 event: null,
35694 exponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35695 externalResourcesRequired: null,
35696 fill: null,
35697 fillOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35698 fillRule: null,
35699 filter: null,
35700 filterRes: null,
35701 filterUnits: null,
35702 floodColor: null,
35703 floodOpacity: null,
35704 focusable: null,
35705 focusHighlight: null,
35706 fontFamily: null,
35707 fontSize: null,
35708 fontSizeAdjust: null,
35709 fontStretch: null,
35710 fontStyle: null,
35711 fontVariant: null,
35712 fontWeight: null,
35713 format: null,
35714 fr: null,
35715 from: null,
35716 fx: null,
35717 fy: null,
35718 g1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35719 g2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35720 glyphName: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35721 glyphOrientationHorizontal: null,
35722 glyphOrientationVertical: null,
35723 glyphRef: null,
35724 gradientTransform: null,
35725 gradientUnits: null,
35726 handler: null,
35727 hanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35728 hatchContentUnits: null,
35729 hatchUnits: null,
35730 height: null,
35731 href: null,
35732 hrefLang: null,
35733 horizAdvX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35734 horizOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35735 horizOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35736 id: null,
35737 ideographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35738 imageRendering: null,
35739 initialVisibility: null,
35740 in: null,
35741 in2: null,
35742 intercept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35743 k: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35744 k1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35745 k2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35746 k3: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35747 k4: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35748 kernelMatrix: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35749 kernelUnitLength: null,
35750 keyPoints: null, // SEMI_COLON_SEPARATED
35751 keySplines: null, // SEMI_COLON_SEPARATED
35752 keyTimes: null, // SEMI_COLON_SEPARATED
35753 kerning: null,
35754 lang: null,
35755 lengthAdjust: null,
35756 letterSpacing: null,
35757 lightingColor: null,
35758 limitingConeAngle: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35759 local: null,
35760 markerEnd: null,
35761 markerMid: null,
35762 markerStart: null,
35763 markerHeight: null,
35764 markerUnits: null,
35765 markerWidth: null,
35766 mask: null,
35767 maskContentUnits: null,
35768 maskUnits: null,
35769 mathematical: null,
35770 max: null,
35771 media: null,
35772 mediaCharacterEncoding: null,
35773 mediaContentEncodings: null,
35774 mediaSize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35775 mediaTime: null,
35776 method: null,
35777 min: null,
35778 mode: null,
35779 name: null,
35780 navDown: null,
35781 navDownLeft: null,
35782 navDownRight: null,
35783 navLeft: null,
35784 navNext: null,
35785 navPrev: null,
35786 navRight: null,
35787 navUp: null,
35788 navUpLeft: null,
35789 navUpRight: null,
35790 numOctaves: null,
35791 observer: null,
35792 offset: null,
35793 onAbort: null,
35794 onActivate: null,
35795 onAfterPrint: null,
35796 onBeforePrint: null,
35797 onBegin: null,
35798 onCancel: null,
35799 onCanPlay: null,
35800 onCanPlayThrough: null,
35801 onChange: null,
35802 onClick: null,
35803 onClose: null,
35804 onCopy: null,
35805 onCueChange: null,
35806 onCut: null,
35807 onDblClick: null,
35808 onDrag: null,
35809 onDragEnd: null,
35810 onDragEnter: null,
35811 onDragExit: null,
35812 onDragLeave: null,
35813 onDragOver: null,
35814 onDragStart: null,
35815 onDrop: null,
35816 onDurationChange: null,
35817 onEmptied: null,
35818 onEnd: null,
35819 onEnded: null,
35820 onError: null,
35821 onFocus: null,
35822 onFocusIn: null,
35823 onFocusOut: null,
35824 onHashChange: null,
35825 onInput: null,
35826 onInvalid: null,
35827 onKeyDown: null,
35828 onKeyPress: null,
35829 onKeyUp: null,
35830 onLoad: null,
35831 onLoadedData: null,
35832 onLoadedMetadata: null,
35833 onLoadStart: null,
35834 onMessage: null,
35835 onMouseDown: null,
35836 onMouseEnter: null,
35837 onMouseLeave: null,
35838 onMouseMove: null,
35839 onMouseOut: null,
35840 onMouseOver: null,
35841 onMouseUp: null,
35842 onMouseWheel: null,
35843 onOffline: null,
35844 onOnline: null,
35845 onPageHide: null,
35846 onPageShow: null,
35847 onPaste: null,
35848 onPause: null,
35849 onPlay: null,
35850 onPlaying: null,
35851 onPopState: null,
35852 onProgress: null,
35853 onRateChange: null,
35854 onRepeat: null,
35855 onReset: null,
35856 onResize: null,
35857 onScroll: null,
35858 onSeeked: null,
35859 onSeeking: null,
35860 onSelect: null,
35861 onShow: null,
35862 onStalled: null,
35863 onStorage: null,
35864 onSubmit: null,
35865 onSuspend: null,
35866 onTimeUpdate: null,
35867 onToggle: null,
35868 onUnload: null,
35869 onVolumeChange: null,
35870 onWaiting: null,
35871 onZoom: null,
35872 opacity: null,
35873 operator: null,
35874 order: null,
35875 orient: null,
35876 orientation: null,
35877 origin: null,
35878 overflow: null,
35879 overlay: null,
35880 overlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35881 overlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35882 paintOrder: null,
35883 panose1: null,
35884 path: null,
35885 pathLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35886 patternContentUnits: null,
35887 patternTransform: null,
35888 patternUnits: null,
35889 phase: null,
35890 ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35891 pitch: null,
35892 playbackOrder: null,
35893 pointerEvents: null,
35894 points: null,
35895 pointsAtX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35896 pointsAtY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35897 pointsAtZ: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35898 preserveAlpha: null,
35899 preserveAspectRatio: null,
35900 primitiveUnits: null,
35901 propagate: null,
35902 property: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35903 r: null,
35904 radius: null,
35905 referrerPolicy: null,
35906 refX: null,
35907 refY: null,
35908 rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35909 rev: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35910 renderingIntent: null,
35911 repeatCount: null,
35912 repeatDur: null,
35913 requiredExtensions: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35914 requiredFeatures: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35915 requiredFonts: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35916 requiredFormats: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35917 resource: null,
35918 restart: null,
35919 result: null,
35920 rotate: null,
35921 rx: null,
35922 ry: null,
35923 scale: null,
35924 seed: null,
35925 shapeRendering: null,
35926 side: null,
35927 slope: null,
35928 snapshotTime: null,
35929 specularConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35930 specularExponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35931 spreadMethod: null,
35932 spacing: null,
35933 startOffset: null,
35934 stdDeviation: null,
35935 stemh: null,
35936 stemv: null,
35937 stitchTiles: null,
35938 stopColor: null,
35939 stopOpacity: null,
35940 strikethroughPosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35941 strikethroughThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35942 string: null,
35943 stroke: null,
35944 strokeDashArray: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35945 strokeDashOffset: null,
35946 strokeLineCap: null,
35947 strokeLineJoin: null,
35948 strokeMiterLimit: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35949 strokeOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35950 strokeWidth: null,
35951 style: null,
35952 surfaceScale: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35953 syncBehavior: null,
35954 syncBehaviorDefault: null,
35955 syncMaster: null,
35956 syncTolerance: null,
35957 syncToleranceDefault: null,
35958 systemLanguage: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35959 tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35960 tableValues: null,
35961 target: null,
35962 targetX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35963 targetY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35964 textAnchor: null,
35965 textDecoration: null,
35966 textRendering: null,
35967 textLength: null,
35968 timelineBegin: null,
35969 title: null,
35970 transformBehavior: null,
35971 type: null,
35972 typeOf: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35973 to: null,
35974 transform: null,
35975 u1: null,
35976 u2: null,
35977 underlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35978 underlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35979 unicode: null,
35980 unicodeBidi: null,
35981 unicodeRange: null,
35982 unitsPerEm: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35983 values: null,
35984 vAlphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35985 vMathematical: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35986 vectorEffect: null,
35987 vHanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35988 vIdeographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35989 version: null,
35990 vertAdvY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35991 vertOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35992 vertOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35993 viewBox: null,
35994 viewTarget: null,
35995 visibility: null,
35996 width: null,
35997 widths: null,
35998 wordSpacing: null,
35999 writingMode: null,
36000 x: null,
36001 x1: null,
36002 x2: null,
36003 xChannelSelector: null,
36004 xHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36005 y: null,
36006 y1: null,
36007 y2: null,
36008 yChannelSelector: null,
36009 z: null,
36010 zoomAndPan: null
36011 }
36012 })
36013
36014
36015 /***/ }),
36016
36017 /***/ "../node_modules/property-information/lib/util/case-insensitive-transform.js":
36018 /*!***********************************************************************************!*\
36019 !*** ../node_modules/property-information/lib/util/case-insensitive-transform.js ***!
36020 \***********************************************************************************/
36021 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36022
36023 "use strict";
36024 __webpack_require__.r(__webpack_exports__);
36025 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36026 /* harmony export */ caseInsensitiveTransform: () => (/* binding */ caseInsensitiveTransform)
36027 /* harmony export */ });
36028 /* harmony import */ var _case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./case-sensitive-transform.js */ "../node_modules/property-information/lib/util/case-sensitive-transform.js");
36029
36030
36031 /**
36032 * @param {Record<string, string>} attributes
36033 * @param {string} property
36034 * @returns {string}
36035 */
36036 function caseInsensitiveTransform(attributes, property) {
36037 return (0,_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_0__.caseSensitiveTransform)(attributes, property.toLowerCase())
36038 }
36039
36040
36041 /***/ }),
36042
36043 /***/ "../node_modules/property-information/lib/util/case-sensitive-transform.js":
36044 /*!*********************************************************************************!*\
36045 !*** ../node_modules/property-information/lib/util/case-sensitive-transform.js ***!
36046 \*********************************************************************************/
36047 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36048
36049 "use strict";
36050 __webpack_require__.r(__webpack_exports__);
36051 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36052 /* harmony export */ caseSensitiveTransform: () => (/* binding */ caseSensitiveTransform)
36053 /* harmony export */ });
36054 /**
36055 * @param {Record<string, string>} attributes
36056 * @param {string} attribute
36057 * @returns {string}
36058 */
36059 function caseSensitiveTransform(attributes, attribute) {
36060 return attribute in attributes ? attributes[attribute] : attribute
36061 }
36062
36063
36064 /***/ }),
36065
36066 /***/ "../node_modules/property-information/lib/util/create.js":
36067 /*!***************************************************************!*\
36068 !*** ../node_modules/property-information/lib/util/create.js ***!
36069 \***************************************************************/
36070 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36071
36072 "use strict";
36073 __webpack_require__.r(__webpack_exports__);
36074 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36075 /* harmony export */ create: () => (/* binding */ create)
36076 /* harmony export */ });
36077 /* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../normalize.js */ "../node_modules/property-information/lib/normalize.js");
36078 /* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schema.js */ "../node_modules/property-information/lib/util/schema.js");
36079 /* harmony import */ var _defined_info_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defined-info.js */ "../node_modules/property-information/lib/util/defined-info.js");
36080 /**
36081 * @typedef {import('./schema.js').Properties} Properties
36082 * @typedef {import('./schema.js').Normal} Normal
36083 *
36084 * @typedef {Record<string, string>} Attributes
36085 *
36086 * @typedef {Object} Definition
36087 * @property {Record<string, number|null>} properties
36088 * @property {(attributes: Attributes, property: string) => string} transform
36089 * @property {string} [space]
36090 * @property {Attributes} [attributes]
36091 * @property {Array<string>} [mustUseProperty]
36092 */
36093
36094
36095
36096
36097
36098 const own = {}.hasOwnProperty
36099
36100 /**
36101 * @param {Definition} definition
36102 * @returns {Schema}
36103 */
36104 function create(definition) {
36105 /** @type {Properties} */
36106 const property = {}
36107 /** @type {Normal} */
36108 const normal = {}
36109 /** @type {string} */
36110 let prop
36111
36112 for (prop in definition.properties) {
36113 if (own.call(definition.properties, prop)) {
36114 const value = definition.properties[prop]
36115 const info = new _defined_info_js__WEBPACK_IMPORTED_MODULE_0__.DefinedInfo(
36116 prop,
36117 definition.transform(definition.attributes || {}, prop),
36118 value,
36119 definition.space
36120 )
36121
36122 if (
36123 definition.mustUseProperty &&
36124 definition.mustUseProperty.includes(prop)
36125 ) {
36126 info.mustUseProperty = true
36127 }
36128
36129 property[prop] = info
36130
36131 normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(prop)] = prop
36132 normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(info.attribute)] = prop
36133 }
36134 }
36135
36136 return new _schema_js__WEBPACK_IMPORTED_MODULE_2__.Schema(property, normal, definition.space)
36137 }
36138
36139
36140 /***/ }),
36141
36142 /***/ "../node_modules/property-information/lib/util/defined-info.js":
36143 /*!*********************************************************************!*\
36144 !*** ../node_modules/property-information/lib/util/defined-info.js ***!
36145 \*********************************************************************/
36146 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36147
36148 "use strict";
36149 __webpack_require__.r(__webpack_exports__);
36150 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36151 /* harmony export */ DefinedInfo: () => (/* binding */ DefinedInfo)
36152 /* harmony export */ });
36153 /* harmony import */ var _info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./info.js */ "../node_modules/property-information/lib/util/info.js");
36154 /* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types.js */ "../node_modules/property-information/lib/util/types.js");
36155
36156
36157
36158 /** @type {Array<keyof types>} */
36159 // @ts-expect-error: hush.
36160 const checks = Object.keys(_types_js__WEBPACK_IMPORTED_MODULE_0__)
36161
36162 class DefinedInfo extends _info_js__WEBPACK_IMPORTED_MODULE_1__.Info {
36163 /**
36164 * @constructor
36165 * @param {string} property
36166 * @param {string} attribute
36167 * @param {number|null} [mask]
36168 * @param {string} [space]
36169 */
36170 constructor(property, attribute, mask, space) {
36171 let index = -1
36172
36173 super(property, attribute)
36174
36175 mark(this, 'space', space)
36176
36177 if (typeof mask === 'number') {
36178 while (++index < checks.length) {
36179 const check = checks[index]
36180 mark(this, checks[index], (mask & _types_js__WEBPACK_IMPORTED_MODULE_0__[check]) === _types_js__WEBPACK_IMPORTED_MODULE_0__[check])
36181 }
36182 }
36183 }
36184 }
36185
36186 DefinedInfo.prototype.defined = true
36187
36188 /**
36189 * @param {DefinedInfo} values
36190 * @param {string} key
36191 * @param {unknown} value
36192 */
36193 function mark(values, key, value) {
36194 if (value) {
36195 // @ts-expect-error: assume `value` matches the expected value of `key`.
36196 values[key] = value
36197 }
36198 }
36199
36200
36201 /***/ }),
36202
36203 /***/ "../node_modules/property-information/lib/util/info.js":
36204 /*!*************************************************************!*\
36205 !*** ../node_modules/property-information/lib/util/info.js ***!
36206 \*************************************************************/
36207 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36208
36209 "use strict";
36210 __webpack_require__.r(__webpack_exports__);
36211 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36212 /* harmony export */ Info: () => (/* binding */ Info)
36213 /* harmony export */ });
36214 class Info {
36215 /**
36216 * @constructor
36217 * @param {string} property
36218 * @param {string} attribute
36219 */
36220 constructor(property, attribute) {
36221 /** @type {string} */
36222 this.property = property
36223 /** @type {string} */
36224 this.attribute = attribute
36225 }
36226 }
36227
36228 /** @type {string|null} */
36229 Info.prototype.space = null
36230 Info.prototype.boolean = false
36231 Info.prototype.booleanish = false
36232 Info.prototype.overloadedBoolean = false
36233 Info.prototype.number = false
36234 Info.prototype.commaSeparated = false
36235 Info.prototype.spaceSeparated = false
36236 Info.prototype.commaOrSpaceSeparated = false
36237 Info.prototype.mustUseProperty = false
36238 Info.prototype.defined = false
36239
36240
36241 /***/ }),
36242
36243 /***/ "../node_modules/property-information/lib/util/merge.js":
36244 /*!**************************************************************!*\
36245 !*** ../node_modules/property-information/lib/util/merge.js ***!
36246 \**************************************************************/
36247 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36248
36249 "use strict";
36250 __webpack_require__.r(__webpack_exports__);
36251 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36252 /* harmony export */ merge: () => (/* binding */ merge)
36253 /* harmony export */ });
36254 /* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schema.js */ "../node_modules/property-information/lib/util/schema.js");
36255 /**
36256 * @typedef {import('./schema.js').Properties} Properties
36257 * @typedef {import('./schema.js').Normal} Normal
36258 */
36259
36260
36261
36262 /**
36263 * @param {Schema[]} definitions
36264 * @param {string} [space]
36265 * @returns {Schema}
36266 */
36267 function merge(definitions, space) {
36268 /** @type {Properties} */
36269 const property = {}
36270 /** @type {Normal} */
36271 const normal = {}
36272 let index = -1
36273
36274 while (++index < definitions.length) {
36275 Object.assign(property, definitions[index].property)
36276 Object.assign(normal, definitions[index].normal)
36277 }
36278
36279 return new _schema_js__WEBPACK_IMPORTED_MODULE_0__.Schema(property, normal, space)
36280 }
36281
36282
36283 /***/ }),
36284
36285 /***/ "../node_modules/property-information/lib/util/schema.js":
36286 /*!***************************************************************!*\
36287 !*** ../node_modules/property-information/lib/util/schema.js ***!
36288 \***************************************************************/
36289 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36290
36291 "use strict";
36292 __webpack_require__.r(__webpack_exports__);
36293 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36294 /* harmony export */ Schema: () => (/* binding */ Schema)
36295 /* harmony export */ });
36296 /**
36297 * @typedef {import('./info.js').Info} Info
36298 * @typedef {Record<string, Info>} Properties
36299 * @typedef {Record<string, string>} Normal
36300 */
36301
36302 class Schema {
36303 /**
36304 * @constructor
36305 * @param {Properties} property
36306 * @param {Normal} normal
36307 * @param {string} [space]
36308 */
36309 constructor(property, normal, space) {
36310 this.property = property
36311 this.normal = normal
36312 if (space) {
36313 this.space = space
36314 }
36315 }
36316 }
36317
36318 /** @type {Properties} */
36319 Schema.prototype.property = {}
36320 /** @type {Normal} */
36321 Schema.prototype.normal = {}
36322 /** @type {string|null} */
36323 Schema.prototype.space = null
36324
36325
36326 /***/ }),
36327
36328 /***/ "../node_modules/property-information/lib/util/types.js":
36329 /*!**************************************************************!*\
36330 !*** ../node_modules/property-information/lib/util/types.js ***!
36331 \**************************************************************/
36332 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36333
36334 "use strict";
36335 __webpack_require__.r(__webpack_exports__);
36336 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36337 /* harmony export */ boolean: () => (/* binding */ boolean),
36338 /* harmony export */ booleanish: () => (/* binding */ booleanish),
36339 /* harmony export */ commaOrSpaceSeparated: () => (/* binding */ commaOrSpaceSeparated),
36340 /* harmony export */ commaSeparated: () => (/* binding */ commaSeparated),
36341 /* harmony export */ number: () => (/* binding */ number),
36342 /* harmony export */ overloadedBoolean: () => (/* binding */ overloadedBoolean),
36343 /* harmony export */ spaceSeparated: () => (/* binding */ spaceSeparated)
36344 /* harmony export */ });
36345 let powers = 0
36346
36347 const boolean = increment()
36348 const booleanish = increment()
36349 const overloadedBoolean = increment()
36350 const number = increment()
36351 const spaceSeparated = increment()
36352 const commaSeparated = increment()
36353 const commaOrSpaceSeparated = increment()
36354
36355 function increment() {
36356 return 2 ** ++powers
36357 }
36358
36359
36360 /***/ }),
36361
36362 /***/ "../node_modules/property-information/lib/xlink.js":
36363 /*!*********************************************************!*\
36364 !*** ../node_modules/property-information/lib/xlink.js ***!
36365 \*********************************************************/
36366 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36367
36368 "use strict";
36369 __webpack_require__.r(__webpack_exports__);
36370 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36371 /* harmony export */ xlink: () => (/* binding */ xlink)
36372 /* harmony export */ });
36373 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36374
36375
36376 const xlink = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36377 space: 'xlink',
36378 transform(_, prop) {
36379 return 'xlink:' + prop.slice(5).toLowerCase()
36380 },
36381 properties: {
36382 xLinkActuate: null,
36383 xLinkArcRole: null,
36384 xLinkHref: null,
36385 xLinkRole: null,
36386 xLinkShow: null,
36387 xLinkTitle: null,
36388 xLinkType: null
36389 }
36390 })
36391
36392
36393 /***/ }),
36394
36395 /***/ "../node_modules/property-information/lib/xml.js":
36396 /*!*******************************************************!*\
36397 !*** ../node_modules/property-information/lib/xml.js ***!
36398 \*******************************************************/
36399 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36400
36401 "use strict";
36402 __webpack_require__.r(__webpack_exports__);
36403 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36404 /* harmony export */ xml: () => (/* binding */ xml)
36405 /* harmony export */ });
36406 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36407
36408
36409 const xml = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36410 space: 'xml',
36411 transform(_, prop) {
36412 return 'xml:' + prop.slice(3).toLowerCase()
36413 },
36414 properties: {xmlLang: null, xmlBase: null, xmlSpace: null}
36415 })
36416
36417
36418 /***/ }),
36419
36420 /***/ "../node_modules/property-information/lib/xmlns.js":
36421 /*!*********************************************************!*\
36422 !*** ../node_modules/property-information/lib/xmlns.js ***!
36423 \*********************************************************/
36424 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36425
36426 "use strict";
36427 __webpack_require__.r(__webpack_exports__);
36428 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36429 /* harmony export */ xmlns: () => (/* binding */ xmlns)
36430 /* harmony export */ });
36431 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36432 /* harmony import */ var _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/case-insensitive-transform.js */ "../node_modules/property-information/lib/util/case-insensitive-transform.js");
36433
36434
36435
36436 const xmlns = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36437 space: 'xmlns',
36438 attributes: {xmlnsxlink: 'xmlns:xlink'},
36439 transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,
36440 properties: {xmlns: null, xmlnsXLink: null}
36441 })
36442
36443
36444 /***/ }),
36445
36446 /***/ "../node_modules/react-markdown/index.js":
36447 /*!***********************************************!*\
36448 !*** ../node_modules/react-markdown/index.js ***!
36449 \***********************************************/
36450 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36451
36452 "use strict";
36453 __webpack_require__.r(__webpack_exports__);
36454 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36455 /* harmony export */ "default": () => (/* reexport safe */ _lib_react_markdown_js__WEBPACK_IMPORTED_MODULE_1__.ReactMarkdown),
36456 /* harmony export */ uriTransformer: () => (/* reexport safe */ _lib_uri_transformer_js__WEBPACK_IMPORTED_MODULE_0__.uriTransformer)
36457 /* harmony export */ });
36458 /* harmony import */ var _lib_uri_transformer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/uri-transformer.js */ "../node_modules/react-markdown/lib/uri-transformer.js");
36459 /* harmony import */ var _lib_react_markdown_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/react-markdown.js */ "../node_modules/react-markdown/lib/react-markdown.js");
36460 /**
36461 * @typedef {import('./lib/react-markdown.js').ReactMarkdownOptions} Options
36462 * @typedef {import('./lib/ast-to-react.js').Components} Components
36463 */
36464
36465
36466
36467
36468
36469
36470 /***/ }),
36471
36472 /***/ "../node_modules/react-markdown/lib/ast-to-react.js":
36473 /*!**********************************************************!*\
36474 !*** ../node_modules/react-markdown/lib/ast-to-react.js ***!
36475 \**********************************************************/
36476 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36477
36478 "use strict";
36479 __webpack_require__.r(__webpack_exports__);
36480 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36481 /* harmony export */ childrenToReact: () => (/* binding */ childrenToReact)
36482 /* harmony export */ });
36483 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
36484 /* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");
36485 /* harmony import */ var hast_util_whitespace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! hast-util-whitespace */ "../node_modules/hast-util-whitespace/index.js");
36486 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/index.js");
36487 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/lib/find.js");
36488 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/lib/hast-to-react.js");
36489 /* harmony import */ var space_separated_tokens__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! space-separated-tokens */ "../node_modules/space-separated-tokens/index.js");
36490 /* harmony import */ var comma_separated_tokens__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! comma-separated-tokens */ "../node_modules/comma-separated-tokens/index.js");
36491 /* harmony import */ var style_to_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! style-to-object */ "../node_modules/style-to-object/index.mjs");
36492 /* harmony import */ var _uri_transformer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./uri-transformer.js */ "../node_modules/react-markdown/lib/uri-transformer.js");
36493 /**
36494 * @template T
36495 * @typedef {import('react').ComponentType<T>} ComponentType<T>
36496 */
36497
36498 /**
36499 * @template {import('react').ElementType} T
36500 * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>
36501 */
36502
36503 /**
36504 * @typedef {import('react').ReactNode} ReactNode
36505 * @typedef {import('unist').Position} Position
36506 * @typedef {import('hast').Element} Element
36507 * @typedef {import('hast').ElementContent} ElementContent
36508 * @typedef {import('hast').Root} Root
36509 * @typedef {import('hast').Text} Text
36510 * @typedef {import('hast').Comment} Comment
36511 * @typedef {import('hast').DocType} Doctype
36512 * @typedef {import('property-information').Info} Info
36513 * @typedef {import('property-information').Schema} Schema
36514 * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps
36515 *
36516 * @typedef Raw
36517 * @property {'raw'} type
36518 * @property {string} value
36519 *
36520 * @typedef Context
36521 * @property {Options} options
36522 * @property {Schema} schema
36523 * @property {number} listDepth
36524 *
36525 * @callback TransformLink
36526 * @param {string} href
36527 * @param {Array<ElementContent>} children
36528 * @param {string?} title
36529 * @returns {string}
36530 *
36531 * @callback TransformImage
36532 * @param {string} src
36533 * @param {string} alt
36534 * @param {string?} title
36535 * @returns {string}
36536 *
36537 * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType
36538 *
36539 * @callback TransformLinkTarget
36540 * @param {string} href
36541 * @param {Array<ElementContent>} children
36542 * @param {string?} title
36543 * @returns {TransformLinkTargetType|undefined}
36544 *
36545 * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames
36546 *
36547 * To do: is `data-sourcepos` typeable?
36548 *
36549 * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps
36550 * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps
36551 * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps
36552 * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps
36553 * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps
36554 * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps
36555 * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps
36556 * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps
36557 *
36558 * @typedef {ComponentType<CodeProps>} CodeComponent
36559 * @typedef {ComponentType<HeadingProps>} HeadingComponent
36560 * @typedef {ComponentType<LiProps>} LiComponent
36561 * @typedef {ComponentType<OrderedListProps>} OrderedListComponent
36562 * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent
36563 * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent
36564 * @typedef {ComponentType<TableRowProps>} TableRowComponent
36565 * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent
36566 *
36567 * @typedef SpecialComponents
36568 * @property {CodeComponent|ReactMarkdownNames} code
36569 * @property {HeadingComponent|ReactMarkdownNames} h1
36570 * @property {HeadingComponent|ReactMarkdownNames} h2
36571 * @property {HeadingComponent|ReactMarkdownNames} h3
36572 * @property {HeadingComponent|ReactMarkdownNames} h4
36573 * @property {HeadingComponent|ReactMarkdownNames} h5
36574 * @property {HeadingComponent|ReactMarkdownNames} h6
36575 * @property {LiComponent|ReactMarkdownNames} li
36576 * @property {OrderedListComponent|ReactMarkdownNames} ol
36577 * @property {TableDataCellComponent|ReactMarkdownNames} td
36578 * @property {TableHeaderCellComponent|ReactMarkdownNames} th
36579 * @property {TableRowComponent|ReactMarkdownNames} tr
36580 * @property {UnorderedListComponent|ReactMarkdownNames} ul
36581 *
36582 * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components
36583 *
36584 * @typedef Options
36585 * @property {boolean} [sourcePos=false]
36586 * @property {boolean} [rawSourcePos=false]
36587 * @property {boolean} [skipHtml=false]
36588 * @property {boolean} [includeElementIndex=false]
36589 * @property {null|false|TransformLink} [transformLinkUri]
36590 * @property {TransformImage} [transformImageUri]
36591 * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]
36592 * @property {Components} [components]
36593 */
36594
36595
36596
36597
36598
36599
36600
36601
36602
36603
36604 const own = {}.hasOwnProperty
36605
36606 // The table-related elements that must not contain whitespace text according
36607 // to React.
36608 const tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])
36609
36610 /**
36611 * @param {Context} context
36612 * @param {Element|Root} node
36613 */
36614 function childrenToReact(context, node) {
36615 /** @type {Array<ReactNode>} */
36616 const children = []
36617 let childIndex = -1
36618 /** @type {Comment|Doctype|Element|Raw|Text} */
36619 let child
36620
36621 while (++childIndex < node.children.length) {
36622 child = node.children[childIndex]
36623
36624 if (child.type === 'element') {
36625 children.push(toReact(context, child, childIndex, node))
36626 } else if (child.type === 'text') {
36627 // Currently, a warning is triggered by react for *any* white space in
36628 // tables.
36629 // So we drop it.
36630 // See: <https://github.com/facebook/react/pull/7081>.
36631 // See: <https://github.com/facebook/react/pull/7515>.
36632 // See: <https://github.com/remarkjs/remark-react/issues/64>.
36633 // See: <https://github.com/remarkjs/react-markdown/issues/576>.
36634 if (
36635 node.type !== 'element' ||
36636 !tableElements.has(node.tagName) ||
36637 !(0,hast_util_whitespace__WEBPACK_IMPORTED_MODULE_3__.whitespace)(child)
36638 ) {
36639 children.push(child.value)
36640 }
36641 } else if (child.type === 'raw' && !context.options.skipHtml) {
36642 // Default behavior is to show (encoded) HTML.
36643 children.push(child.value)
36644 }
36645 }
36646
36647 return children
36648 }
36649
36650 /**
36651 * @param {Context} context
36652 * @param {Element} node
36653 * @param {number} index
36654 * @param {Element|Root} parent
36655 */
36656 function toReact(context, node, index, parent) {
36657 const options = context.options
36658 const transform =
36659 options.transformLinkUri === undefined
36660 ? _uri_transformer_js__WEBPACK_IMPORTED_MODULE_4__.uriTransformer
36661 : options.transformLinkUri
36662 const parentSchema = context.schema
36663 /** @type {ReactMarkdownNames} */
36664 // @ts-expect-error assume a known HTML/SVG element.
36665 const name = node.tagName
36666 /** @type {Record<string, unknown>} */
36667 const properties = {}
36668 let schema = parentSchema
36669 /** @type {string} */
36670 let property
36671
36672 if (parentSchema.space === 'html' && name === 'svg') {
36673 schema = property_information__WEBPACK_IMPORTED_MODULE_5__.svg
36674 context.schema = schema
36675 }
36676
36677 if (node.properties) {
36678 for (property in node.properties) {
36679 if (own.call(node.properties, property)) {
36680 addProperty(properties, property, node.properties[property], context)
36681 }
36682 }
36683 }
36684
36685 if (name === 'ol' || name === 'ul') {
36686 context.listDepth++
36687 }
36688
36689 const children = childrenToReact(context, node)
36690
36691 if (name === 'ol' || name === 'ul') {
36692 context.listDepth--
36693 }
36694
36695 // Restore parent schema.
36696 context.schema = parentSchema
36697
36698 // Nodes created by plugins do not have positional info, in which case we use
36699 // an object that matches the position interface.
36700 const position = node.position || {
36701 start: {line: null, column: null, offset: null},
36702 end: {line: null, column: null, offset: null}
36703 }
36704 const component =
36705 options.components && own.call(options.components, name)
36706 ? options.components[name]
36707 : name
36708 const basic = typeof component === 'string' || component === react__WEBPACK_IMPORTED_MODULE_0__.Fragment
36709
36710 if (!react_is__WEBPACK_IMPORTED_MODULE_1__.isValidElementType(component)) {
36711 throw new TypeError(
36712 `Component for name \`${name}\` not defined or is not renderable`
36713 )
36714 }
36715
36716 properties.key = index
36717
36718 if (name === 'a' && options.linkTarget) {
36719 properties.target =
36720 typeof options.linkTarget === 'function'
36721 ? options.linkTarget(
36722 String(properties.href || ''),
36723 node.children,
36724 typeof properties.title === 'string' ? properties.title : null
36725 )
36726 : options.linkTarget
36727 }
36728
36729 if (name === 'a' && transform) {
36730 properties.href = transform(
36731 String(properties.href || ''),
36732 node.children,
36733 typeof properties.title === 'string' ? properties.title : null
36734 )
36735 }
36736
36737 if (
36738 !basic &&
36739 name === 'code' &&
36740 parent.type === 'element' &&
36741 parent.tagName !== 'pre'
36742 ) {
36743 properties.inline = true
36744 }
36745
36746 if (
36747 !basic &&
36748 (name === 'h1' ||
36749 name === 'h2' ||
36750 name === 'h3' ||
36751 name === 'h4' ||
36752 name === 'h5' ||
36753 name === 'h6')
36754 ) {
36755 properties.level = Number.parseInt(name.charAt(1), 10)
36756 }
36757
36758 if (name === 'img' && options.transformImageUri) {
36759 properties.src = options.transformImageUri(
36760 String(properties.src || ''),
36761 String(properties.alt || ''),
36762 typeof properties.title === 'string' ? properties.title : null
36763 )
36764 }
36765
36766 if (!basic && name === 'li' && parent.type === 'element') {
36767 const input = getInputElement(node)
36768 properties.checked =
36769 input && input.properties ? Boolean(input.properties.checked) : null
36770 properties.index = getElementsBeforeCount(parent, node)
36771 properties.ordered = parent.tagName === 'ol'
36772 }
36773
36774 if (!basic && (name === 'ol' || name === 'ul')) {
36775 properties.ordered = name === 'ol'
36776 properties.depth = context.listDepth
36777 }
36778
36779 if (name === 'td' || name === 'th') {
36780 if (properties.align) {
36781 if (!properties.style) properties.style = {}
36782 // @ts-expect-error assume `style` is an object
36783 properties.style.textAlign = properties.align
36784 delete properties.align
36785 }
36786
36787 if (!basic) {
36788 properties.isHeader = name === 'th'
36789 }
36790 }
36791
36792 if (!basic && name === 'tr' && parent.type === 'element') {
36793 properties.isHeader = Boolean(parent.tagName === 'thead')
36794 }
36795
36796 // If `sourcePos` is given, pass source information (line/column info from markdown source).
36797 if (options.sourcePos) {
36798 properties['data-sourcepos'] = flattenPosition(position)
36799 }
36800
36801 if (!basic && options.rawSourcePos) {
36802 properties.sourcePosition = node.position
36803 }
36804
36805 // If `includeElementIndex` is given, pass node index info to components.
36806 if (!basic && options.includeElementIndex) {
36807 properties.index = getElementsBeforeCount(parent, node)
36808 properties.siblingCount = getElementsBeforeCount(parent)
36809 }
36810
36811 if (!basic) {
36812 properties.node = node
36813 }
36814
36815 // Ensure no React warnings are emitted for void elements w/ children.
36816 return children.length > 0
36817 ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, properties, children)
36818 : react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, properties)
36819 }
36820
36821 /**
36822 * @param {Element|Root} node
36823 * @returns {Element?}
36824 */
36825 function getInputElement(node) {
36826 let index = -1
36827
36828 while (++index < node.children.length) {
36829 const child = node.children[index]
36830
36831 if (child.type === 'element' && child.tagName === 'input') {
36832 return child
36833 }
36834 }
36835
36836 return null
36837 }
36838
36839 /**
36840 * @param {Element|Root} parent
36841 * @param {Element} [node]
36842 * @returns {number}
36843 */
36844 function getElementsBeforeCount(parent, node) {
36845 let index = -1
36846 let count = 0
36847
36848 while (++index < parent.children.length) {
36849 if (parent.children[index] === node) break
36850 if (parent.children[index].type === 'element') count++
36851 }
36852
36853 return count
36854 }
36855
36856 /**
36857 * @param {Record<string, unknown>} props
36858 * @param {string} prop
36859 * @param {unknown} value
36860 * @param {Context} ctx
36861 */
36862 function addProperty(props, prop, value, ctx) {
36863 const info = (0,property_information__WEBPACK_IMPORTED_MODULE_6__.find)(ctx.schema, prop)
36864 let result = value
36865
36866 // Ignore nullish and `NaN` values.
36867 // eslint-disable-next-line no-self-compare
36868 if (result === null || result === undefined || result !== result) {
36869 return
36870 }
36871
36872 // Accept `array`.
36873 // Most props are space-separated.
36874 if (Array.isArray(result)) {
36875 result = info.commaSeparated ? (0,comma_separated_tokens__WEBPACK_IMPORTED_MODULE_7__.stringify)(result) : (0,space_separated_tokens__WEBPACK_IMPORTED_MODULE_8__.stringify)(result)
36876 }
36877
36878 if (info.property === 'style' && typeof result === 'string') {
36879 result = parseStyle(result)
36880 }
36881
36882 if (info.space && info.property) {
36883 props[
36884 own.call(property_information__WEBPACK_IMPORTED_MODULE_9__.hastToReact, info.property)
36885 ? property_information__WEBPACK_IMPORTED_MODULE_9__.hastToReact[info.property]
36886 : info.property
36887 ] = result
36888 } else if (info.attribute) {
36889 props[info.attribute] = result
36890 }
36891 }
36892
36893 /**
36894 * @param {string} value
36895 * @returns {Record<string, string>}
36896 */
36897 function parseStyle(value) {
36898 /** @type {Record<string, string>} */
36899 const result = {}
36900
36901 try {
36902 ;(0,style_to_object__WEBPACK_IMPORTED_MODULE_2__["default"])(value, iterator)
36903 } catch {
36904 // Silent.
36905 }
36906
36907 return result
36908
36909 /**
36910 * @param {string} name
36911 * @param {string} v
36912 */
36913 function iterator(name, v) {
36914 const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name
36915 result[k.replace(/-([a-z])/g, styleReplacer)] = v
36916 }
36917 }
36918
36919 /**
36920 * @param {unknown} _
36921 * @param {string} $1
36922 */
36923 function styleReplacer(_, $1) {
36924 return $1.toUpperCase()
36925 }
36926
36927 /**
36928 * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos
36929 * @returns {string}
36930 */
36931 function flattenPosition(pos) {
36932 return [
36933 pos.start.line,
36934 ':',
36935 pos.start.column,
36936 '-',
36937 pos.end.line,
36938 ':',
36939 pos.end.column
36940 ]
36941 .map(String)
36942 .join('')
36943 }
36944
36945
36946 /***/ }),
36947
36948 /***/ "../node_modules/react-markdown/lib/react-markdown.js":
36949 /*!************************************************************!*\
36950 !*** ../node_modules/react-markdown/lib/react-markdown.js ***!
36951 \************************************************************/
36952 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36953
36954 "use strict";
36955 __webpack_require__.r(__webpack_exports__);
36956 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36957 /* harmony export */ ReactMarkdown: () => (/* binding */ ReactMarkdown)
36958 /* harmony export */ });
36959 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
36960 /* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile */ "../node_modules/vfile/lib/index.js");
36961 /* harmony import */ var unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unified */ "../node_modules/unified/lib/index.js");
36962 /* harmony import */ var remark_parse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! remark-parse */ "../node_modules/remark-parse/lib/index.js");
36963 /* harmony import */ var remark_rehype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! remark-rehype */ "../node_modules/remark-rehype/lib/index.js");
36964 /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
36965 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/index.js");
36966 /* harmony import */ var _rehype_filter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./rehype-filter.js */ "../node_modules/react-markdown/lib/rehype-filter.js");
36967 /* harmony import */ var _ast_to_react_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ast-to-react.js */ "../node_modules/react-markdown/lib/ast-to-react.js");
36968 /**
36969 * @typedef {import('react').ReactNode} ReactNode
36970 * @typedef {import('react').ReactElement<{}>} ReactElement
36971 * @typedef {import('unified').PluggableList} PluggableList
36972 * @typedef {import('hast').Root} Root
36973 * @typedef {import('./rehype-filter.js').Options} FilterOptions
36974 * @typedef {import('./ast-to-react.js').Options} TransformOptions
36975 *
36976 * @typedef CoreOptions
36977 * @property {string} children
36978 *
36979 * @typedef PluginOptions
36980 * @property {PluggableList} [remarkPlugins=[]]
36981 * @property {PluggableList} [rehypePlugins=[]]
36982 * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]
36983 *
36984 * @typedef LayoutOptions
36985 * @property {string} [className]
36986 *
36987 * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions
36988 *
36989 * @typedef Deprecation
36990 * @property {string} id
36991 * @property {string} [to]
36992 */
36993
36994
36995
36996
36997
36998
36999
37000
37001
37002
37003
37004 const own = {}.hasOwnProperty
37005 const changelog =
37006 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'
37007
37008 /** @type {Record<string, Deprecation>} */
37009 const deprecated = {
37010 plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},
37011 renderers: {to: 'components', id: 'change-renderers-to-components'},
37012 astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},
37013 allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},
37014 escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},
37015 source: {to: 'children', id: 'change-source-to-children'},
37016 allowNode: {
37017 to: 'allowElement',
37018 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37019 },
37020 allowedTypes: {
37021 to: 'allowedElements',
37022 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37023 },
37024 disallowedTypes: {
37025 to: 'disallowedElements',
37026 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37027 },
37028 includeNodeIndex: {
37029 to: 'includeElementIndex',
37030 id: 'change-includenodeindex-to-includeelementindex'
37031 }
37032 }
37033
37034 /**
37035 * React component to render markdown.
37036 *
37037 * @param {ReactMarkdownOptions} options
37038 * @returns {ReactElement}
37039 */
37040 function ReactMarkdown(options) {
37041 for (const key in deprecated) {
37042 if (own.call(deprecated, key) && own.call(options, key)) {
37043 const deprecation = deprecated[key]
37044 console.warn(
37045 `[react-markdown] Warning: please ${
37046 deprecation.to ? `use \`${deprecation.to}\` instead of` : 'remove'
37047 } \`${key}\` (see <${changelog}#${deprecation.id}> for more info)`
37048 )
37049 delete deprecated[key]
37050 }
37051 }
37052
37053 const processor = (0,unified__WEBPACK_IMPORTED_MODULE_1__.unified)()
37054 .use(remark_parse__WEBPACK_IMPORTED_MODULE_2__["default"])
37055 .use(options.remarkPlugins || [])
37056 .use(remark_rehype__WEBPACK_IMPORTED_MODULE_3__["default"], {
37057 ...options.remarkRehypeOptions,
37058 allowDangerousHtml: true
37059 })
37060 .use(options.rehypePlugins || [])
37061 .use(_rehype_filter_js__WEBPACK_IMPORTED_MODULE_4__["default"], options)
37062
37063 const file = new vfile__WEBPACK_IMPORTED_MODULE_5__.VFile()
37064
37065 if (typeof options.children === 'string') {
37066 file.value = options.children
37067 } else if (options.children !== undefined && options.children !== null) {
37068 console.warn(
37069 `[react-markdown] Warning: please pass a string as \`children\` (not: \`${options.children}\`)`
37070 )
37071 }
37072
37073 const hastNode = processor.runSync(processor.parse(file), file)
37074
37075 if (hastNode.type !== 'root') {
37076 throw new TypeError('Expected a `root` node')
37077 }
37078
37079 /** @type {ReactElement} */
37080 let result = react__WEBPACK_IMPORTED_MODULE_0__.createElement(
37081 react__WEBPACK_IMPORTED_MODULE_0__.Fragment,
37082 {},
37083 (0,_ast_to_react_js__WEBPACK_IMPORTED_MODULE_6__.childrenToReact)({options, schema: property_information__WEBPACK_IMPORTED_MODULE_7__.html, listDepth: 0}, hastNode)
37084 )
37085
37086 if (options.className) {
37087 result = react__WEBPACK_IMPORTED_MODULE_0__.createElement('div', {className: options.className}, result)
37088 }
37089
37090 return result
37091 }
37092
37093 ReactMarkdown.propTypes = {
37094 // Core options:
37095 children: prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37096 // Layout options:
37097 className: prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37098 // Filter options:
37099 allowElement: prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37100 allowedElements: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_8__.string),
37101 disallowedElements: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_8__.string),
37102 unwrapDisallowed: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37103 // Plugin options:
37104 remarkPlugins: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37105 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37106 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37107 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37108 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37109 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37110 prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37111 prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37112 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37113 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37114 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37115 // prettier-ignore
37116 // type-coverage:ignore-next-line
37117 prop_types__WEBPACK_IMPORTED_MODULE_8__.any
37118 )
37119 ])
37120 )
37121 ])
37122 ),
37123 rehypePlugins: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37124 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37125 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37126 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37127 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37128 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37129 prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37130 prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37131 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37132 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37133 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37134 // prettier-ignore
37135 // type-coverage:ignore-next-line
37136 prop_types__WEBPACK_IMPORTED_MODULE_8__.any
37137 )
37138 ])
37139 )
37140 ])
37141 ),
37142 // Transform options:
37143 sourcePos: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37144 rawSourcePos: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37145 skipHtml: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37146 includeElementIndex: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37147 transformLinkUri: prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_8__.func, prop_types__WEBPACK_IMPORTED_MODULE_8__.bool]),
37148 linkTarget: prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_8__.func, prop_types__WEBPACK_IMPORTED_MODULE_8__.string]),
37149 transformImageUri: prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37150 components: prop_types__WEBPACK_IMPORTED_MODULE_8__.object
37151 }
37152
37153
37154 /***/ }),
37155
37156 /***/ "../node_modules/react-markdown/lib/rehype-filter.js":
37157 /*!***********************************************************!*\
37158 !*** ../node_modules/react-markdown/lib/rehype-filter.js ***!
37159 \***********************************************************/
37160 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37161
37162 "use strict";
37163 __webpack_require__.r(__webpack_exports__);
37164 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37165 /* harmony export */ "default": () => (/* binding */ rehypeFilter)
37166 /* harmony export */ });
37167 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
37168
37169
37170 /**
37171 * @typedef {import('unist').Node} Node
37172 * @typedef {import('hast').Root} Root
37173 * @typedef {import('hast').Element} Element
37174 *
37175 * @callback AllowElement
37176 * @param {Element} element
37177 * @param {number} index
37178 * @param {Element|Root} parent
37179 * @returns {boolean|undefined}
37180 *
37181 * @typedef Options
37182 * @property {Array<string>} [allowedElements]
37183 * @property {Array<string>} [disallowedElements=[]]
37184 * @property {AllowElement} [allowElement]
37185 * @property {boolean} [unwrapDisallowed=false]
37186 */
37187
37188 /**
37189 * @type {import('unified').Plugin<[Options], Root>}
37190 */
37191 function rehypeFilter(options) {
37192 if (options.allowedElements && options.disallowedElements) {
37193 throw new TypeError(
37194 'Only one of `allowedElements` and `disallowedElements` should be defined'
37195 )
37196 }
37197
37198 if (
37199 options.allowedElements ||
37200 options.disallowedElements ||
37201 options.allowElement
37202 ) {
37203 return (tree) => {
37204 (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(tree, 'element', (node, index, parent_) => {
37205 const parent = /** @type {Element|Root} */ (parent_)
37206 /** @type {boolean|undefined} */
37207 let remove
37208
37209 if (options.allowedElements) {
37210 remove = !options.allowedElements.includes(node.tagName)
37211 } else if (options.disallowedElements) {
37212 remove = options.disallowedElements.includes(node.tagName)
37213 }
37214
37215 if (!remove && options.allowElement && typeof index === 'number') {
37216 remove = !options.allowElement(node, index, parent)
37217 }
37218
37219 if (remove && typeof index === 'number') {
37220 if (options.unwrapDisallowed && node.children) {
37221 parent.children.splice(index, 1, ...node.children)
37222 } else {
37223 parent.children.splice(index, 1)
37224 }
37225
37226 return index
37227 }
37228
37229 return undefined
37230 })
37231 }
37232 }
37233 }
37234
37235
37236 /***/ }),
37237
37238 /***/ "../node_modules/react-markdown/lib/uri-transformer.js":
37239 /*!*************************************************************!*\
37240 !*** ../node_modules/react-markdown/lib/uri-transformer.js ***!
37241 \*************************************************************/
37242 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37243
37244 "use strict";
37245 __webpack_require__.r(__webpack_exports__);
37246 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37247 /* harmony export */ uriTransformer: () => (/* binding */ uriTransformer)
37248 /* harmony export */ });
37249 const protocols = ['http', 'https', 'mailto', 'tel']
37250
37251 /**
37252 * @param {string} uri
37253 * @returns {string}
37254 */
37255 function uriTransformer(uri) {
37256 const url = (uri || '').trim()
37257 const first = url.charAt(0)
37258
37259 if (first === '#' || first === '/') {
37260 return url
37261 }
37262
37263 const colon = url.indexOf(':')
37264 if (colon === -1) {
37265 return url
37266 }
37267
37268 let index = -1
37269
37270 while (++index < protocols.length) {
37271 const protocol = protocols[index]
37272
37273 if (
37274 colon === protocol.length &&
37275 url.slice(0, protocol.length).toLowerCase() === protocol
37276 ) {
37277 return url
37278 }
37279 }
37280
37281 index = url.indexOf('?')
37282 if (index !== -1 && colon > index) {
37283 return url
37284 }
37285
37286 index = url.indexOf('#')
37287 if (index !== -1 && colon > index) {
37288 return url
37289 }
37290
37291 // eslint-disable-next-line no-script-url
37292 return 'javascript:void(0)'
37293 }
37294
37295
37296 /***/ }),
37297
37298 /***/ "../node_modules/remark-parse/lib/index.js":
37299 /*!*************************************************!*\
37300 !*** ../node_modules/remark-parse/lib/index.js ***!
37301 \*************************************************/
37302 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37303
37304 "use strict";
37305 __webpack_require__.r(__webpack_exports__);
37306 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37307 /* harmony export */ "default": () => (/* binding */ remarkParse)
37308 /* harmony export */ });
37309 /* harmony import */ var mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-from-markdown */ "../node_modules/mdast-util-from-markdown/dev/lib/index.js");
37310 /**
37311 * @typedef {import('mdast').Root} Root
37312 * @typedef {import('mdast-util-from-markdown').Options} Options
37313 */
37314
37315
37316
37317 /**
37318 * @this {import('unified').Processor}
37319 * @type {import('unified').Plugin<[Options?] | void[], string, Root>}
37320 */
37321 function remarkParse(options) {
37322 /** @type {import('unified').ParserFunction<Root>} */
37323 const parser = (doc) => {
37324 // Assume options.
37325 const settings = /** @type {Options} */ (this.data('settings'))
37326
37327 return (0,mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_0__.fromMarkdown)(
37328 doc,
37329 Object.assign({}, settings, options, {
37330 // Note: these options are not in the readme.
37331 // The goal is for them to be set by plugins on `data` instead of being
37332 // passed by users.
37333 extensions: this.data('micromarkExtensions') || [],
37334 mdastExtensions: this.data('fromMarkdownExtensions') || []
37335 })
37336 )
37337 }
37338
37339 Object.assign(this, {Parser: parser})
37340 }
37341
37342
37343 /***/ }),
37344
37345 /***/ "../node_modules/remark-rehype/lib/index.js":
37346 /*!**************************************************!*\
37347 !*** ../node_modules/remark-rehype/lib/index.js ***!
37348 \**************************************************/
37349 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37350
37351 "use strict";
37352 __webpack_require__.r(__webpack_exports__);
37353 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37354 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37355 /* harmony export */ });
37356 /* harmony import */ var mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-to-hast */ "../node_modules/mdast-util-to-hast/lib/index.js");
37357 /**
37358 * @typedef {import('hast').Root} HastRoot
37359 * @typedef {import('mdast').Root} MdastRoot
37360 * @typedef {import('mdast-util-to-hast').Options} Options
37361 * @typedef {import('unified').Processor<any, any, any, any>} Processor
37362 *
37363 * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree
37364 */
37365
37366
37367
37368 // Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(
37369
37370 /**
37371 * Plugin that turns markdown into HTML to support rehype.
37372 *
37373 * * If a destination processor is given, that processor runs with a new HTML
37374 * (hast) tree (bridge-mode).
37375 * As the given processor runs with a hast tree, and rehype plugins support
37376 * hast, that means rehype plugins can be used with the given processor.
37377 * The hast tree is discarded in the end.
37378 * It’s highly unlikely that you want to do this.
37379 * * The common case is to not pass a destination processor, in which case the
37380 * current processor continues running with a new HTML (hast) tree
37381 * (mutate-mode).
37382 * As the current processor continues with a hast tree, and rehype plugins
37383 * support hast, that means rehype plugins can be used after
37384 * `remark-rehype`.
37385 * It’s likely that this is what you want to do.
37386 *
37387 * @param destination
37388 * Optional unified processor.
37389 * @param options
37390 * Options passed to `mdast-util-to-hast`.
37391 */
37392 const remarkRehype =
37393 /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */
37394 (
37395 function (destination, options) {
37396 return destination && 'run' in destination
37397 ? bridge(destination, options)
37398 : mutate(destination || options)
37399 }
37400 )
37401
37402 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (remarkRehype);
37403
37404 /**
37405 * Bridge-mode.
37406 * Runs the destination with the new hast tree.
37407 *
37408 * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}
37409 */
37410 function bridge(destination, options) {
37411 return (node, file, next) => {
37412 destination.run((0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(node, options), file, (error) => {
37413 next(error)
37414 })
37415 }
37416 }
37417
37418 /**
37419 * Mutate-mode.
37420 * Further plugins run on the hast tree.
37421 *
37422 * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}
37423 */
37424 function mutate(options) {
37425 // @ts-expect-error: assume a corresponding node is returned by `toHast`.
37426 return (node) => (0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(node, options)
37427 }
37428
37429
37430 /***/ }),
37431
37432 /***/ "../node_modules/space-separated-tokens/index.js":
37433 /*!*******************************************************!*\
37434 !*** ../node_modules/space-separated-tokens/index.js ***!
37435 \*******************************************************/
37436 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37437
37438 "use strict";
37439 __webpack_require__.r(__webpack_exports__);
37440 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37441 /* harmony export */ parse: () => (/* binding */ parse),
37442 /* harmony export */ stringify: () => (/* binding */ stringify)
37443 /* harmony export */ });
37444 /**
37445 * Parse space-separated tokens to an array of strings.
37446 *
37447 * @param {string} value
37448 * Space-separated tokens.
37449 * @returns {Array<string>}
37450 * List of tokens.
37451 */
37452 function parse(value) {
37453 const input = String(value || '').trim()
37454 return input ? input.split(/[ \t\n\r\f]+/g) : []
37455 }
37456
37457 /**
37458 * Serialize an array of strings as space separated-tokens.
37459 *
37460 * @param {Array<string|number>} values
37461 * List of tokens.
37462 * @returns {string}
37463 * Space-separated tokens.
37464 */
37465 function stringify(values) {
37466 return values.join(' ').trim()
37467 }
37468
37469
37470 /***/ }),
37471
37472 /***/ "../node_modules/style-to-object/index.mjs":
37473 /*!*************************************************!*\
37474 !*** ../node_modules/style-to-object/index.mjs ***!
37475 \*************************************************/
37476 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37477
37478 "use strict";
37479 __webpack_require__.r(__webpack_exports__);
37480 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37481 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37482 /* harmony export */ });
37483 /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "../node_modules/style-to-object/index.js");
37484
37485
37486 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_index_js__WEBPACK_IMPORTED_MODULE_0__);
37487
37488
37489 /***/ }),
37490
37491 /***/ "../node_modules/trim-lines/index.js":
37492 /*!*******************************************!*\
37493 !*** ../node_modules/trim-lines/index.js ***!
37494 \*******************************************/
37495 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37496
37497 "use strict";
37498 __webpack_require__.r(__webpack_exports__);
37499 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37500 /* harmony export */ trimLines: () => (/* binding */ trimLines)
37501 /* harmony export */ });
37502 const tab = 9 /* `\t` */
37503 const space = 32 /* ` ` */
37504
37505 /**
37506 * Remove initial and final spaces and tabs at the line breaks in `value`.
37507 * Does not trim initial and final spaces and tabs of the value itself.
37508 *
37509 * @param {string} value
37510 * Value to trim.
37511 * @returns {string}
37512 * Trimmed value.
37513 */
37514 function trimLines(value) {
37515 const source = String(value)
37516 const search = /\r?\n|\r/g
37517 let match = search.exec(source)
37518 let last = 0
37519 /** @type {Array<string>} */
37520 const lines = []
37521
37522 while (match) {
37523 lines.push(
37524 trimLine(source.slice(last, match.index), last > 0, true),
37525 match[0]
37526 )
37527
37528 last = match.index + match[0].length
37529 match = search.exec(source)
37530 }
37531
37532 lines.push(trimLine(source.slice(last), last > 0, false))
37533
37534 return lines.join('')
37535 }
37536
37537 /**
37538 * @param {string} value
37539 * Line to trim.
37540 * @param {boolean} start
37541 * Whether to trim the start of the line.
37542 * @param {boolean} end
37543 * Whether to trim the end of the line.
37544 * @returns {string}
37545 * Trimmed line.
37546 */
37547 function trimLine(value, start, end) {
37548 let startIndex = 0
37549 let endIndex = value.length
37550
37551 if (start) {
37552 let code = value.codePointAt(startIndex)
37553
37554 while (code === tab || code === space) {
37555 startIndex++
37556 code = value.codePointAt(startIndex)
37557 }
37558 }
37559
37560 if (end) {
37561 let code = value.codePointAt(endIndex - 1)
37562
37563 while (code === tab || code === space) {
37564 endIndex--
37565 code = value.codePointAt(endIndex - 1)
37566 }
37567 }
37568
37569 return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''
37570 }
37571
37572
37573 /***/ }),
37574
37575 /***/ "../node_modules/trough/index.js":
37576 /*!***************************************!*\
37577 !*** ../node_modules/trough/index.js ***!
37578 \***************************************/
37579 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37580
37581 "use strict";
37582 __webpack_require__.r(__webpack_exports__);
37583 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37584 /* harmony export */ trough: () => (/* binding */ trough),
37585 /* harmony export */ wrap: () => (/* binding */ wrap)
37586 /* harmony export */ });
37587 /**
37588 * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback
37589 * @typedef {(...input: Array<any>) => any} Middleware
37590 *
37591 * @typedef {(...input: Array<any>) => void} Run
37592 * Call all middleware.
37593 * @typedef {(fn: Middleware) => Pipeline} Use
37594 * Add `fn` (middleware) to the list.
37595 * @typedef {{run: Run, use: Use}} Pipeline
37596 * Middleware.
37597 */
37598
37599 /**
37600 * Create new middleware.
37601 *
37602 * @returns {Pipeline}
37603 */
37604 function trough() {
37605 /** @type {Array<Middleware>} */
37606 const fns = []
37607 /** @type {Pipeline} */
37608 const pipeline = {run, use}
37609
37610 return pipeline
37611
37612 /** @type {Run} */
37613 function run(...values) {
37614 let middlewareIndex = -1
37615 /** @type {Callback} */
37616 const callback = values.pop()
37617
37618 if (typeof callback !== 'function') {
37619 throw new TypeError('Expected function as last argument, not ' + callback)
37620 }
37621
37622 next(null, ...values)
37623
37624 /**
37625 * Run the next `fn`, or we’re done.
37626 *
37627 * @param {Error|null|undefined} error
37628 * @param {Array<any>} output
37629 */
37630 function next(error, ...output) {
37631 const fn = fns[++middlewareIndex]
37632 let index = -1
37633
37634 if (error) {
37635 callback(error)
37636 return
37637 }
37638
37639 // Copy non-nullish input into values.
37640 while (++index < values.length) {
37641 if (output[index] === null || output[index] === undefined) {
37642 output[index] = values[index]
37643 }
37644 }
37645
37646 // Save the newly created `output` for the next call.
37647 values = output
37648
37649 // Next or done.
37650 if (fn) {
37651 wrap(fn, next)(...output)
37652 } else {
37653 callback(null, ...output)
37654 }
37655 }
37656 }
37657
37658 /** @type {Use} */
37659 function use(middelware) {
37660 if (typeof middelware !== 'function') {
37661 throw new TypeError(
37662 'Expected `middelware` to be a function, not ' + middelware
37663 )
37664 }
37665
37666 fns.push(middelware)
37667 return pipeline
37668 }
37669 }
37670
37671 /**
37672 * Wrap `middleware`.
37673 * Can be sync or async; return a promise, receive a callback, or return new
37674 * values and errors.
37675 *
37676 * @param {Middleware} middleware
37677 * @param {Callback} callback
37678 */
37679 function wrap(middleware, callback) {
37680 /** @type {boolean} */
37681 let called
37682
37683 return wrapped
37684
37685 /**
37686 * Call `middleware`.
37687 * @this {any}
37688 * @param {Array<any>} parameters
37689 * @returns {void}
37690 */
37691 function wrapped(...parameters) {
37692 const fnExpectsCallback = middleware.length > parameters.length
37693 /** @type {any} */
37694 let result
37695
37696 if (fnExpectsCallback) {
37697 parameters.push(done)
37698 }
37699
37700 try {
37701 result = middleware.apply(this, parameters)
37702 } catch (error) {
37703 const exception = /** @type {Error} */ (error)
37704
37705 // Well, this is quite the pickle.
37706 // `middleware` received a callback and called it synchronously, but that
37707 // threw an error.
37708 // The only thing left to do is to throw the thing instead.
37709 if (fnExpectsCallback && called) {
37710 throw exception
37711 }
37712
37713 return done(exception)
37714 }
37715
37716 if (!fnExpectsCallback) {
37717 if (result instanceof Promise) {
37718 result.then(then, done)
37719 } else if (result instanceof Error) {
37720 done(result)
37721 } else {
37722 then(result)
37723 }
37724 }
37725 }
37726
37727 /**
37728 * Call `callback`, only once.
37729 * @type {Callback}
37730 */
37731 function done(error, ...output) {
37732 if (!called) {
37733 called = true
37734 callback(error, ...output)
37735 }
37736 }
37737
37738 /**
37739 * Call `done` with one value.
37740 *
37741 * @param {any} [value]
37742 */
37743 function then(value) {
37744 done(null, value)
37745 }
37746 }
37747
37748
37749 /***/ }),
37750
37751 /***/ "../node_modules/unified/lib/index.js":
37752 /*!********************************************!*\
37753 !*** ../node_modules/unified/lib/index.js ***!
37754 \********************************************/
37755 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37756
37757 "use strict";
37758 __webpack_require__.r(__webpack_exports__);
37759 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37760 /* harmony export */ unified: () => (/* binding */ unified)
37761 /* harmony export */ });
37762 /* harmony import */ var bail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! bail */ "../node_modules/bail/index.js");
37763 /* harmony import */ var is_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-buffer */ "../node_modules/is-buffer/index.js");
37764 /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! extend */ "../node_modules/extend/index.js");
37765 /* harmony import */ var is_plain_obj__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! is-plain-obj */ "../node_modules/is-plain-obj/index.js");
37766 /* harmony import */ var trough__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! trough */ "../node_modules/trough/index.js");
37767 /* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile */ "../node_modules/vfile/lib/index.js");
37768 /**
37769 * @typedef {import('unist').Node} Node
37770 * @typedef {import('vfile').VFileCompatible} VFileCompatible
37771 * @typedef {import('vfile').VFileValue} VFileValue
37772 * @typedef {import('..').Processor} Processor
37773 * @typedef {import('..').Plugin} Plugin
37774 * @typedef {import('..').Preset} Preset
37775 * @typedef {import('..').Pluggable} Pluggable
37776 * @typedef {import('..').PluggableList} PluggableList
37777 * @typedef {import('..').Transformer} Transformer
37778 * @typedef {import('..').Parser} Parser
37779 * @typedef {import('..').Compiler} Compiler
37780 * @typedef {import('..').RunCallback} RunCallback
37781 * @typedef {import('..').ProcessCallback} ProcessCallback
37782 *
37783 * @typedef Context
37784 * @property {Node} tree
37785 * @property {VFile} file
37786 */
37787
37788
37789
37790
37791
37792
37793
37794
37795 // Expose a frozen processor.
37796 const unified = base().freeze()
37797
37798 const own = {}.hasOwnProperty
37799
37800 // Function to create the first processor.
37801 /**
37802 * @returns {Processor}
37803 */
37804 function base() {
37805 const transformers = (0,trough__WEBPACK_IMPORTED_MODULE_3__.trough)()
37806 /** @type {Processor['attachers']} */
37807 const attachers = []
37808 /** @type {Record<string, unknown>} */
37809 let namespace = {}
37810 /** @type {boolean|undefined} */
37811 let frozen
37812 let freezeIndex = -1
37813
37814 // Data management.
37815 // @ts-expect-error: overloads are handled.
37816 processor.data = data
37817 processor.Parser = undefined
37818 processor.Compiler = undefined
37819
37820 // Lock.
37821 processor.freeze = freeze
37822
37823 // Plugins.
37824 processor.attachers = attachers
37825 // @ts-expect-error: overloads are handled.
37826 processor.use = use
37827
37828 // API.
37829 processor.parse = parse
37830 processor.stringify = stringify
37831 // @ts-expect-error: overloads are handled.
37832 processor.run = run
37833 processor.runSync = runSync
37834 // @ts-expect-error: overloads are handled.
37835 processor.process = process
37836 processor.processSync = processSync
37837
37838 // Expose.
37839 return processor
37840
37841 // Create a new processor based on the processor in the current scope.
37842 /** @type {Processor} */
37843 function processor() {
37844 const destination = base()
37845 let index = -1
37846
37847 while (++index < attachers.length) {
37848 destination.use(...attachers[index])
37849 }
37850
37851 destination.data(extend__WEBPACK_IMPORTED_MODULE_1__(true, {}, namespace))
37852
37853 return destination
37854 }
37855
37856 /**
37857 * @param {string|Record<string, unknown>} [key]
37858 * @param {unknown} [value]
37859 * @returns {unknown}
37860 */
37861 function data(key, value) {
37862 if (typeof key === 'string') {
37863 // Set `key`.
37864 if (arguments.length === 2) {
37865 assertUnfrozen('data', frozen)
37866 namespace[key] = value
37867 return processor
37868 }
37869
37870 // Get `key`.
37871 return (own.call(namespace, key) && namespace[key]) || null
37872 }
37873
37874 // Set space.
37875 if (key) {
37876 assertUnfrozen('data', frozen)
37877 namespace = key
37878 return processor
37879 }
37880
37881 // Get space.
37882 return namespace
37883 }
37884
37885 /** @type {Processor['freeze']} */
37886 function freeze() {
37887 if (frozen) {
37888 return processor
37889 }
37890
37891 while (++freezeIndex < attachers.length) {
37892 const [attacher, ...options] = attachers[freezeIndex]
37893
37894 if (options[0] === false) {
37895 continue
37896 }
37897
37898 if (options[0] === true) {
37899 options[0] = undefined
37900 }
37901
37902 /** @type {Transformer|void} */
37903 const transformer = attacher.call(processor, ...options)
37904
37905 if (typeof transformer === 'function') {
37906 transformers.use(transformer)
37907 }
37908 }
37909
37910 frozen = true
37911 freezeIndex = Number.POSITIVE_INFINITY
37912
37913 return processor
37914 }
37915
37916 /**
37917 * @param {Pluggable|null|undefined} [value]
37918 * @param {...unknown} options
37919 * @returns {Processor}
37920 */
37921 function use(value, ...options) {
37922 /** @type {Record<string, unknown>|undefined} */
37923 let settings
37924
37925 assertUnfrozen('use', frozen)
37926
37927 if (value === null || value === undefined) {
37928 // Empty.
37929 } else if (typeof value === 'function') {
37930 addPlugin(value, ...options)
37931 } else if (typeof value === 'object') {
37932 if (Array.isArray(value)) {
37933 addList(value)
37934 } else {
37935 addPreset(value)
37936 }
37937 } else {
37938 throw new TypeError('Expected usable value, not `' + value + '`')
37939 }
37940
37941 if (settings) {
37942 namespace.settings = Object.assign(namespace.settings || {}, settings)
37943 }
37944
37945 return processor
37946
37947 /**
37948 * @param {import('..').Pluggable<unknown[]>} value
37949 * @returns {void}
37950 */
37951 function add(value) {
37952 if (typeof value === 'function') {
37953 addPlugin(value)
37954 } else if (typeof value === 'object') {
37955 if (Array.isArray(value)) {
37956 const [plugin, ...options] = value
37957 addPlugin(plugin, ...options)
37958 } else {
37959 addPreset(value)
37960 }
37961 } else {
37962 throw new TypeError('Expected usable value, not `' + value + '`')
37963 }
37964 }
37965
37966 /**
37967 * @param {Preset} result
37968 * @returns {void}
37969 */
37970 function addPreset(result) {
37971 addList(result.plugins)
37972
37973 if (result.settings) {
37974 settings = Object.assign(settings || {}, result.settings)
37975 }
37976 }
37977
37978 /**
37979 * @param {PluggableList|null|undefined} [plugins]
37980 * @returns {void}
37981 */
37982 function addList(plugins) {
37983 let index = -1
37984
37985 if (plugins === null || plugins === undefined) {
37986 // Empty.
37987 } else if (Array.isArray(plugins)) {
37988 while (++index < plugins.length) {
37989 const thing = plugins[index]
37990 add(thing)
37991 }
37992 } else {
37993 throw new TypeError('Expected a list of plugins, not `' + plugins + '`')
37994 }
37995 }
37996
37997 /**
37998 * @param {Plugin} plugin
37999 * @param {...unknown} [value]
38000 * @returns {void}
38001 */
38002 function addPlugin(plugin, value) {
38003 let index = -1
38004 /** @type {Processor['attachers'][number]|undefined} */
38005 let entry
38006
38007 while (++index < attachers.length) {
38008 if (attachers[index][0] === plugin) {
38009 entry = attachers[index]
38010 break
38011 }
38012 }
38013
38014 if (entry) {
38015 if ((0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(entry[1]) && (0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(value)) {
38016 value = extend__WEBPACK_IMPORTED_MODULE_1__(true, entry[1], value)
38017 }
38018
38019 entry[1] = value
38020 } else {
38021 // @ts-expect-error: fine.
38022 attachers.push([...arguments])
38023 }
38024 }
38025 }
38026
38027 /** @type {Processor['parse']} */
38028 function parse(doc) {
38029 processor.freeze()
38030 const file = vfile(doc)
38031 const Parser = processor.Parser
38032 assertParser('parse', Parser)
38033
38034 if (newable(Parser, 'parse')) {
38035 // @ts-expect-error: `newable` checks this.
38036 return new Parser(String(file), file).parse()
38037 }
38038
38039 // @ts-expect-error: `newable` checks this.
38040 return Parser(String(file), file) // eslint-disable-line new-cap
38041 }
38042
38043 /** @type {Processor['stringify']} */
38044 function stringify(node, doc) {
38045 processor.freeze()
38046 const file = vfile(doc)
38047 const Compiler = processor.Compiler
38048 assertCompiler('stringify', Compiler)
38049 assertNode(node)
38050
38051 if (newable(Compiler, 'compile')) {
38052 // @ts-expect-error: `newable` checks this.
38053 return new Compiler(node, file).compile()
38054 }
38055
38056 // @ts-expect-error: `newable` checks this.
38057 return Compiler(node, file) // eslint-disable-line new-cap
38058 }
38059
38060 /**
38061 * @param {Node} node
38062 * @param {VFileCompatible|RunCallback} [doc]
38063 * @param {RunCallback} [callback]
38064 * @returns {Promise<Node>|void}
38065 */
38066 function run(node, doc, callback) {
38067 assertNode(node)
38068 processor.freeze()
38069
38070 if (!callback && typeof doc === 'function') {
38071 callback = doc
38072 doc = undefined
38073 }
38074
38075 if (!callback) {
38076 return new Promise(executor)
38077 }
38078
38079 executor(null, callback)
38080
38081 /**
38082 * @param {null|((node: Node) => void)} resolve
38083 * @param {(error: Error) => void} reject
38084 * @returns {void}
38085 */
38086 function executor(resolve, reject) {
38087 // @ts-expect-error: `doc` can’t be a callback anymore, we checked.
38088 transformers.run(node, vfile(doc), done)
38089
38090 /**
38091 * @param {Error|null} error
38092 * @param {Node} tree
38093 * @param {VFile} file
38094 * @returns {void}
38095 */
38096 function done(error, tree, file) {
38097 tree = tree || node
38098 if (error) {
38099 reject(error)
38100 } else if (resolve) {
38101 resolve(tree)
38102 } else {
38103 // @ts-expect-error: `callback` is defined if `resolve` is not.
38104 callback(null, tree, file)
38105 }
38106 }
38107 }
38108 }
38109
38110 /** @type {Processor['runSync']} */
38111 function runSync(node, file) {
38112 /** @type {Node|undefined} */
38113 let result
38114 /** @type {boolean|undefined} */
38115 let complete
38116
38117 processor.run(node, file, done)
38118
38119 assertDone('runSync', 'run', complete)
38120
38121 // @ts-expect-error: we either bailed on an error or have a tree.
38122 return result
38123
38124 /**
38125 * @param {Error|null} [error]
38126 * @param {Node} [tree]
38127 * @returns {void}
38128 */
38129 function done(error, tree) {
38130 ;(0,bail__WEBPACK_IMPORTED_MODULE_4__.bail)(error)
38131 result = tree
38132 complete = true
38133 }
38134 }
38135
38136 /**
38137 * @param {VFileCompatible} doc
38138 * @param {ProcessCallback} [callback]
38139 * @returns {Promise<VFile>|undefined}
38140 */
38141 function process(doc, callback) {
38142 processor.freeze()
38143 assertParser('process', processor.Parser)
38144 assertCompiler('process', processor.Compiler)
38145
38146 if (!callback) {
38147 return new Promise(executor)
38148 }
38149
38150 executor(null, callback)
38151
38152 /**
38153 * @param {null|((file: VFile) => void)} resolve
38154 * @param {(error?: Error|null|undefined) => void} reject
38155 * @returns {void}
38156 */
38157 function executor(resolve, reject) {
38158 const file = vfile(doc)
38159
38160 processor.run(processor.parse(file), file, (error, tree, file) => {
38161 if (error || !tree || !file) {
38162 done(error)
38163 } else {
38164 /** @type {unknown} */
38165 const result = processor.stringify(tree, file)
38166
38167 if (result === undefined || result === null) {
38168 // Empty.
38169 } else if (looksLikeAVFileValue(result)) {
38170 file.value = result
38171 } else {
38172 file.result = result
38173 }
38174
38175 done(error, file)
38176 }
38177 })
38178
38179 /**
38180 * @param {Error|null|undefined} [error]
38181 * @param {VFile|undefined} [file]
38182 * @returns {void}
38183 */
38184 function done(error, file) {
38185 if (error || !file) {
38186 reject(error)
38187 } else if (resolve) {
38188 resolve(file)
38189 } else {
38190 // @ts-expect-error: `callback` is defined if `resolve` is not.
38191 callback(null, file)
38192 }
38193 }
38194 }
38195 }
38196
38197 /** @type {Processor['processSync']} */
38198 function processSync(doc) {
38199 /** @type {boolean|undefined} */
38200 let complete
38201
38202 processor.freeze()
38203 assertParser('processSync', processor.Parser)
38204 assertCompiler('processSync', processor.Compiler)
38205
38206 const file = vfile(doc)
38207
38208 processor.process(file, done)
38209
38210 assertDone('processSync', 'process', complete)
38211
38212 return file
38213
38214 /**
38215 * @param {Error|null|undefined} [error]
38216 * @returns {void}
38217 */
38218 function done(error) {
38219 complete = true
38220 ;(0,bail__WEBPACK_IMPORTED_MODULE_4__.bail)(error)
38221 }
38222 }
38223 }
38224
38225 /**
38226 * Check if `value` is a constructor.
38227 *
38228 * @param {unknown} value
38229 * @param {string} name
38230 * @returns {boolean}
38231 */
38232 function newable(value, name) {
38233 return (
38234 typeof value === 'function' &&
38235 // Prototypes do exist.
38236 // type-coverage:ignore-next-line
38237 value.prototype &&
38238 // A function with keys in its prototype is probably a constructor.
38239 // Classes’ prototype methods are not enumerable, so we check if some value
38240 // exists in the prototype.
38241 // type-coverage:ignore-next-line
38242 (keys(value.prototype) || name in value.prototype)
38243 )
38244 }
38245
38246 /**
38247 * Check if `value` is an object with keys.
38248 *
38249 * @param {Record<string, unknown>} value
38250 * @returns {boolean}
38251 */
38252 function keys(value) {
38253 /** @type {string} */
38254 let key
38255
38256 for (key in value) {
38257 if (own.call(value, key)) {
38258 return true
38259 }
38260 }
38261
38262 return false
38263 }
38264
38265 /**
38266 * Assert a parser is available.
38267 *
38268 * @param {string} name
38269 * @param {unknown} value
38270 * @returns {asserts value is Parser}
38271 */
38272 function assertParser(name, value) {
38273 if (typeof value !== 'function') {
38274 throw new TypeError('Cannot `' + name + '` without `Parser`')
38275 }
38276 }
38277
38278 /**
38279 * Assert a compiler is available.
38280 *
38281 * @param {string} name
38282 * @param {unknown} value
38283 * @returns {asserts value is Compiler}
38284 */
38285 function assertCompiler(name, value) {
38286 if (typeof value !== 'function') {
38287 throw new TypeError('Cannot `' + name + '` without `Compiler`')
38288 }
38289 }
38290
38291 /**
38292 * Assert the processor is not frozen.
38293 *
38294 * @param {string} name
38295 * @param {unknown} frozen
38296 * @returns {asserts frozen is false}
38297 */
38298 function assertUnfrozen(name, frozen) {
38299 if (frozen) {
38300 throw new Error(
38301 'Cannot call `' +
38302 name +
38303 '` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'
38304 )
38305 }
38306 }
38307
38308 /**
38309 * Assert `node` is a unist node.
38310 *
38311 * @param {unknown} node
38312 * @returns {asserts node is Node}
38313 */
38314 function assertNode(node) {
38315 // `isPlainObj` unfortunately uses `any` instead of `unknown`.
38316 // type-coverage:ignore-next-line
38317 if (!(0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(node) || typeof node.type !== 'string') {
38318 throw new TypeError('Expected node, got `' + node + '`')
38319 // Fine.
38320 }
38321 }
38322
38323 /**
38324 * Assert that `complete` is `true`.
38325 *
38326 * @param {string} name
38327 * @param {string} asyncName
38328 * @param {unknown} complete
38329 * @returns {asserts complete is true}
38330 */
38331 function assertDone(name, asyncName, complete) {
38332 if (!complete) {
38333 throw new Error(
38334 '`' + name + '` finished async. Use `' + asyncName + '` instead'
38335 )
38336 }
38337 }
38338
38339 /**
38340 * @param {VFileCompatible} [value]
38341 * @returns {VFile}
38342 */
38343 function vfile(value) {
38344 return looksLikeAVFile(value) ? value : new vfile__WEBPACK_IMPORTED_MODULE_5__.VFile(value)
38345 }
38346
38347 /**
38348 * @param {VFileCompatible} [value]
38349 * @returns {value is VFile}
38350 */
38351 function looksLikeAVFile(value) {
38352 return Boolean(
38353 value &&
38354 typeof value === 'object' &&
38355 'message' in value &&
38356 'messages' in value
38357 )
38358 }
38359
38360 /**
38361 * @param {unknown} [value]
38362 * @returns {value is VFileValue}
38363 */
38364 function looksLikeAVFileValue(value) {
38365 return typeof value === 'string' || is_buffer__WEBPACK_IMPORTED_MODULE_0__(value)
38366 }
38367
38368
38369 /***/ }),
38370
38371 /***/ "../node_modules/unist-util-generated/lib/index.js":
38372 /*!*********************************************************!*\
38373 !*** ../node_modules/unist-util-generated/lib/index.js ***!
38374 \*********************************************************/
38375 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38376
38377 "use strict";
38378 __webpack_require__.r(__webpack_exports__);
38379 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38380 /* harmony export */ generated: () => (/* binding */ generated)
38381 /* harmony export */ });
38382 /**
38383 * @typedef PointLike
38384 * @property {number | null | undefined} [line]
38385 * @property {number | null | undefined} [column]
38386 * @property {number | null | undefined} [offset]
38387 *
38388 * @typedef PositionLike
38389 * @property {PointLike | null | undefined} [start]
38390 * @property {PointLike | null | undefined} [end]
38391 *
38392 * @typedef NodeLike
38393 * @property {PositionLike | null | undefined} [position]
38394 */
38395
38396 /**
38397 * Check if `node` is generated.
38398 *
38399 * @param {NodeLike | null | undefined} [node]
38400 * Node to check.
38401 * @returns {boolean}
38402 * Whether `node` is generated (does not have positional info).
38403 */
38404 function generated(node) {
38405 return (
38406 !node ||
38407 !node.position ||
38408 !node.position.start ||
38409 !node.position.start.line ||
38410 !node.position.start.column ||
38411 !node.position.end ||
38412 !node.position.end.line ||
38413 !node.position.end.column
38414 )
38415 }
38416
38417
38418 /***/ }),
38419
38420 /***/ "../node_modules/unist-util-is/lib/index.js":
38421 /*!**************************************************!*\
38422 !*** ../node_modules/unist-util-is/lib/index.js ***!
38423 \**************************************************/
38424 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38425
38426 "use strict";
38427 __webpack_require__.r(__webpack_exports__);
38428 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38429 /* harmony export */ convert: () => (/* binding */ convert),
38430 /* harmony export */ is: () => (/* binding */ is)
38431 /* harmony export */ });
38432 /**
38433 * @typedef {import('unist').Node} Node
38434 * @typedef {import('unist').Parent} Parent
38435 */
38436
38437 /**
38438 * @typedef {Record<string, unknown>} Props
38439 * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test
38440 * Check for an arbitrary node, unaware of TypeScript inferral.
38441 *
38442 * @callback TestFunctionAnything
38443 * Check if a node passes a test, unaware of TypeScript inferral.
38444 * @param {unknown} this
38445 * The given context.
38446 * @param {Node} node
38447 * A node.
38448 * @param {number | null | undefined} [index]
38449 * The node’s position in its parent.
38450 * @param {Parent | null | undefined} [parent]
38451 * The node’s parent.
38452 * @returns {boolean | void}
38453 * Whether this node passes the test.
38454 */
38455
38456 /**
38457 * @template {Node} Kind
38458 * Node type.
38459 * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest
38460 * Check for a node that can be inferred by TypeScript.
38461 */
38462
38463 /**
38464 * Check if a node passes a certain test.
38465 *
38466 * @template {Node} Kind
38467 * Node type.
38468 * @callback TestFunctionPredicate
38469 * Complex test function for a node that can be inferred by TypeScript.
38470 * @param {Node} node
38471 * A node.
38472 * @param {number | null | undefined} [index]
38473 * The node’s position in its parent.
38474 * @param {Parent | null | undefined} [parent]
38475 * The node’s parent.
38476 * @returns {node is Kind}
38477 * Whether this node passes the test.
38478 */
38479
38480 /**
38481 * @callback AssertAnything
38482 * Check that an arbitrary value is a node, unaware of TypeScript inferral.
38483 * @param {unknown} [node]
38484 * Anything (typically a node).
38485 * @param {number | null | undefined} [index]
38486 * The node’s position in its parent.
38487 * @param {Parent | null | undefined} [parent]
38488 * The node’s parent.
38489 * @returns {boolean}
38490 * Whether this is a node and passes a test.
38491 */
38492
38493 /**
38494 * Check if a node is a node and passes a certain node test.
38495 *
38496 * @template {Node} Kind
38497 * Node type.
38498 * @callback AssertPredicate
38499 * Check that an arbitrary value is a specific node, aware of TypeScript.
38500 * @param {unknown} [node]
38501 * Anything (typically a node).
38502 * @param {number | null | undefined} [index]
38503 * The node’s position in its parent.
38504 * @param {Parent | null | undefined} [parent]
38505 * The node’s parent.
38506 * @returns {node is Kind}
38507 * Whether this is a node and passes a test.
38508 */
38509
38510 /**
38511 * Check if `node` is a `Node` and whether it passes the given test.
38512 *
38513 * @param node
38514 * Thing to check, typically `Node`.
38515 * @param test
38516 * A check for a specific node.
38517 * @param index
38518 * The node’s position in its parent.
38519 * @param parent
38520 * The node’s parent.
38521 * @returns
38522 * Whether `node` is a node and passes a test.
38523 */
38524 const is =
38525 /**
38526 * @type {(
38527 * (() => false) &
38528 * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &
38529 * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &
38530 * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &
38531 * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)
38532 * )}
38533 */
38534 (
38535 /**
38536 * @param {unknown} [node]
38537 * @param {Test} [test]
38538 * @param {number | null | undefined} [index]
38539 * @param {Parent | null | undefined} [parent]
38540 * @param {unknown} [context]
38541 * @returns {boolean}
38542 */
38543 // eslint-disable-next-line max-params
38544 function is(node, test, index, parent, context) {
38545 const check = convert(test)
38546
38547 if (
38548 index !== undefined &&
38549 index !== null &&
38550 (typeof index !== 'number' ||
38551 index < 0 ||
38552 index === Number.POSITIVE_INFINITY)
38553 ) {
38554 throw new Error('Expected positive finite index')
38555 }
38556
38557 if (
38558 parent !== undefined &&
38559 parent !== null &&
38560 (!is(parent) || !parent.children)
38561 ) {
38562 throw new Error('Expected parent node')
38563 }
38564
38565 if (
38566 (parent === undefined || parent === null) !==
38567 (index === undefined || index === null)
38568 ) {
38569 throw new Error('Expected both parent and index')
38570 }
38571
38572 // @ts-expect-error Looks like a node.
38573 return node && node.type && typeof node.type === 'string'
38574 ? Boolean(check.call(context, node, index, parent))
38575 : false
38576 }
38577 )
38578
38579 /**
38580 * Generate an assertion from a test.
38581 *
38582 * Useful if you’re going to test many nodes, for example when creating a
38583 * utility where something else passes a compatible test.
38584 *
38585 * The created function is a bit faster because it expects valid input only:
38586 * a `node`, `index`, and `parent`.
38587 *
38588 * @param test
38589 * * when nullish, checks if `node` is a `Node`.
38590 * * when `string`, works like passing `(node) => node.type === test`.
38591 * * when `function` checks if function passed the node is true.
38592 * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.
38593 * * when `array`, checks if any one of the subtests pass.
38594 * @returns
38595 * An assertion.
38596 */
38597 const convert =
38598 /**
38599 * @type {(
38600 * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &
38601 * ((test?: Test) => AssertAnything)
38602 * )}
38603 */
38604 (
38605 /**
38606 * @param {Test} [test]
38607 * @returns {AssertAnything}
38608 */
38609 function (test) {
38610 if (test === undefined || test === null) {
38611 return ok
38612 }
38613
38614 if (typeof test === 'string') {
38615 return typeFactory(test)
38616 }
38617
38618 if (typeof test === 'object') {
38619 return Array.isArray(test) ? anyFactory(test) : propsFactory(test)
38620 }
38621
38622 if (typeof test === 'function') {
38623 return castFactory(test)
38624 }
38625
38626 throw new Error('Expected function, string, or object as test')
38627 }
38628 )
38629
38630 /**
38631 * @param {Array<string | Props | TestFunctionAnything>} tests
38632 * @returns {AssertAnything}
38633 */
38634 function anyFactory(tests) {
38635 /** @type {Array<AssertAnything>} */
38636 const checks = []
38637 let index = -1
38638
38639 while (++index < tests.length) {
38640 checks[index] = convert(tests[index])
38641 }
38642
38643 return castFactory(any)
38644
38645 /**
38646 * @this {unknown}
38647 * @param {Array<unknown>} parameters
38648 * @returns {boolean}
38649 */
38650 function any(...parameters) {
38651 let index = -1
38652
38653 while (++index < checks.length) {
38654 if (checks[index].call(this, ...parameters)) return true
38655 }
38656
38657 return false
38658 }
38659 }
38660
38661 /**
38662 * Turn an object into a test for a node with a certain fields.
38663 *
38664 * @param {Props} check
38665 * @returns {AssertAnything}
38666 */
38667 function propsFactory(check) {
38668 return castFactory(all)
38669
38670 /**
38671 * @param {Node} node
38672 * @returns {boolean}
38673 */
38674 function all(node) {
38675 /** @type {string} */
38676 let key
38677
38678 for (key in check) {
38679 // @ts-expect-error: hush, it sure works as an index.
38680 if (node[key] !== check[key]) return false
38681 }
38682
38683 return true
38684 }
38685 }
38686
38687 /**
38688 * Turn a string into a test for a node with a certain type.
38689 *
38690 * @param {string} check
38691 * @returns {AssertAnything}
38692 */
38693 function typeFactory(check) {
38694 return castFactory(type)
38695
38696 /**
38697 * @param {Node} node
38698 */
38699 function type(node) {
38700 return node && node.type === check
38701 }
38702 }
38703
38704 /**
38705 * Turn a custom test into a test for a node that passes that test.
38706 *
38707 * @param {TestFunctionAnything} check
38708 * @returns {AssertAnything}
38709 */
38710 function castFactory(check) {
38711 return assertion
38712
38713 /**
38714 * @this {unknown}
38715 * @param {unknown} node
38716 * @param {Array<unknown>} parameters
38717 * @returns {boolean}
38718 */
38719 function assertion(node, ...parameters) {
38720 return Boolean(
38721 node &&
38722 typeof node === 'object' &&
38723 'type' in node &&
38724 // @ts-expect-error: fine.
38725 Boolean(check.call(this, node, ...parameters))
38726 )
38727 }
38728 }
38729
38730 function ok() {
38731 return true
38732 }
38733
38734
38735 /***/ }),
38736
38737 /***/ "../node_modules/unist-util-position/lib/index.js":
38738 /*!********************************************************!*\
38739 !*** ../node_modules/unist-util-position/lib/index.js ***!
38740 \********************************************************/
38741 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38742
38743 "use strict";
38744 __webpack_require__.r(__webpack_exports__);
38745 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38746 /* harmony export */ pointEnd: () => (/* binding */ pointEnd),
38747 /* harmony export */ pointStart: () => (/* binding */ pointStart),
38748 /* harmony export */ position: () => (/* binding */ position)
38749 /* harmony export */ });
38750 /**
38751 * @typedef {import('unist').Position} Position
38752 * @typedef {import('unist').Node} Node
38753 * @typedef {import('unist').Point} Point
38754 */
38755
38756 /**
38757 * @typedef NodeLike
38758 * @property {string} type
38759 * @property {PositionLike | null | undefined} [position]
38760 *
38761 * @typedef PositionLike
38762 * @property {PointLike | null | undefined} [start]
38763 * @property {PointLike | null | undefined} [end]
38764 *
38765 * @typedef PointLike
38766 * @property {number | null | undefined} [line]
38767 * @property {number | null | undefined} [column]
38768 * @property {number | null | undefined} [offset]
38769 */
38770
38771 /**
38772 * Get the starting point of `node`.
38773 *
38774 * @param node
38775 * Node.
38776 * @returns
38777 * Point.
38778 */
38779 const pointStart = point('start')
38780
38781 /**
38782 * Get the ending point of `node`.
38783 *
38784 * @param node
38785 * Node.
38786 * @returns
38787 * Point.
38788 */
38789 const pointEnd = point('end')
38790
38791 /**
38792 * Get the positional info of `node`.
38793 *
38794 * @param {NodeLike | Node | null | undefined} [node]
38795 * Node.
38796 * @returns {Position}
38797 * Position.
38798 */
38799 function position(node) {
38800 return {start: pointStart(node), end: pointEnd(node)}
38801 }
38802
38803 /**
38804 * Get the positional info of `node`.
38805 *
38806 * @param {'start' | 'end'} type
38807 * Side.
38808 * @returns
38809 * Getter.
38810 */
38811 function point(type) {
38812 return point
38813
38814 /**
38815 * Get the point info of `node` at a bound side.
38816 *
38817 * @param {NodeLike | Node | null | undefined} [node]
38818 * @returns {Point}
38819 */
38820 function point(node) {
38821 const point = (node && node.position && node.position[type]) || {}
38822
38823 // To do: next major: don’t return points when invalid.
38824 return {
38825 // @ts-expect-error: in practice, null is allowed.
38826 line: point.line || null,
38827 // @ts-expect-error: in practice, null is allowed.
38828 column: point.column || null,
38829 // @ts-expect-error: in practice, null is allowed.
38830 offset: point.offset > -1 ? point.offset : null
38831 }
38832 }
38833 }
38834
38835
38836 /***/ }),
38837
38838 /***/ "../node_modules/unist-util-stringify-position/lib/index.js":
38839 /*!******************************************************************!*\
38840 !*** ../node_modules/unist-util-stringify-position/lib/index.js ***!
38841 \******************************************************************/
38842 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38843
38844 "use strict";
38845 __webpack_require__.r(__webpack_exports__);
38846 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38847 /* harmony export */ stringifyPosition: () => (/* binding */ stringifyPosition)
38848 /* harmony export */ });
38849 /**
38850 * @typedef {import('unist').Node} Node
38851 * @typedef {import('unist').Point} Point
38852 * @typedef {import('unist').Position} Position
38853 */
38854
38855 /**
38856 * @typedef NodeLike
38857 * @property {string} type
38858 * @property {PositionLike | null | undefined} [position]
38859 *
38860 * @typedef PositionLike
38861 * @property {PointLike | null | undefined} [start]
38862 * @property {PointLike | null | undefined} [end]
38863 *
38864 * @typedef PointLike
38865 * @property {number | null | undefined} [line]
38866 * @property {number | null | undefined} [column]
38867 * @property {number | null | undefined} [offset]
38868 */
38869
38870 /**
38871 * Serialize the positional info of a point, position (start and end points),
38872 * or node.
38873 *
38874 * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]
38875 * Node, position, or point.
38876 * @returns {string}
38877 * Pretty printed positional info of a node (`string`).
38878 *
38879 * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
38880 * or a point `l:c` (when given `point`), where `l` stands for line, `c` for
38881 * column, `s` for `start`, and `e` for end.
38882 * An empty string (`''`) is returned if the given value is neither `node`,
38883 * `position`, nor `point`.
38884 */
38885 function stringifyPosition(value) {
38886 // Nothing.
38887 if (!value || typeof value !== 'object') {
38888 return ''
38889 }
38890
38891 // Node.
38892 if ('position' in value || 'type' in value) {
38893 return position(value.position)
38894 }
38895
38896 // Position.
38897 if ('start' in value || 'end' in value) {
38898 return position(value)
38899 }
38900
38901 // Point.
38902 if ('line' in value || 'column' in value) {
38903 return point(value)
38904 }
38905
38906 // ?
38907 return ''
38908 }
38909
38910 /**
38911 * @param {Point | PointLike | null | undefined} point
38912 * @returns {string}
38913 */
38914 function point(point) {
38915 return index(point && point.line) + ':' + index(point && point.column)
38916 }
38917
38918 /**
38919 * @param {Position | PositionLike | null | undefined} pos
38920 * @returns {string}
38921 */
38922 function position(pos) {
38923 return point(pos && pos.start) + '-' + point(pos && pos.end)
38924 }
38925
38926 /**
38927 * @param {number | null | undefined} value
38928 * @returns {number}
38929 */
38930 function index(value) {
38931 return value && typeof value === 'number' ? value : 1
38932 }
38933
38934
38935 /***/ }),
38936
38937 /***/ "../node_modules/unist-util-visit-parents/lib/color.browser.js":
38938 /*!*********************************************************************!*\
38939 !*** ../node_modules/unist-util-visit-parents/lib/color.browser.js ***!
38940 \*********************************************************************/
38941 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38942
38943 "use strict";
38944 __webpack_require__.r(__webpack_exports__);
38945 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38946 /* harmony export */ color: () => (/* binding */ color)
38947 /* harmony export */ });
38948 /**
38949 * @param {string} d
38950 * @returns {string}
38951 */
38952 function color(d) {
38953 return d
38954 }
38955
38956
38957 /***/ }),
38958
38959 /***/ "../node_modules/unist-util-visit-parents/lib/index.js":
38960 /*!*************************************************************!*\
38961 !*** ../node_modules/unist-util-visit-parents/lib/index.js ***!
38962 \*************************************************************/
38963 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38964
38965 "use strict";
38966 __webpack_require__.r(__webpack_exports__);
38967 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38968 /* harmony export */ CONTINUE: () => (/* binding */ CONTINUE),
38969 /* harmony export */ EXIT: () => (/* binding */ EXIT),
38970 /* harmony export */ SKIP: () => (/* binding */ SKIP),
38971 /* harmony export */ visitParents: () => (/* binding */ visitParents)
38972 /* harmony export */ });
38973 /* harmony import */ var unist_util_is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-is */ "../node_modules/unist-util-is/lib/index.js");
38974 /* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "../node_modules/unist-util-visit-parents/lib/color.browser.js");
38975 /**
38976 * @typedef {import('unist').Node} Node
38977 * @typedef {import('unist').Parent} Parent
38978 * @typedef {import('unist-util-is').Test} Test
38979 */
38980
38981 /**
38982 * @typedef {boolean | 'skip'} Action
38983 * Union of the action types.
38984 *
38985 * @typedef {number} Index
38986 * Move to the sibling at `index` next (after node itself is completely
38987 * traversed).
38988 *
38989 * Useful if mutating the tree, such as removing the node the visitor is
38990 * currently on, or any of its previous siblings.
38991 * Results less than 0 or greater than or equal to `children.length` stop
38992 * traversing the parent.
38993 *
38994 * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple
38995 * List with one or two values, the first an action, the second an index.
38996 *
38997 * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult
38998 * Any value that can be returned from a visitor.
38999 */
39000
39001 /**
39002 * @template {Node} [Visited=Node]
39003 * Visited node type.
39004 * @template {Parent} [Ancestor=Parent]
39005 * Ancestor type.
39006 * @callback Visitor
39007 * Handle a node (matching `test`, if given).
39008 *
39009 * Visitors are free to transform `node`.
39010 * They can also transform the parent of node (the last of `ancestors`).
39011 *
39012 * Replacing `node` itself, if `SKIP` is not returned, still causes its
39013 * descendants to be walked (which is a bug).
39014 *
39015 * When adding or removing previous siblings of `node` (or next siblings, in
39016 * case of reverse), the `Visitor` should return a new `Index` to specify the
39017 * sibling to traverse after `node` is traversed.
39018 * Adding or removing next siblings of `node` (or previous siblings, in case
39019 * of reverse) is handled as expected without needing to return a new `Index`.
39020 *
39021 * Removing the children property of an ancestor still results in them being
39022 * traversed.
39023 * @param {Visited} node
39024 * Found node.
39025 * @param {Array<Ancestor>} ancestors
39026 * Ancestors of `node`.
39027 * @returns {VisitorResult}
39028 * What to do next.
39029 *
39030 * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
39031 * An `Action` is treated as a tuple of `[Action]`.
39032 *
39033 * Passing a tuple back only makes sense if the `Action` is `SKIP`.
39034 * When the `Action` is `EXIT`, that action can be returned.
39035 * When the `Action` is `CONTINUE`, `Index` can be returned.
39036 */
39037
39038 /**
39039 * @template {Node} [Tree=Node]
39040 * Tree type.
39041 * @template {Test} [Check=string]
39042 * Test type.
39043 * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor
39044 * Build a typed `Visitor` function from a tree and a test.
39045 *
39046 * It will infer which values are passed as `node` and which as `parents`.
39047 */
39048
39049
39050
39051
39052 /**
39053 * Continue traversing as normal.
39054 */
39055 const CONTINUE = true
39056
39057 /**
39058 * Stop traversing immediately.
39059 */
39060 const EXIT = false
39061
39062 /**
39063 * Do not traverse this node’s children.
39064 */
39065 const SKIP = 'skip'
39066
39067 /**
39068 * Visit nodes, with ancestral information.
39069 *
39070 * This algorithm performs *depth-first* *tree traversal* in *preorder*
39071 * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
39072 *
39073 * You can choose for which nodes `visitor` is called by passing a `test`.
39074 * For complex tests, you should test yourself in `visitor`, as it will be
39075 * faster and will have improved type information.
39076 *
39077 * Walking the tree is an intensive task.
39078 * Make use of the return values of the visitor when possible.
39079 * Instead of walking a tree multiple times, walk it once, use `unist-util-is`
39080 * to check if a node matches, and then perform different operations.
39081 *
39082 * You can change the tree.
39083 * See `Visitor` for more info.
39084 *
39085 * @param tree
39086 * Tree to traverse.
39087 * @param test
39088 * `unist-util-is`-compatible test
39089 * @param visitor
39090 * Handle each node.
39091 * @param reverse
39092 * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
39093 * @returns
39094 * Nothing.
39095 */
39096 const visitParents =
39097 /**
39098 * @type {(
39099 * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
39100 * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
39101 * )}
39102 */
39103 (
39104 /**
39105 * @param {Node} tree
39106 * @param {Test} test
39107 * @param {Visitor<Node>} visitor
39108 * @param {boolean | null | undefined} [reverse]
39109 * @returns {void}
39110 */
39111 function (tree, test, visitor, reverse) {
39112 if (typeof test === 'function' && typeof visitor !== 'function') {
39113 reverse = visitor
39114 // @ts-expect-error no visitor given, so `visitor` is test.
39115 visitor = test
39116 test = null
39117 }
39118
39119 const is = (0,unist_util_is__WEBPACK_IMPORTED_MODULE_0__.convert)(test)
39120 const step = reverse ? -1 : 1
39121
39122 factory(tree, undefined, [])()
39123
39124 /**
39125 * @param {Node} node
39126 * @param {number | undefined} index
39127 * @param {Array<Parent>} parents
39128 */
39129 function factory(node, index, parents) {
39130 /** @type {Record<string, unknown>} */
39131 // @ts-expect-error: hush
39132 const value = node && typeof node === 'object' ? node : {}
39133
39134 if (typeof value.type === 'string') {
39135 const name =
39136 // `hast`
39137 typeof value.tagName === 'string'
39138 ? value.tagName
39139 : // `xast`
39140 typeof value.name === 'string'
39141 ? value.name
39142 : undefined
39143
39144 Object.defineProperty(visit, 'name', {
39145 value:
39146 'node (' + (0,_color_js__WEBPACK_IMPORTED_MODULE_1__.color)(node.type + (name ? '<' + name + '>' : '')) + ')'
39147 })
39148 }
39149
39150 return visit
39151
39152 function visit() {
39153 /** @type {ActionTuple} */
39154 let result = []
39155 /** @type {ActionTuple} */
39156 let subresult
39157 /** @type {number} */
39158 let offset
39159 /** @type {Array<Parent>} */
39160 let grandparents
39161
39162 if (!test || is(node, index, parents[parents.length - 1] || null)) {
39163 result = toResult(visitor(node, parents))
39164
39165 if (result[0] === EXIT) {
39166 return result
39167 }
39168 }
39169
39170 // @ts-expect-error looks like a parent.
39171 if (node.children && result[0] !== SKIP) {
39172 // @ts-expect-error looks like a parent.
39173 offset = (reverse ? node.children.length : -1) + step
39174 // @ts-expect-error looks like a parent.
39175 grandparents = parents.concat(node)
39176
39177 // @ts-expect-error looks like a parent.
39178 while (offset > -1 && offset < node.children.length) {
39179 // @ts-expect-error looks like a parent.
39180 subresult = factory(node.children[offset], offset, grandparents)()
39181
39182 if (subresult[0] === EXIT) {
39183 return subresult
39184 }
39185
39186 offset =
39187 typeof subresult[1] === 'number' ? subresult[1] : offset + step
39188 }
39189 }
39190
39191 return result
39192 }
39193 }
39194 }
39195 )
39196
39197 /**
39198 * Turn a return value into a clean result.
39199 *
39200 * @param {VisitorResult} value
39201 * Valid return values from visitors.
39202 * @returns {ActionTuple}
39203 * Clean result.
39204 */
39205 function toResult(value) {
39206 if (Array.isArray(value)) {
39207 return value
39208 }
39209
39210 if (typeof value === 'number') {
39211 return [CONTINUE, value]
39212 }
39213
39214 return [value]
39215 }
39216
39217
39218 /***/ }),
39219
39220 /***/ "../node_modules/unist-util-visit/lib/index.js":
39221 /*!*****************************************************!*\
39222 !*** ../node_modules/unist-util-visit/lib/index.js ***!
39223 \*****************************************************/
39224 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39225
39226 "use strict";
39227 __webpack_require__.r(__webpack_exports__);
39228 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39229 /* harmony export */ CONTINUE: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.CONTINUE),
39230 /* harmony export */ EXIT: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.EXIT),
39231 /* harmony export */ SKIP: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.SKIP),
39232 /* harmony export */ visit: () => (/* binding */ visit)
39233 /* harmony export */ });
39234 /* harmony import */ var unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit-parents */ "../node_modules/unist-util-visit-parents/lib/index.js");
39235 /**
39236 * @typedef {import('unist').Node} Node
39237 * @typedef {import('unist').Parent} Parent
39238 * @typedef {import('unist-util-is').Test} Test
39239 * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult
39240 */
39241
39242 /**
39243 * Check if `Child` can be a child of `Ancestor`.
39244 *
39245 * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns
39246 * `never`.
39247 *
39248 * @template {Node} Ancestor
39249 * Node type.
39250 * @template {Node} Child
39251 * Node type.
39252 * @typedef {(
39253 * Ancestor extends Parent
39254 * ? Child extends Ancestor['children'][number]
39255 * ? Ancestor
39256 * : never
39257 * : never
39258 * )} ParentsOf
39259 */
39260
39261 /**
39262 * @template {Node} [Visited=Node]
39263 * Visited node type.
39264 * @template {Parent} [Ancestor=Parent]
39265 * Ancestor type.
39266 * @callback Visitor
39267 * Handle a node (matching `test`, if given).
39268 *
39269 * Visitors are free to transform `node`.
39270 * They can also transform `parent`.
39271 *
39272 * Replacing `node` itself, if `SKIP` is not returned, still causes its
39273 * descendants to be walked (which is a bug).
39274 *
39275 * When adding or removing previous siblings of `node` (or next siblings, in
39276 * case of reverse), the `Visitor` should return a new `Index` to specify the
39277 * sibling to traverse after `node` is traversed.
39278 * Adding or removing next siblings of `node` (or previous siblings, in case
39279 * of reverse) is handled as expected without needing to return a new `Index`.
39280 *
39281 * Removing the children property of `parent` still results in them being
39282 * traversed.
39283 * @param {Visited} node
39284 * Found node.
39285 * @param {Visited extends Node ? number | null : never} index
39286 * Index of `node` in `parent`.
39287 * @param {Ancestor extends Node ? Ancestor | null : never} parent
39288 * Parent of `node`.
39289 * @returns {VisitorResult}
39290 * What to do next.
39291 *
39292 * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
39293 * An `Action` is treated as a tuple of `[Action]`.
39294 *
39295 * Passing a tuple back only makes sense if the `Action` is `SKIP`.
39296 * When the `Action` is `EXIT`, that action can be returned.
39297 * When the `Action` is `CONTINUE`, `Index` can be returned.
39298 */
39299
39300 /**
39301 * Build a typed `Visitor` function from a node and all possible parents.
39302 *
39303 * It will infer which values are passed as `node` and which as `parent`.
39304 *
39305 * @template {Node} Visited
39306 * Node type.
39307 * @template {Parent} Ancestor
39308 * Parent type.
39309 * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch
39310 */
39311
39312 /**
39313 * Build a typed `Visitor` function from a list of descendants and a test.
39314 *
39315 * It will infer which values are passed as `node` and which as `parent`.
39316 *
39317 * @template {Node} Descendant
39318 * Node type.
39319 * @template {Test} Check
39320 * Test type.
39321 * @typedef {(
39322 * BuildVisitorFromMatch<
39323 * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,
39324 * Extract<Descendant, Parent>
39325 * >
39326 * )} BuildVisitorFromDescendants
39327 */
39328
39329 /**
39330 * Build a typed `Visitor` function from a tree and a test.
39331 *
39332 * It will infer which values are passed as `node` and which as `parent`.
39333 *
39334 * @template {Node} [Tree=Node]
39335 * Node type.
39336 * @template {Test} [Check=string]
39337 * Test type.
39338 * @typedef {(
39339 * BuildVisitorFromDescendants<
39340 * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,
39341 * Check
39342 * >
39343 * )} BuildVisitor
39344 */
39345
39346
39347
39348 /**
39349 * Visit nodes.
39350 *
39351 * This algorithm performs *depth-first* *tree traversal* in *preorder*
39352 * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
39353 *
39354 * You can choose for which nodes `visitor` is called by passing a `test`.
39355 * For complex tests, you should test yourself in `visitor`, as it will be
39356 * faster and will have improved type information.
39357 *
39358 * Walking the tree is an intensive task.
39359 * Make use of the return values of the visitor when possible.
39360 * Instead of walking a tree multiple times, walk it once, use `unist-util-is`
39361 * to check if a node matches, and then perform different operations.
39362 *
39363 * You can change the tree.
39364 * See `Visitor` for more info.
39365 *
39366 * @param tree
39367 * Tree to traverse.
39368 * @param test
39369 * `unist-util-is`-compatible test
39370 * @param visitor
39371 * Handle each node.
39372 * @param reverse
39373 * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
39374 * @returns
39375 * Nothing.
39376 */
39377 const visit =
39378 /**
39379 * @type {(
39380 * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
39381 * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
39382 * )}
39383 */
39384 (
39385 /**
39386 * @param {Node} tree
39387 * @param {Test} test
39388 * @param {Visitor} visitor
39389 * @param {boolean | null | undefined} [reverse]
39390 * @returns {void}
39391 */
39392 function (tree, test, visitor, reverse) {
39393 if (typeof test === 'function' && typeof visitor !== 'function') {
39394 reverse = visitor
39395 visitor = test
39396 test = null
39397 }
39398
39399 (0,unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.visitParents)(tree, test, overload, reverse)
39400
39401 /**
39402 * @param {Node} node
39403 * @param {Array<Parent>} parents
39404 */
39405 function overload(node, parents) {
39406 const parent = parents[parents.length - 1]
39407 return visitor(
39408 node,
39409 parent ? parent.children.indexOf(node) : null,
39410 parent
39411 )
39412 }
39413 }
39414 )
39415
39416
39417
39418
39419 /***/ }),
39420
39421 /***/ "../node_modules/uvu/assert/index.mjs":
39422 /*!********************************************!*\
39423 !*** ../node_modules/uvu/assert/index.mjs ***!
39424 \********************************************/
39425 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39426
39427 "use strict";
39428 __webpack_require__.r(__webpack_exports__);
39429 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39430 /* harmony export */ Assertion: () => (/* binding */ Assertion),
39431 /* harmony export */ equal: () => (/* binding */ equal),
39432 /* harmony export */ fixture: () => (/* binding */ fixture),
39433 /* harmony export */ instance: () => (/* binding */ instance),
39434 /* harmony export */ is: () => (/* binding */ is),
39435 /* harmony export */ match: () => (/* binding */ match),
39436 /* harmony export */ not: () => (/* binding */ not),
39437 /* harmony export */ ok: () => (/* binding */ ok),
39438 /* harmony export */ snapshot: () => (/* binding */ snapshot),
39439 /* harmony export */ throws: () => (/* binding */ throws),
39440 /* harmony export */ type: () => (/* binding */ type),
39441 /* harmony export */ unreachable: () => (/* binding */ unreachable)
39442 /* harmony export */ });
39443 /* harmony import */ var dequal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dequal */ "../node_modules/dequal/dist/index.mjs");
39444 /* harmony import */ var uvu_diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uvu/diff */ "../node_modules/uvu/diff/index.mjs");
39445
39446
39447
39448 function dedent(str) {
39449 str = str.replace(/\r?\n/g, '\n');
39450 let arr = str.match(/^[ \t]*(?=\S)/gm);
39451 let i = 0, min = 1/0, len = (arr||[]).length;
39452 for (; i < len; i++) min = Math.min(min, arr[i].length);
39453 return len && min ? str.replace(new RegExp(`^[ \\t]{${min}}`, 'gm'), '') : str;
39454 }
39455
39456 class Assertion extends Error {
39457 constructor(opts={}) {
39458 super(opts.message);
39459 this.name = 'Assertion';
39460 this.code = 'ERR_ASSERTION';
39461 if (Error.captureStackTrace) {
39462 Error.captureStackTrace(this, this.constructor);
39463 }
39464 this.details = opts.details || false;
39465 this.generated = !!opts.generated;
39466 this.operator = opts.operator;
39467 this.expects = opts.expects;
39468 this.actual = opts.actual;
39469 }
39470 }
39471
39472 function assert(bool, actual, expects, operator, detailer, backup, msg) {
39473 if (bool) return;
39474 let message = msg || backup;
39475 if (msg instanceof Error) throw msg;
39476 let details = detailer && detailer(actual, expects);
39477 throw new Assertion({ actual, expects, operator, message, details, generated: !msg });
39478 }
39479
39480 function ok(val, msg) {
39481 assert(!!val, false, true, 'ok', false, 'Expected value to be truthy', msg);
39482 }
39483
39484 function is(val, exp, msg) {
39485 assert(val === exp, val, exp, 'is', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.compare, 'Expected values to be strictly equal:', msg);
39486 }
39487
39488 function equal(val, exp, msg) {
39489 assert((0,dequal__WEBPACK_IMPORTED_MODULE_0__.dequal)(val, exp), val, exp, 'equal', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.compare, 'Expected values to be deeply equal:', msg);
39490 }
39491
39492 function unreachable(msg) {
39493 assert(false, true, false, 'unreachable', false, 'Expected not to be reached!', msg);
39494 }
39495
39496 function type(val, exp, msg) {
39497 let tmp = typeof val;
39498 assert(tmp === exp, tmp, exp, 'type', false, `Expected "${tmp}" to be "${exp}"`, msg);
39499 }
39500
39501 function instance(val, exp, msg) {
39502 let name = '`' + (exp.name || exp.constructor.name) + '`';
39503 assert(val instanceof exp, val, exp, 'instance', false, `Expected value to be an instance of ${name}`, msg);
39504 }
39505
39506 function match(val, exp, msg) {
39507 if (typeof exp === 'string') {
39508 assert(val.includes(exp), val, exp, 'match', false, `Expected value to include "${exp}" substring`, msg);
39509 } else {
39510 assert(exp.test(val), val, exp, 'match', false, `Expected value to match \`${String(exp)}\` pattern`, msg);
39511 }
39512 }
39513
39514 function snapshot(val, exp, msg) {
39515 val=dedent(val); exp=dedent(exp);
39516 assert(val === exp, val, exp, 'snapshot', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.lines, 'Expected value to match snapshot:', msg);
39517 }
39518
39519 const lineNums = (x, y) => (0,uvu_diff__WEBPACK_IMPORTED_MODULE_1__.lines)(x, y, 1);
39520 function fixture(val, exp, msg) {
39521 val=dedent(val); exp=dedent(exp);
39522 assert(val === exp, val, exp, 'fixture', lineNums, 'Expected value to match fixture:', msg);
39523 }
39524
39525 function throws(blk, exp, msg) {
39526 if (!msg && typeof exp === 'string') {
39527 msg = exp; exp = null;
39528 }
39529
39530 try {
39531 blk();
39532 assert(false, false, true, 'throws', false, 'Expected function to throw', msg);
39533 } catch (err) {
39534 if (err instanceof Assertion) throw err;
39535
39536 if (typeof exp === 'function') {
39537 assert(exp(err), false, true, 'throws', false, 'Expected function to throw matching exception', msg);
39538 } else if (exp instanceof RegExp) {
39539 assert(exp.test(err.message), false, true, 'throws', false, `Expected function to throw exception matching \`${String(exp)}\` pattern`, msg);
39540 }
39541 }
39542 }
39543
39544 // ---
39545
39546 function not(val, msg) {
39547 assert(!val, true, false, 'not', false, 'Expected value to be falsey', msg);
39548 }
39549
39550 not.ok = not;
39551
39552 is.not = function (val, exp, msg) {
39553 assert(val !== exp, val, exp, 'is.not', false, 'Expected values not to be strictly equal', msg);
39554 }
39555
39556 not.equal = function (val, exp, msg) {
39557 assert(!(0,dequal__WEBPACK_IMPORTED_MODULE_0__.dequal)(val, exp), val, exp, 'not.equal', false, 'Expected values not to be deeply equal', msg);
39558 }
39559
39560 not.type = function (val, exp, msg) {
39561 let tmp = typeof val;
39562 assert(tmp !== exp, tmp, exp, 'not.type', false, `Expected "${tmp}" not to be "${exp}"`, msg);
39563 }
39564
39565 not.instance = function (val, exp, msg) {
39566 let name = '`' + (exp.name || exp.constructor.name) + '`';
39567 assert(!(val instanceof exp), val, exp, 'not.instance', false, `Expected value not to be an instance of ${name}`, msg);
39568 }
39569
39570 not.snapshot = function (val, exp, msg) {
39571 val=dedent(val); exp=dedent(exp);
39572 assert(val !== exp, val, exp, 'not.snapshot', false, 'Expected value not to match snapshot', msg);
39573 }
39574
39575 not.fixture = function (val, exp, msg) {
39576 val=dedent(val); exp=dedent(exp);
39577 assert(val !== exp, val, exp, 'not.fixture', false, 'Expected value not to match fixture', msg);
39578 }
39579
39580 not.match = function (val, exp, msg) {
39581 if (typeof exp === 'string') {
39582 assert(!val.includes(exp), val, exp, 'not.match', false, `Expected value not to include "${exp}" substring`, msg);
39583 } else {
39584 assert(!exp.test(val), val, exp, 'not.match', false, `Expected value not to match \`${String(exp)}\` pattern`, msg);
39585 }
39586 }
39587
39588 not.throws = function (blk, exp, msg) {
39589 if (!msg && typeof exp === 'string') {
39590 msg = exp; exp = null;
39591 }
39592
39593 try {
39594 blk();
39595 } catch (err) {
39596 if (typeof exp === 'function') {
39597 assert(!exp(err), true, false, 'not.throws', false, 'Expected function not to throw matching exception', msg);
39598 } else if (exp instanceof RegExp) {
39599 assert(!exp.test(err.message), true, false, 'not.throws', false, `Expected function not to throw exception matching \`${String(exp)}\` pattern`, msg);
39600 } else if (!exp) {
39601 assert(false, true, false, 'not.throws', false, 'Expected function not to throw', msg);
39602 }
39603 }
39604 }
39605
39606
39607 /***/ }),
39608
39609 /***/ "../node_modules/uvu/diff/index.mjs":
39610 /*!******************************************!*\
39611 !*** ../node_modules/uvu/diff/index.mjs ***!
39612 \******************************************/
39613 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39614
39615 "use strict";
39616 __webpack_require__.r(__webpack_exports__);
39617 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39618 /* harmony export */ arrays: () => (/* binding */ arrays),
39619 /* harmony export */ chars: () => (/* binding */ chars),
39620 /* harmony export */ circular: () => (/* binding */ circular),
39621 /* harmony export */ compare: () => (/* binding */ compare),
39622 /* harmony export */ direct: () => (/* binding */ direct),
39623 /* harmony export */ lines: () => (/* binding */ lines),
39624 /* harmony export */ sort: () => (/* binding */ sort),
39625 /* harmony export */ stringify: () => (/* binding */ stringify)
39626 /* harmony export */ });
39627 /* harmony import */ var kleur__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kleur */ "../node_modules/uvu/node_modules/kleur/index.mjs");
39628 /* harmony import */ var diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diff */ "../node_modules/diff/lib/index.mjs");
39629
39630
39631
39632 const colors = {
39633 '--': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].red,
39634 '··': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].grey,
39635 '++': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].green,
39636 };
39637
39638 const TITLE = kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim().italic;
39639 const TAB=kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim('→'), SPACE=kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim('·'), NL=kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim('↵');
39640 const LOG = (sym, str) => colors[sym](sym + PRETTY(str)) + '\n';
39641 const LINE = (num, x) => kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim('L' + String(num).padStart(x, '0') + ' ');
39642 const PRETTY = str => str.replace(/[ ]/g, SPACE).replace(/\t/g, TAB).replace(/(\r?\n)/g, NL);
39643
39644 function line(obj, prev, pad) {
39645 let char = obj.removed ? '--' : obj.added ? '++' : '··';
39646 let arr = obj.value.replace(/\r?\n$/, '').split('\n');
39647 let i=0, tmp, out='';
39648
39649 if (obj.added) out += colors[char]().underline(TITLE('Expected:')) + '\n';
39650 else if (obj.removed) out += colors[char]().underline(TITLE('Actual:')) + '\n';
39651
39652 for (; i < arr.length; i++) {
39653 tmp = arr[i];
39654 if (tmp != null) {
39655 if (prev) out += LINE(prev + i, pad);
39656 out += LOG(char, tmp || '\n');
39657 }
39658 }
39659
39660 return out;
39661 }
39662
39663 // TODO: want better diffing
39664 //~> complex items bail outright
39665 function arrays(input, expect) {
39666 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffArrays(input, expect);
39667 let i=0, j=0, k=0, tmp, val, char, isObj, str;
39668 let out = LOG('··', '[');
39669
39670 for (; i < arr.length; i++) {
39671 char = (tmp = arr[i]).removed ? '--' : tmp.added ? '++' : '··';
39672
39673 if (tmp.added) {
39674 out += colors[char]().underline(TITLE('Expected:')) + '\n';
39675 } else if (tmp.removed) {
39676 out += colors[char]().underline(TITLE('Actual:')) + '\n';
39677 }
39678
39679 for (j=0; j < tmp.value.length; j++) {
39680 isObj = (tmp.value[j] && typeof tmp.value[j] === 'object');
39681 val = stringify(tmp.value[j]).split(/\r?\n/g);
39682 for (k=0; k < val.length;) {
39683 str = ' ' + val[k++] + (isObj ? '' : ',');
39684 if (isObj && k === val.length && (j + 1) < tmp.value.length) str += ',';
39685 out += LOG(char, str);
39686 }
39687 }
39688 }
39689
39690 return out + LOG('··', ']');
39691 }
39692
39693 function lines(input, expect, linenum = 0) {
39694 let i=0, tmp, output='';
39695 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffLines(input, expect);
39696 let pad = String(expect.split(/\r?\n/g).length - linenum).length;
39697
39698 for (; i < arr.length; i++) {
39699 output += line(tmp = arr[i], linenum, pad);
39700 if (linenum && !tmp.removed) linenum += tmp.count;
39701 }
39702
39703 return output;
39704 }
39705
39706 function chars(input, expect) {
39707 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffChars(input, expect);
39708 let i=0, output='', tmp;
39709
39710 let l1 = input.length;
39711 let l2 = expect.length;
39712
39713 let p1 = PRETTY(input);
39714 let p2 = PRETTY(expect);
39715
39716 tmp = arr[i];
39717
39718 if (l1 === l2) {
39719 // no length offsets
39720 } else if (tmp.removed && arr[i + 1]) {
39721 let del = tmp.count - arr[i + 1].count;
39722 if (del == 0) {
39723 // wash~
39724 } else if (del > 0) {
39725 expect = ' '.repeat(del) + expect;
39726 p2 = ' '.repeat(del) + p2;
39727 l2 += del;
39728 } else if (del < 0) {
39729 input = ' '.repeat(-del) + input;
39730 p1 = ' '.repeat(-del) + p1;
39731 l1 += -del;
39732 }
39733 }
39734
39735 output += direct(p1, p2, l1, l2);
39736
39737 if (l1 === l2) {
39738 for (tmp=' '; i < l1; i++) {
39739 tmp += input[i] === expect[i] ? ' ' : '^';
39740 }
39741 } else {
39742 for (tmp=' '; i < arr.length; i++) {
39743 tmp += ((arr[i].added || arr[i].removed) ? '^' : ' ').repeat(Math.max(arr[i].count, 0));
39744 if (i + 1 < arr.length && ((arr[i].added && arr[i+1].removed) || (arr[i].removed && arr[i+1].added))) {
39745 arr[i + 1].count -= arr[i].count;
39746 }
39747 }
39748 }
39749
39750 return output + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].red(tmp);
39751 }
39752
39753 function direct(input, expect, lenA = String(input).length, lenB = String(expect).length) {
39754 let gutter = 4;
39755 let lenC = Math.max(lenA, lenB);
39756 let typeA=typeof input, typeB=typeof expect;
39757
39758 if (typeA !== typeB) {
39759 gutter = 2;
39760
39761 let delA = gutter + lenC - lenA;
39762 let delB = gutter + lenC - lenB;
39763
39764 input += ' '.repeat(delA) + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim(`[${typeA}]`);
39765 expect += ' '.repeat(delB) + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim(`[${typeB}]`);
39766
39767 lenA += delA + typeA.length + 2;
39768 lenB += delB + typeB.length + 2;
39769 lenC = Math.max(lenA, lenB);
39770 }
39771
39772 let output = colors['++']('++' + expect + ' '.repeat(gutter + lenC - lenB) + TITLE('(Expected)')) + '\n';
39773 return output + colors['--']('--' + input + ' '.repeat(gutter + lenC - lenA) + TITLE('(Actual)')) + '\n';
39774 }
39775
39776 function sort(input, expect) {
39777 var k, i=0, tmp, isArr = Array.isArray(input);
39778 var keys=[], out=isArr ? Array(input.length) : {};
39779
39780 if (isArr) {
39781 for (i=0; i < out.length; i++) {
39782 tmp = input[i];
39783 if (!tmp || typeof tmp !== 'object') out[i] = tmp;
39784 else out[i] = sort(tmp, expect[i]); // might not be right
39785 }
39786 } else {
39787 for (k in expect)
39788 keys.push(k);
39789
39790 for (; i < keys.length; i++) {
39791 if (Object.prototype.hasOwnProperty.call(input, k = keys[i])) {
39792 if (!(tmp = input[k]) || typeof tmp !== 'object') out[k] = tmp;
39793 else out[k] = sort(tmp, expect[k]);
39794 }
39795 }
39796
39797 for (k in input) {
39798 if (!out.hasOwnProperty(k)) {
39799 out[k] = input[k]; // expect didnt have
39800 }
39801 }
39802 }
39803
39804 return out;
39805 }
39806
39807 function circular() {
39808 var cache = new Set;
39809 return function print(key, val) {
39810 if (val === void 0) return '[__VOID__]';
39811 if (typeof val === 'number' && val !== val) return '[__NAN__]';
39812 if (typeof val === 'bigint') return val.toString();
39813 if (!val || typeof val !== 'object') return val;
39814 if (cache.has(val)) return '[Circular]';
39815 cache.add(val); return val;
39816 }
39817 }
39818
39819 function stringify(input) {
39820 return JSON.stringify(input, circular(), 2).replace(/"\[__NAN__\]"/g, 'NaN').replace(/"\[__VOID__\]"/g, 'undefined');
39821 }
39822
39823 function compare(input, expect) {
39824 if (Array.isArray(expect) && Array.isArray(input)) return arrays(input, expect);
39825 if (expect instanceof RegExp) return chars(''+input, ''+expect);
39826
39827 let isA = input && typeof input == 'object';
39828 let isB = expect && typeof expect == 'object';
39829
39830 if (isA && isB) input = sort(input, expect);
39831 if (isB) expect = stringify(expect);
39832 if (isA) input = stringify(input);
39833
39834 if (expect && typeof expect == 'object') {
39835 input = stringify(sort(input, expect));
39836 expect = stringify(expect);
39837 }
39838
39839 isA = typeof input == 'string';
39840 isB = typeof expect == 'string';
39841
39842 if (isA && /\r?\n/.test(input)) return lines(input, ''+expect);
39843 if (isB && /\r?\n/.test(expect)) return lines(''+input, expect);
39844 if (isA && isB) return chars(input, expect);
39845
39846 return direct(input, expect);
39847 }
39848
39849
39850 /***/ }),
39851
39852 /***/ "../node_modules/uvu/node_modules/kleur/index.mjs":
39853 /*!********************************************************!*\
39854 !*** ../node_modules/uvu/node_modules/kleur/index.mjs ***!
39855 \********************************************************/
39856 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39857
39858 "use strict";
39859 __webpack_require__.r(__webpack_exports__);
39860 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39861 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
39862 /* harmony export */ });
39863
39864
39865 let FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY=true;
39866 if (typeof process !== 'undefined') {
39867 ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});
39868 isTTY = process.stdout && process.stdout.isTTY;
39869 }
39870
39871 const $ = {
39872 enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== 'dumb' && (
39873 FORCE_COLOR != null && FORCE_COLOR !== '0' || isTTY
39874 ),
39875
39876 // modifiers
39877 reset: init(0, 0),
39878 bold: init(1, 22),
39879 dim: init(2, 22),
39880 italic: init(3, 23),
39881 underline: init(4, 24),
39882 inverse: init(7, 27),
39883 hidden: init(8, 28),
39884 strikethrough: init(9, 29),
39885
39886 // colors
39887 black: init(30, 39),
39888 red: init(31, 39),
39889 green: init(32, 39),
39890 yellow: init(33, 39),
39891 blue: init(34, 39),
39892 magenta: init(35, 39),
39893 cyan: init(36, 39),
39894 white: init(37, 39),
39895 gray: init(90, 39),
39896 grey: init(90, 39),
39897
39898 // background colors
39899 bgBlack: init(40, 49),
39900 bgRed: init(41, 49),
39901 bgGreen: init(42, 49),
39902 bgYellow: init(43, 49),
39903 bgBlue: init(44, 49),
39904 bgMagenta: init(45, 49),
39905 bgCyan: init(46, 49),
39906 bgWhite: init(47, 49)
39907 };
39908
39909 function run(arr, str) {
39910 let i=0, tmp, beg='', end='';
39911 for (; i < arr.length; i++) {
39912 tmp = arr[i];
39913 beg += tmp.open;
39914 end += tmp.close;
39915 if (!!~str.indexOf(tmp.close)) {
39916 str = str.replace(tmp.rgx, tmp.close + tmp.open);
39917 }
39918 }
39919 return beg + str + end;
39920 }
39921
39922 function chain(has, keys) {
39923 let ctx = { has, keys };
39924
39925 ctx.reset = $.reset.bind(ctx);
39926 ctx.bold = $.bold.bind(ctx);
39927 ctx.dim = $.dim.bind(ctx);
39928 ctx.italic = $.italic.bind(ctx);
39929 ctx.underline = $.underline.bind(ctx);
39930 ctx.inverse = $.inverse.bind(ctx);
39931 ctx.hidden = $.hidden.bind(ctx);
39932 ctx.strikethrough = $.strikethrough.bind(ctx);
39933
39934 ctx.black = $.black.bind(ctx);
39935 ctx.red = $.red.bind(ctx);
39936 ctx.green = $.green.bind(ctx);
39937 ctx.yellow = $.yellow.bind(ctx);
39938 ctx.blue = $.blue.bind(ctx);
39939 ctx.magenta = $.magenta.bind(ctx);
39940 ctx.cyan = $.cyan.bind(ctx);
39941 ctx.white = $.white.bind(ctx);
39942 ctx.gray = $.gray.bind(ctx);
39943 ctx.grey = $.grey.bind(ctx);
39944
39945 ctx.bgBlack = $.bgBlack.bind(ctx);
39946 ctx.bgRed = $.bgRed.bind(ctx);
39947 ctx.bgGreen = $.bgGreen.bind(ctx);
39948 ctx.bgYellow = $.bgYellow.bind(ctx);
39949 ctx.bgBlue = $.bgBlue.bind(ctx);
39950 ctx.bgMagenta = $.bgMagenta.bind(ctx);
39951 ctx.bgCyan = $.bgCyan.bind(ctx);
39952 ctx.bgWhite = $.bgWhite.bind(ctx);
39953
39954 return ctx;
39955 }
39956
39957 function init(open, close) {
39958 let blk = {
39959 open: `\x1b[${open}m`,
39960 close: `\x1b[${close}m`,
39961 rgx: new RegExp(`\\x1b\\[${close}m`, 'g')
39962 };
39963 return function (txt) {
39964 if (this !== void 0 && this.has !== void 0) {
39965 !!~this.has.indexOf(open) || (this.has.push(open),this.keys.push(blk));
39966 return txt === void 0 ? this : $.enabled ? run(this.keys, txt+'') : txt+'';
39967 }
39968 return txt === void 0 ? chain([open], [blk]) : $.enabled ? run([blk], txt+'') : txt+'';
39969 };
39970 }
39971
39972 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ($);
39973
39974
39975 /***/ }),
39976
39977 /***/ "../node_modules/vfile-message/lib/index.js":
39978 /*!**************************************************!*\
39979 !*** ../node_modules/vfile-message/lib/index.js ***!
39980 \**************************************************/
39981 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39982
39983 "use strict";
39984 __webpack_require__.r(__webpack_exports__);
39985 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39986 /* harmony export */ VFileMessage: () => (/* binding */ VFileMessage)
39987 /* harmony export */ });
39988 /* harmony import */ var unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-stringify-position */ "../node_modules/unist-util-stringify-position/lib/index.js");
39989 /**
39990 * @typedef {import('unist').Node} Node
39991 * @typedef {import('unist').Position} Position
39992 * @typedef {import('unist').Point} Point
39993 * @typedef {object & {type: string, position?: Position | undefined}} NodeLike
39994 */
39995
39996
39997
39998 /**
39999 * Message.
40000 */
40001 class VFileMessage extends Error {
40002 /**
40003 * Create a message for `reason` at `place` from `origin`.
40004 *
40005 * When an error is passed in as `reason`, the `stack` is copied.
40006 *
40007 * @param {string | Error | VFileMessage} reason
40008 * Reason for message, uses the stack and message of the error if given.
40009 *
40010 * > 👉 **Note**: you should use markdown.
40011 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40012 * Place in file where the message occurred.
40013 * @param {string | null | undefined} [origin]
40014 * Place in code where the message originates (example:
40015 * `'my-package:my-rule'` or `'my-rule'`).
40016 * @returns
40017 * Instance of `VFileMessage`.
40018 */
40019 // To do: next major: expose `undefined` everywhere instead of `null`.
40020 constructor(reason, place, origin) {
40021 /** @type {[string | null, string | null]} */
40022 const parts = [null, null]
40023 /** @type {Position} */
40024 let position = {
40025 // @ts-expect-error: we always follows the structure of `position`.
40026 start: {line: null, column: null},
40027 // @ts-expect-error: "
40028 end: {line: null, column: null}
40029 }
40030
40031 super()
40032
40033 if (typeof place === 'string') {
40034 origin = place
40035 place = undefined
40036 }
40037
40038 if (typeof origin === 'string') {
40039 const index = origin.indexOf(':')
40040
40041 if (index === -1) {
40042 parts[1] = origin
40043 } else {
40044 parts[0] = origin.slice(0, index)
40045 parts[1] = origin.slice(index + 1)
40046 }
40047 }
40048
40049 if (place) {
40050 // Node.
40051 if ('type' in place || 'position' in place) {
40052 if (place.position) {
40053 // To do: next major: deep clone.
40054 // @ts-expect-error: looks like a position.
40055 position = place.position
40056 }
40057 }
40058 // Position.
40059 else if ('start' in place || 'end' in place) {
40060 // @ts-expect-error: looks like a position.
40061 // To do: next major: deep clone.
40062 position = place
40063 }
40064 // Point.
40065 else if ('line' in place || 'column' in place) {
40066 // To do: next major: deep clone.
40067 position.start = place
40068 }
40069 }
40070
40071 // Fields from `Error`.
40072 /**
40073 * Serialized positional info of error.
40074 *
40075 * On normal errors, this would be something like `ParseError`, buit in
40076 * `VFile` messages we use this space to show where an error happened.
40077 */
40078 this.name = (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_0__.stringifyPosition)(place) || '1:1'
40079
40080 /**
40081 * Reason for message.
40082 *
40083 * @type {string}
40084 */
40085 this.message = typeof reason === 'object' ? reason.message : reason
40086
40087 /**
40088 * Stack of message.
40089 *
40090 * This is used by normal errors to show where something happened in
40091 * programming code, irrelevant for `VFile` messages,
40092 *
40093 * @type {string}
40094 */
40095 this.stack = ''
40096
40097 if (typeof reason === 'object' && reason.stack) {
40098 this.stack = reason.stack
40099 }
40100
40101 /**
40102 * Reason for message.
40103 *
40104 * > 👉 **Note**: you should use markdown.
40105 *
40106 * @type {string}
40107 */
40108 this.reason = this.message
40109
40110 /* eslint-disable no-unused-expressions */
40111 /**
40112 * State of problem.
40113 *
40114 * * `true` — marks associated file as no longer processable (error)
40115 * * `false` — necessitates a (potential) change (warning)
40116 * * `null | undefined` — for things that might not need changing (info)
40117 *
40118 * @type {boolean | null | undefined}
40119 */
40120 this.fatal
40121
40122 /**
40123 * Starting line of error.
40124 *
40125 * @type {number | null}
40126 */
40127 this.line = position.start.line
40128
40129 /**
40130 * Starting column of error.
40131 *
40132 * @type {number | null}
40133 */
40134 this.column = position.start.column
40135
40136 /**
40137 * Full unist position.
40138 *
40139 * @type {Position | null}
40140 */
40141 this.position = position
40142
40143 /**
40144 * Namespace of message (example: `'my-package'`).
40145 *
40146 * @type {string | null}
40147 */
40148 this.source = parts[0]
40149
40150 /**
40151 * Category of message (example: `'my-rule'`).
40152 *
40153 * @type {string | null}
40154 */
40155 this.ruleId = parts[1]
40156
40157 /**
40158 * Path of a file (used throughout the `VFile` ecosystem).
40159 *
40160 * @type {string | null}
40161 */
40162 this.file
40163
40164 // The following fields are “well known”.
40165 // Not standard.
40166 // Feel free to add other non-standard fields to your messages.
40167
40168 /**
40169 * Specify the source value that’s being reported, which is deemed
40170 * incorrect.
40171 *
40172 * @type {string | null}
40173 */
40174 this.actual
40175
40176 /**
40177 * Suggest acceptable values that can be used instead of `actual`.
40178 *
40179 * @type {Array<string> | null}
40180 */
40181 this.expected
40182
40183 /**
40184 * Link to docs for the message.
40185 *
40186 * > 👉 **Note**: this must be an absolute URL that can be passed as `x`
40187 * > to `new URL(x)`.
40188 *
40189 * @type {string | null}
40190 */
40191 this.url
40192
40193 /**
40194 * Long form description of the message (you should use markdown).
40195 *
40196 * @type {string | null}
40197 */
40198 this.note
40199 /* eslint-enable no-unused-expressions */
40200 }
40201 }
40202
40203 VFileMessage.prototype.file = ''
40204 VFileMessage.prototype.name = ''
40205 VFileMessage.prototype.reason = ''
40206 VFileMessage.prototype.message = ''
40207 VFileMessage.prototype.stack = ''
40208 VFileMessage.prototype.fatal = null
40209 VFileMessage.prototype.column = null
40210 VFileMessage.prototype.line = null
40211 VFileMessage.prototype.source = null
40212 VFileMessage.prototype.ruleId = null
40213 VFileMessage.prototype.position = null
40214
40215
40216 /***/ }),
40217
40218 /***/ "../node_modules/vfile/lib/index.js":
40219 /*!******************************************!*\
40220 !*** ../node_modules/vfile/lib/index.js ***!
40221 \******************************************/
40222 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40223
40224 "use strict";
40225 __webpack_require__.r(__webpack_exports__);
40226 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40227 /* harmony export */ VFile: () => (/* binding */ VFile)
40228 /* harmony export */ });
40229 /* harmony import */ var is_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-buffer */ "../node_modules/is-buffer/index.js");
40230 /* harmony import */ var vfile_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile-message */ "../node_modules/vfile-message/lib/index.js");
40231 /* harmony import */ var _minpath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./minpath.js */ "../node_modules/vfile/lib/minpath.browser.js");
40232 /* harmony import */ var _minproc_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minproc.js */ "../node_modules/vfile/lib/minproc.browser.js");
40233 /* harmony import */ var _minurl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./minurl.js */ "../node_modules/vfile/lib/minurl.shared.js");
40234 /* harmony import */ var _minurl_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minurl.js */ "../node_modules/vfile/lib/minurl.browser.js");
40235 /**
40236 * @typedef {import('unist').Node} Node
40237 * @typedef {import('unist').Position} Position
40238 * @typedef {import('unist').Point} Point
40239 * @typedef {import('./minurl.shared.js').URL} URL
40240 * @typedef {import('../index.js').Data} Data
40241 * @typedef {import('../index.js').Value} Value
40242 */
40243
40244 /**
40245 * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike
40246 *
40247 * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding
40248 * Encodings supported by the buffer class.
40249 *
40250 * This is a copy of the types from Node, copied to prevent Node globals from
40251 * being needed.
40252 * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>
40253 *
40254 * @typedef {Options | URL | Value | VFile} Compatible
40255 * Things that can be passed to the constructor.
40256 *
40257 * @typedef VFileCoreOptions
40258 * Set multiple values.
40259 * @property {Value | null | undefined} [value]
40260 * Set `value`.
40261 * @property {string | null | undefined} [cwd]
40262 * Set `cwd`.
40263 * @property {Array<string> | null | undefined} [history]
40264 * Set `history`.
40265 * @property {URL | string | null | undefined} [path]
40266 * Set `path`.
40267 * @property {string | null | undefined} [basename]
40268 * Set `basename`.
40269 * @property {string | null | undefined} [stem]
40270 * Set `stem`.
40271 * @property {string | null | undefined} [extname]
40272 * Set `extname`.
40273 * @property {string | null | undefined} [dirname]
40274 * Set `dirname`.
40275 * @property {Data | null | undefined} [data]
40276 * Set `data`.
40277 *
40278 * @typedef Map
40279 * Raw source map.
40280 *
40281 * See:
40282 * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.
40283 * @property {number} version
40284 * Which version of the source map spec this map is following.
40285 * @property {Array<string>} sources
40286 * An array of URLs to the original source files.
40287 * @property {Array<string>} names
40288 * An array of identifiers which can be referenced by individual mappings.
40289 * @property {string | undefined} [sourceRoot]
40290 * The URL root from which all sources are relative.
40291 * @property {Array<string> | undefined} [sourcesContent]
40292 * An array of contents of the original source files.
40293 * @property {string} mappings
40294 * A string of base64 VLQs which contain the actual mappings.
40295 * @property {string} file
40296 * The generated file this source map is associated with.
40297 *
40298 * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options
40299 * Configuration.
40300 *
40301 * A bunch of keys that will be shallow copied over to the new file.
40302 *
40303 * @typedef {Record<string, unknown>} ReporterSettings
40304 * Configuration for reporters.
40305 */
40306
40307 /**
40308 * @template {ReporterSettings} Settings
40309 * Options type.
40310 * @callback Reporter
40311 * Type for a reporter.
40312 * @param {Array<VFile>} files
40313 * Files to report.
40314 * @param {Settings} options
40315 * Configuration.
40316 * @returns {string}
40317 * Report.
40318 */
40319
40320
40321
40322
40323
40324
40325
40326 /**
40327 * Order of setting (least specific to most), we need this because otherwise
40328 * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a
40329 * stem can be set.
40330 *
40331 * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}
40332 */
40333 const order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']
40334
40335 class VFile {
40336 /**
40337 * Create a new virtual file.
40338 *
40339 * `options` is treated as:
40340 *
40341 * * `string` or `Buffer` — `{value: options}`
40342 * * `URL` — `{path: options}`
40343 * * `VFile` — shallow copies its data over to the new file
40344 * * `object` — all fields are shallow copied over to the new file
40345 *
40346 * Path related fields are set in the following order (least specific to
40347 * most specific): `history`, `path`, `basename`, `stem`, `extname`,
40348 * `dirname`.
40349 *
40350 * You cannot set `dirname` or `extname` without setting either `history`,
40351 * `path`, `basename`, or `stem` too.
40352 *
40353 * @param {Compatible | null | undefined} [value]
40354 * File value.
40355 * @returns
40356 * New instance.
40357 */
40358 constructor(value) {
40359 /** @type {Options | VFile} */
40360 let options
40361
40362 if (!value) {
40363 options = {}
40364 } else if (typeof value === 'string' || buffer(value)) {
40365 options = {value}
40366 } else if ((0,_minurl_js__WEBPACK_IMPORTED_MODULE_1__.isUrl)(value)) {
40367 options = {path: value}
40368 } else {
40369 options = value
40370 }
40371
40372 /**
40373 * Place to store custom information (default: `{}`).
40374 *
40375 * It’s OK to store custom data directly on the file but moving it to
40376 * `data` is recommended.
40377 *
40378 * @type {Data}
40379 */
40380 this.data = {}
40381
40382 /**
40383 * List of messages associated with the file.
40384 *
40385 * @type {Array<VFileMessage>}
40386 */
40387 this.messages = []
40388
40389 /**
40390 * List of filepaths the file moved between.
40391 *
40392 * The first is the original path and the last is the current path.
40393 *
40394 * @type {Array<string>}
40395 */
40396 this.history = []
40397
40398 /**
40399 * Base of `path` (default: `process.cwd()` or `'/'` in browsers).
40400 *
40401 * @type {string}
40402 */
40403 this.cwd = _minproc_js__WEBPACK_IMPORTED_MODULE_2__.proc.cwd()
40404
40405 /* eslint-disable no-unused-expressions */
40406 /**
40407 * Raw value.
40408 *
40409 * @type {Value}
40410 */
40411 this.value
40412
40413 // The below are non-standard, they are “well-known”.
40414 // As in, used in several tools.
40415
40416 /**
40417 * Whether a file was saved to disk.
40418 *
40419 * This is used by vfile reporters.
40420 *
40421 * @type {boolean}
40422 */
40423 this.stored
40424
40425 /**
40426 * Custom, non-string, compiled, representation.
40427 *
40428 * This is used by unified to store non-string results.
40429 * One example is when turning markdown into React nodes.
40430 *
40431 * @type {unknown}
40432 */
40433 this.result
40434
40435 /**
40436 * Source map.
40437 *
40438 * This type is equivalent to the `RawSourceMap` type from the `source-map`
40439 * module.
40440 *
40441 * @type {Map | null | undefined}
40442 */
40443 this.map
40444 /* eslint-enable no-unused-expressions */
40445
40446 // Set path related properties in the correct order.
40447 let index = -1
40448
40449 while (++index < order.length) {
40450 const prop = order[index]
40451
40452 // Note: we specifically use `in` instead of `hasOwnProperty` to accept
40453 // `vfile`s too.
40454 if (
40455 prop in options &&
40456 options[prop] !== undefined &&
40457 options[prop] !== null
40458 ) {
40459 // @ts-expect-error: TS doesn’t understand basic reality.
40460 this[prop] = prop === 'history' ? [...options[prop]] : options[prop]
40461 }
40462 }
40463
40464 /** @type {string} */
40465 let prop
40466
40467 // Set non-path related properties.
40468 for (prop in options) {
40469 // @ts-expect-error: fine to set other things.
40470 if (!order.includes(prop)) {
40471 // @ts-expect-error: fine to set other things.
40472 this[prop] = options[prop]
40473 }
40474 }
40475 }
40476
40477 /**
40478 * Get the full path (example: `'~/index.min.js'`).
40479 *
40480 * @returns {string}
40481 */
40482 get path() {
40483 return this.history[this.history.length - 1]
40484 }
40485
40486 /**
40487 * Set the full path (example: `'~/index.min.js'`).
40488 *
40489 * Cannot be nullified.
40490 * You can set a file URL (a `URL` object with a `file:` protocol) which will
40491 * be turned into a path with `url.fileURLToPath`.
40492 *
40493 * @param {string | URL} path
40494 */
40495 set path(path) {
40496 if ((0,_minurl_js__WEBPACK_IMPORTED_MODULE_1__.isUrl)(path)) {
40497 path = (0,_minurl_js__WEBPACK_IMPORTED_MODULE_3__.urlToPath)(path)
40498 }
40499
40500 assertNonEmpty(path, 'path')
40501
40502 if (this.path !== path) {
40503 this.history.push(path)
40504 }
40505 }
40506
40507 /**
40508 * Get the parent path (example: `'~'`).
40509 */
40510 get dirname() {
40511 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.dirname(this.path) : undefined
40512 }
40513
40514 /**
40515 * Set the parent path (example: `'~'`).
40516 *
40517 * Cannot be set if there’s no `path` yet.
40518 */
40519 set dirname(dirname) {
40520 assertPath(this.basename, 'dirname')
40521 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(dirname || '', this.basename)
40522 }
40523
40524 /**
40525 * Get the basename (including extname) (example: `'index.min.js'`).
40526 */
40527 get basename() {
40528 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.basename(this.path) : undefined
40529 }
40530
40531 /**
40532 * Set basename (including extname) (`'index.min.js'`).
40533 *
40534 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40535 * on windows).
40536 * Cannot be nullified (use `file.path = file.dirname` instead).
40537 */
40538 set basename(basename) {
40539 assertNonEmpty(basename, 'basename')
40540 assertPart(basename, 'basename')
40541 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname || '', basename)
40542 }
40543
40544 /**
40545 * Get the extname (including dot) (example: `'.js'`).
40546 */
40547 get extname() {
40548 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.extname(this.path) : undefined
40549 }
40550
40551 /**
40552 * Set the extname (including dot) (example: `'.js'`).
40553 *
40554 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40555 * on windows).
40556 * Cannot be set if there’s no `path` yet.
40557 */
40558 set extname(extname) {
40559 assertPart(extname, 'extname')
40560 assertPath(this.dirname, 'extname')
40561
40562 if (extname) {
40563 if (extname.charCodeAt(0) !== 46 /* `.` */) {
40564 throw new Error('`extname` must start with `.`')
40565 }
40566
40567 if (extname.includes('.', 1)) {
40568 throw new Error('`extname` cannot contain multiple dots')
40569 }
40570 }
40571
40572 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname, this.stem + (extname || ''))
40573 }
40574
40575 /**
40576 * Get the stem (basename w/o extname) (example: `'index.min'`).
40577 */
40578 get stem() {
40579 return typeof this.path === 'string'
40580 ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.basename(this.path, this.extname)
40581 : undefined
40582 }
40583
40584 /**
40585 * Set the stem (basename w/o extname) (example: `'index.min'`).
40586 *
40587 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40588 * on windows).
40589 * Cannot be nullified (use `file.path = file.dirname` instead).
40590 */
40591 set stem(stem) {
40592 assertNonEmpty(stem, 'stem')
40593 assertPart(stem, 'stem')
40594 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname || '', stem + (this.extname || ''))
40595 }
40596
40597 /**
40598 * Serialize the file.
40599 *
40600 * @param {BufferEncoding | null | undefined} [encoding='utf8']
40601 * Character encoding to understand `value` as when it’s a `Buffer`
40602 * (default: `'utf8'`).
40603 * @returns {string}
40604 * Serialized file.
40605 */
40606 toString(encoding) {
40607 return (this.value || '').toString(encoding || undefined)
40608 }
40609
40610 /**
40611 * Create a warning message associated with the file.
40612 *
40613 * Its `fatal` is set to `false` and `file` is set to the current file path.
40614 * Its added to `file.messages`.
40615 *
40616 * @param {string | Error | VFileMessage} reason
40617 * Reason for message, uses the stack and message of the error if given.
40618 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40619 * Place in file where the message occurred.
40620 * @param {string | null | undefined} [origin]
40621 * Place in code where the message originates (example:
40622 * `'my-package:my-rule'` or `'my-rule'`).
40623 * @returns {VFileMessage}
40624 * Message.
40625 */
40626 message(reason, place, origin) {
40627 const message = new vfile_message__WEBPACK_IMPORTED_MODULE_5__.VFileMessage(reason, place, origin)
40628
40629 if (this.path) {
40630 message.name = this.path + ':' + message.name
40631 message.file = this.path
40632 }
40633
40634 message.fatal = false
40635
40636 this.messages.push(message)
40637
40638 return message
40639 }
40640
40641 /**
40642 * Create an info message associated with the file.
40643 *
40644 * Its `fatal` is set to `null` and `file` is set to the current file path.
40645 * Its added to `file.messages`.
40646 *
40647 * @param {string | Error | VFileMessage} reason
40648 * Reason for message, uses the stack and message of the error if given.
40649 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40650 * Place in file where the message occurred.
40651 * @param {string | null | undefined} [origin]
40652 * Place in code where the message originates (example:
40653 * `'my-package:my-rule'` or `'my-rule'`).
40654 * @returns {VFileMessage}
40655 * Message.
40656 */
40657 info(reason, place, origin) {
40658 const message = this.message(reason, place, origin)
40659
40660 message.fatal = null
40661
40662 return message
40663 }
40664
40665 /**
40666 * Create a fatal error associated with the file.
40667 *
40668 * Its `fatal` is set to `true` and `file` is set to the current file path.
40669 * Its added to `file.messages`.
40670 *
40671 * > 👉 **Note**: a fatal error means that a file is no longer processable.
40672 *
40673 * @param {string | Error | VFileMessage} reason
40674 * Reason for message, uses the stack and message of the error if given.
40675 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40676 * Place in file where the message occurred.
40677 * @param {string | null | undefined} [origin]
40678 * Place in code where the message originates (example:
40679 * `'my-package:my-rule'` or `'my-rule'`).
40680 * @returns {never}
40681 * Message.
40682 * @throws {VFileMessage}
40683 * Message.
40684 */
40685 fail(reason, place, origin) {
40686 const message = this.message(reason, place, origin)
40687
40688 message.fatal = true
40689
40690 throw message
40691 }
40692 }
40693
40694 /**
40695 * Assert that `part` is not a path (as in, does not contain `path.sep`).
40696 *
40697 * @param {string | null | undefined} part
40698 * File path part.
40699 * @param {string} name
40700 * Part name.
40701 * @returns {void}
40702 * Nothing.
40703 */
40704 function assertPart(part, name) {
40705 if (part && part.includes(_minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.sep)) {
40706 throw new Error(
40707 '`' + name + '` cannot be a path: did not expect `' + _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.sep + '`'
40708 )
40709 }
40710 }
40711
40712 /**
40713 * Assert that `part` is not empty.
40714 *
40715 * @param {string | undefined} part
40716 * Thing.
40717 * @param {string} name
40718 * Part name.
40719 * @returns {asserts part is string}
40720 * Nothing.
40721 */
40722 function assertNonEmpty(part, name) {
40723 if (!part) {
40724 throw new Error('`' + name + '` cannot be empty')
40725 }
40726 }
40727
40728 /**
40729 * Assert `path` exists.
40730 *
40731 * @param {string | undefined} path
40732 * Path.
40733 * @param {string} name
40734 * Dependency name.
40735 * @returns {asserts path is string}
40736 * Nothing.
40737 */
40738 function assertPath(path, name) {
40739 if (!path) {
40740 throw new Error('Setting `' + name + '` requires `path` to be set too')
40741 }
40742 }
40743
40744 /**
40745 * Assert `value` is a buffer.
40746 *
40747 * @param {unknown} value
40748 * thing.
40749 * @returns {value is Buffer}
40750 * Whether `value` is a Node.js buffer.
40751 */
40752 function buffer(value) {
40753 return is_buffer__WEBPACK_IMPORTED_MODULE_0__(value)
40754 }
40755
40756
40757 /***/ }),
40758
40759 /***/ "../node_modules/vfile/lib/minpath.browser.js":
40760 /*!****************************************************!*\
40761 !*** ../node_modules/vfile/lib/minpath.browser.js ***!
40762 \****************************************************/
40763 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40764
40765 "use strict";
40766 __webpack_require__.r(__webpack_exports__);
40767 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40768 /* harmony export */ path: () => (/* binding */ path)
40769 /* harmony export */ });
40770 // A derivative work based on:
40771 // <https://github.com/browserify/path-browserify>.
40772 // Which is licensed:
40773 //
40774 // MIT License
40775 //
40776 // Copyright (c) 2013 James Halliday
40777 //
40778 // Permission is hereby granted, free of charge, to any person obtaining a copy of
40779 // this software and associated documentation files (the "Software"), to deal in
40780 // the Software without restriction, including without limitation the rights to
40781 // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
40782 // the Software, and to permit persons to whom the Software is furnished to do so,
40783 // subject to the following conditions:
40784 //
40785 // The above copyright notice and this permission notice shall be included in all
40786 // copies or substantial portions of the Software.
40787 //
40788 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
40789 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
40790 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
40791 // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
40792 // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
40793 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
40794 // A derivative work based on:
40795 //
40796 // Parts of that are extracted from Node’s internal `path` module:
40797 // <https://github.com/nodejs/node/blob/master/lib/path.js>.
40798 // Which is licensed:
40799 //
40800 // Copyright Joyent, Inc. and other Node contributors.
40801 //
40802 // Permission is hereby granted, free of charge, to any person obtaining a
40803 // copy of this software and associated documentation files (the
40804 // "Software"), to deal in the Software without restriction, including
40805 // without limitation the rights to use, copy, modify, merge, publish,
40806 // distribute, sublicense, and/or sell copies of the Software, and to permit
40807 // persons to whom the Software is furnished to do so, subject to the
40808 // following conditions:
40809 //
40810 // The above copyright notice and this permission notice shall be included
40811 // in all copies or substantial portions of the Software.
40812 //
40813 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
40814 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
40815 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
40816 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
40817 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
40818 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
40819 // USE OR OTHER DEALINGS IN THE SOFTWARE.
40820
40821 const path = {basename, dirname, extname, join, sep: '/'}
40822
40823 /* eslint-disable max-depth, complexity */
40824
40825 /**
40826 * Get the basename from a path.
40827 *
40828 * @param {string} path
40829 * File path.
40830 * @param {string | undefined} [ext]
40831 * Extension to strip.
40832 * @returns {string}
40833 * Stem or basename.
40834 */
40835 function basename(path, ext) {
40836 if (ext !== undefined && typeof ext !== 'string') {
40837 throw new TypeError('"ext" argument must be a string')
40838 }
40839
40840 assertPath(path)
40841 let start = 0
40842 let end = -1
40843 let index = path.length
40844 /** @type {boolean | undefined} */
40845 let seenNonSlash
40846
40847 if (ext === undefined || ext.length === 0 || ext.length > path.length) {
40848 while (index--) {
40849 if (path.charCodeAt(index) === 47 /* `/` */) {
40850 // If we reached a path separator that was not part of a set of path
40851 // separators at the end of the string, stop now.
40852 if (seenNonSlash) {
40853 start = index + 1
40854 break
40855 }
40856 } else if (end < 0) {
40857 // We saw the first non-path separator, mark this as the end of our
40858 // path component.
40859 seenNonSlash = true
40860 end = index + 1
40861 }
40862 }
40863
40864 return end < 0 ? '' : path.slice(start, end)
40865 }
40866
40867 if (ext === path) {
40868 return ''
40869 }
40870
40871 let firstNonSlashEnd = -1
40872 let extIndex = ext.length - 1
40873
40874 while (index--) {
40875 if (path.charCodeAt(index) === 47 /* `/` */) {
40876 // If we reached a path separator that was not part of a set of path
40877 // separators at the end of the string, stop now.
40878 if (seenNonSlash) {
40879 start = index + 1
40880 break
40881 }
40882 } else {
40883 if (firstNonSlashEnd < 0) {
40884 // We saw the first non-path separator, remember this index in case
40885 // we need it if the extension ends up not matching.
40886 seenNonSlash = true
40887 firstNonSlashEnd = index + 1
40888 }
40889
40890 if (extIndex > -1) {
40891 // Try to match the explicit extension.
40892 if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {
40893 if (extIndex < 0) {
40894 // We matched the extension, so mark this as the end of our path
40895 // component
40896 end = index
40897 }
40898 } else {
40899 // Extension does not match, so our result is the entire path
40900 // component
40901 extIndex = -1
40902 end = firstNonSlashEnd
40903 }
40904 }
40905 }
40906 }
40907
40908 if (start === end) {
40909 end = firstNonSlashEnd
40910 } else if (end < 0) {
40911 end = path.length
40912 }
40913
40914 return path.slice(start, end)
40915 }
40916
40917 /**
40918 * Get the dirname from a path.
40919 *
40920 * @param {string} path
40921 * File path.
40922 * @returns {string}
40923 * File path.
40924 */
40925 function dirname(path) {
40926 assertPath(path)
40927
40928 if (path.length === 0) {
40929 return '.'
40930 }
40931
40932 let end = -1
40933 let index = path.length
40934 /** @type {boolean | undefined} */
40935 let unmatchedSlash
40936
40937 // Prefix `--` is important to not run on `0`.
40938 while (--index) {
40939 if (path.charCodeAt(index) === 47 /* `/` */) {
40940 if (unmatchedSlash) {
40941 end = index
40942 break
40943 }
40944 } else if (!unmatchedSlash) {
40945 // We saw the first non-path separator
40946 unmatchedSlash = true
40947 }
40948 }
40949
40950 return end < 0
40951 ? path.charCodeAt(0) === 47 /* `/` */
40952 ? '/'
40953 : '.'
40954 : end === 1 && path.charCodeAt(0) === 47 /* `/` */
40955 ? '//'
40956 : path.slice(0, end)
40957 }
40958
40959 /**
40960 * Get an extname from a path.
40961 *
40962 * @param {string} path
40963 * File path.
40964 * @returns {string}
40965 * Extname.
40966 */
40967 function extname(path) {
40968 assertPath(path)
40969
40970 let index = path.length
40971
40972 let end = -1
40973 let startPart = 0
40974 let startDot = -1
40975 // Track the state of characters (if any) we see before our first dot and
40976 // after any path separator we find.
40977 let preDotState = 0
40978 /** @type {boolean | undefined} */
40979 let unmatchedSlash
40980
40981 while (index--) {
40982 const code = path.charCodeAt(index)
40983
40984 if (code === 47 /* `/` */) {
40985 // If we reached a path separator that was not part of a set of path
40986 // separators at the end of the string, stop now.
40987 if (unmatchedSlash) {
40988 startPart = index + 1
40989 break
40990 }
40991
40992 continue
40993 }
40994
40995 if (end < 0) {
40996 // We saw the first non-path separator, mark this as the end of our
40997 // extension.
40998 unmatchedSlash = true
40999 end = index + 1
41000 }
41001
41002 if (code === 46 /* `.` */) {
41003 // If this is our first dot, mark it as the start of our extension.
41004 if (startDot < 0) {
41005 startDot = index
41006 } else if (preDotState !== 1) {
41007 preDotState = 1
41008 }
41009 } else if (startDot > -1) {
41010 // We saw a non-dot and non-path separator before our dot, so we should
41011 // have a good chance at having a non-empty extension.
41012 preDotState = -1
41013 }
41014 }
41015
41016 if (
41017 startDot < 0 ||
41018 end < 0 ||
41019 // We saw a non-dot character immediately before the dot.
41020 preDotState === 0 ||
41021 // The (right-most) trimmed path component is exactly `..`.
41022 (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)
41023 ) {
41024 return ''
41025 }
41026
41027 return path.slice(startDot, end)
41028 }
41029
41030 /**
41031 * Join segments from a path.
41032 *
41033 * @param {Array<string>} segments
41034 * Path segments.
41035 * @returns {string}
41036 * File path.
41037 */
41038 function join(...segments) {
41039 let index = -1
41040 /** @type {string | undefined} */
41041 let joined
41042
41043 while (++index < segments.length) {
41044 assertPath(segments[index])
41045
41046 if (segments[index]) {
41047 joined =
41048 joined === undefined ? segments[index] : joined + '/' + segments[index]
41049 }
41050 }
41051
41052 return joined === undefined ? '.' : normalize(joined)
41053 }
41054
41055 /**
41056 * Normalize a basic file path.
41057 *
41058 * @param {string} path
41059 * File path.
41060 * @returns {string}
41061 * File path.
41062 */
41063 // Note: `normalize` is not exposed as `path.normalize`, so some code is
41064 // manually removed from it.
41065 function normalize(path) {
41066 assertPath(path)
41067
41068 const absolute = path.charCodeAt(0) === 47 /* `/` */
41069
41070 // Normalize the path according to POSIX rules.
41071 let value = normalizeString(path, !absolute)
41072
41073 if (value.length === 0 && !absolute) {
41074 value = '.'
41075 }
41076
41077 if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {
41078 value += '/'
41079 }
41080
41081 return absolute ? '/' + value : value
41082 }
41083
41084 /**
41085 * Resolve `.` and `..` elements in a path with directory names.
41086 *
41087 * @param {string} path
41088 * File path.
41089 * @param {boolean} allowAboveRoot
41090 * Whether `..` can move above root.
41091 * @returns {string}
41092 * File path.
41093 */
41094 function normalizeString(path, allowAboveRoot) {
41095 let result = ''
41096 let lastSegmentLength = 0
41097 let lastSlash = -1
41098 let dots = 0
41099 let index = -1
41100 /** @type {number | undefined} */
41101 let code
41102 /** @type {number} */
41103 let lastSlashIndex
41104
41105 while (++index <= path.length) {
41106 if (index < path.length) {
41107 code = path.charCodeAt(index)
41108 } else if (code === 47 /* `/` */) {
41109 break
41110 } else {
41111 code = 47 /* `/` */
41112 }
41113
41114 if (code === 47 /* `/` */) {
41115 if (lastSlash === index - 1 || dots === 1) {
41116 // Empty.
41117 } else if (lastSlash !== index - 1 && dots === 2) {
41118 if (
41119 result.length < 2 ||
41120 lastSegmentLength !== 2 ||
41121 result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||
41122 result.charCodeAt(result.length - 2) !== 46 /* `.` */
41123 ) {
41124 if (result.length > 2) {
41125 lastSlashIndex = result.lastIndexOf('/')
41126
41127 if (lastSlashIndex !== result.length - 1) {
41128 if (lastSlashIndex < 0) {
41129 result = ''
41130 lastSegmentLength = 0
41131 } else {
41132 result = result.slice(0, lastSlashIndex)
41133 lastSegmentLength = result.length - 1 - result.lastIndexOf('/')
41134 }
41135
41136 lastSlash = index
41137 dots = 0
41138 continue
41139 }
41140 } else if (result.length > 0) {
41141 result = ''
41142 lastSegmentLength = 0
41143 lastSlash = index
41144 dots = 0
41145 continue
41146 }
41147 }
41148
41149 if (allowAboveRoot) {
41150 result = result.length > 0 ? result + '/..' : '..'
41151 lastSegmentLength = 2
41152 }
41153 } else {
41154 if (result.length > 0) {
41155 result += '/' + path.slice(lastSlash + 1, index)
41156 } else {
41157 result = path.slice(lastSlash + 1, index)
41158 }
41159
41160 lastSegmentLength = index - lastSlash - 1
41161 }
41162
41163 lastSlash = index
41164 dots = 0
41165 } else if (code === 46 /* `.` */ && dots > -1) {
41166 dots++
41167 } else {
41168 dots = -1
41169 }
41170 }
41171
41172 return result
41173 }
41174
41175 /**
41176 * Make sure `path` is a string.
41177 *
41178 * @param {string} path
41179 * File path.
41180 * @returns {asserts path is string}
41181 * Nothing.
41182 */
41183 function assertPath(path) {
41184 if (typeof path !== 'string') {
41185 throw new TypeError(
41186 'Path must be a string. Received ' + JSON.stringify(path)
41187 )
41188 }
41189 }
41190
41191 /* eslint-enable max-depth, complexity */
41192
41193
41194 /***/ }),
41195
41196 /***/ "../node_modules/vfile/lib/minproc.browser.js":
41197 /*!****************************************************!*\
41198 !*** ../node_modules/vfile/lib/minproc.browser.js ***!
41199 \****************************************************/
41200 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41201
41202 "use strict";
41203 __webpack_require__.r(__webpack_exports__);
41204 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41205 /* harmony export */ proc: () => (/* binding */ proc)
41206 /* harmony export */ });
41207 // Somewhat based on:
41208 // <https://github.com/defunctzombie/node-process/blob/master/browser.js>.
41209 // But I don’t think one tiny line of code can be copyrighted. 😅
41210 const proc = {cwd}
41211
41212 function cwd() {
41213 return '/'
41214 }
41215
41216
41217 /***/ }),
41218
41219 /***/ "../node_modules/vfile/lib/minurl.browser.js":
41220 /*!***************************************************!*\
41221 !*** ../node_modules/vfile/lib/minurl.browser.js ***!
41222 \***************************************************/
41223 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41224
41225 "use strict";
41226 __webpack_require__.r(__webpack_exports__);
41227 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41228 /* harmony export */ isUrl: () => (/* reexport safe */ _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl),
41229 /* harmony export */ urlToPath: () => (/* binding */ urlToPath)
41230 /* harmony export */ });
41231 /* harmony import */ var _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./minurl.shared.js */ "../node_modules/vfile/lib/minurl.shared.js");
41232 /// <reference lib="dom" />
41233
41234
41235
41236 // See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>
41237
41238 /**
41239 * @param {string | URL} path
41240 * File URL.
41241 * @returns {string}
41242 * File URL.
41243 */
41244 function urlToPath(path) {
41245 if (typeof path === 'string') {
41246 path = new URL(path)
41247 } else if (!(0,_minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl)(path)) {
41248 /** @type {NodeJS.ErrnoException} */
41249 const error = new TypeError(
41250 'The "path" argument must be of type string or an instance of URL. Received `' +
41251 path +
41252 '`'
41253 )
41254 error.code = 'ERR_INVALID_ARG_TYPE'
41255 throw error
41256 }
41257
41258 if (path.protocol !== 'file:') {
41259 /** @type {NodeJS.ErrnoException} */
41260 const error = new TypeError('The URL must be of scheme file')
41261 error.code = 'ERR_INVALID_URL_SCHEME'
41262 throw error
41263 }
41264
41265 return getPathFromURLPosix(path)
41266 }
41267
41268 /**
41269 * Get a path from a POSIX URL.
41270 *
41271 * @param {URL} url
41272 * URL.
41273 * @returns {string}
41274 * File path.
41275 */
41276 function getPathFromURLPosix(url) {
41277 if (url.hostname !== '') {
41278 /** @type {NodeJS.ErrnoException} */
41279 const error = new TypeError(
41280 'File URL host must be "localhost" or empty on darwin'
41281 )
41282 error.code = 'ERR_INVALID_FILE_URL_HOST'
41283 throw error
41284 }
41285
41286 const pathname = url.pathname
41287 let index = -1
41288
41289 while (++index < pathname.length) {
41290 if (
41291 pathname.charCodeAt(index) === 37 /* `%` */ &&
41292 pathname.charCodeAt(index + 1) === 50 /* `2` */
41293 ) {
41294 const third = pathname.charCodeAt(index + 2)
41295 if (third === 70 /* `F` */ || third === 102 /* `f` */) {
41296 /** @type {NodeJS.ErrnoException} */
41297 const error = new TypeError(
41298 'File URL path must not include encoded / characters'
41299 )
41300 error.code = 'ERR_INVALID_FILE_URL_PATH'
41301 throw error
41302 }
41303 }
41304 }
41305
41306 return decodeURIComponent(pathname)
41307 }
41308
41309
41310
41311
41312 /***/ }),
41313
41314 /***/ "../node_modules/vfile/lib/minurl.shared.js":
41315 /*!**************************************************!*\
41316 !*** ../node_modules/vfile/lib/minurl.shared.js ***!
41317 \**************************************************/
41318 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41319
41320 "use strict";
41321 __webpack_require__.r(__webpack_exports__);
41322 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41323 /* harmony export */ isUrl: () => (/* binding */ isUrl)
41324 /* harmony export */ });
41325 /**
41326 * @typedef URL
41327 * @property {string} hash
41328 * @property {string} host
41329 * @property {string} hostname
41330 * @property {string} href
41331 * @property {string} origin
41332 * @property {string} password
41333 * @property {string} pathname
41334 * @property {string} port
41335 * @property {string} protocol
41336 * @property {string} search
41337 * @property {any} searchParams
41338 * @property {string} username
41339 * @property {() => string} toString
41340 * @property {() => string} toJSON
41341 */
41342
41343 /**
41344 * Check if `fileUrlOrPath` looks like a URL.
41345 *
41346 * @param {unknown} fileUrlOrPath
41347 * File path or URL.
41348 * @returns {fileUrlOrPath is URL}
41349 * Whether it’s a URL.
41350 */
41351 // From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>
41352 function isUrl(fileUrlOrPath) {
41353 return (
41354 fileUrlOrPath !== null &&
41355 typeof fileUrlOrPath === 'object' &&
41356 // @ts-expect-error: indexable.
41357 fileUrlOrPath.href &&
41358 // @ts-expect-error: indexable.
41359 fileUrlOrPath.origin
41360 )
41361 }
41362
41363
41364 /***/ })
41365
41366 /******/ });
41367 /************************************************************************/
41368 /******/ // The module cache
41369 /******/ var __webpack_module_cache__ = {};
41370 /******/
41371 /******/ // The require function
41372 /******/ function __webpack_require__(moduleId) {
41373 /******/ // Check if module is in cache
41374 /******/ var cachedModule = __webpack_module_cache__[moduleId];
41375 /******/ if (cachedModule !== undefined) {
41376 /******/ return cachedModule.exports;
41377 /******/ }
41378 /******/ // Create a new module (and put it into the cache)
41379 /******/ var module = __webpack_module_cache__[moduleId] = {
41380 /******/ // no module.id needed
41381 /******/ // no module.loaded needed
41382 /******/ exports: {}
41383 /******/ };
41384 /******/
41385 /******/ // Execute the module function
41386 /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
41387 /******/
41388 /******/ // Return the exports of the module
41389 /******/ return module.exports;
41390 /******/ }
41391 /******/
41392 /************************************************************************/
41393 /******/ /* webpack/runtime/compat get default export */
41394 /******/ (() => {
41395 /******/ // getDefaultExport function for compatibility with non-harmony modules
41396 /******/ __webpack_require__.n = (module) => {
41397 /******/ var getter = module && module.__esModule ?
41398 /******/ () => (module['default']) :
41399 /******/ () => (module);
41400 /******/ __webpack_require__.d(getter, { a: getter });
41401 /******/ return getter;
41402 /******/ };
41403 /******/ })();
41404 /******/
41405 /******/ /* webpack/runtime/define property getters */
41406 /******/ (() => {
41407 /******/ // define getter functions for harmony exports
41408 /******/ __webpack_require__.d = (exports, definition) => {
41409 /******/ for(var key in definition) {
41410 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
41411 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
41412 /******/ }
41413 /******/ }
41414 /******/ };
41415 /******/ })();
41416 /******/
41417 /******/ /* webpack/runtime/hasOwnProperty shorthand */
41418 /******/ (() => {
41419 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
41420 /******/ })();
41421 /******/
41422 /******/ /* webpack/runtime/make namespace object */
41423 /******/ (() => {
41424 /******/ // define __esModule on exports
41425 /******/ __webpack_require__.r = (exports) => {
41426 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
41427 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
41428 /******/ }
41429 /******/ Object.defineProperty(exports, '__esModule', { value: true });
41430 /******/ };
41431 /******/ })();
41432 /******/
41433 /************************************************************************/
41434 var __webpack_exports__ = {};
41435 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
41436 (() => {
41437 "use strict";
41438 /*!**********************************************!*\
41439 !*** ../modules/ai/assets/js/admin/index.js ***!
41440 \**********************************************/
41441
41442
41443 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
41444 var _app = _interopRequireDefault(__webpack_require__(/*! elementor/modules/ai/assets/js/editor/app */ "../modules/ai/assets/js/editor/app.js"));
41445 // Temporary solution for exposing the AI App.
41446 window.__UNSTABLE__elementorAI = {
41447 App: _app.default
41448 };
41449 })();
41450
41451 /******/ })()
41452 ;
41453 //# sourceMappingURL=ai-admin.js.map