PluginProbe
Elementor Website Builder – more than just a page builder / 3.19.0-beta1
Elementor Website Builder – more than just a page builder v3.19.0-beta1
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 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / assets / js / ai-admin.js

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

41,452 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 - 08-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 = '';
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 {
5221 autocompleteItems = _actionsData.codeHtmlAutocomplete;
5222 promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-html/';
5223 }
5224 var showSuggestions = !prompt;
5225 var handleSubmit = /*#__PURE__*/function () {
5226 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(event) {
5227 return _regenerator.default.wrap(function _callee$(_context) {
5228 while (1) switch (_context.prev = _context.next) {
5229 case 0:
5230 event.preventDefault();
5231 lastRun.current = function () {
5232 return send(prompt);
5233 };
5234 lastRun.current();
5235 case 3:
5236 case "end":
5237 return _context.stop();
5238 }
5239 }, _callee);
5240 }));
5241 return function handleSubmit(_x) {
5242 return _ref2.apply(this, arguments);
5243 };
5244 }();
5245 var applyPrompt = function applyPrompt(inputText) {
5246 sendUsageData();
5247 setControlValue(inputText);
5248 onClose();
5249 };
5250 if (isLoading) {
5251 return /*#__PURE__*/_react.default.createElement(_loader.default, null);
5252 }
5253 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
5254 error: error,
5255 onRetry: lastRun.current,
5256 sx: {
5257 mb: 2.5
5258 }
5259 }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
5260 component: "form",
5261 onSubmit: handleSubmit
5262 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5263 sx: {
5264 pb: 1.5
5265 }
5266 }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, {
5267 placeholder: (0, _i18n.__)('Describe the code you want to use...', 'elementor'),
5268 name: "prompt",
5269 value: prompt,
5270 color: "secondary",
5271 onChange: function onChange(event) {
5272 return setPrompt(event.target.value);
5273 }
5274 })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, {
5275 suggestions: autocompleteItems,
5276 onSelect: setPrompt
5277 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
5278 libraryLink: promptLibraryLink
5279 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5280 direction: "row",
5281 alignItems: "center",
5282 sx: {
5283 py: 1.5,
5284 mt: 4
5285 }
5286 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5287 direction: "row",
5288 justifyContent: "flex-end",
5289 flexGrow: 1
5290 }, /*#__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, {
5291 components: {
5292 code: function code(props) {
5293 return /*#__PURE__*/_react.default.createElement(_codeBlock.default, (0, _extends2.default)({}, props, {
5294 defaultValue: getControlValue(),
5295 onInsert: applyPrompt
5296 }));
5297 }
5298 }
5299 }, data.result), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5300 direction: "row",
5301 alignItems: "center",
5302 sx: {
5303 mt: 4
5304 }
5305 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5306 direction: "row",
5307 gap: 1,
5308 justifyContent: "flex-end",
5309 flexGrow: 1
5310 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
5311 size: "small",
5312 color: "secondary",
5313 variant: "text",
5314 onClick: reset
5315 }, (0, _i18n.__)('New prompt', 'elementor'))))));
5316 };
5317 FormCode.propTypes = {
5318 onClose: _propTypes.default.func.isRequired,
5319 getControlValue: _propTypes.default.func.isRequired,
5320 setControlValue: _propTypes.default.func.isRequired,
5321 additionalOptions: _propTypes.default.shape({
5322 codeLanguage: _propTypes.default.string,
5323 htmlMarkup: _propTypes.default.string,
5324 elementId: _propTypes.default.string,
5325 initialCredits: _propTypes.default.number
5326 }),
5327 credits: _propTypes.default.number,
5328 children: _propTypes.default.node
5329 };
5330 var _default = FormCode;
5331 exports["default"] = _default;
5332
5333 /***/ }),
5334
5335 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
5336 /*!**************************************************************************!*\
5337 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
5338 \**************************************************************************/
5339 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5340
5341 "use strict";
5342
5343
5344 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5345 Object.defineProperty(exports, "__esModule", ({
5346 value: true
5347 }));
5348 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
5349 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5350 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5351 var MODE_LAYOUT = 'layout';
5352 exports.MODE_LAYOUT = MODE_LAYOUT;
5353 var MODE_VARIATION = 'variation';
5354 exports.MODE_VARIATION = MODE_VARIATION;
5355 var LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
5356 exports.LAYOUT_APP_MODES = LAYOUT_APP_MODES;
5357 var ConfigContext = _react.default.createContext({});
5358 var useConfig = function useConfig() {
5359 return _react.default.useContext(ConfigContext);
5360 };
5361 exports.useConfig = useConfig;
5362 var ConfigProvider = function ConfigProvider(props) {
5363 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
5364 value: {
5365 mode: props.mode,
5366 attachmentsTypes: props.attachmentsTypes,
5367 onClose: props.onClose,
5368 onConnect: props.onConnect,
5369 onData: props.onData,
5370 onInsert: props.onInsert,
5371 onSelect: props.onSelect,
5372 onGenerate: props.onGenerate,
5373 currentContext: props.currentContext,
5374 hasPro: props.hasPro,
5375 sessionId: props.sessionId,
5376 editorSessionId: props.editorSessionId
5377 }
5378 }, props.children);
5379 };
5380 exports.ConfigProvider = ConfigProvider;
5381 ConfigProvider.propTypes = {
5382 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
5383 children: _propTypes.default.node.isRequired,
5384 attachmentsTypes: _propTypes.default.object.isRequired,
5385 onClose: _propTypes.default.func.isRequired,
5386 onConnect: _propTypes.default.func.isRequired,
5387 onData: _propTypes.default.func.isRequired,
5388 onInsert: _propTypes.default.func.isRequired,
5389 onSelect: _propTypes.default.func.isRequired,
5390 onGenerate: _propTypes.default.func.isRequired,
5391 currentContext: _propTypes.default.object,
5392 hasPro: _propTypes.default.bool,
5393 sessionId: _propTypes.default.string,
5394 editorSessionId: _propTypes.default.string
5395 };
5396 var _default = ConfigContext;
5397 exports["default"] = _default;
5398
5399 /***/ }),
5400
5401 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js":
5402 /*!*********************************************************************************!*\
5403 !*** ../modules/ai/assets/js/editor/pages/form-media/components/back-button.js ***!
5404 \*********************************************************************************/
5405 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5406
5407 "use strict";
5408
5409
5410 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5411 Object.defineProperty(exports, "__esModule", ({
5412 value: true
5413 }));
5414 exports["default"] = void 0;
5415 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5416 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5417 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5418 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5419 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5420 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5421 var _chevronLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-left-icon */ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js"));
5422 var _excluded = ["children"];
5423 var StyledChevronLeftIcon = (0, _ui.withDirection)(_chevronLeftIcon.default);
5424 var BackButton = function BackButton(_ref) {
5425 var children = _ref.children,
5426 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5427 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5428 size: "small",
5429 variant: "text",
5430 color: "secondary",
5431 startIcon: /*#__PURE__*/_react.default.createElement(StyledChevronLeftIcon, null)
5432 }, props), children || (0, _i18n.__)('Back', 'elementor'));
5433 };
5434 BackButton.propTypes = {
5435 children: _propTypes.default.node
5436 };
5437 var _default = BackButton;
5438 exports["default"] = _default;
5439
5440 /***/ }),
5441
5442 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5443 /*!************************************************************************************!*\
5444 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5445 \************************************************************************************/
5446 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5447
5448 "use strict";
5449
5450
5451 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5452 Object.defineProperty(exports, "__esModule", ({
5453 value: true
5454 }));
5455 exports["default"] = void 0;
5456 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5457 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5458 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5459 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5460 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5461 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5462 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5463 var _excluded = ["isLoading"];
5464 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5465 var EnhanceButton = function EnhanceButton(_ref) {
5466 var isLoading = _ref.isLoading,
5467 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5468 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5469 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5470 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5471 component: "span",
5472 sx: {
5473 cursor: props.disabled ? 'default' : 'pointer'
5474 }
5475 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5476 size: "small",
5477 color: "secondary"
5478 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5479 color: "secondary",
5480 size: 20
5481 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5482 fontSize: "small"
5483 }))));
5484 };
5485 EnhanceButton.propTypes = {
5486 disabled: _propTypes.default.bool,
5487 isLoading: _propTypes.default.bool
5488 };
5489 var _default = EnhanceButton;
5490 exports["default"] = _default;
5491
5492 /***/ }),
5493
5494 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js":
5495 /*!*****************************************************************************!*\
5496 !*** ../modules/ai/assets/js/editor/pages/form-media/components/gallery.js ***!
5497 \*****************************************************************************/
5498 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5499
5500 "use strict";
5501
5502
5503 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5504 Object.defineProperty(exports, "__esModule", ({
5505 value: true
5506 }));
5507 exports["default"] = void 0;
5508 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5509 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5510 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5511 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5512 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5513 var _overlay = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay */ "../modules/ai/assets/js/editor/components/ui/overlay.js"));
5514 var _overlayBar = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay-bar */ "../modules/ai/assets/js/editor/components/ui/overlay-bar.js"));
5515 var _overlayBarText = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay-bar-text */ "../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js"));
5516 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
5517 var _excluded = ["children"],
5518 _excluded2 = ["alt", "src", "text", "children", "aspectRatio", "variant", "OverlayBarProps"];
5519 var aspectRatios = Object.keys(_constants.IMAGE_ASPECT_RATIO);
5520 var Gallery = function Gallery(_ref) {
5521 var children = _ref.children,
5522 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5523 return /*#__PURE__*/_react.default.createElement(_ui.ImageList, (0, _extends2.default)({
5524 width: "100%",
5525 cols: 2,
5526 gap: 24
5527 }, props), children);
5528 };
5529 Gallery.propTypes = {
5530 children: _propTypes.default.node
5531 };
5532 var GalleryImage = function GalleryImage(_ref2) {
5533 var alt = _ref2.alt,
5534 src = _ref2.src,
5535 text = _ref2.text,
5536 children = _ref2.children,
5537 _ref2$aspectRatio = _ref2.aspectRatio,
5538 aspectRatio = _ref2$aspectRatio === void 0 ? '1:1' : _ref2$aspectRatio,
5539 _ref2$variant = _ref2.variant,
5540 variant = _ref2$variant === void 0 ? 'contained' : _ref2$variant,
5541 _ref2$OverlayBarProps = _ref2.OverlayBarProps,
5542 OverlayBarProps = _ref2$OverlayBarProps === void 0 ? {} : _ref2$OverlayBarProps,
5543 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
5544 var style = {};
5545 if ('thumbnail' === variant) {
5546 style.width = '100%';
5547 style.maxHeight = '238px';
5548 style.minWidth = '230px';
5549 } else {
5550 style.width = 'auto';
5551 style.height = 'auto';
5552 style.maxWidth = '100%';
5553 style.maxHeight = '1:1' === aspectRatio ? 'initial' : '100%';
5554 style.objectFit = 'contain';
5555 style.aspectRatio = aspectRatio.replace(':', ' / ');
5556 }
5557 return /*#__PURE__*/_react.default.createElement(_ui.ImageListItem, props, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5558 display: "flex",
5559 justifyContent: "center",
5560 alignItems: "center",
5561 sx: {
5562 bgcolor: 'action.selected',
5563 height: 'contained' === variant ? 336 : 'auto',
5564 position: 'relative',
5565 overflow: 'hidden'
5566 }
5567 }, /*#__PURE__*/_react.default.createElement("img", {
5568 alt: alt,
5569 src: src,
5570 style: style
5571 })), children && /*#__PURE__*/_react.default.createElement(_overlay.default, null, /*#__PURE__*/_react.default.createElement(_overlayBar.default, (0, _extends2.default)({
5572 gap: 1,
5573 position: "bottom"
5574 }, OverlayBarProps), text && /*#__PURE__*/_react.default.createElement(_overlayBarText.default, null, text), children)));
5575 };
5576 GalleryImage.propTypes = {
5577 alt: _propTypes.default.string,
5578 src: _propTypes.default.string,
5579 text: _propTypes.default.string,
5580 children: _propTypes.default.node,
5581 BoxProps: _propTypes.default.object,
5582 OverlayBarProps: _propTypes.default.object,
5583 aspectRatio: _propTypes.default.oneOf(aspectRatios),
5584 variant: _propTypes.default.oneOf(['contained', 'thumbnail'])
5585 };
5586 Gallery.Image = GalleryImage;
5587 var _default = Gallery;
5588 exports["default"] = _default;
5589
5590 /***/ }),
5591
5592 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js":
5593 /*!*******************************************************************************************!*\
5594 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js ***!
5595 \*******************************************************************************************/
5596 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5597
5598 "use strict";
5599
5600
5601 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5602 Object.defineProperty(exports, "__esModule", ({
5603 value: true
5604 }));
5605 exports["default"] = void 0;
5606 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5607 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5608 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5609 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5610 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
5611 var GenerateAgainSubmit = function GenerateAgainSubmit(props) {
5612 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5613 fullWidth: true,
5614 type: "submit",
5615 variant: "contained",
5616 color: "secondary",
5617 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null),
5618 sx: {
5619 // TODO: Remove on @elementor/ui 1.4.51.
5620 color: 'background.paper'
5621 }
5622 }, props), (0, _i18n.__)('Generate again', 'elementor'));
5623 };
5624 var _default = GenerateAgainSubmit;
5625 exports["default"] = _default;
5626
5627 /***/ }),
5628
5629 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js":
5630 /*!********************************************************************************************!*\
5631 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js ***!
5632 \********************************************************************************************/
5633 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5634
5635 "use strict";
5636
5637
5638 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5639 Object.defineProperty(exports, "__esModule", ({
5640 value: true
5641 }));
5642 exports["default"] = void 0;
5643 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5644 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5645 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
5646 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5647 var GenerateImagesSubmit = function GenerateImagesSubmit(props) {
5648 return /*#__PURE__*/_react.default.createElement(_generateButton.default, (0, _extends2.default)({
5649 size: "medium",
5650 fullWidth: true
5651 }, props), (0, _i18n.__)('Generate images', 'elementor'));
5652 };
5653 var _default = GenerateImagesSubmit;
5654 exports["default"] = _default;
5655
5656 /***/ }),
5657
5658 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js":
5659 /*!*************************************************************************************!*\
5660 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js ***!
5661 \*************************************************************************************/
5662 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5663
5664 "use strict";
5665
5666
5667 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5668 Object.defineProperty(exports, "__esModule", ({
5669 value: true
5670 }));
5671 exports["default"] = void 0;
5672 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5673 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5674 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5675 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5676 var GenerateLoader = function GenerateLoader() {
5677 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5678 alignItems: "center",
5679 justifyContent: "center",
5680 gap: 2,
5681 width: "100%"
5682 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5683 sx: {
5684 color: 'text.primary',
5685 fontSize: '60px',
5686 mb: 1
5687 }
5688 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5689 variant: "h5",
5690 sx: {
5691 color: 'text.primary'
5692 }
5693 }, (0, _i18n.__)('Bringing your vision to life...', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5694 variant: "body1"
5695 }, (0, _i18n.__)('Hold tight, painting dreams might take a moment.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Box, {
5696 sx: {
5697 px: 1.5,
5698 py: 2.5,
5699 width: '100%',
5700 maxWidth: 600
5701 }
5702 }, /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, {
5703 color: "inherit"
5704 })));
5705 };
5706 var _default = GenerateLoader;
5707 exports["default"] = _default;
5708
5709 /***/ }),
5710
5711 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5712 /*!*************************************************************************************!*\
5713 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5714 \*************************************************************************************/
5715 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5716
5717 "use strict";
5718
5719
5720 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5721 Object.defineProperty(exports, "__esModule", ({
5722 value: true
5723 }));
5724 exports["default"] = void 0;
5725 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5726 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5727 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5728 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5729 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5730 var GenerateSubmit = function GenerateSubmit(props) {
5731 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5732 fullWidth: true,
5733 size: "medium",
5734 type: "submit",
5735 variant: "contained"
5736 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5737 };
5738 GenerateSubmit.propTypes = {
5739 children: _propTypes.default.node
5740 };
5741 var _default = GenerateSubmit;
5742 exports["default"] = _default;
5743
5744 /***/ }),
5745
5746 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js":
5747 /*!***********************************************************************************!*\
5748 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js ***!
5749 \***********************************************************************************/
5750 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5751
5752 "use strict";
5753
5754
5755 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5756 Object.defineProperty(exports, "__esModule", ({
5757 value: true
5758 }));
5759 exports["default"] = void 0;
5760 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5761 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5762 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5763 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5764 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5765 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5766 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5767 var _copyIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-icon */ "../modules/ai/assets/js/editor/icons/copy-icon.js"));
5768 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
5769 var _downloadIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/download-icon */ "../modules/ai/assets/js/editor/icons/download-icon.js"));
5770 var _zoomInIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/zoom-in-icon */ "../modules/ai/assets/js/editor/icons/zoom-in-icon.js"));
5771 var _excluded = ["children"],
5772 _excluded2 = ["sx"],
5773 _excluded3 = ["sx"],
5774 _excluded4 = ["sx"],
5775 _excluded5 = ["sx"];
5776 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; }
5777 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; }
5778 var StyledEditSvgIcon = (0, _ui.withDirection)(_editIcon.default);
5779 var StyledCopySvgIcon = (0, _ui.withDirection)(_copyIcon.default);
5780 var StyledZoomInIcon = (0, _ui.withDirection)(_zoomInIcon.default);
5781 var Tooltip = function Tooltip(props) {
5782 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, (0, _extends2.default)({
5783 PopperProps: {
5784 sx: {
5785 '&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {
5786 mt: 1
5787 }
5788 }
5789 }
5790 }, props));
5791 };
5792 var ImageActions = function ImageActions(_ref) {
5793 var children = _ref.children,
5794 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5795 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
5796 display: "flex",
5797 justifyContent: "space-between",
5798 alignItems: "center",
5799 width: "100%",
5800 gap: 1
5801 }, props), children);
5802 };
5803 ImageActions.propTypes = {
5804 children: _propTypes.default.node
5805 };
5806 var UseImage = function UseImage(_ref2) {
5807 var sx = _ref2.sx,
5808 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
5809 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5810 size: "small",
5811 variant: "contained",
5812 startIcon: /*#__PURE__*/_react.default.createElement(_downloadIcon.default, null)
5813 }, props), (0, _i18n.__)('Use Image', 'elementor'));
5814 };
5815 UseImage.propTypes = {
5816 sx: _propTypes.default.object
5817 };
5818 var EditImage = function EditImage(props) {
5819 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5820 size: "small",
5821 color: "secondary",
5822 startIcon: /*#__PURE__*/_react.default.createElement(StyledEditSvgIcon, null)
5823 }, props), (0, _i18n.__)('Edit', 'elementor'));
5824 };
5825 var EditIcon = function EditIcon(_ref3) {
5826 var _ref3$sx = _ref3.sx,
5827 sx = _ref3$sx === void 0 ? {} : _ref3$sx,
5828 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
5829 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5830 title: (0, _i18n.__)('Edit', 'elementor')
5831 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5832 sx: _objectSpread({
5833 mr: -1.5,
5834 ml: 0.5,
5835 color: 'common.white',
5836 '&:hover': {
5837 color: 'common.white'
5838 }
5839 }, sx)
5840 }, props), /*#__PURE__*/_react.default.createElement(StyledEditSvgIcon, null)));
5841 };
5842 EditIcon.propTypes = {
5843 sx: _propTypes.default.object
5844 };
5845 var ZoomIcon = function ZoomIcon(_ref4) {
5846 var _ref4$sx = _ref4.sx,
5847 sx = _ref4$sx === void 0 ? {} : _ref4$sx,
5848 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
5849 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5850 title: (0, _i18n.__)('Zoom', 'elementor')
5851 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5852 color: "secondary",
5853 "aria-label": (0, _i18n.__)('Zoom', 'elementor'),
5854 sx: _objectSpread({
5855 color: 'common.white',
5856 '&:hover': {
5857 color: 'common.white'
5858 }
5859 }, sx)
5860 }, props), /*#__PURE__*/_react.default.createElement(StyledZoomInIcon, null)));
5861 };
5862 ZoomIcon.propTypes = {
5863 sx: _propTypes.default.object
5864 };
5865 var CopyIcon = function CopyIcon(_ref5) {
5866 var _ref5$sx = _ref5.sx,
5867 sx = _ref5$sx === void 0 ? {} : _ref5$sx,
5868 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
5869 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5870 title: (0, _i18n.__)('Copy prompt', 'elementor')
5871 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5872 sx: _objectSpread({
5873 mr: -1.5,
5874 ml: 0.5,
5875 color: 'common.white',
5876 '&:hover': {
5877 color: 'common.white'
5878 }
5879 }, sx)
5880 }, props), /*#__PURE__*/_react.default.createElement(StyledCopySvgIcon, null)));
5881 };
5882 CopyIcon.propTypes = {
5883 sx: _propTypes.default.object
5884 };
5885 ImageActions.UseImage = UseImage;
5886 ImageActions.EditImage = EditImage;
5887 ImageActions.EditIcon = EditIcon;
5888 ImageActions.ZoomIcon = ZoomIcon;
5889 ImageActions.CopyIcon = CopyIcon;
5890 var _default = ImageActions;
5891 exports["default"] = _default;
5892
5893 /***/ }),
5894
5895 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js":
5896 /*!********************************************************************************!*\
5897 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-form.js ***!
5898 \********************************************************************************/
5899 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5900
5901 "use strict";
5902
5903
5904 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5905 Object.defineProperty(exports, "__esModule", ({
5906 value: true
5907 }));
5908 exports["default"] = void 0;
5909 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5910 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5911 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5912 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5913 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5914 var _excluded = ["children"];
5915 var ImageForm = function ImageForm(_ref) {
5916 var children = _ref.children,
5917 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5918 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
5919 component: "form"
5920 }, props), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5921 spacing: 2.5
5922 }, children));
5923 };
5924 ImageForm.propTypes = {
5925 children: _propTypes.default.node
5926 };
5927 var _default = ImageForm;
5928 exports["default"] = _default;
5929
5930 /***/ }),
5931
5932 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js":
5933 /*!****************************************************************************************!*\
5934 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js ***!
5935 \****************************************************************************************/
5936 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5937
5938 "use strict";
5939
5940
5941 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5942 Object.defineProperty(exports, "__esModule", ({
5943 value: true
5944 }));
5945 exports["default"] = void 0;
5946 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5947 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5948 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5949 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
5950 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5951 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
5952 var imageRatios = Object.entries(_constants.IMAGE_ASPECT_RATIO).map(function (_ref) {
5953 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
5954 value = _ref2[0],
5955 label = _ref2[1].label;
5956 return {
5957 label: label,
5958 value: value
5959 };
5960 });
5961 var ImageRatioSelect = function ImageRatioSelect(props) {
5962 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
5963 options: imageRatios,
5964 wrapperStyle: {
5965 width: '100%'
5966 },
5967 label: (0, _i18n.__)('Aspect ratio', 'elementor')
5968 }, props));
5969 };
5970 var _default = ImageRatioSelect;
5971 exports["default"] = _default;
5972
5973 /***/ }),
5974
5975 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js":
5976 /*!**********************************************************************************!*\
5977 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js ***!
5978 \**********************************************************************************/
5979 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5980
5981 "use strict";
5982
5983
5984 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5985 Object.defineProperty(exports, "__esModule", ({
5986 value: true
5987 }));
5988 exports["default"] = void 0;
5989 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5990 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5991 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5992 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5993 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5994 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5995 var _chevronLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-left-icon */ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js"));
5996 var _chevronRightIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-right-icon */ "../modules/ai/assets/js/editor/icons/chevron-right-icon.js"));
5997 var _excluded = ["onPrev", "onNext", "children"],
5998 _excluded2 = ["children", "startAction", "sx"],
5999 _excluded3 = ["src", "alt"];
6000 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; }
6001 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; }
6002 var StyledChevronLeftIcon = (0, _ui.withDirection)(_chevronLeftIcon.default);
6003 var StyledChevronRightIcon = (0, _ui.withDirection)(_chevronRightIcon.default);
6004 var ImageSlider = function ImageSlider(_ref) {
6005 var onPrev = _ref.onPrev,
6006 onNext = _ref.onNext,
6007 children = _ref.children,
6008 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6009 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6010 alignItems: "flex-start",
6011 spacing: 0.5
6012 }, props), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6013 direction: "row",
6014 spacing: 2.5,
6015 alignSelf: "center",
6016 alignItems: "center"
6017 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
6018 onClick: onPrev,
6019 size: "large",
6020 color: "secondary"
6021 }, /*#__PURE__*/_react.default.createElement(StyledChevronLeftIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6022 spacing: 0.5,
6023 justifyContent: "space-around",
6024 alignItems: "center"
6025 }, children), /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
6026 onClick: onNext,
6027 size: "large",
6028 color: "secondary"
6029 }, /*#__PURE__*/_react.default.createElement(StyledChevronRightIcon, null))));
6030 };
6031 ImageSlider.propTypes = {
6032 onPrev: _propTypes.default.func.isRequired,
6033 onNext: _propTypes.default.func.isRequired,
6034 children: _propTypes.default.node.isRequired
6035 };
6036 var Actions = function Actions(_ref2) {
6037 var children = _ref2.children,
6038 startAction = _ref2.startAction,
6039 _ref2$sx = _ref2.sx,
6040 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
6041 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6042 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6043 display: "flex",
6044 justifyContent: "flex-end",
6045 alignItems: "center",
6046 width: "100%"
6047 }, props, {
6048 sx: _objectSpread({
6049 mb: 1.5
6050 }, sx)
6051 }), startAction, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6052 direction: "row",
6053 spacing: 2,
6054 justifyContent: "flex-end",
6055 flexGrow: 1,
6056 width: "100%"
6057 }, children));
6058 };
6059 Actions.propTypes = {
6060 sx: _propTypes.default.object,
6061 startAction: _propTypes.default.node,
6062 children: _propTypes.default.node.isRequired
6063 };
6064 var Image = function Image(_ref3) {
6065 var src = _ref3.src,
6066 _ref3$alt = _ref3.alt,
6067 alt = _ref3$alt === void 0 ? '' : _ref3$alt,
6068 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6069 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6070 display: "flex",
6071 justifyContent: "center",
6072 alignItems: "center"
6073 }, /*#__PURE__*/_react.default.createElement("img", (0, _extends2.default)({
6074 src: src,
6075 alt: alt
6076 }, props)));
6077 };
6078 Image.propTypes = {
6079 alt: _propTypes.default.string,
6080 src: _propTypes.default.string.isRequired
6081 };
6082 ImageSlider.Actions = Actions;
6083 ImageSlider.Image = Image;
6084 var _default = ImageSlider;
6085 exports["default"] = _default;
6086
6087 /***/ }),
6088
6089 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js":
6090 /*!*******************************************************************************************!*\
6091 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js ***!
6092 \*******************************************************************************************/
6093 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6094
6095 "use strict";
6096
6097
6098 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6099 Object.defineProperty(exports, "__esModule", ({
6100 value: true
6101 }));
6102 exports["default"] = void 0;
6103 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6104 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6105 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6106 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6107 var ImageStrengthSlider = function ImageStrengthSlider(props) {
6108 return /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
6109 sx: {
6110 width: '100%'
6111 }
6112 }, /*#__PURE__*/_react.default.createElement(_ui.Slider, (0, _extends2.default)({
6113 marks: true,
6114 min: 0,
6115 step: 10,
6116 max: 100,
6117 color: "secondary",
6118 id: "image_strength",
6119 name: "image_strength",
6120 valueLabelDisplay: "auto",
6121 getAriaValueText: function getAriaValueText(value) {
6122 return "".concat(value, "%");
6123 },
6124 "aria-label": (0, _i18n.__)('Reference strength', 'elementor')
6125 }, props)), /*#__PURE__*/_react.default.createElement(_ui.Box, {
6126 display: "flex",
6127 justifyContent: "space-between",
6128 alignItems: "center"
6129 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6130 variant: "caption"
6131 }, (0, _i18n.__)('Prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6132 variant: "caption"
6133 }, (0, _i18n.__)('Reference image', 'elementor'))));
6134 };
6135 var _default = ImageStrengthSlider;
6136 exports["default"] = _default;
6137
6138 /***/ }),
6139
6140 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js":
6141 /*!****************************************************************************************!*\
6142 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js ***!
6143 \****************************************************************************************/
6144 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6145
6146 "use strict";
6147
6148
6149 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6150 Object.defineProperty(exports, "__esModule", ({
6151 value: true
6152 }));
6153 exports["default"] = void 0;
6154 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6155 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6156 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6157 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6158 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6159 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6160 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6161 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6162 var _excluded = ["type"];
6163 var ImageStyleSelect = function ImageStyleSelect(_ref) {
6164 var _IMAGE_PROMPT_CATEGOR;
6165 var _ref$type = _ref.type,
6166 type = _ref$type === void 0 ? '' : _ref$type,
6167 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6168 // The image styles are determined by the selected type.
6169 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) {
6170 var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
6171 value = _ref3[0],
6172 label = _ref3[1];
6173 return {
6174 label: label,
6175 value: value
6176 };
6177 });
6178 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6179 options: imageStyles,
6180 wrapperStyle: {
6181 width: '100%'
6182 },
6183 label: (0, _i18n.__)('Style', 'elementor')
6184 }, props));
6185 };
6186 ImageStyleSelect.propTypes = {
6187 type: _propTypes.default.string.isRequired
6188 };
6189 var _default = ImageStyleSelect;
6190 exports["default"] = _default;
6191
6192 /***/ }),
6193
6194 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js":
6195 /*!***************************************************************************************!*\
6196 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js ***!
6197 \***************************************************************************************/
6198 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6199
6200 "use strict";
6201
6202
6203 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6204 Object.defineProperty(exports, "__esModule", ({
6205 value: true
6206 }));
6207 exports["default"] = void 0;
6208 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6209 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6210 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6211 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6212 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6213 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6214 var imageTypes = Object.entries(_constants.IMAGE_PROMPT_CATEGORIES).map(function (_ref) {
6215 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
6216 key = _ref2[0],
6217 label = _ref2[1].label;
6218 return {
6219 label: label,
6220 value: key
6221 };
6222 });
6223 var ImageTypeSelect = function ImageTypeSelect(props) {
6224 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6225 options: imageTypes,
6226 wrapperStyle: {
6227 width: '100%'
6228 },
6229 label: (0, _i18n.__)('Image type', 'elementor')
6230 }, props));
6231 };
6232 var _default = ImageTypeSelect;
6233 exports["default"] = _default;
6234
6235 /***/ }),
6236
6237 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js":
6238 /*!************************************************************************************!*\
6239 !*** ../modules/ai/assets/js/editor/pages/form-media/components/images-display.js ***!
6240 \************************************************************************************/
6241 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6242
6243 "use strict";
6244
6245
6246 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6247 Object.defineProperty(exports, "__esModule", ({
6248 value: true
6249 }));
6250 exports["default"] = void 0;
6251 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6252 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6253 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6254 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6255 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6256 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6257 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
6258 var _useImageNavigation2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-navigation */ "../modules/ai/assets/js/editor/hooks/use-image-navigation.js"));
6259 var _imageSlider = _interopRequireDefault(__webpack_require__(/*! ./image-slider */ "../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js"));
6260 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ./image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
6261 var _gallery = _interopRequireDefault(__webpack_require__(/*! ./gallery */ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js"));
6262 var _backButton = _interopRequireDefault(__webpack_require__(/*! ./back-button */ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js"));
6263 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ./single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
6264 var _excluded = ["children", "sx"];
6265 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; }
6266 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; }
6267 var Container = function Container(_ref) {
6268 var children = _ref.children,
6269 _ref$sx = _ref.sx,
6270 sx = _ref$sx === void 0 ? {} : _ref$sx,
6271 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6272 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6273 flexGrow: 1
6274 }, props, {
6275 sx: _objectSpread({
6276 overflowY: 'scroll'
6277 }, sx)
6278 }), children);
6279 };
6280 Container.propTypes = {
6281 sx: _propTypes.default.object,
6282 children: _propTypes.default.node
6283 };
6284 var ImagesDisplay = function ImagesDisplay(_ref2) {
6285 var images = _ref2.images,
6286 aspectRatio = _ref2.aspectRatio,
6287 onUseImage = _ref2.onUseImage,
6288 onEditImage = _ref2.onEditImage,
6289 _ref2$transparentCont = _ref2.transparentContainer,
6290 transparentContainer = _ref2$transparentCont === void 0 ? false : _ref2$transparentCont;
6291 var _useImageNavigation = (0, _useImageNavigation2.default)(images),
6292 zoomIndex = _useImageNavigation.zoomIndex,
6293 setZoomIndex = _useImageNavigation.setZoomIndex,
6294 actions = _useImageNavigation.actions;
6295 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
6296 width = _useImageSize.width,
6297 height = _useImageSize.height;
6298 if (zoomIndex > -1) {
6299 var currentImage = images[zoomIndex];
6300 return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_imageSlider.default, {
6301 onPrev: actions.prev,
6302 onNext: actions.next
6303 }, /*#__PURE__*/_react.default.createElement(_imageSlider.default.Actions, {
6304 startAction: /*#__PURE__*/_react.default.createElement(_backButton.default, {
6305 onClick: actions.reset
6306 })
6307 }, /*#__PURE__*/_react.default.createElement(_imageActions.default.EditImage, {
6308 onClick: function onClick() {
6309 return onEditImage(currentImage);
6310 }
6311 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6312 onClick: function onClick() {
6313 return onUseImage(currentImage);
6314 }
6315 })), /*#__PURE__*/_react.default.createElement(_imageSlider.default.Image, {
6316 src: currentImage.image_url,
6317 style: {
6318 maxWidth: '630px',
6319 width: '100%',
6320 height: 'auto'
6321 }
6322 })));
6323 }
6324 if (1 === images.length) {
6325 var image = images[0];
6326 var singleImageStyle = {
6327 width: width,
6328 height: height
6329 };
6330 if (transparentContainer) {
6331 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%)';
6332 singleImageStyle.backgroundSize = '20px 20px';
6333 singleImageStyle.backgroundPosition = '0 0, 0 10px, 10px -10px, -10px 0px';
6334 }
6335 return /*#__PURE__*/_react.default.createElement(Container, {
6336 flexDirection: "column"
6337 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
6338 src: image.image_url || image.url,
6339 style: singleImageStyle,
6340 alt: "generated-image"
6341 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Actions, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.EditImage, {
6342 onClick: function onClick() {
6343 return onEditImage(image);
6344 }
6345 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6346 onClick: function onClick() {
6347 return onUseImage(image);
6348 }
6349 })))));
6350 }
6351 return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_gallery.default, null, images.map(function (image, index) {
6352 return /*#__PURE__*/_react.default.createElement(_gallery.default.Image, {
6353 key: "result-".concat(image.seed),
6354 alt: "generated-".concat(index),
6355 src: image.image_url,
6356 aspectRatio: aspectRatio,
6357 "data-testid": "e-gallery-image"
6358 }, /*#__PURE__*/_react.default.createElement(_imageActions.default, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6359 onClick: function onClick() {
6360 return onUseImage(image);
6361 },
6362 size: "medium",
6363 fullWidth: true
6364 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6365 direction: "row",
6366 spacing: 0.25,
6367 alignItems: "center"
6368 }, /*#__PURE__*/_react.default.createElement(_imageActions.default.ZoomIcon, {
6369 onClick: function onClick() {
6370 return setZoomIndex(index);
6371 },
6372 size: "medium"
6373 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.EditIcon, {
6374 onClick: function onClick() {
6375 return onEditImage(image);
6376 },
6377 size: "medium"
6378 }))));
6379 })));
6380 };
6381 ImagesDisplay.propTypes = {
6382 images: _propTypes.default.array,
6383 aspectRatio: _propTypes.default.string,
6384 onUseImage: _propTypes.default.func,
6385 onEditImage: _propTypes.default.func,
6386 transparentContainer: _propTypes.default.bool
6387 };
6388 ImagesDisplay.Container = Container;
6389 var _default = ImagesDisplay;
6390 exports["default"] = _default;
6391
6392 /***/ }),
6393
6394 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js":
6395 /*!***************************************************************************************!*\
6396 !*** ../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js ***!
6397 \***************************************************************************************/
6398 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6399
6400 "use strict";
6401
6402
6403 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6404 Object.defineProperty(exports, "__esModule", ({
6405 value: true
6406 }));
6407 exports["default"] = void 0;
6408 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6409 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6410 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6411 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6412 var NewPromptButton = function NewPromptButton(props) {
6413 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
6414 fullWidth: true,
6415 variant: "text",
6416 color: "secondary"
6417 }, props), (0, _i18n.__)('New prompt', 'elementor'));
6418 };
6419 var _default = NewPromptButton;
6420 exports["default"] = _default;
6421
6422 /***/ }),
6423
6424 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js":
6425 /*!**********************************************************************************!*\
6426 !*** ../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js ***!
6427 \**********************************************************************************/
6428 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6429
6430 "use strict";
6431
6432
6433 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6434 Object.defineProperty(exports, "__esModule", ({
6435 value: true
6436 }));
6437 exports["default"] = void 0;
6438 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6439 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6440 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6441 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6442 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6443 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
6444 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ./enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
6445 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
6446 var _excluded = ["disabled", "onChange"];
6447 var PromptField = function PromptField(_ref) {
6448 var disabled = _ref.disabled,
6449 _onChange = _ref.onChange,
6450 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6451 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(props.value, 'media'),
6452 enhance = _usePromptEnhancer.enhance,
6453 isEnhancing = _usePromptEnhancer.isEnhancing;
6454 return /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({
6455 minRows: 3,
6456 maxRows: 6,
6457 InputProps: {
6458 endAdornment: /*#__PURE__*/_react.default.createElement(_ui.InputAdornment, {
6459 position: "end",
6460 sx: {
6461 position: 'absolute',
6462 bottom: '24px',
6463 right: '8px'
6464 }
6465 }, /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
6466 isLoading: isEnhancing,
6467 disabled: disabled || isEnhancing || !props.value,
6468 onClick: function onClick() {
6469 enhance(prompt).then(function (_ref2) {
6470 var result = _ref2.result;
6471 return _onChange(result);
6472 });
6473 }
6474 }))
6475 },
6476 sx: {
6477 '& .MuiInputBase-input.MuiOutlinedInput-input.MuiInputBase-inputMultiline': {
6478 pb: 5,
6479 width: '89%'
6480 }
6481 },
6482 onKeyDown: function onKeyDown(event) {
6483 if ('Tab' === event.key) {
6484 event.preventDefault();
6485 _onChange(props.placeholder);
6486 }
6487 }
6488 }, props, {
6489 onChange: function onChange(event) {
6490 return _onChange(event.target.value);
6491 },
6492 disabled: disabled || isEnhancing
6493 }));
6494 };
6495 PromptField.propTypes = {
6496 value: _propTypes.default.string,
6497 disabled: _propTypes.default.bool,
6498 placeholder: _propTypes.default.string,
6499 onChange: _propTypes.default.func.isRequired
6500 };
6501 var _default = PromptField;
6502 exports["default"] = _default;
6503
6504 /***/ }),
6505
6506 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js":
6507 /*!******************************************************************************************!*\
6508 !*** ../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js ***!
6509 \******************************************************************************************/
6510 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6511
6512 "use strict";
6513
6514
6515 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6516 Object.defineProperty(exports, "__esModule", ({
6517 value: true
6518 }));
6519 exports["default"] = void 0;
6520 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6521 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6522 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6523 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6524 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6525 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6526 var _excluded = ["children"],
6527 _excluded2 = ["children", "sx"];
6528 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; }
6529 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; }
6530 var SingleImagePreview = function SingleImagePreview(_ref) {
6531 var children = _ref.children,
6532 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6533 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6534 display: "flex"
6535 }, props), children);
6536 };
6537 SingleImagePreview.propTypes = {
6538 children: _propTypes.default.node.isRequired
6539 };
6540 var Actions = function Actions(_ref2) {
6541 var children = _ref2.children,
6542 _ref2$sx = _ref2.sx,
6543 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
6544 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6545 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6546 display: "flex",
6547 width: "100%",
6548 justifyContent: "flex-end",
6549 alignItems: "center"
6550 }, props, {
6551 sx: _objectSpread({
6552 mb: 1.5
6553 }, sx)
6554 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6555 direction: "row",
6556 spacing: 2,
6557 justifyContent: "flex-end",
6558 width: "100%"
6559 }, children));
6560 };
6561 Actions.propTypes = {
6562 sx: _propTypes.default.object,
6563 children: _propTypes.default.node.isRequired
6564 };
6565 var Image = function Image(_ref3) {
6566 var src = _ref3.src,
6567 alt = _ref3.alt,
6568 _ref3$style = _ref3.style,
6569 style = _ref3$style === void 0 ? {} : _ref3$style,
6570 children = _ref3.children;
6571 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6572 margin: "0 auto"
6573 }, children, /*#__PURE__*/_react.default.createElement("img", {
6574 src: src,
6575 alt: alt,
6576 style: _objectSpread({
6577 maxWidth: '100%',
6578 width: 'auto',
6579 maxHeight: '100%'
6580 }, style)
6581 }));
6582 };
6583 Image.propTypes = {
6584 style: _propTypes.default.object,
6585 children: _propTypes.default.node,
6586 src: _propTypes.default.string.isRequired,
6587 alt: _propTypes.default.string.isRequired
6588 };
6589 SingleImagePreview.Actions = Actions;
6590 SingleImagePreview.Image = Image;
6591 var _default = SingleImagePreview;
6592 exports["default"] = _default;
6593
6594 /***/ }),
6595
6596 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js":
6597 /*!*******************************************************************************************!*\
6598 !*** ../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js ***!
6599 \*******************************************************************************************/
6600 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6601
6602 "use strict";
6603
6604
6605 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6606 Object.defineProperty(exports, "__esModule", ({
6607 value: true
6608 }));
6609 exports["default"] = void 0;
6610 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6611 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6612 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6613 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6614 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6615 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6616 var _excluded = ["onClose", "onCancel"];
6617 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
6618 var onClose = _ref.onClose,
6619 onCancel = _ref.onCancel,
6620 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6621 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
6622 "aria-labelledby": "unsaved-changes-alert-title",
6623 "aria-describedby": "unsaved-changes-alert-description"
6624 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
6625 id: "unsaved-changes-alert-title"
6626 }, (0, _i18n.__)('Leave Elementor AI?', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
6627 id: "unsaved-changes-alert-description"
6628 }, (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, {
6629 onClick: onCancel,
6630 color: "secondary"
6631 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
6632 onClick: onClose,
6633 color: "error",
6634 variant: "contained"
6635 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
6636 };
6637 UnsavedChangesAlert.propTypes = {
6638 onClose: _propTypes.default.func,
6639 onCancel: _propTypes.default.func
6640 };
6641 var _default = UnsavedChangesAlert;
6642 exports["default"] = _default;
6643
6644 /***/ }),
6645
6646 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/view.js":
6647 /*!**************************************************************************!*\
6648 !*** ../modules/ai/assets/js/editor/pages/form-media/components/view.js ***!
6649 \**************************************************************************/
6650 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6651
6652 "use strict";
6653
6654
6655 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6656 Object.defineProperty(exports, "__esModule", ({
6657 value: true
6658 }));
6659 exports["default"] = void 0;
6660 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6661 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6662 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6663 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6664 var _panel = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/panel */ "../modules/ai/assets/js/editor/components/ui/panel.js"));
6665 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6666 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6667 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
6668 var _generateLoader = _interopRequireDefault(__webpack_require__(/*! ./generate-loader */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js"));
6669 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
6670 var _backButton = _interopRequireDefault(__webpack_require__(/*! ./back-button */ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js"));
6671 var _locationContext = __webpack_require__(/*! ../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
6672 var _useUpgradeMessage = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
6673 var _globalSettingsContext = __webpack_require__(/*! ../context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
6674 var _usageMessages = _interopRequireDefault(__webpack_require__(/*! ../../../components/usage-messages */ "../modules/ai/assets/js/editor/components/usage-messages.js"));
6675 var _excluded = ["sx"],
6676 _excluded2 = ["primary", "secondary"],
6677 _excluded3 = ["primary", "secondary"],
6678 _excluded4 = ["children"],
6679 _excluded5 = ["isLoading", "isGenerating", "children"],
6680 _excluded6 = ["sx"];
6681 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; }
6682 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; }
6683 var ViewBackButton = function ViewBackButton(_ref) {
6684 var _ref$sx = _ref.sx,
6685 sx = _ref$sx === void 0 ? {} : _ref$sx,
6686 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6687 var _useLocation = (0, _locationContext.useLocation)(),
6688 back = _useLocation.back;
6689 return /*#__PURE__*/_react.default.createElement(_backButton.default, (0, _extends2.default)({
6690 onClick: function onClick(e) {
6691 e.preventDefault();
6692 back();
6693 }
6694 }, props, {
6695 sx: _objectSpread({
6696 mb: 1,
6697 alignSelf: 'flex-start'
6698 }, sx)
6699 }));
6700 };
6701 ViewBackButton.propTypes = {
6702 sx: _propTypes.default.object
6703 };
6704 var PanelHeading = function PanelHeading(_ref2) {
6705 var primary = _ref2.primary,
6706 secondary = _ref2.secondary,
6707 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6708 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6709 spacing: 1,
6710 sx: {
6711 mb: 3
6712 }
6713 }, props), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6714 variant: "h4"
6715 }, primary), secondary && /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6716 variant: "body1",
6717 color: "secondary"
6718 }, secondary));
6719 };
6720 PanelHeading.propTypes = {
6721 primary: _propTypes.default.string.isRequired,
6722 secondary: _propTypes.default.string
6723 };
6724 var ContentHeading = function ContentHeading(_ref3) {
6725 var primary = _ref3.primary,
6726 secondary = _ref3.secondary,
6727 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6728 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6729 gap: 1.5,
6730 sx: {
6731 mb: 3
6732 }
6733 }, props), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6734 variant: "h6"
6735 }, primary), secondary && /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6736 variant: "subtitle1",
6737 color: "secondary"
6738 }, secondary));
6739 };
6740 ContentHeading.propTypes = {
6741 primary: _propTypes.default.string.isRequired,
6742 secondary: _propTypes.default.string
6743 };
6744 var View = function View(_ref4) {
6745 var children = _ref4.children,
6746 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
6747 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6748 className: "e-ai-dialog-content",
6749 display: "flex",
6750 sx: {
6751 overflowY: 'auto',
6752 position: 'relative'
6753 },
6754 height: "100%"
6755 }, props), children);
6756 };
6757 var Content = function Content(_ref5) {
6758 var _ref5$isLoading = _ref5.isLoading,
6759 isLoading = _ref5$isLoading === void 0 ? false : _ref5$isLoading,
6760 _ref5$isGenerating = _ref5.isGenerating,
6761 isGenerating = _ref5$isGenerating === void 0 ? false : _ref5$isGenerating,
6762 children = _ref5.children,
6763 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
6764 if (isGenerating) {
6765 return /*#__PURE__*/_react.default.createElement(_generateLoader.default, null);
6766 }
6767 if (isLoading) {
6768 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6769 sx: {
6770 width: '100%',
6771 maxWidth: 600,
6772 margin: '0 auto',
6773 alignSelf: 'center'
6774 }
6775 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
6776 color: "inherit"
6777 }));
6778 }
6779 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6780 sx: {
6781 overflowY: 'scroll',
6782 p: 4
6783 },
6784 flexGrow: 1
6785 }, props), children);
6786 };
6787 Content.propTypes = {
6788 children: _propTypes.default.node,
6789 isLoading: _propTypes.default.bool,
6790 isGenerating: _propTypes.default.bool
6791 };
6792 var ErrorMessage = function ErrorMessage(_ref6) {
6793 var _ref6$sx = _ref6.sx,
6794 sx = _ref6$sx === void 0 ? {} : _ref6$sx,
6795 props = (0, _objectWithoutProperties2.default)(_ref6, _excluded6);
6796 return /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, (0, _extends2.default)({
6797 actionPosition: "bottom"
6798 }, props, {
6799 sx: _objectSpread({
6800 mb: 2.5
6801 }, sx)
6802 }));
6803 };
6804 ErrorMessage.propTypes = {
6805 sx: _propTypes.default.object
6806 };
6807 var ViewPanel = function ViewPanel(props) {
6808 var _useGlobalSettings = (0, _globalSettingsContext.useGlobalSettings)(),
6809 hasSubscription = _useGlobalSettings.hasSubscription,
6810 usagePercentage = _useGlobalSettings.usagePercentage;
6811 return /*#__PURE__*/_react.default.createElement(_panel.default, null, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
6812 hasSubscription: hasSubscription,
6813 usagePercentage: usagePercentage,
6814 sx: {
6815 mb: 4
6816 }
6817 }), props.children);
6818 };
6819 ViewPanel.propTypes = {
6820 children: _propTypes.default.node
6821 };
6822 View.Panel = ViewPanel;
6823 View.Content = Content;
6824 View.BackButton = ViewBackButton;
6825 View.ErrorMessage = ErrorMessage;
6826 View.PanelHeading = PanelHeading;
6827 View.ContentHeading = ContentHeading;
6828 View.propTypes = {
6829 children: _propTypes.default.node
6830 };
6831 var _default = View;
6832 exports["default"] = _default;
6833
6834 /***/ }),
6835
6836 /***/ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js":
6837 /*!**************************************************************************!*\
6838 !*** ../modules/ai/assets/js/editor/pages/form-media/constants/index.js ***!
6839 \**************************************************************************/
6840 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6841
6842 "use strict";
6843
6844
6845 Object.defineProperty(exports, "__esModule", ({
6846 value: true
6847 }));
6848 exports.LOCATIONS = exports.IMAGE_PROMPT_SETTINGS = exports.IMAGE_PROMPT_CATEGORIES = exports.IMAGE_ASPECT_RATIO = void 0;
6849 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6850 var LOCATIONS = {
6851 RESIZE: 'resize',
6852 GENERATE: 'generate',
6853 VARIATIONS: 'variations',
6854 IMAGE_TOOLS: 'image-tools',
6855 IN_PAINTING: 'in-painting',
6856 OUT_PAINTING: 'out-painting',
6857 REMOVE_BACKGROUND: 'remove-background',
6858 REPLACE_BACKGROUND: 'replace-background',
6859 REMOVE_TEXT: 'remove-text'
6860 };
6861 exports.LOCATIONS = LOCATIONS;
6862 var IMAGE_PROMPT_SETTINGS = {
6863 IMAGE_TYPE: 'image_type',
6864 IMAGE_STYLE: 'style_preset',
6865 IMAGE_STRENGTH: 'image_strength',
6866 IMAGE_RATIO: 'ratio',
6867 IMAGE_ZOOM: 'zoom',
6868 IMAGE_UPSCALE: 'upscale_to'
6869 };
6870 exports.IMAGE_PROMPT_SETTINGS = IMAGE_PROMPT_SETTINGS;
6871 var IMAGE_PROMPT_CATEGORIES = {
6872 '': {
6873 label: (0, _i18n.__)('None', 'elementor'),
6874 subCategories: {}
6875 },
6876 photographic: {
6877 label: (0, _i18n.__)('Photographic', 'elementor'),
6878 subCategories: {
6879 '': (0, _i18n.__)('None', 'elementor'),
6880 landscape: (0, _i18n.__)('Landscape', 'elementor'),
6881 macro: (0, _i18n.__)('Macro', 'elementor'),
6882 portrait: (0, _i18n.__)('Portrait', 'elementor'),
6883 'long-exposure': (0, _i18n.__)('Long Exposure', 'elementor')
6884 }
6885 },
6886 background: {
6887 label: (0, _i18n.__)('Background', 'elementor'),
6888 subCategories: {
6889 '': (0, _i18n.__)('None', 'elementor'),
6890 floral: (0, _i18n.__)('Floral', 'elementor'),
6891 gradient: (0, _i18n.__)('Gradient', 'elementor'),
6892 mosaic: (0, _i18n.__)('Mosaic', 'elementor'),
6893 neon: (0, _i18n.__)('Neon', 'elementor'),
6894 bokeh: (0, _i18n.__)('Bokeh', 'elementor')
6895 }
6896 },
6897 handmade: {
6898 label: (0, _i18n.__)('Handmade', 'elementor'),
6899 subCategories: {
6900 '': (0, _i18n.__)('None', 'elementor'),
6901 doodle: (0, _i18n.__)('Doodle', 'elementor'),
6902 'line-art': (0, _i18n.__)('Line Art', 'elementor'),
6903 'oil-painting': (0, _i18n.__)('Oil Painting', 'elementor'),
6904 'pencil-drawing': (0, _i18n.__)('Pencil Drawing', 'elementor'),
6905 watercolor: (0, _i18n.__)('Watercolor', 'elementor')
6906 }
6907 },
6908 'digital-art': {
6909 label: (0, _i18n.__)('Digital Art', 'elementor'),
6910 subCategories: {
6911 '': (0, _i18n.__)('None', 'elementor'),
6912 amine: (0, _i18n.__)('Anime', 'elementor'),
6913 cartoon: (0, _i18n.__)('Cartoon', 'elementor'),
6914 cinematic: (0, _i18n.__)('Cinematic', 'elementor'),
6915 'comic-book': (0, _i18n.__)('Comic Book', 'elementor'),
6916 'fantasy-art': (0, _i18n.__)('Fantasy Art', 'elementor'),
6917 isometric: (0, _i18n.__)('Isometric', 'elementor'),
6918 vector: (0, _i18n.__)('Vector', 'elementor'),
6919 'pixel-art': (0, _i18n.__)('Pixel Art', 'elementor'),
6920 'low-poly': (0, _i18n.__)('Low Poly', 'elementor'),
6921 'neon-punk': (0, _i18n.__)('Neon Punk', 'elementor')
6922 }
6923 },
6924 '3d': {
6925 label: (0, _i18n.__)('3D', 'elementor'),
6926 subCategories: {
6927 '': (0, _i18n.__)('None', 'elementor'),
6928 clay: (0, _i18n.__)('Clay', 'elementor'),
6929 digital: (0, _i18n.__)('Digital', 'elementor'),
6930 origami: (0, _i18n.__)('Origami', 'elementor'),
6931 stone: (0, _i18n.__)('Stone', 'elementor'),
6932 wood: (0, _i18n.__)('Wood', 'elementor')
6933 }
6934 }
6935 };
6936 exports.IMAGE_PROMPT_CATEGORIES = IMAGE_PROMPT_CATEGORIES;
6937 var IMAGE_ASPECT_RATIO = {
6938 '1:1': {
6939 width: 512,
6940 height: 512,
6941 label: (0, _i18n.__)('Square', 'elementor') + ' (1:1)'
6942 },
6943 '3:2': {
6944 width: 640,
6945 height: 448,
6946 label: (0, _i18n.__)('Landscape', 'elementor') + ' (3:2)'
6947 },
6948 '4:3': {
6949 width: 640,
6950 height: 448,
6951 label: (0, _i18n.__)('Landscape', 'elementor') + ' (4:3)'
6952 },
6953 '16:9': {
6954 width: 704,
6955 height: 384,
6956 label: (0, _i18n.__)('Landscape', 'elementor') + ' (16:9)'
6957 },
6958 '2:3': {
6959 width: 448,
6960 height: 640,
6961 label: (0, _i18n.__)('Portrait', 'elementor') + ' (2:3)'
6962 },
6963 '3:4': {
6964 width: 448,
6965 height: 640,
6966 label: (0, _i18n.__)('Portrait', 'elementor') + ' (3:4)'
6967 },
6968 '9:16': {
6969 width: 384,
6970 height: 704,
6971 label: (0, _i18n.__)('Portrait', 'elementor') + ' (9:16)'
6972 }
6973 };
6974 exports.IMAGE_ASPECT_RATIO = IMAGE_ASPECT_RATIO;
6975
6976 /***/ }),
6977
6978 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js":
6979 /*!*************************************************************************************!*\
6980 !*** ../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js ***!
6981 \*************************************************************************************/
6982 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6983
6984 "use strict";
6985
6986
6987 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6988 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
6989 Object.defineProperty(exports, "__esModule", ({
6990 value: true
6991 }));
6992 exports.useEditImage = exports.SET_LOADING = exports.SET_ASPECT_RATIO = exports.RESET = exports.EditImageProvider = exports.EditImageContext = void 0;
6993 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
6994 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6995 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6996 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6997 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
6998 var _utils = __webpack_require__(/*! ../utils */ "../modules/ai/assets/js/editor/pages/form-media/utils/index.js");
6999 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); }
7000 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; }
7001 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; }
7002 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; }
7003 var EditImageContext = (0, _react.createContext)({});
7004 exports.EditImageContext = EditImageContext;
7005 var SET_STATE = 'SET_STATE';
7006 var SET_ASPECT_RATIO = 'SET_ASPECT_RATIO';
7007 exports.SET_ASPECT_RATIO = SET_ASPECT_RATIO;
7008 var SET_LOADING = 'SET_LOADING';
7009 exports.SET_LOADING = SET_LOADING;
7010 var RESET = 'RESET';
7011 exports.RESET = RESET;
7012 var initialValue = {
7013 id: '',
7014 url: '',
7015 isLoading: false,
7016 aspectRatio: '1:1'
7017 };
7018 var reducer = function reducer(state, _ref) {
7019 var type = _ref.type,
7020 payload = _ref.payload;
7021 switch (type) {
7022 case SET_STATE:
7023 return _objectSpread(_objectSpread({}, state), payload);
7024 case SET_ASPECT_RATIO:
7025 return _objectSpread(_objectSpread({}, state), {}, {
7026 aspectRatio: payload
7027 });
7028 case SET_LOADING:
7029 return _objectSpread(_objectSpread({}, state), {}, {
7030 isLoading: payload
7031 });
7032 case RESET:
7033 return initialValue;
7034 default:
7035 throw Error('Unknown action.');
7036 }
7037 };
7038 var EditImageProvider = function EditImageProvider(_ref2) {
7039 var children = _ref2.children,
7040 imageData = _ref2.imageData;
7041 var initialData = _objectSpread(_objectSpread({}, initialValue), imageData);
7042 var _useReducer = (0, _react.useReducer)(reducer, initialData),
7043 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7044 state = _useReducer2[0],
7045 dispatch = _useReducer2[1];
7046 return /*#__PURE__*/_react.default.createElement(EditImageContext.Provider, {
7047 value: {
7048 state: state,
7049 dispatch: dispatch
7050 }
7051 }, children);
7052 };
7053 exports.EditImageProvider = EditImageProvider;
7054 EditImageProvider.propTypes = {
7055 children: _propTypes.default.node,
7056 imageData: _propTypes.default.object
7057 };
7058 var useEditImage = function useEditImage() {
7059 var _useContext = (0, _react.useContext)(EditImageContext),
7060 state = _useContext.state,
7061 dispatch = _useContext.dispatch;
7062 var id = state.id,
7063 url = state.url,
7064 aspectRatio = state.aspectRatio,
7065 isLoading = state.isLoading;
7066 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
7067 width = _useImageSize.width,
7068 height = _useImageSize.height;
7069 var setEditImage = function setEditImage(payload) {
7070 return dispatch({
7071 type: SET_STATE,
7072 payload: payload
7073 });
7074 };
7075 var setAspectRatio = function setAspectRatio(payload) {
7076 return dispatch({
7077 type: SET_ASPECT_RATIO,
7078 payload: payload
7079 });
7080 };
7081 var reset = function reset() {
7082 return dispatch({
7083 type: RESET
7084 });
7085 };
7086
7087 // Getting the aspect ratio of the image.
7088 (0, _react.useEffect)(function () {
7089 if (!id) {
7090 return;
7091 }
7092 dispatch({
7093 type: SET_LOADING,
7094 payload: true
7095 });
7096 var img = new Image();
7097 img.src = url;
7098 img.onload = function () {
7099 var _getAspectRatioSizes = (0, _utils.getAspectRatioSizes)(img.width, img.height),
7100 ratio = _getAspectRatioSizes.ratio;
7101 dispatch({
7102 type: SET_STATE,
7103 payload: {
7104 aspectRatio: ratio,
7105 isLoading: false
7106 }
7107 });
7108 };
7109 }, [id]);
7110 return {
7111 editImage: state,
7112 isLoading: isLoading,
7113 aspectRatio: aspectRatio,
7114 width: width,
7115 height: height,
7116 setEditImage: setEditImage,
7117 setAspectRatio: setAspectRatio,
7118 reset: reset
7119 };
7120 };
7121 exports.useEditImage = useEditImage;
7122
7123 /***/ }),
7124
7125 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js":
7126 /*!*****************************************************************************************!*\
7127 !*** ../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js ***!
7128 \*****************************************************************************************/
7129 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7130
7131 "use strict";
7132
7133
7134 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7135 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7136 Object.defineProperty(exports, "__esModule", ({
7137 value: true
7138 }));
7139 exports.useGlobalActions = exports.GlobalActionsProvider = exports.GlobalActionsContext = void 0;
7140 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7141 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7142 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); }
7143 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; }
7144 var GlobalActionsContext = (0, _react.createContext)({});
7145 exports.GlobalActionsContext = GlobalActionsContext;
7146 var GlobalActionsProvider = function GlobalActionsProvider(_ref) {
7147 var actions = _ref.actions,
7148 children = _ref.children;
7149 return /*#__PURE__*/_react.default.createElement(GlobalActionsContext.Provider, {
7150 value: actions
7151 }, children);
7152 };
7153 exports.GlobalActionsProvider = GlobalActionsProvider;
7154 GlobalActionsProvider.propTypes = {
7155 actions: _propTypes.default.object,
7156 children: _propTypes.default.node
7157 };
7158 var useGlobalActions = function useGlobalActions() {
7159 return (0, _react.useContext)(GlobalActionsContext);
7160 };
7161 exports.useGlobalActions = useGlobalActions;
7162
7163 /***/ }),
7164
7165 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js":
7166 /*!******************************************************************************************!*\
7167 !*** ../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js ***!
7168 \******************************************************************************************/
7169 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7170
7171 "use strict";
7172
7173
7174 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7175 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7176 Object.defineProperty(exports, "__esModule", ({
7177 value: true
7178 }));
7179 exports.useGlobalSettings = exports.GlobalSettingsProvider = exports.GlobalSettingsContext = void 0;
7180 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7181 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7182 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); }
7183 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; }
7184 var GlobalSettingsContext = (0, _react.createContext)({});
7185 exports.GlobalSettingsContext = GlobalSettingsContext;
7186 var GlobalSettingsProvider = function GlobalSettingsProvider(_ref) {
7187 var settings = _ref.settings,
7188 children = _ref.children;
7189 return /*#__PURE__*/_react.default.createElement(GlobalSettingsContext.Provider, {
7190 value: settings
7191 }, children);
7192 };
7193 exports.GlobalSettingsProvider = GlobalSettingsProvider;
7194 GlobalSettingsProvider.propTypes = {
7195 settings: _propTypes.default.object,
7196 children: _propTypes.default.node
7197 };
7198 var useGlobalSettings = function useGlobalSettings() {
7199 return (0, _react.useContext)(GlobalSettingsContext);
7200 };
7201 exports.useGlobalSettings = useGlobalSettings;
7202
7203 /***/ }),
7204
7205 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js":
7206 /*!***********************************************************************************!*\
7207 !*** ../modules/ai/assets/js/editor/pages/form-media/context/location-context.js ***!
7208 \***********************************************************************************/
7209 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7210
7211 "use strict";
7212
7213
7214 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7215 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7216 Object.defineProperty(exports, "__esModule", ({
7217 value: true
7218 }));
7219 exports.useLocation = exports.RoutesContext = exports.NAVIGATE = exports.LocationProvider = exports.BACK = void 0;
7220 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7221 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7222 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
7223 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7224 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7225 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); }
7226 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; }
7227 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; }
7228 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; }
7229 var RoutesContext = (0, _react.createContext)(null);
7230 exports.RoutesContext = RoutesContext;
7231 var NAVIGATE = 'NAVIGATE';
7232 exports.NAVIGATE = NAVIGATE;
7233 var BACK = 'BACK';
7234 exports.BACK = BACK;
7235 var initialValue = {
7236 current: '',
7237 history: []
7238 };
7239 var reducer = function reducer(state, _ref) {
7240 var type = _ref.type,
7241 payload = _ref.payload;
7242 switch (type) {
7243 case NAVIGATE:
7244 return _objectSpread(_objectSpread({}, state), {}, {
7245 current: payload,
7246 history: [].concat((0, _toConsumableArray2.default)(state.history), [payload])
7247 });
7248 case BACK:
7249 return _objectSpread(_objectSpread({}, state), {}, {
7250 current: state.history[state.history.length - 2],
7251 history: state.history.slice(0, state.history.length - 1)
7252 });
7253 default:
7254 return state;
7255 }
7256 };
7257 var LocationProvider = function LocationProvider(_ref2) {
7258 var children = _ref2.children;
7259 var _useReducer = (0, _react.useReducer)(reducer, initialValue),
7260 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7261 state = _useReducer2[0],
7262 dispatch = _useReducer2[1];
7263 return /*#__PURE__*/_react.default.createElement(RoutesContext.Provider, {
7264 value: {
7265 state: state,
7266 dispatch: dispatch
7267 }
7268 }, children);
7269 };
7270 exports.LocationProvider = LocationProvider;
7271 LocationProvider.propTypes = {
7272 children: _propTypes.default.node
7273 };
7274 var useLocation = function useLocation() {
7275 var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7276 current = _ref3.current;
7277 var _useContext = (0, _react.useContext)(RoutesContext),
7278 state = _useContext.state,
7279 dispatch = _useContext.dispatch;
7280 var navigate = function navigate(location) {
7281 dispatch({
7282 type: NAVIGATE,
7283 payload: location
7284 });
7285 };
7286 var back = function back() {
7287 dispatch({
7288 type: BACK
7289 });
7290 };
7291 (0, _react.useEffect)(function () {
7292 if (current) {
7293 navigate(current);
7294 }
7295 }, []);
7296 return {
7297 current: state.current,
7298 history: state.history,
7299 navigate: navigate,
7300 back: back
7301 };
7302 };
7303 exports.useLocation = useLocation;
7304
7305 /***/ }),
7306
7307 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js":
7308 /*!**********************************************************************************!*\
7309 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js ***!
7310 \**********************************************************************************/
7311 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7312
7313 "use strict";
7314
7315
7316 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7317 Object.defineProperty(exports, "__esModule", ({
7318 value: true
7319 }));
7320 exports["default"] = void 0;
7321 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
7322 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
7323 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
7324 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7325 var _editImageContext = __webpack_require__(/*! ../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7326 var _useImageUpload2 = _interopRequireDefault(__webpack_require__(/*! ./use-image-upload */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js"));
7327 var _globalActionsContext = __webpack_require__(/*! ../context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7328 var _excluded = ["image"];
7329 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; }
7330 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; }
7331 var normalizeImageData = function normalizeImageData(imageToUpload) {
7332 if (!(imageToUpload !== null && imageToUpload !== void 0 && imageToUpload.imageUrl)) {
7333 return imageToUpload;
7334 }
7335 return _objectSpread(_objectSpread({}, imageToUpload), {}, {
7336 image_url: imageToUpload.imageUrl,
7337 use_gallery_image: true
7338 });
7339 };
7340 var useImageActions = function useImageActions() {
7341 var _useEditImage = (0, _editImageContext.useEditImage)(),
7342 editImage = _useEditImage.editImage,
7343 setEditImage = _useEditImage.setEditImage;
7344 var _useGlobalActions = (0, _globalActionsContext.useGlobalActions)(),
7345 setControlImage = _useGlobalActions.setControlImage,
7346 saveAndClose = _useGlobalActions.saveAndClose;
7347 var _useImageUpload = (0, _useImageUpload2.default)(),
7348 attachmentData = _useImageUpload.attachmentData,
7349 isUploading = _useImageUpload.isUploading,
7350 uploadError = _useImageUpload.uploadError,
7351 uploadImage = _useImageUpload.upload,
7352 resetUpload = _useImageUpload.resetUpload;
7353 var upload = function upload(imageToUpload, prompt) {
7354 return uploadImage({
7355 image: normalizeImageData(imageToUpload),
7356 prompt: prompt || imageToUpload.prompt
7357 });
7358 };
7359 var getFinalImage = /*#__PURE__*/function () {
7360 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(imageToUpload, prompt) {
7361 var isImageAlreadyUploaded, image, _result, result;
7362 return _regenerator.default.wrap(function _callee$(_context) {
7363 while (1) switch (_context.prev = _context.next) {
7364 case 0:
7365 isImageAlreadyUploaded = editImage.url === imageToUpload.url;
7366 if (!isImageAlreadyUploaded) {
7367 _context.next = 4;
7368 break;
7369 }
7370 // Removing inner image property to avoid duplicated uploads.
7371 image = editImage.image, _result = (0, _objectWithoutProperties2.default)(editImage, _excluded);
7372 return _context.abrupt("return", _result);
7373 case 4:
7374 _context.next = 6;
7375 return upload(imageToUpload, prompt);
7376 case 6:
7377 result = _context.sent;
7378 return _context.abrupt("return", result.image);
7379 case 8:
7380 case "end":
7381 return _context.stop();
7382 }
7383 }, _callee);
7384 }));
7385 return function getFinalImage(_x, _x2) {
7386 return _ref.apply(this, arguments);
7387 };
7388 }();
7389 var edit = /*#__PURE__*/function () {
7390 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(imageToUpload, prompt) {
7391 var result;
7392 return _regenerator.default.wrap(function _callee2$(_context2) {
7393 while (1) switch (_context2.prev = _context2.next) {
7394 case 0:
7395 _context2.next = 2;
7396 return upload(imageToUpload, prompt);
7397 case 2:
7398 result = _context2.sent;
7399 setEditImage(result.image);
7400 case 4:
7401 case "end":
7402 return _context2.stop();
7403 }
7404 }, _callee2);
7405 }));
7406 return function edit(_x3, _x4) {
7407 return _ref2.apply(this, arguments);
7408 };
7409 }();
7410 var use = /*#__PURE__*/function () {
7411 var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(imageToUpload, prompt) {
7412 var result;
7413 return _regenerator.default.wrap(function _callee3$(_context3) {
7414 while (1) switch (_context3.prev = _context3.next) {
7415 case 0:
7416 _context3.next = 2;
7417 return getFinalImage(imageToUpload, prompt);
7418 case 2:
7419 result = _context3.sent;
7420 setControlImage(result);
7421 saveAndClose();
7422 case 5:
7423 case "end":
7424 return _context3.stop();
7425 }
7426 }, _callee3);
7427 }));
7428 return function use(_x5, _x6) {
7429 return _ref3.apply(this, arguments);
7430 };
7431 }();
7432 return {
7433 use: use,
7434 edit: edit,
7435 reset: resetUpload,
7436 error: uploadError,
7437 data: attachmentData,
7438 isLoading: isUploading
7439 };
7440 };
7441 var _default = useImageActions;
7442 exports["default"] = _default;
7443
7444 /***/ }),
7445
7446 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js":
7447 /*!*********************************************************************************!*\
7448 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js ***!
7449 \*********************************************************************************/
7450 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7451
7452 "use strict";
7453
7454
7455 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7456 Object.defineProperty(exports, "__esModule", ({
7457 value: true
7458 }));
7459 exports["default"] = void 0;
7460 var _react = __webpack_require__(/*! react */ "react");
7461 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
7462 var _globalActionsContext = __webpack_require__(/*! ../context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7463 var useImagePrompt = function useImagePrompt() {
7464 var promptData = _usePrompt.default.apply(void 0, arguments);
7465 var _useGlobalActions = (0, _globalActionsContext.useGlobalActions)(),
7466 setHasUnsavedChanges = _useGlobalActions.setHasUnsavedChanges,
7467 state = _useGlobalActions.state;
7468 (0, _react.useEffect)(function () {
7469 var _promptData$data;
7470 if ((_promptData$data = promptData.data) !== null && _promptData$data !== void 0 && _promptData$data.result) {
7471 // Updating the hasUnsavedChanges global state that will trigger the unsaved changes dialog.
7472 setHasUnsavedChanges(true);
7473 }
7474 }, [promptData.data]);
7475 (0, _react.useEffect)(function () {
7476 if (state.isAllSaved) {
7477 promptData.sendUsageData();
7478 }
7479 }, [state.isAllSaved]);
7480 return promptData;
7481 };
7482 var _default = useImagePrompt;
7483 exports["default"] = _default;
7484
7485 /***/ }),
7486
7487 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js":
7488 /*!*******************************************************************************!*\
7489 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js ***!
7490 \*******************************************************************************/
7491 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7492
7493 "use strict";
7494
7495
7496 Object.defineProperty(exports, "__esModule", ({
7497 value: true
7498 }));
7499 exports["default"] = void 0;
7500 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7501 var useImageSize = function useImageSize(aspectRatio) {
7502 var _IMAGE_ASPECT_RATIO$a = _constants.IMAGE_ASPECT_RATIO[aspectRatio],
7503 width = _IMAGE_ASPECT_RATIO$a.width,
7504 height = _IMAGE_ASPECT_RATIO$a.height;
7505 return {
7506 width: width,
7507 height: height
7508 };
7509 };
7510 var _default = useImageSize;
7511 exports["default"] = _default;
7512
7513 /***/ }),
7514
7515 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js":
7516 /*!*********************************************************************************!*\
7517 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js ***!
7518 \*********************************************************************************/
7519 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7520
7521 "use strict";
7522
7523
7524 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7525 Object.defineProperty(exports, "__esModule", ({
7526 value: true
7527 }));
7528 exports["default"] = void 0;
7529 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7530 var _react = __webpack_require__(/*! react */ "react");
7531 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
7532 var useImageUpload = function useImageUpload() {
7533 var _useState = (0, _react.useState)(false),
7534 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7535 isUploading = _useState2[0],
7536 setIsUploading = _useState2[1];
7537 var _useState3 = (0, _react.useState)(''),
7538 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
7539 uploadError = _useState4[0],
7540 setUploadError = _useState4[1];
7541 var _useState5 = (0, _react.useState)({}),
7542 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
7543 attachmentData = _useState6[0],
7544 setAttachmentData = _useState6[1];
7545 var upload = function upload(_ref) {
7546 var image = _ref.image,
7547 prompt = _ref.prompt;
7548 return new Promise(function (resolve, reject) {
7549 setUploadError('');
7550 setAttachmentData({});
7551 setIsUploading(true);
7552 (0, _api.uploadImage)({
7553 image: image,
7554 prompt: prompt
7555 }).then(function (result) {
7556 setAttachmentData(result);
7557 resolve(result);
7558 }).catch(function (err) {
7559 var error = (err === null || err === void 0 ? void 0 : err.responseText) || err;
7560 setUploadError(error);
7561 reject(error);
7562 }).finally(function () {
7563 return setIsUploading(false);
7564 });
7565 });
7566 };
7567 var resetUpload = function resetUpload() {
7568 setUploadError('');
7569 setAttachmentData({});
7570 setIsUploading(false);
7571 };
7572 return {
7573 upload: upload,
7574 resetUpload: resetUpload,
7575 isUploading: isUploading,
7576 uploadError: uploadError,
7577 attachmentData: attachmentData
7578 };
7579 };
7580 var _default = useImageUpload;
7581 exports["default"] = _default;
7582
7583 /***/ }),
7584
7585 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js":
7586 /*!************************************************************************************!*\
7587 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js ***!
7588 \************************************************************************************/
7589 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7590
7591 "use strict";
7592
7593
7594 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7595 Object.defineProperty(exports, "__esModule", ({
7596 value: true
7597 }));
7598 exports["default"] = exports.IMAGE_ZOOM = exports.IMAGE_UPSCALE = exports.IMAGE_TYPE = exports.IMAGE_STYLE = exports.IMAGE_STRENGTH = exports.IMAGE_RATIO = void 0;
7599 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7600 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7601 var _react = __webpack_require__(/*! react */ "react");
7602 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7603 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; }
7604 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; }
7605 var IMAGE_TYPE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_TYPE,
7606 IMAGE_STYLE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_STYLE,
7607 IMAGE_STRENGTH = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_STRENGTH,
7608 IMAGE_RATIO = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_RATIO,
7609 IMAGE_ZOOM = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_ZOOM,
7610 IMAGE_UPSCALE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_UPSCALE;
7611 exports.IMAGE_UPSCALE = IMAGE_UPSCALE;
7612 exports.IMAGE_ZOOM = IMAGE_ZOOM;
7613 exports.IMAGE_RATIO = IMAGE_RATIO;
7614 exports.IMAGE_STRENGTH = IMAGE_STRENGTH;
7615 exports.IMAGE_STYLE = IMAGE_STYLE;
7616 exports.IMAGE_TYPE = IMAGE_TYPE;
7617 var DEFAULT_TYPE = '';
7618 var DEFAULT_STYLE = '';
7619 var DEFAULT_STRENGTH = 0;
7620 var DEFAULT_RATIO = '1:1';
7621 var DEFAULT_ZOOM = '1';
7622 var DEFAULT_UPSCALE = '512';
7623 var usePromptSettings = function usePromptSettings() {
7624 var _useState3;
7625 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7626 _ref$type = _ref.type,
7627 type = _ref$type === void 0 ? DEFAULT_TYPE : _ref$type,
7628 _ref$style = _ref.style,
7629 style = _ref$style === void 0 ? DEFAULT_STYLE : _ref$style,
7630 _ref$imageWeight = _ref.imageWeight,
7631 imageWeight = _ref$imageWeight === void 0 ? DEFAULT_STRENGTH : _ref$imageWeight,
7632 _ref$aspectRatio = _ref.aspectRatio,
7633 aspectRatio = _ref$aspectRatio === void 0 ? DEFAULT_RATIO : _ref$aspectRatio,
7634 _ref$zoom = _ref.zoom,
7635 zoom = _ref$zoom === void 0 ? DEFAULT_ZOOM : _ref$zoom,
7636 _ref$upScaleTo = _ref.upScaleTo,
7637 upScaleTo = _ref$upScaleTo === void 0 ? DEFAULT_UPSCALE : _ref$upScaleTo;
7638 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)),
7639 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7640 settings = _useState2[0],
7641 setSettings = _useState2[1];
7642 var updateSettings = function updateSettings(updated) {
7643 return setSettings(function (prev) {
7644 return _objectSpread(_objectSpread({}, prev), updated);
7645 });
7646 };
7647 var resetSettings = function resetSettings() {
7648 var _setSettings;
7649 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));
7650 };
7651 return {
7652 settings: settings,
7653 updateSettings: updateSettings,
7654 resetSettings: resetSettings
7655 };
7656 };
7657 var _default = usePromptSettings;
7658 exports["default"] = _default;
7659
7660 /***/ }),
7661
7662 /***/ "../modules/ai/assets/js/editor/pages/form-media/index.js":
7663 /*!****************************************************************!*\
7664 !*** ../modules/ai/assets/js/editor/pages/form-media/index.js ***!
7665 \****************************************************************/
7666 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7667
7668 "use strict";
7669
7670
7671 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7672 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7673 Object.defineProperty(exports, "__esModule", ({
7674 value: true
7675 }));
7676 exports["default"] = void 0;
7677 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7678 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
7679 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7680 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7681 var _locationContext = __webpack_require__(/*! ./context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
7682 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
7683 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7684 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
7685 var _mediaOutlet = _interopRequireDefault(__webpack_require__(/*! ./media-outlet */ "../modules/ai/assets/js/editor/pages/form-media/media-outlet.js"));
7686 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js"));
7687 var _editImageContext = __webpack_require__(/*! ./context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7688 var _globalActionsContext = __webpack_require__(/*! ./context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7689 var _globalSettingsContext = __webpack_require__(/*! ./context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
7690 var _promptHistory = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-history */ "../modules/ai/assets/js/editor/components/prompt-history/index.js"));
7691 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); }
7692 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; }
7693 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; }
7694 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; }
7695 var initialData = {
7696 isAllSaved: false,
7697 hasUnsavedChanges: false
7698 };
7699 var SET_UNSAVED_CHANGES = 'SET_UNSAVED_CHANGES';
7700 var SAVE_AND_CLOSE = 'SAVE_AND_CLOSE';
7701 var reducer = function reducer(state, _ref) {
7702 var type = _ref.type,
7703 payload = _ref.payload;
7704 switch (type) {
7705 case SET_UNSAVED_CHANGES:
7706 return _objectSpread(_objectSpread({}, state), {}, {
7707 hasUnsavedChanges: payload,
7708 isAllSaved: payload ? false : state.isAllSaved
7709 });
7710 case SAVE_AND_CLOSE:
7711 return _objectSpread(_objectSpread({}, state), {}, {
7712 isAllSaved: true,
7713 hasUnsavedChanges: false
7714 });
7715 default:
7716 throw Error('Unknown action.');
7717 }
7718 };
7719 var FormMedia = function FormMedia(_ref2) {
7720 var onClose = _ref2.onClose,
7721 DialogProps = _ref2.DialogProps,
7722 getControlValue = _ref2.getControlValue,
7723 controlView = _ref2.controlView,
7724 additionalOptions = _ref2.additionalOptions,
7725 maybeRenderUpgradeChip = _ref2.maybeRenderUpgradeChip,
7726 hasSubscription = _ref2.hasSubscription,
7727 usagePercentage = _ref2.usagePercentage;
7728 var _useReducer = (0, _react.useReducer)(reducer, initialData),
7729 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7730 state = _useReducer2[0],
7731 dispatch = _useReducer2[1];
7732 var _useState = (0, _react.useState)(false),
7733 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7734 showUnsavedChangeAlert = _useState2[0],
7735 setShowUnsavedChangeAlert = _useState2[1];
7736 var setHasUnsavedChanges = function setHasUnsavedChanges(payload) {
7737 return dispatch({
7738 type: SET_UNSAVED_CHANGES,
7739 payload: payload
7740 });
7741 };
7742 var saveAndClose = function saveAndClose() {
7743 return dispatch({
7744 type: SAVE_AND_CLOSE
7745 });
7746 };
7747 var onCloseIntent = function onCloseIntent() {
7748 if (state.hasUnsavedChanges) {
7749 setShowUnsavedChangeAlert(true);
7750 return;
7751 }
7752 onClose();
7753 };
7754 var editImageInitialData = getControlValue() === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultValue) ? {} : getControlValue();
7755 var globalSettings = {
7756 initialImageType: (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultImageType) || '',
7757 hasSubscription: hasSubscription,
7758 usagePercentage: usagePercentage
7759 };
7760 var globalActions = {
7761 state: state,
7762 getControlValue: getControlValue,
7763 saveAndClose: saveAndClose,
7764 close: onCloseIntent,
7765 setHasUnsavedChanges: setHasUnsavedChanges,
7766 setControlImage: function setControlImage(image) {
7767 controlView.setSettingsModel(image);
7768 controlView.applySavedValue();
7769 }
7770 };
7771 (0, _react.useEffect)(function () {
7772 if (state.isAllSaved) {
7773 // Closing the app only once the state was updated, to allow registered effects to take place before closing.
7774 onClose();
7775 }
7776 }, [state.isAllSaved]);
7777 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
7778 id: "e-form-media",
7779 onClose: function onClose() {
7780 return onCloseIntent();
7781 },
7782 maxWidth: "lg"
7783 }, DialogProps), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
7784 onClose: function onClose() {
7785 return onCloseIntent();
7786 }
7787 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), /*#__PURE__*/_react.default.createElement(_globalSettingsContext.GlobalSettingsProvider, {
7788 settings: globalSettings
7789 }, /*#__PURE__*/_react.default.createElement(_globalActionsContext.GlobalActionsProvider, {
7790 actions: globalActions
7791 }, /*#__PURE__*/_react.default.createElement(_locationContext.LocationProvider, null, /*#__PURE__*/_react.default.createElement(_editImageContext.EditImageProvider, {
7792 imageData: editImageInitialData
7793 }, /*#__PURE__*/_react.default.createElement(_mediaOutlet.default, null)))))), showUnsavedChangeAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
7794 onClose: onClose,
7795 onCancel: function onCancel() {
7796 return setShowUnsavedChangeAlert(false);
7797 },
7798 open: true
7799 }));
7800 };
7801 FormMedia.propTypes = {
7802 onClose: _propTypes.default.func.isRequired,
7803 DialogProps: _propTypes.default.object,
7804 getControlValue: _propTypes.default.func.isRequired,
7805 controlView: _propTypes.default.object,
7806 additionalOptions: _propTypes.default.object,
7807 credits: _propTypes.default.number,
7808 maybeRenderUpgradeChip: _propTypes.default.func,
7809 hasSubscription: _propTypes.default.bool,
7810 usagePercentage: _propTypes.default.number
7811 };
7812 var _default = FormMedia;
7813 exports["default"] = _default;
7814
7815 /***/ }),
7816
7817 /***/ "../modules/ai/assets/js/editor/pages/form-media/media-outlet.js":
7818 /*!***********************************************************************!*\
7819 !*** ../modules/ai/assets/js/editor/pages/form-media/media-outlet.js ***!
7820 \***********************************************************************/
7821 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7822
7823 "use strict";
7824
7825
7826 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7827 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7828 Object.defineProperty(exports, "__esModule", ({
7829 value: true
7830 }));
7831 exports["default"] = void 0;
7832 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7833 var _view = _interopRequireDefault(__webpack_require__(/*! ./components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
7834 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
7835 var _constants = __webpack_require__(/*! ./constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7836 var _generate = _interopRequireDefault(__webpack_require__(/*! ./views/generate */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js"));
7837 var _imageTools = _interopRequireDefault(__webpack_require__(/*! ./views/image-tools */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js"));
7838 var _resize = _interopRequireDefault(__webpack_require__(/*! ./views/resize */ "../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js"));
7839 var _inPainting = _interopRequireDefault(__webpack_require__(/*! ./views/in-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js"));
7840 var _outPainting = _interopRequireDefault(__webpack_require__(/*! ./views/out-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js"));
7841 var _variations = _interopRequireDefault(__webpack_require__(/*! ./views/variations */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js"));
7842 var _replaceBackground = _interopRequireDefault(__webpack_require__(/*! ./views/replace-background */ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js"));
7843 var _removeBackground = _interopRequireDefault(__webpack_require__(/*! ./views/remove-background */ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js"));
7844 var _locationContext = __webpack_require__(/*! ./context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
7845 var _editImageContext = __webpack_require__(/*! ./context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7846 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");
7847 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); }
7848 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; }
7849 var MediaOutlet = function MediaOutlet() {
7850 var _useEditImage = (0, _editImageContext.useEditImage)(),
7851 editImage = _useEditImage.editImage;
7852 var _useLocation = (0, _locationContext.useLocation)({
7853 current: _constants.LOCATIONS.GENERATE
7854 }),
7855 current = _useLocation.current,
7856 navigate = _useLocation.navigate;
7857 (0, _react.useEffect)(function () {
7858 var isNotPlaceholderImage = editImage.id;
7859 if (isNotPlaceholderImage) {
7860 navigate(_constants.LOCATIONS.IMAGE_TOOLS);
7861 }
7862 }, [editImage.id]);
7863 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
7864 type: _promptHistoryActionContext.ACTION_TYPES.RESTORE,
7865 handler: function handler() {
7866 if (current !== _constants.LOCATIONS.GENERATE) {
7867 navigate(_constants.LOCATIONS.GENERATE);
7868 }
7869 }
7870 }]);
7871 if (!current) {
7872 return /*#__PURE__*/_react.default.createElement(_view.default, {
7873 alignItems: "center"
7874 }, /*#__PURE__*/_react.default.createElement(_loader.default, null));
7875 }
7876 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));
7877 };
7878 var _default = MediaOutlet;
7879 exports["default"] = _default;
7880
7881 /***/ }),
7882
7883 /***/ "../modules/ai/assets/js/editor/pages/form-media/utils/index.js":
7884 /*!**********************************************************************!*\
7885 !*** ../modules/ai/assets/js/editor/pages/form-media/utils/index.js ***!
7886 \**********************************************************************/
7887 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7888
7889 "use strict";
7890
7891
7892 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7893 Object.defineProperty(exports, "__esModule", ({
7894 value: true
7895 }));
7896 exports.getAspectRatioSizes = void 0;
7897 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7898 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7899 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7900 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; }
7901 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; }
7902 var getAspectRatioSizes = function getAspectRatioSizes(width, height) {
7903 var aspectRatios = Object.keys(_constants.IMAGE_ASPECT_RATIO);
7904 var targetRatio = width / height;
7905 var closestRatio = aspectRatios[0];
7906 var minDiff = Infinity;
7907 aspectRatios.forEach(function (ratio) {
7908 var _ratio$split$map = ratio.split(':').map(Number),
7909 _ratio$split$map2 = (0, _slicedToArray2.default)(_ratio$split$map, 2),
7910 w = _ratio$split$map2[0],
7911 h = _ratio$split$map2[1];
7912 var diff = Math.abs(targetRatio - w / h);
7913 if (diff < minDiff) {
7914 minDiff = diff;
7915 closestRatio = ratio;
7916 }
7917 });
7918 return _objectSpread({
7919 ratio: closestRatio
7920 }, _constants.IMAGE_ASPECT_RATIO[closestRatio]);
7921 };
7922 exports.getAspectRatioSizes = getAspectRatioSizes;
7923
7924 /***/ }),
7925
7926 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js":
7927 /*!****************************************************************************************************!*\
7928 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js ***!
7929 \****************************************************************************************************/
7930 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7931
7932 "use strict";
7933
7934
7935 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7936 Object.defineProperty(exports, "__esModule", ({
7937 value: true
7938 }));
7939 exports["default"] = void 0;
7940 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7941 var _react = __webpack_require__(/*! react */ "react");
7942 var _useImagesPreload2 = _interopRequireDefault(__webpack_require__(/*! ../../../../../hooks/use-images-preload */ "../modules/ai/assets/js/editor/hooks/use-images-preload.js"));
7943 var _useSessionStorage2 = _interopRequireDefault(__webpack_require__(/*! ../../../../../hooks/use-session-storage */ "../modules/ai/assets/js/editor/hooks/use-session-storage.js"));
7944 var shuffleImages = function shuffleImages(images) {
7945 return images.map(function (image) {
7946 return [Math.random(), image];
7947 }).sort(function (_ref, _ref2) {
7948 var _ref3 = (0, _slicedToArray2.default)(_ref, 1),
7949 a = _ref3[0];
7950 var _ref4 = (0, _slicedToArray2.default)(_ref2, 1),
7951 b = _ref4[0];
7952 return a - b;
7953 }).map(function (_ref5) {
7954 var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
7955 image = _ref6[1];
7956 return image;
7957 });
7958 };
7959 var useSuggestedImages = function useSuggestedImages(_ref7) {
7960 var selectedType = _ref7.selectedType;
7961 var _useState = (0, _react.useState)(false),
7962 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7963 isLoading = _useState2[0],
7964 setIsLoading = _useState2[1];
7965 var _useSessionStorage = (0, _useSessionStorage2.default)('ai-image-gallery', {
7966 images: []
7967 }),
7968 data = _useSessionStorage.data,
7969 setStateAndSessionData = _useSessionStorage.setStateAndSessionData;
7970 var _useImagesPreload = (0, _useImagesPreload2.default)(),
7971 ready = _useImagesPreload.ready,
7972 preloadImages = _useImagesPreload.preloadImages;
7973 var imagesData = (0, _react.useMemo)(function () {
7974 var shuffledImages = shuffleImages(data.images);
7975 if (!selectedType) {
7976 return shuffledImages;
7977 }
7978 var categoryImages = shuffledImages.filter(function (_ref8) {
7979 var imageType = _ref8.imageType;
7980 return imageType.includes(selectedType);
7981 });
7982
7983 // Some categories don't have images, so we TEMPORARLY fallback to the shuffled images.
7984 return categoryImages.length ? categoryImages : shuffledImages;
7985 }, [selectedType, data]);
7986 var fetchImages = function fetchImages() {
7987 setIsLoading(true);
7988 fetch('https://my.elementor.com/ai/images-prompt-gallery/ai-gallery.json').then(function (response) {
7989 return response.json();
7990 }).then(function (json) {
7991 return setStateAndSessionData(json);
7992 })
7993 // eslint-disable-next-line no-console
7994 .catch(function (e) {
7995 return console.log(e.message);
7996 }).finally(function () {
7997 return setIsLoading(false);
7998 });
7999 };
8000 (0, _react.useEffect)(function () {
8001 if (0 === (data === null || data === void 0 ? void 0 : data.images.length)) {
8002 fetchImages();
8003 return;
8004 }
8005 preloadImages(data.images.map(function (_ref9) {
8006 var thumbnailUrl = _ref9.thumbnailUrl;
8007 return thumbnailUrl;
8008 }));
8009 }, [data]);
8010 return {
8011 imagesData: imagesData,
8012 isLoading: !ready || isLoading
8013 };
8014 };
8015 var _default = useSuggestedImages;
8016 exports["default"] = _default;
8017
8018 /***/ }),
8019
8020 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js":
8021 /*!*************************************************************************************************!*\
8022 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js ***!
8023 \*************************************************************************************************/
8024 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8025
8026 "use strict";
8027
8028
8029 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8030 Object.defineProperty(exports, "__esModule", ({
8031 value: true
8032 }));
8033 exports["default"] = void 0;
8034 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8035 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8036 var useTextToImage = function useTextToImage(initialValue) {
8037 return (0, _useImagePrompt.default)(_api.getTextToImageGeneration, initialValue);
8038 };
8039 var _default = useTextToImage;
8040 exports["default"] = _default;
8041
8042 /***/ }),
8043
8044 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js":
8045 /*!*******************************************************************************!*\
8046 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js ***!
8047 \*******************************************************************************/
8048 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8049
8050 "use strict";
8051
8052
8053 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8054 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8055 Object.defineProperty(exports, "__esModule", ({
8056 value: true
8057 }));
8058 exports["default"] = void 0;
8059 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8060 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
8061 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8062 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8063 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8064 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8065 var _gallery = _interopRequireDefault(__webpack_require__(/*! ../../components/gallery */ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js"));
8066 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8067 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8068 var _imageTypeSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-type-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js"));
8069 var _imageStyleSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-style-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js"));
8070 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
8071 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8072 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8073 var _generateImagesSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-images-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js"));
8074 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8075 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ../../components/image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
8076 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8077 var _useSuggestedImages2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-suggested-images */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js"));
8078 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"));
8079 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8080 var _globalSettingsContext = __webpack_require__(/*! ../../context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
8081 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");
8082 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
8083 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); }
8084 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; }
8085 var getPromptPlaceholder = function getPromptPlaceholder(images) {
8086 if (!(images !== null && images !== void 0 && images.length)) {
8087 return (0, _i18n.__)('describe your image', 'elementor');
8088 }
8089 var randomImage = images[Math.floor(Math.random() * images.length)];
8090 return randomImage.prompt;
8091 };
8092 var Generate = function Generate() {
8093 var _useState = (0, _react.useState)(''),
8094 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8095 prompt = _useState2[0],
8096 setPrompt = _useState2[1];
8097 var _useGlobalSettings = (0, _globalSettingsContext.useGlobalSettings)(),
8098 initialImageType = _useGlobalSettings.initialImageType;
8099 var _usePromptSettings = (0, _usePromptSettings2.default)({
8100 type: initialImageType
8101 }),
8102 settings = _usePromptSettings.settings,
8103 updateSettings = _usePromptSettings.updateSettings,
8104 resetSettings = _usePromptSettings.resetSettings;
8105 var _useSuggestedImages = (0, _useSuggestedImages2.default)({
8106 selectedType: settings[_usePromptSettings2.IMAGE_TYPE]
8107 }),
8108 suggestedImages = _useSuggestedImages.imagesData,
8109 isPreloading = _useSuggestedImages.isLoading;
8110 var promptPlaceholder = getPromptPlaceholder(suggestedImages);
8111 var _useTextToImage = (0, _useTextToImage2.default)({}),
8112 generatedImages = _useTextToImage.data,
8113 setResult = _useTextToImage.setResult,
8114 send = _useTextToImage.send,
8115 isGenerating = _useTextToImage.isLoading,
8116 error = _useTextToImage.error,
8117 reset = _useTextToImage.reset;
8118 var _useImageActions = (0, _useImageActions2.default)(),
8119 use = _useImageActions.use,
8120 edit = _useImageActions.edit,
8121 isUploading = _useImageActions.isLoading;
8122 var isLoading = isPreloading || isGenerating || isUploading;
8123
8124 // The aspect ratio in the content view should only be updated when the generated images are updated.
8125 var generateAspectRatio = (0, _react.useMemo)(function () {
8126 return settings[_usePromptSettings2.IMAGE_RATIO];
8127 }, [generatedImages === null || generatedImages === void 0 ? void 0 : generatedImages.result]);
8128 var handleSubmit = function handleSubmit(event) {
8129 event.preventDefault();
8130 send(prompt, settings);
8131 };
8132 var handleCopyPrompt = function handleCopyPrompt(_ref) {
8133 var _updateSettings;
8134 var selectedPrompt = _ref.prompt,
8135 imageType = _ref.imageType;
8136 setPrompt(selectedPrompt);
8137 var _imageType$split = imageType.split('/'),
8138 _imageType$split2 = (0, _slicedToArray2.default)(_imageType$split, 2),
8139 type = _imageType$split2[0],
8140 style = _imageType$split2[1];
8141 updateSettings((_updateSettings = {}, (0, _defineProperty2.default)(_updateSettings, _usePromptSettings2.IMAGE_TYPE, type), (0, _defineProperty2.default)(_updateSettings, _usePromptSettings2.IMAGE_STYLE, style), _updateSettings));
8142 };
8143 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
8144 type: _promptHistoryActionContext.ACTION_TYPES.RESTORE,
8145 handler: function handler(action) {
8146 var _action$data, _action$data2, _action$data3, _action$data4;
8147 handleCopyPrompt({
8148 prompt: (_action$data = action.data) === null || _action$data === void 0 ? void 0 : _action$data.prompt,
8149 imageType: ((_action$data2 = action.data) === null || _action$data2 === void 0 ? void 0 : _action$data2.imageType) || ''
8150 });
8151 updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, (_action$data3 = action.data) === null || _action$data3 === void 0 ? void 0 : _action$data3.ratio));
8152 setResult((_action$data4 = action.data) === null || _action$data4 === void 0 ? void 0 : _action$data4.images, action.id);
8153 }
8154 }]);
8155 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8156 primary: (0, _i18n.__)('Imagine anything create everything', 'elementor'),
8157 secondary: (0, _i18n.__)('Generate images by selecting the desired type and style, and entering a prompt.', 'elementor')
8158 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
8159 error: error,
8160 onRetry: handleSubmit
8161 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
8162 onSubmit: handleSubmit
8163 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
8164 "data-testid": "e-image-prompt",
8165 value: prompt,
8166 disabled: isLoading,
8167 placeholder: promptPlaceholder,
8168 onChange: setPrompt
8169 }), /*#__PURE__*/_react.default.createElement(_imageTypeSelect.default, {
8170 disabled: isLoading,
8171 value: settings[_usePromptSettings2.IMAGE_TYPE],
8172 onChange: function onChange(event) {
8173 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_TYPE, event.target.value));
8174 }
8175 }), /*#__PURE__*/_react.default.createElement(_imageStyleSelect.default, {
8176 type: settings[_usePromptSettings2.IMAGE_TYPE],
8177 value: settings[_usePromptSettings2.IMAGE_STYLE],
8178 disabled: isLoading || !settings[_usePromptSettings2.IMAGE_TYPE] || false,
8179 onChange: function onChange(event) {
8180 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STYLE, event.target.value));
8181 }
8182 }), /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
8183 disabled: isLoading,
8184 value: settings[_usePromptSettings2.IMAGE_RATIO],
8185 onChange: function onChange(event) {
8186 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
8187 }
8188 }), generatedImages !== null && generatedImages !== void 0 && generatedImages.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8189 gap: 2,
8190 sx: {
8191 my: 2.5
8192 }
8193 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
8194 disabled: isLoading || '' === prompt
8195 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
8196 disabled: isLoading,
8197 onClick: function onClick() {
8198 resetSettings();
8199 setPrompt('');
8200 reset();
8201 }
8202 })) : /*#__PURE__*/_react.default.createElement(_generateImagesSubmit.default, {
8203 disabled: isLoading || '' === prompt
8204 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
8205 isLoading: isPreloading || isUploading,
8206 isGenerating: isGenerating
8207 }, generatedImages !== null && generatedImages !== void 0 && generatedImages.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
8208 images: generatedImages === null || generatedImages === void 0 ? void 0 : generatedImages.result,
8209 aspectRatio: generateAspectRatio,
8210 onUseImage: use,
8211 onEditImage: edit
8212 }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_view.default.ContentHeading, {
8213 primary: (0, _i18n.__)('Spark your imagination with images generated by our community', 'elementor')
8214 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8215 sx: {
8216 mb: 3
8217 }
8218 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
8219 libraryLink: "https://go.elementor.com/ai-prompt-library-image/"
8220 })), /*#__PURE__*/_react.default.createElement(_gallery.default, {
8221 cols: 3
8222 }, suggestedImages === null || suggestedImages === void 0 ? void 0 : suggestedImages.map(function (suggestedPrompt) {
8223 return /*#__PURE__*/_react.default.createElement(_gallery.default.Image, {
8224 variant: "thumbnail",
8225 key: suggestedPrompt.prompt,
8226 alt: suggestedPrompt.prompt,
8227 text: suggestedPrompt.prompt,
8228 src: suggestedPrompt.thumbnailUrl
8229 }, /*#__PURE__*/_react.default.createElement(_imageActions.default, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
8230 onClick: function onClick() {
8231 return use(suggestedPrompt);
8232 },
8233 fullWidth: true
8234 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.CopyIcon, {
8235 onClick: function onClick() {
8236 return handleCopyPrompt(suggestedPrompt);
8237 }
8238 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.EditIcon, {
8239 onClick: function onClick() {
8240 return edit(suggestedPrompt);
8241 }
8242 })));
8243 })))));
8244 };
8245 var _default = Generate;
8246 exports["default"] = _default;
8247
8248 /***/ }),
8249
8250 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js":
8251 /*!************************************************************************************************!*\
8252 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js ***!
8253 \************************************************************************************************/
8254 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8255
8256 "use strict";
8257
8258
8259 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8260 Object.defineProperty(exports, "__esModule", ({
8261 value: true
8262 }));
8263 exports["default"] = void 0;
8264 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8265 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
8266 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8267 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ../../components/image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
8268 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8269 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8270 var ImageToolsContent = function ImageToolsContent() {
8271 var _useEditImage = (0, _editImageContext.useEditImage)(),
8272 editImage = _useEditImage.editImage,
8273 width = _useEditImage.width,
8274 height = _useEditImage.height;
8275 var _useImageActions = (0, _useImageActions2.default)(),
8276 use = _useImageActions.use;
8277 return /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
8278 src: editImage.url,
8279 style: {
8280 width: width,
8281 height: height
8282 },
8283 alt: editImage.alt || (0, _i18n.__)('Image preview', 'elementor')
8284 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Actions, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
8285 onClick: function onClick() {
8286 return use(editImage);
8287 }
8288 }))));
8289 };
8290 var _default = ImageToolsContent;
8291 exports["default"] = _default;
8292
8293 /***/ }),
8294
8295 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js":
8296 /*!**********************************************************************************************!*\
8297 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js ***!
8298 \**********************************************************************************************/
8299 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8300
8301 "use strict";
8302
8303
8304 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8305 Object.defineProperty(exports, "__esModule", ({
8306 value: true
8307 }));
8308 exports["default"] = void 0;
8309 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8310 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8311 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8312 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8313 var _expandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/expand-icon */ "../modules/ai/assets/js/editor/icons/expand-icon.js"));
8314 var _brushIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/brush-icon */ "../modules/ai/assets/js/editor/icons/brush-icon.js"));
8315 var _evolveIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/evolve-icon */ "../modules/ai/assets/js/editor/icons/evolve-icon.js"));
8316 var _enlargerIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/enlarger-icon */ "../modules/ai/assets/js/editor/icons/enlarger-icon.js"));
8317 var _removeBg = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/remove-bg */ "../modules/ai/assets/js/editor/icons/remove-bg.js"));
8318 var _replaceBg = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/replace-bg */ "../modules/ai/assets/js/editor/icons/replace-bg.js"));
8319 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8320 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8321 var TeaserDrawing = function TeaserDrawing() {
8322 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, {
8323 viewBox: "0 0 184 80",
8324 sx: {
8325 width: 184,
8326 height: 80
8327 }
8328 }, /*#__PURE__*/_react.default.createElement("g", {
8329 clipPath: "url(#clip0_3127_96542)"
8330 }, /*#__PURE__*/_react.default.createElement("path", {
8331 fillRule: "evenodd",
8332 clipRule: "evenodd",
8333 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",
8334 fill: "#69727D"
8335 }), /*#__PURE__*/_react.default.createElement("path", {
8336 fillRule: "evenodd",
8337 clipRule: "evenodd",
8338 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",
8339 fill: "#69727D"
8340 }), /*#__PURE__*/_react.default.createElement("path", {
8341 d: "M53.9717 12L57.2198 17.0456L3.24796 51.4731L-0.000164873 46.4275L53.9717 12Z",
8342 fill: "#69727D"
8343 }), /*#__PURE__*/_react.default.createElement("path", {
8344 d: "M64.9761 5L68.2242 10.0456L57.2612 17.0387L54.013 11.9931L64.9761 5Z",
8345 fill: "#E6E8EA"
8346 }), /*#__PURE__*/_react.default.createElement("path", {
8347 fillRule: "evenodd",
8348 clipRule: "evenodd",
8349 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",
8350 fill: "#69727D"
8351 }), /*#__PURE__*/_react.default.createElement("path", {
8352 fillRule: "evenodd",
8353 clipRule: "evenodd",
8354 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",
8355 fill: "#69727D"
8356 }), /*#__PURE__*/_react.default.createElement("path", {
8357 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",
8358 fill: "#E6E8EA"
8359 }), /*#__PURE__*/_react.default.createElement("path", {
8360 fillRule: "evenodd",
8361 clipRule: "evenodd",
8362 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",
8363 fill: "#69727D"
8364 }), /*#__PURE__*/_react.default.createElement("path", {
8365 fillRule: "evenodd",
8366 clipRule: "evenodd",
8367 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",
8368 fill: "#69727D"
8369 }), /*#__PURE__*/_react.default.createElement("path", {
8370 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",
8371 fill: "#E6E8EA"
8372 }), /*#__PURE__*/_react.default.createElement("path", {
8373 fillRule: "evenodd",
8374 clipRule: "evenodd",
8375 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",
8376 fill: "#69727D"
8377 }), /*#__PURE__*/_react.default.createElement("path", {
8378 fillRule: "evenodd",
8379 clipRule: "evenodd",
8380 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",
8381 fill: "#69727D"
8382 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
8383 id: "clip0_3127_96542"
8384 }, /*#__PURE__*/_react.default.createElement("rect", {
8385 width: "184",
8386 height: "80",
8387 fill: "white"
8388 }))));
8389 };
8390 var ImageToolsContainer = (0, _ui.styled)(_ui.Box)(function (_ref) {
8391 var theme = _ref.theme;
8392 return {
8393 height: "calc(100% - ".concat(theme.spacing(13), ")")
8394 };
8395 });
8396 var ToolsTeaserContainer = (0, _ui.styled)(_ui.Box)(function (_ref2) {
8397 var theme = _ref2.theme;
8398 return {
8399 position: 'sticky',
8400 top: '100%',
8401 padding: theme.spacing(4, 0, 1)
8402 };
8403 });
8404 var ImageToolsPanel = function ImageToolsPanel() {
8405 var _useLocation = (0, _locationContext.useLocation)(),
8406 navigate = _useLocation.navigate;
8407 var tools = [{
8408 label: (0, _i18n.__)('Expand Image', 'elementor'),
8409 Icon: _expandIcon.default,
8410 onClick: function onClick() {
8411 return navigate(_constants.LOCATIONS.OUT_PAINTING);
8412 }
8413 }, {
8414 label: (0, _i18n.__)('Generative Fill', 'elementor'),
8415 Icon: _brushIcon.default,
8416 onClick: function onClick() {
8417 return navigate(_constants.LOCATIONS.IN_PAINTING);
8418 }
8419 }, {
8420 label: (0, _i18n.__)('Resize', 'elementor'),
8421 Icon: _enlargerIcon.default,
8422 onClick: function onClick() {
8423 return navigate(_constants.LOCATIONS.RESIZE);
8424 }
8425 }, {
8426 label: (0, _i18n.__)('Variations', 'elementor'),
8427 Icon: _evolveIcon.default,
8428 onClick: function onClick() {
8429 return navigate(_constants.LOCATIONS.VARIATIONS);
8430 }
8431 }, {
8432 label: (0, _i18n.__)('Remove Background', 'elementor'),
8433 Icon: _removeBg.default,
8434 onClick: function onClick() {
8435 return navigate(_constants.LOCATIONS.REMOVE_BACKGROUND);
8436 }
8437 }, {
8438 label: (0, _i18n.__)('Replace Background', 'elementor'),
8439 Icon: _replaceBg.default,
8440 onClick: function onClick() {
8441 return navigate(_constants.LOCATIONS.REPLACE_BACKGROUND);
8442 }
8443 }];
8444 return /*#__PURE__*/_react.default.createElement(ImageToolsContainer, null, /*#__PURE__*/_react.default.createElement(_ui.Box, {
8445 display: "grid",
8446 gridTemplateColumns: "repeat(2, 1fr)",
8447 gap: 1,
8448 justifyContent: "center"
8449 }, tools.map(function (_ref3) {
8450 var label = _ref3.label,
8451 Icon = _ref3.Icon,
8452 onClick = _ref3.onClick;
8453 return /*#__PURE__*/_react.default.createElement(_ui.Button, {
8454 onClick: onClick,
8455 key: label,
8456 variant: "outlined",
8457 color: "secondary",
8458 disabled: false,
8459 sx: {
8460 py: 3,
8461 fontSize: '12px',
8462 height: 'auto',
8463 borderRadius: '4px'
8464 }
8465 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
8466 display: "flex",
8467 justifyContent: "center",
8468 alignItems: "center",
8469 flexDirection: "column"
8470 }, /*#__PURE__*/_react.default.createElement(Icon, {
8471 sx: {
8472 mb: 0.5
8473 }
8474 }), label));
8475 })), /*#__PURE__*/_react.default.createElement(ToolsTeaserContainer, {
8476 display: "flex",
8477 flexDirection: "column",
8478 alignItems: "center"
8479 }, /*#__PURE__*/_react.default.createElement(TeaserDrawing, null), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
8480 variant: "body2",
8481 align: "center",
8482 color: "secondary",
8483 sx: {
8484 mt: 2
8485 }
8486 }, (0, _i18n.__)('Stay tuned! More incredible AI tools are coming your way soon.', 'elementor'))));
8487 };
8488 ImageToolsPanel.propTypes = {
8489 generateNewPrompt: _propTypes.default.func,
8490 panelActive: _propTypes.default.bool
8491 };
8492 var _default = ImageToolsPanel;
8493 exports["default"] = _default;
8494
8495 /***/ }),
8496
8497 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js":
8498 /*!**********************************************************************************!*\
8499 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js ***!
8500 \**********************************************************************************/
8501 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8502
8503 "use strict";
8504
8505
8506 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8507 Object.defineProperty(exports, "__esModule", ({
8508 value: true
8509 }));
8510 exports["default"] = void 0;
8511 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8512 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8513 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8514 var _imageToolsPanel = _interopRequireDefault(__webpack_require__(/*! ./image-tools-panel */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js"));
8515 var _imageToolsContent = _interopRequireDefault(__webpack_require__(/*! ./image-tools-content */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js"));
8516 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8517 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8518 var ImageTools = function ImageTools() {
8519 var _useLocation = (0, _locationContext.useLocation)(),
8520 navigate = _useLocation.navigate;
8521 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, {
8522 onClick: function onClick() {
8523 return navigate(_constants.LOCATIONS.GENERATE);
8524 }
8525 }, (0, _i18n.__)('Generate with a prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8526 primary: (0, _i18n.__)('Edit with AI', 'elementor')
8527 }), /*#__PURE__*/_react.default.createElement(_imageToolsPanel.default, null)), /*#__PURE__*/_react.default.createElement(_view.default.Content, null, /*#__PURE__*/_react.default.createElement(_imageToolsContent.default, null)));
8528 };
8529 var _default = ImageTools;
8530 exports["default"] = _default;
8531
8532 /***/ }),
8533
8534 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js":
8535 /*!**************************************************************************************************!*\
8536 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js ***!
8537 \**************************************************************************************************/
8538 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8539
8540 "use strict";
8541
8542
8543 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8544 Object.defineProperty(exports, "__esModule", ({
8545 value: true
8546 }));
8547 exports["default"] = void 0;
8548 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8549 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8550 var useInPainting = function useInPainting(initialValue) {
8551 var fetchAction = function fetchAction(prompt, promptSettings, image, mask) {
8552 return (0, _api.getImageToImageMaskGeneration)(prompt, promptSettings, image, mask);
8553 };
8554 return (0, _useImagePrompt.default)(fetchAction, initialValue);
8555 };
8556 var _default = useInPainting;
8557 exports["default"] = _default;
8558
8559 /***/ }),
8560
8561 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js":
8562 /*!************************************************************************************************!*\
8563 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js ***!
8564 \************************************************************************************************/
8565 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8566
8567 "use strict";
8568
8569
8570 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8571 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8572 Object.defineProperty(exports, "__esModule", ({
8573 value: true
8574 }));
8575 exports["default"] = void 0;
8576 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8577 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
8578 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
8579 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8580 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8581 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8582 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8583 var _reactSketchCanvas = __webpack_require__(/*! react-sketch-canvas */ "../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js");
8584 var _undoIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/undo-icon */ "../modules/ai/assets/js/editor/icons/undo-icon.js"));
8585 var _redoIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/redo-icon */ "../modules/ai/assets/js/editor/icons/redo-icon.js"));
8586 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); }
8587 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; }
8588 var STROKE_SELECT_WIDTH = 120;
8589 var BRUSH_COLOR = 'rgba(0, 0, 0, 0.75)';
8590 var StyledUndoIcon = (0, _ui.withDirection)(_undoIcon.default);
8591 var StyledRedoIcon = (0, _ui.withDirection)(_redoIcon.default);
8592 var BrushCursor = (0, _ui.styled)(_ui.Box, {
8593 shouldForwardProp: function shouldForwardProp(prop) {
8594 return 'size' === prop;
8595 }
8596 })(function (_ref) {
8597 var theme = _ref.theme,
8598 size = _ref.size;
8599 return {
8600 position: 'absolute',
8601 width: size,
8602 height: size,
8603 borderRadius: '50%',
8604 backgroundColor: BRUSH_COLOR,
8605 pointerEvents: 'none',
8606 transform: "translate(".concat('rtl' === theme.direction ? '50%' : '-50%', ", -50%)"),
8607 border: "1px solid #fff"
8608 };
8609 });
8610 var BrishSizeIcon = (0, _ui.styled)(_ui.Box, {
8611 shouldForwardProp: function shouldForwardProp(prop) {
8612 return 'size' === prop;
8613 }
8614 })(function (_ref2) {
8615 var theme = _ref2.theme,
8616 size = _ref2.size;
8617 return {
8618 width: size / 2,
8619 height: size / 2,
8620 borderRadius: '50%',
8621 backgroundColor: theme.palette.secondary.main
8622 };
8623 });
8624 var InPaintingContent = function InPaintingContent(_ref3) {
8625 var editImage = _ref3.editImage,
8626 setMask = _ref3.setMask,
8627 canvasWidth = _ref3.width,
8628 canvasHeight = _ref3.height;
8629 var sketchRef = (0, _react.useRef)();
8630 var _useState = (0, _react.useState)(30),
8631 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8632 stroke = _useState2[0],
8633 setStroke = _useState2[1];
8634 var brushCursorRef = (0, _react.useRef)();
8635 (0, _react.useEffect)(function () {
8636 var canvas = document.querySelector('.eui-in-painting-canvas');
8637
8638 // The BrushCursor should follow the mouse position but should stay only inside the canvas.
8639 var positionElement = function positionElement(e) {
8640 var _canvas$getBoundingCl = canvas.getBoundingClientRect(),
8641 left = _canvas$getBoundingCl.left,
8642 top = _canvas$getBoundingCl.top,
8643 width = _canvas$getBoundingCl.width,
8644 height = _canvas$getBoundingCl.height;
8645 var x = e.clientX - left;
8646 var y = e.clientY - top;
8647 if (x > 0 && x < width && y > 0 && y < height) {
8648 brushCursorRef.current.style.left = "".concat(x, "px");
8649 brushCursorRef.current.style.top = "".concat(y, "px");
8650 }
8651 };
8652 window.addEventListener('mousemove', positionElement);
8653 return function () {
8654 window.removeEventListener('mousemove', positionElement);
8655 };
8656 }, [stroke]);
8657 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8658 alignItems: "flex-start",
8659 spacing: 0.5,
8660 flexGrow: 1
8661 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8662 width: "100%",
8663 direction: "row",
8664 spacing: 3,
8665 alignSelf: "center",
8666 justifyContent: "center",
8667 sx: {
8668 mb: 2.5
8669 }
8670 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8671 direction: "row",
8672 gap: 1
8673 }, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
8674 title: (0, _i18n.__)('Undo', 'elementor')
8675 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
8676 variant: "outlined",
8677 color: "secondary",
8678 onClick: function onClick() {
8679 return sketchRef.current.undo();
8680 },
8681 sx: {
8682 px: 0
8683 }
8684 }, /*#__PURE__*/_react.default.createElement(StyledUndoIcon, null))), /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
8685 title: (0, _i18n.__)('Redo', 'elementor')
8686 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
8687 variant: "outlined",
8688 color: "secondary",
8689 onClick: function onClick() {
8690 return sketchRef.current.redo();
8691 },
8692 sx: {
8693 px: 0
8694 }
8695 }, /*#__PURE__*/_react.default.createElement(StyledRedoIcon, null)))), /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
8696 size: "small",
8697 color: "secondary",
8698 sx: {
8699 minWidth: STROKE_SELECT_WIDTH
8700 }
8701 }, /*#__PURE__*/_react.default.createElement(_ui.InputLabel, {
8702 id: "stroke"
8703 }, "Stroke"), /*#__PURE__*/_react.default.createElement(_ui.Select, {
8704 autoWidth: true,
8705 label: "Stroke",
8706 value: stroke,
8707 id: "demo-simple-select",
8708 labelId: "demo-simple-select-label",
8709 onChange: function onChange(e) {
8710 return setStroke(e.target.value);
8711 },
8712 MenuProps: {
8713 PaperProps: {
8714 sx: {
8715 maxWidth: STROKE_SELECT_WIDTH
8716 }
8717 },
8718 MenuListProps: {
8719 sx: {
8720 minWidth: STROKE_SELECT_WIDTH
8721 }
8722 }
8723 },
8724 sx: {
8725 '& .MuiSelect-select .MuiListItemIcon-root': {
8726 mr: 0.25,
8727 width: 'initial',
8728 minWidth: 'initial',
8729 justifyContent: 'flex-start'
8730 }
8731 }
8732 }, [10, 20, 30, 40, 50].map(function (value) {
8733 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
8734 key: 'stroke-width-option-' + value,
8735 value: value
8736 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8737 direction: "row",
8738 alignItems: "center",
8739 gap: 1
8740 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, {
8741 sx: {
8742 width: 30,
8743 display: 'flex',
8744 justifyContent: 'center'
8745 }
8746 }, /*#__PURE__*/_react.default.createElement(BrishSizeIcon, {
8747 size: value
8748 })), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, null, value)));
8749 })))), /*#__PURE__*/_react.default.createElement("div", {
8750 style: {
8751 margin: '0 auto',
8752 position: 'relative',
8753 cursor: 'none',
8754 overflow: 'hidden'
8755 }
8756 }, /*#__PURE__*/_react.default.createElement(BrushCursor, {
8757 ref: brushCursorRef,
8758 size: stroke
8759 }), /*#__PURE__*/_react.default.createElement(_reactSketchCanvas.ReactSketchCanvas, {
8760 className: "eui-in-painting-canvas",
8761 withViewBox: true,
8762 ref: sketchRef,
8763 height: canvasHeight + 'px',
8764 width: canvasWidth + 'px',
8765 strokeWidth: stroke,
8766 strokeColor: BRUSH_COLOR,
8767 backgroundImage: editImage.url,
8768 onChange: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
8769 var svg;
8770 return _regenerator.default.wrap(function _callee$(_context) {
8771 while (1) switch (_context.prev = _context.next) {
8772 case 0:
8773 _context.next = 2;
8774 return sketchRef.current.exportSvg();
8775 case 2:
8776 svg = _context.sent;
8777 setMask(svg);
8778 case 4:
8779 case "end":
8780 return _context.stop();
8781 }
8782 }, _callee);
8783 }))
8784 })));
8785 };
8786 InPaintingContent.propTypes = {
8787 setMask: _propTypes.default.func.isRequired,
8788 width: _propTypes.default.number.isRequired,
8789 height: _propTypes.default.number.isRequired,
8790 editImage: _propTypes.default.object.isRequired
8791 };
8792 var _default = InPaintingContent;
8793 exports["default"] = _default;
8794
8795 /***/ }),
8796
8797 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js":
8798 /*!**********************************************************************************!*\
8799 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js ***!
8800 \**********************************************************************************/
8801 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8802
8803 "use strict";
8804
8805
8806 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8807 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8808 Object.defineProperty(exports, "__esModule", ({
8809 value: true
8810 }));
8811 exports["default"] = void 0;
8812 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8813 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8814 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8815 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8816 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8817 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8818 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8819 var _inPaintingContent = _interopRequireDefault(__webpack_require__(/*! ./in-painting-content */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js"));
8820 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
8821 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8822 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8823 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8824 var _usePromptSettings2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8825 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"));
8826 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8827 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8828 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); }
8829 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; }
8830 var InPainting = function InPainting() {
8831 var _useState = (0, _react.useState)(''),
8832 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8833 prompt = _useState2[0],
8834 setPrompt = _useState2[1];
8835 var _useState3 = (0, _react.useState)(''),
8836 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
8837 mask = _useState4[0],
8838 setMask = _useState4[1];
8839 var _usePromptSettings = (0, _usePromptSettings2.default)(),
8840 settings = _usePromptSettings.settings,
8841 resetSettings = _usePromptSettings.resetSettings;
8842 var _useEditImage = (0, _editImageContext.useEditImage)(),
8843 editImage = _useEditImage.editImage,
8844 width = _useEditImage.width,
8845 height = _useEditImage.height;
8846 var _useImageActions = (0, _useImageActions2.default)(),
8847 use = _useImageActions.use,
8848 edit = _useImageActions.edit,
8849 isUploading = _useImageActions.isLoading;
8850 var _useInPainting = (0, _useInPainting2.default)(),
8851 data = _useInPainting.data,
8852 send = _useInPainting.send,
8853 isGenerating = _useInPainting.isLoading,
8854 error = _useInPainting.error,
8855 reset = _useInPainting.reset;
8856 var isLoading = isGenerating || isUploading;
8857 var handleSubmit = function handleSubmit(event) {
8858 event.preventDefault();
8859
8860 // The fallback instruction should be hidden for the user.
8861 var finalPrompt = prompt || 'Remove object and fill based on the surroundings';
8862 send(finalPrompt, settings, editImage, mask);
8863 };
8864 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, {
8865 primary: (0, _i18n.__)('Generative Fill', 'elementor'),
8866 secondary: (0, _i18n.__)('Mark an area and edit it with a prompt.', 'elementor')
8867 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
8868 error: error,
8869 onRetry: handleSubmit
8870 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
8871 onSubmit: handleSubmit
8872 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
8873 value: prompt,
8874 disabled: isLoading,
8875 onChange: setPrompt,
8876 placeholder: (0, _i18n.__)('Describe what you want to generate in the marked area (English only)', 'elementor')
8877 }), data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8878 gap: 2,
8879 sx: {
8880 my: 2.5
8881 }
8882 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
8883 disabled: isLoading
8884 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
8885 disabled: isLoading,
8886 onClick: function onClick() {
8887 resetSettings();
8888 setPrompt('');
8889 reset();
8890 }
8891 })) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
8892 disabled: isLoading
8893 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
8894 isGenerating: isLoading
8895 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
8896 images: data.result,
8897 aspectRatio: editImage.aspectRatio,
8898 onUseImage: use,
8899 onEditImage: edit
8900 }) : /*#__PURE__*/_react.default.createElement(_inPaintingContent.default, {
8901 editImage: editImage,
8902 width: width,
8903 height: height,
8904 setMask: setMask
8905 })));
8906 };
8907 var _default = InPainting;
8908 exports["default"] = _default;
8909
8910 /***/ }),
8911
8912 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js":
8913 /*!****************************************************************************************************!*\
8914 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js ***!
8915 \****************************************************************************************************/
8916 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8917
8918 "use strict";
8919
8920
8921 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8922 Object.defineProperty(exports, "__esModule", ({
8923 value: true
8924 }));
8925 exports["default"] = void 0;
8926 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8927 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8928 var useOutPainting = function useOutPainting(initialValue) {
8929 var fetchAction = function fetchAction(prompt, promptSettings, image, mask) {
8930 return (0, _api.getImageToImageOutPainting)(prompt, promptSettings, image, mask);
8931 };
8932 return (0, _useImagePrompt.default)(fetchAction, initialValue);
8933 };
8934 var _default = useOutPainting;
8935 exports["default"] = _default;
8936
8937 /***/ }),
8938
8939 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js":
8940 /*!***********************************************************************************!*\
8941 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js ***!
8942 \***********************************************************************************/
8943 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8944
8945 "use strict";
8946
8947
8948 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8949 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8950 Object.defineProperty(exports, "__esModule", ({
8951 value: true
8952 }));
8953 exports["default"] = void 0;
8954 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8955 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
8956 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8957 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8958 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8959 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8960 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8961 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
8962 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
8963 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8964 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8965 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8966 var _outPaintingContent = _interopRequireDefault(__webpack_require__(/*! ./out-painting-content */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js"));
8967 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8968 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8969 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8970 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8971 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"));
8972 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); }
8973 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; }
8974 var OutPainting = function OutPainting() {
8975 var _useState = (0, _react.useState)(''),
8976 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8977 prompt = _useState2[0],
8978 setPrompt = _useState2[1];
8979 var _useEditImage = (0, _editImageContext.useEditImage)(),
8980 editImage = _useEditImage.editImage,
8981 initialAspectRatio = _useEditImage.aspectRatio;
8982 var _useState3 = (0, _react.useState)(''),
8983 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
8984 mask = _useState4[0],
8985 setMask = _useState4[1];
8986 var _usePromptSettings = (0, _usePromptSettings2.default)({
8987 aspectRatio: initialAspectRatio
8988 }),
8989 settings = _usePromptSettings.settings,
8990 updateSettings = _usePromptSettings.updateSettings,
8991 resetSettings = _usePromptSettings.resetSettings;
8992 var _useImageActions = (0, _useImageActions2.default)(),
8993 use = _useImageActions.use,
8994 edit = _useImageActions.edit,
8995 isUploading = _useImageActions.isLoading;
8996 var _useOutPainting = (0, _useOutPainting2.default)(),
8997 data = _useOutPainting.data,
8998 send = _useOutPainting.send,
8999 isGenerating = _useOutPainting.isLoading,
9000 error = _useOutPainting.error,
9001 reset = _useOutPainting.reset;
9002 var isLoading = isGenerating || isUploading;
9003 var generatedAspectRatio = (0, _react.useMemo)(function () {
9004 return settings[_usePromptSettings2.IMAGE_RATIO];
9005 }, [data === null || data === void 0 ? void 0 : data.result]);
9006 var hasGeneratedResult = !!(data !== null && data !== void 0 && data.result);
9007 var handleSubmit = function handleSubmit(event) {
9008 event.preventDefault();
9009
9010 // The fallback instruction should be hidden for the user.
9011 var finalPrompt = prompt || 'Fill based on the surroundings';
9012 send(finalPrompt, settings, editImage, mask);
9013 };
9014 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, {
9015 primary: (0, _i18n.__)('Expand Image', 'elementor'),
9016 secondary: (0, _i18n.__)('Position image in it’s new size to generate content around the edges.', 'elementor')
9017 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9018 error: error,
9019 onRetry: handleSubmit
9020 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9021 onSubmit: handleSubmit
9022 }, /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
9023 disabled: isLoading || hasGeneratedResult,
9024 value: settings[_usePromptSettings2.IMAGE_RATIO],
9025 onChange: function onChange(event) {
9026 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
9027 }
9028 }), /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
9029 sx: {
9030 width: '100%',
9031 mb: 2.5
9032 }
9033 }, /*#__PURE__*/_react.default.createElement(_ui.Slider, {
9034 marks: true,
9035 id: "zoom",
9036 name: "zoom",
9037 max: 2,
9038 min: 0.1,
9039 step: 0.1,
9040 color: "secondary",
9041 defaultValue: 1,
9042 disabled: isLoading || hasGeneratedResult,
9043 valueLabelDisplay: "auto",
9044 "aria-labelledby": "image-size-slider",
9045 "aria-label": (0, _i18n.__)('Reference strength', 'elementor'),
9046 onChange: function onChange(_, value) {
9047 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_ZOOM, value));
9048 }
9049 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9050 id: "image-size-slider",
9051 variant: "caption",
9052 gutterBottom: true
9053 }, (0, _i18n.__)('Original image size', 'elementor'))), /*#__PURE__*/_react.default.createElement(_promptField.default, {
9054 value: prompt,
9055 disabled: isLoading,
9056 onChange: setPrompt,
9057 placeholder: (0, _i18n.__)('Describe what you want to generate in the expended area (English only)', 'elementor')
9058 }), data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9059 gap: 2,
9060 sx: {
9061 my: 2.5
9062 }
9063 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
9064 disabled: isLoading
9065 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9066 disabled: isLoading,
9067 onClick: function onClick() {
9068 resetSettings();
9069 setPrompt('');
9070 reset();
9071 }
9072 })) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9073 disabled: isLoading
9074 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9075 isGenerating: isLoading
9076 }, hasGeneratedResult ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9077 onUseImage: use,
9078 onEditImage: edit,
9079 images: data.result,
9080 aspectRatio: generatedAspectRatio
9081 }) : /*#__PURE__*/_react.default.createElement(_outPaintingContent.default, {
9082 setMask: setMask,
9083 editImage: editImage,
9084 scale: settings[_usePromptSettings2.IMAGE_ZOOM],
9085 aspectRatio: settings[_usePromptSettings2.IMAGE_RATIO]
9086 })));
9087 };
9088 var _default = OutPainting;
9089 exports["default"] = _default;
9090
9091 /***/ }),
9092
9093 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js":
9094 /*!**************************************************************************************************!*\
9095 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js ***!
9096 \**************************************************************************************************/
9097 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9098
9099 "use strict";
9100
9101
9102 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9103 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9104 Object.defineProperty(exports, "__esModule", ({
9105 value: true
9106 }));
9107 exports["default"] = void 0;
9108 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9109 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
9110 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
9111 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9112 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9113 var _reactAvatarEditor = _interopRequireDefault(__webpack_require__(/*! react-avatar-editor */ "../node_modules/react-avatar-editor/dist/index.js"));
9114 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
9115 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); }
9116 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; }
9117 var OutPaintingContent = function OutPaintingContent(_ref) {
9118 var scale = _ref.scale,
9119 setMask = _ref.setMask,
9120 editImage = _ref.editImage,
9121 aspectRatio = _ref.aspectRatio;
9122 var cropperRef = (0, _react.useRef)();
9123 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
9124 width = _useImageSize.width,
9125 height = _useImageSize.height;
9126 var updateMask = /*#__PURE__*/function () {
9127 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
9128 var imageDataURL;
9129 return _regenerator.default.wrap(function _callee$(_context) {
9130 while (1) switch (_context.prev = _context.next) {
9131 case 0:
9132 _context.next = 2;
9133 return cropperRef.current.getImageScaledToCanvas().toDataURL();
9134 case 2:
9135 imageDataURL = _context.sent;
9136 setMask(imageDataURL);
9137 case 4:
9138 case "end":
9139 return _context.stop();
9140 }
9141 }, _callee);
9142 }));
9143 return function updateMask() {
9144 return _ref2.apply(this, arguments);
9145 };
9146 }();
9147 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9148 alignItems: 'center',
9149 spacing: 0.5,
9150 flexGrow: 1
9151 }, /*#__PURE__*/_react.default.createElement(_reactAvatarEditor.default, {
9152 ref: cropperRef,
9153 image: editImage.url,
9154 style: {
9155 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%)',
9156 backgroundSize: '20px 20px',
9157 backgroundPosition: '0 0, 0 10px, 10px -10px, -10px 0px',
9158 outline: '2px dashed #000',
9159 marginTop: '12px'
9160 },
9161 color: [0, 0, 0, 0.9],
9162 rotate: 0,
9163 border: 0,
9164 allowZoomOut: true,
9165 backgroundColor: 'transparent',
9166 showGrid: true,
9167 onImageChange: function onImageChange() {
9168 return updateMask();
9169 },
9170 onPositionChange: function onPositionChange() {
9171 return updateMask();
9172 },
9173 width: width,
9174 height: height,
9175 scale: scale
9176 }));
9177 };
9178 OutPaintingContent.propTypes = {
9179 scale: _propTypes.default.number.isRequired,
9180 setMask: _propTypes.default.func.isRequired,
9181 editImage: _propTypes.default.object.isRequired,
9182 aspectRatio: _propTypes.default.string.isRequired
9183 };
9184 var _default = OutPaintingContent;
9185 exports["default"] = _default;
9186
9187 /***/ }),
9188
9189 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js":
9190 /*!**************************************************************************************************************!*\
9191 !*** ../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js ***!
9192 \**************************************************************************************************************/
9193 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9194
9195 "use strict";
9196
9197
9198 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9199 Object.defineProperty(exports, "__esModule", ({
9200 value: true
9201 }));
9202 exports["default"] = void 0;
9203 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9204 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9205 var useRemoveBackground = function useRemoveBackground(initialValue) {
9206 var fetchAction = function fetchAction(image) {
9207 return (0, _api.getImageToImageRemoveBackground)(image);
9208 };
9209 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9210 };
9211 var _default = useRemoveBackground;
9212 exports["default"] = _default;
9213
9214 /***/ }),
9215
9216 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js":
9217 /*!****************************************************************************************!*\
9218 !*** ../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js ***!
9219 \****************************************************************************************/
9220 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9221
9222 "use strict";
9223
9224
9225 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9226 Object.defineProperty(exports, "__esModule", ({
9227 value: true
9228 }));
9229 exports["default"] = void 0;
9230 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9231 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9232 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9233 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9234 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9235 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9236 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9237 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9238 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9239 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9240 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"));
9241 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9242 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
9243 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
9244 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
9245 var RemoveBackground = function RemoveBackground() {
9246 var _useEditImage = (0, _editImageContext.useEditImage)(),
9247 editImage = _useEditImage.editImage;
9248 var _useImageActions = (0, _useImageActions2.default)(),
9249 use = _useImageActions.use,
9250 edit = _useImageActions.edit,
9251 isUploading = _useImageActions.isLoading;
9252 var _useRemoveBackground = (0, _useRemoveBackground2.default)(),
9253 data = _useRemoveBackground.data,
9254 send = _useRemoveBackground.send,
9255 isGenerating = _useRemoveBackground.isLoading,
9256 error = _useRemoveBackground.error;
9257 var _useLocation = (0, _locationContext.useLocation)(),
9258 navigate = _useLocation.navigate;
9259 var isLoading = isGenerating || isUploading;
9260 var _useImageSize = (0, _useImageSize2.default)(editImage.aspectRatio),
9261 width = _useImageSize.width,
9262 height = _useImageSize.height;
9263 var handleSubmit = function handleSubmit(event) {
9264 event.preventDefault();
9265 send(editImage);
9266 };
9267 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, {
9268 primary: (0, _i18n.__)('Remove Background', 'elementor'),
9269 secondary: (0, _i18n.__)('Create an image of the subject with a transparent background', 'elementor')
9270 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9271 error: error,
9272 onRetry: handleSubmit
9273 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9274 onSubmit: handleSubmit
9275 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9276 variant: "contained",
9277 disabled: isLoading,
9278 onClick: function onClick() {
9279 return navigate(_constants.LOCATIONS.GENERATE);
9280 }
9281 }) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9282 disabled: isLoading
9283 }, (0, _i18n.__)('Remove Background', 'elementor')))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9284 isGenerating: isLoading
9285 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9286 transparentContainer: true,
9287 onUseImage: use,
9288 onEditImage: edit,
9289 images: data.result,
9290 aspectRatio: editImage.aspectRatio
9291 })) : /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9292 src: editImage.url,
9293 alt: editImage.alt,
9294 style: {
9295 width: width,
9296 height: height
9297 }
9298 })))));
9299 };
9300 var _default = RemoveBackground;
9301 exports["default"] = _default;
9302
9303 /***/ }),
9304
9305 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js":
9306 /*!****************************************************************************************************************!*\
9307 !*** ../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js ***!
9308 \****************************************************************************************************************/
9309 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9310
9311 "use strict";
9312
9313
9314 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9315 Object.defineProperty(exports, "__esModule", ({
9316 value: true
9317 }));
9318 exports["default"] = void 0;
9319 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9320 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9321 var useReplaceBackground = function useReplaceBackground(initialValue) {
9322 var fetchAction = function fetchAction(prompt, image) {
9323 return (0, _api.getImageToImageReplaceBackground)(prompt, image);
9324 };
9325 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9326 };
9327 var _default = useReplaceBackground;
9328 exports["default"] = _default;
9329
9330 /***/ }),
9331
9332 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js":
9333 /*!*****************************************************************************************!*\
9334 !*** ../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js ***!
9335 \*****************************************************************************************/
9336 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9337
9338 "use strict";
9339
9340
9341 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9342 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9343 Object.defineProperty(exports, "__esModule", ({
9344 value: true
9345 }));
9346 exports["default"] = void 0;
9347 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9348 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9349 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9350 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9351 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9352 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9353 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9354 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9355 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9356 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9357 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"));
9358 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9359 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
9360 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9361 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
9362 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); }
9363 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; }
9364 var ReplaceBackground = function ReplaceBackground() {
9365 var _useState = (0, _react.useState)(''),
9366 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9367 prompt = _useState2[0],
9368 setPrompt = _useState2[1];
9369 var _useEditImage = (0, _editImageContext.useEditImage)(),
9370 editImage = _useEditImage.editImage;
9371 var _useImageActions = (0, _useImageActions2.default)(),
9372 use = _useImageActions.use,
9373 edit = _useImageActions.edit,
9374 isUploading = _useImageActions.isLoading;
9375 var _useReplaceBackground = (0, _useReplaceBackground2.default)(),
9376 data = _useReplaceBackground.data,
9377 send = _useReplaceBackground.send,
9378 isGenerating = _useReplaceBackground.isLoading,
9379 error = _useReplaceBackground.error,
9380 reset = _useReplaceBackground.reset;
9381 var _useLocation = (0, _locationContext.useLocation)(),
9382 navigate = _useLocation.navigate;
9383 var isLoading = isGenerating || isUploading;
9384 var handleSubmit = function handleSubmit(event) {
9385 event.preventDefault();
9386 send(prompt, editImage);
9387 };
9388 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, {
9389 primary: (0, _i18n.__)('Replace Background', 'elementor'),
9390 secondary: (0, _i18n.__)('Generate a new background with a prompt.', 'elementor')
9391 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9392 error: error,
9393 onRetry: handleSubmit
9394 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9395 onSubmit: handleSubmit
9396 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
9397 value: prompt,
9398 disabled: isLoading,
9399 onChange: setPrompt,
9400 placeholder: (0, _i18n.__)('Describe what you want to generate in the background (English only)', 'elementor')
9401 }), /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9402 disabled: isLoading || '' === prompt,
9403 color: data !== null && data !== void 0 && data.result ? 'secondary' : 'primary'
9404 }, 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, {
9405 disabled: isLoading,
9406 onClick: function onClick() {
9407 return navigate(_constants.LOCATIONS.GENERATE);
9408 }
9409 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9410 isGenerating: isLoading
9411 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9412 onUseImage: use,
9413 onEditImage: edit,
9414 images: data.result,
9415 aspectRatio: editImage.aspectRatio
9416 }) : /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9417 src: editImage.url,
9418 alt: editImage.alt,
9419 style: {
9420 width: editImage.width,
9421 height: editImage.height
9422 }
9423 }))));
9424 };
9425 var _default = ReplaceBackground;
9426 exports["default"] = _default;
9427
9428 /***/ }),
9429
9430 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js":
9431 /*!****************************************************************************************!*\
9432 !*** ../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js ***!
9433 \****************************************************************************************/
9434 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9435
9436 "use strict";
9437
9438
9439 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9440 Object.defineProperty(exports, "__esModule", ({
9441 value: true
9442 }));
9443 exports["default"] = void 0;
9444 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9445 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9446 var useResize = function useResize(initialValue) {
9447 var fetchAction = function fetchAction(prompt, promptSettings, image) {
9448 return (0, _api.getImageToImageUpscale)(prompt, promptSettings, image);
9449 };
9450 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9451 };
9452 var _default = useResize;
9453 exports["default"] = _default;
9454
9455 /***/ }),
9456
9457 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js":
9458 /*!*****************************************************************************!*\
9459 !*** ../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js ***!
9460 \*****************************************************************************/
9461 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9462
9463 "use strict";
9464
9465
9466 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9467 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9468 Object.defineProperty(exports, "__esModule", ({
9469 value: true
9470 }));
9471 exports["default"] = void 0;
9472 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9473 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9474 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9475 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9476 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9477 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9478 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9479 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9480 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9481 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9482 var _useResize2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-resize */ "../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js"));
9483 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9484 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9485 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); }
9486 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; }
9487 var Resize = function Resize() {
9488 var _useEditImage = (0, _editImageContext.useEditImage)(),
9489 editImage = _useEditImage.editImage,
9490 initialEditImageWidth = _useEditImage.width;
9491 var _useImageActions = (0, _useImageActions2.default)(),
9492 use = _useImageActions.use,
9493 edit = _useImageActions.edit,
9494 isUploading = _useImageActions.isLoading;
9495 var _usePromptSettings = (0, _usePromptSettings2.default)(),
9496 settings = _usePromptSettings.settings,
9497 updateSettings = _usePromptSettings.updateSettings;
9498 var _useResize = (0, _useResize2.default)(),
9499 data = _useResize.data,
9500 send = _useResize.send,
9501 isGenerating = _useResize.isLoading,
9502 error = _useResize.error;
9503 var isLoading = isGenerating || isUploading;
9504 var handleSubmit = function handleSubmit(event) {
9505 event.preventDefault();
9506 send(null, settings, editImage);
9507 };
9508 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, {
9509 primary: (0, _i18n.__)('Resize', 'elementor'),
9510 secondary: (0, _i18n.__)('Make an image larger and improve it’s resolution.', 'elementor')
9511 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9512 error: error,
9513 onRetry: handleSubmit
9514 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9515 onSubmit: handleSubmit
9516 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9517 spacing: 0.2
9518 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9519 display: "flex",
9520 justifyContent: "space-between",
9521 alignItems: "center"
9522 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9523 variant: "caption"
9524 }, "512px"), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9525 variant: "caption"
9526 }, "2048px")), /*#__PURE__*/_react.default.createElement(_ui.Slider, {
9527 marks: true,
9528 step: 64,
9529 min: 512,
9530 max: 2048,
9531 id: "upscale_to",
9532 color: "secondary",
9533 name: "upscale_to",
9534 disabled: isLoading,
9535 defaultValue: initialEditImageWidth,
9536 valueLabelDisplay: "auto",
9537 "aria-label": (0, _i18n.__)('Upscale to', 'elementor'),
9538 onChange: function onChange(_, value) {
9539 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_UPSCALE, value));
9540 }
9541 }), /*#__PURE__*/_react.default.createElement(_ui.Box, {
9542 display: "flex",
9543 justifyContent: "space-between",
9544 alignItems: "center"
9545 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9546 variant: "caption"
9547 }, (0, _i18n.__)('Current', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9548 variant: "caption"
9549 }, (0, _i18n.__)('Output', 'elementor')))), /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9550 disabled: isLoading
9551 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9552 isGenerating: isLoading
9553 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9554 onUseImage: use,
9555 onEditImage: edit,
9556 images: data.result,
9557 aspectRatio: editImage.aspectRatio
9558 }) : /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9559 src: editImage.url,
9560 alt: editImage.alt,
9561 style: {
9562 width: editImage.width,
9563 height: editImage.height
9564 }
9565 }))));
9566 };
9567 var _default = Resize;
9568 exports["default"] = _default;
9569
9570 /***/ }),
9571
9572 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js":
9573 /*!*************************************************************************************************************!*\
9574 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js ***!
9575 \*************************************************************************************************************/
9576 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9577
9578 "use strict";
9579
9580
9581 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9582 Object.defineProperty(exports, "__esModule", ({
9583 value: true
9584 }));
9585 exports["default"] = void 0;
9586 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9587 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9588 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
9589 var VariationsPlaceholder = function VariationsPlaceholder() {
9590 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
9591 sx: {
9592 overflowY: 'scroll'
9593 },
9594 flexGrow: 1
9595 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9596 display: "grid",
9597 gridTemplateColumns: "repeat(2, 1fr)",
9598 gap: 3
9599 }, Array(4).fill(true).map(function (_, index) {
9600 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
9601 key: "placeholder-".concat(index),
9602 display: "flex",
9603 justifyContent: "center",
9604 alignItems: "center",
9605 sx: {
9606 bgcolor: 'action.selected',
9607 height: 336
9608 }
9609 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
9610 color: "secondary",
9611 sx: {
9612 fontSize: 36
9613 }
9614 }));
9615 })));
9616 };
9617 VariationsPlaceholder.propTypes = {};
9618 var _default = VariationsPlaceholder;
9619 exports["default"] = _default;
9620
9621 /***/ }),
9622
9623 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js":
9624 /*!****************************************************************************************************!*\
9625 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js ***!
9626 \****************************************************************************************************/
9627 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9628
9629 "use strict";
9630
9631
9632 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9633 Object.defineProperty(exports, "__esModule", ({
9634 value: true
9635 }));
9636 exports["default"] = void 0;
9637 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9638 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9639 var useImageToImage = function useImageToImage(initialValue) {
9640 var fetchAction = function fetchAction(prompt, promptSettings, image) {
9641 return (0, _api.getImageToImageGeneration)(prompt, promptSettings, image);
9642 };
9643 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9644 };
9645 var _default = useImageToImage;
9646 exports["default"] = _default;
9647
9648 /***/ }),
9649
9650 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js":
9651 /*!*********************************************************************************!*\
9652 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js ***!
9653 \*********************************************************************************/
9654 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9655
9656 "use strict";
9657
9658
9659 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9660 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9661 Object.defineProperty(exports, "__esModule", ({
9662 value: true
9663 }));
9664 exports["default"] = void 0;
9665 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9666 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9667 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9668 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9669 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9670 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9671 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9672 var _imageStrengthSlider = _interopRequireDefault(__webpack_require__(/*! ../../components/image-strength-slider */ "../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js"));
9673 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9674 var _imageTypeSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-type-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js"));
9675 var _imageStyleSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-style-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js"));
9676 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
9677 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
9678 var _generateImagesSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-images-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js"));
9679 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9680 var _variationsPlaceholder = _interopRequireDefault(__webpack_require__(/*! ./components/variations-placeholder */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js"));
9681 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"));
9682 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9683 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9684 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9685 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); }
9686 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; }
9687 var IMAGE_WEIGHT_DEFAULT = 45;
9688 var Variations = function Variations() {
9689 var _data$result;
9690 var _useState = (0, _react.useState)(''),
9691 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9692 prompt = _useState2[0],
9693 setPrompt = _useState2[1];
9694 var _useEditImage = (0, _editImageContext.useEditImage)(),
9695 editImage = _useEditImage.editImage,
9696 initialAspectRatio = _useEditImage.aspectRatio;
9697 var _usePromptSettings = (0, _usePromptSettings2.default)({
9698 aspectRatio: initialAspectRatio,
9699 imageWeight: IMAGE_WEIGHT_DEFAULT
9700 }),
9701 settings = _usePromptSettings.settings,
9702 updateSettings = _usePromptSettings.updateSettings;
9703 var _useImageToImage = (0, _useImageToImage2.default)(),
9704 data = _useImageToImage.data,
9705 send = _useImageToImage.send,
9706 isGenerating = _useImageToImage.isLoading,
9707 error = _useImageToImage.error;
9708 var _useImageActions = (0, _useImageActions2.default)(),
9709 use = _useImageActions.use,
9710 edit = _useImageActions.edit,
9711 isUploading = _useImageActions.isLoading;
9712 var isLoading = isGenerating || isUploading;
9713 var generatedAspectRatio = (0, _react.useMemo)(function () {
9714 return settings[_usePromptSettings2.IMAGE_RATIO];
9715 }, [data === null || data === void 0 ? void 0 : data.result]);
9716 var handleSubmit = function handleSubmit(event) {
9717 event.preventDefault();
9718 send(prompt, settings, editImage);
9719 };
9720 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, {
9721 primary: (0, _i18n.__)('Variations', 'elementor'),
9722 secondary: (0, _i18n.__)('Create new versions of the original image.', 'elementor')
9723 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9724 error: error,
9725 onRetry: handleSubmit
9726 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9727 onSubmit: handleSubmit
9728 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9729 sx: {
9730 display: 'flex',
9731 alignItems: 'center',
9732 justifyContent: 'center',
9733 bgcolor: 'action.selected'
9734 }
9735 }, /*#__PURE__*/_react.default.createElement("img", {
9736 src: (editImage === null || editImage === void 0 ? void 0 : editImage.image_url) || (editImage === null || editImage === void 0 ? void 0 : editImage.url),
9737 alt: prompt,
9738 style: {
9739 width: 'auto',
9740 height: 'auto',
9741 maxWidth: '100%',
9742 maxHeight: 166,
9743 objectFit: 'contained'
9744 }
9745 })), /*#__PURE__*/_react.default.createElement(_imageStrengthSlider.default, {
9746 disabled: isLoading,
9747 defaultValue: IMAGE_WEIGHT_DEFAULT,
9748 onChange: function onChange(event) {
9749 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STRENGTH, event.target.value));
9750 }
9751 }), /*#__PURE__*/_react.default.createElement(_promptField.default, {
9752 value: prompt,
9753 disabled: isLoading,
9754 placeholder: (0, _i18n.__)('describe your image', 'elementor'),
9755 onChange: setPrompt
9756 }), /*#__PURE__*/_react.default.createElement(_imageTypeSelect.default, {
9757 disabled: isLoading,
9758 value: settings[_usePromptSettings2.IMAGE_TYPE],
9759 onChange: function onChange(event) {
9760 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_TYPE, event.target.value));
9761 }
9762 }), /*#__PURE__*/_react.default.createElement(_imageStyleSelect.default, {
9763 type: settings[_usePromptSettings2.IMAGE_TYPE],
9764 value: settings[_usePromptSettings2.IMAGE_STYLE],
9765 disabled: isLoading || !settings[_usePromptSettings2.IMAGE_TYPE] || false,
9766 onChange: function onChange(event) {
9767 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STYLE, event.target.value));
9768 }
9769 }), /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
9770 disabled: isLoading,
9771 value: settings[_usePromptSettings2.IMAGE_RATIO],
9772 onChange: function onChange(event) {
9773 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
9774 }
9775 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9776 gap: 2,
9777 sx: {
9778 my: 2.5
9779 }
9780 }, (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, {
9781 disabled: isLoading || '' === prompt
9782 }) : /*#__PURE__*/_react.default.createElement(_generateImagesSubmit.default, {
9783 disabled: isLoading || '' === prompt
9784 })))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9785 isGenerating: isLoading
9786 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9787 images: data.result,
9788 aspectRatio: generatedAspectRatio,
9789 onUseImage: use,
9790 onEditImage: edit
9791 }) : /*#__PURE__*/_react.default.createElement(_variationsPlaceholder.default, null)));
9792 };
9793 Variations.propTypes = {};
9794 var _default = Variations;
9795 exports["default"] = _default;
9796
9797 /***/ }),
9798
9799 /***/ "../modules/ai/assets/js/editor/pages/form-text/index.js":
9800 /*!***************************************************************!*\
9801 !*** ../modules/ai/assets/js/editor/pages/form-text/index.js ***!
9802 \***************************************************************/
9803 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9804
9805 "use strict";
9806
9807
9808 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9809 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9810 Object.defineProperty(exports, "__esModule", ({
9811 value: true
9812 }));
9813 exports["default"] = void 0;
9814 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9815 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
9816 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
9817 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9818 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9819 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9820 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9821 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
9822 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
9823 var _promptSearch = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-search */ "../modules/ai/assets/js/editor/components/prompt-search.js"));
9824 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
9825 var _promptSuggestions = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-suggestions */ "../modules/ai/assets/js/editor/components/prompt-suggestions.js"));
9826 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
9827 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
9828 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
9829 var _promptAction = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-action */ "../modules/ai/assets/js/editor/components/prompt-action.js"));
9830 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
9831 var _useTextPrompt2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-text-prompt */ "../modules/ai/assets/js/editor/hooks/use-text-prompt.js"));
9832 var _actionsData = __webpack_require__(/*! ../../actions-data */ "../modules/ai/assets/js/editor/actions-data.js");
9833 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");
9834 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); }
9835 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; }
9836 var promptActions = [{
9837 label: (0, _i18n.__)('Simplify language', 'elementor'),
9838 icon: /*#__PURE__*/_react.default.createElement(_icons.MessageIcon, {
9839 fontSize: "small"
9840 }),
9841 value: 'Simplify the language of the following message'
9842 }, {
9843 label: (0, _i18n.__)('Make it longer', 'elementor'),
9844 icon: /*#__PURE__*/_react.default.createElement(_icons.ExpandIcon, {
9845 fontSize: "small"
9846 }),
9847 value: 'Make the following message longer'
9848 }, {
9849 label: (0, _i18n.__)('Make it shorter', 'elementor'),
9850 icon: /*#__PURE__*/_react.default.createElement(_icons.ShrinkIcon, {
9851 fontSize: "small"
9852 }),
9853 value: 'Make the following message shorter'
9854 }, {
9855 label: (0, _i18n.__)('Fix spelling & grammar', 'elementor'),
9856 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
9857 fontSize: "small"
9858 }),
9859 value: 'Fix the spelling and grammar of the following message'
9860 }];
9861 var promptInstructions = [{
9862 label: (0, _i18n.__)('Change tone', 'elementor'),
9863 options: _actionsData.vocalTones,
9864 getInstruction: function getInstruction(value) {
9865 return "Change the tone of the following message to ".concat(value);
9866 }
9867 }, {
9868 label: (0, _i18n.__)('Translate to', 'elementor'),
9869 options: _actionsData.translateLanguages,
9870 getInstruction: function getInstruction(value) {
9871 return "Translate the following message to ".concat(value);
9872 }
9873 }];
9874 var FormText = function FormText(_ref) {
9875 var type = _ref.type,
9876 onClose = _ref.onClose,
9877 getControlValue = _ref.getControlValue,
9878 setControlValue = _ref.setControlValue,
9879 additionalOptions = _ref.additionalOptions,
9880 credits = _ref.credits,
9881 children = _ref.children;
9882 var initialValue = getControlValue() === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultValue) ? '' : getControlValue();
9883 var _useTextPrompt = (0, _useTextPrompt2.default)({
9884 result: initialValue,
9885 credits: credits
9886 }),
9887 data = _useTextPrompt.data,
9888 isLoading = _useTextPrompt.isLoading,
9889 error = _useTextPrompt.error,
9890 setResult = _useTextPrompt.setResult,
9891 reset = _useTextPrompt.reset,
9892 send = _useTextPrompt.send,
9893 sendUsageData = _useTextPrompt.sendUsageData;
9894 var _useState = (0, _react.useState)(''),
9895 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9896 prompt = _useState2[0],
9897 setPrompt = _useState2[1];
9898 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
9899 type: _promptHistoryActionContext.ACTION_TYPES.REUSE,
9900 handler: function handler(action) {
9901 reset();
9902 setPrompt(action.data);
9903 }
9904 }, {
9905 type: _promptHistoryActionContext.ACTION_TYPES.EDIT,
9906 handler: function handler(action) {
9907 setResult(action.data);
9908 }
9909 }]);
9910 var searchField = (0, _react.useRef)(null);
9911 var resultField = (0, _react.useRef)(null);
9912 var lastRun = (0, _react.useRef)(function () {});
9913 var autocompleteItems = 'textarea' === type ? _actionsData.textareaAutocomplete : _actionsData.textAutocomplete;
9914 var showSuggestions = !prompt;
9915 var handleSubmit = function handleSubmit(event) {
9916 event.preventDefault();
9917 lastRun.current = function () {
9918 return send(prompt);
9919 };
9920 lastRun.current();
9921 };
9922 var handleCustomInstruction = /*#__PURE__*/function () {
9923 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(instruction) {
9924 return _regenerator.default.wrap(function _callee$(_context) {
9925 while (1) switch (_context.prev = _context.next) {
9926 case 0:
9927 lastRun.current = function () {
9928 return send(resultField.current.value, instruction);
9929 };
9930 lastRun.current();
9931 case 2:
9932 case "end":
9933 return _context.stop();
9934 }
9935 }, _callee);
9936 }));
9937 return function handleCustomInstruction(_x) {
9938 return _ref2.apply(this, arguments);
9939 };
9940 }();
9941 var handleSuggestion = function handleSuggestion(suggestion) {
9942 setPrompt(suggestion + ' ');
9943 searchField.current.focus();
9944 };
9945 var applyPrompt = function applyPrompt() {
9946 sendUsageData();
9947 setControlValue(resultField.current.value);
9948 onClose();
9949 };
9950 if (isLoading) {
9951 return /*#__PURE__*/_react.default.createElement(_loader.default, null);
9952 }
9953 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
9954 error: error,
9955 onRetry: lastRun.current,
9956 sx: {
9957 mb: 2.5
9958 }
9959 }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
9960 component: "form",
9961 onSubmit: handleSubmit
9962 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9963 sx: {
9964 mb: 2.5
9965 }
9966 }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, {
9967 ref: searchField,
9968 placeholder: (0, _i18n.__)('Describe the text and tone you want to use...', 'elementor'),
9969 name: "prompt",
9970 value: prompt,
9971 onChange: function onChange(event) {
9972 return setPrompt(event.target.value);
9973 }
9974 })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, {
9975 suggestions: autocompleteItems,
9976 onSelect: handleSuggestion,
9977 suggestionFilter: function suggestionFilter(suggestion) {
9978 return suggestion + '...';
9979 }
9980 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
9981 libraryLink: "https://go.elementor.com/ai-prompt-library-text/"
9982 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9983 direction: "row",
9984 alignItems: "center",
9985 sx: {
9986 py: 1.5,
9987 mt: 4
9988 }
9989 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9990 direction: "row",
9991 justifyContent: "flex-end",
9992 flexGrow: 1
9993 }, /*#__PURE__*/_react.default.createElement(_generateButton.default, null, (0, _i18n.__)('Generate text', 'elementor'))))), data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
9994 sx: {
9995 mt: 1
9996 }
9997 }, /*#__PURE__*/_react.default.createElement(_textarea.default, {
9998 fullWidth: true,
9999 ref: resultField,
10000 value: data.result,
10001 helperText: (0, _i18n.__)('Text generated by AI may be inaccurate or offensive.', 'elementor'),
10002 onChange: function onChange(event) {
10003 return setResult(event.target.value);
10004 }
10005 }), /*#__PURE__*/_react.default.createElement(_ui.Grid, {
10006 container: true,
10007 spacing: 1,
10008 sx: {
10009 mt: 2.5
10010 }
10011 }, promptActions.map(function (_ref3) {
10012 var label = _ref3.label,
10013 icon = _ref3.icon,
10014 value = _ref3.value;
10015 return /*#__PURE__*/_react.default.createElement(_ui.Grid, {
10016 item: true,
10017 key: label
10018 }, /*#__PURE__*/_react.default.createElement(_promptAction.default, {
10019 label: label,
10020 icon: icon,
10021 onClick: function onClick() {
10022 return handleCustomInstruction(value);
10023 }
10024 }));
10025 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10026 direction: "row",
10027 alignItems: "center",
10028 spacing: 1,
10029 sx: {
10030 mt: 2.5
10031 }
10032 }, promptInstructions.map(function (_ref4) {
10033 var label = _ref4.label,
10034 options = _ref4.options,
10035 getInstruction = _ref4.getInstruction;
10036 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, {
10037 key: label,
10038 label: label,
10039 options: options,
10040 onChange: function onChange(event) {
10041 return handleCustomInstruction(getInstruction(event.target.value));
10042 }
10043 });
10044 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10045 direction: "row",
10046 alignItems: "center",
10047 sx: {
10048 my: 1
10049 }
10050 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10051 direction: "row",
10052 gap: 1,
10053 justifyContent: "flex-end",
10054 flexGrow: 1
10055 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
10056 size: "small",
10057 color: "secondary",
10058 variant: "text",
10059 onClick: reset
10060 }, (0, _i18n.__)('New prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
10061 size: "small",
10062 variant: "contained",
10063 color: "primary",
10064 onClick: applyPrompt
10065 }, (0, _i18n.__)('Use text', 'elementor'))))));
10066 };
10067 FormText.propTypes = {
10068 type: _propTypes.default.string.isRequired,
10069 controlType: _propTypes.default.string,
10070 onClose: _propTypes.default.func.isRequired,
10071 getControlValue: _propTypes.default.func.isRequired,
10072 setControlValue: _propTypes.default.func.isRequired,
10073 additionalOptions: _propTypes.default.object,
10074 credits: _propTypes.default.number,
10075 usagePercentage: _propTypes.default.number,
10076 children: _propTypes.default.node
10077 };
10078 var _default = FormText;
10079 exports["default"] = _default;
10080
10081 /***/ }),
10082
10083 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
10084 /*!*****************************************************************!*\
10085 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
10086 \*****************************************************************/
10087 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10088
10089 "use strict";
10090
10091
10092 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10093 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
10094 Object.defineProperty(exports, "__esModule", ({
10095 value: true
10096 }));
10097 exports["default"] = void 0;
10098 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
10099 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10100 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10101 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
10102 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
10103 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10104 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
10105 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
10106 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
10107 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); }
10108 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; }
10109 var GetStarted = function GetStarted(_ref) {
10110 var onSuccess = _ref.onSuccess;
10111 var _useState = (0, _react.useState)(false),
10112 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
10113 isTermsChecked = _useState2[0],
10114 setIsTermsChecked = _useState2[1];
10115 var onGetStartedClick = /*#__PURE__*/function () {
10116 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
10117 return _regenerator.default.wrap(function _callee$(_context) {
10118 while (1) switch (_context.prev = _context.next) {
10119 case 0:
10120 _context.next = 2;
10121 return (0, _api.setGetStarted)();
10122 case 2:
10123 onSuccess();
10124 case 3:
10125 case "end":
10126 return _context.stop();
10127 }
10128 }, _callee);
10129 }));
10130 return function onGetStartedClick() {
10131 return _ref2.apply(this, arguments);
10132 };
10133 }();
10134 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10135 alignItems: "center",
10136 gap: 1.5
10137 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
10138 sx: {
10139 color: 'text.primary',
10140 fontSize: '60px',
10141 mb: 1
10142 }
10143 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10144 variant: "h4",
10145 sx: {
10146 color: 'text.primary'
10147 }
10148 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10149 variant: "body2"
10150 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10151 direction: "row",
10152 gap: 1.5,
10153 alignItems: "flex-start"
10154 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
10155 id: "e-ai-terms-approval",
10156 color: "secondary",
10157 sx: {
10158 p: 0
10159 },
10160 onChange: function onChange() {
10161 return setIsTermsChecked(function (prevState) {
10162 return !prevState;
10163 });
10164 }
10165 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10166 variant: "caption",
10167 sx: {
10168 maxWidth: 520
10169 },
10170 component: "label",
10171 htmlFor: "e-ai-terms-approval"
10172 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
10173 href: "https://go.elementor.com/ai-terms/",
10174 target: "_blank",
10175 color: "info.main"
10176 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
10177 href: "https://go.elementor.com/ai-privacy-policy/",
10178 target: "_blank",
10179 color: "info.main"
10180 }, (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, {
10181 disabled: !isTermsChecked,
10182 variant: "contained",
10183 onClick: onGetStartedClick,
10184 sx: {
10185 mt: 1,
10186 '&:hover': {
10187 color: 'primary.contrastText'
10188 }
10189 }
10190 }, (0, _i18n.__)('Get Started', 'elementor')));
10191 };
10192 GetStarted.propTypes = {
10193 onSuccess: _propTypes.default.func.isRequired
10194 };
10195 var _default = GetStarted;
10196 exports["default"] = _default;
10197
10198 /***/ }),
10199
10200 /***/ "../node_modules/clsx/dist/clsx.m.js":
10201 /*!*******************************************!*\
10202 !*** ../node_modules/clsx/dist/clsx.m.js ***!
10203 \*******************************************/
10204 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10205
10206 "use strict";
10207 __webpack_require__.r(__webpack_exports__);
10208 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10209 /* harmony export */ clsx: () => (/* binding */ clsx),
10210 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10211 /* harmony export */ });
10212 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);
10213
10214 /***/ }),
10215
10216 /***/ "../node_modules/debug/src/browser.js":
10217 /*!********************************************!*\
10218 !*** ../node_modules/debug/src/browser.js ***!
10219 \********************************************/
10220 /***/ ((module, exports, __webpack_require__) => {
10221
10222 /* eslint-env browser */
10223
10224 /**
10225 * This is the web browser implementation of `debug()`.
10226 */
10227
10228 exports.formatArgs = formatArgs;
10229 exports.save = save;
10230 exports.load = load;
10231 exports.useColors = useColors;
10232 exports.storage = localstorage();
10233 exports.destroy = (() => {
10234 let warned = false;
10235
10236 return () => {
10237 if (!warned) {
10238 warned = true;
10239 console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
10240 }
10241 };
10242 })();
10243
10244 /**
10245 * Colors.
10246 */
10247
10248 exports.colors = [
10249 '#0000CC',
10250 '#0000FF',
10251 '#0033CC',
10252 '#0033FF',
10253 '#0066CC',
10254 '#0066FF',
10255 '#0099CC',
10256 '#0099FF',
10257 '#00CC00',
10258 '#00CC33',
10259 '#00CC66',
10260 '#00CC99',
10261 '#00CCCC',
10262 '#00CCFF',
10263 '#3300CC',
10264 '#3300FF',
10265 '#3333CC',
10266 '#3333FF',
10267 '#3366CC',
10268 '#3366FF',
10269 '#3399CC',
10270 '#3399FF',
10271 '#33CC00',
10272 '#33CC33',
10273 '#33CC66',
10274 '#33CC99',
10275 '#33CCCC',
10276 '#33CCFF',
10277 '#6600CC',
10278 '#6600FF',
10279 '#6633CC',
10280 '#6633FF',
10281 '#66CC00',
10282 '#66CC33',
10283 '#9900CC',
10284 '#9900FF',
10285 '#9933CC',
10286 '#9933FF',
10287 '#99CC00',
10288 '#99CC33',
10289 '#CC0000',
10290 '#CC0033',
10291 '#CC0066',
10292 '#CC0099',
10293 '#CC00CC',
10294 '#CC00FF',
10295 '#CC3300',
10296 '#CC3333',
10297 '#CC3366',
10298 '#CC3399',
10299 '#CC33CC',
10300 '#CC33FF',
10301 '#CC6600',
10302 '#CC6633',
10303 '#CC9900',
10304 '#CC9933',
10305 '#CCCC00',
10306 '#CCCC33',
10307 '#FF0000',
10308 '#FF0033',
10309 '#FF0066',
10310 '#FF0099',
10311 '#FF00CC',
10312 '#FF00FF',
10313 '#FF3300',
10314 '#FF3333',
10315 '#FF3366',
10316 '#FF3399',
10317 '#FF33CC',
10318 '#FF33FF',
10319 '#FF6600',
10320 '#FF6633',
10321 '#FF9900',
10322 '#FF9933',
10323 '#FFCC00',
10324 '#FFCC33'
10325 ];
10326
10327 /**
10328 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
10329 * and the Firebug extension (any Firefox version) are known
10330 * to support "%c" CSS customizations.
10331 *
10332 * TODO: add a `localStorage` variable to explicitly enable/disable colors
10333 */
10334
10335 // eslint-disable-next-line complexity
10336 function useColors() {
10337 // NB: In an Electron preload script, document will be defined but not fully
10338 // initialized. Since we know we're in Chrome, we'll just detect this case
10339 // explicitly
10340 if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
10341 return true;
10342 }
10343
10344 // Internet Explorer and Edge do not support colors.
10345 if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
10346 return false;
10347 }
10348
10349 // Is webkit? http://stackoverflow.com/a/16459606/376773
10350 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
10351 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
10352 // Is firebug? http://stackoverflow.com/a/398120/376773
10353 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
10354 // Is firefox >= v31?
10355 // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
10356 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
10357 // Double check webkit in userAgent just in case we are in a worker
10358 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
10359 }
10360
10361 /**
10362 * Colorize log arguments if enabled.
10363 *
10364 * @api public
10365 */
10366
10367 function formatArgs(args) {
10368 args[0] = (this.useColors ? '%c' : '') +
10369 this.namespace +
10370 (this.useColors ? ' %c' : ' ') +
10371 args[0] +
10372 (this.useColors ? '%c ' : ' ') +
10373 '+' + module.exports.humanize(this.diff);
10374
10375 if (!this.useColors) {
10376 return;
10377 }
10378
10379 const c = 'color: ' + this.color;
10380 args.splice(1, 0, c, 'color: inherit');
10381
10382 // The final "%c" is somewhat tricky, because there could be other
10383 // arguments passed either before or after the %c, so we need to
10384 // figure out the correct index to insert the CSS into
10385 let index = 0;
10386 let lastC = 0;
10387 args[0].replace(/%[a-zA-Z%]/g, match => {
10388 if (match === '%%') {
10389 return;
10390 }
10391 index++;
10392 if (match === '%c') {
10393 // We only are interested in the *last* %c
10394 // (the user may have provided their own)
10395 lastC = index;
10396 }
10397 });
10398
10399 args.splice(lastC, 0, c);
10400 }
10401
10402 /**
10403 * Invokes `console.debug()` when available.
10404 * No-op when `console.debug` is not a "function".
10405 * If `console.debug` is not available, falls back
10406 * to `console.log`.
10407 *
10408 * @api public
10409 */
10410 exports.log = console.debug || console.log || (() => {});
10411
10412 /**
10413 * Save `namespaces`.
10414 *
10415 * @param {String} namespaces
10416 * @api private
10417 */
10418 function save(namespaces) {
10419 try {
10420 if (namespaces) {
10421 exports.storage.setItem('debug', namespaces);
10422 } else {
10423 exports.storage.removeItem('debug');
10424 }
10425 } catch (error) {
10426 // Swallow
10427 // XXX (@Qix-) should we be logging these?
10428 }
10429 }
10430
10431 /**
10432 * Load `namespaces`.
10433 *
10434 * @return {String} returns the previously persisted debug modes
10435 * @api private
10436 */
10437 function load() {
10438 let r;
10439 try {
10440 r = exports.storage.getItem('debug');
10441 } catch (error) {
10442 // Swallow
10443 // XXX (@Qix-) should we be logging these?
10444 }
10445
10446 // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
10447 if (!r && typeof process !== 'undefined' && 'env' in process) {
10448 r = process.env.DEBUG;
10449 }
10450
10451 return r;
10452 }
10453
10454 /**
10455 * Localstorage attempts to return the localstorage.
10456 *
10457 * This is necessary because safari throws
10458 * when a user disables cookies/localstorage
10459 * and you attempt to access it.
10460 *
10461 * @return {LocalStorage}
10462 * @api private
10463 */
10464
10465 function localstorage() {
10466 try {
10467 // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
10468 // The Browser also has localStorage in the global context.
10469 return localStorage;
10470 } catch (error) {
10471 // Swallow
10472 // XXX (@Qix-) should we be logging these?
10473 }
10474 }
10475
10476 module.exports = __webpack_require__(/*! ./common */ "../node_modules/debug/src/common.js")(exports);
10477
10478 const {formatters} = module.exports;
10479
10480 /**
10481 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
10482 */
10483
10484 formatters.j = function (v) {
10485 try {
10486 return JSON.stringify(v);
10487 } catch (error) {
10488 return '[UnexpectedJSONParseError]: ' + error.message;
10489 }
10490 };
10491
10492
10493 /***/ }),
10494
10495 /***/ "../node_modules/debug/src/common.js":
10496 /*!*******************************************!*\
10497 !*** ../node_modules/debug/src/common.js ***!
10498 \*******************************************/
10499 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10500
10501
10502 /**
10503 * This is the common logic for both the Node.js and web browser
10504 * implementations of `debug()`.
10505 */
10506
10507 function setup(env) {
10508 createDebug.debug = createDebug;
10509 createDebug.default = createDebug;
10510 createDebug.coerce = coerce;
10511 createDebug.disable = disable;
10512 createDebug.enable = enable;
10513 createDebug.enabled = enabled;
10514 createDebug.humanize = __webpack_require__(/*! ms */ "../node_modules/ms/index.js");
10515 createDebug.destroy = destroy;
10516
10517 Object.keys(env).forEach(key => {
10518 createDebug[key] = env[key];
10519 });
10520
10521 /**
10522 * The currently active debug mode names, and names to skip.
10523 */
10524
10525 createDebug.names = [];
10526 createDebug.skips = [];
10527
10528 /**
10529 * Map of special "%n" handling functions, for the debug "format" argument.
10530 *
10531 * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
10532 */
10533 createDebug.formatters = {};
10534
10535 /**
10536 * Selects a color for a debug namespace
10537 * @param {String} namespace The namespace string for the debug instance to be colored
10538 * @return {Number|String} An ANSI color code for the given namespace
10539 * @api private
10540 */
10541 function selectColor(namespace) {
10542 let hash = 0;
10543
10544 for (let i = 0; i < namespace.length; i++) {
10545 hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
10546 hash |= 0; // Convert to 32bit integer
10547 }
10548
10549 return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
10550 }
10551 createDebug.selectColor = selectColor;
10552
10553 /**
10554 * Create a debugger with the given `namespace`.
10555 *
10556 * @param {String} namespace
10557 * @return {Function}
10558 * @api public
10559 */
10560 function createDebug(namespace) {
10561 let prevTime;
10562 let enableOverride = null;
10563 let namespacesCache;
10564 let enabledCache;
10565
10566 function debug(...args) {
10567 // Disabled?
10568 if (!debug.enabled) {
10569 return;
10570 }
10571
10572 const self = debug;
10573
10574 // Set `diff` timestamp
10575 const curr = Number(new Date());
10576 const ms = curr - (prevTime || curr);
10577 self.diff = ms;
10578 self.prev = prevTime;
10579 self.curr = curr;
10580 prevTime = curr;
10581
10582 args[0] = createDebug.coerce(args[0]);
10583
10584 if (typeof args[0] !== 'string') {
10585 // Anything else let's inspect with %O
10586 args.unshift('%O');
10587 }
10588
10589 // Apply any `formatters` transformations
10590 let index = 0;
10591 args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
10592 // If we encounter an escaped % then don't increase the array index
10593 if (match === '%%') {
10594 return '%';
10595 }
10596 index++;
10597 const formatter = createDebug.formatters[format];
10598 if (typeof formatter === 'function') {
10599 const val = args[index];
10600 match = formatter.call(self, val);
10601
10602 // Now we need to remove `args[index]` since it's inlined in the `format`
10603 args.splice(index, 1);
10604 index--;
10605 }
10606 return match;
10607 });
10608
10609 // Apply env-specific formatting (colors, etc.)
10610 createDebug.formatArgs.call(self, args);
10611
10612 const logFn = self.log || createDebug.log;
10613 logFn.apply(self, args);
10614 }
10615
10616 debug.namespace = namespace;
10617 debug.useColors = createDebug.useColors();
10618 debug.color = createDebug.selectColor(namespace);
10619 debug.extend = extend;
10620 debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.
10621
10622 Object.defineProperty(debug, 'enabled', {
10623 enumerable: true,
10624 configurable: false,
10625 get: () => {
10626 if (enableOverride !== null) {
10627 return enableOverride;
10628 }
10629 if (namespacesCache !== createDebug.namespaces) {
10630 namespacesCache = createDebug.namespaces;
10631 enabledCache = createDebug.enabled(namespace);
10632 }
10633
10634 return enabledCache;
10635 },
10636 set: v => {
10637 enableOverride = v;
10638 }
10639 });
10640
10641 // Env-specific initialization logic for debug instances
10642 if (typeof createDebug.init === 'function') {
10643 createDebug.init(debug);
10644 }
10645
10646 return debug;
10647 }
10648
10649 function extend(namespace, delimiter) {
10650 const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
10651 newDebug.log = this.log;
10652 return newDebug;
10653 }
10654
10655 /**
10656 * Enables a debug mode by namespaces. This can include modes
10657 * separated by a colon and wildcards.
10658 *
10659 * @param {String} namespaces
10660 * @api public
10661 */
10662 function enable(namespaces) {
10663 createDebug.save(namespaces);
10664 createDebug.namespaces = namespaces;
10665
10666 createDebug.names = [];
10667 createDebug.skips = [];
10668
10669 let i;
10670 const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
10671 const len = split.length;
10672
10673 for (i = 0; i < len; i++) {
10674 if (!split[i]) {
10675 // ignore empty strings
10676 continue;
10677 }
10678
10679 namespaces = split[i].replace(/\*/g, '.*?');
10680
10681 if (namespaces[0] === '-') {
10682 createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));
10683 } else {
10684 createDebug.names.push(new RegExp('^' + namespaces + '$'));
10685 }
10686 }
10687 }
10688
10689 /**
10690 * Disable debug output.
10691 *
10692 * @return {String} namespaces
10693 * @api public
10694 */
10695 function disable() {
10696 const namespaces = [
10697 ...createDebug.names.map(toNamespace),
10698 ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
10699 ].join(',');
10700 createDebug.enable('');
10701 return namespaces;
10702 }
10703
10704 /**
10705 * Returns true if the given mode name is enabled, false otherwise.
10706 *
10707 * @param {String} name
10708 * @return {Boolean}
10709 * @api public
10710 */
10711 function enabled(name) {
10712 if (name[name.length - 1] === '*') {
10713 return true;
10714 }
10715
10716 let i;
10717 let len;
10718
10719 for (i = 0, len = createDebug.skips.length; i < len; i++) {
10720 if (createDebug.skips[i].test(name)) {
10721 return false;
10722 }
10723 }
10724
10725 for (i = 0, len = createDebug.names.length; i < len; i++) {
10726 if (createDebug.names[i].test(name)) {
10727 return true;
10728 }
10729 }
10730
10731 return false;
10732 }
10733
10734 /**
10735 * Convert regexp to namespace
10736 *
10737 * @param {RegExp} regxep
10738 * @return {String} namespace
10739 * @api private
10740 */
10741 function toNamespace(regexp) {
10742 return regexp.toString()
10743 .substring(2, regexp.toString().length - 2)
10744 .replace(/\.\*\?$/, '*');
10745 }
10746
10747 /**
10748 * Coerce `val`.
10749 *
10750 * @param {Mixed} val
10751 * @return {Mixed}
10752 * @api private
10753 */
10754 function coerce(val) {
10755 if (val instanceof Error) {
10756 return val.stack || val.message;
10757 }
10758 return val;
10759 }
10760
10761 /**
10762 * XXX DO NOT USE. This is a temporary stub function.
10763 * XXX It WILL be removed in the next major release.
10764 */
10765 function destroy() {
10766 console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
10767 }
10768
10769 createDebug.enable(createDebug.load());
10770
10771 return createDebug;
10772 }
10773
10774 module.exports = setup;
10775
10776
10777 /***/ }),
10778
10779 /***/ "../node_modules/extend/index.js":
10780 /*!***************************************!*\
10781 !*** ../node_modules/extend/index.js ***!
10782 \***************************************/
10783 /***/ ((module) => {
10784
10785 "use strict";
10786
10787
10788 var hasOwn = Object.prototype.hasOwnProperty;
10789 var toStr = Object.prototype.toString;
10790 var defineProperty = Object.defineProperty;
10791 var gOPD = Object.getOwnPropertyDescriptor;
10792
10793 var isArray = function isArray(arr) {
10794 if (typeof Array.isArray === 'function') {
10795 return Array.isArray(arr);
10796 }
10797
10798 return toStr.call(arr) === '[object Array]';
10799 };
10800
10801 var isPlainObject = function isPlainObject(obj) {
10802 if (!obj || toStr.call(obj) !== '[object Object]') {
10803 return false;
10804 }
10805
10806 var hasOwnConstructor = hasOwn.call(obj, 'constructor');
10807 var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
10808 // Not own constructor property must be Object
10809 if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
10810 return false;
10811 }
10812
10813 // Own properties are enumerated firstly, so to speed up,
10814 // if last one is own, then all properties are own.
10815 var key;
10816 for (key in obj) { /**/ }
10817
10818 return typeof key === 'undefined' || hasOwn.call(obj, key);
10819 };
10820
10821 // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
10822 var setProperty = function setProperty(target, options) {
10823 if (defineProperty && options.name === '__proto__') {
10824 defineProperty(target, options.name, {
10825 enumerable: true,
10826 configurable: true,
10827 value: options.newValue,
10828 writable: true
10829 });
10830 } else {
10831 target[options.name] = options.newValue;
10832 }
10833 };
10834
10835 // Return undefined instead of __proto__ if '__proto__' is not an own property
10836 var getProperty = function getProperty(obj, name) {
10837 if (name === '__proto__') {
10838 if (!hasOwn.call(obj, name)) {
10839 return void 0;
10840 } else if (gOPD) {
10841 // In early versions of node, obj['__proto__'] is buggy when obj has
10842 // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
10843 return gOPD(obj, name).value;
10844 }
10845 }
10846
10847 return obj[name];
10848 };
10849
10850 module.exports = function extend() {
10851 var options, name, src, copy, copyIsArray, clone;
10852 var target = arguments[0];
10853 var i = 1;
10854 var length = arguments.length;
10855 var deep = false;
10856
10857 // Handle a deep copy situation
10858 if (typeof target === 'boolean') {
10859 deep = target;
10860 target = arguments[1] || {};
10861 // skip the boolean and the target
10862 i = 2;
10863 }
10864 if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
10865 target = {};
10866 }
10867
10868 for (; i < length; ++i) {
10869 options = arguments[i];
10870 // Only deal with non-null/undefined values
10871 if (options != null) {
10872 // Extend the base object
10873 for (name in options) {
10874 src = getProperty(target, name);
10875 copy = getProperty(options, name);
10876
10877 // Prevent never-ending loop
10878 if (target !== copy) {
10879 // Recurse if we're merging plain objects or arrays
10880 if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
10881 if (copyIsArray) {
10882 copyIsArray = false;
10883 clone = src && isArray(src) ? src : [];
10884 } else {
10885 clone = src && isPlainObject(src) ? src : {};
10886 }
10887
10888 // Never move original objects, clone them
10889 setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
10890
10891 // Don't bring in undefined values
10892 } else if (typeof copy !== 'undefined') {
10893 setProperty(target, { name: name, newValue: copy });
10894 }
10895 }
10896 }
10897 }
10898 }
10899
10900 // Return the modified object
10901 return target;
10902 };
10903
10904
10905 /***/ }),
10906
10907 /***/ "../node_modules/inline-style-parser/index.js":
10908 /*!****************************************************!*\
10909 !*** ../node_modules/inline-style-parser/index.js ***!
10910 \****************************************************/
10911 /***/ ((module) => {
10912
10913 // http://www.w3.org/TR/CSS21/grammar.html
10914 // https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
10915 var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
10916
10917 var NEWLINE_REGEX = /\n/g;
10918 var WHITESPACE_REGEX = /^\s*/;
10919
10920 // declaration
10921 var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
10922 var COLON_REGEX = /^:\s*/;
10923 var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/;
10924 var SEMICOLON_REGEX = /^[;\s]*/;
10925
10926 // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
10927 var TRIM_REGEX = /^\s+|\s+$/g;
10928
10929 // strings
10930 var NEWLINE = '\n';
10931 var FORWARD_SLASH = '/';
10932 var ASTERISK = '*';
10933 var EMPTY_STRING = '';
10934
10935 // types
10936 var TYPE_COMMENT = 'comment';
10937 var TYPE_DECLARATION = 'declaration';
10938
10939 /**
10940 * @param {String} style
10941 * @param {Object} [options]
10942 * @return {Object[]}
10943 * @throws {TypeError}
10944 * @throws {Error}
10945 */
10946 module.exports = function(style, options) {
10947 if (typeof style !== 'string') {
10948 throw new TypeError('First argument must be a string');
10949 }
10950
10951 if (!style) return [];
10952
10953 options = options || {};
10954
10955 /**
10956 * Positional.
10957 */
10958 var lineno = 1;
10959 var column = 1;
10960
10961 /**
10962 * Update lineno and column based on `str`.
10963 *
10964 * @param {String} str
10965 */
10966 function updatePosition(str) {
10967 var lines = str.match(NEWLINE_REGEX);
10968 if (lines) lineno += lines.length;
10969 var i = str.lastIndexOf(NEWLINE);
10970 column = ~i ? str.length - i : column + str.length;
10971 }
10972
10973 /**
10974 * Mark position and patch `node.position`.
10975 *
10976 * @return {Function}
10977 */
10978 function position() {
10979 var start = { line: lineno, column: column };
10980 return function(node) {
10981 node.position = new Position(start);
10982 whitespace();
10983 return node;
10984 };
10985 }
10986
10987 /**
10988 * Store position information for a node.
10989 *
10990 * @constructor
10991 * @property {Object} start
10992 * @property {Object} end
10993 * @property {undefined|String} source
10994 */
10995 function Position(start) {
10996 this.start = start;
10997 this.end = { line: lineno, column: column };
10998 this.source = options.source;
10999 }
11000
11001 /**
11002 * Non-enumerable source string.
11003 */
11004 Position.prototype.content = style;
11005
11006 var errorsList = [];
11007
11008 /**
11009 * Error `msg`.
11010 *
11011 * @param {String} msg
11012 * @throws {Error}
11013 */
11014 function error(msg) {
11015 var err = new Error(
11016 options.source + ':' + lineno + ':' + column + ': ' + msg
11017 );
11018 err.reason = msg;
11019 err.filename = options.source;
11020 err.line = lineno;
11021 err.column = column;
11022 err.source = style;
11023
11024 if (options.silent) {
11025 errorsList.push(err);
11026 } else {
11027 throw err;
11028 }
11029 }
11030
11031 /**
11032 * Match `re` and return captures.
11033 *
11034 * @param {RegExp} re
11035 * @return {undefined|Array}
11036 */
11037 function match(re) {
11038 var m = re.exec(style);
11039 if (!m) return;
11040 var str = m[0];
11041 updatePosition(str);
11042 style = style.slice(str.length);
11043 return m;
11044 }
11045
11046 /**
11047 * Parse whitespace.
11048 */
11049 function whitespace() {
11050 match(WHITESPACE_REGEX);
11051 }
11052
11053 /**
11054 * Parse comments.
11055 *
11056 * @param {Object[]} [rules]
11057 * @return {Object[]}
11058 */
11059 function comments(rules) {
11060 var c;
11061 rules = rules || [];
11062 while ((c = comment())) {
11063 if (c !== false) {
11064 rules.push(c);
11065 }
11066 }
11067 return rules;
11068 }
11069
11070 /**
11071 * Parse comment.
11072 *
11073 * @return {Object}
11074 * @throws {Error}
11075 */
11076 function comment() {
11077 var pos = position();
11078 if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;
11079
11080 var i = 2;
11081 while (
11082 EMPTY_STRING != style.charAt(i) &&
11083 (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))
11084 ) {
11085 ++i;
11086 }
11087 i += 2;
11088
11089 if (EMPTY_STRING === style.charAt(i - 1)) {
11090 return error('End of comment missing');
11091 }
11092
11093 var str = style.slice(2, i - 2);
11094 column += 2;
11095 updatePosition(str);
11096 style = style.slice(i);
11097 column += 2;
11098
11099 return pos({
11100 type: TYPE_COMMENT,
11101 comment: str
11102 });
11103 }
11104
11105 /**
11106 * Parse declaration.
11107 *
11108 * @return {Object}
11109 * @throws {Error}
11110 */
11111 function declaration() {
11112 var pos = position();
11113
11114 // prop
11115 var prop = match(PROPERTY_REGEX);
11116 if (!prop) return;
11117 comment();
11118
11119 // :
11120 if (!match(COLON_REGEX)) return error("property missing ':'");
11121
11122 // val
11123 var val = match(VALUE_REGEX);
11124
11125 var ret = pos({
11126 type: TYPE_DECLARATION,
11127 property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),
11128 value: val
11129 ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))
11130 : EMPTY_STRING
11131 });
11132
11133 // ;
11134 match(SEMICOLON_REGEX);
11135
11136 return ret;
11137 }
11138
11139 /**
11140 * Parse declarations.
11141 *
11142 * @return {Object[]}
11143 */
11144 function declarations() {
11145 var decls = [];
11146
11147 comments(decls);
11148
11149 // declarations
11150 var decl;
11151 while ((decl = declaration())) {
11152 if (decl !== false) {
11153 decls.push(decl);
11154 comments(decls);
11155 }
11156 }
11157
11158 return decls;
11159 }
11160
11161 whitespace();
11162 return declarations();
11163 };
11164
11165 /**
11166 * Trim `str`.
11167 *
11168 * @param {String} str
11169 * @return {String}
11170 */
11171 function trim(str) {
11172 return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
11173 }
11174
11175
11176 /***/ }),
11177
11178 /***/ "../node_modules/is-buffer/index.js":
11179 /*!******************************************!*\
11180 !*** ../node_modules/is-buffer/index.js ***!
11181 \******************************************/
11182 /***/ ((module) => {
11183
11184 /*!
11185 * Determine if an object is a Buffer
11186 *
11187 * @author Feross Aboukhadijeh <https://feross.org>
11188 * @license MIT
11189 */
11190
11191 module.exports = function isBuffer (obj) {
11192 return obj != null && obj.constructor != null &&
11193 typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
11194 }
11195
11196
11197 /***/ }),
11198
11199 /***/ "../node_modules/ms/index.js":
11200 /*!***********************************!*\
11201 !*** ../node_modules/ms/index.js ***!
11202 \***********************************/
11203 /***/ ((module) => {
11204
11205 /**
11206 * Helpers.
11207 */
11208
11209 var s = 1000;
11210 var m = s * 60;
11211 var h = m * 60;
11212 var d = h * 24;
11213 var w = d * 7;
11214 var y = d * 365.25;
11215
11216 /**
11217 * Parse or format the given `val`.
11218 *
11219 * Options:
11220 *
11221 * - `long` verbose formatting [false]
11222 *
11223 * @param {String|Number} val
11224 * @param {Object} [options]
11225 * @throws {Error} throw an error if val is not a non-empty string or a number
11226 * @return {String|Number}
11227 * @api public
11228 */
11229
11230 module.exports = function(val, options) {
11231 options = options || {};
11232 var type = typeof val;
11233 if (type === 'string' && val.length > 0) {
11234 return parse(val);
11235 } else if (type === 'number' && isFinite(val)) {
11236 return options.long ? fmtLong(val) : fmtShort(val);
11237 }
11238 throw new Error(
11239 'val is not a non-empty string or a valid number. val=' +
11240 JSON.stringify(val)
11241 );
11242 };
11243
11244 /**
11245 * Parse the given `str` and return milliseconds.
11246 *
11247 * @param {String} str
11248 * @return {Number}
11249 * @api private
11250 */
11251
11252 function parse(str) {
11253 str = String(str);
11254 if (str.length > 100) {
11255 return;
11256 }
11257 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(
11258 str
11259 );
11260 if (!match) {
11261 return;
11262 }
11263 var n = parseFloat(match[1]);
11264 var type = (match[2] || 'ms').toLowerCase();
11265 switch (type) {
11266 case 'years':
11267 case 'year':
11268 case 'yrs':
11269 case 'yr':
11270 case 'y':
11271 return n * y;
11272 case 'weeks':
11273 case 'week':
11274 case 'w':
11275 return n * w;
11276 case 'days':
11277 case 'day':
11278 case 'd':
11279 return n * d;
11280 case 'hours':
11281 case 'hour':
11282 case 'hrs':
11283 case 'hr':
11284 case 'h':
11285 return n * h;
11286 case 'minutes':
11287 case 'minute':
11288 case 'mins':
11289 case 'min':
11290 case 'm':
11291 return n * m;
11292 case 'seconds':
11293 case 'second':
11294 case 'secs':
11295 case 'sec':
11296 case 's':
11297 return n * s;
11298 case 'milliseconds':
11299 case 'millisecond':
11300 case 'msecs':
11301 case 'msec':
11302 case 'ms':
11303 return n;
11304 default:
11305 return undefined;
11306 }
11307 }
11308
11309 /**
11310 * Short format for `ms`.
11311 *
11312 * @param {Number} ms
11313 * @return {String}
11314 * @api private
11315 */
11316
11317 function fmtShort(ms) {
11318 var msAbs = Math.abs(ms);
11319 if (msAbs >= d) {
11320 return Math.round(ms / d) + 'd';
11321 }
11322 if (msAbs >= h) {
11323 return Math.round(ms / h) + 'h';
11324 }
11325 if (msAbs >= m) {
11326 return Math.round(ms / m) + 'm';
11327 }
11328 if (msAbs >= s) {
11329 return Math.round(ms / s) + 's';
11330 }
11331 return ms + 'ms';
11332 }
11333
11334 /**
11335 * Long format for `ms`.
11336 *
11337 * @param {Number} ms
11338 * @return {String}
11339 * @api private
11340 */
11341
11342 function fmtLong(ms) {
11343 var msAbs = Math.abs(ms);
11344 if (msAbs >= d) {
11345 return plural(ms, msAbs, d, 'day');
11346 }
11347 if (msAbs >= h) {
11348 return plural(ms, msAbs, h, 'hour');
11349 }
11350 if (msAbs >= m) {
11351 return plural(ms, msAbs, m, 'minute');
11352 }
11353 if (msAbs >= s) {
11354 return plural(ms, msAbs, s, 'second');
11355 }
11356 return ms + ' ms';
11357 }
11358
11359 /**
11360 * Pluralization helper.
11361 */
11362
11363 function plural(ms, msAbs, n, name) {
11364 var isPlural = msAbs >= n * 1.5;
11365 return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
11366 }
11367
11368
11369 /***/ }),
11370
11371 /***/ "../node_modules/object-assign/index.js":
11372 /*!**********************************************!*\
11373 !*** ../node_modules/object-assign/index.js ***!
11374 \**********************************************/
11375 /***/ ((module) => {
11376
11377 "use strict";
11378 /*
11379 object-assign
11380 (c) Sindre Sorhus
11381 @license MIT
11382 */
11383
11384
11385 /* eslint-disable no-unused-vars */
11386 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
11387 var hasOwnProperty = Object.prototype.hasOwnProperty;
11388 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
11389
11390 function toObject(val) {
11391 if (val === null || val === undefined) {
11392 throw new TypeError('Object.assign cannot be called with null or undefined');
11393 }
11394
11395 return Object(val);
11396 }
11397
11398 function shouldUseNative() {
11399 try {
11400 if (!Object.assign) {
11401 return false;
11402 }
11403
11404 // Detect buggy property enumeration order in older V8 versions.
11405
11406 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
11407 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
11408 test1[5] = 'de';
11409 if (Object.getOwnPropertyNames(test1)[0] === '5') {
11410 return false;
11411 }
11412
11413 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11414 var test2 = {};
11415 for (var i = 0; i < 10; i++) {
11416 test2['_' + String.fromCharCode(i)] = i;
11417 }
11418 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
11419 return test2[n];
11420 });
11421 if (order2.join('') !== '0123456789') {
11422 return false;
11423 }
11424
11425 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11426 var test3 = {};
11427 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
11428 test3[letter] = letter;
11429 });
11430 if (Object.keys(Object.assign({}, test3)).join('') !==
11431 'abcdefghijklmnopqrst') {
11432 return false;
11433 }
11434
11435 return true;
11436 } catch (err) {
11437 // We don't expect any of the above to throw, but better to be safe.
11438 return false;
11439 }
11440 }
11441
11442 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
11443 var from;
11444 var to = toObject(target);
11445 var symbols;
11446
11447 for (var s = 1; s < arguments.length; s++) {
11448 from = Object(arguments[s]);
11449
11450 for (var key in from) {
11451 if (hasOwnProperty.call(from, key)) {
11452 to[key] = from[key];
11453 }
11454 }
11455
11456 if (getOwnPropertySymbols) {
11457 symbols = getOwnPropertySymbols(from);
11458 for (var i = 0; i < symbols.length; i++) {
11459 if (propIsEnumerable.call(from, symbols[i])) {
11460 to[symbols[i]] = from[symbols[i]];
11461 }
11462 }
11463 }
11464 }
11465
11466 return to;
11467 };
11468
11469
11470 /***/ }),
11471
11472 /***/ "../node_modules/prop-types/checkPropTypes.js":
11473 /*!****************************************************!*\
11474 !*** ../node_modules/prop-types/checkPropTypes.js ***!
11475 \****************************************************/
11476 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11477
11478 "use strict";
11479 /**
11480 * Copyright (c) 2013-present, Facebook, Inc.
11481 *
11482 * This source code is licensed under the MIT license found in the
11483 * LICENSE file in the root directory of this source tree.
11484 */
11485
11486
11487
11488 var printWarning = function() {};
11489
11490 if (true) {
11491 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
11492 var loggedTypeFailures = {};
11493 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
11494
11495 printWarning = function(text) {
11496 var message = 'Warning: ' + text;
11497 if (typeof console !== 'undefined') {
11498 console.error(message);
11499 }
11500 try {
11501 // --- Welcome to debugging React ---
11502 // This error was thrown as a convenience so that you can use this stack
11503 // to find the callsite that caused this warning to fire.
11504 throw new Error(message);
11505 } catch (x) { /**/ }
11506 };
11507 }
11508
11509 /**
11510 * Assert that the values match with the type specs.
11511 * Error messages are memorized and will only be shown once.
11512 *
11513 * @param {object} typeSpecs Map of name to a ReactPropType
11514 * @param {object} values Runtime values that need to be type-checked
11515 * @param {string} location e.g. "prop", "context", "child context"
11516 * @param {string} componentName Name of the component for error messages.
11517 * @param {?Function} getStack Returns the component stack.
11518 * @private
11519 */
11520 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
11521 if (true) {
11522 for (var typeSpecName in typeSpecs) {
11523 if (has(typeSpecs, typeSpecName)) {
11524 var error;
11525 // Prop type validation may throw. In case they do, we don't want to
11526 // fail the render phase where it didn't fail before. So we log it.
11527 // After these have been cleaned up, we'll let them throw.
11528 try {
11529 // This is intentionally an invariant that gets caught. It's the same
11530 // behavior as without this statement except with a better message.
11531 if (typeof typeSpecs[typeSpecName] !== 'function') {
11532 var err = Error(
11533 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
11534 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
11535 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
11536 );
11537 err.name = 'Invariant Violation';
11538 throw err;
11539 }
11540 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
11541 } catch (ex) {
11542 error = ex;
11543 }
11544 if (error && !(error instanceof Error)) {
11545 printWarning(
11546 (componentName || 'React class') + ': type specification of ' +
11547 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
11548 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
11549 'You may have forgotten to pass an argument to the type checker ' +
11550 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
11551 'shape all require an argument).'
11552 );
11553 }
11554 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
11555 // Only monitor this failure once because there tends to be a lot of the
11556 // same error.
11557 loggedTypeFailures[error.message] = true;
11558
11559 var stack = getStack ? getStack() : '';
11560
11561 printWarning(
11562 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
11563 );
11564 }
11565 }
11566 }
11567 }
11568 }
11569
11570 /**
11571 * Resets warning cache when testing.
11572 *
11573 * @private
11574 */
11575 checkPropTypes.resetWarningCache = function() {
11576 if (true) {
11577 loggedTypeFailures = {};
11578 }
11579 }
11580
11581 module.exports = checkPropTypes;
11582
11583
11584 /***/ }),
11585
11586 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
11587 /*!*************************************************************!*\
11588 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
11589 \*************************************************************/
11590 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11591
11592 "use strict";
11593 /**
11594 * Copyright (c) 2013-present, Facebook, Inc.
11595 *
11596 * This source code is licensed under the MIT license found in the
11597 * LICENSE file in the root directory of this source tree.
11598 */
11599
11600
11601
11602 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
11603 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
11604
11605 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
11606 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
11607 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
11608
11609 var printWarning = function() {};
11610
11611 if (true) {
11612 printWarning = function(text) {
11613 var message = 'Warning: ' + text;
11614 if (typeof console !== 'undefined') {
11615 console.error(message);
11616 }
11617 try {
11618 // --- Welcome to debugging React ---
11619 // This error was thrown as a convenience so that you can use this stack
11620 // to find the callsite that caused this warning to fire.
11621 throw new Error(message);
11622 } catch (x) {}
11623 };
11624 }
11625
11626 function emptyFunctionThatReturnsNull() {
11627 return null;
11628 }
11629
11630 module.exports = function(isValidElement, throwOnDirectAccess) {
11631 /* global Symbol */
11632 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
11633 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
11634
11635 /**
11636 * Returns the iterator method function contained on the iterable object.
11637 *
11638 * Be sure to invoke the function with the iterable as context:
11639 *
11640 * var iteratorFn = getIteratorFn(myIterable);
11641 * if (iteratorFn) {
11642 * var iterator = iteratorFn.call(myIterable);
11643 * ...
11644 * }
11645 *
11646 * @param {?object} maybeIterable
11647 * @return {?function}
11648 */
11649 function getIteratorFn(maybeIterable) {
11650 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
11651 if (typeof iteratorFn === 'function') {
11652 return iteratorFn;
11653 }
11654 }
11655
11656 /**
11657 * Collection of methods that allow declaration and validation of props that are
11658 * supplied to React components. Example usage:
11659 *
11660 * var Props = require('ReactPropTypes');
11661 * var MyArticle = React.createClass({
11662 * propTypes: {
11663 * // An optional string prop named "description".
11664 * description: Props.string,
11665 *
11666 * // A required enum prop named "category".
11667 * category: Props.oneOf(['News','Photos']).isRequired,
11668 *
11669 * // A prop named "dialog" that requires an instance of Dialog.
11670 * dialog: Props.instanceOf(Dialog).isRequired
11671 * },
11672 * render: function() { ... }
11673 * });
11674 *
11675 * A more formal specification of how these methods are used:
11676 *
11677 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
11678 * decl := ReactPropTypes.{type}(.isRequired)?
11679 *
11680 * Each and every declaration produces a function with the same signature. This
11681 * allows the creation of custom validation functions. For example:
11682 *
11683 * var MyLink = React.createClass({
11684 * propTypes: {
11685 * // An optional string or URI prop named "href".
11686 * href: function(props, propName, componentName) {
11687 * var propValue = props[propName];
11688 * if (propValue != null && typeof propValue !== 'string' &&
11689 * !(propValue instanceof URI)) {
11690 * return new Error(
11691 * 'Expected a string or an URI for ' + propName + ' in ' +
11692 * componentName
11693 * );
11694 * }
11695 * }
11696 * },
11697 * render: function() {...}
11698 * });
11699 *
11700 * @internal
11701 */
11702
11703 var ANONYMOUS = '<<anonymous>>';
11704
11705 // Important!
11706 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
11707 var ReactPropTypes = {
11708 array: createPrimitiveTypeChecker('array'),
11709 bigint: createPrimitiveTypeChecker('bigint'),
11710 bool: createPrimitiveTypeChecker('boolean'),
11711 func: createPrimitiveTypeChecker('function'),
11712 number: createPrimitiveTypeChecker('number'),
11713 object: createPrimitiveTypeChecker('object'),
11714 string: createPrimitiveTypeChecker('string'),
11715 symbol: createPrimitiveTypeChecker('symbol'),
11716
11717 any: createAnyTypeChecker(),
11718 arrayOf: createArrayOfTypeChecker,
11719 element: createElementTypeChecker(),
11720 elementType: createElementTypeTypeChecker(),
11721 instanceOf: createInstanceTypeChecker,
11722 node: createNodeChecker(),
11723 objectOf: createObjectOfTypeChecker,
11724 oneOf: createEnumTypeChecker,
11725 oneOfType: createUnionTypeChecker,
11726 shape: createShapeTypeChecker,
11727 exact: createStrictShapeTypeChecker,
11728 };
11729
11730 /**
11731 * inlined Object.is polyfill to avoid requiring consumers ship their own
11732 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
11733 */
11734 /*eslint-disable no-self-compare*/
11735 function is(x, y) {
11736 // SameValue algorithm
11737 if (x === y) {
11738 // Steps 1-5, 7-10
11739 // Steps 6.b-6.e: +0 != -0
11740 return x !== 0 || 1 / x === 1 / y;
11741 } else {
11742 // Step 6.a: NaN == NaN
11743 return x !== x && y !== y;
11744 }
11745 }
11746 /*eslint-enable no-self-compare*/
11747
11748 /**
11749 * We use an Error-like object for backward compatibility as people may call
11750 * PropTypes directly and inspect their output. However, we don't use real
11751 * Errors anymore. We don't inspect their stack anyway, and creating them
11752 * is prohibitively expensive if they are created too often, such as what
11753 * happens in oneOfType() for any type before the one that matched.
11754 */
11755 function PropTypeError(message, data) {
11756 this.message = message;
11757 this.data = data && typeof data === 'object' ? data: {};
11758 this.stack = '';
11759 }
11760 // Make `instanceof Error` still work for returned errors.
11761 PropTypeError.prototype = Error.prototype;
11762
11763 function createChainableTypeChecker(validate) {
11764 if (true) {
11765 var manualPropTypeCallCache = {};
11766 var manualPropTypeWarningCount = 0;
11767 }
11768 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
11769 componentName = componentName || ANONYMOUS;
11770 propFullName = propFullName || propName;
11771
11772 if (secret !== ReactPropTypesSecret) {
11773 if (throwOnDirectAccess) {
11774 // New behavior only for users of `prop-types` package
11775 var err = new Error(
11776 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
11777 'Use `PropTypes.checkPropTypes()` to call them. ' +
11778 'Read more at http://fb.me/use-check-prop-types'
11779 );
11780 err.name = 'Invariant Violation';
11781 throw err;
11782 } else if ( true && typeof console !== 'undefined') {
11783 // Old behavior for people using React.PropTypes
11784 var cacheKey = componentName + ':' + propName;
11785 if (
11786 !manualPropTypeCallCache[cacheKey] &&
11787 // Avoid spamming the console because they are often not actionable except for lib authors
11788 manualPropTypeWarningCount < 3
11789 ) {
11790 printWarning(
11791 'You are manually calling a React.PropTypes validation ' +
11792 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
11793 'and will throw in the standalone `prop-types` package. ' +
11794 'You may be seeing this warning due to a third-party PropTypes ' +
11795 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
11796 );
11797 manualPropTypeCallCache[cacheKey] = true;
11798 manualPropTypeWarningCount++;
11799 }
11800 }
11801 }
11802 if (props[propName] == null) {
11803 if (isRequired) {
11804 if (props[propName] === null) {
11805 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
11806 }
11807 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
11808 }
11809 return null;
11810 } else {
11811 return validate(props, propName, componentName, location, propFullName);
11812 }
11813 }
11814
11815 var chainedCheckType = checkType.bind(null, false);
11816 chainedCheckType.isRequired = checkType.bind(null, true);
11817
11818 return chainedCheckType;
11819 }
11820
11821 function createPrimitiveTypeChecker(expectedType) {
11822 function validate(props, propName, componentName, location, propFullName, secret) {
11823 var propValue = props[propName];
11824 var propType = getPropType(propValue);
11825 if (propType !== expectedType) {
11826 // `propValue` being instance of, say, date/regexp, pass the 'object'
11827 // check, but we can offer a more precise error message here rather than
11828 // 'of type `object`'.
11829 var preciseType = getPreciseType(propValue);
11830
11831 return new PropTypeError(
11832 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
11833 {expectedType: expectedType}
11834 );
11835 }
11836 return null;
11837 }
11838 return createChainableTypeChecker(validate);
11839 }
11840
11841 function createAnyTypeChecker() {
11842 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
11843 }
11844
11845 function createArrayOfTypeChecker(typeChecker) {
11846 function validate(props, propName, componentName, location, propFullName) {
11847 if (typeof typeChecker !== 'function') {
11848 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
11849 }
11850 var propValue = props[propName];
11851 if (!Array.isArray(propValue)) {
11852 var propType = getPropType(propValue);
11853 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
11854 }
11855 for (var i = 0; i < propValue.length; i++) {
11856 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
11857 if (error instanceof Error) {
11858 return error;
11859 }
11860 }
11861 return null;
11862 }
11863 return createChainableTypeChecker(validate);
11864 }
11865
11866 function createElementTypeChecker() {
11867 function validate(props, propName, componentName, location, propFullName) {
11868 var propValue = props[propName];
11869 if (!isValidElement(propValue)) {
11870 var propType = getPropType(propValue);
11871 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
11872 }
11873 return null;
11874 }
11875 return createChainableTypeChecker(validate);
11876 }
11877
11878 function createElementTypeTypeChecker() {
11879 function validate(props, propName, componentName, location, propFullName) {
11880 var propValue = props[propName];
11881 if (!ReactIs.isValidElementType(propValue)) {
11882 var propType = getPropType(propValue);
11883 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
11884 }
11885 return null;
11886 }
11887 return createChainableTypeChecker(validate);
11888 }
11889
11890 function createInstanceTypeChecker(expectedClass) {
11891 function validate(props, propName, componentName, location, propFullName) {
11892 if (!(props[propName] instanceof expectedClass)) {
11893 var expectedClassName = expectedClass.name || ANONYMOUS;
11894 var actualClassName = getClassName(props[propName]);
11895 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
11896 }
11897 return null;
11898 }
11899 return createChainableTypeChecker(validate);
11900 }
11901
11902 function createEnumTypeChecker(expectedValues) {
11903 if (!Array.isArray(expectedValues)) {
11904 if (true) {
11905 if (arguments.length > 1) {
11906 printWarning(
11907 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
11908 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
11909 );
11910 } else {
11911 printWarning('Invalid argument supplied to oneOf, expected an array.');
11912 }
11913 }
11914 return emptyFunctionThatReturnsNull;
11915 }
11916
11917 function validate(props, propName, componentName, location, propFullName) {
11918 var propValue = props[propName];
11919 for (var i = 0; i < expectedValues.length; i++) {
11920 if (is(propValue, expectedValues[i])) {
11921 return null;
11922 }
11923 }
11924
11925 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
11926 var type = getPreciseType(value);
11927 if (type === 'symbol') {
11928 return String(value);
11929 }
11930 return value;
11931 });
11932 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
11933 }
11934 return createChainableTypeChecker(validate);
11935 }
11936
11937 function createObjectOfTypeChecker(typeChecker) {
11938 function validate(props, propName, componentName, location, propFullName) {
11939 if (typeof typeChecker !== 'function') {
11940 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
11941 }
11942 var propValue = props[propName];
11943 var propType = getPropType(propValue);
11944 if (propType !== 'object') {
11945 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
11946 }
11947 for (var key in propValue) {
11948 if (has(propValue, key)) {
11949 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
11950 if (error instanceof Error) {
11951 return error;
11952 }
11953 }
11954 }
11955 return null;
11956 }
11957 return createChainableTypeChecker(validate);
11958 }
11959
11960 function createUnionTypeChecker(arrayOfTypeCheckers) {
11961 if (!Array.isArray(arrayOfTypeCheckers)) {
11962 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
11963 return emptyFunctionThatReturnsNull;
11964 }
11965
11966 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
11967 var checker = arrayOfTypeCheckers[i];
11968 if (typeof checker !== 'function') {
11969 printWarning(
11970 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
11971 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
11972 );
11973 return emptyFunctionThatReturnsNull;
11974 }
11975 }
11976
11977 function validate(props, propName, componentName, location, propFullName) {
11978 var expectedTypes = [];
11979 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
11980 var checker = arrayOfTypeCheckers[i];
11981 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
11982 if (checkerResult == null) {
11983 return null;
11984 }
11985 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
11986 expectedTypes.push(checkerResult.data.expectedType);
11987 }
11988 }
11989 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
11990 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
11991 }
11992 return createChainableTypeChecker(validate);
11993 }
11994
11995 function createNodeChecker() {
11996 function validate(props, propName, componentName, location, propFullName) {
11997 if (!isNode(props[propName])) {
11998 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
11999 }
12000 return null;
12001 }
12002 return createChainableTypeChecker(validate);
12003 }
12004
12005 function invalidValidatorError(componentName, location, propFullName, key, type) {
12006 return new PropTypeError(
12007 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
12008 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
12009 );
12010 }
12011
12012 function createShapeTypeChecker(shapeTypes) {
12013 function validate(props, propName, componentName, location, propFullName) {
12014 var propValue = props[propName];
12015 var propType = getPropType(propValue);
12016 if (propType !== 'object') {
12017 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
12018 }
12019 for (var key in shapeTypes) {
12020 var checker = shapeTypes[key];
12021 if (typeof checker !== 'function') {
12022 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
12023 }
12024 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
12025 if (error) {
12026 return error;
12027 }
12028 }
12029 return null;
12030 }
12031 return createChainableTypeChecker(validate);
12032 }
12033
12034 function createStrictShapeTypeChecker(shapeTypes) {
12035 function validate(props, propName, componentName, location, propFullName) {
12036 var propValue = props[propName];
12037 var propType = getPropType(propValue);
12038 if (propType !== 'object') {
12039 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
12040 }
12041 // We need to check all keys in case some are required but missing from props.
12042 var allKeys = assign({}, props[propName], shapeTypes);
12043 for (var key in allKeys) {
12044 var checker = shapeTypes[key];
12045 if (has(shapeTypes, key) && typeof checker !== 'function') {
12046 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
12047 }
12048 if (!checker) {
12049 return new PropTypeError(
12050 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
12051 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
12052 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
12053 );
12054 }
12055 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
12056 if (error) {
12057 return error;
12058 }
12059 }
12060 return null;
12061 }
12062
12063 return createChainableTypeChecker(validate);
12064 }
12065
12066 function isNode(propValue) {
12067 switch (typeof propValue) {
12068 case 'number':
12069 case 'string':
12070 case 'undefined':
12071 return true;
12072 case 'boolean':
12073 return !propValue;
12074 case 'object':
12075 if (Array.isArray(propValue)) {
12076 return propValue.every(isNode);
12077 }
12078 if (propValue === null || isValidElement(propValue)) {
12079 return true;
12080 }
12081
12082 var iteratorFn = getIteratorFn(propValue);
12083 if (iteratorFn) {
12084 var iterator = iteratorFn.call(propValue);
12085 var step;
12086 if (iteratorFn !== propValue.entries) {
12087 while (!(step = iterator.next()).done) {
12088 if (!isNode(step.value)) {
12089 return false;
12090 }
12091 }
12092 } else {
12093 // Iterator will provide entry [k,v] tuples rather than values.
12094 while (!(step = iterator.next()).done) {
12095 var entry = step.value;
12096 if (entry) {
12097 if (!isNode(entry[1])) {
12098 return false;
12099 }
12100 }
12101 }
12102 }
12103 } else {
12104 return false;
12105 }
12106
12107 return true;
12108 default:
12109 return false;
12110 }
12111 }
12112
12113 function isSymbol(propType, propValue) {
12114 // Native Symbol.
12115 if (propType === 'symbol') {
12116 return true;
12117 }
12118
12119 // falsy value can't be a Symbol
12120 if (!propValue) {
12121 return false;
12122 }
12123
12124 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
12125 if (propValue['@@toStringTag'] === 'Symbol') {
12126 return true;
12127 }
12128
12129 // Fallback for non-spec compliant Symbols which are polyfilled.
12130 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
12131 return true;
12132 }
12133
12134 return false;
12135 }
12136
12137 // Equivalent of `typeof` but with special handling for array and regexp.
12138 function getPropType(propValue) {
12139 var propType = typeof propValue;
12140 if (Array.isArray(propValue)) {
12141 return 'array';
12142 }
12143 if (propValue instanceof RegExp) {
12144 // Old webkits (at least until Android 4.0) return 'function' rather than
12145 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
12146 // passes PropTypes.object.
12147 return 'object';
12148 }
12149 if (isSymbol(propType, propValue)) {
12150 return 'symbol';
12151 }
12152 return propType;
12153 }
12154
12155 // This handles more types than `getPropType`. Only used for error messages.
12156 // See `createPrimitiveTypeChecker`.
12157 function getPreciseType(propValue) {
12158 if (typeof propValue === 'undefined' || propValue === null) {
12159 return '' + propValue;
12160 }
12161 var propType = getPropType(propValue);
12162 if (propType === 'object') {
12163 if (propValue instanceof Date) {
12164 return 'date';
12165 } else if (propValue instanceof RegExp) {
12166 return 'regexp';
12167 }
12168 }
12169 return propType;
12170 }
12171
12172 // Returns a string that is postfixed to a warning about an invalid type.
12173 // For example, "undefined" or "of type array"
12174 function getPostfixForTypeWarning(value) {
12175 var type = getPreciseType(value);
12176 switch (type) {
12177 case 'array':
12178 case 'object':
12179 return 'an ' + type;
12180 case 'boolean':
12181 case 'date':
12182 case 'regexp':
12183 return 'a ' + type;
12184 default:
12185 return type;
12186 }
12187 }
12188
12189 // Returns class name of the object, if any.
12190 function getClassName(propValue) {
12191 if (!propValue.constructor || !propValue.constructor.name) {
12192 return ANONYMOUS;
12193 }
12194 return propValue.constructor.name;
12195 }
12196
12197 ReactPropTypes.checkPropTypes = checkPropTypes;
12198 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
12199 ReactPropTypes.PropTypes = ReactPropTypes;
12200
12201 return ReactPropTypes;
12202 };
12203
12204
12205 /***/ }),
12206
12207 /***/ "../node_modules/prop-types/index.js":
12208 /*!*******************************************!*\
12209 !*** ../node_modules/prop-types/index.js ***!
12210 \*******************************************/
12211 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
12212
12213 /**
12214 * Copyright (c) 2013-present, Facebook, Inc.
12215 *
12216 * This source code is licensed under the MIT license found in the
12217 * LICENSE file in the root directory of this source tree.
12218 */
12219
12220 if (true) {
12221 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
12222
12223 // By explicitly using `prop-types` you are opting into new development behavior.
12224 // http://fb.me/prop-types-in-prod
12225 var throwOnDirectAccess = true;
12226 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
12227 } else {}
12228
12229
12230 /***/ }),
12231
12232 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
12233 /*!**************************************************************!*\
12234 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
12235 \**************************************************************/
12236 /***/ ((module) => {
12237
12238 "use strict";
12239 /**
12240 * Copyright (c) 2013-present, Facebook, Inc.
12241 *
12242 * This source code is licensed under the MIT license found in the
12243 * LICENSE file in the root directory of this source tree.
12244 */
12245
12246
12247
12248 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
12249
12250 module.exports = ReactPropTypesSecret;
12251
12252
12253 /***/ }),
12254
12255 /***/ "../node_modules/prop-types/lib/has.js":
12256 /*!*********************************************!*\
12257 !*** ../node_modules/prop-types/lib/has.js ***!
12258 \*********************************************/
12259 /***/ ((module) => {
12260
12261 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
12262
12263
12264 /***/ }),
12265
12266 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
12267 /*!************************************************************************************!*\
12268 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
12269 \************************************************************************************/
12270 /***/ ((__unused_webpack_module, exports) => {
12271
12272 "use strict";
12273 /** @license React v16.13.1
12274 * react-is.development.js
12275 *
12276 * Copyright (c) Facebook, Inc. and its affiliates.
12277 *
12278 * This source code is licensed under the MIT license found in the
12279 * LICENSE file in the root directory of this source tree.
12280 */
12281
12282
12283
12284
12285
12286 if (true) {
12287 (function() {
12288 'use strict';
12289
12290 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
12291 // nor polyfill, then a plain number is used for performance.
12292 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
12293 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
12294 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
12295 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
12296 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
12297 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
12298 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
12299 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
12300 // (unstable) APIs that have been removed. Can we remove the symbols?
12301
12302 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
12303 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
12304 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
12305 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
12306 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
12307 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
12308 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
12309 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
12310 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
12311 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
12312 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
12313
12314 function isValidElementType(type) {
12315 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
12316 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);
12317 }
12318
12319 function typeOf(object) {
12320 if (typeof object === 'object' && object !== null) {
12321 var $$typeof = object.$$typeof;
12322
12323 switch ($$typeof) {
12324 case REACT_ELEMENT_TYPE:
12325 var type = object.type;
12326
12327 switch (type) {
12328 case REACT_ASYNC_MODE_TYPE:
12329 case REACT_CONCURRENT_MODE_TYPE:
12330 case REACT_FRAGMENT_TYPE:
12331 case REACT_PROFILER_TYPE:
12332 case REACT_STRICT_MODE_TYPE:
12333 case REACT_SUSPENSE_TYPE:
12334 return type;
12335
12336 default:
12337 var $$typeofType = type && type.$$typeof;
12338
12339 switch ($$typeofType) {
12340 case REACT_CONTEXT_TYPE:
12341 case REACT_FORWARD_REF_TYPE:
12342 case REACT_LAZY_TYPE:
12343 case REACT_MEMO_TYPE:
12344 case REACT_PROVIDER_TYPE:
12345 return $$typeofType;
12346
12347 default:
12348 return $$typeof;
12349 }
12350
12351 }
12352
12353 case REACT_PORTAL_TYPE:
12354 return $$typeof;
12355 }
12356 }
12357
12358 return undefined;
12359 } // AsyncMode is deprecated along with isAsyncMode
12360
12361 var AsyncMode = REACT_ASYNC_MODE_TYPE;
12362 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
12363 var ContextConsumer = REACT_CONTEXT_TYPE;
12364 var ContextProvider = REACT_PROVIDER_TYPE;
12365 var Element = REACT_ELEMENT_TYPE;
12366 var ForwardRef = REACT_FORWARD_REF_TYPE;
12367 var Fragment = REACT_FRAGMENT_TYPE;
12368 var Lazy = REACT_LAZY_TYPE;
12369 var Memo = REACT_MEMO_TYPE;
12370 var Portal = REACT_PORTAL_TYPE;
12371 var Profiler = REACT_PROFILER_TYPE;
12372 var StrictMode = REACT_STRICT_MODE_TYPE;
12373 var Suspense = REACT_SUSPENSE_TYPE;
12374 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
12375
12376 function isAsyncMode(object) {
12377 {
12378 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
12379 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
12380
12381 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.');
12382 }
12383 }
12384
12385 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
12386 }
12387 function isConcurrentMode(object) {
12388 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
12389 }
12390 function isContextConsumer(object) {
12391 return typeOf(object) === REACT_CONTEXT_TYPE;
12392 }
12393 function isContextProvider(object) {
12394 return typeOf(object) === REACT_PROVIDER_TYPE;
12395 }
12396 function isElement(object) {
12397 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
12398 }
12399 function isForwardRef(object) {
12400 return typeOf(object) === REACT_FORWARD_REF_TYPE;
12401 }
12402 function isFragment(object) {
12403 return typeOf(object) === REACT_FRAGMENT_TYPE;
12404 }
12405 function isLazy(object) {
12406 return typeOf(object) === REACT_LAZY_TYPE;
12407 }
12408 function isMemo(object) {
12409 return typeOf(object) === REACT_MEMO_TYPE;
12410 }
12411 function isPortal(object) {
12412 return typeOf(object) === REACT_PORTAL_TYPE;
12413 }
12414 function isProfiler(object) {
12415 return typeOf(object) === REACT_PROFILER_TYPE;
12416 }
12417 function isStrictMode(object) {
12418 return typeOf(object) === REACT_STRICT_MODE_TYPE;
12419 }
12420 function isSuspense(object) {
12421 return typeOf(object) === REACT_SUSPENSE_TYPE;
12422 }
12423
12424 exports.AsyncMode = AsyncMode;
12425 exports.ConcurrentMode = ConcurrentMode;
12426 exports.ContextConsumer = ContextConsumer;
12427 exports.ContextProvider = ContextProvider;
12428 exports.Element = Element;
12429 exports.ForwardRef = ForwardRef;
12430 exports.Fragment = Fragment;
12431 exports.Lazy = Lazy;
12432 exports.Memo = Memo;
12433 exports.Portal = Portal;
12434 exports.Profiler = Profiler;
12435 exports.StrictMode = StrictMode;
12436 exports.Suspense = Suspense;
12437 exports.isAsyncMode = isAsyncMode;
12438 exports.isConcurrentMode = isConcurrentMode;
12439 exports.isContextConsumer = isContextConsumer;
12440 exports.isContextProvider = isContextProvider;
12441 exports.isElement = isElement;
12442 exports.isForwardRef = isForwardRef;
12443 exports.isFragment = isFragment;
12444 exports.isLazy = isLazy;
12445 exports.isMemo = isMemo;
12446 exports.isPortal = isPortal;
12447 exports.isProfiler = isProfiler;
12448 exports.isStrictMode = isStrictMode;
12449 exports.isSuspense = isSuspense;
12450 exports.isValidElementType = isValidElementType;
12451 exports.typeOf = typeOf;
12452 })();
12453 }
12454
12455
12456 /***/ }),
12457
12458 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
12459 /*!*****************************************************************!*\
12460 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
12461 \*****************************************************************/
12462 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
12463
12464 "use strict";
12465
12466
12467 if (false) {} else {
12468 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
12469 }
12470
12471
12472 /***/ }),
12473
12474 /***/ "../node_modules/react-avatar-editor/dist/index.js":
12475 /*!*********************************************************!*\
12476 !*** ../node_modules/react-avatar-editor/dist/index.js ***!
12477 \*********************************************************/
12478 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
12479
12480 !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});
12481
12482
12483 /***/ }),
12484
12485 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
12486 /*!**************************************************************!*\
12487 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
12488 \**************************************************************/
12489 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12490
12491 "use strict";
12492
12493
12494 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); }
12495
12496 Object.defineProperty(exports, "__esModule", ({
12497 value: true
12498 }));
12499 Object.defineProperty(exports, "DraggableCore", ({
12500 enumerable: true,
12501 get: function get() {
12502 return _DraggableCore.default;
12503 }
12504 }));
12505 exports["default"] = void 0;
12506
12507 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
12508
12509 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
12510
12511 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
12512
12513 var _clsx2 = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/clsx/dist/clsx.m.js"));
12514
12515 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
12516
12517 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
12518
12519 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
12520
12521 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
12522
12523 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
12524
12525 var _excluded = ["axis", "bounds", "children", "defaultPosition", "defaultClassName", "defaultClassNameDragging", "defaultClassNameDragged", "position", "positionOffset", "scale"];
12526
12527 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12528
12529 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); }
12530
12531 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; }
12532
12533 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); }
12534
12535 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; }
12536
12537 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; }
12538
12539 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; }
12540
12541 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; }
12542
12543 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12544
12545 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."); }
12546
12547 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); }
12548
12549 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; }
12550
12551 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; }
12552
12553 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12554
12555 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12556
12557 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); } }
12558
12559 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
12560
12561 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); }
12562
12563 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12564
12565 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); }; }
12566
12567 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); }
12568
12569 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12570
12571 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; } }
12572
12573 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12574
12575 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; }
12576
12577 //
12578 // Define <Draggable>
12579 //
12580 var Draggable = /*#__PURE__*/function (_React$Component) {
12581 _inherits(Draggable, _React$Component);
12582
12583 var _super = _createSuper(Draggable);
12584
12585 function Draggable(props
12586 /*: DraggableProps*/
12587 ) {
12588 var _this;
12589
12590 _classCallCheck(this, Draggable);
12591
12592 _this = _super.call(this, props);
12593
12594 _defineProperty(_assertThisInitialized(_this), "onDragStart", function (e, coreData) {
12595 (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.
12596
12597 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.
12598
12599
12600 if (shouldStart === false) return false;
12601
12602 _this.setState({
12603 dragging: true,
12604 dragged: true
12605 });
12606 });
12607
12608 _defineProperty(_assertThisInitialized(_this), "onDrag", function (e, coreData) {
12609 if (!_this.state.dragging) return false;
12610 (0, _log.default)('Draggable: onDrag: %j', coreData);
12611 var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);
12612 var newState
12613 /*: $Shape<DraggableState>*/
12614 = {
12615 x: uiData.x,
12616 y: uiData.y
12617 }; // Keep within bounds.
12618
12619 if (_this.props.bounds) {
12620 // Save original x and y.
12621 var x = newState.x,
12622 y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if
12623 // we start removing slack, the element won't react to it right away until it's been
12624 // completely removed.
12625
12626 newState.x += _this.state.slackX;
12627 newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.
12628
12629 var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),
12630 _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),
12631 newStateX = _getBoundPosition2[0],
12632 newStateY = _getBoundPosition2[1];
12633
12634 newState.x = newStateX;
12635 newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.
12636
12637 newState.slackX = _this.state.slackX + (x - newState.x);
12638 newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.
12639
12640 uiData.x = newState.x;
12641 uiData.y = newState.y;
12642 uiData.deltaX = newState.x - _this.state.x;
12643 uiData.deltaY = newState.y - _this.state.y;
12644 } // Short-circuit if user's callback killed it.
12645
12646
12647 var shouldUpdate = _this.props.onDrag(e, uiData);
12648
12649 if (shouldUpdate === false) return false;
12650
12651 _this.setState(newState);
12652 });
12653
12654 _defineProperty(_assertThisInitialized(_this), "onDragStop", function (e, coreData) {
12655 if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.
12656
12657 var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));
12658
12659 if (shouldContinue === false) return false;
12660 (0, _log.default)('Draggable: onDragStop: %j', coreData);
12661 var newState
12662 /*: $Shape<DraggableState>*/
12663 = {
12664 dragging: false,
12665 slackX: 0,
12666 slackY: 0
12667 }; // If this is a controlled component, the result of this operation will be to
12668 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
12669
12670 var controlled = Boolean(_this.props.position);
12671
12672 if (controlled) {
12673 var _this$props$position = _this.props.position,
12674 x = _this$props$position.x,
12675 y = _this$props$position.y;
12676 newState.x = x;
12677 newState.y = y;
12678 }
12679
12680 _this.setState(newState);
12681 });
12682
12683 _this.state = {
12684 // Whether or not we are currently dragging.
12685 dragging: false,
12686 // Whether or not we have been dragged before.
12687 dragged: false,
12688 // Current transform x and y.
12689 x: props.position ? props.position.x : props.defaultPosition.x,
12690 y: props.position ? props.position.y : props.defaultPosition.y,
12691 prevPropsPosition: _objectSpread({}, props.position),
12692 // Used for compensating for out-of-bounds drags
12693 slackX: 0,
12694 slackY: 0,
12695 // Can only determine if SVG after mounting
12696 isElementSVG: false
12697 };
12698
12699 if (props.position && !(props.onDrag || props.onStop)) {
12700 // eslint-disable-next-line no-console
12701 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.');
12702 }
12703
12704 return _this;
12705 }
12706
12707 _createClass(Draggable, [{
12708 key: "componentDidMount",
12709 value: function componentDidMount() {
12710 // Check to see if the element passed is an instanceof SVGElement
12711 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
12712 this.setState({
12713 isElementSVG: true
12714 });
12715 }
12716 }
12717 }, {
12718 key: "componentWillUnmount",
12719 value: function componentWillUnmount() {
12720 this.setState({
12721 dragging: false
12722 }); // prevents invariant if unmounted while dragging
12723 } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
12724 // the underlying DOM node ourselves. See the README for more information.
12725
12726 }, {
12727 key: "findDOMNode",
12728 value: function findDOMNode()
12729 /*: ?HTMLElement*/
12730 {
12731 var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;
12732
12733 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);
12734 }
12735 }, {
12736 key: "render",
12737 value: function render()
12738 /*: ReactElement<any>*/
12739 {
12740 var _clsx;
12741
12742 var _this$props2 = this.props,
12743 axis = _this$props2.axis,
12744 bounds = _this$props2.bounds,
12745 children = _this$props2.children,
12746 defaultPosition = _this$props2.defaultPosition,
12747 defaultClassName = _this$props2.defaultClassName,
12748 defaultClassNameDragging = _this$props2.defaultClassNameDragging,
12749 defaultClassNameDragged = _this$props2.defaultClassNameDragged,
12750 position = _this$props2.position,
12751 positionOffset = _this$props2.positionOffset,
12752 scale = _this$props2.scale,
12753 draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);
12754
12755 var style = {};
12756 var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.
12757
12758 var controlled = Boolean(position);
12759 var draggable = !controlled || this.state.dragging;
12760 var validPosition = position || defaultPosition;
12761 var transformOpts = {
12762 // Set left if horizontal drag is enabled
12763 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
12764 // Set top if vertical drag is enabled
12765 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
12766 }; // If this element was SVG, we use the `transform` attribute.
12767
12768 if (this.state.isElementSVG) {
12769 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
12770 } else {
12771 // Add a CSS transform to move the element around. This allows us to move the element around
12772 // without worrying about whether or not it is relatively or absolutely positioned.
12773 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
12774 // has a clean slate.
12775 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
12776 } // Mark with class while dragging
12777
12778
12779 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
12780 // This makes it flexible to use whatever element is wanted (div, ul, etc)
12781
12782 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
12783 onStart: this.onDragStart,
12784 onDrag: this.onDrag,
12785 onStop: this.onDragStop
12786 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
12787 className: className,
12788 style: _objectSpread(_objectSpread({}, children.props.style), style),
12789 transform: svgTransform
12790 }));
12791 }
12792 }], [{
12793 key: "getDerivedStateFromProps",
12794 value: // React 16.3+
12795 // Arity (props, state)
12796 function getDerivedStateFromProps(_ref, _ref2)
12797 /*: ?$Shape<DraggableState>*/
12798 {
12799 var position = _ref.position;
12800 var prevPropsPosition = _ref2.prevPropsPosition;
12801
12802 // Set x/y if a new position is provided in props that is different than the previous.
12803 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
12804 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
12805 position: position,
12806 prevPropsPosition: prevPropsPosition
12807 });
12808 return {
12809 x: position.x,
12810 y: position.y,
12811 prevPropsPosition: _objectSpread({}, position)
12812 };
12813 }
12814
12815 return null;
12816 }
12817 }]);
12818
12819 return Draggable;
12820 }(React.Component);
12821
12822 exports["default"] = Draggable;
12823
12824 _defineProperty(Draggable, "displayName", 'Draggable');
12825
12826 _defineProperty(Draggable, "propTypes", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {
12827 /**
12828 * `axis` determines which axis the draggable can move.
12829 *
12830 * Note that all callbacks will still return data as normal. This only
12831 * controls flushing to the DOM.
12832 *
12833 * 'both' allows movement horizontally and vertically.
12834 * 'x' limits movement to horizontal axis.
12835 * 'y' limits movement to vertical axis.
12836 * 'none' limits all movement.
12837 *
12838 * Defaults to 'both'.
12839 */
12840 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
12841
12842 /**
12843 * `bounds` determines the range of movement available to the element.
12844 * Available values are:
12845 *
12846 * 'parent' restricts movement within the Draggable's parent node.
12847 *
12848 * Alternatively, pass an object with the following properties, all of which are optional:
12849 *
12850 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
12851 *
12852 * All values are in px.
12853 *
12854 * Example:
12855 *
12856 * ```jsx
12857 * let App = React.createClass({
12858 * render: function () {
12859 * return (
12860 * <Draggable bounds={{right: 300, bottom: 300}}>
12861 * <div>Content</div>
12862 * </Draggable>
12863 * );
12864 * }
12865 * });
12866 * ```
12867 */
12868 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
12869 left: _propTypes.default.number,
12870 right: _propTypes.default.number,
12871 top: _propTypes.default.number,
12872 bottom: _propTypes.default.number
12873 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
12874 defaultClassName: _propTypes.default.string,
12875 defaultClassNameDragging: _propTypes.default.string,
12876 defaultClassNameDragged: _propTypes.default.string,
12877
12878 /**
12879 * `defaultPosition` specifies the x and y that the dragged item should start at
12880 *
12881 * Example:
12882 *
12883 * ```jsx
12884 * let App = React.createClass({
12885 * render: function () {
12886 * return (
12887 * <Draggable defaultPosition={{x: 25, y: 25}}>
12888 * <div>I start with transformX: 25px and transformY: 25px;</div>
12889 * </Draggable>
12890 * );
12891 * }
12892 * });
12893 * ```
12894 */
12895 defaultPosition: _propTypes.default.shape({
12896 x: _propTypes.default.number,
12897 y: _propTypes.default.number
12898 }),
12899 positionOffset: _propTypes.default.shape({
12900 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
12901 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
12902 }),
12903
12904 /**
12905 * `position`, if present, defines the current position of the element.
12906 *
12907 * This is similar to how form elements in React work - if no `position` is supplied, the component
12908 * is uncontrolled.
12909 *
12910 * Example:
12911 *
12912 * ```jsx
12913 * let App = React.createClass({
12914 * render: function () {
12915 * return (
12916 * <Draggable position={{x: 25, y: 25}}>
12917 * <div>I start with transformX: 25px and transformY: 25px;</div>
12918 * </Draggable>
12919 * );
12920 * }
12921 * });
12922 * ```
12923 */
12924 position: _propTypes.default.shape({
12925 x: _propTypes.default.number,
12926 y: _propTypes.default.number
12927 }),
12928
12929 /**
12930 * These properties should be defined on the child, not here.
12931 */
12932 className: _shims.dontSetMe,
12933 style: _shims.dontSetMe,
12934 transform: _shims.dontSetMe
12935 }));
12936
12937 _defineProperty(Draggable, "defaultProps", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {
12938 axis: 'both',
12939 bounds: false,
12940 defaultClassName: 'react-draggable',
12941 defaultClassNameDragging: 'react-draggable-dragging',
12942 defaultClassNameDragged: 'react-draggable-dragged',
12943 defaultPosition: {
12944 x: 0,
12945 y: 0
12946 },
12947 scale: 1
12948 }));
12949
12950 /***/ }),
12951
12952 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
12953 /*!******************************************************************!*\
12954 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
12955 \******************************************************************/
12956 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12957
12958 "use strict";
12959
12960
12961 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); }
12962
12963 Object.defineProperty(exports, "__esModule", ({
12964 value: true
12965 }));
12966 exports["default"] = void 0;
12967
12968 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
12969
12970 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
12971
12972 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
12973
12974 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
12975
12976 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
12977
12978 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
12979
12980 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
12981
12982 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12983
12984 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); }
12985
12986 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; }
12987
12988 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12989
12990 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."); }
12991
12992 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); }
12993
12994 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; }
12995
12996 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; }
12997
12998 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12999
13000 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13001
13002 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); } }
13003
13004 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
13005
13006 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); }
13007
13008 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13009
13010 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); }; }
13011
13012 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); }
13013
13014 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13015
13016 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; } }
13017
13018 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13019
13020 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; }
13021
13022 // Simple abstraction for dragging events names.
13023 var eventsFor = {
13024 touch: {
13025 start: 'touchstart',
13026 move: 'touchmove',
13027 stop: 'touchend'
13028 },
13029 mouse: {
13030 start: 'mousedown',
13031 move: 'mousemove',
13032 stop: 'mouseup'
13033 }
13034 }; // Default to mouse events.
13035
13036 var dragEventFor = eventsFor.mouse;
13037 /*:: type DraggableCoreState = {
13038 dragging: boolean,
13039 lastX: number,
13040 lastY: number,
13041 touchIdentifier: ?number
13042 };*/
13043
13044 /*:: export type DraggableData = {
13045 node: HTMLElement,
13046 x: number, y: number,
13047 deltaX: number, deltaY: number,
13048 lastX: number, lastY: number,
13049 };*/
13050
13051 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
13052
13053 /*:: export type ControlPosition = {x: number, y: number};*/
13054
13055 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
13056
13057 /*:: export type DraggableCoreDefaultProps = {
13058 allowAnyClick: boolean,
13059 disabled: boolean,
13060 enableUserSelectHack: boolean,
13061 onStart: DraggableEventHandler,
13062 onDrag: DraggableEventHandler,
13063 onStop: DraggableEventHandler,
13064 onMouseDown: (e: MouseEvent) => void,
13065 scale: number,
13066 };*/
13067
13068 /*:: export type DraggableCoreProps = {
13069 ...DraggableCoreDefaultProps,
13070 cancel: string,
13071 children: ReactElement<any>,
13072 offsetParent: HTMLElement,
13073 grid: [number, number],
13074 handle: string,
13075 nodeRef?: ?React.ElementRef<any>,
13076 };*/
13077
13078 //
13079 // Define <DraggableCore>.
13080 //
13081 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
13082 // work well with libraries that require more control over the element.
13083 //
13084 var DraggableCore = /*#__PURE__*/function (_React$Component) {
13085 _inherits(DraggableCore, _React$Component);
13086
13087 var _super = _createSuper(DraggableCore);
13088
13089 function DraggableCore() {
13090 var _this;
13091
13092 _classCallCheck(this, DraggableCore);
13093
13094 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13095 args[_key] = arguments[_key];
13096 }
13097
13098 _this = _super.call.apply(_super, [this].concat(args));
13099
13100 _defineProperty(_assertThisInitialized(_this), "state", {
13101 dragging: false,
13102 // Used while dragging to determine deltas.
13103 lastX: NaN,
13104 lastY: NaN,
13105 touchIdentifier: null
13106 });
13107
13108 _defineProperty(_assertThisInitialized(_this), "mounted", false);
13109
13110 _defineProperty(_assertThisInitialized(_this), "handleDragStart", function (e) {
13111 // Make it possible to attach event handlers on top of this one.
13112 _this.props.onMouseDown(e); // Only accept left-clicks.
13113
13114
13115 if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)
13116
13117 var thisNode = _this.findDOMNode();
13118
13119 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
13120 throw new Error('<DraggableCore> not mounted on DragStart!');
13121 }
13122
13123 var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.
13124
13125 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)) {
13126 return;
13127 } // Prevent scrolling on mobile devices, like ipad/iphone.
13128 // Important that this is after handle/cancel.
13129
13130
13131 if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to
13132 // distinguish between individual touches on multitouch screens by identifying which
13133 // touchpoint was set to this element.
13134
13135 var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
13136
13137 _this.setState({
13138 touchIdentifier: touchIdentifier
13139 }); // Get the current drag point from the event. This is used as the offset.
13140
13141
13142 var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));
13143 if (position == null) return; // not possible but satisfies flow
13144
13145 var x = position.x,
13146 y = position.y; // Create an event object with all the data parents need to make a decision here.
13147
13148 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);
13149 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.
13150
13151 (0, _log.default)('calling', _this.props.onStart);
13152
13153 var shouldUpdate = _this.props.onStart(e, coreEvent);
13154
13155 if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from
13156 // being selected all over the page.
13157
13158 if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets
13159 // so we know how much we've moved during the drag. This allows us
13160 // to drag elements around even if they have been moved, without issue.
13161
13162 _this.setState({
13163 dragging: true,
13164 lastX: x,
13165 lastY: y
13166 }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of
13167 // this element. We use different events depending on whether or not we have detected that this
13168 // is a touch-capable device.
13169
13170
13171 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);
13172 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);
13173 });
13174
13175 _defineProperty(_assertThisInitialized(_this), "handleDrag", function (e) {
13176 // Get the current drag point from the event. This is used as the offset.
13177 var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));
13178 if (position == null) return;
13179 var x = position.x,
13180 y = position.y; // Snap to grid if prop has been provided
13181
13182 if (Array.isArray(_this.props.grid)) {
13183 var deltaX = x - _this.state.lastX,
13184 deltaY = y - _this.state.lastY;
13185
13186 var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);
13187
13188 var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);
13189
13190 deltaX = _snapToGrid2[0];
13191 deltaY = _snapToGrid2[1];
13192 if (!deltaX && !deltaY) return; // skip useless drag
13193
13194 x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;
13195 }
13196
13197 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);
13198 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.
13199
13200 var shouldUpdate = _this.props.onDrag(e, coreEvent);
13201
13202 if (shouldUpdate === false || _this.mounted === false) {
13203 try {
13204 // $FlowIgnore
13205 _this.handleDragStop(new MouseEvent('mouseup'));
13206 } catch (err) {
13207 // Old browsers
13208 var event = ((document.createEvent('MouseEvents')
13209 /*: any*/
13210 )
13211 /*: MouseTouchEvent*/
13212 ); // I see why this insanity was deprecated
13213 // $FlowIgnore
13214
13215 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
13216
13217 _this.handleDragStop(event);
13218 }
13219
13220 return;
13221 }
13222
13223 _this.setState({
13224 lastX: x,
13225 lastY: y
13226 });
13227 });
13228
13229 _defineProperty(_assertThisInitialized(_this), "handleDragStop", function (e) {
13230 if (!_this.state.dragging) return;
13231 var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));
13232 if (position == null) return;
13233 var x = position.x,
13234 y = position.y; // Snap to grid if prop has been provided
13235
13236 if (Array.isArray(_this.props.grid)) {
13237 var deltaX = x - _this.state.lastX || 0;
13238 var deltaY = y - _this.state.lastY || 0;
13239
13240 var _snapToGrid3 = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);
13241
13242 var _snapToGrid4 = _slicedToArray(_snapToGrid3, 2);
13243
13244 deltaX = _snapToGrid4[0];
13245 deltaY = _snapToGrid4[1];
13246 x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;
13247 }
13248
13249 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler
13250
13251 var shouldContinue = _this.props.onStop(e, coreEvent);
13252
13253 if (shouldContinue === false || _this.mounted === false) return false;
13254
13255 var thisNode = _this.findDOMNode();
13256
13257 if (thisNode) {
13258 // Remove user-select hack
13259 if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
13260 }
13261
13262 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.
13263
13264 _this.setState({
13265 dragging: false,
13266 lastX: NaN,
13267 lastY: NaN
13268 });
13269
13270 if (thisNode) {
13271 // Remove event handlers
13272 (0, _log.default)('DraggableCore: Removing handlers');
13273 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);
13274 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);
13275 }
13276 });
13277
13278 _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (e) {
13279 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
13280
13281 return _this.handleDragStart(e);
13282 });
13283
13284 _defineProperty(_assertThisInitialized(_this), "onMouseUp", function (e) {
13285 dragEventFor = eventsFor.mouse;
13286 return _this.handleDragStop(e);
13287 });
13288
13289 _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (e) {
13290 // We're on a touch device now, so change the event handlers
13291 dragEventFor = eventsFor.touch;
13292 return _this.handleDragStart(e);
13293 });
13294
13295 _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (e) {
13296 // We're on a touch device now, so change the event handlers
13297 dragEventFor = eventsFor.touch;
13298 return _this.handleDragStop(e);
13299 });
13300
13301 return _this;
13302 }
13303
13304 _createClass(DraggableCore, [{
13305 key: "componentDidMount",
13306 value: function componentDidMount() {
13307 this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.
13308 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
13309
13310 var thisNode = this.findDOMNode();
13311
13312 if (thisNode) {
13313 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
13314 passive: false
13315 });
13316 }
13317 }
13318 }, {
13319 key: "componentWillUnmount",
13320 value: function componentWillUnmount() {
13321 this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case
13322 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
13323
13324 var thisNode = this.findDOMNode();
13325
13326 if (thisNode) {
13327 var ownerDocument = thisNode.ownerDocument;
13328 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
13329 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
13330 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
13331 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
13332 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
13333 passive: false
13334 });
13335 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
13336 }
13337 } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
13338 // the underlying DOM node ourselves. See the README for more information.
13339
13340 }, {
13341 key: "findDOMNode",
13342 value: function findDOMNode()
13343 /*: ?HTMLElement*/
13344 {
13345 var _this$props, _this$props2, _this$props2$nodeRef;
13346
13347 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);
13348 }
13349 }, {
13350 key: "render",
13351 value: function render()
13352 /*: React.Element<any>*/
13353 {
13354 // Reuse the child provided
13355 // This makes it flexible to use whatever element is wanted (div, ul, etc)
13356 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
13357 // Note: mouseMove handler is attached to document so it will still function
13358 // when the user drags quickly and leaves the bounds of the element.
13359 onMouseDown: this.onMouseDown,
13360 onMouseUp: this.onMouseUp,
13361 // onTouchStart is added on `componentDidMount` so they can be added with
13362 // {passive: false}, which allows it to cancel. See
13363 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
13364 onTouchEnd: this.onTouchEnd
13365 });
13366 }
13367 }]);
13368
13369 return DraggableCore;
13370 }(React.Component);
13371
13372 exports["default"] = DraggableCore;
13373
13374 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
13375
13376 _defineProperty(DraggableCore, "propTypes", {
13377 /**
13378 * `allowAnyClick` allows dragging using any mouse button.
13379 * By default, we only accept the left button.
13380 *
13381 * Defaults to `false`.
13382 */
13383 allowAnyClick: _propTypes.default.bool,
13384
13385 /**
13386 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
13387 * with the exception of `onMouseDown`, will not fire.
13388 */
13389 disabled: _propTypes.default.bool,
13390
13391 /**
13392 * By default, we add 'user-select:none' attributes to the document body
13393 * to prevent ugly text selection during drag. If this is causing problems
13394 * for your app, set this to `false`.
13395 */
13396 enableUserSelectHack: _propTypes.default.bool,
13397
13398 /**
13399 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
13400 * instead of using the parent node.
13401 */
13402 offsetParent: function offsetParent(props
13403 /*: DraggableCoreProps*/
13404 , propName
13405 /*: $Keys<DraggableCoreProps>*/
13406 ) {
13407 if (props[propName] && props[propName].nodeType !== 1) {
13408 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
13409 }
13410 },
13411
13412 /**
13413 * `grid` specifies the x and y that dragging should snap to.
13414 */
13415 grid: _propTypes.default.arrayOf(_propTypes.default.number),
13416
13417 /**
13418 * `handle` specifies a selector to be used as the handle that initiates drag.
13419 *
13420 * Example:
13421 *
13422 * ```jsx
13423 * let App = React.createClass({
13424 * render: function () {
13425 * return (
13426 * <Draggable handle=".handle">
13427 * <div>
13428 * <div className="handle">Click me to drag</div>
13429 * <div>This is some other content</div>
13430 * </div>
13431 * </Draggable>
13432 * );
13433 * }
13434 * });
13435 * ```
13436 */
13437 handle: _propTypes.default.string,
13438
13439 /**
13440 * `cancel` specifies a selector to be used to prevent drag initialization.
13441 *
13442 * Example:
13443 *
13444 * ```jsx
13445 * let App = React.createClass({
13446 * render: function () {
13447 * return(
13448 * <Draggable cancel=".cancel">
13449 * <div>
13450 * <div className="cancel">You can't drag from here</div>
13451 * <div>Dragging here works fine</div>
13452 * </div>
13453 * </Draggable>
13454 * );
13455 * }
13456 * });
13457 * ```
13458 */
13459 cancel: _propTypes.default.string,
13460
13461 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
13462 * Unfortunately, in order for <Draggable> to work properly, we need raw access
13463 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
13464 * as in this example:
13465 *
13466 * function MyComponent() {
13467 * const nodeRef = React.useRef(null);
13468 * return (
13469 * <Draggable nodeRef={nodeRef}>
13470 * <div ref={nodeRef}>Example Target</div>
13471 * </Draggable>
13472 * );
13473 * }
13474 *
13475 * This can be used for arbitrarily nested components, so long as the ref ends up
13476 * pointing to the actual child DOM node and not a custom component.
13477 */
13478 nodeRef: _propTypes.default.object,
13479
13480 /**
13481 * Called when dragging starts.
13482 * If this function returns the boolean false, dragging will be canceled.
13483 */
13484 onStart: _propTypes.default.func,
13485
13486 /**
13487 * Called while dragging.
13488 * If this function returns the boolean false, dragging will be canceled.
13489 */
13490 onDrag: _propTypes.default.func,
13491
13492 /**
13493 * Called when dragging stops.
13494 * If this function returns the boolean false, the drag will remain active.
13495 */
13496 onStop: _propTypes.default.func,
13497
13498 /**
13499 * A workaround option which can be passed if onMouseDown needs to be accessed,
13500 * since it'll always be blocked (as there is internal use of onMouseDown)
13501 */
13502 onMouseDown: _propTypes.default.func,
13503
13504 /**
13505 * `scale`, if set, applies scaling while dragging an element
13506 */
13507 scale: _propTypes.default.number,
13508
13509 /**
13510 * These properties should be defined on the child, not here.
13511 */
13512 className: _shims.dontSetMe,
13513 style: _shims.dontSetMe,
13514 transform: _shims.dontSetMe
13515 });
13516
13517 _defineProperty(DraggableCore, "defaultProps", {
13518 allowAnyClick: false,
13519 // by default only accept left click
13520 disabled: false,
13521 enableUserSelectHack: true,
13522 onStart: function onStart() {},
13523 onDrag: function onDrag() {},
13524 onStop: function onStop() {},
13525 onMouseDown: function onMouseDown() {},
13526 scale: 1
13527 });
13528
13529 /***/ }),
13530
13531 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
13532 /*!********************************************************!*\
13533 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
13534 \********************************************************/
13535 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
13536
13537 "use strict";
13538
13539
13540 var _require = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js"),
13541 Draggable = _require.default,
13542 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'.
13543 // See https://github.com/mzabriskie/react-draggable/pull/254
13544 // and https://github.com/mzabriskie/react-draggable/issues/266
13545
13546
13547 module.exports = Draggable;
13548 module.exports["default"] = Draggable;
13549 module.exports.DraggableCore = DraggableCore;
13550
13551 /***/ }),
13552
13553 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
13554 /*!*****************************************************************!*\
13555 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
13556 \*****************************************************************/
13557 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13558
13559 "use strict";
13560
13561
13562 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); }
13563
13564 Object.defineProperty(exports, "__esModule", ({
13565 value: true
13566 }));
13567 exports.addClassName = addClassName;
13568 exports.addEvent = addEvent;
13569 exports.addUserSelectStyles = addUserSelectStyles;
13570 exports.createCSSTransform = createCSSTransform;
13571 exports.createSVGTransform = createSVGTransform;
13572 exports.getTouch = getTouch;
13573 exports.getTouchIdentifier = getTouchIdentifier;
13574 exports.getTranslation = getTranslation;
13575 exports.innerHeight = innerHeight;
13576 exports.innerWidth = innerWidth;
13577 exports.matchesSelector = matchesSelector;
13578 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
13579 exports.offsetXYFromParent = offsetXYFromParent;
13580 exports.outerHeight = outerHeight;
13581 exports.outerWidth = outerWidth;
13582 exports.removeClassName = removeClassName;
13583 exports.removeEvent = removeEvent;
13584 exports.removeUserSelectStyles = removeUserSelectStyles;
13585
13586 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
13587
13588 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
13589
13590 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); }
13591
13592 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; }
13593
13594 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; }
13595
13596 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; }
13597
13598 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; }
13599
13600 var matchesSelectorFunc = '';
13601
13602 function matchesSelector(el
13603 /*: Node*/
13604 , selector
13605 /*: string*/
13606 )
13607 /*: boolean*/
13608 {
13609 if (!matchesSelectorFunc) {
13610 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
13611 // $FlowIgnore: Doesn't think elements are indexable
13612 return (0, _shims.isFunction)(el[method]);
13613 });
13614 } // Might not be found entirely (not an Element?) - in that case, bail
13615 // $FlowIgnore: Doesn't think elements are indexable
13616
13617
13618 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable
13619
13620 return el[matchesSelectorFunc](selector);
13621 } // Works up the tree to the draggable itself attempting to match selector.
13622
13623
13624 function matchesSelectorAndParentsTo(el
13625 /*: Node*/
13626 , selector
13627 /*: string*/
13628 , baseNode
13629 /*: Node*/
13630 )
13631 /*: boolean*/
13632 {
13633 var node = el;
13634
13635 do {
13636 if (matchesSelector(node, selector)) return true;
13637 if (node === baseNode) return false;
13638 node = node.parentNode;
13639 } while (node);
13640
13641 return false;
13642 }
13643
13644 function addEvent(el
13645 /*: ?Node*/
13646 , event
13647 /*: string*/
13648 , handler
13649 /*: Function*/
13650 , inputOptions
13651 /*: Object*/
13652 )
13653 /*: void*/
13654 {
13655 if (!el) return;
13656
13657 var options = _objectSpread({
13658 capture: true
13659 }, inputOptions); // $FlowIgnore[method-unbinding]
13660
13661
13662 if (el.addEventListener) {
13663 el.addEventListener(event, handler, options);
13664 } else if (el.attachEvent) {
13665 el.attachEvent('on' + event, handler);
13666 } else {
13667 // $FlowIgnore: Doesn't think elements are indexable
13668 el['on' + event] = handler;
13669 }
13670 }
13671
13672 function removeEvent(el
13673 /*: ?Node*/
13674 , event
13675 /*: string*/
13676 , handler
13677 /*: Function*/
13678 , inputOptions
13679 /*: Object*/
13680 )
13681 /*: void*/
13682 {
13683 if (!el) return;
13684
13685 var options = _objectSpread({
13686 capture: true
13687 }, inputOptions); // $FlowIgnore[method-unbinding]
13688
13689
13690 if (el.removeEventListener) {
13691 el.removeEventListener(event, handler, options);
13692 } else if (el.detachEvent) {
13693 el.detachEvent('on' + event, handler);
13694 } else {
13695 // $FlowIgnore: Doesn't think elements are indexable
13696 el['on' + event] = null;
13697 }
13698 }
13699
13700 function outerHeight(node
13701 /*: HTMLElement*/
13702 )
13703 /*: number*/
13704 {
13705 // This is deliberately excluding margin for our calculations, since we are using
13706 // offsetTop which is including margin. See getBoundPosition
13707 var height = node.clientHeight;
13708 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13709 height += (0, _shims.int)(computedStyle.borderTopWidth);
13710 height += (0, _shims.int)(computedStyle.borderBottomWidth);
13711 return height;
13712 }
13713
13714 function outerWidth(node
13715 /*: HTMLElement*/
13716 )
13717 /*: number*/
13718 {
13719 // This is deliberately excluding margin for our calculations, since we are using
13720 // offsetLeft which is including margin. See getBoundPosition
13721 var width = node.clientWidth;
13722 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13723 width += (0, _shims.int)(computedStyle.borderLeftWidth);
13724 width += (0, _shims.int)(computedStyle.borderRightWidth);
13725 return width;
13726 }
13727
13728 function innerHeight(node
13729 /*: HTMLElement*/
13730 )
13731 /*: number*/
13732 {
13733 var height = node.clientHeight;
13734 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13735 height -= (0, _shims.int)(computedStyle.paddingTop);
13736 height -= (0, _shims.int)(computedStyle.paddingBottom);
13737 return height;
13738 }
13739
13740 function innerWidth(node
13741 /*: HTMLElement*/
13742 )
13743 /*: number*/
13744 {
13745 var width = node.clientWidth;
13746 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13747 width -= (0, _shims.int)(computedStyle.paddingLeft);
13748 width -= (0, _shims.int)(computedStyle.paddingRight);
13749 return width;
13750 }
13751 /*:: interface EventWithOffset {
13752 clientX: number, clientY: number
13753 }*/
13754
13755
13756 // Get from offsetParent
13757 function offsetXYFromParent(evt
13758 /*: EventWithOffset*/
13759 , offsetParent
13760 /*: HTMLElement*/
13761 , scale
13762 /*: number*/
13763 )
13764 /*: ControlPosition*/
13765 {
13766 var isBody = offsetParent === offsetParent.ownerDocument.body;
13767 var offsetParentRect = isBody ? {
13768 left: 0,
13769 top: 0
13770 } : offsetParent.getBoundingClientRect();
13771 var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
13772 var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
13773 return {
13774 x: x,
13775 y: y
13776 };
13777 }
13778
13779 function createCSSTransform(controlPos
13780 /*: ControlPosition*/
13781 , positionOffset
13782 /*: PositionOffsetControlPosition*/
13783 )
13784 /*: Object*/
13785 {
13786 var translation = getTranslation(controlPos, positionOffset, 'px');
13787 return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);
13788 }
13789
13790 function createSVGTransform(controlPos
13791 /*: ControlPosition*/
13792 , positionOffset
13793 /*: PositionOffsetControlPosition*/
13794 )
13795 /*: string*/
13796 {
13797 var translation = getTranslation(controlPos, positionOffset, '');
13798 return translation;
13799 }
13800
13801 function getTranslation(_ref2, positionOffset
13802 /*: PositionOffsetControlPosition*/
13803 , unitSuffix
13804 /*: string*/
13805 )
13806 /*: string*/
13807 {
13808 var x = _ref2.x,
13809 y = _ref2.y;
13810 var translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
13811
13812 if (positionOffset) {
13813 var defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
13814 var defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
13815 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
13816 }
13817
13818 return translation;
13819 }
13820
13821 function getTouch(e
13822 /*: MouseTouchEvent*/
13823 , identifier
13824 /*: number*/
13825 )
13826 /*: ?{clientX: number, clientY: number}*/
13827 {
13828 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {
13829 return identifier === t.identifier;
13830 }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {
13831 return identifier === t.identifier;
13832 });
13833 }
13834
13835 function getTouchIdentifier(e
13836 /*: MouseTouchEvent*/
13837 )
13838 /*: ?number*/
13839 {
13840 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
13841 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
13842 } // User-select Hacks:
13843 //
13844 // Useful for preventing blue highlights all over everything when dragging.
13845 // Note we're passing `document` b/c we could be iframed
13846
13847
13848 function addUserSelectStyles(doc
13849 /*: ?Document*/
13850 ) {
13851 if (!doc) return;
13852 var styleEl = doc.getElementById('react-draggable-style-el');
13853
13854 if (!styleEl) {
13855 styleEl = doc.createElement('style');
13856 styleEl.type = 'text/css';
13857 styleEl.id = 'react-draggable-style-el';
13858 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
13859 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
13860 doc.getElementsByTagName('head')[0].appendChild(styleEl);
13861 }
13862
13863 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
13864 }
13865
13866 function removeUserSelectStyles(doc
13867 /*: ?Document*/
13868 ) {
13869 if (!doc) return;
13870
13871 try {
13872 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE
13873
13874 if (doc.selection) {
13875 // $FlowIgnore: IE
13876 doc.selection.empty();
13877 } else {
13878 // Remove selection caused by scroll, unless it's a focused input
13879 // (we use doc.defaultView in case we're in an iframe)
13880 var selection = (doc.defaultView || window).getSelection();
13881
13882 if (selection && selection.type !== 'Caret') {
13883 selection.removeAllRanges();
13884 }
13885 }
13886 } catch (e) {// probably IE
13887 }
13888 }
13889
13890 function addClassName(el
13891 /*: HTMLElement*/
13892 , className
13893 /*: string*/
13894 ) {
13895 if (el.classList) {
13896 el.classList.add(className);
13897 } else {
13898 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
13899 el.className += " ".concat(className);
13900 }
13901 }
13902 }
13903
13904 function removeClassName(el
13905 /*: HTMLElement*/
13906 , className
13907 /*: string*/
13908 ) {
13909 if (el.classList) {
13910 el.classList.remove(className);
13911 } else {
13912 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
13913 }
13914 }
13915
13916 /***/ }),
13917
13918 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
13919 /*!********************************************************************!*\
13920 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
13921 \********************************************************************/
13922 /***/ ((__unused_webpack_module, exports) => {
13923
13924 "use strict";
13925
13926
13927 Object.defineProperty(exports, "__esModule", ({
13928 value: true
13929 }));
13930 exports.browserPrefixToKey = browserPrefixToKey;
13931 exports.browserPrefixToStyle = browserPrefixToStyle;
13932 exports["default"] = void 0;
13933 exports.getPrefix = getPrefix;
13934 var prefixes = ['Moz', 'Webkit', 'O', 'ms'];
13935
13936 function getPrefix()
13937 /*: string*/
13938 {
13939 var _window$document, _window$document$docu;
13940
13941 var prop
13942 /*: string*/
13943 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
13944 // Ensure we're running in an environment where there is actually a global
13945 // `window` obj
13946 if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access
13947 // path may not exist, so bail out if it doesn't.
13948
13949 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;
13950 if (!style) return '';
13951 if (prop in style) return '';
13952
13953 for (var i = 0; i < prefixes.length; i++) {
13954 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
13955 }
13956
13957 return '';
13958 }
13959
13960 function browserPrefixToKey(prop
13961 /*: string*/
13962 , prefix
13963 /*: string*/
13964 )
13965 /*: string*/
13966 {
13967 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
13968 }
13969
13970 function browserPrefixToStyle(prop
13971 /*: string*/
13972 , prefix
13973 /*: string*/
13974 )
13975 /*: string*/
13976 {
13977 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
13978 }
13979
13980 function kebabToTitleCase(str
13981 /*: string*/
13982 )
13983 /*: string*/
13984 {
13985 var out = '';
13986 var shouldCapitalize = true;
13987
13988 for (var i = 0; i < str.length; i++) {
13989 if (shouldCapitalize) {
13990 out += str[i].toUpperCase();
13991 shouldCapitalize = false;
13992 } else if (str[i] === '-') {
13993 shouldCapitalize = true;
13994 } else {
13995 out += str[i];
13996 }
13997 }
13998
13999 return out;
14000 } // Default export is the prefix itself, like 'Moz', 'Webkit', etc
14001 // Note that you may have to re-test for certain things; for instance, Chrome 50
14002 // can handle unprefixed `transform`, but not unprefixed `user-select`
14003
14004
14005 var _default = (getPrefix()
14006 /*: string*/
14007 );
14008
14009 exports["default"] = _default;
14010
14011 /***/ }),
14012
14013 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
14014 /*!**************************************************************!*\
14015 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
14016 \**************************************************************/
14017 /***/ ((__unused_webpack_module, exports) => {
14018
14019 "use strict";
14020
14021
14022 Object.defineProperty(exports, "__esModule", ({
14023 value: true
14024 }));
14025 exports["default"] = log;
14026
14027 /*eslint no-console:0*/
14028 function log() {
14029 var _console;
14030
14031 if (false) {}
14032 }
14033
14034 /***/ }),
14035
14036 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
14037 /*!**********************************************************************!*\
14038 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
14039 \**********************************************************************/
14040 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14041
14042 "use strict";
14043
14044
14045 Object.defineProperty(exports, "__esModule", ({
14046 value: true
14047 }));
14048 exports.canDragX = canDragX;
14049 exports.canDragY = canDragY;
14050 exports.createCoreData = createCoreData;
14051 exports.createDraggableData = createDraggableData;
14052 exports.getBoundPosition = getBoundPosition;
14053 exports.getControlPosition = getControlPosition;
14054 exports.snapToGrid = snapToGrid;
14055
14056 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
14057
14058 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
14059
14060 function getBoundPosition(draggable
14061 /*: Draggable*/
14062 , x
14063 /*: number*/
14064 , y
14065 /*: number*/
14066 )
14067 /*: [number, number]*/
14068 {
14069 // If no bounds, short-circuit and move on
14070 if (!draggable.props.bounds) return [x, y]; // Clone new bounds
14071
14072 var bounds = draggable.props.bounds;
14073 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
14074 var node = findDOMNode(draggable);
14075
14076 if (typeof bounds === 'string') {
14077 var ownerDocument = node.ownerDocument;
14078 var ownerWindow = ownerDocument.defaultView;
14079 var boundNode;
14080
14081 if (bounds === 'parent') {
14082 boundNode = node.parentNode;
14083 } else {
14084 boundNode = ownerDocument.querySelector(bounds);
14085 }
14086
14087 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
14088 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
14089 }
14090
14091 var boundNodeEl
14092 /*: HTMLElement*/
14093 = boundNode; // for Flow, can't seem to refine correctly
14094
14095 var nodeStyle = ownerWindow.getComputedStyle(node);
14096 var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
14097
14098 bounds = {
14099 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
14100 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
14101 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
14102 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
14103 };
14104 } // Keep x and y below right and bottom limits...
14105
14106
14107 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
14108 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.
14109
14110 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
14111 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
14112 return [x, y];
14113 }
14114
14115 function snapToGrid(grid
14116 /*: [number, number]*/
14117 , pendingX
14118 /*: number*/
14119 , pendingY
14120 /*: number*/
14121 )
14122 /*: [number, number]*/
14123 {
14124 var x = Math.round(pendingX / grid[0]) * grid[0];
14125 var y = Math.round(pendingY / grid[1]) * grid[1];
14126 return [x, y];
14127 }
14128
14129 function canDragX(draggable
14130 /*: Draggable*/
14131 )
14132 /*: boolean*/
14133 {
14134 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
14135 }
14136
14137 function canDragY(draggable
14138 /*: Draggable*/
14139 )
14140 /*: boolean*/
14141 {
14142 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
14143 } // Get {x, y} positions from event.
14144
14145
14146 function getControlPosition(e
14147 /*: MouseTouchEvent*/
14148 , touchIdentifier
14149 /*: ?number*/
14150 , draggableCore
14151 /*: DraggableCore*/
14152 )
14153 /*: ?ControlPosition*/
14154 {
14155 var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
14156 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
14157
14158 var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.
14159
14160 var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
14161 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
14162 } // Create an data object exposed by <DraggableCore>'s events
14163
14164
14165 function createCoreData(draggable
14166 /*: DraggableCore*/
14167 , x
14168 /*: number*/
14169 , y
14170 /*: number*/
14171 )
14172 /*: DraggableData*/
14173 {
14174 var state = draggable.state;
14175 var isStart = !(0, _shims.isNum)(state.lastX);
14176 var node = findDOMNode(draggable);
14177
14178 if (isStart) {
14179 // If this is our first move, use the x and y as last coords.
14180 return {
14181 node: node,
14182 deltaX: 0,
14183 deltaY: 0,
14184 lastX: x,
14185 lastY: y,
14186 x: x,
14187 y: y
14188 };
14189 } else {
14190 // Otherwise calculate proper values.
14191 return {
14192 node: node,
14193 deltaX: x - state.lastX,
14194 deltaY: y - state.lastY,
14195 lastX: state.lastX,
14196 lastY: state.lastY,
14197 x: x,
14198 y: y
14199 };
14200 }
14201 } // Create an data exposed by <Draggable>'s events
14202
14203
14204 function createDraggableData(draggable
14205 /*: Draggable*/
14206 , coreData
14207 /*: DraggableData*/
14208 )
14209 /*: DraggableData*/
14210 {
14211 var scale = draggable.props.scale;
14212 return {
14213 node: coreData.node,
14214 x: draggable.state.x + coreData.deltaX / scale,
14215 y: draggable.state.y + coreData.deltaY / scale,
14216 deltaX: coreData.deltaX / scale,
14217 deltaY: coreData.deltaY / scale,
14218 lastX: draggable.state.x,
14219 lastY: draggable.state.y
14220 };
14221 } // A lot faster than stringify/parse
14222
14223
14224 function cloneBounds(bounds
14225 /*: Bounds*/
14226 )
14227 /*: Bounds*/
14228 {
14229 return {
14230 left: bounds.left,
14231 top: bounds.top,
14232 right: bounds.right,
14233 bottom: bounds.bottom
14234 };
14235 }
14236
14237 function findDOMNode(draggable
14238 /*: Draggable | DraggableCore*/
14239 )
14240 /*: HTMLElement*/
14241 {
14242 var node = draggable.findDOMNode();
14243
14244 if (!node) {
14245 throw new Error('<DraggableCore>: Unmounted during event!');
14246 } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
14247
14248
14249 return node;
14250 }
14251
14252 /***/ }),
14253
14254 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
14255 /*!****************************************************************!*\
14256 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
14257 \****************************************************************/
14258 /***/ ((__unused_webpack_module, exports) => {
14259
14260 "use strict";
14261
14262
14263 Object.defineProperty(exports, "__esModule", ({
14264 value: true
14265 }));
14266 exports.dontSetMe = dontSetMe;
14267 exports.findInArray = findInArray;
14268 exports.int = int;
14269 exports.isFunction = isFunction;
14270 exports.isNum = isNum;
14271
14272 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
14273 function findInArray(array
14274 /*: Array<any> | TouchList*/
14275 , callback
14276 /*: Function*/
14277 )
14278 /*: any*/
14279 {
14280 for (var i = 0, length = array.length; i < length; i++) {
14281 if (callback.apply(callback, [array[i], i, array])) return array[i];
14282 }
14283 }
14284
14285 function isFunction(func
14286 /*: any*/
14287 )
14288 /*: boolean %checks*/
14289 {
14290 // $FlowIgnore[method-unbinding]
14291 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
14292 }
14293
14294 function isNum(num
14295 /*: any*/
14296 )
14297 /*: boolean %checks*/
14298 {
14299 return typeof num === 'number' && !isNaN(num);
14300 }
14301
14302 function int(a
14303 /*: string*/
14304 )
14305 /*: number*/
14306 {
14307 return parseInt(a, 10);
14308 }
14309
14310 function dontSetMe(props
14311 /*: Object*/
14312 , propName
14313 /*: string*/
14314 , componentName
14315 /*: string*/
14316 )
14317 /*: ?Error*/
14318 {
14319 if (props[propName]) {
14320 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
14321 }
14322 }
14323
14324 /***/ }),
14325
14326 /***/ "../node_modules/react-infinite-scroller/dist/InfiniteScroll.js":
14327 /*!**********************************************************************!*\
14328 !*** ../node_modules/react-infinite-scroller/dist/InfiniteScroll.js ***!
14329 \**********************************************************************/
14330 /***/ ((module, exports, __webpack_require__) => {
14331
14332 "use strict";
14333
14334
14335 Object.defineProperty(exports, "__esModule", ({
14336 value: true
14337 }));
14338
14339 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; }; }();
14340
14341 var _react = __webpack_require__(/*! react */ "react");
14342
14343 var _react2 = _interopRequireDefault(_react);
14344
14345 var _propTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
14346
14347 var _propTypes2 = _interopRequireDefault(_propTypes);
14348
14349 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14350
14351 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; }
14352
14353 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14354
14355 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; }
14356
14357 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; }
14358
14359 var InfiniteScroll = function (_Component) {
14360 _inherits(InfiniteScroll, _Component);
14361
14362 function InfiniteScroll(props) {
14363 _classCallCheck(this, InfiniteScroll);
14364
14365 var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));
14366
14367 _this.scrollListener = _this.scrollListener.bind(_this);
14368 _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);
14369 _this.mousewheelListener = _this.mousewheelListener.bind(_this);
14370 return _this;
14371 }
14372
14373 _createClass(InfiniteScroll, [{
14374 key: 'componentDidMount',
14375 value: function componentDidMount() {
14376 this.pageLoaded = this.props.pageStart;
14377 this.options = this.eventListenerOptions();
14378 this.attachScrollListener();
14379 }
14380 }, {
14381 key: 'componentDidUpdate',
14382 value: function componentDidUpdate() {
14383 if (this.props.isReverse && this.loadMore) {
14384 var parentElement = this.getParentElement(this.scrollComponent);
14385 parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;
14386 this.loadMore = false;
14387 }
14388 this.attachScrollListener();
14389 }
14390 }, {
14391 key: 'componentWillUnmount',
14392 value: function componentWillUnmount() {
14393 this.detachScrollListener();
14394 this.detachMousewheelListener();
14395 }
14396 }, {
14397 key: 'isPassiveSupported',
14398 value: function isPassiveSupported() {
14399 var passive = false;
14400
14401 var testOptions = {
14402 get passive() {
14403 passive = true;
14404 }
14405 };
14406
14407 try {
14408 document.addEventListener('test', null, testOptions);
14409 document.removeEventListener('test', null, testOptions);
14410 } catch (e) {
14411 // ignore
14412 }
14413 return passive;
14414 }
14415 }, {
14416 key: 'eventListenerOptions',
14417 value: function eventListenerOptions() {
14418 var options = this.props.useCapture;
14419
14420 if (this.isPassiveSupported()) {
14421 options = {
14422 useCapture: this.props.useCapture,
14423 passive: true
14424 };
14425 } else {
14426 options = {
14427 passive: false
14428 };
14429 }
14430 return options;
14431 }
14432
14433 // Set a defaut loader for all your `InfiniteScroll` components
14434
14435 }, {
14436 key: 'setDefaultLoader',
14437 value: function setDefaultLoader(loader) {
14438 this.defaultLoader = loader;
14439 }
14440 }, {
14441 key: 'detachMousewheelListener',
14442 value: function detachMousewheelListener() {
14443 var scrollEl = window;
14444 if (this.props.useWindow === false) {
14445 scrollEl = this.scrollComponent.parentNode;
14446 }
14447
14448 scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
14449 }
14450 }, {
14451 key: 'detachScrollListener',
14452 value: function detachScrollListener() {
14453 var scrollEl = window;
14454 if (this.props.useWindow === false) {
14455 scrollEl = this.getParentElement(this.scrollComponent);
14456 }
14457
14458 scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
14459 scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
14460 }
14461 }, {
14462 key: 'getParentElement',
14463 value: function getParentElement(el) {
14464 var scrollParent = this.props.getScrollParent && this.props.getScrollParent();
14465 if (scrollParent != null) {
14466 return scrollParent;
14467 }
14468 return el && el.parentNode;
14469 }
14470 }, {
14471 key: 'filterProps',
14472 value: function filterProps(props) {
14473 return props;
14474 }
14475 }, {
14476 key: 'attachScrollListener',
14477 value: function attachScrollListener() {
14478 var parentElement = this.getParentElement(this.scrollComponent);
14479
14480 if (!this.props.hasMore || !parentElement) {
14481 return;
14482 }
14483
14484 var scrollEl = window;
14485 if (this.props.useWindow === false) {
14486 scrollEl = parentElement;
14487 }
14488
14489 scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
14490 scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
14491 scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
14492
14493 if (this.props.initialLoad) {
14494 this.scrollListener();
14495 }
14496 }
14497 }, {
14498 key: 'mousewheelListener',
14499 value: function mousewheelListener(e) {
14500 // Prevents Chrome hangups
14501 // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
14502 if (e.deltaY === 1 && !this.isPassiveSupported()) {
14503 e.preventDefault();
14504 }
14505 }
14506 }, {
14507 key: 'scrollListener',
14508 value: function scrollListener() {
14509 var el = this.scrollComponent;
14510 var scrollEl = window;
14511 var parentNode = this.getParentElement(el);
14512
14513 var offset = void 0;
14514 if (this.props.useWindow) {
14515 var doc = document.documentElement || document.body.parentNode || document.body;
14516 var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;
14517 if (this.props.isReverse) {
14518 offset = scrollTop;
14519 } else {
14520 offset = this.calculateOffset(el, scrollTop);
14521 }
14522 } else if (this.props.isReverse) {
14523 offset = parentNode.scrollTop;
14524 } else {
14525 offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;
14526 }
14527
14528 // Here we make sure the element is visible as well as checking the offset
14529 if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {
14530 this.detachScrollListener();
14531 this.beforeScrollHeight = parentNode.scrollHeight;
14532 this.beforeScrollTop = parentNode.scrollTop;
14533 // Call loadMore after detachScrollListener to allow for non-async loadMore functions
14534 if (typeof this.props.loadMore === 'function') {
14535 this.props.loadMore(this.pageLoaded += 1);
14536 this.loadMore = true;
14537 }
14538 }
14539 }
14540 }, {
14541 key: 'calculateOffset',
14542 value: function calculateOffset(el, scrollTop) {
14543 if (!el) {
14544 return 0;
14545 }
14546
14547 return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);
14548 }
14549 }, {
14550 key: 'calculateTopPosition',
14551 value: function calculateTopPosition(el) {
14552 if (!el) {
14553 return 0;
14554 }
14555 return el.offsetTop + this.calculateTopPosition(el.offsetParent);
14556 }
14557 }, {
14558 key: 'render',
14559 value: function render() {
14560 var _this2 = this;
14561
14562 var renderProps = this.filterProps(this.props);
14563
14564 var children = renderProps.children,
14565 element = renderProps.element,
14566 hasMore = renderProps.hasMore,
14567 initialLoad = renderProps.initialLoad,
14568 isReverse = renderProps.isReverse,
14569 loader = renderProps.loader,
14570 loadMore = renderProps.loadMore,
14571 pageStart = renderProps.pageStart,
14572 ref = renderProps.ref,
14573 threshold = renderProps.threshold,
14574 useCapture = renderProps.useCapture,
14575 useWindow = renderProps.useWindow,
14576 getScrollParent = renderProps.getScrollParent,
14577 props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);
14578
14579 props.ref = function (node) {
14580 _this2.scrollComponent = node;
14581 if (ref) {
14582 ref(node);
14583 }
14584 };
14585
14586 var childrenArray = [children];
14587 if (hasMore) {
14588 if (loader) {
14589 isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);
14590 } else if (this.defaultLoader) {
14591 isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);
14592 }
14593 }
14594 return _react2.default.createElement(element, props, childrenArray);
14595 }
14596 }]);
14597
14598 return InfiniteScroll;
14599 }(_react.Component);
14600
14601 InfiniteScroll.propTypes = {
14602 children: _propTypes2.default.node.isRequired,
14603 element: _propTypes2.default.node,
14604 hasMore: _propTypes2.default.bool,
14605 initialLoad: _propTypes2.default.bool,
14606 isReverse: _propTypes2.default.bool,
14607 loader: _propTypes2.default.node,
14608 loadMore: _propTypes2.default.func.isRequired,
14609 pageStart: _propTypes2.default.number,
14610 ref: _propTypes2.default.func,
14611 getScrollParent: _propTypes2.default.func,
14612 threshold: _propTypes2.default.number,
14613 useCapture: _propTypes2.default.bool,
14614 useWindow: _propTypes2.default.bool
14615 };
14616 InfiniteScroll.defaultProps = {
14617 element: 'div',
14618 hasMore: false,
14619 initialLoad: true,
14620 pageStart: 0,
14621 ref: null,
14622 threshold: 250,
14623 useWindow: true,
14624 isReverse: false,
14625 useCapture: false,
14626 loader: null,
14627 getScrollParent: null
14628 };
14629 exports["default"] = InfiniteScroll;
14630 module.exports = exports['default'];
14631
14632
14633 /***/ }),
14634
14635 /***/ "../node_modules/react-infinite-scroller/index.js":
14636 /*!********************************************************!*\
14637 !*** ../node_modules/react-infinite-scroller/index.js ***!
14638 \********************************************************/
14639 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
14640
14641 module.exports = __webpack_require__(/*! ./dist/InfiniteScroll */ "../node_modules/react-infinite-scroller/dist/InfiniteScroll.js")
14642
14643
14644 /***/ }),
14645
14646 /***/ "../node_modules/react-is/cjs/react-is.development.js":
14647 /*!************************************************************!*\
14648 !*** ../node_modules/react-is/cjs/react-is.development.js ***!
14649 \************************************************************/
14650 /***/ ((__unused_webpack_module, exports) => {
14651
14652 "use strict";
14653 /**
14654 * @license React
14655 * react-is.development.js
14656 *
14657 * Copyright (c) Facebook, Inc. and its affiliates.
14658 *
14659 * This source code is licensed under the MIT license found in the
14660 * LICENSE file in the root directory of this source tree.
14661 */
14662
14663
14664
14665 if (true) {
14666 (function() {
14667 'use strict';
14668
14669 // ATTENTION
14670 // When adding new symbols to this file,
14671 // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
14672 // The Symbol used to tag the ReactElement-like types.
14673 var REACT_ELEMENT_TYPE = Symbol.for('react.element');
14674 var REACT_PORTAL_TYPE = Symbol.for('react.portal');
14675 var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
14676 var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
14677 var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
14678 var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
14679 var REACT_CONTEXT_TYPE = Symbol.for('react.context');
14680 var REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
14681 var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
14682 var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
14683 var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
14684 var REACT_MEMO_TYPE = Symbol.for('react.memo');
14685 var REACT_LAZY_TYPE = Symbol.for('react.lazy');
14686 var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
14687
14688 // -----------------------------------------------------------------------------
14689
14690 var enableScopeAPI = false; // Experimental Create Event Handle API.
14691 var enableCacheElement = false;
14692 var enableTransitionTracing = false; // No known bugs, but needs performance testing
14693
14694 var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
14695 // stuff. Intended to enable React core members to more easily debug scheduling
14696 // issues in DEV builds.
14697
14698 var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
14699
14700 var REACT_MODULE_REFERENCE;
14701
14702 {
14703 REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
14704 }
14705
14706 function isValidElementType(type) {
14707 if (typeof type === 'string' || typeof type === 'function') {
14708 return true;
14709 } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
14710
14711
14712 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 ) {
14713 return true;
14714 }
14715
14716 if (typeof type === 'object' && type !== null) {
14717 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
14718 // types supported by any Flight configuration anywhere since
14719 // we don't know which Flight build this will end up being used
14720 // with.
14721 type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
14722 return true;
14723 }
14724 }
14725
14726 return false;
14727 }
14728
14729 function typeOf(object) {
14730 if (typeof object === 'object' && object !== null) {
14731 var $$typeof = object.$$typeof;
14732
14733 switch ($$typeof) {
14734 case REACT_ELEMENT_TYPE:
14735 var type = object.type;
14736
14737 switch (type) {
14738 case REACT_FRAGMENT_TYPE:
14739 case REACT_PROFILER_TYPE:
14740 case REACT_STRICT_MODE_TYPE:
14741 case REACT_SUSPENSE_TYPE:
14742 case REACT_SUSPENSE_LIST_TYPE:
14743 return type;
14744
14745 default:
14746 var $$typeofType = type && type.$$typeof;
14747
14748 switch ($$typeofType) {
14749 case REACT_SERVER_CONTEXT_TYPE:
14750 case REACT_CONTEXT_TYPE:
14751 case REACT_FORWARD_REF_TYPE:
14752 case REACT_LAZY_TYPE:
14753 case REACT_MEMO_TYPE:
14754 case REACT_PROVIDER_TYPE:
14755 return $$typeofType;
14756
14757 default:
14758 return $$typeof;
14759 }
14760
14761 }
14762
14763 case REACT_PORTAL_TYPE:
14764 return $$typeof;
14765 }
14766 }
14767
14768 return undefined;
14769 }
14770 var ContextConsumer = REACT_CONTEXT_TYPE;
14771 var ContextProvider = REACT_PROVIDER_TYPE;
14772 var Element = REACT_ELEMENT_TYPE;
14773 var ForwardRef = REACT_FORWARD_REF_TYPE;
14774 var Fragment = REACT_FRAGMENT_TYPE;
14775 var Lazy = REACT_LAZY_TYPE;
14776 var Memo = REACT_MEMO_TYPE;
14777 var Portal = REACT_PORTAL_TYPE;
14778 var Profiler = REACT_PROFILER_TYPE;
14779 var StrictMode = REACT_STRICT_MODE_TYPE;
14780 var Suspense = REACT_SUSPENSE_TYPE;
14781 var SuspenseList = REACT_SUSPENSE_LIST_TYPE;
14782 var hasWarnedAboutDeprecatedIsAsyncMode = false;
14783 var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated
14784
14785 function isAsyncMode(object) {
14786 {
14787 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
14788 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
14789
14790 console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
14791 }
14792 }
14793
14794 return false;
14795 }
14796 function isConcurrentMode(object) {
14797 {
14798 if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
14799 hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint
14800
14801 console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
14802 }
14803 }
14804
14805 return false;
14806 }
14807 function isContextConsumer(object) {
14808 return typeOf(object) === REACT_CONTEXT_TYPE;
14809 }
14810 function isContextProvider(object) {
14811 return typeOf(object) === REACT_PROVIDER_TYPE;
14812 }
14813 function isElement(object) {
14814 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
14815 }
14816 function isForwardRef(object) {
14817 return typeOf(object) === REACT_FORWARD_REF_TYPE;
14818 }
14819 function isFragment(object) {
14820 return typeOf(object) === REACT_FRAGMENT_TYPE;
14821 }
14822 function isLazy(object) {
14823 return typeOf(object) === REACT_LAZY_TYPE;
14824 }
14825 function isMemo(object) {
14826 return typeOf(object) === REACT_MEMO_TYPE;
14827 }
14828 function isPortal(object) {
14829 return typeOf(object) === REACT_PORTAL_TYPE;
14830 }
14831 function isProfiler(object) {
14832 return typeOf(object) === REACT_PROFILER_TYPE;
14833 }
14834 function isStrictMode(object) {
14835 return typeOf(object) === REACT_STRICT_MODE_TYPE;
14836 }
14837 function isSuspense(object) {
14838 return typeOf(object) === REACT_SUSPENSE_TYPE;
14839 }
14840 function isSuspenseList(object) {
14841 return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
14842 }
14843
14844 exports.ContextConsumer = ContextConsumer;
14845 exports.ContextProvider = ContextProvider;
14846 exports.Element = Element;
14847 exports.ForwardRef = ForwardRef;
14848 exports.Fragment = Fragment;
14849 exports.Lazy = Lazy;
14850 exports.Memo = Memo;
14851 exports.Portal = Portal;
14852 exports.Profiler = Profiler;
14853 exports.StrictMode = StrictMode;
14854 exports.Suspense = Suspense;
14855 exports.SuspenseList = SuspenseList;
14856 exports.isAsyncMode = isAsyncMode;
14857 exports.isConcurrentMode = isConcurrentMode;
14858 exports.isContextConsumer = isContextConsumer;
14859 exports.isContextProvider = isContextProvider;
14860 exports.isElement = isElement;
14861 exports.isForwardRef = isForwardRef;
14862 exports.isFragment = isFragment;
14863 exports.isLazy = isLazy;
14864 exports.isMemo = isMemo;
14865 exports.isPortal = isPortal;
14866 exports.isProfiler = isProfiler;
14867 exports.isStrictMode = isStrictMode;
14868 exports.isSuspense = isSuspense;
14869 exports.isSuspenseList = isSuspenseList;
14870 exports.isValidElementType = isValidElementType;
14871 exports.typeOf = typeOf;
14872 })();
14873 }
14874
14875
14876 /***/ }),
14877
14878 /***/ "../node_modules/react-is/index.js":
14879 /*!*****************************************!*\
14880 !*** ../node_modules/react-is/index.js ***!
14881 \*****************************************/
14882 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
14883
14884 "use strict";
14885
14886
14887 if (false) {} else {
14888 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/react-is/cjs/react-is.development.js");
14889 }
14890
14891
14892 /***/ }),
14893
14894 /***/ "../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js":
14895 /*!***************************************************************************!*\
14896 !*** ../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js ***!
14897 \***************************************************************************/
14898 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
14899
14900 "use strict";
14901 __webpack_require__.r(__webpack_exports__);
14902 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14903 /* harmony export */ Canvas: () => (/* binding */ Canvas),
14904 /* harmony export */ ReactSketchCanvas: () => (/* binding */ ReactSketchCanvas)
14905 /* harmony export */ });
14906 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14907 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14908
14909
14910 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
14911 try {
14912 var info = gen[key](arg);
14913 var value = info.value;
14914 } catch (error) {
14915 reject(error);
14916 return;
14917 }
14918
14919 if (info.done) {
14920 resolve(value);
14921 } else {
14922 Promise.resolve(value).then(_next, _throw);
14923 }
14924 }
14925
14926 function _asyncToGenerator(fn) {
14927 return function () {
14928 var self = this,
14929 args = arguments;
14930 return new Promise(function (resolve, reject) {
14931 var gen = fn.apply(self, args);
14932
14933 function _next(value) {
14934 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
14935 }
14936
14937 function _throw(err) {
14938 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
14939 }
14940
14941 _next(undefined);
14942 });
14943 };
14944 }
14945
14946 function _extends() {
14947 _extends = Object.assign || function (target) {
14948 for (var i = 1; i < arguments.length; i++) {
14949 var source = arguments[i];
14950
14951 for (var key in source) {
14952 if (Object.prototype.hasOwnProperty.call(source, key)) {
14953 target[key] = source[key];
14954 }
14955 }
14956 }
14957
14958 return target;
14959 };
14960
14961 return _extends.apply(this, arguments);
14962 }
14963
14964 var runtime = {exports: {}};
14965
14966 /**
14967 * Copyright (c) 2014-present, Facebook, Inc.
14968 *
14969 * This source code is licensed under the MIT license found in the
14970 * LICENSE file in the root directory of this source tree.
14971 */
14972
14973 (function (module) {
14974 var runtime = (function (exports) {
14975
14976 var Op = Object.prototype;
14977 var hasOwn = Op.hasOwnProperty;
14978 var undefined$1; // More compressible than void 0.
14979 var $Symbol = typeof Symbol === "function" ? Symbol : {};
14980 var iteratorSymbol = $Symbol.iterator || "@@iterator";
14981 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
14982 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
14983
14984 function define(obj, key, value) {
14985 Object.defineProperty(obj, key, {
14986 value: value,
14987 enumerable: true,
14988 configurable: true,
14989 writable: true
14990 });
14991 return obj[key];
14992 }
14993 try {
14994 // IE 8 has a broken Object.defineProperty that only works on DOM objects.
14995 define({}, "");
14996 } catch (err) {
14997 define = function(obj, key, value) {
14998 return obj[key] = value;
14999 };
15000 }
15001
15002 function wrap(innerFn, outerFn, self, tryLocsList) {
15003 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
15004 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
15005 var generator = Object.create(protoGenerator.prototype);
15006 var context = new Context(tryLocsList || []);
15007
15008 // The ._invoke method unifies the implementations of the .next,
15009 // .throw, and .return methods.
15010 generator._invoke = makeInvokeMethod(innerFn, self, context);
15011
15012 return generator;
15013 }
15014 exports.wrap = wrap;
15015
15016 // Try/catch helper to minimize deoptimizations. Returns a completion
15017 // record like context.tryEntries[i].completion. This interface could
15018 // have been (and was previously) designed to take a closure to be
15019 // invoked without arguments, but in all the cases we care about we
15020 // already have an existing method we want to call, so there's no need
15021 // to create a new function object. We can even get away with assuming
15022 // the method takes exactly one argument, since that happens to be true
15023 // in every case, so we don't have to touch the arguments object. The
15024 // only additional allocation required is the completion record, which
15025 // has a stable shape and so hopefully should be cheap to allocate.
15026 function tryCatch(fn, obj, arg) {
15027 try {
15028 return { type: "normal", arg: fn.call(obj, arg) };
15029 } catch (err) {
15030 return { type: "throw", arg: err };
15031 }
15032 }
15033
15034 var GenStateSuspendedStart = "suspendedStart";
15035 var GenStateSuspendedYield = "suspendedYield";
15036 var GenStateExecuting = "executing";
15037 var GenStateCompleted = "completed";
15038
15039 // Returning this object from the innerFn has the same effect as
15040 // breaking out of the dispatch switch statement.
15041 var ContinueSentinel = {};
15042
15043 // Dummy constructor functions that we use as the .constructor and
15044 // .constructor.prototype properties for functions that return Generator
15045 // objects. For full spec compliance, you may wish to configure your
15046 // minifier not to mangle the names of these two functions.
15047 function Generator() {}
15048 function GeneratorFunction() {}
15049 function GeneratorFunctionPrototype() {}
15050
15051 // This is a polyfill for %IteratorPrototype% for environments that
15052 // don't natively support it.
15053 var IteratorPrototype = {};
15054 define(IteratorPrototype, iteratorSymbol, function () {
15055 return this;
15056 });
15057
15058 var getProto = Object.getPrototypeOf;
15059 var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
15060 if (NativeIteratorPrototype &&
15061 NativeIteratorPrototype !== Op &&
15062 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
15063 // This environment has a native %IteratorPrototype%; use it instead
15064 // of the polyfill.
15065 IteratorPrototype = NativeIteratorPrototype;
15066 }
15067
15068 var Gp = GeneratorFunctionPrototype.prototype =
15069 Generator.prototype = Object.create(IteratorPrototype);
15070 GeneratorFunction.prototype = GeneratorFunctionPrototype;
15071 define(Gp, "constructor", GeneratorFunctionPrototype);
15072 define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
15073 GeneratorFunction.displayName = define(
15074 GeneratorFunctionPrototype,
15075 toStringTagSymbol,
15076 "GeneratorFunction"
15077 );
15078
15079 // Helper for defining the .next, .throw, and .return methods of the
15080 // Iterator interface in terms of a single ._invoke method.
15081 function defineIteratorMethods(prototype) {
15082 ["next", "throw", "return"].forEach(function(method) {
15083 define(prototype, method, function(arg) {
15084 return this._invoke(method, arg);
15085 });
15086 });
15087 }
15088
15089 exports.isGeneratorFunction = function(genFun) {
15090 var ctor = typeof genFun === "function" && genFun.constructor;
15091 return ctor
15092 ? ctor === GeneratorFunction ||
15093 // For the native GeneratorFunction constructor, the best we can
15094 // do is to check its .name property.
15095 (ctor.displayName || ctor.name) === "GeneratorFunction"
15096 : false;
15097 };
15098
15099 exports.mark = function(genFun) {
15100 if (Object.setPrototypeOf) {
15101 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
15102 } else {
15103 genFun.__proto__ = GeneratorFunctionPrototype;
15104 define(genFun, toStringTagSymbol, "GeneratorFunction");
15105 }
15106 genFun.prototype = Object.create(Gp);
15107 return genFun;
15108 };
15109
15110 // Within the body of any async function, `await x` is transformed to
15111 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
15112 // `hasOwn.call(value, "__await")` to determine if the yielded value is
15113 // meant to be awaited.
15114 exports.awrap = function(arg) {
15115 return { __await: arg };
15116 };
15117
15118 function AsyncIterator(generator, PromiseImpl) {
15119 function invoke(method, arg, resolve, reject) {
15120 var record = tryCatch(generator[method], generator, arg);
15121 if (record.type === "throw") {
15122 reject(record.arg);
15123 } else {
15124 var result = record.arg;
15125 var value = result.value;
15126 if (value &&
15127 typeof value === "object" &&
15128 hasOwn.call(value, "__await")) {
15129 return PromiseImpl.resolve(value.__await).then(function(value) {
15130 invoke("next", value, resolve, reject);
15131 }, function(err) {
15132 invoke("throw", err, resolve, reject);
15133 });
15134 }
15135
15136 return PromiseImpl.resolve(value).then(function(unwrapped) {
15137 // When a yielded Promise is resolved, its final value becomes
15138 // the .value of the Promise<{value,done}> result for the
15139 // current iteration.
15140 result.value = unwrapped;
15141 resolve(result);
15142 }, function(error) {
15143 // If a rejected Promise was yielded, throw the rejection back
15144 // into the async generator function so it can be handled there.
15145 return invoke("throw", error, resolve, reject);
15146 });
15147 }
15148 }
15149
15150 var previousPromise;
15151
15152 function enqueue(method, arg) {
15153 function callInvokeWithMethodAndArg() {
15154 return new PromiseImpl(function(resolve, reject) {
15155 invoke(method, arg, resolve, reject);
15156 });
15157 }
15158
15159 return previousPromise =
15160 // If enqueue has been called before, then we want to wait until
15161 // all previous Promises have been resolved before calling invoke,
15162 // so that results are always delivered in the correct order. If
15163 // enqueue has not been called before, then it is important to
15164 // call invoke immediately, without waiting on a callback to fire,
15165 // so that the async generator function has the opportunity to do
15166 // any necessary setup in a predictable way. This predictability
15167 // is why the Promise constructor synchronously invokes its
15168 // executor callback, and why async functions synchronously
15169 // execute code before the first await. Since we implement simple
15170 // async functions in terms of async generators, it is especially
15171 // important to get this right, even though it requires care.
15172 previousPromise ? previousPromise.then(
15173 callInvokeWithMethodAndArg,
15174 // Avoid propagating failures to Promises returned by later
15175 // invocations of the iterator.
15176 callInvokeWithMethodAndArg
15177 ) : callInvokeWithMethodAndArg();
15178 }
15179
15180 // Define the unified helper method that is used to implement .next,
15181 // .throw, and .return (see defineIteratorMethods).
15182 this._invoke = enqueue;
15183 }
15184
15185 defineIteratorMethods(AsyncIterator.prototype);
15186 define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
15187 return this;
15188 });
15189 exports.AsyncIterator = AsyncIterator;
15190
15191 // Note that simple async functions are implemented on top of
15192 // AsyncIterator objects; they just return a Promise for the value of
15193 // the final result produced by the iterator.
15194 exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
15195 if (PromiseImpl === void 0) PromiseImpl = Promise;
15196
15197 var iter = new AsyncIterator(
15198 wrap(innerFn, outerFn, self, tryLocsList),
15199 PromiseImpl
15200 );
15201
15202 return exports.isGeneratorFunction(outerFn)
15203 ? iter // If outerFn is a generator, return the full iterator.
15204 : iter.next().then(function(result) {
15205 return result.done ? result.value : iter.next();
15206 });
15207 };
15208
15209 function makeInvokeMethod(innerFn, self, context) {
15210 var state = GenStateSuspendedStart;
15211
15212 return function invoke(method, arg) {
15213 if (state === GenStateExecuting) {
15214 throw new Error("Generator is already running");
15215 }
15216
15217 if (state === GenStateCompleted) {
15218 if (method === "throw") {
15219 throw arg;
15220 }
15221
15222 // Be forgiving, per 25.3.3.3.3 of the spec:
15223 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
15224 return doneResult();
15225 }
15226
15227 context.method = method;
15228 context.arg = arg;
15229
15230 while (true) {
15231 var delegate = context.delegate;
15232 if (delegate) {
15233 var delegateResult = maybeInvokeDelegate(delegate, context);
15234 if (delegateResult) {
15235 if (delegateResult === ContinueSentinel) continue;
15236 return delegateResult;
15237 }
15238 }
15239
15240 if (context.method === "next") {
15241 // Setting context._sent for legacy support of Babel's
15242 // function.sent implementation.
15243 context.sent = context._sent = context.arg;
15244
15245 } else if (context.method === "throw") {
15246 if (state === GenStateSuspendedStart) {
15247 state = GenStateCompleted;
15248 throw context.arg;
15249 }
15250
15251 context.dispatchException(context.arg);
15252
15253 } else if (context.method === "return") {
15254 context.abrupt("return", context.arg);
15255 }
15256
15257 state = GenStateExecuting;
15258
15259 var record = tryCatch(innerFn, self, context);
15260 if (record.type === "normal") {
15261 // If an exception is thrown from innerFn, we leave state ===
15262 // GenStateExecuting and loop back for another invocation.
15263 state = context.done
15264 ? GenStateCompleted
15265 : GenStateSuspendedYield;
15266
15267 if (record.arg === ContinueSentinel) {
15268 continue;
15269 }
15270
15271 return {
15272 value: record.arg,
15273 done: context.done
15274 };
15275
15276 } else if (record.type === "throw") {
15277 state = GenStateCompleted;
15278 // Dispatch the exception by looping back around to the
15279 // context.dispatchException(context.arg) call above.
15280 context.method = "throw";
15281 context.arg = record.arg;
15282 }
15283 }
15284 };
15285 }
15286
15287 // Call delegate.iterator[context.method](context.arg) and handle the
15288 // result, either by returning a { value, done } result from the
15289 // delegate iterator, or by modifying context.method and context.arg,
15290 // setting context.delegate to null, and returning the ContinueSentinel.
15291 function maybeInvokeDelegate(delegate, context) {
15292 var method = delegate.iterator[context.method];
15293 if (method === undefined$1) {
15294 // A .throw or .return when the delegate iterator has no .throw
15295 // method always terminates the yield* loop.
15296 context.delegate = null;
15297
15298 if (context.method === "throw") {
15299 // Note: ["return"] must be used for ES3 parsing compatibility.
15300 if (delegate.iterator["return"]) {
15301 // If the delegate iterator has a return method, give it a
15302 // chance to clean up.
15303 context.method = "return";
15304 context.arg = undefined$1;
15305 maybeInvokeDelegate(delegate, context);
15306
15307 if (context.method === "throw") {
15308 // If maybeInvokeDelegate(context) changed context.method from
15309 // "return" to "throw", let that override the TypeError below.
15310 return ContinueSentinel;
15311 }
15312 }
15313
15314 context.method = "throw";
15315 context.arg = new TypeError(
15316 "The iterator does not provide a 'throw' method");
15317 }
15318
15319 return ContinueSentinel;
15320 }
15321
15322 var record = tryCatch(method, delegate.iterator, context.arg);
15323
15324 if (record.type === "throw") {
15325 context.method = "throw";
15326 context.arg = record.arg;
15327 context.delegate = null;
15328 return ContinueSentinel;
15329 }
15330
15331 var info = record.arg;
15332
15333 if (! info) {
15334 context.method = "throw";
15335 context.arg = new TypeError("iterator result is not an object");
15336 context.delegate = null;
15337 return ContinueSentinel;
15338 }
15339
15340 if (info.done) {
15341 // Assign the result of the finished delegate to the temporary
15342 // variable specified by delegate.resultName (see delegateYield).
15343 context[delegate.resultName] = info.value;
15344
15345 // Resume execution at the desired location (see delegateYield).
15346 context.next = delegate.nextLoc;
15347
15348 // If context.method was "throw" but the delegate handled the
15349 // exception, let the outer generator proceed normally. If
15350 // context.method was "next", forget context.arg since it has been
15351 // "consumed" by the delegate iterator. If context.method was
15352 // "return", allow the original .return call to continue in the
15353 // outer generator.
15354 if (context.method !== "return") {
15355 context.method = "next";
15356 context.arg = undefined$1;
15357 }
15358
15359 } else {
15360 // Re-yield the result returned by the delegate method.
15361 return info;
15362 }
15363
15364 // The delegate iterator is finished, so forget it and continue with
15365 // the outer generator.
15366 context.delegate = null;
15367 return ContinueSentinel;
15368 }
15369
15370 // Define Generator.prototype.{next,throw,return} in terms of the
15371 // unified ._invoke helper method.
15372 defineIteratorMethods(Gp);
15373
15374 define(Gp, toStringTagSymbol, "Generator");
15375
15376 // A Generator should always return itself as the iterator object when the
15377 // @@iterator function is called on it. Some browsers' implementations of the
15378 // iterator prototype chain incorrectly implement this, causing the Generator
15379 // object to not be returned from this call. This ensures that doesn't happen.
15380 // See https://github.com/facebook/regenerator/issues/274 for more details.
15381 define(Gp, iteratorSymbol, function() {
15382 return this;
15383 });
15384
15385 define(Gp, "toString", function() {
15386 return "[object Generator]";
15387 });
15388
15389 function pushTryEntry(locs) {
15390 var entry = { tryLoc: locs[0] };
15391
15392 if (1 in locs) {
15393 entry.catchLoc = locs[1];
15394 }
15395
15396 if (2 in locs) {
15397 entry.finallyLoc = locs[2];
15398 entry.afterLoc = locs[3];
15399 }
15400
15401 this.tryEntries.push(entry);
15402 }
15403
15404 function resetTryEntry(entry) {
15405 var record = entry.completion || {};
15406 record.type = "normal";
15407 delete record.arg;
15408 entry.completion = record;
15409 }
15410
15411 function Context(tryLocsList) {
15412 // The root entry object (effectively a try statement without a catch
15413 // or a finally block) gives us a place to store values thrown from
15414 // locations where there is no enclosing try statement.
15415 this.tryEntries = [{ tryLoc: "root" }];
15416 tryLocsList.forEach(pushTryEntry, this);
15417 this.reset(true);
15418 }
15419
15420 exports.keys = function(object) {
15421 var keys = [];
15422 for (var key in object) {
15423 keys.push(key);
15424 }
15425 keys.reverse();
15426
15427 // Rather than returning an object with a next method, we keep
15428 // things simple and return the next function itself.
15429 return function next() {
15430 while (keys.length) {
15431 var key = keys.pop();
15432 if (key in object) {
15433 next.value = key;
15434 next.done = false;
15435 return next;
15436 }
15437 }
15438
15439 // To avoid creating an additional object, we just hang the .value
15440 // and .done properties off the next function object itself. This
15441 // also ensures that the minifier will not anonymize the function.
15442 next.done = true;
15443 return next;
15444 };
15445 };
15446
15447 function values(iterable) {
15448 if (iterable) {
15449 var iteratorMethod = iterable[iteratorSymbol];
15450 if (iteratorMethod) {
15451 return iteratorMethod.call(iterable);
15452 }
15453
15454 if (typeof iterable.next === "function") {
15455 return iterable;
15456 }
15457
15458 if (!isNaN(iterable.length)) {
15459 var i = -1, next = function next() {
15460 while (++i < iterable.length) {
15461 if (hasOwn.call(iterable, i)) {
15462 next.value = iterable[i];
15463 next.done = false;
15464 return next;
15465 }
15466 }
15467
15468 next.value = undefined$1;
15469 next.done = true;
15470
15471 return next;
15472 };
15473
15474 return next.next = next;
15475 }
15476 }
15477
15478 // Return an iterator with no values.
15479 return { next: doneResult };
15480 }
15481 exports.values = values;
15482
15483 function doneResult() {
15484 return { value: undefined$1, done: true };
15485 }
15486
15487 Context.prototype = {
15488 constructor: Context,
15489
15490 reset: function(skipTempReset) {
15491 this.prev = 0;
15492 this.next = 0;
15493 // Resetting context._sent for legacy support of Babel's
15494 // function.sent implementation.
15495 this.sent = this._sent = undefined$1;
15496 this.done = false;
15497 this.delegate = null;
15498
15499 this.method = "next";
15500 this.arg = undefined$1;
15501
15502 this.tryEntries.forEach(resetTryEntry);
15503
15504 if (!skipTempReset) {
15505 for (var name in this) {
15506 // Not sure about the optimal order of these conditions:
15507 if (name.charAt(0) === "t" &&
15508 hasOwn.call(this, name) &&
15509 !isNaN(+name.slice(1))) {
15510 this[name] = undefined$1;
15511 }
15512 }
15513 }
15514 },
15515
15516 stop: function() {
15517 this.done = true;
15518
15519 var rootEntry = this.tryEntries[0];
15520 var rootRecord = rootEntry.completion;
15521 if (rootRecord.type === "throw") {
15522 throw rootRecord.arg;
15523 }
15524
15525 return this.rval;
15526 },
15527
15528 dispatchException: function(exception) {
15529 if (this.done) {
15530 throw exception;
15531 }
15532
15533 var context = this;
15534 function handle(loc, caught) {
15535 record.type = "throw";
15536 record.arg = exception;
15537 context.next = loc;
15538
15539 if (caught) {
15540 // If the dispatched exception was caught by a catch block,
15541 // then let that catch block handle the exception normally.
15542 context.method = "next";
15543 context.arg = undefined$1;
15544 }
15545
15546 return !! caught;
15547 }
15548
15549 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15550 var entry = this.tryEntries[i];
15551 var record = entry.completion;
15552
15553 if (entry.tryLoc === "root") {
15554 // Exception thrown outside of any try block that could handle
15555 // it, so set the completion value of the entire function to
15556 // throw the exception.
15557 return handle("end");
15558 }
15559
15560 if (entry.tryLoc <= this.prev) {
15561 var hasCatch = hasOwn.call(entry, "catchLoc");
15562 var hasFinally = hasOwn.call(entry, "finallyLoc");
15563
15564 if (hasCatch && hasFinally) {
15565 if (this.prev < entry.catchLoc) {
15566 return handle(entry.catchLoc, true);
15567 } else if (this.prev < entry.finallyLoc) {
15568 return handle(entry.finallyLoc);
15569 }
15570
15571 } else if (hasCatch) {
15572 if (this.prev < entry.catchLoc) {
15573 return handle(entry.catchLoc, true);
15574 }
15575
15576 } else if (hasFinally) {
15577 if (this.prev < entry.finallyLoc) {
15578 return handle(entry.finallyLoc);
15579 }
15580
15581 } else {
15582 throw new Error("try statement without catch or finally");
15583 }
15584 }
15585 }
15586 },
15587
15588 abrupt: function(type, arg) {
15589 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15590 var entry = this.tryEntries[i];
15591 if (entry.tryLoc <= this.prev &&
15592 hasOwn.call(entry, "finallyLoc") &&
15593 this.prev < entry.finallyLoc) {
15594 var finallyEntry = entry;
15595 break;
15596 }
15597 }
15598
15599 if (finallyEntry &&
15600 (type === "break" ||
15601 type === "continue") &&
15602 finallyEntry.tryLoc <= arg &&
15603 arg <= finallyEntry.finallyLoc) {
15604 // Ignore the finally entry if control is not jumping to a
15605 // location outside the try/catch block.
15606 finallyEntry = null;
15607 }
15608
15609 var record = finallyEntry ? finallyEntry.completion : {};
15610 record.type = type;
15611 record.arg = arg;
15612
15613 if (finallyEntry) {
15614 this.method = "next";
15615 this.next = finallyEntry.finallyLoc;
15616 return ContinueSentinel;
15617 }
15618
15619 return this.complete(record);
15620 },
15621
15622 complete: function(record, afterLoc) {
15623 if (record.type === "throw") {
15624 throw record.arg;
15625 }
15626
15627 if (record.type === "break" ||
15628 record.type === "continue") {
15629 this.next = record.arg;
15630 } else if (record.type === "return") {
15631 this.rval = this.arg = record.arg;
15632 this.method = "return";
15633 this.next = "end";
15634 } else if (record.type === "normal" && afterLoc) {
15635 this.next = afterLoc;
15636 }
15637
15638 return ContinueSentinel;
15639 },
15640
15641 finish: function(finallyLoc) {
15642 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15643 var entry = this.tryEntries[i];
15644 if (entry.finallyLoc === finallyLoc) {
15645 this.complete(entry.completion, entry.afterLoc);
15646 resetTryEntry(entry);
15647 return ContinueSentinel;
15648 }
15649 }
15650 },
15651
15652 "catch": function(tryLoc) {
15653 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15654 var entry = this.tryEntries[i];
15655 if (entry.tryLoc === tryLoc) {
15656 var record = entry.completion;
15657 if (record.type === "throw") {
15658 var thrown = record.arg;
15659 resetTryEntry(entry);
15660 }
15661 return thrown;
15662 }
15663 }
15664
15665 // The context.catch method must only be called with a location
15666 // argument that corresponds to a known catch block.
15667 throw new Error("illegal catch attempt");
15668 },
15669
15670 delegateYield: function(iterable, resultName, nextLoc) {
15671 this.delegate = {
15672 iterator: values(iterable),
15673 resultName: resultName,
15674 nextLoc: nextLoc
15675 };
15676
15677 if (this.method === "next") {
15678 // Deliberately forget the last sent value so that we don't
15679 // accidentally pass it on to the delegate.
15680 this.arg = undefined$1;
15681 }
15682
15683 return ContinueSentinel;
15684 }
15685 };
15686
15687 // Regardless of whether this script is executing as a CommonJS module
15688 // or not, return the runtime object so that we can declare the variable
15689 // regeneratorRuntime in the outer scope, which allows this module to be
15690 // injected easily by `bin/regenerator --include-runtime script.js`.
15691 return exports;
15692
15693 }(
15694 // If this script is executing as a CommonJS module, use module.exports
15695 // as the regeneratorRuntime namespace. Otherwise create a new empty
15696 // object. Either way, the resulting object will be used to initialize
15697 // the regeneratorRuntime variable at the top of this file.
15698 module.exports
15699 ));
15700
15701 try {
15702 regeneratorRuntime = runtime;
15703 } catch (accidentalStrictMode) {
15704 // This module should not be running in strict mode, so the above
15705 // assignment should always work unless something is misconfigured. Just
15706 // in case runtime.js accidentally runs in strict mode, in modern engines
15707 // we can explicitly access globalThis. In older engines we can escape
15708 // strict mode using a global Function call. This could conceivably fail
15709 // if a Content Security Policy forbids using Function, but in that case
15710 // the proper solution is to fix the accidental strict mode problem. If
15711 // you've misconfigured your bundler to force strict mode and applied a
15712 // CSP to forbid Function, and you're not willing to fix either of those
15713 // problems, please detail your unique predicament in a GitHub issue.
15714 if (typeof globalThis === "object") {
15715 globalThis.regeneratorRuntime = runtime;
15716 } else {
15717 Function("r", "regeneratorRuntime = r")(runtime);
15718 }
15719 }
15720 }(runtime));
15721
15722 var _regeneratorRuntime = runtime.exports;
15723
15724 /**
15725 * Generate SVG Path tag from the given points
15726 */
15727
15728 var SvgPath = function SvgPath(_ref) {
15729 var paths = _ref.paths,
15730 id = _ref.id,
15731 strokeWidth = _ref.strokeWidth,
15732 strokeColor = _ref.strokeColor,
15733 _ref$command = _ref.command,
15734 command = _ref$command === void 0 ? bezierCommand : _ref$command;
15735
15736 if (paths.length === 1) {
15737 var _paths$ = paths[0],
15738 x = _paths$.x,
15739 y = _paths$.y;
15740 var radius = strokeWidth / 2;
15741 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("circle", {
15742 key: id,
15743 id: id,
15744 cx: x,
15745 cy: y,
15746 r: radius,
15747 stroke: strokeColor,
15748 fill: strokeColor
15749 });
15750 }
15751
15752 var d = paths.reduce(function (acc, point, i, a) {
15753 return i === 0 ? "M " + point.x + "," + point.y : acc + " " + command(point, i, a);
15754 }, '');
15755 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
15756 key: id,
15757 id: id,
15758 d: d,
15759 fill: "none",
15760 strokeLinecap: "round",
15761 stroke: strokeColor,
15762 strokeWidth: strokeWidth
15763 });
15764 };
15765 var line = function line(pointA, pointB) {
15766 var lengthX = pointB.x - pointA.x;
15767 var lengthY = pointB.y - pointA.y;
15768 return {
15769 length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),
15770 angle: Math.atan2(lengthY, lengthX)
15771 };
15772 };
15773
15774 var controlPoint = function controlPoint(controlPoints) {
15775 var current = controlPoints.current,
15776 next = controlPoints.next,
15777 previous = controlPoints.previous,
15778 reverse = controlPoints.reverse;
15779 var p = previous || current;
15780 var n = next || current;
15781 var smoothing = 0.2;
15782 var o = line(p, n);
15783 var angle = o.angle + (reverse ? Math.PI : 0);
15784 var length = o.length * smoothing;
15785 var x = current.x + Math.cos(angle) * length;
15786 var y = current.y + Math.sin(angle) * length;
15787 return [x, y];
15788 };
15789
15790 var bezierCommand = function bezierCommand(point, i, a) {
15791 var cpsX = null;
15792 var cpsY = null;
15793
15794 switch (i) {
15795 case 0:
15796 var _controlPoint = controlPoint({
15797 current: point
15798 });
15799
15800 cpsX = _controlPoint[0];
15801 cpsY = _controlPoint[1];
15802 break;
15803
15804 case 1:
15805 var _controlPoint2 = controlPoint({
15806 current: a[i - 1],
15807 next: point
15808 });
15809
15810 cpsX = _controlPoint2[0];
15811 cpsY = _controlPoint2[1];
15812 break;
15813
15814 default:
15815 var _controlPoint3 = controlPoint({
15816 current: a[i - 1],
15817 previous: a[i - 2],
15818 next: point
15819 });
15820
15821 cpsX = _controlPoint3[0];
15822 cpsY = _controlPoint3[1];
15823 break;
15824 }
15825
15826 var _controlPoint4 = controlPoint({
15827 current: point,
15828 previous: a[i - 1],
15829 next: a[i + 1],
15830 reverse: true
15831 }),
15832 cpeX = _controlPoint4[0],
15833 cpeY = _controlPoint4[1];
15834
15835 return "C " + cpsX + "," + cpsY + " " + cpeX + "," + cpeY + " " + point.x + ", " + point.y;
15836 };
15837
15838 var Paths = function Paths(_ref2) {
15839 var id = _ref2.id,
15840 paths = _ref2.paths;
15841 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, paths.map(function (path, index) {
15842 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(SvgPath, {
15843 key: id + "__" + index,
15844 paths: path.paths,
15845 id: id + "__" + index,
15846 strokeWidth: path.strokeWidth,
15847 strokeColor: path.strokeColor,
15848 command: bezierCommand
15849 });
15850 }));
15851 };
15852
15853 var loadImage = function loadImage(url) {
15854 return new Promise(function (resolve, reject) {
15855 var img = new Image();
15856 img.addEventListener('load', function () {
15857 if (img.width > 0) {
15858 resolve(img);
15859 }
15860
15861 reject('Image not found');
15862 });
15863 img.addEventListener('error', function (err) {
15864 return reject(err);
15865 });
15866 img.src = url;
15867 img.setAttribute('crossorigin', 'anonymous');
15868 });
15869 };
15870
15871 function getCanvasWithViewBox(canvas) {
15872 var _canvas$firstChild;
15873
15874 var svgCanvas = (_canvas$firstChild = canvas.firstChild) == null ? void 0 : _canvas$firstChild.cloneNode(true);
15875 var width = canvas.offsetWidth;
15876 var height = canvas.offsetHeight;
15877 svgCanvas.setAttribute('viewBox', "0 0 " + width + " " + height);
15878 svgCanvas.setAttribute('width', width.toString());
15879 svgCanvas.setAttribute('height', height.toString());
15880 return {
15881 svgCanvas: svgCanvas,
15882 width: width,
15883 height: height
15884 };
15885 }
15886
15887 var Canvas = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {
15888 var paths = props.paths,
15889 isDrawing = props.isDrawing,
15890 onPointerDown = props.onPointerDown,
15891 onPointerMove = props.onPointerMove,
15892 onPointerUp = props.onPointerUp,
15893 _props$id = props.id,
15894 id = _props$id === void 0 ? 'react-sketch-canvas' : _props$id,
15895 _props$width = props.width,
15896 width = _props$width === void 0 ? '100%' : _props$width,
15897 _props$height = props.height,
15898 height = _props$height === void 0 ? '100%' : _props$height,
15899 _props$className = props.className,
15900 className = _props$className === void 0 ? 'react-sketch-canvas' : _props$className,
15901 _props$canvasColor = props.canvasColor,
15902 canvasColor = _props$canvasColor === void 0 ? 'red' : _props$canvasColor,
15903 _props$backgroundImag = props.backgroundImage,
15904 backgroundImage = _props$backgroundImag === void 0 ? '' : _props$backgroundImag,
15905 _props$exportWithBack = props.exportWithBackgroundImage,
15906 exportWithBackgroundImage = _props$exportWithBack === void 0 ? false : _props$exportWithBack,
15907 _props$preserveBackgr = props.preserveBackgroundImageAspectRatio,
15908 preserveBackgroundImageAspectRatio = _props$preserveBackgr === void 0 ? 'none' : _props$preserveBackgr,
15909 _props$allowOnlyPoint = props.allowOnlyPointerType,
15910 allowOnlyPointerType = _props$allowOnlyPoint === void 0 ? 'all' : _props$allowOnlyPoint,
15911 _props$style = props.style,
15912 style = _props$style === void 0 ? {
15913 border: '0.0625rem solid #9c9c9c',
15914 borderRadius: '0.25rem'
15915 } : _props$style,
15916 _props$svgStyle = props.svgStyle,
15917 svgStyle = _props$svgStyle === void 0 ? {} : _props$svgStyle;
15918 var canvasRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); // Converts mouse coordinates to relative coordinate based on the absolute position of svg
15919
15920 var getCoordinates = function getCoordinates(pointerEvent) {
15921 var _canvasRef$current, _window$scrollX, _window$scrollY;
15922
15923 var boundingArea = (_canvasRef$current = canvasRef.current) == null ? void 0 : _canvasRef$current.getBoundingClientRect();
15924 var scrollLeft = (_window$scrollX = window.scrollX) != null ? _window$scrollX : 0;
15925 var scrollTop = (_window$scrollY = window.scrollY) != null ? _window$scrollY : 0;
15926
15927 if (!boundingArea) {
15928 return {
15929 x: 0,
15930 y: 0
15931 };
15932 }
15933
15934 var point = {
15935 x: pointerEvent.pageX - boundingArea.left - scrollLeft,
15936 y: pointerEvent.pageY - boundingArea.top - scrollTop
15937 };
15938 return point;
15939 };
15940 /* Mouse Handlers - Mouse down, move and up */
15941
15942
15943 var handlePointerDown = function handlePointerDown(event) {
15944 // Allow only chosen pointer type
15945 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15946 return;
15947 }
15948
15949 if (event.pointerType === 'mouse' && event.button !== 0) return;
15950 var point = getCoordinates(event);
15951 onPointerDown(point);
15952 };
15953
15954 var handlePointerMove = function handlePointerMove(event) {
15955 if (!isDrawing) return; // Allow only chosen pointer type
15956
15957 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15958 return;
15959 }
15960
15961 var point = getCoordinates(event);
15962 onPointerMove(point);
15963 };
15964
15965 var handlePointerUp = function handlePointerUp(event) {
15966 if (event.pointerType === 'mouse' && event.button !== 0) return; // Allow only chosen pointer type
15967
15968 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15969 return;
15970 }
15971
15972 onPointerUp();
15973 };
15974 /* Mouse Handlers ends */
15975
15976
15977 react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {
15978 return {
15979 exportImage: function exportImage(imageType) {
15980 return new Promise( /*#__PURE__*/function () {
15981 var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {
15982 var canvas, _getCanvasWithViewBox, svgCanvas, _width, _height, canvasSketch, loadImagePromises, img;
15983
15984 return _regeneratorRuntime.wrap(function _callee$(_context) {
15985 while (1) {
15986 switch (_context.prev = _context.next) {
15987 case 0:
15988 _context.prev = 0;
15989 canvas = canvasRef.current;
15990
15991 if (canvas) {
15992 _context.next = 4;
15993 break;
15994 }
15995
15996 throw Error('Canvas not rendered yet');
15997
15998 case 4:
15999 _getCanvasWithViewBox = getCanvasWithViewBox(canvas), svgCanvas = _getCanvasWithViewBox.svgCanvas, _width = _getCanvasWithViewBox.width, _height = _getCanvasWithViewBox.height;
16000 canvasSketch = "data:image/svg+xml;base64," + btoa(svgCanvas.outerHTML);
16001 _context.next = 8;
16002 return loadImage(canvasSketch);
16003
16004 case 8:
16005 _context.t0 = _context.sent;
16006 loadImagePromises = [_context.t0];
16007
16008 if (!exportWithBackgroundImage) {
16009 _context.next = 21;
16010 break;
16011 }
16012
16013 _context.prev = 11;
16014 _context.next = 14;
16015 return loadImage(backgroundImage);
16016
16017 case 14:
16018 img = _context.sent;
16019 loadImagePromises.push(img);
16020 _context.next = 21;
16021 break;
16022
16023 case 18:
16024 _context.prev = 18;
16025 _context.t1 = _context["catch"](11);
16026 console.warn('exportWithBackgroundImage props is set without a valid background image URL. This option is ignored');
16027
16028 case 21:
16029 Promise.all(loadImagePromises).then(function (images) {
16030 var renderCanvas = document.createElement('canvas');
16031 renderCanvas.setAttribute('width', _width.toString());
16032 renderCanvas.setAttribute('height', _height.toString());
16033 var context = renderCanvas.getContext('2d');
16034
16035 if (!context) {
16036 throw Error('Canvas not rendered yet');
16037 }
16038
16039 images.reverse().forEach(function (image) {
16040 context.drawImage(image, 0, 0);
16041 });
16042 resolve(renderCanvas.toDataURL("image/" + imageType));
16043 })["catch"](function (e) {
16044 throw e;
16045 });
16046 _context.next = 27;
16047 break;
16048
16049 case 24:
16050 _context.prev = 24;
16051 _context.t2 = _context["catch"](0);
16052 reject(_context.t2);
16053
16054 case 27:
16055 case "end":
16056 return _context.stop();
16057 }
16058 }
16059 }, _callee, null, [[0, 24], [11, 18]]);
16060 }));
16061
16062 return function (_x, _x2) {
16063 return _ref.apply(this, arguments);
16064 };
16065 }());
16066 },
16067 exportSvg: function exportSvg() {
16068 return new Promise(function (resolve, reject) {
16069 try {
16070 var _canvasRef$current2;
16071
16072 var canvas = (_canvasRef$current2 = canvasRef.current) != null ? _canvasRef$current2 : null;
16073
16074 if (canvas !== null) {
16075 var _svgCanvas$querySelec, _svgCanvas$querySelec2;
16076
16077 var _getCanvasWithViewBox2 = getCanvasWithViewBox(canvas),
16078 svgCanvas = _getCanvasWithViewBox2.svgCanvas;
16079
16080 if (exportWithBackgroundImage) {
16081 resolve(svgCanvas.outerHTML);
16082 return;
16083 }
16084
16085 (_svgCanvas$querySelec = svgCanvas.querySelector("#" + id + "__background")) == null ? void 0 : _svgCanvas$querySelec.remove();
16086 (_svgCanvas$querySelec2 = svgCanvas.querySelector("#" + id + "__canvas-background")) == null ? void 0 : _svgCanvas$querySelec2.setAttribute('fill', canvasColor);
16087 resolve(svgCanvas.outerHTML);
16088 }
16089
16090 reject(new Error('Canvas not loaded'));
16091 } catch (e) {
16092 reject(e);
16093 }
16094 });
16095 }
16096 };
16097 });
16098 /* Add event listener to Mouse up and Touch up to
16099 release drawing even when point goes out of canvas */
16100
16101 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16102 document.addEventListener('pointerup', handlePointerUp);
16103 return function () {
16104 document.removeEventListener('pointerup', handlePointerUp);
16105 };
16106 }, [handlePointerUp]);
16107 var eraserPaths = paths.filter(function (path) {
16108 return !path.drawMode;
16109 });
16110 var currentGroup = 0;
16111 var pathGroups = paths.reduce(function (arrayGroup, path) {
16112 if (!path.drawMode) {
16113 currentGroup += 1;
16114 return arrayGroup;
16115 }
16116
16117 if (arrayGroup[currentGroup] === undefined) {
16118 arrayGroup[currentGroup] = [];
16119 }
16120
16121 arrayGroup[currentGroup].push(path);
16122 return arrayGroup;
16123 }, [[]]);
16124 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
16125 role: "presentation",
16126 ref: canvasRef,
16127 className: className,
16128 style: _extends({
16129 touchAction: 'none',
16130 width: width,
16131 height: height
16132 }, style),
16133 "touch-action": "none",
16134 onPointerDown: handlePointerDown,
16135 onPointerMove: handlePointerMove,
16136 onPointerUp: handlePointerUp
16137 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", {
16138 version: "1.1",
16139 baseProfile: "full",
16140 xmlns: "http://www.w3.org/2000/svg",
16141 xmlnsXlink: "http://www.w3.org/1999/xlink",
16142 style: _extends({
16143 width: '100%',
16144 height: '100%'
16145 }, svgStyle),
16146 id: id
16147 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16148 id: id + "__eraser-stroke-group",
16149 display: "none"
16150 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
16151 id: id + "__mask-background",
16152 x: "0",
16153 y: "0",
16154 width: "100%",
16155 height: "100%",
16156 fill: "white"
16157 }), eraserPaths.map(function (eraserPath, i) {
16158 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(SvgPath, {
16159 key: id + "__eraser-" + i,
16160 id: id + "__eraser-" + i,
16161 paths: eraserPath.paths,
16162 strokeColor: "#000000",
16163 strokeWidth: eraserPath.strokeWidth
16164 });
16165 })), react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, backgroundImage && react__WEBPACK_IMPORTED_MODULE_0__.createElement("pattern", {
16166 id: id + "__background",
16167 x: "0",
16168 y: "0",
16169 width: "100%",
16170 height: "100%",
16171 patternUnits: "userSpaceOnUse"
16172 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("image", {
16173 x: "0",
16174 y: "0",
16175 width: "100%",
16176 height: "100%",
16177 xlinkHref: backgroundImage,
16178 preserveAspectRatio: preserveBackgroundImageAspectRatio
16179 })), eraserPaths.map(function (_, i) {
16180 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("mask", {
16181 id: id + "__eraser-mask-" + i,
16182 key: id + "__eraser-mask-" + i,
16183 maskUnits: "userSpaceOnUse"
16184 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", {
16185 href: "#" + id + "__mask-background"
16186 }), Array.from({
16187 length: eraserPaths.length - i
16188 }, function (_, j) {
16189 return j + i;
16190 }).map(function (k) {
16191 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", {
16192 key: k.toString(),
16193 href: "#" + id + "__eraser-" + k.toString()
16194 });
16195 }));
16196 })), react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16197 id: id + "__canvas-background-group"
16198 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
16199 id: id + "__canvas-background",
16200 x: "0",
16201 y: "0",
16202 width: "100%",
16203 height: "100%",
16204 fill: backgroundImage ? "url(#" + id + "__background)" : canvasColor
16205 })), pathGroups.map(function (pathGroup, i) {
16206 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16207 id: id + "__stroke-group-" + i,
16208 key: id + "__stroke-group-" + i,
16209 mask: "url(#" + id + "__eraser-mask-" + i + ")"
16210 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement(Paths, {
16211 id: id,
16212 paths: pathGroup
16213 }));
16214 })));
16215 });
16216
16217 var ReactSketchCanvas = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {
16218 var _props$id = props.id,
16219 id = _props$id === void 0 ? 'react-sketch-canvas' : _props$id,
16220 _props$width = props.width,
16221 width = _props$width === void 0 ? '100%' : _props$width,
16222 _props$height = props.height,
16223 height = _props$height === void 0 ? '100%' : _props$height,
16224 _props$className = props.className,
16225 className = _props$className === void 0 ? '' : _props$className,
16226 _props$canvasColor = props.canvasColor,
16227 canvasColor = _props$canvasColor === void 0 ? 'white' : _props$canvasColor,
16228 _props$strokeColor = props.strokeColor,
16229 strokeColor = _props$strokeColor === void 0 ? 'red' : _props$strokeColor,
16230 _props$backgroundImag = props.backgroundImage,
16231 backgroundImage = _props$backgroundImag === void 0 ? '' : _props$backgroundImag,
16232 _props$exportWithBack = props.exportWithBackgroundImage,
16233 exportWithBackgroundImage = _props$exportWithBack === void 0 ? false : _props$exportWithBack,
16234 _props$preserveBackgr = props.preserveBackgroundImageAspectRatio,
16235 preserveBackgroundImageAspectRatio = _props$preserveBackgr === void 0 ? 'none' : _props$preserveBackgr,
16236 _props$strokeWidth = props.strokeWidth,
16237 strokeWidth = _props$strokeWidth === void 0 ? 4 : _props$strokeWidth,
16238 _props$eraserWidth = props.eraserWidth,
16239 eraserWidth = _props$eraserWidth === void 0 ? 8 : _props$eraserWidth,
16240 _props$allowOnlyPoint = props.allowOnlyPointerType,
16241 allowOnlyPointerType = _props$allowOnlyPoint === void 0 ? 'all' : _props$allowOnlyPoint,
16242 _props$style = props.style,
16243 style = _props$style === void 0 ? {
16244 border: '0.0625rem solid #9c9c9c',
16245 borderRadius: '0.25rem'
16246 } : _props$style,
16247 _props$svgStyle = props.svgStyle,
16248 svgStyle = _props$svgStyle === void 0 ? {} : _props$svgStyle,
16249 _props$onChange = props.onChange,
16250 onChange = _props$onChange === void 0 ? function (_paths) {} : _props$onChange,
16251 _props$onStroke = props.onStroke,
16252 onStroke = _props$onStroke === void 0 ? function (_path, _isEraser) {} : _props$onStroke,
16253 _props$withTimestamp = props.withTimestamp,
16254 withTimestamp = _props$withTimestamp === void 0 ? false : _props$withTimestamp;
16255 var svgCanvas = react__WEBPACK_IMPORTED_MODULE_0__.createRef();
16256
16257 var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(true),
16258 drawMode = _React$useState[0],
16259 setDrawMode = _React$useState[1];
16260
16261 var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),
16262 isDrawing = _React$useState2[0],
16263 setIsDrawing = _React$useState2[1];
16264
16265 var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16266 resetStack = _React$useState3[0],
16267 setResetStack = _React$useState3[1];
16268
16269 var _React$useState4 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16270 undoStack = _React$useState4[0],
16271 setUndoStack = _React$useState4[1];
16272
16273 var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16274 currentPaths = _React$useState5[0],
16275 setCurrentPaths = _React$useState5[1];
16276
16277 var liftStrokeUp = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
16278 var _currentPaths$slice$, _currentPaths$slice;
16279
16280 var lastStroke = (_currentPaths$slice$ = (_currentPaths$slice = currentPaths.slice(-1)) == null ? void 0 : _currentPaths$slice[0]) != null ? _currentPaths$slice$ : null;
16281
16282 if (lastStroke === null) {
16283 console.warn('No stroke found!');
16284 return;
16285 }
16286
16287 onStroke(lastStroke, !lastStroke.drawMode);
16288 }, [isDrawing]);
16289 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16290 liftStrokeUp();
16291 }, [isDrawing]);
16292 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16293 onChange(currentPaths);
16294 }, [currentPaths]);
16295 react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {
16296 return {
16297 eraseMode: function eraseMode(erase) {
16298 setDrawMode(!erase);
16299 },
16300 clearCanvas: function clearCanvas() {
16301 setResetStack([].concat(currentPaths));
16302 setCurrentPaths([]);
16303 },
16304 undo: function undo() {
16305 // If there was a last reset then
16306 if (resetStack.length !== 0) {
16307 setCurrentPaths([].concat(resetStack));
16308 setResetStack([]);
16309 return;
16310 }
16311
16312 setUndoStack(function (undoStack) {
16313 return [].concat(undoStack, currentPaths.slice(-1));
16314 });
16315 setCurrentPaths(function (currentPaths) {
16316 return currentPaths.slice(0, -1);
16317 });
16318 },
16319 redo: function redo() {
16320 // Nothing to Redo
16321 if (undoStack.length === 0) return;
16322 setCurrentPaths(function (currentPaths) {
16323 return [].concat(currentPaths, undoStack.slice(-1));
16324 });
16325 setUndoStack(function (undoStack) {
16326 return undoStack.slice(0, -1);
16327 });
16328 },
16329 exportImage: function exportImage(imageType) {
16330 var _svgCanvas$current;
16331
16332 var exportImage = (_svgCanvas$current = svgCanvas.current) == null ? void 0 : _svgCanvas$current.exportImage;
16333
16334 if (!exportImage) {
16335 throw Error('Export function called before canvas loaded');
16336 } else {
16337 return exportImage(imageType);
16338 }
16339 },
16340 exportSvg: function exportSvg() {
16341 return new Promise(function (resolve, reject) {
16342 var _svgCanvas$current2;
16343
16344 var exportSvg = (_svgCanvas$current2 = svgCanvas.current) == null ? void 0 : _svgCanvas$current2.exportSvg;
16345
16346 if (!exportSvg) {
16347 reject(Error('Export function called before canvas loaded'));
16348 } else {
16349 exportSvg().then(function (data) {
16350 resolve(data);
16351 })["catch"](function (e) {
16352 reject(e);
16353 });
16354 }
16355 });
16356 },
16357 exportPaths: function exportPaths() {
16358 return new Promise(function (resolve, reject) {
16359 try {
16360 resolve(currentPaths);
16361 } catch (e) {
16362 reject(e);
16363 }
16364 });
16365 },
16366 loadPaths: function loadPaths(paths) {
16367 setCurrentPaths(function (currentPaths) {
16368 return [].concat(currentPaths, paths);
16369 });
16370 },
16371 getSketchingTime: function getSketchingTime() {
16372 return new Promise(function (resolve, reject) {
16373 if (!withTimestamp) {
16374 reject(new Error("Set 'withTimestamp' prop to get sketching time"));
16375 }
16376
16377 try {
16378 var sketchingTime = currentPaths.reduce(function (totalSketchingTime, path) {
16379 var _path$startTimestamp, _path$endTimestamp;
16380
16381 var startTimestamp = (_path$startTimestamp = path.startTimestamp) != null ? _path$startTimestamp : 0;
16382 var endTimestamp = (_path$endTimestamp = path.endTimestamp) != null ? _path$endTimestamp : 0;
16383 return totalSketchingTime + (endTimestamp - startTimestamp);
16384 }, 0);
16385 resolve(sketchingTime);
16386 } catch (e) {
16387 reject(e);
16388 }
16389 });
16390 },
16391 resetCanvas: function resetCanvas() {
16392 setResetStack([]);
16393 setUndoStack([]);
16394 setCurrentPaths([]);
16395 }
16396 };
16397 });
16398
16399 var handlePointerDown = function handlePointerDown(point) {
16400 setIsDrawing(true);
16401 setUndoStack([]);
16402 var stroke = {
16403 drawMode: drawMode,
16404 strokeColor: drawMode ? strokeColor : '#000000',
16405 strokeWidth: drawMode ? strokeWidth : eraserWidth,
16406 paths: [point]
16407 };
16408
16409 if (withTimestamp) {
16410 stroke = _extends({}, stroke, {
16411 startTimestamp: Date.now(),
16412 endTimestamp: 0
16413 });
16414 }
16415
16416 setCurrentPaths(function (currentPaths) {
16417 return [].concat(currentPaths, [stroke]);
16418 });
16419 };
16420
16421 var handlePointerMove = function handlePointerMove(point) {
16422 if (!isDrawing) return;
16423 var currentStroke = currentPaths.slice(-1)[0];
16424
16425 var updatedStroke = _extends({}, currentStroke, {
16426 paths: [].concat(currentStroke.paths, [point])
16427 });
16428
16429 setCurrentPaths(function (currentPaths) {
16430 return [].concat(currentPaths.slice(0, -1), [updatedStroke]);
16431 });
16432 };
16433
16434 var handlePointerUp = function handlePointerUp() {
16435 var _currentPaths$slice$2, _currentPaths$slice2;
16436
16437 if (!isDrawing) {
16438 return;
16439 }
16440
16441 setIsDrawing(false);
16442
16443 if (!withTimestamp) {
16444 return;
16445 }
16446
16447 var currentStroke = (_currentPaths$slice$2 = (_currentPaths$slice2 = currentPaths.slice(-1)) == null ? void 0 : _currentPaths$slice2[0]) != null ? _currentPaths$slice$2 : null;
16448
16449 if (currentStroke === null) {
16450 return;
16451 }
16452
16453 var updatedStroke = _extends({}, currentStroke, {
16454 endTimestamp: Date.now()
16455 });
16456
16457 setCurrentPaths(function (currentPaths) {
16458 return [].concat(currentPaths.slice(0, -1), [updatedStroke]);
16459 });
16460 };
16461
16462 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Canvas, {
16463 ref: svgCanvas,
16464 id: id,
16465 width: width,
16466 height: height,
16467 className: className,
16468 canvasColor: canvasColor,
16469 backgroundImage: backgroundImage,
16470 exportWithBackgroundImage: exportWithBackgroundImage,
16471 preserveBackgroundImageAspectRatio: preserveBackgroundImageAspectRatio,
16472 allowOnlyPointerType: allowOnlyPointerType,
16473 style: style,
16474 svgStyle: svgStyle,
16475 paths: currentPaths,
16476 isDrawing: isDrawing,
16477 onPointerDown: handlePointerDown,
16478 onPointerMove: handlePointerMove,
16479 onPointerUp: handlePointerUp
16480 });
16481 });
16482
16483
16484 //# sourceMappingURL=react-sketch-canvas.esm.js.map
16485
16486
16487 /***/ }),
16488
16489 /***/ "../node_modules/style-to-object/index.js":
16490 /*!************************************************!*\
16491 !*** ../node_modules/style-to-object/index.js ***!
16492 \************************************************/
16493 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16494
16495 var parse = __webpack_require__(/*! inline-style-parser */ "../node_modules/inline-style-parser/index.js");
16496
16497 /**
16498 * Parses inline style to object.
16499 *
16500 * @example
16501 * // returns { 'line-height': '42' }
16502 * StyleToObject('line-height: 42;');
16503 *
16504 * @param {String} style - The inline style.
16505 * @param {Function} [iterator] - The iterator function.
16506 * @return {null|Object}
16507 */
16508 function StyleToObject(style, iterator) {
16509 var output = null;
16510 if (!style || typeof style !== 'string') {
16511 return output;
16512 }
16513
16514 var declaration;
16515 var declarations = parse(style);
16516 var hasIterator = typeof iterator === 'function';
16517 var property;
16518 var value;
16519
16520 for (var i = 0, len = declarations.length; i < len; i++) {
16521 declaration = declarations[i];
16522 property = declaration.property;
16523 value = declaration.value;
16524
16525 if (hasIterator) {
16526 iterator(property, value, declaration);
16527 } else if (value) {
16528 output || (output = {});
16529 output[property] = value;
16530 }
16531 }
16532
16533 return output;
16534 }
16535
16536 module.exports = StyleToObject;
16537 module.exports["default"] = StyleToObject; // ESM support
16538
16539
16540 /***/ }),
16541
16542 /***/ "react":
16543 /*!************************!*\
16544 !*** external "React" ***!
16545 \************************/
16546 /***/ ((module) => {
16547
16548 "use strict";
16549 module.exports = React;
16550
16551 /***/ }),
16552
16553 /***/ "react-dom":
16554 /*!***************************!*\
16555 !*** external "ReactDOM" ***!
16556 \***************************/
16557 /***/ ((module) => {
16558
16559 "use strict";
16560 module.exports = ReactDOM;
16561
16562 /***/ }),
16563
16564 /***/ "@elementor/icons":
16565 /*!************************************!*\
16566 !*** external "elementorV2.icons" ***!
16567 \************************************/
16568 /***/ ((module) => {
16569
16570 "use strict";
16571 module.exports = elementorV2.icons;
16572
16573 /***/ }),
16574
16575 /***/ "@elementor/ui":
16576 /*!*********************************!*\
16577 !*** external "elementorV2.ui" ***!
16578 \*********************************/
16579 /***/ ((module) => {
16580
16581 "use strict";
16582 module.exports = elementorV2.ui;
16583
16584 /***/ }),
16585
16586 /***/ "@wordpress/i18n":
16587 /*!**************************!*\
16588 !*** external "wp.i18n" ***!
16589 \**************************/
16590 /***/ ((module) => {
16591
16592 "use strict";
16593 module.exports = wp.i18n;
16594
16595 /***/ }),
16596
16597 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
16598 /*!******************************************************************!*\
16599 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
16600 \******************************************************************/
16601 /***/ ((module) => {
16602
16603 function _arrayLikeToArray(arr, len) {
16604 if (len == null || len > arr.length) len = arr.length;
16605 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
16606 return arr2;
16607 }
16608 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
16609
16610 /***/ }),
16611
16612 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
16613 /*!****************************************************************!*\
16614 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
16615 \****************************************************************/
16616 /***/ ((module) => {
16617
16618 function _arrayWithHoles(arr) {
16619 if (Array.isArray(arr)) return arr;
16620 }
16621 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
16622
16623 /***/ }),
16624
16625 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
16626 /*!*******************************************************************!*\
16627 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
16628 \*******************************************************************/
16629 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16630
16631 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
16632 function _arrayWithoutHoles(arr) {
16633 if (Array.isArray(arr)) return arrayLikeToArray(arr);
16634 }
16635 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
16636
16637 /***/ }),
16638
16639 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
16640 /*!******************************************************************!*\
16641 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
16642 \******************************************************************/
16643 /***/ ((module) => {
16644
16645 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
16646 try {
16647 var info = gen[key](arg);
16648 var value = info.value;
16649 } catch (error) {
16650 reject(error);
16651 return;
16652 }
16653 if (info.done) {
16654 resolve(value);
16655 } else {
16656 Promise.resolve(value).then(_next, _throw);
16657 }
16658 }
16659 function _asyncToGenerator(fn) {
16660 return function () {
16661 var self = this,
16662 args = arguments;
16663 return new Promise(function (resolve, reject) {
16664 var gen = fn.apply(self, args);
16665 function _next(value) {
16666 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
16667 }
16668 function _throw(err) {
16669 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
16670 }
16671 _next(undefined);
16672 });
16673 };
16674 }
16675 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
16676
16677 /***/ }),
16678
16679 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
16680 /*!****************************************************************!*\
16681 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
16682 \****************************************************************/
16683 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16684
16685 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
16686 function _defineProperty(obj, key, value) {
16687 key = toPropertyKey(key);
16688 if (key in obj) {
16689 Object.defineProperty(obj, key, {
16690 value: value,
16691 enumerable: true,
16692 configurable: true,
16693 writable: true
16694 });
16695 } else {
16696 obj[key] = value;
16697 }
16698 return obj;
16699 }
16700 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
16701
16702 /***/ }),
16703
16704 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
16705 /*!*********************************************************!*\
16706 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
16707 \*********************************************************/
16708 /***/ ((module) => {
16709
16710 function _extends() {
16711 module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
16712 for (var i = 1; i < arguments.length; i++) {
16713 var source = arguments[i];
16714 for (var key in source) {
16715 if (Object.prototype.hasOwnProperty.call(source, key)) {
16716 target[key] = source[key];
16717 }
16718 }
16719 }
16720 return target;
16721 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
16722 return _extends.apply(this, arguments);
16723 }
16724 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
16725
16726 /***/ }),
16727
16728 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
16729 /*!***********************************************************************!*\
16730 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
16731 \***********************************************************************/
16732 /***/ ((module) => {
16733
16734 function _interopRequireDefault(obj) {
16735 return obj && obj.__esModule ? obj : {
16736 "default": obj
16737 };
16738 }
16739 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
16740
16741 /***/ }),
16742
16743 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
16744 /*!*****************************************************************!*\
16745 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
16746 \*****************************************************************/
16747 /***/ ((module) => {
16748
16749 function _iterableToArray(iter) {
16750 if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
16751 }
16752 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
16753
16754 /***/ }),
16755
16756 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
16757 /*!**********************************************************************!*\
16758 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
16759 \**********************************************************************/
16760 /***/ ((module) => {
16761
16762 function _iterableToArrayLimit(r, l) {
16763 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
16764 if (null != t) {
16765 var e,
16766 n,
16767 i,
16768 u,
16769 a = [],
16770 f = !0,
16771 o = !1;
16772 try {
16773 if (i = (t = t.call(r)).next, 0 === l) {
16774 if (Object(t) !== t) return;
16775 f = !1;
16776 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
16777 } catch (r) {
16778 o = !0, n = r;
16779 } finally {
16780 try {
16781 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
16782 } finally {
16783 if (o) throw n;
16784 }
16785 }
16786 return a;
16787 }
16788 }
16789 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
16790
16791 /***/ }),
16792
16793 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
16794 /*!*****************************************************************!*\
16795 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
16796 \*****************************************************************/
16797 /***/ ((module) => {
16798
16799 function _nonIterableRest() {
16800 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16801 }
16802 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
16803
16804 /***/ }),
16805
16806 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
16807 /*!*******************************************************************!*\
16808 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
16809 \*******************************************************************/
16810 /***/ ((module) => {
16811
16812 function _nonIterableSpread() {
16813 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16814 }
16815 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
16816
16817 /***/ }),
16818
16819 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
16820 /*!*************************************************************************!*\
16821 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
16822 \*************************************************************************/
16823 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16824
16825 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
16826 function _objectWithoutProperties(source, excluded) {
16827 if (source == null) return {};
16828 var target = objectWithoutPropertiesLoose(source, excluded);
16829 var key, i;
16830 if (Object.getOwnPropertySymbols) {
16831 var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
16832 for (i = 0; i < sourceSymbolKeys.length; i++) {
16833 key = sourceSymbolKeys[i];
16834 if (excluded.indexOf(key) >= 0) continue;
16835 if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
16836 target[key] = source[key];
16837 }
16838 }
16839 return target;
16840 }
16841 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
16842
16843 /***/ }),
16844
16845 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
16846 /*!******************************************************************************!*\
16847 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
16848 \******************************************************************************/
16849 /***/ ((module) => {
16850
16851 function _objectWithoutPropertiesLoose(source, excluded) {
16852 if (source == null) return {};
16853 var target = {};
16854 var sourceKeys = Object.keys(source);
16855 var key, i;
16856 for (i = 0; i < sourceKeys.length; i++) {
16857 key = sourceKeys[i];
16858 if (excluded.indexOf(key) >= 0) continue;
16859 target[key] = source[key];
16860 }
16861 return target;
16862 }
16863 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
16864
16865 /***/ }),
16866
16867 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
16868 /*!********************************************************************!*\
16869 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
16870 \********************************************************************/
16871 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16872
16873 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
16874 function _regeneratorRuntime() {
16875 "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
16876 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
16877 return e;
16878 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
16879 var t,
16880 e = {},
16881 r = Object.prototype,
16882 n = r.hasOwnProperty,
16883 o = Object.defineProperty || function (t, e, r) {
16884 t[e] = r.value;
16885 },
16886 i = "function" == typeof Symbol ? Symbol : {},
16887 a = i.iterator || "@@iterator",
16888 c = i.asyncIterator || "@@asyncIterator",
16889 u = i.toStringTag || "@@toStringTag";
16890 function define(t, e, r) {
16891 return Object.defineProperty(t, e, {
16892 value: r,
16893 enumerable: !0,
16894 configurable: !0,
16895 writable: !0
16896 }), t[e];
16897 }
16898 try {
16899 define({}, "");
16900 } catch (t) {
16901 define = function define(t, e, r) {
16902 return t[e] = r;
16903 };
16904 }
16905 function wrap(t, e, r, n) {
16906 var i = e && e.prototype instanceof Generator ? e : Generator,
16907 a = Object.create(i.prototype),
16908 c = new Context(n || []);
16909 return o(a, "_invoke", {
16910 value: makeInvokeMethod(t, r, c)
16911 }), a;
16912 }
16913 function tryCatch(t, e, r) {
16914 try {
16915 return {
16916 type: "normal",
16917 arg: t.call(e, r)
16918 };
16919 } catch (t) {
16920 return {
16921 type: "throw",
16922 arg: t
16923 };
16924 }
16925 }
16926 e.wrap = wrap;
16927 var h = "suspendedStart",
16928 l = "suspendedYield",
16929 f = "executing",
16930 s = "completed",
16931 y = {};
16932 function Generator() {}
16933 function GeneratorFunction() {}
16934 function GeneratorFunctionPrototype() {}
16935 var p = {};
16936 define(p, a, function () {
16937 return this;
16938 });
16939 var d = Object.getPrototypeOf,
16940 v = d && d(d(values([])));
16941 v && v !== r && n.call(v, a) && (p = v);
16942 var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
16943 function defineIteratorMethods(t) {
16944 ["next", "throw", "return"].forEach(function (e) {
16945 define(t, e, function (t) {
16946 return this._invoke(e, t);
16947 });
16948 });
16949 }
16950 function AsyncIterator(t, e) {
16951 function invoke(r, o, i, a) {
16952 var c = tryCatch(t[r], t, o);
16953 if ("throw" !== c.type) {
16954 var u = c.arg,
16955 h = u.value;
16956 return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
16957 invoke("next", t, i, a);
16958 }, function (t) {
16959 invoke("throw", t, i, a);
16960 }) : e.resolve(h).then(function (t) {
16961 u.value = t, i(u);
16962 }, function (t) {
16963 return invoke("throw", t, i, a);
16964 });
16965 }
16966 a(c.arg);
16967 }
16968 var r;
16969 o(this, "_invoke", {
16970 value: function value(t, n) {
16971 function callInvokeWithMethodAndArg() {
16972 return new e(function (e, r) {
16973 invoke(t, n, e, r);
16974 });
16975 }
16976 return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
16977 }
16978 });
16979 }
16980 function makeInvokeMethod(e, r, n) {
16981 var o = h;
16982 return function (i, a) {
16983 if (o === f) throw new Error("Generator is already running");
16984 if (o === s) {
16985 if ("throw" === i) throw a;
16986 return {
16987 value: t,
16988 done: !0
16989 };
16990 }
16991 for (n.method = i, n.arg = a;;) {
16992 var c = n.delegate;
16993 if (c) {
16994 var u = maybeInvokeDelegate(c, n);
16995 if (u) {
16996 if (u === y) continue;
16997 return u;
16998 }
16999 }
17000 if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
17001 if (o === h) throw o = s, n.arg;
17002 n.dispatchException(n.arg);
17003 } else "return" === n.method && n.abrupt("return", n.arg);
17004 o = f;
17005 var p = tryCatch(e, r, n);
17006 if ("normal" === p.type) {
17007 if (o = n.done ? s : l, p.arg === y) continue;
17008 return {
17009 value: p.arg,
17010 done: n.done
17011 };
17012 }
17013 "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
17014 }
17015 };
17016 }
17017 function maybeInvokeDelegate(e, r) {
17018 var n = r.method,
17019 o = e.iterator[n];
17020 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;
17021 var i = tryCatch(o, e.iterator, r.arg);
17022 if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
17023 var a = i.arg;
17024 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);
17025 }
17026 function pushTryEntry(t) {
17027 var e = {
17028 tryLoc: t[0]
17029 };
17030 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
17031 }
17032 function resetTryEntry(t) {
17033 var e = t.completion || {};
17034 e.type = "normal", delete e.arg, t.completion = e;
17035 }
17036 function Context(t) {
17037 this.tryEntries = [{
17038 tryLoc: "root"
17039 }], t.forEach(pushTryEntry, this), this.reset(!0);
17040 }
17041 function values(e) {
17042 if (e || "" === e) {
17043 var r = e[a];
17044 if (r) return r.call(e);
17045 if ("function" == typeof e.next) return e;
17046 if (!isNaN(e.length)) {
17047 var o = -1,
17048 i = function next() {
17049 for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
17050 return next.value = t, next.done = !0, next;
17051 };
17052 return i.next = i;
17053 }
17054 }
17055 throw new TypeError(_typeof(e) + " is not iterable");
17056 }
17057 return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
17058 value: GeneratorFunctionPrototype,
17059 configurable: !0
17060 }), o(GeneratorFunctionPrototype, "constructor", {
17061 value: GeneratorFunction,
17062 configurable: !0
17063 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
17064 var e = "function" == typeof t && t.constructor;
17065 return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
17066 }, e.mark = function (t) {
17067 return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
17068 }, e.awrap = function (t) {
17069 return {
17070 __await: t
17071 };
17072 }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
17073 return this;
17074 }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
17075 void 0 === i && (i = Promise);
17076 var a = new AsyncIterator(wrap(t, r, n, o), i);
17077 return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
17078 return t.done ? t.value : a.next();
17079 });
17080 }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
17081 return this;
17082 }), define(g, "toString", function () {
17083 return "[object Generator]";
17084 }), e.keys = function (t) {
17085 var e = Object(t),
17086 r = [];
17087 for (var n in e) r.push(n);
17088 return r.reverse(), function next() {
17089 for (; r.length;) {
17090 var t = r.pop();
17091 if (t in e) return next.value = t, next.done = !1, next;
17092 }
17093 return next.done = !0, next;
17094 };
17095 }, e.values = values, Context.prototype = {
17096 constructor: Context,
17097 reset: function reset(e) {
17098 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);
17099 },
17100 stop: function stop() {
17101 this.done = !0;
17102 var t = this.tryEntries[0].completion;
17103 if ("throw" === t.type) throw t.arg;
17104 return this.rval;
17105 },
17106 dispatchException: function dispatchException(e) {
17107 if (this.done) throw e;
17108 var r = this;
17109 function handle(n, o) {
17110 return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
17111 }
17112 for (var o = this.tryEntries.length - 1; o >= 0; --o) {
17113 var i = this.tryEntries[o],
17114 a = i.completion;
17115 if ("root" === i.tryLoc) return handle("end");
17116 if (i.tryLoc <= this.prev) {
17117 var c = n.call(i, "catchLoc"),
17118 u = n.call(i, "finallyLoc");
17119 if (c && u) {
17120 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
17121 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
17122 } else if (c) {
17123 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
17124 } else {
17125 if (!u) throw new Error("try statement without catch or finally");
17126 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
17127 }
17128 }
17129 }
17130 },
17131 abrupt: function abrupt(t, e) {
17132 for (var r = this.tryEntries.length - 1; r >= 0; --r) {
17133 var o = this.tryEntries[r];
17134 if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
17135 var i = o;
17136 break;
17137 }
17138 }
17139 i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
17140 var a = i ? i.completion : {};
17141 return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
17142 },
17143 complete: function complete(t, e) {
17144 if ("throw" === t.type) throw t.arg;
17145 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;
17146 },
17147 finish: function finish(t) {
17148 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
17149 var r = this.tryEntries[e];
17150 if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
17151 }
17152 },
17153 "catch": function _catch(t) {
17154 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
17155 var r = this.tryEntries[e];
17156 if (r.tryLoc === t) {
17157 var n = r.completion;
17158 if ("throw" === n.type) {
17159 var o = n.arg;
17160 resetTryEntry(r);
17161 }
17162 return o;
17163 }
17164 }
17165 throw new Error("illegal catch attempt");
17166 },
17167 delegateYield: function delegateYield(e, r, n) {
17168 return this.delegate = {
17169 iterator: values(e),
17170 resultName: r,
17171 nextLoc: n
17172 }, "next" === this.method && (this.arg = t), y;
17173 }
17174 }, e;
17175 }
17176 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
17177
17178 /***/ }),
17179
17180 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
17181 /*!***************************************************************!*\
17182 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
17183 \***************************************************************/
17184 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17185
17186 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
17187 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
17188 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
17189 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
17190 function _slicedToArray(arr, i) {
17191 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
17192 }
17193 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17194
17195 /***/ }),
17196
17197 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
17198 /*!***********************************************************************!*\
17199 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
17200 \***********************************************************************/
17201 /***/ ((module) => {
17202
17203 function _taggedTemplateLiteral(strings, raw) {
17204 if (!raw) {
17205 raw = strings.slice(0);
17206 }
17207 return Object.freeze(Object.defineProperties(strings, {
17208 raw: {
17209 value: Object.freeze(raw)
17210 }
17211 }));
17212 }
17213 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
17214
17215 /***/ }),
17216
17217 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
17218 /*!*******************************************************************!*\
17219 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
17220 \*******************************************************************/
17221 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17222
17223 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
17224 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
17225 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
17226 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
17227 function _toConsumableArray(arr) {
17228 return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
17229 }
17230 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17231
17232 /***/ }),
17233
17234 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
17235 /*!*************************************************************!*\
17236 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
17237 \*************************************************************/
17238 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17239
17240 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17241 function _toPrimitive(input, hint) {
17242 if (_typeof(input) !== "object" || input === null) return input;
17243 var prim = input[Symbol.toPrimitive];
17244 if (prim !== undefined) {
17245 var res = prim.call(input, hint || "default");
17246 if (_typeof(res) !== "object") return res;
17247 throw new TypeError("@@toPrimitive must return a primitive value.");
17248 }
17249 return (hint === "string" ? String : Number)(input);
17250 }
17251 module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
17252
17253 /***/ }),
17254
17255 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
17256 /*!***************************************************************!*\
17257 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
17258 \***************************************************************/
17259 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17260
17261 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17262 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
17263 function _toPropertyKey(arg) {
17264 var key = toPrimitive(arg, "string");
17265 return _typeof(key) === "symbol" ? key : String(key);
17266 }
17267 module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
17268
17269 /***/ }),
17270
17271 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
17272 /*!********************************************************!*\
17273 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
17274 \********************************************************/
17275 /***/ ((module) => {
17276
17277 function _typeof(o) {
17278 "@babel/helpers - typeof";
17279
17280 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
17281 return typeof o;
17282 } : function (o) {
17283 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
17284 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);
17285 }
17286 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
17287
17288 /***/ }),
17289
17290 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
17291 /*!****************************************************************************!*\
17292 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
17293 \****************************************************************************/
17294 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17295
17296 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
17297 function _unsupportedIterableToArray(o, minLen) {
17298 if (!o) return;
17299 if (typeof o === "string") return arrayLikeToArray(o, minLen);
17300 var n = Object.prototype.toString.call(o).slice(8, -1);
17301 if (n === "Object" && o.constructor) n = o.constructor.name;
17302 if (n === "Map" || n === "Set") return Array.from(o);
17303 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
17304 }
17305 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17306
17307 /***/ }),
17308
17309 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
17310 /*!***********************************************************!*\
17311 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
17312 \***********************************************************/
17313 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17314
17315 // TODO(Babel 8): Remove this file.
17316
17317 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
17318 module.exports = runtime;
17319
17320 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
17321 try {
17322 regeneratorRuntime = runtime;
17323 } catch (accidentalStrictMode) {
17324 if (typeof globalThis === "object") {
17325 globalThis.regeneratorRuntime = runtime;
17326 } else {
17327 Function("r", "regeneratorRuntime = r")(runtime);
17328 }
17329 }
17330
17331
17332 /***/ }),
17333
17334 /***/ "../node_modules/bail/index.js":
17335 /*!*************************************!*\
17336 !*** ../node_modules/bail/index.js ***!
17337 \*************************************/
17338 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17339
17340 "use strict";
17341 __webpack_require__.r(__webpack_exports__);
17342 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17343 /* harmony export */ bail: () => (/* binding */ bail)
17344 /* harmony export */ });
17345 /**
17346 * Throw a given error.
17347 *
17348 * @param {Error|null|undefined} [error]
17349 * Maybe error.
17350 * @returns {asserts error is null|undefined}
17351 */
17352 function bail(error) {
17353 if (error) {
17354 throw error
17355 }
17356 }
17357
17358
17359 /***/ }),
17360
17361 /***/ "../node_modules/comma-separated-tokens/index.js":
17362 /*!*******************************************************!*\
17363 !*** ../node_modules/comma-separated-tokens/index.js ***!
17364 \*******************************************************/
17365 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17366
17367 "use strict";
17368 __webpack_require__.r(__webpack_exports__);
17369 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17370 /* harmony export */ parse: () => (/* binding */ parse),
17371 /* harmony export */ stringify: () => (/* binding */ stringify)
17372 /* harmony export */ });
17373 /**
17374 * @typedef Options
17375 * Configuration for `stringify`.
17376 * @property {boolean} [padLeft=true]
17377 * Whether to pad a space before a token.
17378 * @property {boolean} [padRight=false]
17379 * Whether to pad a space after a token.
17380 */
17381
17382 /**
17383 * @typedef {Options} StringifyOptions
17384 * Please use `StringifyOptions` instead.
17385 */
17386
17387 /**
17388 * Parse comma-separated tokens to an array.
17389 *
17390 * @param {string} value
17391 * Comma-separated tokens.
17392 * @returns {Array<string>}
17393 * List of tokens.
17394 */
17395 function parse(value) {
17396 /** @type {Array<string>} */
17397 const tokens = []
17398 const input = String(value || '')
17399 let index = input.indexOf(',')
17400 let start = 0
17401 /** @type {boolean} */
17402 let end = false
17403
17404 while (!end) {
17405 if (index === -1) {
17406 index = input.length
17407 end = true
17408 }
17409
17410 const token = input.slice(start, index).trim()
17411
17412 if (token || !end) {
17413 tokens.push(token)
17414 }
17415
17416 start = index + 1
17417 index = input.indexOf(',', start)
17418 }
17419
17420 return tokens
17421 }
17422
17423 /**
17424 * Serialize an array of strings or numbers to comma-separated tokens.
17425 *
17426 * @param {Array<string|number>} values
17427 * List of tokens.
17428 * @param {Options} [options]
17429 * Configuration for `stringify` (optional).
17430 * @returns {string}
17431 * Comma-separated tokens.
17432 */
17433 function stringify(values, options) {
17434 const settings = options || {}
17435
17436 // Ensure the last empty entry is seen.
17437 const input = values[values.length - 1] === '' ? [...values, ''] : values
17438
17439 return input
17440 .join(
17441 (settings.padRight ? ' ' : '') +
17442 ',' +
17443 (settings.padLeft === false ? '' : ' ')
17444 )
17445 .trim()
17446 }
17447
17448
17449 /***/ }),
17450
17451 /***/ "../node_modules/decode-named-character-reference/index.dom.js":
17452 /*!*********************************************************************!*\
17453 !*** ../node_modules/decode-named-character-reference/index.dom.js ***!
17454 \*********************************************************************/
17455 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17456
17457 "use strict";
17458 __webpack_require__.r(__webpack_exports__);
17459 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17460 /* harmony export */ decodeNamedCharacterReference: () => (/* binding */ decodeNamedCharacterReference)
17461 /* harmony export */ });
17462 /// <reference lib="dom" />
17463
17464 /* eslint-env browser */
17465
17466 const element = document.createElement('i')
17467
17468 /**
17469 * @param {string} value
17470 * @returns {string|false}
17471 */
17472 function decodeNamedCharacterReference(value) {
17473 const characterReference = '&' + value + ';'
17474 element.innerHTML = characterReference
17475 const char = element.textContent
17476
17477 // Some named character references do not require the closing semicolon
17478 // (`&not`, for instance), which leads to situations where parsing the assumed
17479 // named reference of `&notit;` will result in the string `¬it;`.
17480 // When we encounter a trailing semicolon after parsing, and the character
17481 // reference to decode was not a semicolon (`&semi;`), we can assume that the
17482 // matching was not complete.
17483 // @ts-expect-error: TypeScript is wrong that `textContent` on elements can
17484 // yield `null`.
17485 if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {
17486 return false
17487 }
17488
17489 // If the decoded string is equal to the input, the character reference was
17490 // not valid.
17491 // @ts-expect-error: TypeScript is wrong that `textContent` on elements can
17492 // yield `null`.
17493 return char === characterReference ? false : char
17494 }
17495
17496
17497 /***/ }),
17498
17499 /***/ "../node_modules/dequal/dist/index.mjs":
17500 /*!*********************************************!*\
17501 !*** ../node_modules/dequal/dist/index.mjs ***!
17502 \*********************************************/
17503 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17504
17505 "use strict";
17506 __webpack_require__.r(__webpack_exports__);
17507 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17508 /* harmony export */ dequal: () => (/* binding */ dequal)
17509 /* harmony export */ });
17510 var has = Object.prototype.hasOwnProperty;
17511
17512 function find(iter, tar, key) {
17513 for (key of iter.keys()) {
17514 if (dequal(key, tar)) return key;
17515 }
17516 }
17517
17518 function dequal(foo, bar) {
17519 var ctor, len, tmp;
17520 if (foo === bar) return true;
17521
17522 if (foo && bar && (ctor=foo.constructor) === bar.constructor) {
17523 if (ctor === Date) return foo.getTime() === bar.getTime();
17524 if (ctor === RegExp) return foo.toString() === bar.toString();
17525
17526 if (ctor === Array) {
17527 if ((len=foo.length) === bar.length) {
17528 while (len-- && dequal(foo[len], bar[len]));
17529 }
17530 return len === -1;
17531 }
17532
17533 if (ctor === Set) {
17534 if (foo.size !== bar.size) {
17535 return false;
17536 }
17537 for (len of foo) {
17538 tmp = len;
17539 if (tmp && typeof tmp === 'object') {
17540 tmp = find(bar, tmp);
17541 if (!tmp) return false;
17542 }
17543 if (!bar.has(tmp)) return false;
17544 }
17545 return true;
17546 }
17547
17548 if (ctor === Map) {
17549 if (foo.size !== bar.size) {
17550 return false;
17551 }
17552 for (len of foo) {
17553 tmp = len[0];
17554 if (tmp && typeof tmp === 'object') {
17555 tmp = find(bar, tmp);
17556 if (!tmp) return false;
17557 }
17558 if (!dequal(len[1], bar.get(tmp))) {
17559 return false;
17560 }
17561 }
17562 return true;
17563 }
17564
17565 if (ctor === ArrayBuffer) {
17566 foo = new Uint8Array(foo);
17567 bar = new Uint8Array(bar);
17568 } else if (ctor === DataView) {
17569 if ((len=foo.byteLength) === bar.byteLength) {
17570 while (len-- && foo.getInt8(len) === bar.getInt8(len));
17571 }
17572 return len === -1;
17573 }
17574
17575 if (ArrayBuffer.isView(foo)) {
17576 if ((len=foo.byteLength) === bar.byteLength) {
17577 while (len-- && foo[len] === bar[len]);
17578 }
17579 return len === -1;
17580 }
17581
17582 if (!ctor || typeof foo === 'object') {
17583 len = 0;
17584 for (ctor in foo) {
17585 if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
17586 if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
17587 }
17588 return Object.keys(bar).length === len;
17589 }
17590 }
17591
17592 return foo !== foo && bar !== bar;
17593 }
17594
17595
17596 /***/ }),
17597
17598 /***/ "../node_modules/diff/lib/index.mjs":
17599 /*!******************************************!*\
17600 !*** ../node_modules/diff/lib/index.mjs ***!
17601 \******************************************/
17602 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17603
17604 "use strict";
17605 __webpack_require__.r(__webpack_exports__);
17606 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17607 /* harmony export */ Diff: () => (/* binding */ Diff),
17608 /* harmony export */ applyPatch: () => (/* binding */ applyPatch),
17609 /* harmony export */ applyPatches: () => (/* binding */ applyPatches),
17610 /* harmony export */ canonicalize: () => (/* binding */ canonicalize),
17611 /* harmony export */ convertChangesToDMP: () => (/* binding */ convertChangesToDMP),
17612 /* harmony export */ convertChangesToXML: () => (/* binding */ convertChangesToXML),
17613 /* harmony export */ createPatch: () => (/* binding */ createPatch),
17614 /* harmony export */ createTwoFilesPatch: () => (/* binding */ createTwoFilesPatch),
17615 /* harmony export */ diffArrays: () => (/* binding */ diffArrays),
17616 /* harmony export */ diffChars: () => (/* binding */ diffChars),
17617 /* harmony export */ diffCss: () => (/* binding */ diffCss),
17618 /* harmony export */ diffJson: () => (/* binding */ diffJson),
17619 /* harmony export */ diffLines: () => (/* binding */ diffLines),
17620 /* harmony export */ diffSentences: () => (/* binding */ diffSentences),
17621 /* harmony export */ diffTrimmedLines: () => (/* binding */ diffTrimmedLines),
17622 /* harmony export */ diffWords: () => (/* binding */ diffWords),
17623 /* harmony export */ diffWordsWithSpace: () => (/* binding */ diffWordsWithSpace),
17624 /* harmony export */ merge: () => (/* binding */ merge),
17625 /* harmony export */ parsePatch: () => (/* binding */ parsePatch),
17626 /* harmony export */ structuredPatch: () => (/* binding */ structuredPatch)
17627 /* harmony export */ });
17628 function Diff() {}
17629 Diff.prototype = {
17630 diff: function diff(oldString, newString) {
17631 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
17632 var callback = options.callback;
17633
17634 if (typeof options === 'function') {
17635 callback = options;
17636 options = {};
17637 }
17638
17639 this.options = options;
17640 var self = this;
17641
17642 function done(value) {
17643 if (callback) {
17644 setTimeout(function () {
17645 callback(undefined, value);
17646 }, 0);
17647 return true;
17648 } else {
17649 return value;
17650 }
17651 } // Allow subclasses to massage the input prior to running
17652
17653
17654 oldString = this.castInput(oldString);
17655 newString = this.castInput(newString);
17656 oldString = this.removeEmpty(this.tokenize(oldString));
17657 newString = this.removeEmpty(this.tokenize(newString));
17658 var newLen = newString.length,
17659 oldLen = oldString.length;
17660 var editLength = 1;
17661 var maxEditLength = newLen + oldLen;
17662
17663 if (options.maxEditLength) {
17664 maxEditLength = Math.min(maxEditLength, options.maxEditLength);
17665 }
17666
17667 var bestPath = [{
17668 newPos: -1,
17669 components: []
17670 }]; // Seed editLength = 0, i.e. the content starts with the same values
17671
17672 var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
17673
17674 if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
17675 // Identity per the equality and tokenizer
17676 return done([{
17677 value: this.join(newString),
17678 count: newString.length
17679 }]);
17680 } // Main worker method. checks all permutations of a given edit length for acceptance.
17681
17682
17683 function execEditLength() {
17684 for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
17685 var basePath = void 0;
17686
17687 var addPath = bestPath[diagonalPath - 1],
17688 removePath = bestPath[diagonalPath + 1],
17689 _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
17690
17691 if (addPath) {
17692 // No one else is going to attempt to use this value, clear it
17693 bestPath[diagonalPath - 1] = undefined;
17694 }
17695
17696 var canAdd = addPath && addPath.newPos + 1 < newLen,
17697 canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
17698
17699 if (!canAdd && !canRemove) {
17700 // If this path is a terminal then prune
17701 bestPath[diagonalPath] = undefined;
17702 continue;
17703 } // Select the diagonal that we want to branch from. We select the prior
17704 // path whose position in the new string is the farthest from the origin
17705 // and does not pass the bounds of the diff graph
17706
17707
17708 if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
17709 basePath = clonePath(removePath);
17710 self.pushComponent(basePath.components, undefined, true);
17711 } else {
17712 basePath = addPath; // No need to clone, we've pulled it from the list
17713
17714 basePath.newPos++;
17715 self.pushComponent(basePath.components, true, undefined);
17716 }
17717
17718 _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done
17719
17720 if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
17721 return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
17722 } else {
17723 // Otherwise track this path as a potential candidate and continue.
17724 bestPath[diagonalPath] = basePath;
17725 }
17726 }
17727
17728 editLength++;
17729 } // Performs the length of edit iteration. Is a bit fugly as this has to support the
17730 // sync and async mode which is never fun. Loops over execEditLength until a value
17731 // is produced, or until the edit length exceeds options.maxEditLength (if given),
17732 // in which case it will return undefined.
17733
17734
17735 if (callback) {
17736 (function exec() {
17737 setTimeout(function () {
17738 if (editLength > maxEditLength) {
17739 return callback();
17740 }
17741
17742 if (!execEditLength()) {
17743 exec();
17744 }
17745 }, 0);
17746 })();
17747 } else {
17748 while (editLength <= maxEditLength) {
17749 var ret = execEditLength();
17750
17751 if (ret) {
17752 return ret;
17753 }
17754 }
17755 }
17756 },
17757 pushComponent: function pushComponent(components, added, removed) {
17758 var last = components[components.length - 1];
17759
17760 if (last && last.added === added && last.removed === removed) {
17761 // We need to clone here as the component clone operation is just
17762 // as shallow array clone
17763 components[components.length - 1] = {
17764 count: last.count + 1,
17765 added: added,
17766 removed: removed
17767 };
17768 } else {
17769 components.push({
17770 count: 1,
17771 added: added,
17772 removed: removed
17773 });
17774 }
17775 },
17776 extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
17777 var newLen = newString.length,
17778 oldLen = oldString.length,
17779 newPos = basePath.newPos,
17780 oldPos = newPos - diagonalPath,
17781 commonCount = 0;
17782
17783 while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
17784 newPos++;
17785 oldPos++;
17786 commonCount++;
17787 }
17788
17789 if (commonCount) {
17790 basePath.components.push({
17791 count: commonCount
17792 });
17793 }
17794
17795 basePath.newPos = newPos;
17796 return oldPos;
17797 },
17798 equals: function equals(left, right) {
17799 if (this.options.comparator) {
17800 return this.options.comparator(left, right);
17801 } else {
17802 return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
17803 }
17804 },
17805 removeEmpty: function removeEmpty(array) {
17806 var ret = [];
17807
17808 for (var i = 0; i < array.length; i++) {
17809 if (array[i]) {
17810 ret.push(array[i]);
17811 }
17812 }
17813
17814 return ret;
17815 },
17816 castInput: function castInput(value) {
17817 return value;
17818 },
17819 tokenize: function tokenize(value) {
17820 return value.split('');
17821 },
17822 join: function join(chars) {
17823 return chars.join('');
17824 }
17825 };
17826
17827 function buildValues(diff, components, newString, oldString, useLongestToken) {
17828 var componentPos = 0,
17829 componentLen = components.length,
17830 newPos = 0,
17831 oldPos = 0;
17832
17833 for (; componentPos < componentLen; componentPos++) {
17834 var component = components[componentPos];
17835
17836 if (!component.removed) {
17837 if (!component.added && useLongestToken) {
17838 var value = newString.slice(newPos, newPos + component.count);
17839 value = value.map(function (value, i) {
17840 var oldValue = oldString[oldPos + i];
17841 return oldValue.length > value.length ? oldValue : value;
17842 });
17843 component.value = diff.join(value);
17844 } else {
17845 component.value = diff.join(newString.slice(newPos, newPos + component.count));
17846 }
17847
17848 newPos += component.count; // Common case
17849
17850 if (!component.added) {
17851 oldPos += component.count;
17852 }
17853 } else {
17854 component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
17855 oldPos += component.count; // Reverse add and remove so removes are output first to match common convention
17856 // The diffing algorithm is tied to add then remove output and this is the simplest
17857 // route to get the desired output with minimal overhead.
17858
17859 if (componentPos && components[componentPos - 1].added) {
17860 var tmp = components[componentPos - 1];
17861 components[componentPos - 1] = components[componentPos];
17862 components[componentPos] = tmp;
17863 }
17864 }
17865 } // Special case handle for when one terminal is ignored (i.e. whitespace).
17866 // For this case we merge the terminal into the prior string and drop the change.
17867 // This is only available for string mode.
17868
17869
17870 var lastComponent = components[componentLen - 1];
17871
17872 if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
17873 components[componentLen - 2].value += lastComponent.value;
17874 components.pop();
17875 }
17876
17877 return components;
17878 }
17879
17880 function clonePath(path) {
17881 return {
17882 newPos: path.newPos,
17883 components: path.components.slice(0)
17884 };
17885 }
17886
17887 var characterDiff = new Diff();
17888 function diffChars(oldStr, newStr, options) {
17889 return characterDiff.diff(oldStr, newStr, options);
17890 }
17891
17892 function generateOptions(options, defaults) {
17893 if (typeof options === 'function') {
17894 defaults.callback = options;
17895 } else if (options) {
17896 for (var name in options) {
17897 /* istanbul ignore else */
17898 if (options.hasOwnProperty(name)) {
17899 defaults[name] = options[name];
17900 }
17901 }
17902 }
17903
17904 return defaults;
17905 }
17906
17907 //
17908 // Ranges and exceptions:
17909 // Latin-1 Supplement, 0080–00FF
17910 // - U+00D7 × Multiplication sign
17911 // - U+00F7 ÷ Division sign
17912 // Latin Extended-A, 0100–017F
17913 // Latin Extended-B, 0180–024F
17914 // IPA Extensions, 0250–02AF
17915 // Spacing Modifier Letters, 02B0–02FF
17916 // - U+02C7 ˇ &#711; Caron
17917 // - U+02D8 ˘ &#728; Breve
17918 // - U+02D9 ˙ &#729; Dot Above
17919 // - U+02DA ˚ &#730; Ring Above
17920 // - U+02DB ˛ &#731; Ogonek
17921 // - U+02DC ˜ &#732; Small Tilde
17922 // - U+02DD ˝ &#733; Double Acute Accent
17923 // Latin Extended Additional, 1E00–1EFF
17924
17925 var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
17926 var reWhitespace = /\S/;
17927 var wordDiff = new Diff();
17928
17929 wordDiff.equals = function (left, right) {
17930 if (this.options.ignoreCase) {
17931 left = left.toLowerCase();
17932 right = right.toLowerCase();
17933 }
17934
17935 return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
17936 };
17937
17938 wordDiff.tokenize = function (value) {
17939 // All whitespace symbols except newline group into one token, each newline - in separate token
17940 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.
17941
17942 for (var i = 0; i < tokens.length - 1; i++) {
17943 // If we have an empty string in the next field and we have only word chars before and after, merge
17944 if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
17945 tokens[i] += tokens[i + 2];
17946 tokens.splice(i + 1, 2);
17947 i--;
17948 }
17949 }
17950
17951 return tokens;
17952 };
17953
17954 function diffWords(oldStr, newStr, options) {
17955 options = generateOptions(options, {
17956 ignoreWhitespace: true
17957 });
17958 return wordDiff.diff(oldStr, newStr, options);
17959 }
17960 function diffWordsWithSpace(oldStr, newStr, options) {
17961 return wordDiff.diff(oldStr, newStr, options);
17962 }
17963
17964 var lineDiff = new Diff();
17965
17966 lineDiff.tokenize = function (value) {
17967 var retLines = [],
17968 linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line
17969
17970 if (!linesAndNewlines[linesAndNewlines.length - 1]) {
17971 linesAndNewlines.pop();
17972 } // Merge the content and line separators into single tokens
17973
17974
17975 for (var i = 0; i < linesAndNewlines.length; i++) {
17976 var line = linesAndNewlines[i];
17977
17978 if (i % 2 && !this.options.newlineIsToken) {
17979 retLines[retLines.length - 1] += line;
17980 } else {
17981 if (this.options.ignoreWhitespace) {
17982 line = line.trim();
17983 }
17984
17985 retLines.push(line);
17986 }
17987 }
17988
17989 return retLines;
17990 };
17991
17992 function diffLines(oldStr, newStr, callback) {
17993 return lineDiff.diff(oldStr, newStr, callback);
17994 }
17995 function diffTrimmedLines(oldStr, newStr, callback) {
17996 var options = generateOptions(callback, {
17997 ignoreWhitespace: true
17998 });
17999 return lineDiff.diff(oldStr, newStr, options);
18000 }
18001
18002 var sentenceDiff = new Diff();
18003
18004 sentenceDiff.tokenize = function (value) {
18005 return value.split(/(\S.+?[.!?])(?=\s+|$)/);
18006 };
18007
18008 function diffSentences(oldStr, newStr, callback) {
18009 return sentenceDiff.diff(oldStr, newStr, callback);
18010 }
18011
18012 var cssDiff = new Diff();
18013
18014 cssDiff.tokenize = function (value) {
18015 return value.split(/([{}:;,]|\s+)/);
18016 };
18017
18018 function diffCss(oldStr, newStr, callback) {
18019 return cssDiff.diff(oldStr, newStr, callback);
18020 }
18021
18022 function _typeof(obj) {
18023 "@babel/helpers - typeof";
18024
18025 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
18026 _typeof = function (obj) {
18027 return typeof obj;
18028 };
18029 } else {
18030 _typeof = function (obj) {
18031 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
18032 };
18033 }
18034
18035 return _typeof(obj);
18036 }
18037
18038 function _toConsumableArray(arr) {
18039 return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
18040 }
18041
18042 function _arrayWithoutHoles(arr) {
18043 if (Array.isArray(arr)) return _arrayLikeToArray(arr);
18044 }
18045
18046 function _iterableToArray(iter) {
18047 if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
18048 }
18049
18050 function _unsupportedIterableToArray(o, minLen) {
18051 if (!o) return;
18052 if (typeof o === "string") return _arrayLikeToArray(o, minLen);
18053 var n = Object.prototype.toString.call(o).slice(8, -1);
18054 if (n === "Object" && o.constructor) n = o.constructor.name;
18055 if (n === "Map" || n === "Set") return Array.from(o);
18056 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
18057 }
18058
18059 function _arrayLikeToArray(arr, len) {
18060 if (len == null || len > arr.length) len = arr.length;
18061
18062 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
18063
18064 return arr2;
18065 }
18066
18067 function _nonIterableSpread() {
18068 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18069 }
18070
18071 var objectPrototypeToString = Object.prototype.toString;
18072 var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
18073 // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
18074
18075 jsonDiff.useLongestToken = true;
18076 jsonDiff.tokenize = lineDiff.tokenize;
18077
18078 jsonDiff.castInput = function (value) {
18079 var _this$options = this.options,
18080 undefinedReplacement = _this$options.undefinedReplacement,
18081 _this$options$stringi = _this$options.stringifyReplacer,
18082 stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {
18083 return typeof v === 'undefined' ? undefinedReplacement : v;
18084 } : _this$options$stringi;
18085 return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');
18086 };
18087
18088 jsonDiff.equals = function (left, right) {
18089 return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'));
18090 };
18091
18092 function diffJson(oldObj, newObj, options) {
18093 return jsonDiff.diff(oldObj, newObj, options);
18094 } // This function handles the presence of circular references by bailing out when encountering an
18095 // object that is already on the "stack" of items being processed. Accepts an optional replacer
18096
18097 function canonicalize(obj, stack, replacementStack, replacer, key) {
18098 stack = stack || [];
18099 replacementStack = replacementStack || [];
18100
18101 if (replacer) {
18102 obj = replacer(key, obj);
18103 }
18104
18105 var i;
18106
18107 for (i = 0; i < stack.length; i += 1) {
18108 if (stack[i] === obj) {
18109 return replacementStack[i];
18110 }
18111 }
18112
18113 var canonicalizedObj;
18114
18115 if ('[object Array]' === objectPrototypeToString.call(obj)) {
18116 stack.push(obj);
18117 canonicalizedObj = new Array(obj.length);
18118 replacementStack.push(canonicalizedObj);
18119
18120 for (i = 0; i < obj.length; i += 1) {
18121 canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);
18122 }
18123
18124 stack.pop();
18125 replacementStack.pop();
18126 return canonicalizedObj;
18127 }
18128
18129 if (obj && obj.toJSON) {
18130 obj = obj.toJSON();
18131 }
18132
18133 if (_typeof(obj) === 'object' && obj !== null) {
18134 stack.push(obj);
18135 canonicalizedObj = {};
18136 replacementStack.push(canonicalizedObj);
18137
18138 var sortedKeys = [],
18139 _key;
18140
18141 for (_key in obj) {
18142 /* istanbul ignore else */
18143 if (obj.hasOwnProperty(_key)) {
18144 sortedKeys.push(_key);
18145 }
18146 }
18147
18148 sortedKeys.sort();
18149
18150 for (i = 0; i < sortedKeys.length; i += 1) {
18151 _key = sortedKeys[i];
18152 canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);
18153 }
18154
18155 stack.pop();
18156 replacementStack.pop();
18157 } else {
18158 canonicalizedObj = obj;
18159 }
18160
18161 return canonicalizedObj;
18162 }
18163
18164 var arrayDiff = new Diff();
18165
18166 arrayDiff.tokenize = function (value) {
18167 return value.slice();
18168 };
18169
18170 arrayDiff.join = arrayDiff.removeEmpty = function (value) {
18171 return value;
18172 };
18173
18174 function diffArrays(oldArr, newArr, callback) {
18175 return arrayDiff.diff(oldArr, newArr, callback);
18176 }
18177
18178 function parsePatch(uniDiff) {
18179 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
18180 var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/),
18181 delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [],
18182 list = [],
18183 i = 0;
18184
18185 function parseIndex() {
18186 var index = {};
18187 list.push(index); // Parse diff metadata
18188
18189 while (i < diffstr.length) {
18190 var line = diffstr[i]; // File header found, end parsing diff metadata
18191
18192 if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
18193 break;
18194 } // Diff index
18195
18196
18197 var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
18198
18199 if (header) {
18200 index.index = header[1];
18201 }
18202
18203 i++;
18204 } // Parse file headers if they are defined. Unified diff requires them, but
18205 // there's no technical issues to have an isolated hunk without file header
18206
18207
18208 parseFileHeader(index);
18209 parseFileHeader(index); // Parse hunks
18210
18211 index.hunks = [];
18212
18213 while (i < diffstr.length) {
18214 var _line = diffstr[i];
18215
18216 if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
18217 break;
18218 } else if (/^@@/.test(_line)) {
18219 index.hunks.push(parseHunk());
18220 } else if (_line && options.strict) {
18221 // Ignore unexpected content unless in strict mode
18222 throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
18223 } else {
18224 i++;
18225 }
18226 }
18227 } // Parses the --- and +++ headers, if none are found, no lines
18228 // are consumed.
18229
18230
18231 function parseFileHeader(index) {
18232 var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
18233
18234 if (fileHeader) {
18235 var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
18236 var data = fileHeader[2].split('\t', 2);
18237 var fileName = data[0].replace(/\\\\/g, '\\');
18238
18239 if (/^".*"$/.test(fileName)) {
18240 fileName = fileName.substr(1, fileName.length - 2);
18241 }
18242
18243 index[keyPrefix + 'FileName'] = fileName;
18244 index[keyPrefix + 'Header'] = (data[1] || '').trim();
18245 i++;
18246 }
18247 } // Parses a hunk
18248 // This assumes that we are at the start of a hunk.
18249
18250
18251 function parseHunk() {
18252 var chunkHeaderIndex = i,
18253 chunkHeaderLine = diffstr[i++],
18254 chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
18255 var hunk = {
18256 oldStart: +chunkHeader[1],
18257 oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],
18258 newStart: +chunkHeader[3],
18259 newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],
18260 lines: [],
18261 linedelimiters: []
18262 }; // Unified Diff Format quirk: If the chunk size is 0,
18263 // the first number is one lower than one would expect.
18264 // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
18265
18266 if (hunk.oldLines === 0) {
18267 hunk.oldStart += 1;
18268 }
18269
18270 if (hunk.newLines === 0) {
18271 hunk.newStart += 1;
18272 }
18273
18274 var addCount = 0,
18275 removeCount = 0;
18276
18277 for (; i < diffstr.length; i++) {
18278 // Lines starting with '---' could be mistaken for the "remove line" operation
18279 // But they could be the header for the next file. Therefore prune such cases out.
18280 if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {
18281 break;
18282 }
18283
18284 var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];
18285
18286 if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
18287 hunk.lines.push(diffstr[i]);
18288 hunk.linedelimiters.push(delimiters[i] || '\n');
18289
18290 if (operation === '+') {
18291 addCount++;
18292 } else if (operation === '-') {
18293 removeCount++;
18294 } else if (operation === ' ') {
18295 addCount++;
18296 removeCount++;
18297 }
18298 } else {
18299 break;
18300 }
18301 } // Handle the empty block count case
18302
18303
18304 if (!addCount && hunk.newLines === 1) {
18305 hunk.newLines = 0;
18306 }
18307
18308 if (!removeCount && hunk.oldLines === 1) {
18309 hunk.oldLines = 0;
18310 } // Perform optional sanity checking
18311
18312
18313 if (options.strict) {
18314 if (addCount !== hunk.newLines) {
18315 throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
18316 }
18317
18318 if (removeCount !== hunk.oldLines) {
18319 throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
18320 }
18321 }
18322
18323 return hunk;
18324 }
18325
18326 while (i < diffstr.length) {
18327 parseIndex();
18328 }
18329
18330 return list;
18331 }
18332
18333 // Iterator that traverses in the range of [min, max], stepping
18334 // by distance from a given start position. I.e. for [0, 4], with
18335 // start of 2, this will iterate 2, 3, 1, 4, 0.
18336 function distanceIterator (start, minLine, maxLine) {
18337 var wantForward = true,
18338 backwardExhausted = false,
18339 forwardExhausted = false,
18340 localOffset = 1;
18341 return function iterator() {
18342 if (wantForward && !forwardExhausted) {
18343 if (backwardExhausted) {
18344 localOffset++;
18345 } else {
18346 wantForward = false;
18347 } // Check if trying to fit beyond text length, and if not, check it fits
18348 // after offset location (or desired location on first iteration)
18349
18350
18351 if (start + localOffset <= maxLine) {
18352 return localOffset;
18353 }
18354
18355 forwardExhausted = true;
18356 }
18357
18358 if (!backwardExhausted) {
18359 if (!forwardExhausted) {
18360 wantForward = true;
18361 } // Check if trying to fit before text beginning, and if not, check it fits
18362 // before offset location
18363
18364
18365 if (minLine <= start - localOffset) {
18366 return -localOffset++;
18367 }
18368
18369 backwardExhausted = true;
18370 return iterator();
18371 } // We tried to fit hunk before text beginning and beyond text length, then
18372 // hunk can't fit on the text. Return undefined
18373
18374 };
18375 }
18376
18377 function applyPatch(source, uniDiff) {
18378 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
18379
18380 if (typeof uniDiff === 'string') {
18381 uniDiff = parsePatch(uniDiff);
18382 }
18383
18384 if (Array.isArray(uniDiff)) {
18385 if (uniDiff.length > 1) {
18386 throw new Error('applyPatch only works with a single input.');
18387 }
18388
18389 uniDiff = uniDiff[0];
18390 } // Apply the diff to the input
18391
18392
18393 var lines = source.split(/\r\n|[\n\v\f\r\x85]/),
18394 delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [],
18395 hunks = uniDiff.hunks,
18396 compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {
18397 return line === patchContent;
18398 },
18399 errorCount = 0,
18400 fuzzFactor = options.fuzzFactor || 0,
18401 minLine = 0,
18402 offset = 0,
18403 removeEOFNL,
18404 addEOFNL;
18405 /**
18406 * Checks if the hunk exactly fits on the provided location
18407 */
18408
18409
18410 function hunkFits(hunk, toPos) {
18411 for (var j = 0; j < hunk.lines.length; j++) {
18412 var line = hunk.lines[j],
18413 operation = line.length > 0 ? line[0] : ' ',
18414 content = line.length > 0 ? line.substr(1) : line;
18415
18416 if (operation === ' ' || operation === '-') {
18417 // Context sanity check
18418 if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
18419 errorCount++;
18420
18421 if (errorCount > fuzzFactor) {
18422 return false;
18423 }
18424 }
18425
18426 toPos++;
18427 }
18428 }
18429
18430 return true;
18431 } // Search best fit offsets for each hunk based on the previous ones
18432
18433
18434 for (var i = 0; i < hunks.length; i++) {
18435 var hunk = hunks[i],
18436 maxLine = lines.length - hunk.oldLines,
18437 localOffset = 0,
18438 toPos = offset + hunk.oldStart - 1;
18439 var iterator = distanceIterator(toPos, minLine, maxLine);
18440
18441 for (; localOffset !== undefined; localOffset = iterator()) {
18442 if (hunkFits(hunk, toPos + localOffset)) {
18443 hunk.offset = offset += localOffset;
18444 break;
18445 }
18446 }
18447
18448 if (localOffset === undefined) {
18449 return false;
18450 } // Set lower text limit to end of the current hunk, so next ones don't try
18451 // to fit over already patched text
18452
18453
18454 minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
18455 } // Apply patch hunks
18456
18457
18458 var diffOffset = 0;
18459
18460 for (var _i = 0; _i < hunks.length; _i++) {
18461 var _hunk = hunks[_i],
18462 _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
18463
18464 diffOffset += _hunk.newLines - _hunk.oldLines;
18465
18466 for (var j = 0; j < _hunk.lines.length; j++) {
18467 var line = _hunk.lines[j],
18468 operation = line.length > 0 ? line[0] : ' ',
18469 content = line.length > 0 ? line.substr(1) : line,
18470 delimiter = _hunk.linedelimiters[j];
18471
18472 if (operation === ' ') {
18473 _toPos++;
18474 } else if (operation === '-') {
18475 lines.splice(_toPos, 1);
18476 delimiters.splice(_toPos, 1);
18477 /* istanbul ignore else */
18478 } else if (operation === '+') {
18479 lines.splice(_toPos, 0, content);
18480 delimiters.splice(_toPos, 0, delimiter);
18481 _toPos++;
18482 } else if (operation === '\\') {
18483 var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
18484
18485 if (previousOperation === '+') {
18486 removeEOFNL = true;
18487 } else if (previousOperation === '-') {
18488 addEOFNL = true;
18489 }
18490 }
18491 }
18492 } // Handle EOFNL insertion/removal
18493
18494
18495 if (removeEOFNL) {
18496 while (!lines[lines.length - 1]) {
18497 lines.pop();
18498 delimiters.pop();
18499 }
18500 } else if (addEOFNL) {
18501 lines.push('');
18502 delimiters.push('\n');
18503 }
18504
18505 for (var _k = 0; _k < lines.length - 1; _k++) {
18506 lines[_k] = lines[_k] + delimiters[_k];
18507 }
18508
18509 return lines.join('');
18510 } // Wrapper that supports multiple file patches via callbacks.
18511
18512 function applyPatches(uniDiff, options) {
18513 if (typeof uniDiff === 'string') {
18514 uniDiff = parsePatch(uniDiff);
18515 }
18516
18517 var currentIndex = 0;
18518
18519 function processIndex() {
18520 var index = uniDiff[currentIndex++];
18521
18522 if (!index) {
18523 return options.complete();
18524 }
18525
18526 options.loadFile(index, function (err, data) {
18527 if (err) {
18528 return options.complete(err);
18529 }
18530
18531 var updatedContent = applyPatch(data, index, options);
18532 options.patched(index, updatedContent, function (err) {
18533 if (err) {
18534 return options.complete(err);
18535 }
18536
18537 processIndex();
18538 });
18539 });
18540 }
18541
18542 processIndex();
18543 }
18544
18545 function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
18546 if (!options) {
18547 options = {};
18548 }
18549
18550 if (typeof options.context === 'undefined') {
18551 options.context = 4;
18552 }
18553
18554 var diff = diffLines(oldStr, newStr, options);
18555
18556 if (!diff) {
18557 return;
18558 }
18559
18560 diff.push({
18561 value: '',
18562 lines: []
18563 }); // Append an empty value to make cleanup easier
18564
18565 function contextLines(lines) {
18566 return lines.map(function (entry) {
18567 return ' ' + entry;
18568 });
18569 }
18570
18571 var hunks = [];
18572 var oldRangeStart = 0,
18573 newRangeStart = 0,
18574 curRange = [],
18575 oldLine = 1,
18576 newLine = 1;
18577
18578 var _loop = function _loop(i) {
18579 var current = diff[i],
18580 lines = current.lines || current.value.replace(/\n$/, '').split('\n');
18581 current.lines = lines;
18582
18583 if (current.added || current.removed) {
18584 var _curRange;
18585
18586 // If we have previous context, start with that
18587 if (!oldRangeStart) {
18588 var prev = diff[i - 1];
18589 oldRangeStart = oldLine;
18590 newRangeStart = newLine;
18591
18592 if (prev) {
18593 curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
18594 oldRangeStart -= curRange.length;
18595 newRangeStart -= curRange.length;
18596 }
18597 } // Output our changes
18598
18599
18600 (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {
18601 return (current.added ? '+' : '-') + entry;
18602 }))); // Track the updated file position
18603
18604
18605 if (current.added) {
18606 newLine += lines.length;
18607 } else {
18608 oldLine += lines.length;
18609 }
18610 } else {
18611 // Identical context lines. Track line changes
18612 if (oldRangeStart) {
18613 // Close out any changes that have been output (or join overlapping)
18614 if (lines.length <= options.context * 2 && i < diff.length - 2) {
18615 var _curRange2;
18616
18617 // Overlapping
18618 (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));
18619 } else {
18620 var _curRange3;
18621
18622 // end the range and output
18623 var contextSize = Math.min(lines.length, options.context);
18624
18625 (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));
18626
18627 var hunk = {
18628 oldStart: oldRangeStart,
18629 oldLines: oldLine - oldRangeStart + contextSize,
18630 newStart: newRangeStart,
18631 newLines: newLine - newRangeStart + contextSize,
18632 lines: curRange
18633 };
18634
18635 if (i >= diff.length - 2 && lines.length <= options.context) {
18636 // EOF is inside this hunk
18637 var oldEOFNewline = /\n$/.test(oldStr);
18638 var newEOFNewline = /\n$/.test(newStr);
18639 var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;
18640
18641 if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {
18642 // special case: old has no eol and no trailing context; no-nl can end up before adds
18643 // however, if the old file is empty, do not output the no-nl line
18644 curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
18645 }
18646
18647 if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {
18648 curRange.push('\\ No newline at end of file');
18649 }
18650 }
18651
18652 hunks.push(hunk);
18653 oldRangeStart = 0;
18654 newRangeStart = 0;
18655 curRange = [];
18656 }
18657 }
18658
18659 oldLine += lines.length;
18660 newLine += lines.length;
18661 }
18662 };
18663
18664 for (var i = 0; i < diff.length; i++) {
18665 _loop(i);
18666 }
18667
18668 return {
18669 oldFileName: oldFileName,
18670 newFileName: newFileName,
18671 oldHeader: oldHeader,
18672 newHeader: newHeader,
18673 hunks: hunks
18674 };
18675 }
18676 function formatPatch(diff) {
18677 var ret = [];
18678
18679 if (diff.oldFileName == diff.newFileName) {
18680 ret.push('Index: ' + diff.oldFileName);
18681 }
18682
18683 ret.push('===================================================================');
18684 ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
18685 ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
18686
18687 for (var i = 0; i < diff.hunks.length; i++) {
18688 var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,
18689 // the first number is one lower than one would expect.
18690 // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
18691
18692 if (hunk.oldLines === 0) {
18693 hunk.oldStart -= 1;
18694 }
18695
18696 if (hunk.newLines === 0) {
18697 hunk.newStart -= 1;
18698 }
18699
18700 ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
18701 ret.push.apply(ret, hunk.lines);
18702 }
18703
18704 return ret.join('\n') + '\n';
18705 }
18706 function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
18707 return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));
18708 }
18709 function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
18710 return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
18711 }
18712
18713 function arrayEqual(a, b) {
18714 if (a.length !== b.length) {
18715 return false;
18716 }
18717
18718 return arrayStartsWith(a, b);
18719 }
18720 function arrayStartsWith(array, start) {
18721 if (start.length > array.length) {
18722 return false;
18723 }
18724
18725 for (var i = 0; i < start.length; i++) {
18726 if (start[i] !== array[i]) {
18727 return false;
18728 }
18729 }
18730
18731 return true;
18732 }
18733
18734 function calcLineCount(hunk) {
18735 var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),
18736 oldLines = _calcOldNewLineCount.oldLines,
18737 newLines = _calcOldNewLineCount.newLines;
18738
18739 if (oldLines !== undefined) {
18740 hunk.oldLines = oldLines;
18741 } else {
18742 delete hunk.oldLines;
18743 }
18744
18745 if (newLines !== undefined) {
18746 hunk.newLines = newLines;
18747 } else {
18748 delete hunk.newLines;
18749 }
18750 }
18751 function merge(mine, theirs, base) {
18752 mine = loadPatch(mine, base);
18753 theirs = loadPatch(theirs, base);
18754 var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.
18755 // Leaving sanity checks on this to the API consumer that may know more about the
18756 // meaning in their own context.
18757
18758 if (mine.index || theirs.index) {
18759 ret.index = mine.index || theirs.index;
18760 }
18761
18762 if (mine.newFileName || theirs.newFileName) {
18763 if (!fileNameChanged(mine)) {
18764 // No header or no change in ours, use theirs (and ours if theirs does not exist)
18765 ret.oldFileName = theirs.oldFileName || mine.oldFileName;
18766 ret.newFileName = theirs.newFileName || mine.newFileName;
18767 ret.oldHeader = theirs.oldHeader || mine.oldHeader;
18768 ret.newHeader = theirs.newHeader || mine.newHeader;
18769 } else if (!fileNameChanged(theirs)) {
18770 // No header or no change in theirs, use ours
18771 ret.oldFileName = mine.oldFileName;
18772 ret.newFileName = mine.newFileName;
18773 ret.oldHeader = mine.oldHeader;
18774 ret.newHeader = mine.newHeader;
18775 } else {
18776 // Both changed... figure it out
18777 ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
18778 ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
18779 ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
18780 ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
18781 }
18782 }
18783
18784 ret.hunks = [];
18785 var mineIndex = 0,
18786 theirsIndex = 0,
18787 mineOffset = 0,
18788 theirsOffset = 0;
18789
18790 while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
18791 var mineCurrent = mine.hunks[mineIndex] || {
18792 oldStart: Infinity
18793 },
18794 theirsCurrent = theirs.hunks[theirsIndex] || {
18795 oldStart: Infinity
18796 };
18797
18798 if (hunkBefore(mineCurrent, theirsCurrent)) {
18799 // This patch does not overlap with any of the others, yay.
18800 ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
18801 mineIndex++;
18802 theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
18803 } else if (hunkBefore(theirsCurrent, mineCurrent)) {
18804 // This patch does not overlap with any of the others, yay.
18805 ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
18806 theirsIndex++;
18807 mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
18808 } else {
18809 // Overlap, merge as best we can
18810 var mergedHunk = {
18811 oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
18812 oldLines: 0,
18813 newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
18814 newLines: 0,
18815 lines: []
18816 };
18817 mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
18818 theirsIndex++;
18819 mineIndex++;
18820 ret.hunks.push(mergedHunk);
18821 }
18822 }
18823
18824 return ret;
18825 }
18826
18827 function loadPatch(param, base) {
18828 if (typeof param === 'string') {
18829 if (/^@@/m.test(param) || /^Index:/m.test(param)) {
18830 return parsePatch(param)[0];
18831 }
18832
18833 if (!base) {
18834 throw new Error('Must provide a base reference or pass in a patch');
18835 }
18836
18837 return structuredPatch(undefined, undefined, base, param);
18838 }
18839
18840 return param;
18841 }
18842
18843 function fileNameChanged(patch) {
18844 return patch.newFileName && patch.newFileName !== patch.oldFileName;
18845 }
18846
18847 function selectField(index, mine, theirs) {
18848 if (mine === theirs) {
18849 return mine;
18850 } else {
18851 index.conflict = true;
18852 return {
18853 mine: mine,
18854 theirs: theirs
18855 };
18856 }
18857 }
18858
18859 function hunkBefore(test, check) {
18860 return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
18861 }
18862
18863 function cloneHunk(hunk, offset) {
18864 return {
18865 oldStart: hunk.oldStart,
18866 oldLines: hunk.oldLines,
18867 newStart: hunk.newStart + offset,
18868 newLines: hunk.newLines,
18869 lines: hunk.lines
18870 };
18871 }
18872
18873 function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
18874 // This will generally result in a conflicted hunk, but there are cases where the context
18875 // is the only overlap where we can successfully merge the content here.
18876 var mine = {
18877 offset: mineOffset,
18878 lines: mineLines,
18879 index: 0
18880 },
18881 their = {
18882 offset: theirOffset,
18883 lines: theirLines,
18884 index: 0
18885 }; // Handle any leading content
18886
18887 insertLeading(hunk, mine, their);
18888 insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.
18889
18890 while (mine.index < mine.lines.length && their.index < their.lines.length) {
18891 var mineCurrent = mine.lines[mine.index],
18892 theirCurrent = their.lines[their.index];
18893
18894 if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {
18895 // Both modified ...
18896 mutualChange(hunk, mine, their);
18897 } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {
18898 var _hunk$lines;
18899
18900 // Mine inserted
18901 (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));
18902 } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {
18903 var _hunk$lines2;
18904
18905 // Theirs inserted
18906 (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));
18907 } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {
18908 // Mine removed or edited
18909 removal(hunk, mine, their);
18910 } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {
18911 // Their removed or edited
18912 removal(hunk, their, mine, true);
18913 } else if (mineCurrent === theirCurrent) {
18914 // Context identity
18915 hunk.lines.push(mineCurrent);
18916 mine.index++;
18917 their.index++;
18918 } else {
18919 // Context mismatch
18920 conflict(hunk, collectChange(mine), collectChange(their));
18921 }
18922 } // Now push anything that may be remaining
18923
18924
18925 insertTrailing(hunk, mine);
18926 insertTrailing(hunk, their);
18927 calcLineCount(hunk);
18928 }
18929
18930 function mutualChange(hunk, mine, their) {
18931 var myChanges = collectChange(mine),
18932 theirChanges = collectChange(their);
18933
18934 if (allRemoves(myChanges) && allRemoves(theirChanges)) {
18935 // Special case for remove changes that are supersets of one another
18936 if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {
18937 var _hunk$lines3;
18938
18939 (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));
18940
18941 return;
18942 } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {
18943 var _hunk$lines4;
18944
18945 (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));
18946
18947 return;
18948 }
18949 } else if (arrayEqual(myChanges, theirChanges)) {
18950 var _hunk$lines5;
18951
18952 (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));
18953
18954 return;
18955 }
18956
18957 conflict(hunk, myChanges, theirChanges);
18958 }
18959
18960 function removal(hunk, mine, their, swap) {
18961 var myChanges = collectChange(mine),
18962 theirChanges = collectContext(their, myChanges);
18963
18964 if (theirChanges.merged) {
18965 var _hunk$lines6;
18966
18967 (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));
18968 } else {
18969 conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
18970 }
18971 }
18972
18973 function conflict(hunk, mine, their) {
18974 hunk.conflict = true;
18975 hunk.lines.push({
18976 conflict: true,
18977 mine: mine,
18978 theirs: their
18979 });
18980 }
18981
18982 function insertLeading(hunk, insert, their) {
18983 while (insert.offset < their.offset && insert.index < insert.lines.length) {
18984 var line = insert.lines[insert.index++];
18985 hunk.lines.push(line);
18986 insert.offset++;
18987 }
18988 }
18989
18990 function insertTrailing(hunk, insert) {
18991 while (insert.index < insert.lines.length) {
18992 var line = insert.lines[insert.index++];
18993 hunk.lines.push(line);
18994 }
18995 }
18996
18997 function collectChange(state) {
18998 var ret = [],
18999 operation = state.lines[state.index][0];
19000
19001 while (state.index < state.lines.length) {
19002 var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one "atomic" modify change.
19003
19004 if (operation === '-' && line[0] === '+') {
19005 operation = '+';
19006 }
19007
19008 if (operation === line[0]) {
19009 ret.push(line);
19010 state.index++;
19011 } else {
19012 break;
19013 }
19014 }
19015
19016 return ret;
19017 }
19018
19019 function collectContext(state, matchChanges) {
19020 var changes = [],
19021 merged = [],
19022 matchIndex = 0,
19023 contextChanges = false,
19024 conflicted = false;
19025
19026 while (matchIndex < matchChanges.length && state.index < state.lines.length) {
19027 var change = state.lines[state.index],
19028 match = matchChanges[matchIndex]; // Once we've hit our add, then we are done
19029
19030 if (match[0] === '+') {
19031 break;
19032 }
19033
19034 contextChanges = contextChanges || change[0] !== ' ';
19035 merged.push(match);
19036 matchIndex++; // Consume any additions in the other block as a conflict to attempt
19037 // to pull in the remaining context after this
19038
19039 if (change[0] === '+') {
19040 conflicted = true;
19041
19042 while (change[0] === '+') {
19043 changes.push(change);
19044 change = state.lines[++state.index];
19045 }
19046 }
19047
19048 if (match.substr(1) === change.substr(1)) {
19049 changes.push(change);
19050 state.index++;
19051 } else {
19052 conflicted = true;
19053 }
19054 }
19055
19056 if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {
19057 conflicted = true;
19058 }
19059
19060 if (conflicted) {
19061 return changes;
19062 }
19063
19064 while (matchIndex < matchChanges.length) {
19065 merged.push(matchChanges[matchIndex++]);
19066 }
19067
19068 return {
19069 merged: merged,
19070 changes: changes
19071 };
19072 }
19073
19074 function allRemoves(changes) {
19075 return changes.reduce(function (prev, change) {
19076 return prev && change[0] === '-';
19077 }, true);
19078 }
19079
19080 function skipRemoveSuperset(state, removeChanges, delta) {
19081 for (var i = 0; i < delta; i++) {
19082 var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
19083
19084 if (state.lines[state.index + i] !== ' ' + changeContent) {
19085 return false;
19086 }
19087 }
19088
19089 state.index += delta;
19090 return true;
19091 }
19092
19093 function calcOldNewLineCount(lines) {
19094 var oldLines = 0;
19095 var newLines = 0;
19096 lines.forEach(function (line) {
19097 if (typeof line !== 'string') {
19098 var myCount = calcOldNewLineCount(line.mine);
19099 var theirCount = calcOldNewLineCount(line.theirs);
19100
19101 if (oldLines !== undefined) {
19102 if (myCount.oldLines === theirCount.oldLines) {
19103 oldLines += myCount.oldLines;
19104 } else {
19105 oldLines = undefined;
19106 }
19107 }
19108
19109 if (newLines !== undefined) {
19110 if (myCount.newLines === theirCount.newLines) {
19111 newLines += myCount.newLines;
19112 } else {
19113 newLines = undefined;
19114 }
19115 }
19116 } else {
19117 if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {
19118 newLines++;
19119 }
19120
19121 if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {
19122 oldLines++;
19123 }
19124 }
19125 });
19126 return {
19127 oldLines: oldLines,
19128 newLines: newLines
19129 };
19130 }
19131
19132 // See: http://code.google.com/p/google-diff-match-patch/wiki/API
19133 function convertChangesToDMP(changes) {
19134 var ret = [],
19135 change,
19136 operation;
19137
19138 for (var i = 0; i < changes.length; i++) {
19139 change = changes[i];
19140
19141 if (change.added) {
19142 operation = 1;
19143 } else if (change.removed) {
19144 operation = -1;
19145 } else {
19146 operation = 0;
19147 }
19148
19149 ret.push([operation, change.value]);
19150 }
19151
19152 return ret;
19153 }
19154
19155 function convertChangesToXML(changes) {
19156 var ret = [];
19157
19158 for (var i = 0; i < changes.length; i++) {
19159 var change = changes[i];
19160
19161 if (change.added) {
19162 ret.push('<ins>');
19163 } else if (change.removed) {
19164 ret.push('<del>');
19165 }
19166
19167 ret.push(escapeHTML(change.value));
19168
19169 if (change.added) {
19170 ret.push('</ins>');
19171 } else if (change.removed) {
19172 ret.push('</del>');
19173 }
19174 }
19175
19176 return ret.join('');
19177 }
19178
19179 function escapeHTML(s) {
19180 var n = s;
19181 n = n.replace(/&/g, '&amp;');
19182 n = n.replace(/</g, '&lt;');
19183 n = n.replace(/>/g, '&gt;');
19184 n = n.replace(/"/g, '&quot;');
19185 return n;
19186 }
19187
19188
19189
19190
19191 /***/ }),
19192
19193 /***/ "../node_modules/hast-util-whitespace/index.js":
19194 /*!*****************************************************!*\
19195 !*** ../node_modules/hast-util-whitespace/index.js ***!
19196 \*****************************************************/
19197 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19198
19199 "use strict";
19200 __webpack_require__.r(__webpack_exports__);
19201 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19202 /* harmony export */ whitespace: () => (/* binding */ whitespace)
19203 /* harmony export */ });
19204 /**
19205 * Check if the given value is *inter-element whitespace*.
19206 *
19207 * @param {unknown} thing
19208 * Thing to check (typically `Node` or `string`).
19209 * @returns {boolean}
19210 * Whether the `value` is inter-element whitespace (`boolean`): consisting of
19211 * zero or more of space, tab (`\t`), line feed (`\n`), carriage return
19212 * (`\r`), or form feed (`\f`).
19213 * If a node is passed it must be a `Text` node, whose `value` field is
19214 * checked.
19215 */
19216 function whitespace(thing) {
19217 /** @type {string} */
19218 const value =
19219 // @ts-expect-error looks like a node.
19220 thing && typeof thing === 'object' && thing.type === 'text'
19221 ? // @ts-expect-error looks like a text.
19222 thing.value || ''
19223 : thing
19224
19225 // HTML whitespace expression.
19226 // See <https://infra.spec.whatwg.org/#ascii-whitespace>.
19227 return typeof value === 'string' && value.replace(/[ \t\n\f\r]/g, '') === ''
19228 }
19229
19230
19231 /***/ }),
19232
19233 /***/ "../node_modules/is-plain-obj/index.js":
19234 /*!*********************************************!*\
19235 !*** ../node_modules/is-plain-obj/index.js ***!
19236 \*********************************************/
19237 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19238
19239 "use strict";
19240 __webpack_require__.r(__webpack_exports__);
19241 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19242 /* harmony export */ "default": () => (/* binding */ isPlainObject)
19243 /* harmony export */ });
19244 function isPlainObject(value) {
19245 if (typeof value !== 'object' || value === null) {
19246 return false;
19247 }
19248
19249 const prototype = Object.getPrototypeOf(value);
19250 return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
19251 }
19252
19253
19254 /***/ }),
19255
19256 /***/ "../node_modules/mdast-util-definitions/lib/index.js":
19257 /*!***********************************************************!*\
19258 !*** ../node_modules/mdast-util-definitions/lib/index.js ***!
19259 \***********************************************************/
19260 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19261
19262 "use strict";
19263 __webpack_require__.r(__webpack_exports__);
19264 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19265 /* harmony export */ definitions: () => (/* binding */ definitions)
19266 /* harmony export */ });
19267 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
19268 /**
19269 * @typedef {import('mdast').Root} Root
19270 * @typedef {import('mdast').Content} Content
19271 * @typedef {import('mdast').Definition} Definition
19272 */
19273
19274 /**
19275 * @typedef {Root | Content} Node
19276 *
19277 * @callback GetDefinition
19278 * Get a definition by identifier.
19279 * @param {string | null | undefined} [identifier]
19280 * Identifier of definition.
19281 * @returns {Definition | null}
19282 * Definition corresponding to `identifier` or `null`.
19283 */
19284
19285
19286
19287 const own = {}.hasOwnProperty
19288
19289 /**
19290 * Find definitions in `tree`.
19291 *
19292 * Uses CommonMark precedence, which means that earlier definitions are
19293 * preferred over duplicate later definitions.
19294 *
19295 * @param {Node} tree
19296 * Tree to check.
19297 * @returns {GetDefinition}
19298 * Getter.
19299 */
19300 function definitions(tree) {
19301 /** @type {Record<string, Definition>} */
19302 const cache = Object.create(null)
19303
19304 if (!tree || !tree.type) {
19305 throw new Error('mdast-util-definitions expected node')
19306 }
19307
19308 (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(tree, 'definition', (definition) => {
19309 const id = clean(definition.identifier)
19310 if (id && !own.call(cache, id)) {
19311 cache[id] = definition
19312 }
19313 })
19314
19315 return definition
19316
19317 /** @type {GetDefinition} */
19318 function definition(identifier) {
19319 const id = clean(identifier)
19320 // To do: next major: return `undefined` when not found.
19321 return id && own.call(cache, id) ? cache[id] : null
19322 }
19323 }
19324
19325 /**
19326 * @param {string | null | undefined} [value]
19327 * @returns {string}
19328 */
19329 function clean(value) {
19330 return String(value || '').toUpperCase()
19331 }
19332
19333
19334 /***/ }),
19335
19336 /***/ "../node_modules/mdast-util-from-markdown/dev/lib/index.js":
19337 /*!*****************************************************************!*\
19338 !*** ../node_modules/mdast-util-from-markdown/dev/lib/index.js ***!
19339 \*****************************************************************/
19340 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19341
19342 "use strict";
19343 __webpack_require__.r(__webpack_exports__);
19344 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19345 /* harmony export */ fromMarkdown: () => (/* binding */ fromMarkdown)
19346 /* harmony export */ });
19347 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
19348 /* 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");
19349 /* harmony import */ var micromark_lib_parse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark/lib/parse.js */ "../node_modules/micromark/dev/lib/parse.js");
19350 /* harmony import */ var micromark_lib_preprocess_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark/lib/preprocess.js */ "../node_modules/micromark/dev/lib/preprocess.js");
19351 /* harmony import */ var micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark/lib/postprocess.js */ "../node_modules/micromark/dev/lib/postprocess.js");
19352 /* 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");
19353 /* 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");
19354 /* 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");
19355 /* 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");
19356 /* 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");
19357 /* 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");
19358 /* 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");
19359 /* 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");
19360 /**
19361 * @typedef {import('micromark-util-types').Encoding} Encoding
19362 * @typedef {import('micromark-util-types').Event} Event
19363 * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
19364 * @typedef {import('micromark-util-types').Token} Token
19365 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
19366 * @typedef {import('micromark-util-types').Value} Value
19367 *
19368 * @typedef {import('unist').Parent} UnistParent
19369 * @typedef {import('unist').Point} Point
19370 *
19371 * @typedef {import('mdast').PhrasingContent} PhrasingContent
19372 * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent
19373 * @typedef {import('mdast').Content} Content
19374 * @typedef {import('mdast').Break} Break
19375 * @typedef {import('mdast').Blockquote} Blockquote
19376 * @typedef {import('mdast').Code} Code
19377 * @typedef {import('mdast').Definition} Definition
19378 * @typedef {import('mdast').Emphasis} Emphasis
19379 * @typedef {import('mdast').Heading} Heading
19380 * @typedef {import('mdast').HTML} HTML
19381 * @typedef {import('mdast').Image} Image
19382 * @typedef {import('mdast').ImageReference} ImageReference
19383 * @typedef {import('mdast').InlineCode} InlineCode
19384 * @typedef {import('mdast').Link} Link
19385 * @typedef {import('mdast').LinkReference} LinkReference
19386 * @typedef {import('mdast').List} List
19387 * @typedef {import('mdast').ListItem} ListItem
19388 * @typedef {import('mdast').Paragraph} Paragraph
19389 * @typedef {import('mdast').Root} Root
19390 * @typedef {import('mdast').Strong} Strong
19391 * @typedef {import('mdast').Text} Text
19392 * @typedef {import('mdast').ThematicBreak} ThematicBreak
19393 * @typedef {import('mdast').ReferenceType} ReferenceType
19394 * @typedef {import('../index.js').CompileData} CompileData
19395 */
19396
19397 /**
19398 * @typedef {Root | Content} Node
19399 * @typedef {Extract<Node, UnistParent>} Parent
19400 *
19401 * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment
19402 */
19403
19404 /**
19405 * @callback Transform
19406 * Extra transform, to change the AST afterwards.
19407 * @param {Root} tree
19408 * Tree to transform.
19409 * @returns {Root | undefined | null | void}
19410 * New tree or nothing (in which case the current tree is used).
19411 *
19412 * @callback Handle
19413 * Handle a token.
19414 * @param {CompileContext} this
19415 * Context.
19416 * @param {Token} token
19417 * Current token.
19418 * @returns {void}
19419 * Nothing.
19420 *
19421 * @typedef {Record<string, Handle>} Handles
19422 * Token types mapping to handles
19423 *
19424 * @callback OnEnterError
19425 * Handle the case where the `right` token is open, but it is closed (by the
19426 * `left` token) or because we reached the end of the document.
19427 * @param {Omit<CompileContext, 'sliceSerialize'>} this
19428 * Context.
19429 * @param {Token | undefined} left
19430 * Left token.
19431 * @param {Token} right
19432 * Right token.
19433 * @returns {void}
19434 * Nothing.
19435 *
19436 * @callback OnExitError
19437 * Handle the case where the `right` token is open but it is closed by
19438 * exiting the `left` token.
19439 * @param {Omit<CompileContext, 'sliceSerialize'>} this
19440 * Context.
19441 * @param {Token} left
19442 * Left token.
19443 * @param {Token} right
19444 * Right token.
19445 * @returns {void}
19446 * Nothing.
19447 *
19448 * @typedef {[Token, OnEnterError | undefined]} TokenTuple
19449 * Open token on the stack, with an optional error handler for when
19450 * that token isn’t closed properly.
19451 */
19452
19453 /**
19454 * @typedef Config
19455 * Configuration.
19456 *
19457 * We have our defaults, but extensions will add more.
19458 * @property {Array<string>} canContainEols
19459 * Token types where line endings are used.
19460 * @property {Handles} enter
19461 * Opening handles.
19462 * @property {Handles} exit
19463 * Closing handles.
19464 * @property {Array<Transform>} transforms
19465 * Tree transforms.
19466 *
19467 * @typedef {Partial<Config>} Extension
19468 * Change how markdown tokens from micromark are turned into mdast.
19469 *
19470 * @typedef CompileContext
19471 * mdast compiler context.
19472 * @property {Array<Node | Fragment>} stack
19473 * Stack of nodes.
19474 * @property {Array<TokenTuple>} tokenStack
19475 * Stack of tokens.
19476 * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData
19477 * Get data from the key/value store.
19478 * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData
19479 * Set data into the key/value store.
19480 * @property {(this: CompileContext) => void} buffer
19481 * Capture some of the output data.
19482 * @property {(this: CompileContext) => string} resume
19483 * Stop capturing and access the output data.
19484 * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter
19485 * Enter a token.
19486 * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit
19487 * Exit a token.
19488 * @property {TokenizeContext['sliceSerialize']} sliceSerialize
19489 * Get the string value of a token.
19490 * @property {Config} config
19491 * Configuration.
19492 *
19493 * @typedef FromMarkdownOptions
19494 * Configuration for how to build mdast.
19495 * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]
19496 * Extensions for this utility to change how tokens are turned into a tree.
19497 *
19498 * @typedef {ParseOptions & FromMarkdownOptions} Options
19499 * Configuration.
19500 */
19501
19502 // To do: micromark: create a registry of tokens?
19503 // To do: next major: don’t return given `Node` from `enter`.
19504 // To do: next major: remove setter/getter.
19505
19506
19507
19508
19509
19510
19511
19512
19513
19514
19515
19516
19517
19518
19519
19520 const own = {}.hasOwnProperty
19521
19522 /**
19523 * @param value
19524 * Markdown to parse.
19525 * @param encoding
19526 * Character encoding for when `value` is `Buffer`.
19527 * @param options
19528 * Configuration.
19529 * @returns
19530 * mdast tree.
19531 */
19532 const fromMarkdown =
19533 /**
19534 * @type {(
19535 * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &
19536 * ((value: Value, options?: Options | null | undefined) => Root)
19537 * )}
19538 */
19539 (
19540 /**
19541 * @param {Value} value
19542 * @param {Encoding | Options | null | undefined} [encoding]
19543 * @param {Options | null | undefined} [options]
19544 * @returns {Root}
19545 */
19546 function (value, encoding, options) {
19547 if (typeof encoding !== 'string') {
19548 options = encoding
19549 encoding = undefined
19550 }
19551
19552 return compiler(options)(
19553 (0,micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_1__.postprocess)(
19554 (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))
19555 )
19556 )
19557 }
19558 )
19559
19560 /**
19561 * Note this compiler only understand complete buffering, not streaming.
19562 *
19563 * @param {Options | null | undefined} [options]
19564 */
19565 function compiler(options) {
19566 /** @type {Config} */
19567 const config = {
19568 transforms: [],
19569 canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],
19570 enter: {
19571 autolink: opener(link),
19572 autolinkProtocol: onenterdata,
19573 autolinkEmail: onenterdata,
19574 atxHeading: opener(heading),
19575 blockQuote: opener(blockQuote),
19576 characterEscape: onenterdata,
19577 characterReference: onenterdata,
19578 codeFenced: opener(codeFlow),
19579 codeFencedFenceInfo: buffer,
19580 codeFencedFenceMeta: buffer,
19581 codeIndented: opener(codeFlow, buffer),
19582 codeText: opener(codeText, buffer),
19583 codeTextData: onenterdata,
19584 data: onenterdata,
19585 codeFlowValue: onenterdata,
19586 definition: opener(definition),
19587 definitionDestinationString: buffer,
19588 definitionLabelString: buffer,
19589 definitionTitleString: buffer,
19590 emphasis: opener(emphasis),
19591 hardBreakEscape: opener(hardBreak),
19592 hardBreakTrailing: opener(hardBreak),
19593 htmlFlow: opener(html, buffer),
19594 htmlFlowData: onenterdata,
19595 htmlText: opener(html, buffer),
19596 htmlTextData: onenterdata,
19597 image: opener(image),
19598 label: buffer,
19599 link: opener(link),
19600 listItem: opener(listItem),
19601 listItemValue: onenterlistitemvalue,
19602 listOrdered: opener(list, onenterlistordered),
19603 listUnordered: opener(list),
19604 paragraph: opener(paragraph),
19605 reference: onenterreference,
19606 referenceString: buffer,
19607 resourceDestinationString: buffer,
19608 resourceTitleString: buffer,
19609 setextHeading: opener(heading),
19610 strong: opener(strong),
19611 thematicBreak: opener(thematicBreak)
19612 },
19613 exit: {
19614 atxHeading: closer(),
19615 atxHeadingSequence: onexitatxheadingsequence,
19616 autolink: closer(),
19617 autolinkEmail: onexitautolinkemail,
19618 autolinkProtocol: onexitautolinkprotocol,
19619 blockQuote: closer(),
19620 characterEscapeValue: onexitdata,
19621 characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
19622 characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
19623 characterReferenceValue: onexitcharacterreferencevalue,
19624 codeFenced: closer(onexitcodefenced),
19625 codeFencedFence: onexitcodefencedfence,
19626 codeFencedFenceInfo: onexitcodefencedfenceinfo,
19627 codeFencedFenceMeta: onexitcodefencedfencemeta,
19628 codeFlowValue: onexitdata,
19629 codeIndented: closer(onexitcodeindented),
19630 codeText: closer(onexitcodetext),
19631 codeTextData: onexitdata,
19632 data: onexitdata,
19633 definition: closer(),
19634 definitionDestinationString: onexitdefinitiondestinationstring,
19635 definitionLabelString: onexitdefinitionlabelstring,
19636 definitionTitleString: onexitdefinitiontitlestring,
19637 emphasis: closer(),
19638 hardBreakEscape: closer(onexithardbreak),
19639 hardBreakTrailing: closer(onexithardbreak),
19640 htmlFlow: closer(onexithtmlflow),
19641 htmlFlowData: onexitdata,
19642 htmlText: closer(onexithtmltext),
19643 htmlTextData: onexitdata,
19644 image: closer(onexitimage),
19645 label: onexitlabel,
19646 labelText: onexitlabeltext,
19647 lineEnding: onexitlineending,
19648 link: closer(onexitlink),
19649 listItem: closer(),
19650 listOrdered: closer(),
19651 listUnordered: closer(),
19652 paragraph: closer(),
19653 referenceString: onexitreferencestring,
19654 resourceDestinationString: onexitresourcedestinationstring,
19655 resourceTitleString: onexitresourcetitlestring,
19656 resource: onexitresource,
19657 setextHeading: closer(onexitsetextheading),
19658 setextHeadingLineSequence: onexitsetextheadinglinesequence,
19659 setextHeadingText: onexitsetextheadingtext,
19660 strong: closer(),
19661 thematicBreak: closer()
19662 }
19663 }
19664
19665 configure(config, (options || {}).mdastExtensions || [])
19666
19667 /** @type {CompileData} */
19668 const data = {}
19669
19670 return compile
19671
19672 /**
19673 * Turn micromark events into an mdast tree.
19674 *
19675 * @param {Array<Event>} events
19676 * Events.
19677 * @returns {Root}
19678 * mdast tree.
19679 */
19680 function compile(events) {
19681 /** @type {Root} */
19682 let tree = {type: 'root', children: []}
19683 /** @type {Omit<CompileContext, 'sliceSerialize'>} */
19684 const context = {
19685 stack: [tree],
19686 tokenStack: [],
19687 config,
19688 enter,
19689 exit,
19690 buffer,
19691 resume,
19692 setData,
19693 getData
19694 }
19695 /** @type {Array<number>} */
19696 const listStack = []
19697 let index = -1
19698
19699 while (++index < events.length) {
19700 // We preprocess lists to add `listItem` tokens, and to infer whether
19701 // items the list itself are spread out.
19702 if (
19703 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered ||
19704 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered
19705 ) {
19706 if (events[index][0] === 'enter') {
19707 listStack.push(index)
19708 } else {
19709 const tail = listStack.pop()
19710 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tail === 'number', 'expected list ot be open')
19711 index = prepareList(events, tail, index)
19712 }
19713 }
19714 }
19715
19716 index = -1
19717
19718 while (++index < events.length) {
19719 const handler = config[events[index][0]]
19720
19721 if (own.call(handler, events[index][1].type)) {
19722 handler[events[index][1].type].call(
19723 Object.assign(
19724 {sliceSerialize: events[index][2].sliceSerialize},
19725 context
19726 ),
19727 events[index][1]
19728 )
19729 }
19730 }
19731
19732 // Handle tokens still being open.
19733 if (context.tokenStack.length > 0) {
19734 const tail = context.tokenStack[context.tokenStack.length - 1]
19735 const handler = tail[1] || defaultOnError
19736 handler.call(context, undefined, tail[0])
19737 }
19738
19739 // Figure out `root` position.
19740 tree.position = {
19741 start: point(
19742 events.length > 0 ? events[0][1].start : {line: 1, column: 1, offset: 0}
19743 ),
19744 end: point(
19745 events.length > 0
19746 ? events[events.length - 2][1].end
19747 : {line: 1, column: 1, offset: 0}
19748 )
19749 }
19750
19751 // Call transforms.
19752 index = -1
19753 while (++index < config.transforms.length) {
19754 tree = config.transforms[index](tree) || tree
19755 }
19756
19757 return tree
19758 }
19759
19760 /**
19761 * @param {Array<Event>} events
19762 * @param {number} start
19763 * @param {number} length
19764 * @returns {number}
19765 */
19766 function prepareList(events, start, length) {
19767 let index = start - 1
19768 let containerBalance = -1
19769 let listSpread = false
19770 /** @type {Token | undefined} */
19771 let listItem
19772 /** @type {number | undefined} */
19773 let lineIndex
19774 /** @type {number | undefined} */
19775 let firstBlankLineIndex
19776 /** @type {boolean | undefined} */
19777 let atMarker
19778
19779 while (++index <= length) {
19780 const event = events[index]
19781
19782 if (
19783 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered ||
19784 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered ||
19785 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuote
19786 ) {
19787 if (event[0] === 'enter') {
19788 containerBalance++
19789 } else {
19790 containerBalance--
19791 }
19792
19793 atMarker = undefined
19794 } else if (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank) {
19795 if (event[0] === 'enter') {
19796 if (
19797 listItem &&
19798 !atMarker &&
19799 !containerBalance &&
19800 !firstBlankLineIndex
19801 ) {
19802 firstBlankLineIndex = index
19803 }
19804
19805 atMarker = undefined
19806 }
19807 } else if (
19808 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix ||
19809 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemValue ||
19810 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemMarker ||
19811 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix ||
19812 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefixWhitespace
19813 ) {
19814 // Empty.
19815 } else {
19816 atMarker = undefined
19817 }
19818
19819 if (
19820 (!containerBalance &&
19821 event[0] === 'enter' &&
19822 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix) ||
19823 (containerBalance === -1 &&
19824 event[0] === 'exit' &&
19825 (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered ||
19826 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered))
19827 ) {
19828 if (listItem) {
19829 let tailIndex = index
19830 lineIndex = undefined
19831
19832 while (tailIndex--) {
19833 const tailEvent = events[tailIndex]
19834
19835 if (
19836 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding ||
19837 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank
19838 ) {
19839 if (tailEvent[0] === 'exit') continue
19840
19841 if (lineIndex) {
19842 events[lineIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank
19843 listSpread = true
19844 }
19845
19846 tailEvent[1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding
19847 lineIndex = tailIndex
19848 } else if (
19849 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix ||
19850 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuotePrefix ||
19851 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuotePrefixWhitespace ||
19852 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuoteMarker ||
19853 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemIndent
19854 ) {
19855 // Empty
19856 } else {
19857 break
19858 }
19859 }
19860
19861 if (
19862 firstBlankLineIndex &&
19863 (!lineIndex || firstBlankLineIndex < lineIndex)
19864 ) {
19865 listItem._spread = true
19866 }
19867
19868 // Fix position.
19869 listItem.end = Object.assign(
19870 {},
19871 lineIndex ? events[lineIndex][1].start : event[1].end
19872 )
19873
19874 events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])
19875 index++
19876 length++
19877 }
19878
19879 // Create a new list item.
19880 if (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix) {
19881 listItem = {
19882 type: 'listItem',
19883 _spread: false,
19884 start: Object.assign({}, event[1].start),
19885 // @ts-expect-error: we’ll add `end` in a second.
19886 end: undefined
19887 }
19888 // @ts-expect-error: `listItem` is most definitely defined, TS...
19889 events.splice(index, 0, ['enter', listItem, event[2]])
19890 index++
19891 length++
19892 firstBlankLineIndex = undefined
19893 atMarker = true
19894 }
19895 }
19896 }
19897
19898 events[start][1]._spread = listSpread
19899 return length
19900 }
19901
19902 /**
19903 * Set data.
19904 *
19905 * @template {keyof CompileData} Key
19906 * Field type.
19907 * @param {Key} key
19908 * Key of field.
19909 * @param {CompileData[Key]} [value]
19910 * New value.
19911 * @returns {void}
19912 * Nothing.
19913 */
19914 function setData(key, value) {
19915 data[key] = value
19916 }
19917
19918 /**
19919 * Get data.
19920 *
19921 * @template {keyof CompileData} Key
19922 * Field type.
19923 * @param {Key} key
19924 * Key of field.
19925 * @returns {CompileData[Key]}
19926 * Value.
19927 */
19928 function getData(key) {
19929 return data[key]
19930 }
19931
19932 /**
19933 * Create an opener handle.
19934 *
19935 * @param {(token: Token) => Node} create
19936 * Create a node.
19937 * @param {Handle} [and]
19938 * Optional function to also run.
19939 * @returns {Handle}
19940 * Handle.
19941 */
19942 function opener(create, and) {
19943 return open
19944
19945 /**
19946 * @this {CompileContext}
19947 * @param {Token} token
19948 * @returns {void}
19949 */
19950 function open(token) {
19951 enter.call(this, create(token), token)
19952 if (and) and.call(this, token)
19953 }
19954 }
19955
19956 /**
19957 * @this {CompileContext}
19958 * @returns {void}
19959 */
19960 function buffer() {
19961 this.stack.push({type: 'fragment', children: []})
19962 }
19963
19964 /**
19965 * @template {Node} Kind
19966 * Node type.
19967 * @this {CompileContext}
19968 * Context.
19969 * @param {Kind} node
19970 * Node to enter.
19971 * @param {Token} token
19972 * Corresponding token.
19973 * @param {OnEnterError | undefined} [errorHandler]
19974 * Handle the case where this token is open, but it is closed by something else.
19975 * @returns {Kind}
19976 * The given node.
19977 */
19978 function enter(node, token, errorHandler) {
19979 const parent = this.stack[this.stack.length - 1]
19980 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(parent, 'expected `parent`')
19981 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in parent, 'expected `parent`')
19982 // @ts-expect-error: Assume `Node` can exist as a child of `parent`.
19983 parent.children.push(node)
19984 this.stack.push(node)
19985 this.tokenStack.push([token, errorHandler])
19986 // @ts-expect-error: `end` will be patched later.
19987 node.position = {start: point(token.start)}
19988 return node
19989 }
19990
19991 /**
19992 * Create a closer handle.
19993 *
19994 * @param {Handle} [and]
19995 * Optional function to also run.
19996 * @returns {Handle}
19997 * Handle.
19998 */
19999 function closer(and) {
20000 return close
20001
20002 /**
20003 * @this {CompileContext}
20004 * @param {Token} token
20005 * @returns {void}
20006 */
20007 function close(token) {
20008 if (and) and.call(this, token)
20009 exit.call(this, token)
20010 }
20011 }
20012
20013 /**
20014 * @this {CompileContext}
20015 * Context.
20016 * @param {Token} token
20017 * Corresponding token.
20018 * @param {OnExitError | undefined} [onExitError]
20019 * Handle the case where another token is open.
20020 * @returns {Node}
20021 * The closed node.
20022 */
20023 function exit(token, onExitError) {
20024 const node = this.stack.pop()
20025 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected `node`')
20026 const open = this.tokenStack.pop()
20027
20028 if (!open) {
20029 throw new Error(
20030 'Cannot close `' +
20031 token.type +
20032 '` (' +
20033 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: token.start, end: token.end}) +
20034 '): it’s not open'
20035 )
20036 } else if (open[0].type !== token.type) {
20037 if (onExitError) {
20038 onExitError.call(this, token, open[0])
20039 } else {
20040 const handler = open[1] || defaultOnError
20041 handler.call(this, token, open[0])
20042 }
20043 }
20044
20045 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type !== 'fragment', 'unexpected fragment `exit`ed')
20046 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.position, 'expected `position` to be defined')
20047 node.position.end = point(token.end)
20048 return node
20049 }
20050
20051 /**
20052 * @this {CompileContext}
20053 * @returns {string}
20054 */
20055 function resume() {
20056 return (0,mdast_util_to_string__WEBPACK_IMPORTED_MODULE_6__.toString)(this.stack.pop())
20057 }
20058
20059 //
20060 // Handlers.
20061 //
20062
20063 /**
20064 * @this {CompileContext}
20065 * @type {Handle}
20066 */
20067 function onenterlistordered() {
20068 setData('expectingFirstListItemValue', true)
20069 }
20070
20071 /**
20072 * @this {CompileContext}
20073 * @type {Handle}
20074 */
20075 function onenterlistitemvalue(token) {
20076 if (getData('expectingFirstListItemValue')) {
20077 const ancestor = this.stack[this.stack.length - 2]
20078 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor, 'expected nodes on stack')
20079 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor.type === 'list', 'expected list on stack')
20080 ancestor.start = Number.parseInt(
20081 this.sliceSerialize(token),
20082 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal
20083 )
20084 setData('expectingFirstListItemValue')
20085 }
20086 }
20087
20088 /**
20089 * @this {CompileContext}
20090 * @type {Handle}
20091 */
20092 function onexitcodefencedfenceinfo() {
20093 const data = this.resume()
20094 const node = this.stack[this.stack.length - 1]
20095 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20096 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20097 node.lang = data
20098 }
20099
20100 /**
20101 * @this {CompileContext}
20102 * @type {Handle}
20103 */
20104 function onexitcodefencedfencemeta() {
20105 const data = this.resume()
20106 const node = this.stack[this.stack.length - 1]
20107 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20108 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20109 node.meta = data
20110 }
20111
20112 /**
20113 * @this {CompileContext}
20114 * @type {Handle}
20115 */
20116 function onexitcodefencedfence() {
20117 // Exit if this is the closing fence.
20118 if (getData('flowCodeInside')) return
20119 this.buffer()
20120 setData('flowCodeInside', true)
20121 }
20122
20123 /**
20124 * @this {CompileContext}
20125 * @type {Handle}
20126 */
20127 function onexitcodefenced() {
20128 const data = this.resume()
20129 const node = this.stack[this.stack.length - 1]
20130 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20131 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20132
20133 node.value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '')
20134 setData('flowCodeInside')
20135 }
20136
20137 /**
20138 * @this {CompileContext}
20139 * @type {Handle}
20140 */
20141 function onexitcodeindented() {
20142 const data = this.resume()
20143 const node = this.stack[this.stack.length - 1]
20144 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20145 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20146
20147 node.value = data.replace(/(\r?\n|\r)$/g, '')
20148 }
20149
20150 /**
20151 * @this {CompileContext}
20152 * @type {Handle}
20153 */
20154 function onexitdefinitionlabelstring(token) {
20155 const label = this.resume()
20156 const node = this.stack[this.stack.length - 1]
20157 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20158 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20159
20160 node.label = label
20161 node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(
20162 this.sliceSerialize(token)
20163 ).toLowerCase()
20164 }
20165
20166 /**
20167 * @this {CompileContext}
20168 * @type {Handle}
20169 */
20170 function onexitdefinitiontitlestring() {
20171 const data = this.resume()
20172 const node = this.stack[this.stack.length - 1]
20173 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20174 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20175
20176 node.title = data
20177 }
20178
20179 /**
20180 * @this {CompileContext}
20181 * @type {Handle}
20182 */
20183 function onexitdefinitiondestinationstring() {
20184 const data = this.resume()
20185 const node = this.stack[this.stack.length - 1]
20186 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20187 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20188
20189 node.url = data
20190 }
20191
20192 /**
20193 * @this {CompileContext}
20194 * @type {Handle}
20195 */
20196 function onexitatxheadingsequence(token) {
20197 const node = this.stack[this.stack.length - 1]
20198 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20199 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'heading', 'expected heading on stack')
20200
20201 if (!node.depth) {
20202 const depth = this.sliceSerialize(token).length
20203
20204 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20205 depth === 1 ||
20206 depth === 2 ||
20207 depth === 3 ||
20208 depth === 4 ||
20209 depth === 5 ||
20210 depth === 6,
20211 'expected `depth` between `1` and `6`'
20212 )
20213
20214 node.depth = depth
20215 }
20216 }
20217
20218 /**
20219 * @this {CompileContext}
20220 * @type {Handle}
20221 */
20222 function onexitsetextheadingtext() {
20223 setData('setextHeadingSlurpLineEnding', true)
20224 }
20225
20226 /**
20227 * @this {CompileContext}
20228 * @type {Handle}
20229 */
20230 function onexitsetextheadinglinesequence(token) {
20231 const node = this.stack[this.stack.length - 1]
20232 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20233 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'heading', 'expected heading on stack')
20234
20235 node.depth =
20236 this.sliceSerialize(token).charCodeAt(0) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_9__.codes.equalsTo ? 1 : 2
20237 }
20238
20239 /**
20240 * @this {CompileContext}
20241 * @type {Handle}
20242 */
20243 function onexitsetextheading() {
20244 setData('setextHeadingSlurpLineEnding')
20245 }
20246
20247 /**
20248 * @this {CompileContext}
20249 * @type {Handle}
20250 */
20251
20252 function onenterdata(token) {
20253 const node = this.stack[this.stack.length - 1]
20254 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20255 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in node, 'expected parent on stack')
20256
20257 let tail = node.children[node.children.length - 1]
20258
20259 if (!tail || tail.type !== 'text') {
20260 // Add a new text node.
20261 tail = text()
20262 // @ts-expect-error: we’ll add `end` later.
20263 tail.position = {start: point(token.start)}
20264 // @ts-expect-error: Assume `parent` accepts `text`.
20265 node.children.push(tail)
20266 }
20267
20268 this.stack.push(tail)
20269 }
20270
20271 /**
20272 * @this {CompileContext}
20273 * @type {Handle}
20274 */
20275
20276 function onexitdata(token) {
20277 const tail = this.stack.pop()
20278 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail, 'expected a `node` to be on the stack')
20279 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('value' in tail, 'expected a `literal` to be on the stack')
20280 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected `node` to have an open position')
20281 tail.value += this.sliceSerialize(token)
20282 tail.position.end = point(token.end)
20283 }
20284
20285 /**
20286 * @this {CompileContext}
20287 * @type {Handle}
20288 */
20289
20290 function onexitlineending(token) {
20291 const context = this.stack[this.stack.length - 1]
20292 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(context, 'expected `node`')
20293
20294 // If we’re at a hard break, include the line ending in there.
20295 if (getData('atHardBreak')) {
20296 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in context, 'expected `parent`')
20297 const tail = context.children[context.children.length - 1]
20298 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected tail to have a starting position')
20299 tail.position.end = point(token.end)
20300 setData('atHardBreak')
20301 return
20302 }
20303
20304 if (
20305 !getData('setextHeadingSlurpLineEnding') &&
20306 config.canContainEols.includes(context.type)
20307 ) {
20308 onenterdata.call(this, token)
20309 onexitdata.call(this, token)
20310 }
20311 }
20312
20313 /**
20314 * @this {CompileContext}
20315 * @type {Handle}
20316 */
20317
20318 function onexithardbreak() {
20319 setData('atHardBreak', true)
20320 }
20321
20322 /**
20323 * @this {CompileContext}
20324 * @type {Handle}
20325 */
20326
20327 function onexithtmlflow() {
20328 const data = this.resume()
20329 const node = this.stack[this.stack.length - 1]
20330 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20331 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'html', 'expected html on stack')
20332
20333 node.value = data
20334 }
20335
20336 /**
20337 * @this {CompileContext}
20338 * @type {Handle}
20339 */
20340
20341 function onexithtmltext() {
20342 const data = this.resume()
20343 const node = this.stack[this.stack.length - 1]
20344 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20345 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'html', 'expected html on stack')
20346
20347 node.value = data
20348 }
20349
20350 /**
20351 * @this {CompileContext}
20352 * @type {Handle}
20353 */
20354
20355 function onexitcodetext() {
20356 const data = this.resume()
20357 const node = this.stack[this.stack.length - 1]
20358 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20359 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'inlineCode', 'expected inline code on stack')
20360
20361 node.value = data
20362 }
20363
20364 /**
20365 * @this {CompileContext}
20366 * @type {Handle}
20367 */
20368
20369 function onexitlink() {
20370 const node = this.stack[this.stack.length - 1]
20371 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20372 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20373
20374 // Note: there are also `identifier` and `label` fields on this link node!
20375 // These are used / cleaned here.
20376
20377 // To do: clean.
20378 if (getData('inReference')) {
20379 /** @type {ReferenceType} */
20380 const referenceType = getData('referenceType') || 'shortcut'
20381
20382 node.type += 'Reference'
20383 // @ts-expect-error: mutate.
20384 node.referenceType = referenceType
20385 // @ts-expect-error: mutate.
20386 delete node.url
20387 delete node.title
20388 } else {
20389 // @ts-expect-error: mutate.
20390 delete node.identifier
20391 // @ts-expect-error: mutate.
20392 delete node.label
20393 }
20394
20395 setData('referenceType')
20396 }
20397
20398 /**
20399 * @this {CompileContext}
20400 * @type {Handle}
20401 */
20402
20403 function onexitimage() {
20404 const node = this.stack[this.stack.length - 1]
20405 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20406 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'image', 'expected image on stack')
20407
20408 // Note: there are also `identifier` and `label` fields on this link node!
20409 // These are used / cleaned here.
20410
20411 // To do: clean.
20412 if (getData('inReference')) {
20413 /** @type {ReferenceType} */
20414 const referenceType = getData('referenceType') || 'shortcut'
20415
20416 node.type += 'Reference'
20417 // @ts-expect-error: mutate.
20418 node.referenceType = referenceType
20419 // @ts-expect-error: mutate.
20420 delete node.url
20421 delete node.title
20422 } else {
20423 // @ts-expect-error: mutate.
20424 delete node.identifier
20425 // @ts-expect-error: mutate.
20426 delete node.label
20427 }
20428
20429 setData('referenceType')
20430 }
20431
20432 /**
20433 * @this {CompileContext}
20434 * @type {Handle}
20435 */
20436
20437 function onexitlabeltext(token) {
20438 const string = this.sliceSerialize(token)
20439 const ancestor = this.stack[this.stack.length - 2]
20440 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor, 'expected ancestor on stack')
20441 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20442 ancestor.type === 'image' || ancestor.type === 'link',
20443 'expected image or link on stack'
20444 )
20445
20446 // @ts-expect-error: stash this on the node, as it might become a reference
20447 // later.
20448 ancestor.label = (0,micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_10__.decodeString)(string)
20449 // @ts-expect-error: same as above.
20450 ancestor.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(string).toLowerCase()
20451 }
20452
20453 /**
20454 * @this {CompileContext}
20455 * @type {Handle}
20456 */
20457
20458 function onexitlabel() {
20459 const fragment = this.stack[this.stack.length - 1]
20460 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(fragment, 'expected node on stack')
20461 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(fragment.type === 'fragment', 'expected fragment on stack')
20462 const value = this.resume()
20463 const node = this.stack[this.stack.length - 1]
20464 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20465 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20466 node.type === 'image' || node.type === 'link',
20467 'expected image or link on stack'
20468 )
20469
20470 // Assume a reference.
20471 setData('inReference', true)
20472
20473 if (node.type === 'link') {
20474 /** @type {Array<StaticPhrasingContent>} */
20475 // @ts-expect-error: Assume static phrasing content.
20476 const children = fragment.children
20477
20478 node.children = children
20479 } else {
20480 node.alt = value
20481 }
20482 }
20483
20484 /**
20485 * @this {CompileContext}
20486 * @type {Handle}
20487 */
20488
20489 function onexitresourcedestinationstring() {
20490 const data = this.resume()
20491 const node = this.stack[this.stack.length - 1]
20492 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20493 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20494 node.type === 'image' || node.type === 'link',
20495 'expected image or link on stack'
20496 )
20497 node.url = data
20498 }
20499
20500 /**
20501 * @this {CompileContext}
20502 * @type {Handle}
20503 */
20504
20505 function onexitresourcetitlestring() {
20506 const data = this.resume()
20507 const node = this.stack[this.stack.length - 1]
20508 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20509 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20510 node.type === 'image' || node.type === 'link',
20511 'expected image or link on stack'
20512 )
20513 node.title = data
20514 }
20515
20516 /**
20517 * @this {CompileContext}
20518 * @type {Handle}
20519 */
20520
20521 function onexitresource() {
20522 setData('inReference')
20523 }
20524
20525 /**
20526 * @this {CompileContext}
20527 * @type {Handle}
20528 */
20529
20530 function onenterreference() {
20531 setData('referenceType', 'collapsed')
20532 }
20533
20534 /**
20535 * @this {CompileContext}
20536 * @type {Handle}
20537 */
20538
20539 function onexitreferencestring(token) {
20540 const label = this.resume()
20541 const node = this.stack[this.stack.length - 1]
20542 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20543 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20544 node.type === 'image' || node.type === 'link',
20545 'expected image reference or link reference on stack'
20546 )
20547
20548 // @ts-expect-error: stash this on the node, as it might become a reference
20549 // later.
20550 node.label = label
20551 // @ts-expect-error: same as above.
20552 node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(
20553 this.sliceSerialize(token)
20554 ).toLowerCase()
20555 setData('referenceType', 'full')
20556 }
20557
20558 /**
20559 * @this {CompileContext}
20560 * @type {Handle}
20561 */
20562
20563 function onexitcharacterreferencemarker(token) {
20564 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20565 token.type === 'characterReferenceMarkerNumeric' ||
20566 token.type === 'characterReferenceMarkerHexadecimal'
20567 )
20568 setData('characterReferenceType', token.type)
20569 }
20570
20571 /**
20572 * @this {CompileContext}
20573 * @type {Handle}
20574 */
20575 function onexitcharacterreferencevalue(token) {
20576 const data = this.sliceSerialize(token)
20577 const type = getData('characterReferenceType')
20578 /** @type {string} */
20579 let value
20580
20581 if (type) {
20582 value = (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_11__.decodeNumericCharacterReference)(
20583 data,
20584 type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.characterReferenceMarkerNumeric
20585 ? micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal
20586 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseHexadecimal
20587 )
20588 setData('characterReferenceType')
20589 } else {
20590 const result = (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_12__.decodeNamedCharacterReference)(data)
20591 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(result !== false, 'expected reference to decode')
20592 value = result
20593 }
20594
20595 const tail = this.stack.pop()
20596 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail, 'expected `node`')
20597 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected `node.position`')
20598 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('value' in tail, 'expected `node.value`')
20599 tail.value += value
20600 tail.position.end = point(token.end)
20601 }
20602
20603 /**
20604 * @this {CompileContext}
20605 * @type {Handle}
20606 */
20607 function onexitautolinkprotocol(token) {
20608 onexitdata.call(this, token)
20609 const node = this.stack[this.stack.length - 1]
20610 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20611 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20612
20613 node.url = this.sliceSerialize(token)
20614 }
20615
20616 /**
20617 * @this {CompileContext}
20618 * @type {Handle}
20619 */
20620 function onexitautolinkemail(token) {
20621 onexitdata.call(this, token)
20622 const node = this.stack[this.stack.length - 1]
20623 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20624 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20625
20626 node.url = 'mailto:' + this.sliceSerialize(token)
20627 }
20628
20629 //
20630 // Creaters.
20631 //
20632
20633 /** @returns {Blockquote} */
20634 function blockQuote() {
20635 return {type: 'blockquote', children: []}
20636 }
20637
20638 /** @returns {Code} */
20639 function codeFlow() {
20640 return {type: 'code', lang: null, meta: null, value: ''}
20641 }
20642
20643 /** @returns {InlineCode} */
20644 function codeText() {
20645 return {type: 'inlineCode', value: ''}
20646 }
20647
20648 /** @returns {Definition} */
20649 function definition() {
20650 return {
20651 type: 'definition',
20652 identifier: '',
20653 label: null,
20654 title: null,
20655 url: ''
20656 }
20657 }
20658
20659 /** @returns {Emphasis} */
20660 function emphasis() {
20661 return {type: 'emphasis', children: []}
20662 }
20663
20664 /** @returns {Heading} */
20665 function heading() {
20666 // @ts-expect-error `depth` will be set later.
20667 return {type: 'heading', depth: undefined, children: []}
20668 }
20669
20670 /** @returns {Break} */
20671 function hardBreak() {
20672 return {type: 'break'}
20673 }
20674
20675 /** @returns {HTML} */
20676 function html() {
20677 return {type: 'html', value: ''}
20678 }
20679
20680 /** @returns {Image} */
20681 function image() {
20682 return {type: 'image', title: null, url: '', alt: null}
20683 }
20684
20685 /** @returns {Link} */
20686 function link() {
20687 return {type: 'link', title: null, url: '', children: []}
20688 }
20689
20690 /**
20691 * @param {Token} token
20692 * @returns {List}
20693 */
20694 function list(token) {
20695 return {
20696 type: 'list',
20697 ordered: token.type === 'listOrdered',
20698 start: null,
20699 spread: token._spread,
20700 children: []
20701 }
20702 }
20703
20704 /**
20705 * @param {Token} token
20706 * @returns {ListItem}
20707 */
20708 function listItem(token) {
20709 return {
20710 type: 'listItem',
20711 spread: token._spread,
20712 checked: null,
20713 children: []
20714 }
20715 }
20716
20717 /** @returns {Paragraph} */
20718 function paragraph() {
20719 return {type: 'paragraph', children: []}
20720 }
20721
20722 /** @returns {Strong} */
20723 function strong() {
20724 return {type: 'strong', children: []}
20725 }
20726
20727 /** @returns {Text} */
20728 function text() {
20729 return {type: 'text', value: ''}
20730 }
20731
20732 /** @returns {ThematicBreak} */
20733 function thematicBreak() {
20734 return {type: 'thematicBreak'}
20735 }
20736 }
20737
20738 /**
20739 * Copy a point-like value.
20740 *
20741 * @param {Point} d
20742 * Point-like value.
20743 * @returns {Point}
20744 * unist point.
20745 */
20746 function point(d) {
20747 return {line: d.line, column: d.column, offset: d.offset}
20748 }
20749
20750 /**
20751 * @param {Config} combined
20752 * @param {Array<Extension | Array<Extension>>} extensions
20753 * @returns {void}
20754 */
20755 function configure(combined, extensions) {
20756 let index = -1
20757
20758 while (++index < extensions.length) {
20759 const value = extensions[index]
20760
20761 if (Array.isArray(value)) {
20762 configure(combined, value)
20763 } else {
20764 extension(combined, value)
20765 }
20766 }
20767 }
20768
20769 /**
20770 * @param {Config} combined
20771 * @param {Extension} extension
20772 * @returns {void}
20773 */
20774 function extension(combined, extension) {
20775 /** @type {keyof Extension} */
20776 let key
20777
20778 for (key in extension) {
20779 if (own.call(extension, key)) {
20780 if (key === 'canContainEols') {
20781 const right = extension[key]
20782 if (right) {
20783 combined[key].push(...right)
20784 }
20785 } else if (key === 'transforms') {
20786 const right = extension[key]
20787 if (right) {
20788 combined[key].push(...right)
20789 }
20790 } else if (key === 'enter' || key === 'exit') {
20791 const right = extension[key]
20792 if (right) {
20793 Object.assign(combined[key], right)
20794 }
20795 }
20796 }
20797 }
20798 }
20799
20800 /** @type {OnEnterError} */
20801 function defaultOnError(left, right) {
20802 if (left) {
20803 throw new Error(
20804 'Cannot close `' +
20805 left.type +
20806 '` (' +
20807 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: left.start, end: left.end}) +
20808 '): a different token (`' +
20809 right.type +
20810 '`, ' +
20811 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: right.start, end: right.end}) +
20812 ') is open'
20813 )
20814 } else {
20815 throw new Error(
20816 'Cannot close document, a token (`' +
20817 right.type +
20818 '`, ' +
20819 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: right.start, end: right.end}) +
20820 ') is still open'
20821 )
20822 }
20823 }
20824
20825
20826 /***/ }),
20827
20828 /***/ "../node_modules/mdast-util-to-hast/lib/footer.js":
20829 /*!********************************************************!*\
20830 !*** ../node_modules/mdast-util-to-hast/lib/footer.js ***!
20831 \********************************************************/
20832 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20833
20834 "use strict";
20835 __webpack_require__.r(__webpack_exports__);
20836 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20837 /* harmony export */ footer: () => (/* binding */ footer)
20838 /* harmony export */ });
20839 /* 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");
20840 /**
20841 * @typedef {import('hast').Element} Element
20842 * @typedef {import('hast').ElementContent} ElementContent
20843 *
20844 * @typedef {import('./state.js').State} State
20845 */
20846
20847
20848
20849 /**
20850 * Generate a hast footer for called footnote definitions.
20851 *
20852 * @param {State} state
20853 * Info passed around.
20854 * @returns {Element | undefined}
20855 * `section` element or `undefined`.
20856 */
20857 function footer(state) {
20858 /** @type {Array<ElementContent>} */
20859 const listItems = []
20860 let index = -1
20861
20862 while (++index < state.footnoteOrder.length) {
20863 const def = state.footnoteById[state.footnoteOrder[index]]
20864
20865 if (!def) {
20866 continue
20867 }
20868
20869 const content = state.all(def)
20870 const id = String(def.identifier).toUpperCase()
20871 const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())
20872 let referenceIndex = 0
20873 /** @type {Array<ElementContent>} */
20874 const backReferences = []
20875
20876 while (++referenceIndex <= state.footnoteCounts[id]) {
20877 /** @type {Element} */
20878 const backReference = {
20879 type: 'element',
20880 tagName: 'a',
20881 properties: {
20882 href:
20883 '#' +
20884 state.clobberPrefix +
20885 'fnref-' +
20886 safeId +
20887 (referenceIndex > 1 ? '-' + referenceIndex : ''),
20888 dataFootnoteBackref: true,
20889 className: ['data-footnote-backref'],
20890 ariaLabel: state.footnoteBackLabel
20891 },
20892 children: [{type: 'text', value: '↩'}]
20893 }
20894
20895 if (referenceIndex > 1) {
20896 backReference.children.push({
20897 type: 'element',
20898 tagName: 'sup',
20899 children: [{type: 'text', value: String(referenceIndex)}]
20900 })
20901 }
20902
20903 if (backReferences.length > 0) {
20904 backReferences.push({type: 'text', value: ' '})
20905 }
20906
20907 backReferences.push(backReference)
20908 }
20909
20910 const tail = content[content.length - 1]
20911
20912 if (tail && tail.type === 'element' && tail.tagName === 'p') {
20913 const tailTail = tail.children[tail.children.length - 1]
20914 if (tailTail && tailTail.type === 'text') {
20915 tailTail.value += ' '
20916 } else {
20917 tail.children.push({type: 'text', value: ' '})
20918 }
20919
20920 tail.children.push(...backReferences)
20921 } else {
20922 content.push(...backReferences)
20923 }
20924
20925 /** @type {Element} */
20926 const listItem = {
20927 type: 'element',
20928 tagName: 'li',
20929 properties: {id: state.clobberPrefix + 'fn-' + safeId},
20930 children: state.wrap(content, true)
20931 }
20932
20933 state.patch(def, listItem)
20934
20935 listItems.push(listItem)
20936 }
20937
20938 if (listItems.length === 0) {
20939 return
20940 }
20941
20942 return {
20943 type: 'element',
20944 tagName: 'section',
20945 properties: {dataFootnotes: true, className: ['footnotes']},
20946 children: [
20947 {
20948 type: 'element',
20949 tagName: state.footnoteLabelTagName,
20950 properties: {
20951 // To do: use structured clone.
20952 ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),
20953 id: 'footnote-label'
20954 },
20955 children: [{type: 'text', value: state.footnoteLabel}]
20956 },
20957 {type: 'text', value: '\n'},
20958 {
20959 type: 'element',
20960 tagName: 'ol',
20961 properties: {},
20962 children: state.wrap(listItems, true)
20963 },
20964 {type: 'text', value: '\n'}
20965 ]
20966 }
20967 }
20968
20969
20970 /***/ }),
20971
20972 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js":
20973 /*!*********************************************************************!*\
20974 !*** ../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js ***!
20975 \*********************************************************************/
20976 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20977
20978 "use strict";
20979 __webpack_require__.r(__webpack_exports__);
20980 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20981 /* harmony export */ blockquote: () => (/* binding */ blockquote)
20982 /* harmony export */ });
20983 /**
20984 * @typedef {import('hast').Element} Element
20985 * @typedef {import('mdast').Blockquote} Blockquote
20986 * @typedef {import('../state.js').State} State
20987 */
20988
20989 /**
20990 * Turn an mdast `blockquote` node into hast.
20991 *
20992 * @param {State} state
20993 * Info passed around.
20994 * @param {Blockquote} node
20995 * mdast node.
20996 * @returns {Element}
20997 * hast node.
20998 */
20999 function blockquote(state, node) {
21000 /** @type {Element} */
21001 const result = {
21002 type: 'element',
21003 tagName: 'blockquote',
21004 properties: {},
21005 children: state.wrap(state.all(node), true)
21006 }
21007 state.patch(node, result)
21008 return state.applyData(node, result)
21009 }
21010
21011
21012 /***/ }),
21013
21014 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/break.js":
21015 /*!****************************************************************!*\
21016 !*** ../node_modules/mdast-util-to-hast/lib/handlers/break.js ***!
21017 \****************************************************************/
21018 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21019
21020 "use strict";
21021 __webpack_require__.r(__webpack_exports__);
21022 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21023 /* harmony export */ hardBreak: () => (/* binding */ hardBreak)
21024 /* harmony export */ });
21025 /**
21026 * @typedef {import('hast').Element} Element
21027 * @typedef {import('hast').Text} Text
21028 * @typedef {import('mdast').Break} Break
21029 * @typedef {import('../state.js').State} State
21030 */
21031
21032 /**
21033 * Turn an mdast `break` node into hast.
21034 *
21035 * @param {State} state
21036 * Info passed around.
21037 * @param {Break} node
21038 * mdast node.
21039 * @returns {Array<Element | Text>}
21040 * hast element content.
21041 */
21042 function hardBreak(state, node) {
21043 /** @type {Element} */
21044 const result = {type: 'element', tagName: 'br', properties: {}, children: []}
21045 state.patch(node, result)
21046 return [state.applyData(node, result), {type: 'text', value: '\n'}]
21047 }
21048
21049
21050 /***/ }),
21051
21052 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/code.js":
21053 /*!***************************************************************!*\
21054 !*** ../node_modules/mdast-util-to-hast/lib/handlers/code.js ***!
21055 \***************************************************************/
21056 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21057
21058 "use strict";
21059 __webpack_require__.r(__webpack_exports__);
21060 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21061 /* harmony export */ code: () => (/* binding */ code)
21062 /* harmony export */ });
21063 /**
21064 * @typedef {import('hast').Element} Element
21065 * @typedef {import('hast').Properties} Properties
21066 * @typedef {import('mdast').Code} Code
21067 * @typedef {import('../state.js').State} State
21068
21069 */
21070
21071 /**
21072 * Turn an mdast `code` node into hast.
21073 *
21074 * @param {State} state
21075 * Info passed around.
21076 * @param {Code} node
21077 * mdast node.
21078 * @returns {Element}
21079 * hast node.
21080 */
21081 function code(state, node) {
21082 const value = node.value ? node.value + '\n' : ''
21083 // To do: next major, use `node.lang` w/o regex, the splitting’s been going
21084 // on for years in remark now.
21085 const lang = node.lang ? node.lang.match(/^[^ \t]+(?=[ \t]|$)/) : null
21086 /** @type {Properties} */
21087 const properties = {}
21088
21089 if (lang) {
21090 properties.className = ['language-' + lang]
21091 }
21092
21093 // Create `<code>`.
21094 /** @type {Element} */
21095 let result = {
21096 type: 'element',
21097 tagName: 'code',
21098 properties,
21099 children: [{type: 'text', value}]
21100 }
21101
21102 if (node.meta) {
21103 result.data = {meta: node.meta}
21104 }
21105
21106 state.patch(node, result)
21107 result = state.applyData(node, result)
21108
21109 // Create `<pre>`.
21110 result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}
21111 state.patch(node, result)
21112 return result
21113 }
21114
21115
21116 /***/ }),
21117
21118 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/delete.js":
21119 /*!*****************************************************************!*\
21120 !*** ../node_modules/mdast-util-to-hast/lib/handlers/delete.js ***!
21121 \*****************************************************************/
21122 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21123
21124 "use strict";
21125 __webpack_require__.r(__webpack_exports__);
21126 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21127 /* harmony export */ strikethrough: () => (/* binding */ strikethrough)
21128 /* harmony export */ });
21129 /**
21130 * @typedef {import('hast').Element} Element
21131 * @typedef {import('mdast').Delete} Delete
21132 * @typedef {import('../state.js').State} State
21133
21134 */
21135
21136 /**
21137 * Turn an mdast `delete` node into hast.
21138 *
21139 * @param {State} state
21140 * Info passed around.
21141 * @param {Delete} node
21142 * mdast node.
21143 * @returns {Element}
21144 * hast node.
21145 */
21146 function strikethrough(state, node) {
21147 /** @type {Element} */
21148 const result = {
21149 type: 'element',
21150 tagName: 'del',
21151 properties: {},
21152 children: state.all(node)
21153 }
21154 state.patch(node, result)
21155 return state.applyData(node, result)
21156 }
21157
21158
21159 /***/ }),
21160
21161 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js":
21162 /*!*******************************************************************!*\
21163 !*** ../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js ***!
21164 \*******************************************************************/
21165 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21166
21167 "use strict";
21168 __webpack_require__.r(__webpack_exports__);
21169 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21170 /* harmony export */ emphasis: () => (/* binding */ emphasis)
21171 /* harmony export */ });
21172 /**
21173 * @typedef {import('hast').Element} Element
21174 * @typedef {import('mdast').Emphasis} Emphasis
21175 * @typedef {import('../state.js').State} State
21176 */
21177
21178 /**
21179 * Turn an mdast `emphasis` node into hast.
21180 *
21181 * @param {State} state
21182 * Info passed around.
21183 * @param {Emphasis} node
21184 * mdast node.
21185 * @returns {Element}
21186 * hast node.
21187 */
21188 function emphasis(state, node) {
21189 /** @type {Element} */
21190 const result = {
21191 type: 'element',
21192 tagName: 'em',
21193 properties: {},
21194 children: state.all(node)
21195 }
21196 state.patch(node, result)
21197 return state.applyData(node, result)
21198 }
21199
21200
21201 /***/ }),
21202
21203 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js":
21204 /*!*****************************************************************************!*\
21205 !*** ../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js ***!
21206 \*****************************************************************************/
21207 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21208
21209 "use strict";
21210 __webpack_require__.r(__webpack_exports__);
21211 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21212 /* harmony export */ footnoteReference: () => (/* binding */ footnoteReference)
21213 /* harmony export */ });
21214 /* 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");
21215 /**
21216 * @typedef {import('mdast').FootnoteReference} FootnoteReference
21217 * @typedef {import('hast').Element} Element
21218 * @typedef {import('../state.js').State} State
21219 */
21220
21221
21222
21223 /**
21224 * Turn an mdast `footnoteReference` node into hast.
21225 *
21226 * @param {State} state
21227 * Info passed around.
21228 * @param {FootnoteReference} node
21229 * mdast node.
21230 * @returns {Element}
21231 * hast node.
21232 */
21233 function footnoteReference(state, node) {
21234 const id = String(node.identifier).toUpperCase()
21235 const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())
21236 const index = state.footnoteOrder.indexOf(id)
21237 /** @type {number} */
21238 let counter
21239
21240 if (index === -1) {
21241 state.footnoteOrder.push(id)
21242 state.footnoteCounts[id] = 1
21243 counter = state.footnoteOrder.length
21244 } else {
21245 state.footnoteCounts[id]++
21246 counter = index + 1
21247 }
21248
21249 const reuseCounter = state.footnoteCounts[id]
21250
21251 /** @type {Element} */
21252 const link = {
21253 type: 'element',
21254 tagName: 'a',
21255 properties: {
21256 href: '#' + state.clobberPrefix + 'fn-' + safeId,
21257 id:
21258 state.clobberPrefix +
21259 'fnref-' +
21260 safeId +
21261 (reuseCounter > 1 ? '-' + reuseCounter : ''),
21262 dataFootnoteRef: true,
21263 ariaDescribedBy: ['footnote-label']
21264 },
21265 children: [{type: 'text', value: String(counter)}]
21266 }
21267 state.patch(node, link)
21268
21269 /** @type {Element} */
21270 const sup = {
21271 type: 'element',
21272 tagName: 'sup',
21273 properties: {},
21274 children: [link]
21275 }
21276 state.patch(node, sup)
21277 return state.applyData(node, sup)
21278 }
21279
21280
21281 /***/ }),
21282
21283 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/footnote.js":
21284 /*!*******************************************************************!*\
21285 !*** ../node_modules/mdast-util-to-hast/lib/handlers/footnote.js ***!
21286 \*******************************************************************/
21287 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21288
21289 "use strict";
21290 __webpack_require__.r(__webpack_exports__);
21291 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21292 /* harmony export */ footnote: () => (/* binding */ footnote)
21293 /* harmony export */ });
21294 /* 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");
21295 /**
21296 * @typedef {import('hast').Element} Element
21297 * @typedef {import('mdast').Footnote} Footnote
21298 * @typedef {import('../state.js').State} State
21299 */
21300
21301
21302
21303 // To do: when both:
21304 // * <https://github.com/micromark/micromark-extension-footnote>
21305 // * <https://github.com/syntax-tree/mdast-util-footnote>
21306 // …are archived, remove this (also from mdast).
21307 // These inline notes are not used in GFM.
21308
21309 /**
21310 * Turn an mdast `footnote` node into hast.
21311 *
21312 * @param {State} state
21313 * Info passed around.
21314 * @param {Footnote} node
21315 * mdast node.
21316 * @returns {Element}
21317 * hast node.
21318 */
21319 function footnote(state, node) {
21320 const footnoteById = state.footnoteById
21321 let no = 1
21322
21323 while (no in footnoteById) no++
21324
21325 const identifier = String(no)
21326
21327 footnoteById[identifier] = {
21328 type: 'footnoteDefinition',
21329 identifier,
21330 children: [{type: 'paragraph', children: node.children}],
21331 position: node.position
21332 }
21333
21334 return (0,_footnote_reference_js__WEBPACK_IMPORTED_MODULE_0__.footnoteReference)(state, {
21335 type: 'footnoteReference',
21336 identifier,
21337 position: node.position
21338 })
21339 }
21340
21341
21342 /***/ }),
21343
21344 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/heading.js":
21345 /*!******************************************************************!*\
21346 !*** ../node_modules/mdast-util-to-hast/lib/handlers/heading.js ***!
21347 \******************************************************************/
21348 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21349
21350 "use strict";
21351 __webpack_require__.r(__webpack_exports__);
21352 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21353 /* harmony export */ heading: () => (/* binding */ heading)
21354 /* harmony export */ });
21355 /**
21356 * @typedef {import('hast').Element} Element
21357 * @typedef {import('mdast').Heading} Heading
21358 * @typedef {import('../state.js').State} State
21359 */
21360
21361 /**
21362 * Turn an mdast `heading` node into hast.
21363 *
21364 * @param {State} state
21365 * Info passed around.
21366 * @param {Heading} node
21367 * mdast node.
21368 * @returns {Element}
21369 * hast node.
21370 */
21371 function heading(state, node) {
21372 /** @type {Element} */
21373 const result = {
21374 type: 'element',
21375 tagName: 'h' + node.depth,
21376 properties: {},
21377 children: state.all(node)
21378 }
21379 state.patch(node, result)
21380 return state.applyData(node, result)
21381 }
21382
21383
21384 /***/ }),
21385
21386 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/html.js":
21387 /*!***************************************************************!*\
21388 !*** ../node_modules/mdast-util-to-hast/lib/handlers/html.js ***!
21389 \***************************************************************/
21390 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21391
21392 "use strict";
21393 __webpack_require__.r(__webpack_exports__);
21394 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21395 /* harmony export */ html: () => (/* binding */ html)
21396 /* harmony export */ });
21397 /**
21398 * @typedef {import('hast').Element} Element
21399 * @typedef {import('mdast').HTML} Html
21400 * @typedef {import('../state.js').State} State
21401 * @typedef {import('../../index.js').Raw} Raw
21402 */
21403
21404 /**
21405 * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise
21406 * nothing).
21407 *
21408 * @param {State} state
21409 * Info passed around.
21410 * @param {Html} node
21411 * mdast node.
21412 * @returns {Raw | Element | null}
21413 * hast node.
21414 */
21415 function html(state, node) {
21416 if (state.dangerous) {
21417 /** @type {Raw} */
21418 const result = {type: 'raw', value: node.value}
21419 state.patch(node, result)
21420 return state.applyData(node, result)
21421 }
21422
21423 // To do: next major: return `undefined`.
21424 return null
21425 }
21426
21427
21428 /***/ }),
21429
21430 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js":
21431 /*!**************************************************************************!*\
21432 !*** ../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js ***!
21433 \**************************************************************************/
21434 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21435
21436 "use strict";
21437 __webpack_require__.r(__webpack_exports__);
21438 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21439 /* harmony export */ imageReference: () => (/* binding */ imageReference)
21440 /* harmony export */ });
21441 /* 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");
21442 /* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ "../node_modules/mdast-util-to-hast/lib/revert.js");
21443 /**
21444 * @typedef {import('hast').ElementContent} ElementContent
21445 * @typedef {import('hast').Element} Element
21446 * @typedef {import('hast').Properties} Properties
21447 * @typedef {import('mdast').ImageReference} ImageReference
21448 * @typedef {import('../state.js').State} State
21449 */
21450
21451
21452
21453
21454 /**
21455 * Turn an mdast `imageReference` node into hast.
21456 *
21457 * @param {State} state
21458 * Info passed around.
21459 * @param {ImageReference} node
21460 * mdast node.
21461 * @returns {ElementContent | Array<ElementContent>}
21462 * hast node.
21463 */
21464 function imageReference(state, node) {
21465 const def = state.definition(node.identifier)
21466
21467 if (!def) {
21468 return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node)
21469 }
21470
21471 /** @type {Properties} */
21472 const properties = {src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || ''), alt: node.alt}
21473
21474 if (def.title !== null && def.title !== undefined) {
21475 properties.title = def.title
21476 }
21477
21478 /** @type {Element} */
21479 const result = {type: 'element', tagName: 'img', properties, children: []}
21480 state.patch(node, result)
21481 return state.applyData(node, result)
21482 }
21483
21484
21485 /***/ }),
21486
21487 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/image.js":
21488 /*!****************************************************************!*\
21489 !*** ../node_modules/mdast-util-to-hast/lib/handlers/image.js ***!
21490 \****************************************************************/
21491 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21492
21493 "use strict";
21494 __webpack_require__.r(__webpack_exports__);
21495 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21496 /* harmony export */ image: () => (/* binding */ image)
21497 /* harmony export */ });
21498 /* 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");
21499 /**
21500 * @typedef {import('hast').Element} Element
21501 * @typedef {import('hast').Properties} Properties
21502 * @typedef {import('mdast').Image} Image
21503 * @typedef {import('../state.js').State} State
21504 */
21505
21506
21507
21508 /**
21509 * Turn an mdast `image` node into hast.
21510 *
21511 * @param {State} state
21512 * Info passed around.
21513 * @param {Image} node
21514 * mdast node.
21515 * @returns {Element}
21516 * hast node.
21517 */
21518 function image(state, node) {
21519 /** @type {Properties} */
21520 const properties = {src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)}
21521
21522 if (node.alt !== null && node.alt !== undefined) {
21523 properties.alt = node.alt
21524 }
21525
21526 if (node.title !== null && node.title !== undefined) {
21527 properties.title = node.title
21528 }
21529
21530 /** @type {Element} */
21531 const result = {type: 'element', tagName: 'img', properties, children: []}
21532 state.patch(node, result)
21533 return state.applyData(node, result)
21534 }
21535
21536
21537 /***/ }),
21538
21539 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/index.js":
21540 /*!****************************************************************!*\
21541 !*** ../node_modules/mdast-util-to-hast/lib/handlers/index.js ***!
21542 \****************************************************************/
21543 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21544
21545 "use strict";
21546 __webpack_require__.r(__webpack_exports__);
21547 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21548 /* harmony export */ handlers: () => (/* binding */ handlers)
21549 /* harmony export */ });
21550 /* harmony import */ var _blockquote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blockquote.js */ "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js");
21551 /* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./break.js */ "../node_modules/mdast-util-to-hast/lib/handlers/break.js");
21552 /* harmony import */ var _code_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./code.js */ "../node_modules/mdast-util-to-hast/lib/handlers/code.js");
21553 /* harmony import */ var _delete_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete.js */ "../node_modules/mdast-util-to-hast/lib/handlers/delete.js");
21554 /* harmony import */ var _emphasis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emphasis.js */ "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js");
21555 /* 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");
21556 /* harmony import */ var _footnote_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./footnote.js */ "../node_modules/mdast-util-to-hast/lib/handlers/footnote.js");
21557 /* harmony import */ var _heading_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./heading.js */ "../node_modules/mdast-util-to-hast/lib/handlers/heading.js");
21558 /* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./html.js */ "../node_modules/mdast-util-to-hast/lib/handlers/html.js");
21559 /* 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");
21560 /* harmony import */ var _image_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./image.js */ "../node_modules/mdast-util-to-hast/lib/handlers/image.js");
21561 /* 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");
21562 /* 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");
21563 /* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./link.js */ "../node_modules/mdast-util-to-hast/lib/handlers/link.js");
21564 /* 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");
21565 /* harmony import */ var _list_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./list.js */ "../node_modules/mdast-util-to-hast/lib/handlers/list.js");
21566 /* harmony import */ var _paragraph_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./paragraph.js */ "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js");
21567 /* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./root.js */ "../node_modules/mdast-util-to-hast/lib/handlers/root.js");
21568 /* harmony import */ var _strong_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./strong.js */ "../node_modules/mdast-util-to-hast/lib/handlers/strong.js");
21569 /* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./table.js */ "../node_modules/mdast-util-to-hast/lib/handlers/table.js");
21570 /* 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");
21571 /* 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");
21572 /* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./text.js */ "../node_modules/mdast-util-to-hast/lib/handlers/text.js");
21573 /* 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");
21574
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 * Default handlers for nodes.
21601 */
21602 const handlers = {
21603 blockquote: _blockquote_js__WEBPACK_IMPORTED_MODULE_0__.blockquote,
21604 break: _break_js__WEBPACK_IMPORTED_MODULE_1__.hardBreak,
21605 code: _code_js__WEBPACK_IMPORTED_MODULE_2__.code,
21606 delete: _delete_js__WEBPACK_IMPORTED_MODULE_3__.strikethrough,
21607 emphasis: _emphasis_js__WEBPACK_IMPORTED_MODULE_4__.emphasis,
21608 footnoteReference: _footnote_reference_js__WEBPACK_IMPORTED_MODULE_5__.footnoteReference,
21609 footnote: _footnote_js__WEBPACK_IMPORTED_MODULE_6__.footnote,
21610 heading: _heading_js__WEBPACK_IMPORTED_MODULE_7__.heading,
21611 html: _html_js__WEBPACK_IMPORTED_MODULE_8__.html,
21612 imageReference: _image_reference_js__WEBPACK_IMPORTED_MODULE_9__.imageReference,
21613 image: _image_js__WEBPACK_IMPORTED_MODULE_10__.image,
21614 inlineCode: _inline_code_js__WEBPACK_IMPORTED_MODULE_11__.inlineCode,
21615 linkReference: _link_reference_js__WEBPACK_IMPORTED_MODULE_12__.linkReference,
21616 link: _link_js__WEBPACK_IMPORTED_MODULE_13__.link,
21617 listItem: _list_item_js__WEBPACK_IMPORTED_MODULE_14__.listItem,
21618 list: _list_js__WEBPACK_IMPORTED_MODULE_15__.list,
21619 paragraph: _paragraph_js__WEBPACK_IMPORTED_MODULE_16__.paragraph,
21620 root: _root_js__WEBPACK_IMPORTED_MODULE_17__.root,
21621 strong: _strong_js__WEBPACK_IMPORTED_MODULE_18__.strong,
21622 table: _table_js__WEBPACK_IMPORTED_MODULE_19__.table,
21623 tableCell: _table_cell_js__WEBPACK_IMPORTED_MODULE_20__.tableCell,
21624 tableRow: _table_row_js__WEBPACK_IMPORTED_MODULE_21__.tableRow,
21625 text: _text_js__WEBPACK_IMPORTED_MODULE_22__.text,
21626 thematicBreak: _thematic_break_js__WEBPACK_IMPORTED_MODULE_23__.thematicBreak,
21627 toml: ignore,
21628 yaml: ignore,
21629 definition: ignore,
21630 footnoteDefinition: ignore
21631 }
21632
21633 // Return nothing for nodes that are ignored.
21634 function ignore() {
21635 // To do: next major: return `undefined`.
21636 return null
21637 }
21638
21639
21640 /***/ }),
21641
21642 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js":
21643 /*!**********************************************************************!*\
21644 !*** ../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js ***!
21645 \**********************************************************************/
21646 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21647
21648 "use strict";
21649 __webpack_require__.r(__webpack_exports__);
21650 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21651 /* harmony export */ inlineCode: () => (/* binding */ inlineCode)
21652 /* harmony export */ });
21653 /**
21654 * @typedef {import('hast').Element} Element
21655 * @typedef {import('hast').Text} Text
21656 * @typedef {import('mdast').InlineCode} InlineCode
21657 * @typedef {import('../state.js').State} State
21658 */
21659
21660 /**
21661 * Turn an mdast `inlineCode` node into hast.
21662 *
21663 * @param {State} state
21664 * Info passed around.
21665 * @param {InlineCode} node
21666 * mdast node.
21667 * @returns {Element}
21668 * hast node.
21669 */
21670 function inlineCode(state, node) {
21671 /** @type {Text} */
21672 const text = {type: 'text', value: node.value.replace(/\r?\n|\r/g, ' ')}
21673 state.patch(node, text)
21674
21675 /** @type {Element} */
21676 const result = {
21677 type: 'element',
21678 tagName: 'code',
21679 properties: {},
21680 children: [text]
21681 }
21682 state.patch(node, result)
21683 return state.applyData(node, result)
21684 }
21685
21686
21687 /***/ }),
21688
21689 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js":
21690 /*!*************************************************************************!*\
21691 !*** ../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js ***!
21692 \*************************************************************************/
21693 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21694
21695 "use strict";
21696 __webpack_require__.r(__webpack_exports__);
21697 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21698 /* harmony export */ linkReference: () => (/* binding */ linkReference)
21699 /* harmony export */ });
21700 /* 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");
21701 /* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ "../node_modules/mdast-util-to-hast/lib/revert.js");
21702 /**
21703 * @typedef {import('hast').Element} Element
21704 * @typedef {import('hast').ElementContent} ElementContent
21705 * @typedef {import('hast').Properties} Properties
21706 * @typedef {import('mdast').LinkReference} LinkReference
21707 * @typedef {import('../state.js').State} State
21708 */
21709
21710
21711
21712
21713 /**
21714 * Turn an mdast `linkReference` node into hast.
21715 *
21716 * @param {State} state
21717 * Info passed around.
21718 * @param {LinkReference} node
21719 * mdast node.
21720 * @returns {ElementContent | Array<ElementContent>}
21721 * hast node.
21722 */
21723 function linkReference(state, node) {
21724 const def = state.definition(node.identifier)
21725
21726 if (!def) {
21727 return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node)
21728 }
21729
21730 /** @type {Properties} */
21731 const properties = {href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || '')}
21732
21733 if (def.title !== null && def.title !== undefined) {
21734 properties.title = def.title
21735 }
21736
21737 /** @type {Element} */
21738 const result = {
21739 type: 'element',
21740 tagName: 'a',
21741 properties,
21742 children: state.all(node)
21743 }
21744 state.patch(node, result)
21745 return state.applyData(node, result)
21746 }
21747
21748
21749 /***/ }),
21750
21751 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/link.js":
21752 /*!***************************************************************!*\
21753 !*** ../node_modules/mdast-util-to-hast/lib/handlers/link.js ***!
21754 \***************************************************************/
21755 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21756
21757 "use strict";
21758 __webpack_require__.r(__webpack_exports__);
21759 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21760 /* harmony export */ link: () => (/* binding */ link)
21761 /* harmony export */ });
21762 /* 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");
21763 /**
21764 * @typedef {import('hast').Element} Element
21765 * @typedef {import('hast').Properties} Properties
21766 * @typedef {import('mdast').Link} Link
21767 * @typedef {import('../state.js').State} State
21768 */
21769
21770
21771
21772 /**
21773 * Turn an mdast `link` node into hast.
21774 *
21775 * @param {State} state
21776 * Info passed around.
21777 * @param {Link} node
21778 * mdast node.
21779 * @returns {Element}
21780 * hast node.
21781 */
21782 function link(state, node) {
21783 /** @type {Properties} */
21784 const properties = {href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)}
21785
21786 if (node.title !== null && node.title !== undefined) {
21787 properties.title = node.title
21788 }
21789
21790 /** @type {Element} */
21791 const result = {
21792 type: 'element',
21793 tagName: 'a',
21794 properties,
21795 children: state.all(node)
21796 }
21797 state.patch(node, result)
21798 return state.applyData(node, result)
21799 }
21800
21801
21802 /***/ }),
21803
21804 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/list-item.js":
21805 /*!********************************************************************!*\
21806 !*** ../node_modules/mdast-util-to-hast/lib/handlers/list-item.js ***!
21807 \********************************************************************/
21808 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21809
21810 "use strict";
21811 __webpack_require__.r(__webpack_exports__);
21812 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21813 /* harmony export */ listItem: () => (/* binding */ listItem)
21814 /* harmony export */ });
21815 /**
21816 * @typedef {import('hast').Element} Element
21817 * @typedef {import('hast').ElementContent} ElementContent
21818 * @typedef {import('hast').Properties} Properties
21819 * @typedef {import('mdast').Content} Content
21820 * @typedef {import('mdast').ListItem} ListItem
21821 * @typedef {import('mdast').Parent} Parent
21822 * @typedef {import('mdast').Root} Root
21823 * @typedef {import('../state.js').State} State
21824 */
21825
21826 /**
21827 * @typedef {Root | Content} Nodes
21828 * @typedef {Extract<Nodes, Parent>} Parents
21829 */
21830
21831 /**
21832 * Turn an mdast `listItem` node into hast.
21833 *
21834 * @param {State} state
21835 * Info passed around.
21836 * @param {ListItem} node
21837 * mdast node.
21838 * @param {Parents | null | undefined} parent
21839 * Parent of `node`.
21840 * @returns {Element}
21841 * hast node.
21842 */
21843 function listItem(state, node, parent) {
21844 const results = state.all(node)
21845 const loose = parent ? listLoose(parent) : listItemLoose(node)
21846 /** @type {Properties} */
21847 const properties = {}
21848 /** @type {Array<ElementContent>} */
21849 const children = []
21850
21851 if (typeof node.checked === 'boolean') {
21852 const head = results[0]
21853 /** @type {Element} */
21854 let paragraph
21855
21856 if (head && head.type === 'element' && head.tagName === 'p') {
21857 paragraph = head
21858 } else {
21859 paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}
21860 results.unshift(paragraph)
21861 }
21862
21863 if (paragraph.children.length > 0) {
21864 paragraph.children.unshift({type: 'text', value: ' '})
21865 }
21866
21867 paragraph.children.unshift({
21868 type: 'element',
21869 tagName: 'input',
21870 properties: {type: 'checkbox', checked: node.checked, disabled: true},
21871 children: []
21872 })
21873
21874 // According to github-markdown-css, this class hides bullet.
21875 // See: <https://github.com/sindresorhus/github-markdown-css>.
21876 properties.className = ['task-list-item']
21877 }
21878
21879 let index = -1
21880
21881 while (++index < results.length) {
21882 const child = results[index]
21883
21884 // Add eols before nodes, except if this is a loose, first paragraph.
21885 if (
21886 loose ||
21887 index !== 0 ||
21888 child.type !== 'element' ||
21889 child.tagName !== 'p'
21890 ) {
21891 children.push({type: 'text', value: '\n'})
21892 }
21893
21894 if (child.type === 'element' && child.tagName === 'p' && !loose) {
21895 children.push(...child.children)
21896 } else {
21897 children.push(child)
21898 }
21899 }
21900
21901 const tail = results[results.length - 1]
21902
21903 // Add a final eol.
21904 if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {
21905 children.push({type: 'text', value: '\n'})
21906 }
21907
21908 /** @type {Element} */
21909 const result = {type: 'element', tagName: 'li', properties, children}
21910 state.patch(node, result)
21911 return state.applyData(node, result)
21912 }
21913
21914 /**
21915 * @param {Parents} node
21916 * @return {Boolean}
21917 */
21918 function listLoose(node) {
21919 let loose = false
21920 if (node.type === 'list') {
21921 loose = node.spread || false
21922 const children = node.children
21923 let index = -1
21924
21925 while (!loose && ++index < children.length) {
21926 loose = listItemLoose(children[index])
21927 }
21928 }
21929
21930 return loose
21931 }
21932
21933 /**
21934 * @param {ListItem} node
21935 * @return {Boolean}
21936 */
21937 function listItemLoose(node) {
21938 const spread = node.spread
21939
21940 return spread === undefined || spread === null
21941 ? node.children.length > 1
21942 : spread
21943 }
21944
21945
21946 /***/ }),
21947
21948 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/list.js":
21949 /*!***************************************************************!*\
21950 !*** ../node_modules/mdast-util-to-hast/lib/handlers/list.js ***!
21951 \***************************************************************/
21952 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21953
21954 "use strict";
21955 __webpack_require__.r(__webpack_exports__);
21956 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21957 /* harmony export */ list: () => (/* binding */ list)
21958 /* harmony export */ });
21959 /**
21960 * @typedef {import('hast').Element} Element
21961 * @typedef {import('hast').Properties} Properties
21962 * @typedef {import('mdast').List} List
21963 * @typedef {import('../state.js').State} State
21964 */
21965
21966 /**
21967 * Turn an mdast `list` node into hast.
21968 *
21969 * @param {State} state
21970 * Info passed around.
21971 * @param {List} node
21972 * mdast node.
21973 * @returns {Element}
21974 * hast node.
21975 */
21976 function list(state, node) {
21977 /** @type {Properties} */
21978 const properties = {}
21979 const results = state.all(node)
21980 let index = -1
21981
21982 if (typeof node.start === 'number' && node.start !== 1) {
21983 properties.start = node.start
21984 }
21985
21986 // Like GitHub, add a class for custom styling.
21987 while (++index < results.length) {
21988 const child = results[index]
21989
21990 if (
21991 child.type === 'element' &&
21992 child.tagName === 'li' &&
21993 child.properties &&
21994 Array.isArray(child.properties.className) &&
21995 child.properties.className.includes('task-list-item')
21996 ) {
21997 properties.className = ['contains-task-list']
21998 break
21999 }
22000 }
22001
22002 /** @type {Element} */
22003 const result = {
22004 type: 'element',
22005 tagName: node.ordered ? 'ol' : 'ul',
22006 properties,
22007 children: state.wrap(results, true)
22008 }
22009 state.patch(node, result)
22010 return state.applyData(node, result)
22011 }
22012
22013
22014 /***/ }),
22015
22016 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js":
22017 /*!********************************************************************!*\
22018 !*** ../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js ***!
22019 \********************************************************************/
22020 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22021
22022 "use strict";
22023 __webpack_require__.r(__webpack_exports__);
22024 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22025 /* harmony export */ paragraph: () => (/* binding */ paragraph)
22026 /* harmony export */ });
22027 /**
22028 * @typedef {import('hast').Element} Element
22029 * @typedef {import('mdast').Paragraph} Paragraph
22030 * @typedef {import('../state.js').State} State
22031 */
22032
22033 /**
22034 * Turn an mdast `paragraph` node into hast.
22035 *
22036 * @param {State} state
22037 * Info passed around.
22038 * @param {Paragraph} node
22039 * mdast node.
22040 * @returns {Element}
22041 * hast node.
22042 */
22043 function paragraph(state, node) {
22044 /** @type {Element} */
22045 const result = {
22046 type: 'element',
22047 tagName: 'p',
22048 properties: {},
22049 children: state.all(node)
22050 }
22051 state.patch(node, result)
22052 return state.applyData(node, result)
22053 }
22054
22055
22056 /***/ }),
22057
22058 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/root.js":
22059 /*!***************************************************************!*\
22060 !*** ../node_modules/mdast-util-to-hast/lib/handlers/root.js ***!
22061 \***************************************************************/
22062 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22063
22064 "use strict";
22065 __webpack_require__.r(__webpack_exports__);
22066 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22067 /* harmony export */ root: () => (/* binding */ root)
22068 /* harmony export */ });
22069 /**
22070 * @typedef {import('hast').Root} HastRoot
22071 * @typedef {import('hast').Element} HastElement
22072 * @typedef {import('mdast').Root} MdastRoot
22073 * @typedef {import('../state.js').State} State
22074 */
22075
22076 /**
22077 * Turn an mdast `root` node into hast.
22078 *
22079 * @param {State} state
22080 * Info passed around.
22081 * @param {MdastRoot} node
22082 * mdast node.
22083 * @returns {HastRoot | HastElement}
22084 * hast node.
22085 */
22086 function root(state, node) {
22087 /** @type {HastRoot} */
22088 const result = {type: 'root', children: state.wrap(state.all(node))}
22089 state.patch(node, result)
22090 return state.applyData(node, result)
22091 }
22092
22093
22094 /***/ }),
22095
22096 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/strong.js":
22097 /*!*****************************************************************!*\
22098 !*** ../node_modules/mdast-util-to-hast/lib/handlers/strong.js ***!
22099 \*****************************************************************/
22100 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22101
22102 "use strict";
22103 __webpack_require__.r(__webpack_exports__);
22104 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22105 /* harmony export */ strong: () => (/* binding */ strong)
22106 /* harmony export */ });
22107 /**
22108 * @typedef {import('hast').Element} Element
22109 * @typedef {import('mdast').Strong} Strong
22110 * @typedef {import('../state.js').State} State
22111 */
22112
22113 /**
22114 * Turn an mdast `strong` node into hast.
22115 *
22116 * @param {State} state
22117 * Info passed around.
22118 * @param {Strong} node
22119 * mdast node.
22120 * @returns {Element}
22121 * hast node.
22122 */
22123 function strong(state, node) {
22124 /** @type {Element} */
22125 const result = {
22126 type: 'element',
22127 tagName: 'strong',
22128 properties: {},
22129 children: state.all(node)
22130 }
22131 state.patch(node, result)
22132 return state.applyData(node, result)
22133 }
22134
22135
22136 /***/ }),
22137
22138 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js":
22139 /*!*********************************************************************!*\
22140 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js ***!
22141 \*********************************************************************/
22142 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22143
22144 "use strict";
22145 __webpack_require__.r(__webpack_exports__);
22146 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22147 /* harmony export */ tableCell: () => (/* binding */ tableCell)
22148 /* harmony export */ });
22149 /**
22150 * @typedef {import('hast').Element} Element
22151 * @typedef {import('mdast').TableCell} TableCell
22152 * @typedef {import('../state.js').State} State
22153 */
22154
22155 /**
22156 * Turn an mdast `tableCell` node into hast.
22157 *
22158 * @param {State} state
22159 * Info passed around.
22160 * @param {TableCell} node
22161 * mdast node.
22162 * @returns {Element}
22163 * hast node.
22164 */
22165 function tableCell(state, node) {
22166 // Note: this function is normally not called: see `table-row` for how rows
22167 // and their cells are compiled.
22168 /** @type {Element} */
22169 const result = {
22170 type: 'element',
22171 tagName: 'td', // Assume body cell.
22172 properties: {},
22173 children: state.all(node)
22174 }
22175 state.patch(node, result)
22176 return state.applyData(node, result)
22177 }
22178
22179
22180 /***/ }),
22181
22182 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table-row.js":
22183 /*!********************************************************************!*\
22184 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table-row.js ***!
22185 \********************************************************************/
22186 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22187
22188 "use strict";
22189 __webpack_require__.r(__webpack_exports__);
22190 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22191 /* harmony export */ tableRow: () => (/* binding */ tableRow)
22192 /* harmony export */ });
22193 /**
22194 * @typedef {import('hast').Properties} Properties
22195 * @typedef {import('hast').Element} Element
22196 * @typedef {import('hast').ElementContent} ElementContent
22197 * @typedef {import('mdast').Content} Content
22198 * @typedef {import('mdast').Parent} Parent
22199 * @typedef {import('mdast').Root} Root
22200 * @typedef {import('mdast').TableRow} TableRow
22201 * @typedef {import('../state.js').State} State
22202 */
22203
22204 /**
22205 * @typedef {Root | Content} Nodes
22206 * @typedef {Extract<Nodes, Parent>} Parents
22207 */
22208
22209 /**
22210 * Turn an mdast `tableRow` node into hast.
22211 *
22212 * @param {State} state
22213 * Info passed around.
22214 * @param {TableRow} node
22215 * mdast node.
22216 * @param {Parents | null | undefined} parent
22217 * Parent of `node`.
22218 * @returns {Element}
22219 * hast node.
22220 */
22221 function tableRow(state, node, parent) {
22222 const siblings = parent ? parent.children : undefined
22223 // Generate a body row when without parent.
22224 const rowIndex = siblings ? siblings.indexOf(node) : 1
22225 const tagName = rowIndex === 0 ? 'th' : 'td'
22226 const align = parent && parent.type === 'table' ? parent.align : undefined
22227 const length = align ? align.length : node.children.length
22228 let cellIndex = -1
22229 /** @type {Array<ElementContent>} */
22230 const cells = []
22231
22232 while (++cellIndex < length) {
22233 // Note: can also be undefined.
22234 const cell = node.children[cellIndex]
22235 /** @type {Properties} */
22236 const properties = {}
22237 const alignValue = align ? align[cellIndex] : undefined
22238
22239 if (alignValue) {
22240 properties.align = alignValue
22241 }
22242
22243 /** @type {Element} */
22244 let result = {type: 'element', tagName, properties, children: []}
22245
22246 if (cell) {
22247 result.children = state.all(cell)
22248 state.patch(cell, result)
22249 result = state.applyData(node, result)
22250 }
22251
22252 cells.push(result)
22253 }
22254
22255 /** @type {Element} */
22256 const result = {
22257 type: 'element',
22258 tagName: 'tr',
22259 properties: {},
22260 children: state.wrap(cells, true)
22261 }
22262 state.patch(node, result)
22263 return state.applyData(node, result)
22264 }
22265
22266
22267 /***/ }),
22268
22269 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table.js":
22270 /*!****************************************************************!*\
22271 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table.js ***!
22272 \****************************************************************/
22273 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22274
22275 "use strict";
22276 __webpack_require__.r(__webpack_exports__);
22277 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22278 /* harmony export */ table: () => (/* binding */ table)
22279 /* harmony export */ });
22280 /* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-position */ "../node_modules/unist-util-position/lib/index.js");
22281 /**
22282 * @typedef {import('hast').Element} Element
22283 * @typedef {import('mdast').Table} Table
22284 * @typedef {import('../state.js').State} State
22285 */
22286
22287
22288
22289 /**
22290 * Turn an mdast `table` node into hast.
22291 *
22292 * @param {State} state
22293 * Info passed around.
22294 * @param {Table} node
22295 * mdast node.
22296 * @returns {Element}
22297 * hast node.
22298 */
22299 function table(state, node) {
22300 const rows = state.all(node)
22301 const firstRow = rows.shift()
22302 /** @type {Array<Element>} */
22303 const tableContent = []
22304
22305 if (firstRow) {
22306 /** @type {Element} */
22307 const head = {
22308 type: 'element',
22309 tagName: 'thead',
22310 properties: {},
22311 children: state.wrap([firstRow], true)
22312 }
22313 state.patch(node.children[0], head)
22314 tableContent.push(head)
22315 }
22316
22317 if (rows.length > 0) {
22318 /** @type {Element} */
22319 const body = {
22320 type: 'element',
22321 tagName: 'tbody',
22322 properties: {},
22323 children: state.wrap(rows, true)
22324 }
22325
22326 const start = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointStart)(node.children[1])
22327 const end = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointEnd)(node.children[node.children.length - 1])
22328 if (start.line && end.line) body.position = {start, end}
22329 tableContent.push(body)
22330 }
22331
22332 /** @type {Element} */
22333 const result = {
22334 type: 'element',
22335 tagName: 'table',
22336 properties: {},
22337 children: state.wrap(tableContent, true)
22338 }
22339 state.patch(node, result)
22340 return state.applyData(node, result)
22341 }
22342
22343
22344 /***/ }),
22345
22346 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/text.js":
22347 /*!***************************************************************!*\
22348 !*** ../node_modules/mdast-util-to-hast/lib/handlers/text.js ***!
22349 \***************************************************************/
22350 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22351
22352 "use strict";
22353 __webpack_require__.r(__webpack_exports__);
22354 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22355 /* harmony export */ text: () => (/* binding */ text)
22356 /* harmony export */ });
22357 /* harmony import */ var trim_lines__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! trim-lines */ "../node_modules/trim-lines/index.js");
22358 /**
22359 * @typedef {import('hast').Element} HastElement
22360 * @typedef {import('hast').Text} HastText
22361 * @typedef {import('mdast').Text} MdastText
22362 * @typedef {import('../state.js').State} State
22363 */
22364
22365
22366
22367 /**
22368 * Turn an mdast `text` node into hast.
22369 *
22370 * @param {State} state
22371 * Info passed around.
22372 * @param {MdastText} node
22373 * mdast node.
22374 * @returns {HastText | HastElement}
22375 * hast node.
22376 */
22377 function text(state, node) {
22378 /** @type {HastText} */
22379 const result = {type: 'text', value: (0,trim_lines__WEBPACK_IMPORTED_MODULE_0__.trimLines)(String(node.value))}
22380 state.patch(node, result)
22381 return state.applyData(node, result)
22382 }
22383
22384
22385 /***/ }),
22386
22387 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js":
22388 /*!*************************************************************************!*\
22389 !*** ../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js ***!
22390 \*************************************************************************/
22391 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22392
22393 "use strict";
22394 __webpack_require__.r(__webpack_exports__);
22395 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22396 /* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)
22397 /* harmony export */ });
22398 /**
22399 * @typedef {import('hast').Element} Element
22400 * @typedef {import('mdast').ThematicBreak} ThematicBreak
22401 * @typedef {import('../state.js').State} State
22402 */
22403
22404 /**
22405 * Turn an mdast `thematicBreak` node into hast.
22406 *
22407 * @param {State} state
22408 * Info passed around.
22409 * @param {ThematicBreak} node
22410 * mdast node.
22411 * @returns {Element}
22412 * hast node.
22413 */
22414 function thematicBreak(state, node) {
22415 /** @type {Element} */
22416 const result = {
22417 type: 'element',
22418 tagName: 'hr',
22419 properties: {},
22420 children: []
22421 }
22422 state.patch(node, result)
22423 return state.applyData(node, result)
22424 }
22425
22426
22427 /***/ }),
22428
22429 /***/ "../node_modules/mdast-util-to-hast/lib/index.js":
22430 /*!*******************************************************!*\
22431 !*** ../node_modules/mdast-util-to-hast/lib/index.js ***!
22432 \*******************************************************/
22433 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22434
22435 "use strict";
22436 __webpack_require__.r(__webpack_exports__);
22437 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22438 /* harmony export */ toHast: () => (/* binding */ toHast)
22439 /* harmony export */ });
22440 /* harmony import */ var _footer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./footer.js */ "../node_modules/mdast-util-to-hast/lib/footer.js");
22441 /* harmony import */ var _state_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.js */ "../node_modules/mdast-util-to-hast/lib/state.js");
22442 /**
22443 * @typedef {import('hast').Content} HastContent
22444 * @typedef {import('hast').Root} HastRoot
22445 *
22446 * @typedef {import('mdast').Content} MdastContent
22447 * @typedef {import('mdast').Root} MdastRoot
22448 *
22449 * @typedef {import('./state.js').Options} Options
22450 */
22451
22452 /**
22453 * @typedef {HastRoot | HastContent} HastNodes
22454 * @typedef {MdastRoot | MdastContent} MdastNodes
22455 */
22456
22457
22458
22459
22460 /**
22461 * Transform mdast to hast.
22462 *
22463 * ##### Notes
22464 *
22465 * ###### HTML
22466 *
22467 * Raw HTML is available in mdast as `html` nodes and can be embedded in hast
22468 * as semistandard `raw` nodes.
22469 * Most utilities ignore `raw` nodes but two notable ones don’t:
22470 *
22471 * * `hast-util-to-html` also has an option `allowDangerousHtml` which will
22472 * output the raw HTML.
22473 * This is typically discouraged as noted by the option name but is useful
22474 * if you completely trust authors
22475 * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them
22476 * into standard hast nodes (`element`, `text`, etc).
22477 * This is a heavy task as it needs a full HTML parser, but it is the only
22478 * way to support untrusted content
22479 *
22480 * ###### Footnotes
22481 *
22482 * Many options supported here relate to footnotes.
22483 * Footnotes are not specified by CommonMark, which we follow by default.
22484 * They are supported by GitHub, so footnotes can be enabled in markdown with
22485 * `mdast-util-gfm`.
22486 *
22487 * The options `footnoteBackLabel` and `footnoteLabel` define natural language
22488 * that explains footnotes, which is hidden for sighted users but shown to
22489 * assistive technology.
22490 * When your page is not in English, you must define translated values.
22491 *
22492 * Back references use ARIA attributes, but the section label itself uses a
22493 * heading that is hidden with an `sr-only` class.
22494 * To show it to sighted users, define different attributes in
22495 * `footnoteLabelProperties`.
22496 *
22497 * ###### Clobbering
22498 *
22499 * Footnotes introduces a problem, as it links footnote calls to footnote
22500 * definitions on the page through `id` attributes generated from user content,
22501 * which results in DOM clobbering.
22502 *
22503 * DOM clobbering is this:
22504 *
22505 * ```html
22506 * <p id=x></p>
22507 * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>
22508 * ```
22509 *
22510 * Elements by their ID are made available by browsers on the `window` object,
22511 * which is a security risk.
22512 * Using a prefix solves this problem.
22513 *
22514 * More information on how to handle clobbering and the prefix is explained in
22515 * Example: headings (DOM clobbering) in `rehype-sanitize`.
22516 *
22517 * ###### Unknown nodes
22518 *
22519 * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.
22520 * The default behavior for unknown nodes is:
22521 *
22522 * * when the node has a `value` (and doesn’t have `data.hName`,
22523 * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`
22524 * node
22525 * * otherwise, create a `<div>` element (which could be changed with
22526 * `data.hName`), with its children mapped from mdast to hast as well
22527 *
22528 * This behavior can be changed by passing an `unknownHandler`.
22529 *
22530 * @param {MdastNodes} tree
22531 * mdast tree.
22532 * @param {Options | null | undefined} [options]
22533 * Configuration.
22534 * @returns {HastNodes | null | undefined}
22535 * hast tree.
22536 */
22537 // To do: next major: always return a single `root`.
22538 function toHast(tree, options) {
22539 const state = (0,_state_js__WEBPACK_IMPORTED_MODULE_0__.createState)(tree, options)
22540 const node = state.one(tree, null)
22541 const foot = (0,_footer_js__WEBPACK_IMPORTED_MODULE_1__.footer)(state)
22542
22543 if (foot) {
22544 // @ts-expect-error If there’s a footer, there were definitions, meaning block
22545 // content.
22546 // So assume `node` is a parent node.
22547 node.children.push({type: 'text', value: '\n'}, foot)
22548 }
22549
22550 // To do: next major: always return root?
22551 return Array.isArray(node) ? {type: 'root', children: node} : node
22552 }
22553
22554
22555 /***/ }),
22556
22557 /***/ "../node_modules/mdast-util-to-hast/lib/revert.js":
22558 /*!********************************************************!*\
22559 !*** ../node_modules/mdast-util-to-hast/lib/revert.js ***!
22560 \********************************************************/
22561 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22562
22563 "use strict";
22564 __webpack_require__.r(__webpack_exports__);
22565 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22566 /* harmony export */ revert: () => (/* binding */ revert)
22567 /* harmony export */ });
22568 /**
22569 * @typedef {import('hast').ElementContent} ElementContent
22570 *
22571 * @typedef {import('mdast').Content} Content
22572 * @typedef {import('mdast').Reference} Reference
22573 * @typedef {import('mdast').Root} Root
22574 *
22575 * @typedef {import('./state.js').State} State
22576 */
22577
22578 /**
22579 * @typedef {Root | Content} Nodes
22580 * @typedef {Extract<Nodes, Reference>} References
22581 */
22582
22583 // To do: next major: always return array.
22584
22585 /**
22586 * Return the content of a reference without definition as plain text.
22587 *
22588 * @param {State} state
22589 * Info passed around.
22590 * @param {References} node
22591 * Reference node (image, link).
22592 * @returns {ElementContent | Array<ElementContent>}
22593 * hast content.
22594 */
22595 function revert(state, node) {
22596 const subtype = node.referenceType
22597 let suffix = ']'
22598
22599 if (subtype === 'collapsed') {
22600 suffix += '[]'
22601 } else if (subtype === 'full') {
22602 suffix += '[' + (node.label || node.identifier) + ']'
22603 }
22604
22605 if (node.type === 'imageReference') {
22606 return {type: 'text', value: '![' + node.alt + suffix}
22607 }
22608
22609 const contents = state.all(node)
22610 const head = contents[0]
22611
22612 if (head && head.type === 'text') {
22613 head.value = '[' + head.value
22614 } else {
22615 contents.unshift({type: 'text', value: '['})
22616 }
22617
22618 const tail = contents[contents.length - 1]
22619
22620 if (tail && tail.type === 'text') {
22621 tail.value += suffix
22622 } else {
22623 contents.push({type: 'text', value: suffix})
22624 }
22625
22626 return contents
22627 }
22628
22629
22630 /***/ }),
22631
22632 /***/ "../node_modules/mdast-util-to-hast/lib/state.js":
22633 /*!*******************************************************!*\
22634 !*** ../node_modules/mdast-util-to-hast/lib/state.js ***!
22635 \*******************************************************/
22636 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22637
22638 "use strict";
22639 __webpack_require__.r(__webpack_exports__);
22640 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22641 /* harmony export */ all: () => (/* binding */ all),
22642 /* harmony export */ createState: () => (/* binding */ createState),
22643 /* harmony export */ one: () => (/* binding */ one),
22644 /* harmony export */ wrap: () => (/* binding */ wrap)
22645 /* harmony export */ });
22646 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
22647 /* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! unist-util-position */ "../node_modules/unist-util-position/lib/index.js");
22648 /* harmony import */ var unist_util_generated__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! unist-util-generated */ "../node_modules/unist-util-generated/lib/index.js");
22649 /* harmony import */ var mdast_util_definitions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-definitions */ "../node_modules/mdast-util-definitions/lib/index.js");
22650 /* 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");
22651 /**
22652 * @typedef {import('hast').Content} HastContent
22653 * @typedef {import('hast').Element} HastElement
22654 * @typedef {import('hast').ElementContent} HastElementContent
22655 * @typedef {import('hast').Properties} HastProperties
22656 * @typedef {import('hast').Root} HastRoot
22657 * @typedef {import('hast').Text} HastText
22658 *
22659 * @typedef {import('mdast').Content} MdastContent
22660 * @typedef {import('mdast').Definition} MdastDefinition
22661 * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition
22662 * @typedef {import('mdast').Parent} MdastParent
22663 * @typedef {import('mdast').Root} MdastRoot
22664 */
22665
22666 /**
22667 * @typedef {HastRoot | HastContent} HastNodes
22668 * @typedef {MdastRoot | MdastContent} MdastNodes
22669 * @typedef {Extract<MdastNodes, MdastParent>} MdastParents
22670 *
22671 * @typedef EmbeddedHastFields
22672 * hast fields.
22673 * @property {string | null | undefined} [hName]
22674 * Generate a specific element with this tag name instead.
22675 * @property {HastProperties | null | undefined} [hProperties]
22676 * Generate an element with these properties instead.
22677 * @property {Array<HastElementContent> | null | undefined} [hChildren]
22678 * Generate an element with this content instead.
22679 *
22680 * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData
22681 * mdast data with embedded hast fields.
22682 *
22683 * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData
22684 * mdast node with embedded hast data.
22685 *
22686 * @typedef PointLike
22687 * Point-like value.
22688 * @property {number | null | undefined} [line]
22689 * Line.
22690 * @property {number | null | undefined} [column]
22691 * Column.
22692 * @property {number | null | undefined} [offset]
22693 * Offset.
22694 *
22695 * @typedef PositionLike
22696 * Position-like value.
22697 * @property {PointLike | null | undefined} [start]
22698 * Point-like value.
22699 * @property {PointLike | null | undefined} [end]
22700 * Point-like value.
22701 *
22702 * @callback Handler
22703 * Handle a node.
22704 * @param {State} state
22705 * Info passed around.
22706 * @param {any} node
22707 * mdast node to handle.
22708 * @param {MdastParents | null | undefined} parent
22709 * Parent of `node`.
22710 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
22711 * hast node.
22712 *
22713 * @callback HFunctionProps
22714 * Signature of `state` for when props are passed.
22715 * @param {MdastNodes | PositionLike | null | undefined} node
22716 * mdast node or unist position.
22717 * @param {string} tagName
22718 * HTML tag name.
22719 * @param {HastProperties} props
22720 * Properties.
22721 * @param {Array<HastElementContent> | null | undefined} [children]
22722 * hast content.
22723 * @returns {HastElement}
22724 * Compiled element.
22725 *
22726 * @callback HFunctionNoProps
22727 * Signature of `state` for when no props are passed.
22728 * @param {MdastNodes | PositionLike | null | undefined} node
22729 * mdast node or unist position.
22730 * @param {string} tagName
22731 * HTML tag name.
22732 * @param {Array<HastElementContent> | null | undefined} [children]
22733 * hast content.
22734 * @returns {HastElement}
22735 * Compiled element.
22736 *
22737 * @typedef HFields
22738 * Info on `state`.
22739 * @property {boolean} dangerous
22740 * Whether HTML is allowed.
22741 * @property {string} clobberPrefix
22742 * Prefix to use to prevent DOM clobbering.
22743 * @property {string} footnoteLabel
22744 * Label to use to introduce the footnote section.
22745 * @property {string} footnoteLabelTagName
22746 * HTML used for the footnote label.
22747 * @property {HastProperties} footnoteLabelProperties
22748 * Properties on the HTML tag used for the footnote label.
22749 * @property {string} footnoteBackLabel
22750 * Label to use from backreferences back to their footnote call.
22751 * @property {(identifier: string) => MdastDefinition | null} definition
22752 * Definition cache.
22753 * @property {Record<string, MdastFootnoteDefinition>} footnoteById
22754 * Footnote definitions by their identifier.
22755 * @property {Array<string>} footnoteOrder
22756 * Identifiers of order when footnote calls first appear in tree order.
22757 * @property {Record<string, number>} footnoteCounts
22758 * Counts for how often the same footnote was called.
22759 * @property {Handlers} handlers
22760 * Applied handlers.
22761 * @property {Handler} unknownHandler
22762 * Handler for any none not in `passThrough` or otherwise handled.
22763 * @property {(from: MdastNodes, node: HastNodes) => void} patch
22764 * Copy a node’s positional info.
22765 * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData
22766 * Honor the `data` of `from`, and generate an element instead of `node`.
22767 * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one
22768 * Transform an mdast node to hast.
22769 * @property {(node: MdastNodes) => Array<HastElementContent>} all
22770 * Transform the children of an mdast parent to hast.
22771 * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap
22772 * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.
22773 * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment
22774 * Like `state` but lower-level and usable on non-elements.
22775 * Deprecated: use `patch` and `applyData`.
22776 * @property {Array<string>} passThrough
22777 * List of node types to pass through untouched (except for their children).
22778 *
22779 * @typedef Options
22780 * Configuration (optional).
22781 * @property {boolean | null | undefined} [allowDangerousHtml=false]
22782 * Whether to persist raw HTML in markdown in the hast tree.
22783 * @property {string | null | undefined} [clobberPrefix='user-content-']
22784 * Prefix to use before the `id` attribute on footnotes to prevent it from
22785 * *clobbering*.
22786 * @property {string | null | undefined} [footnoteBackLabel='Back to content']
22787 * Label to use from backreferences back to their footnote call (affects
22788 * screen readers).
22789 * @property {string | null | undefined} [footnoteLabel='Footnotes']
22790 * Label to use for the footnotes section (affects screen readers).
22791 * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]
22792 * Properties to use on the footnote label (note that `id: 'footnote-label'`
22793 * is always added as footnote calls use it with `aria-describedby` to
22794 * provide an accessible label).
22795 * @property {string | null | undefined} [footnoteLabelTagName='h2']
22796 * Tag name to use for the footnote label.
22797 * @property {Handlers | null | undefined} [handlers]
22798 * Extra handlers for nodes.
22799 * @property {Array<string> | null | undefined} [passThrough]
22800 * List of custom mdast node types to pass through (keep) in hast (note that
22801 * the node itself is passed, but eventual children are transformed).
22802 * @property {Handler | null | undefined} [unknownHandler]
22803 * Handler for all unknown nodes.
22804 *
22805 * @typedef {Record<string, Handler>} Handlers
22806 * Handle nodes.
22807 *
22808 * @typedef {HFunctionProps & HFunctionNoProps & HFields} State
22809 * Info passed around.
22810 */
22811
22812
22813
22814
22815
22816
22817
22818 const own = {}.hasOwnProperty
22819
22820 /**
22821 * Create `state` from an mdast tree.
22822 *
22823 * @param {MdastNodes} tree
22824 * mdast node to transform.
22825 * @param {Options | null | undefined} [options]
22826 * Configuration.
22827 * @returns {State}
22828 * `state` function.
22829 */
22830 function createState(tree, options) {
22831 const settings = options || {}
22832 const dangerous = settings.allowDangerousHtml || false
22833 /** @type {Record<string, MdastFootnoteDefinition>} */
22834 const footnoteById = {}
22835
22836 // To do: next major: add `options` to state, remove:
22837 // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,
22838 // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,
22839 // `unknownHandler`.
22840
22841 // To do: next major: move to `state.options.allowDangerousHtml`.
22842 state.dangerous = dangerous
22843 // To do: next major: move to `state.options`.
22844 state.clobberPrefix =
22845 settings.clobberPrefix === undefined || settings.clobberPrefix === null
22846 ? 'user-content-'
22847 : settings.clobberPrefix
22848 // To do: next major: move to `state.options`.
22849 state.footnoteLabel = settings.footnoteLabel || 'Footnotes'
22850 // To do: next major: move to `state.options`.
22851 state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'
22852 // To do: next major: move to `state.options`.
22853 state.footnoteLabelProperties = settings.footnoteLabelProperties || {
22854 className: ['sr-only']
22855 }
22856 // To do: next major: move to `state.options`.
22857 state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'
22858 // To do: next major: move to `state.options`.
22859 state.unknownHandler = settings.unknownHandler
22860 // To do: next major: move to `state.options`.
22861 state.passThrough = settings.passThrough
22862
22863 state.handlers = {..._handlers_index_js__WEBPACK_IMPORTED_MODULE_0__.handlers, ...settings.handlers}
22864
22865 // To do: next major: replace utility with `definitionById` object, so we
22866 // only walk once (as we need footnotes too).
22867 state.definition = (0,mdast_util_definitions__WEBPACK_IMPORTED_MODULE_1__.definitions)(tree)
22868 state.footnoteById = footnoteById
22869 /** @type {Array<string>} */
22870 state.footnoteOrder = []
22871 /** @type {Record<string, number>} */
22872 state.footnoteCounts = {}
22873
22874 state.patch = patch
22875 state.applyData = applyData
22876 state.one = oneBound
22877 state.all = allBound
22878 state.wrap = wrap
22879 // To do: next major: remove `augment`.
22880 state.augment = augment
22881
22882 ;(0,unist_util_visit__WEBPACK_IMPORTED_MODULE_2__.visit)(tree, 'footnoteDefinition', (definition) => {
22883 const id = String(definition.identifier).toUpperCase()
22884
22885 // Mimick CM behavior of link definitions.
22886 // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.
22887 if (!own.call(footnoteById, id)) {
22888 footnoteById[id] = definition
22889 }
22890 })
22891
22892 // @ts-expect-error Hush, it’s fine!
22893 return state
22894
22895 /**
22896 * Finalise the created `right`, a hast node, from `left`, an mdast node.
22897 *
22898 * @param {MdastNodeWithData | PositionLike | null | undefined} left
22899 * @param {HastElementContent} right
22900 * @returns {HastElementContent}
22901 */
22902 /* c8 ignore start */
22903 // To do: next major: remove.
22904 function augment(left, right) {
22905 // Handle `data.hName`, `data.hProperties, `data.hChildren`.
22906 if (left && 'data' in left && left.data) {
22907 /** @type {MdastData} */
22908 const data = left.data
22909
22910 if (data.hName) {
22911 if (right.type !== 'element') {
22912 right = {
22913 type: 'element',
22914 tagName: '',
22915 properties: {},
22916 children: []
22917 }
22918 }
22919
22920 right.tagName = data.hName
22921 }
22922
22923 if (right.type === 'element' && data.hProperties) {
22924 right.properties = {...right.properties, ...data.hProperties}
22925 }
22926
22927 if ('children' in right && right.children && data.hChildren) {
22928 right.children = data.hChildren
22929 }
22930 }
22931
22932 if (left) {
22933 const ctx = 'type' in left ? left : {position: left}
22934
22935 if (!(0,unist_util_generated__WEBPACK_IMPORTED_MODULE_3__.generated)(ctx)) {
22936 // @ts-expect-error: fine.
22937 right.position = {start: (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointStart)(ctx), end: (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointEnd)(ctx)}
22938 }
22939 }
22940
22941 return right
22942 }
22943 /* c8 ignore stop */
22944
22945 /**
22946 * Create an element for `node`.
22947 *
22948 * @type {HFunctionProps}
22949 */
22950 /* c8 ignore start */
22951 // To do: next major: remove.
22952 function state(node, tagName, props, children) {
22953 if (Array.isArray(props)) {
22954 children = props
22955 props = {}
22956 }
22957
22958 // @ts-expect-error augmenting an element yields an element.
22959 return augment(node, {
22960 type: 'element',
22961 tagName,
22962 properties: props || {},
22963 children: children || []
22964 })
22965 }
22966 /* c8 ignore stop */
22967
22968 /**
22969 * Transform an mdast node into a hast node.
22970 *
22971 * @param {MdastNodes} node
22972 * mdast node.
22973 * @param {MdastParents | null | undefined} [parent]
22974 * Parent of `node`.
22975 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
22976 * Resulting hast node.
22977 */
22978 function oneBound(node, parent) {
22979 // @ts-expect-error: that’s a state :)
22980 return one(state, node, parent)
22981 }
22982
22983 /**
22984 * Transform the children of an mdast node into hast nodes.
22985 *
22986 * @param {MdastNodes} parent
22987 * mdast node to compile
22988 * @returns {Array<HastElementContent>}
22989 * Resulting hast nodes.
22990 */
22991 function allBound(parent) {
22992 // @ts-expect-error: that’s a state :)
22993 return all(state, parent)
22994 }
22995 }
22996
22997 /**
22998 * Copy a node’s positional info.
22999 *
23000 * @param {MdastNodes} from
23001 * mdast node to copy from.
23002 * @param {HastNodes} to
23003 * hast node to copy into.
23004 * @returns {void}
23005 * Nothing.
23006 */
23007 function patch(from, to) {
23008 if (from.position) to.position = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.position)(from)
23009 }
23010
23011 /**
23012 * Honor the `data` of `from` and maybe generate an element instead of `to`.
23013 *
23014 * @template {HastNodes} Type
23015 * Node type.
23016 * @param {MdastNodes} from
23017 * mdast node to use data from.
23018 * @param {Type} to
23019 * hast node to change.
23020 * @returns {Type | HastElement}
23021 * Nothing.
23022 */
23023 function applyData(from, to) {
23024 /** @type {Type | HastElement} */
23025 let result = to
23026
23027 // Handle `data.hName`, `data.hProperties, `data.hChildren`.
23028 if (from && from.data) {
23029 const hName = from.data.hName
23030 const hChildren = from.data.hChildren
23031 const hProperties = from.data.hProperties
23032
23033 if (typeof hName === 'string') {
23034 // Transforming the node resulted in an element with a different name
23035 // than wanted:
23036 if (result.type === 'element') {
23037 result.tagName = hName
23038 }
23039 // Transforming the node resulted in a non-element, which happens for
23040 // raw, text, and root nodes (unless custom handlers are passed).
23041 // The intent is likely to keep the content around (otherwise: pass
23042 // `hChildren`).
23043 else {
23044 result = {
23045 type: 'element',
23046 tagName: hName,
23047 properties: {},
23048 children: []
23049 }
23050
23051 // To do: next major: take the children from the `root`, or inject the
23052 // raw/text/comment or so into the element?
23053 // if ('children' in node) {
23054 // // @ts-expect-error: assume `children` are allowed in elements.
23055 // result.children = node.children
23056 // } else {
23057 // // @ts-expect-error: assume `node` is allowed in elements.
23058 // result.children.push(node)
23059 // }
23060 }
23061 }
23062
23063 if (result.type === 'element' && hProperties) {
23064 result.properties = {...result.properties, ...hProperties}
23065 }
23066
23067 if (
23068 'children' in result &&
23069 result.children &&
23070 hChildren !== null &&
23071 hChildren !== undefined
23072 ) {
23073 // @ts-expect-error: assume valid children are defined.
23074 result.children = hChildren
23075 }
23076 }
23077
23078 return result
23079 }
23080
23081 /**
23082 * Transform an mdast node into a hast node.
23083 *
23084 * @param {State} state
23085 * Info passed around.
23086 * @param {MdastNodes} node
23087 * mdast node.
23088 * @param {MdastParents | null | undefined} [parent]
23089 * Parent of `node`.
23090 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
23091 * Resulting hast node.
23092 */
23093 // To do: next major: do not expose, keep bound.
23094 function one(state, node, parent) {
23095 const type = node && node.type
23096
23097 // Fail on non-nodes.
23098 if (!type) {
23099 throw new Error('Expected node, got `' + node + '`')
23100 }
23101
23102 if (own.call(state.handlers, type)) {
23103 return state.handlers[type](state, node, parent)
23104 }
23105
23106 if (state.passThrough && state.passThrough.includes(type)) {
23107 // To do: next major: deep clone.
23108 // @ts-expect-error: types of passed through nodes are expected to be added manually.
23109 return 'children' in node ? {...node, children: all(state, node)} : node
23110 }
23111
23112 if (state.unknownHandler) {
23113 return state.unknownHandler(state, node, parent)
23114 }
23115
23116 return defaultUnknownHandler(state, node)
23117 }
23118
23119 /**
23120 * Transform the children of an mdast node into hast nodes.
23121 *
23122 * @param {State} state
23123 * Info passed around.
23124 * @param {MdastNodes} parent
23125 * mdast node to compile
23126 * @returns {Array<HastElementContent>}
23127 * Resulting hast nodes.
23128 */
23129 // To do: next major: do not expose, keep bound.
23130 function all(state, parent) {
23131 /** @type {Array<HastElementContent>} */
23132 const values = []
23133
23134 if ('children' in parent) {
23135 const nodes = parent.children
23136 let index = -1
23137 while (++index < nodes.length) {
23138 const result = one(state, nodes[index], parent)
23139
23140 // To do: see if we van clean this? Can we merge texts?
23141 if (result) {
23142 if (index && nodes[index - 1].type === 'break') {
23143 if (!Array.isArray(result) && result.type === 'text') {
23144 result.value = result.value.replace(/^\s+/, '')
23145 }
23146
23147 if (!Array.isArray(result) && result.type === 'element') {
23148 const head = result.children[0]
23149
23150 if (head && head.type === 'text') {
23151 head.value = head.value.replace(/^\s+/, '')
23152 }
23153 }
23154 }
23155
23156 if (Array.isArray(result)) {
23157 values.push(...result)
23158 } else {
23159 values.push(result)
23160 }
23161 }
23162 }
23163 }
23164
23165 return values
23166 }
23167
23168 /**
23169 * Transform an unknown node.
23170 *
23171 * @param {State} state
23172 * Info passed around.
23173 * @param {MdastNodes} node
23174 * Unknown mdast node.
23175 * @returns {HastText | HastElement}
23176 * Resulting hast node.
23177 */
23178 function defaultUnknownHandler(state, node) {
23179 const data = node.data || {}
23180 /** @type {HastText | HastElement} */
23181 const result =
23182 'value' in node &&
23183 !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))
23184 ? {type: 'text', value: node.value}
23185 : {
23186 type: 'element',
23187 tagName: 'div',
23188 properties: {},
23189 children: all(state, node)
23190 }
23191
23192 state.patch(node, result)
23193 return state.applyData(node, result)
23194 }
23195
23196 /**
23197 * Wrap `nodes` with line endings between each node.
23198 *
23199 * @template {HastContent} Type
23200 * Node type.
23201 * @param {Array<Type>} nodes
23202 * List of nodes to wrap.
23203 * @param {boolean | null | undefined} [loose=false]
23204 * Whether to add line endings at start and end.
23205 * @returns {Array<Type | HastText>}
23206 * Wrapped nodes.
23207 */
23208 function wrap(nodes, loose) {
23209 /** @type {Array<Type | HastText>} */
23210 const result = []
23211 let index = -1
23212
23213 if (loose) {
23214 result.push({type: 'text', value: '\n'})
23215 }
23216
23217 while (++index < nodes.length) {
23218 if (index) result.push({type: 'text', value: '\n'})
23219 result.push(nodes[index])
23220 }
23221
23222 if (loose && nodes.length > 0) {
23223 result.push({type: 'text', value: '\n'})
23224 }
23225
23226 return result
23227 }
23228
23229
23230 /***/ }),
23231
23232 /***/ "../node_modules/mdast-util-to-string/lib/index.js":
23233 /*!*********************************************************!*\
23234 !*** ../node_modules/mdast-util-to-string/lib/index.js ***!
23235 \*********************************************************/
23236 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23237
23238 "use strict";
23239 __webpack_require__.r(__webpack_exports__);
23240 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23241 /* harmony export */ toString: () => (/* binding */ toString)
23242 /* harmony export */ });
23243 /**
23244 * @typedef {import('mdast').Root|import('mdast').Content} Node
23245 *
23246 * @typedef Options
23247 * Configuration (optional).
23248 * @property {boolean | null | undefined} [includeImageAlt=true]
23249 * Whether to use `alt` for `image`s.
23250 * @property {boolean | null | undefined} [includeHtml=true]
23251 * Whether to use `value` of HTML.
23252 */
23253
23254 /** @type {Options} */
23255 const emptyOptions = {}
23256
23257 /**
23258 * Get the text content of a node or list of nodes.
23259 *
23260 * Prefers the node’s plain-text fields, otherwise serializes its children,
23261 * and if the given value is an array, serialize the nodes in it.
23262 *
23263 * @param {unknown} value
23264 * Thing to serialize, typically `Node`.
23265 * @param {Options | null | undefined} [options]
23266 * Configuration (optional).
23267 * @returns {string}
23268 * Serialized `value`.
23269 */
23270 function toString(value, options) {
23271 const settings = options || emptyOptions
23272 const includeImageAlt =
23273 typeof settings.includeImageAlt === 'boolean'
23274 ? settings.includeImageAlt
23275 : true
23276 const includeHtml =
23277 typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true
23278
23279 return one(value, includeImageAlt, includeHtml)
23280 }
23281
23282 /**
23283 * One node or several nodes.
23284 *
23285 * @param {unknown} value
23286 * Thing to serialize.
23287 * @param {boolean} includeImageAlt
23288 * Include image `alt`s.
23289 * @param {boolean} includeHtml
23290 * Include HTML.
23291 * @returns {string}
23292 * Serialized node.
23293 */
23294 function one(value, includeImageAlt, includeHtml) {
23295 if (node(value)) {
23296 if ('value' in value) {
23297 return value.type === 'html' && !includeHtml ? '' : value.value
23298 }
23299
23300 if (includeImageAlt && 'alt' in value && value.alt) {
23301 return value.alt
23302 }
23303
23304 if ('children' in value) {
23305 return all(value.children, includeImageAlt, includeHtml)
23306 }
23307 }
23308
23309 if (Array.isArray(value)) {
23310 return all(value, includeImageAlt, includeHtml)
23311 }
23312
23313 return ''
23314 }
23315
23316 /**
23317 * Serialize a list of nodes.
23318 *
23319 * @param {Array<unknown>} values
23320 * Thing to serialize.
23321 * @param {boolean} includeImageAlt
23322 * Include image `alt`s.
23323 * @param {boolean} includeHtml
23324 * Include HTML.
23325 * @returns {string}
23326 * Serialized nodes.
23327 */
23328 function all(values, includeImageAlt, includeHtml) {
23329 /** @type {Array<string>} */
23330 const result = []
23331 let index = -1
23332
23333 while (++index < values.length) {
23334 result[index] = one(values[index], includeImageAlt, includeHtml)
23335 }
23336
23337 return result.join('')
23338 }
23339
23340 /**
23341 * Check if `value` looks like a node.
23342 *
23343 * @param {unknown} value
23344 * Thing.
23345 * @returns {value is Node}
23346 * Whether `value` is a node.
23347 */
23348 function node(value) {
23349 return Boolean(value && typeof value === 'object')
23350 }
23351
23352
23353 /***/ }),
23354
23355 /***/ "../node_modules/micromark-core-commonmark/dev/lib/attention.js":
23356 /*!**********************************************************************!*\
23357 !*** ../node_modules/micromark-core-commonmark/dev/lib/attention.js ***!
23358 \**********************************************************************/
23359 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23360
23361 "use strict";
23362 __webpack_require__.r(__webpack_exports__);
23363 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23364 /* harmony export */ attention: () => (/* binding */ attention)
23365 /* harmony export */ });
23366 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
23367 /* 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");
23368 /* 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");
23369 /* 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");
23370 /* 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");
23371 /* 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");
23372 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23373 /**
23374 * @typedef {import('micromark-util-types').Code} Code
23375 * @typedef {import('micromark-util-types').Construct} Construct
23376 * @typedef {import('micromark-util-types').Event} Event
23377 * @typedef {import('micromark-util-types').Point} Point
23378 * @typedef {import('micromark-util-types').Resolver} Resolver
23379 * @typedef {import('micromark-util-types').State} State
23380 * @typedef {import('micromark-util-types').Token} Token
23381 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23382 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23383 */
23384
23385
23386
23387
23388
23389
23390
23391
23392
23393 /** @type {Construct} */
23394 const attention = {
23395 name: 'attention',
23396 tokenize: tokenizeAttention,
23397 resolveAll: resolveAllAttention
23398 }
23399
23400 /**
23401 * Take all events and resolve attention to emphasis or strong.
23402 *
23403 * @type {Resolver}
23404 */
23405 function resolveAllAttention(events, context) {
23406 let index = -1
23407 /** @type {number} */
23408 let open
23409 /** @type {Token} */
23410 let group
23411 /** @type {Token} */
23412 let text
23413 /** @type {Token} */
23414 let openingSequence
23415 /** @type {Token} */
23416 let closingSequence
23417 /** @type {number} */
23418 let use
23419 /** @type {Array<Event>} */
23420 let nextEvents
23421 /** @type {number} */
23422 let offset
23423
23424 // Walk through all events.
23425 //
23426 // Note: performance of this is fine on an mb of normal markdown, but it’s
23427 // a bottleneck for malicious stuff.
23428 while (++index < events.length) {
23429 // Find a token that can close.
23430 if (
23431 events[index][0] === 'enter' &&
23432 events[index][1].type === 'attentionSequence' &&
23433 events[index][1]._close
23434 ) {
23435 open = index
23436
23437 // Now walk back to find an opener.
23438 while (open--) {
23439 // Find a token that can open the closer.
23440 if (
23441 events[open][0] === 'exit' &&
23442 events[open][1].type === 'attentionSequence' &&
23443 events[open][1]._open &&
23444 // If the markers are the same:
23445 context.sliceSerialize(events[open][1]).charCodeAt(0) ===
23446 context.sliceSerialize(events[index][1]).charCodeAt(0)
23447 ) {
23448 // If the opening can close or the closing can open,
23449 // and the close size *is not* a multiple of three,
23450 // but the sum of the opening and closing size *is* multiple of three,
23451 // then don’t match.
23452 if (
23453 (events[open][1]._close || events[index][1]._open) &&
23454 (events[index][1].end.offset - events[index][1].start.offset) % 3 &&
23455 !(
23456 (events[open][1].end.offset -
23457 events[open][1].start.offset +
23458 events[index][1].end.offset -
23459 events[index][1].start.offset) %
23460 3
23461 )
23462 ) {
23463 continue
23464 }
23465
23466 // Number of markers to use from the sequence.
23467 use =
23468 events[open][1].end.offset - events[open][1].start.offset > 1 &&
23469 events[index][1].end.offset - events[index][1].start.offset > 1
23470 ? 2
23471 : 1
23472
23473 const start = Object.assign({}, events[open][1].end)
23474 const end = Object.assign({}, events[index][1].start)
23475 movePoint(start, -use)
23476 movePoint(end, use)
23477
23478 openingSequence = {
23479 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,
23480 start,
23481 end: Object.assign({}, events[open][1].end)
23482 }
23483 closingSequence = {
23484 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,
23485 start: Object.assign({}, events[index][1].start),
23486 end
23487 }
23488 text = {
23489 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,
23490 start: Object.assign({}, events[open][1].end),
23491 end: Object.assign({}, events[index][1].start)
23492 }
23493 group = {
23494 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,
23495 start: Object.assign({}, openingSequence.start),
23496 end: Object.assign({}, closingSequence.end)
23497 }
23498
23499 events[open][1].end = Object.assign({}, openingSequence.start)
23500 events[index][1].start = Object.assign({}, closingSequence.end)
23501
23502 nextEvents = []
23503
23504 // If there are more markers in the opening, add them before.
23505 if (events[open][1].end.offset - events[open][1].start.offset) {
23506 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23507 ['enter', events[open][1], context],
23508 ['exit', events[open][1], context]
23509 ])
23510 }
23511
23512 // Opening.
23513 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23514 ['enter', group, context],
23515 ['enter', openingSequence, context],
23516 ['exit', openingSequence, context],
23517 ['enter', text, context]
23518 ])
23519
23520 // Always populated by defaults.
23521 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
23522 context.parser.constructs.insideSpan.null,
23523 'expected `insideSpan` to be populated'
23524 )
23525
23526 // Between.
23527 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(
23528 nextEvents,
23529 (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(
23530 context.parser.constructs.insideSpan.null,
23531 events.slice(open + 1, index),
23532 context
23533 )
23534 )
23535
23536 // Closing.
23537 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23538 ['exit', text, context],
23539 ['enter', closingSequence, context],
23540 ['exit', closingSequence, context],
23541 ['exit', group, context]
23542 ])
23543
23544 // If there are more markers in the closing, add them after.
23545 if (events[index][1].end.offset - events[index][1].start.offset) {
23546 offset = 2
23547 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23548 ['enter', events[index][1], context],
23549 ['exit', events[index][1], context]
23550 ])
23551 } else {
23552 offset = 0
23553 }
23554
23555 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open - 1, index - open + 3, nextEvents)
23556
23557 index = open + nextEvents.length - offset - 2
23558 break
23559 }
23560 }
23561 }
23562 }
23563
23564 // Remove remaining sequences.
23565 index = -1
23566
23567 while (++index < events.length) {
23568 if (events[index][1].type === 'attentionSequence') {
23569 events[index][1].type = 'data'
23570 }
23571 }
23572
23573 return events
23574 }
23575
23576 /**
23577 * @this {TokenizeContext}
23578 * @type {Tokenizer}
23579 */
23580 function tokenizeAttention(effects, ok) {
23581 const attentionMarkers = this.parser.constructs.attentionMarkers.null
23582 const previous = this.previous
23583 const before = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(previous)
23584
23585 /** @type {NonNullable<Code>} */
23586 let marker
23587
23588 return start
23589
23590 /**
23591 * Before a sequence.
23592 *
23593 * ```markdown
23594 * > | **
23595 * ^
23596 * ```
23597 *
23598 * @type {State}
23599 */
23600 function start(code) {
23601 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
23602 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.underscore,
23603 'expected asterisk or underscore'
23604 )
23605 marker = code
23606 effects.enter('attentionSequence')
23607 return inside(code)
23608 }
23609
23610 /**
23611 * In a sequence.
23612 *
23613 * ```markdown
23614 * > | **
23615 * ^^
23616 * ```
23617 *
23618 * @type {State}
23619 */
23620 function inside(code) {
23621 if (code === marker) {
23622 effects.consume(code)
23623 return inside
23624 }
23625
23626 const token = effects.exit('attentionSequence')
23627
23628 // To do: next major: move this to resolver, just like `markdown-rs`.
23629 const after = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(code)
23630
23631 // Always populated by defaults.
23632 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(attentionMarkers, 'expected `attentionMarkers` to be populated')
23633
23634 const open =
23635 !after ||
23636 (after === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && before) ||
23637 attentionMarkers.includes(code)
23638 const close =
23639 !before ||
23640 (before === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && after) ||
23641 attentionMarkers.includes(previous)
23642
23643 token._open = Boolean(
23644 marker === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? open : open && (before || !close)
23645 )
23646 token._close = Boolean(
23647 marker === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? close : close && (after || !open)
23648 )
23649 return ok(code)
23650 }
23651 }
23652
23653 /**
23654 * Move a point a bit.
23655 *
23656 * Note: `move` only works inside lines! It’s not possible to move past other
23657 * chunks (replacement characters, tabs, or line endings).
23658 *
23659 * @param {Point} point
23660 * @param {number} offset
23661 * @returns {void}
23662 */
23663 function movePoint(point, offset) {
23664 point.column += offset
23665 point.offset += offset
23666 point._bufferIndex += offset
23667 }
23668
23669
23670 /***/ }),
23671
23672 /***/ "../node_modules/micromark-core-commonmark/dev/lib/autolink.js":
23673 /*!*********************************************************************!*\
23674 !*** ../node_modules/micromark-core-commonmark/dev/lib/autolink.js ***!
23675 \*********************************************************************/
23676 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23677
23678 "use strict";
23679 __webpack_require__.r(__webpack_exports__);
23680 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23681 /* harmony export */ autolink: () => (/* binding */ autolink)
23682 /* harmony export */ });
23683 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
23684 /* 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");
23685 /* 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");
23686 /* 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");
23687 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23688 /**
23689 * @typedef {import('micromark-util-types').Construct} Construct
23690 * @typedef {import('micromark-util-types').State} State
23691 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23692 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23693 */
23694
23695
23696
23697
23698
23699
23700
23701 /** @type {Construct} */
23702 const autolink = {name: 'autolink', tokenize: tokenizeAutolink}
23703
23704 /**
23705 * @this {TokenizeContext}
23706 * @type {Tokenizer}
23707 */
23708 function tokenizeAutolink(effects, ok, nok) {
23709 let size = 0
23710
23711 return start
23712
23713 /**
23714 * Start of an autolink.
23715 *
23716 * ```markdown
23717 * > | a<https://example.com>b
23718 * ^
23719 * > | a<user@example.com>b
23720 * ^
23721 * ```
23722 *
23723 * @type {State}
23724 */
23725 function start(code) {
23726 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')
23727 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23728 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23729 effects.consume(code)
23730 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23731 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)
23732 return open
23733 }
23734
23735 /**
23736 * After `<`, at protocol or atext.
23737 *
23738 * ```markdown
23739 * > | a<https://example.com>b
23740 * ^
23741 * > | a<user@example.com>b
23742 * ^
23743 * ```
23744 *
23745 * @type {State}
23746 */
23747 function open(code) {
23748 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
23749 effects.consume(code)
23750 return schemeOrEmailAtext
23751 }
23752
23753 return emailAtext(code)
23754 }
23755
23756 /**
23757 * At second byte of protocol or atext.
23758 *
23759 * ```markdown
23760 * > | a<https://example.com>b
23761 * ^
23762 * > | a<user@example.com>b
23763 * ^
23764 * ```
23765 *
23766 * @type {State}
23767 */
23768 function schemeOrEmailAtext(code) {
23769 // ASCII alphanumeric and `+`, `-`, and `.`.
23770 if (
23771 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||
23772 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
23773 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
23774 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)
23775 ) {
23776 // Count the previous alphabetical from `open` too.
23777 size = 1
23778 return schemeInsideOrEmailAtext(code)
23779 }
23780
23781 return emailAtext(code)
23782 }
23783
23784 /**
23785 * In ambiguous protocol or atext.
23786 *
23787 * ```markdown
23788 * > | a<https://example.com>b
23789 * ^
23790 * > | a<user@example.com>b
23791 * ^
23792 * ```
23793 *
23794 * @type {State}
23795 */
23796 function schemeInsideOrEmailAtext(code) {
23797 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {
23798 effects.consume(code)
23799 size = 0
23800 return urlInside
23801 }
23802
23803 // ASCII alphanumeric and `+`, `-`, and `.`.
23804 if (
23805 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||
23806 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
23807 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
23808 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&
23809 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkSchemeSizeMax
23810 ) {
23811 effects.consume(code)
23812 return schemeInsideOrEmailAtext
23813 }
23814
23815 size = 0
23816 return emailAtext(code)
23817 }
23818
23819 /**
23820 * After protocol, in URL.
23821 *
23822 * ```markdown
23823 * > | a<https://example.com>b
23824 * ^
23825 * ```
23826 *
23827 * @type {State}
23828 */
23829 function urlInside(code) {
23830 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
23831 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)
23832 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23833 effects.consume(code)
23834 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23835 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23836 return ok
23837 }
23838
23839 // ASCII control, space, or `<`.
23840 if (
23841 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
23842 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.space ||
23843 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
23844 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiControl)(code)
23845 ) {
23846 return nok(code)
23847 }
23848
23849 effects.consume(code)
23850 return urlInside
23851 }
23852
23853 /**
23854 * In email atext.
23855 *
23856 * ```markdown
23857 * > | a<user.name@example.com>b
23858 * ^
23859 * ```
23860 *
23861 * @type {State}
23862 */
23863 function emailAtext(code) {
23864 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.atSign) {
23865 effects.consume(code)
23866 return emailAtSignOrDot
23867 }
23868
23869 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAtext)(code)) {
23870 effects.consume(code)
23871 return emailAtext
23872 }
23873
23874 return nok(code)
23875 }
23876
23877 /**
23878 * In label, after at-sign or dot.
23879 *
23880 * ```markdown
23881 * > | a<user.name@example.com>b
23882 * ^ ^
23883 * ```
23884 *
23885 * @type {State}
23886 */
23887 function emailAtSignOrDot(code) {
23888 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code) ? emailLabel(code) : nok(code)
23889 }
23890
23891 /**
23892 * In label, where `.` and `>` are allowed.
23893 *
23894 * ```markdown
23895 * > | a<user.name@example.com>b
23896 * ^
23897 * ```
23898 *
23899 * @type {State}
23900 */
23901 function emailLabel(code) {
23902 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot) {
23903 effects.consume(code)
23904 size = 0
23905 return emailAtSignOrDot
23906 }
23907
23908 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
23909 // Exit, then change the token type.
23910 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
23911 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23912 effects.consume(code)
23913 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23914 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23915 return ok
23916 }
23917
23918 return emailValue(code)
23919 }
23920
23921 /**
23922 * In label, where `.` and `>` are *not* allowed.
23923 *
23924 * Though, this is also used in `emailLabel` to parse other values.
23925 *
23926 * ```markdown
23927 * > | a<user.name@ex-ample.com>b
23928 * ^
23929 * ```
23930 *
23931 * @type {State}
23932 */
23933 function emailValue(code) {
23934 // ASCII alphanumeric or `-`.
23935 if (
23936 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&
23937 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkDomainSizeMax
23938 ) {
23939 const next = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ? emailValue : emailLabel
23940 effects.consume(code)
23941 return next
23942 }
23943
23944 return nok(code)
23945 }
23946 }
23947
23948
23949 /***/ }),
23950
23951 /***/ "../node_modules/micromark-core-commonmark/dev/lib/blank-line.js":
23952 /*!***********************************************************************!*\
23953 !*** ../node_modules/micromark-core-commonmark/dev/lib/blank-line.js ***!
23954 \***********************************************************************/
23955 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23956
23957 "use strict";
23958 __webpack_require__.r(__webpack_exports__);
23959 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23960 /* harmony export */ blankLine: () => (/* binding */ blankLine)
23961 /* harmony export */ });
23962 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
23963 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
23964 /* 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");
23965 /* 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");
23966 /**
23967 * @typedef {import('micromark-util-types').Construct} Construct
23968 * @typedef {import('micromark-util-types').State} State
23969 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23970 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23971 */
23972
23973
23974
23975
23976
23977
23978 /** @type {Construct} */
23979 const blankLine = {tokenize: tokenizeBlankLine, partial: true}
23980
23981 /**
23982 * @this {TokenizeContext}
23983 * @type {Tokenizer}
23984 */
23985 function tokenizeBlankLine(effects, ok, nok) {
23986 return start
23987
23988 /**
23989 * Start of blank line.
23990 *
23991 * > 👉 **Note**: `␠` represents a space character.
23992 *
23993 * ```markdown
23994 * > | ␠␠␊
23995 * ^
23996 * > | ␊
23997 * ^
23998 * ```
23999 *
24000 * @type {State}
24001 */
24002 function start(code) {
24003 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)
24004 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__.factorySpace)(effects, after, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)(code)
24005 : after(code)
24006 }
24007
24008 /**
24009 * At eof/eol, after optional whitespace.
24010 *
24011 * > 👉 **Note**: `␠` represents a space character.
24012 *
24013 * ```markdown
24014 * > | ␠␠␊
24015 * ^
24016 * > | ␊
24017 * ^
24018 * ```
24019 *
24020 * @type {State}
24021 */
24022 function after(code) {
24023 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)
24024 }
24025 }
24026
24027
24028 /***/ }),
24029
24030 /***/ "../node_modules/micromark-core-commonmark/dev/lib/block-quote.js":
24031 /*!************************************************************************!*\
24032 !*** ../node_modules/micromark-core-commonmark/dev/lib/block-quote.js ***!
24033 \************************************************************************/
24034 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24035
24036 "use strict";
24037 __webpack_require__.r(__webpack_exports__);
24038 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24039 /* harmony export */ blockQuote: () => (/* binding */ blockQuote)
24040 /* harmony export */ });
24041 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24042 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24043 /* 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");
24044 /* 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");
24045 /* 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");
24046 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24047 /**
24048 * @typedef {import('micromark-util-types').Construct} Construct
24049 * @typedef {import('micromark-util-types').Exiter} Exiter
24050 * @typedef {import('micromark-util-types').State} State
24051 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24052 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24053 */
24054
24055
24056
24057
24058
24059
24060
24061
24062 /** @type {Construct} */
24063 const blockQuote = {
24064 name: 'blockQuote',
24065 tokenize: tokenizeBlockQuoteStart,
24066 continuation: {tokenize: tokenizeBlockQuoteContinuation},
24067 exit
24068 }
24069
24070 /**
24071 * @this {TokenizeContext}
24072 * @type {Tokenizer}
24073 */
24074 function tokenizeBlockQuoteStart(effects, ok, nok) {
24075 const self = this
24076
24077 return start
24078
24079 /**
24080 * Start of block quote.
24081 *
24082 * ```markdown
24083 * > | > a
24084 * ^
24085 * ```
24086 *
24087 * @type {State}
24088 */
24089 function start(code) {
24090 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
24091 const state = self.containerState
24092
24093 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(state, 'expected `containerState` to be defined in container')
24094
24095 if (!state.open) {
24096 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote, {_container: true})
24097 state.open = true
24098 }
24099
24100 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24101 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker)
24102 effects.consume(code)
24103 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker)
24104 return after
24105 }
24106
24107 return nok(code)
24108 }
24109
24110 /**
24111 * After `>`, before optional whitespace.
24112 *
24113 * ```markdown
24114 * > | > a
24115 * ^
24116 * ```
24117 *
24118 * @type {State}
24119 */
24120 function after(code) {
24121 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
24122 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace)
24123 effects.consume(code)
24124 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace)
24125 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24126 return ok
24127 }
24128
24129 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24130 return ok(code)
24131 }
24132 }
24133
24134 /**
24135 * Start of block quote continuation.
24136 *
24137 * ```markdown
24138 * | > a
24139 * > | > b
24140 * ^
24141 * ```
24142 *
24143 * @this {TokenizeContext}
24144 * @type {Tokenizer}
24145 */
24146 function tokenizeBlockQuoteContinuation(effects, ok, nok) {
24147 const self = this
24148
24149 return contStart
24150
24151 /**
24152 * Start of block quote continuation.
24153 *
24154 * Also used to parse the first block quote opening.
24155 *
24156 * ```markdown
24157 * | > a
24158 * > | > b
24159 * ^
24160 * ```
24161 *
24162 * @type {State}
24163 */
24164 function contStart(code) {
24165 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
24166 // Always populated by defaults.
24167 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24168 self.parser.constructs.disable.null,
24169 'expected `disable.null` to be populated'
24170 )
24171
24172 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(
24173 effects,
24174 contBefore,
24175 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24176 self.parser.constructs.disable.null.includes('codeIndented')
24177 ? undefined
24178 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
24179 )(code)
24180 }
24181
24182 return contBefore(code)
24183 }
24184
24185 /**
24186 * At `>`, after optional whitespace.
24187 *
24188 * Also used to parse the first block quote opening.
24189 *
24190 * ```markdown
24191 * | > a
24192 * > | > b
24193 * ^
24194 * ```
24195 *
24196 * @type {State}
24197 */
24198 function contBefore(code) {
24199 return effects.attempt(blockQuote, ok, nok)(code)
24200 }
24201 }
24202
24203 /** @type {Exiter} */
24204 function exit(effects) {
24205 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote)
24206 }
24207
24208
24209 /***/ }),
24210
24211 /***/ "../node_modules/micromark-core-commonmark/dev/lib/character-escape.js":
24212 /*!*****************************************************************************!*\
24213 !*** ../node_modules/micromark-core-commonmark/dev/lib/character-escape.js ***!
24214 \*****************************************************************************/
24215 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24216
24217 "use strict";
24218 __webpack_require__.r(__webpack_exports__);
24219 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24220 /* harmony export */ characterEscape: () => (/* binding */ characterEscape)
24221 /* harmony export */ });
24222 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24223 /* 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");
24224 /* 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");
24225 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24226 /**
24227 * @typedef {import('micromark-util-types').Construct} Construct
24228 * @typedef {import('micromark-util-types').State} State
24229 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24230 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24231 */
24232
24233
24234
24235
24236
24237
24238 /** @type {Construct} */
24239 const characterEscape = {
24240 name: 'characterEscape',
24241 tokenize: tokenizeCharacterEscape
24242 }
24243
24244 /**
24245 * @this {TokenizeContext}
24246 * @type {Tokenizer}
24247 */
24248 function tokenizeCharacterEscape(effects, ok, nok) {
24249 return start
24250
24251 /**
24252 * Start of character escape.
24253 *
24254 * ```markdown
24255 * > | a\*b
24256 * ^
24257 * ```
24258 *
24259 * @type {State}
24260 */
24261 function start(code) {
24262 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, 'expected `\\`')
24263 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape)
24264 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker)
24265 effects.consume(code)
24266 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker)
24267 return inside
24268 }
24269
24270 /**
24271 * After `\`, at punctuation.
24272 *
24273 * ```markdown
24274 * > | a\*b
24275 * ^
24276 * ```
24277 *
24278 * @type {State}
24279 */
24280 function inside(code) {
24281 // ASCII punctuation.
24282 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiPunctuation)(code)) {
24283 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue)
24284 effects.consume(code)
24285 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue)
24286 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape)
24287 return ok
24288 }
24289
24290 return nok(code)
24291 }
24292 }
24293
24294
24295 /***/ }),
24296
24297 /***/ "../node_modules/micromark-core-commonmark/dev/lib/character-reference.js":
24298 /*!********************************************************************************!*\
24299 !*** ../node_modules/micromark-core-commonmark/dev/lib/character-reference.js ***!
24300 \********************************************************************************/
24301 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24302
24303 "use strict";
24304 __webpack_require__.r(__webpack_exports__);
24305 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24306 /* harmony export */ characterReference: () => (/* binding */ characterReference)
24307 /* harmony export */ });
24308 /* 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");
24309 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24310 /* 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");
24311 /* 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");
24312 /* 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");
24313 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24314 /**
24315 * @typedef {import('micromark-util-types').Code} Code
24316 * @typedef {import('micromark-util-types').Construct} Construct
24317 * @typedef {import('micromark-util-types').State} State
24318 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24319 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24320 */
24321
24322
24323
24324
24325
24326
24327
24328
24329 /** @type {Construct} */
24330 const characterReference = {
24331 name: 'characterReference',
24332 tokenize: tokenizeCharacterReference
24333 }
24334
24335 /**
24336 * @this {TokenizeContext}
24337 * @type {Tokenizer}
24338 */
24339 function tokenizeCharacterReference(effects, ok, nok) {
24340 const self = this
24341 let size = 0
24342 /** @type {number} */
24343 let max
24344 /** @type {(code: Code) => boolean} */
24345 let test
24346
24347 return start
24348
24349 /**
24350 * Start of character reference.
24351 *
24352 * ```markdown
24353 * > | a&amp;b
24354 * ^
24355 * > | a&#123;b
24356 * ^
24357 * > | a&#x9;b
24358 * ^
24359 * ```
24360 *
24361 * @type {State}
24362 */
24363 function start(code) {
24364 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.ampersand, 'expected `&`')
24365 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReference)
24366 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24367 effects.consume(code)
24368 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24369 return open
24370 }
24371
24372 /**
24373 * After `&`, at `#` for numeric references or alphanumeric for named
24374 * references.
24375 *
24376 * ```markdown
24377 * > | a&amp;b
24378 * ^
24379 * > | a&#123;b
24380 * ^
24381 * > | a&#x9;b
24382 * ^
24383 * ```
24384 *
24385 * @type {State}
24386 */
24387 function open(code) {
24388 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.numberSign) {
24389 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric)
24390 effects.consume(code)
24391 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric)
24392 return numeric
24393 }
24394
24395 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24396 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceNamedSizeMax
24397 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric
24398 return value(code)
24399 }
24400
24401 /**
24402 * After `#`, at `x` for hexadecimals or digit for decimals.
24403 *
24404 * ```markdown
24405 * > | a&#123;b
24406 * ^
24407 * > | a&#x9;b
24408 * ^
24409 * ```
24410 *
24411 * @type {State}
24412 */
24413 function numeric(code) {
24414 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) {
24415 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal)
24416 effects.consume(code)
24417 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal)
24418 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24419 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceHexadecimalSizeMax
24420 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiHexDigit
24421 return value
24422 }
24423
24424 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24425 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceDecimalSizeMax
24426 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiDigit
24427 return value(code)
24428 }
24429
24430 /**
24431 * After markers (`&#x`, `&#`, or `&`), in value, before `;`.
24432 *
24433 * The character reference kind defines what and how many characters are
24434 * allowed.
24435 *
24436 * ```markdown
24437 * > | a&amp;b
24438 * ^^^
24439 * > | a&#123;b
24440 * ^^^
24441 * > | a&#x9;b
24442 * ^
24443 * ```
24444 *
24445 * @type {State}
24446 */
24447 function value(code) {
24448 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.semicolon && size) {
24449 const token = effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24450
24451 if (
24452 test === micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric &&
24453 !(0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_5__.decodeNamedCharacterReference)(self.sliceSerialize(token))
24454 ) {
24455 return nok(code)
24456 }
24457
24458 // To do: `markdown-rs` uses a different name:
24459 // `CharacterReferenceMarkerSemi`.
24460 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24461 effects.consume(code)
24462 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24463 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReference)
24464 return ok
24465 }
24466
24467 if (test(code) && size++ < max) {
24468 effects.consume(code)
24469 return value
24470 }
24471
24472 return nok(code)
24473 }
24474 }
24475
24476
24477 /***/ }),
24478
24479 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js":
24480 /*!************************************************************************!*\
24481 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js ***!
24482 \************************************************************************/
24483 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24484
24485 "use strict";
24486 __webpack_require__.r(__webpack_exports__);
24487 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24488 /* harmony export */ codeFenced: () => (/* binding */ codeFenced)
24489 /* harmony export */ });
24490 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24491 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24492 /* 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");
24493 /* 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");
24494 /* 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");
24495 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24496 /**
24497 * @typedef {import('micromark-util-types').Code} Code
24498 * @typedef {import('micromark-util-types').Construct} Construct
24499 * @typedef {import('micromark-util-types').State} State
24500 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24501 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24502 */
24503
24504
24505
24506
24507
24508
24509
24510
24511 /** @type {Construct} */
24512 const nonLazyContinuation = {
24513 tokenize: tokenizeNonLazyContinuation,
24514 partial: true
24515 }
24516
24517 /** @type {Construct} */
24518 const codeFenced = {
24519 name: 'codeFenced',
24520 tokenize: tokenizeCodeFenced,
24521 concrete: true
24522 }
24523
24524 /**
24525 * @this {TokenizeContext}
24526 * @type {Tokenizer}
24527 */
24528 function tokenizeCodeFenced(effects, ok, nok) {
24529 const self = this
24530 /** @type {Construct} */
24531 const closeStart = {tokenize: tokenizeCloseStart, partial: true}
24532 let initialPrefix = 0
24533 let sizeOpen = 0
24534 /** @type {NonNullable<Code>} */
24535 let marker
24536
24537 return start
24538
24539 /**
24540 * Start of code.
24541 *
24542 * ```markdown
24543 * > | ~~~js
24544 * ^
24545 * | alert(1)
24546 * | ~~~
24547 * ```
24548 *
24549 * @type {State}
24550 */
24551 function start(code) {
24552 // To do: parse whitespace like `markdown-rs`.
24553 return beforeSequenceOpen(code)
24554 }
24555
24556 /**
24557 * In opening fence, after prefix, at sequence.
24558 *
24559 * ```markdown
24560 * > | ~~~js
24561 * ^
24562 * | alert(1)
24563 * | ~~~
24564 * ```
24565 *
24566 * @type {State}
24567 */
24568 function beforeSequenceOpen(code) {
24569 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24570 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.tilde,
24571 'expected `` ` `` or `~`'
24572 )
24573
24574 const tail = self.events[self.events.length - 1]
24575 initialPrefix =
24576 tail && tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix
24577 ? tail[2].sliceSerialize(tail[1], true).length
24578 : 0
24579
24580 marker = code
24581 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced)
24582 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24583 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24584 return sequenceOpen(code)
24585 }
24586
24587 /**
24588 * In opening fence sequence.
24589 *
24590 * ```markdown
24591 * > | ~~~js
24592 * ^
24593 * | alert(1)
24594 * | ~~~
24595 * ```
24596 *
24597 * @type {State}
24598 */
24599 function sequenceOpen(code) {
24600 if (code === marker) {
24601 sizeOpen++
24602 effects.consume(code)
24603 return sequenceOpen
24604 }
24605
24606 if (sizeOpen < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.codeFencedSequenceSizeMin) {
24607 return nok(code)
24608 }
24609
24610 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24611 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24612 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, infoBefore, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24613 : infoBefore(code)
24614 }
24615
24616 /**
24617 * In opening fence, after the sequence (and optional whitespace), before info.
24618 *
24619 * ```markdown
24620 * > | ~~~js
24621 * ^
24622 * | alert(1)
24623 * | ~~~
24624 * ```
24625 *
24626 * @type {State}
24627 */
24628 function infoBefore(code) {
24629 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24630 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24631 return self.interrupt
24632 ? ok(code)
24633 : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
24634 }
24635
24636 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24637 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})
24638 return info(code)
24639 }
24640
24641 /**
24642 * In info.
24643 *
24644 * ```markdown
24645 * > | ~~~js
24646 * ^
24647 * | alert(1)
24648 * | ~~~
24649 * ```
24650 *
24651 * @type {State}
24652 */
24653 function info(code) {
24654 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24655 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24656 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24657 return infoBefore(code)
24658 }
24659
24660 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
24661 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24662 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24663 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, metaBefore, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24664 }
24665
24666 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {
24667 return nok(code)
24668 }
24669
24670 effects.consume(code)
24671 return info
24672 }
24673
24674 /**
24675 * In opening fence, after info and whitespace, before meta.
24676 *
24677 * ```markdown
24678 * > | ~~~js eval
24679 * ^
24680 * | alert(1)
24681 * | ~~~
24682 * ```
24683 *
24684 * @type {State}
24685 */
24686 function metaBefore(code) {
24687 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24688 return infoBefore(code)
24689 }
24690
24691 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta)
24692 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})
24693 return meta(code)
24694 }
24695
24696 /**
24697 * In meta.
24698 *
24699 * ```markdown
24700 * > | ~~~js eval
24701 * ^
24702 * | alert(1)
24703 * | ~~~
24704 * ```
24705 *
24706 * @type {State}
24707 */
24708 function meta(code) {
24709 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24710 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24711 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta)
24712 return infoBefore(code)
24713 }
24714
24715 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {
24716 return nok(code)
24717 }
24718
24719 effects.consume(code)
24720 return meta
24721 }
24722
24723 /**
24724 * At eol/eof in code, before a non-lazy closing fence or content.
24725 *
24726 * ```markdown
24727 * > | ~~~js
24728 * ^
24729 * > | alert(1)
24730 * ^
24731 * | ~~~
24732 * ```
24733 *
24734 * @type {State}
24735 */
24736 function atNonLazyBreak(code) {
24737 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24738 return effects.attempt(closeStart, after, contentBefore)(code)
24739 }
24740
24741 /**
24742 * Before code content, not a closing fence, at eol.
24743 *
24744 * ```markdown
24745 * | ~~~js
24746 * > | alert(1)
24747 * ^
24748 * | ~~~
24749 * ```
24750 *
24751 * @type {State}
24752 */
24753 function contentBefore(code) {
24754 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24755 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24756 effects.consume(code)
24757 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24758 return contentStart
24759 }
24760
24761 /**
24762 * Before code content, not a closing fence.
24763 *
24764 * ```markdown
24765 * | ~~~js
24766 * > | alert(1)
24767 * ^
24768 * | ~~~
24769 * ```
24770 *
24771 * @type {State}
24772 */
24773 function contentStart(code) {
24774 return initialPrefix > 0 && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24775 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
24776 effects,
24777 beforeContentChunk,
24778 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24779 initialPrefix + 1
24780 )(code)
24781 : beforeContentChunk(code)
24782 }
24783
24784 /**
24785 * Before code content, after optional prefix.
24786 *
24787 * ```markdown
24788 * | ~~~js
24789 * > | alert(1)
24790 * ^
24791 * | ~~~
24792 * ```
24793 *
24794 * @type {State}
24795 */
24796 function beforeContentChunk(code) {
24797 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24798 return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
24799 }
24800
24801 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
24802 return contentChunk(code)
24803 }
24804
24805 /**
24806 * In code content.
24807 *
24808 * ```markdown
24809 * | ~~~js
24810 * > | alert(1)
24811 * ^^^^^^^^
24812 * | ~~~
24813 * ```
24814 *
24815 * @type {State}
24816 */
24817 function contentChunk(code) {
24818 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24819 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
24820 return beforeContentChunk(code)
24821 }
24822
24823 effects.consume(code)
24824 return contentChunk
24825 }
24826
24827 /**
24828 * After code.
24829 *
24830 * ```markdown
24831 * | ~~~js
24832 * | alert(1)
24833 * > | ~~~
24834 * ^
24835 * ```
24836 *
24837 * @type {State}
24838 */
24839 function after(code) {
24840 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced)
24841 return ok(code)
24842 }
24843
24844 /**
24845 * @this {TokenizeContext}
24846 * @type {Tokenizer}
24847 */
24848 function tokenizeCloseStart(effects, ok, nok) {
24849 let size = 0
24850
24851 return startBefore
24852
24853 /**
24854 *
24855 *
24856 * @type {State}
24857 */
24858 function startBefore(code) {
24859 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24860 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24861 effects.consume(code)
24862 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24863 return start
24864 }
24865
24866 /**
24867 * Before closing fence, at optional whitespace.
24868 *
24869 * ```markdown
24870 * | ~~~js
24871 * | alert(1)
24872 * > | ~~~
24873 * ^
24874 * ```
24875 *
24876 * @type {State}
24877 */
24878 function start(code) {
24879 // Always populated by defaults.
24880 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24881 self.parser.constructs.disable.null,
24882 'expected `disable.null` to be populated'
24883 )
24884
24885 // To do: `enter` here or in next state?
24886 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24887 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24888 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
24889 effects,
24890 beforeSequenceClose,
24891 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24892 self.parser.constructs.disable.null.includes('codeIndented')
24893 ? undefined
24894 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.tabSize
24895 )(code)
24896 : beforeSequenceClose(code)
24897 }
24898
24899 /**
24900 * In closing fence, after optional whitespace, at sequence.
24901 *
24902 * ```markdown
24903 * | ~~~js
24904 * | alert(1)
24905 * > | ~~~
24906 * ^
24907 * ```
24908 *
24909 * @type {State}
24910 */
24911 function beforeSequenceClose(code) {
24912 if (code === marker) {
24913 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24914 return sequenceClose(code)
24915 }
24916
24917 return nok(code)
24918 }
24919
24920 /**
24921 * In closing fence sequence.
24922 *
24923 * ```markdown
24924 * | ~~~js
24925 * | alert(1)
24926 * > | ~~~
24927 * ^
24928 * ```
24929 *
24930 * @type {State}
24931 */
24932 function sequenceClose(code) {
24933 if (code === marker) {
24934 size++
24935 effects.consume(code)
24936 return sequenceClose
24937 }
24938
24939 if (size >= sizeOpen) {
24940 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24941 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24942 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, sequenceCloseAfter, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24943 : sequenceCloseAfter(code)
24944 }
24945
24946 return nok(code)
24947 }
24948
24949 /**
24950 * After closing fence sequence, after optional whitespace.
24951 *
24952 * ```markdown
24953 * | ~~~js
24954 * | alert(1)
24955 * > | ~~~
24956 * ^
24957 * ```
24958 *
24959 * @type {State}
24960 */
24961 function sequenceCloseAfter(code) {
24962 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24963 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24964 return ok(code)
24965 }
24966
24967 return nok(code)
24968 }
24969 }
24970 }
24971
24972 /**
24973 * @this {TokenizeContext}
24974 * @type {Tokenizer}
24975 */
24976 function tokenizeNonLazyContinuation(effects, ok, nok) {
24977 const self = this
24978
24979 return start
24980
24981 /**
24982 *
24983 *
24984 * @type {State}
24985 */
24986 function start(code) {
24987 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
24988 return nok(code)
24989 }
24990
24991 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24992 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24993 effects.consume(code)
24994 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24995 return lineStart
24996 }
24997
24998 /**
24999 *
25000 *
25001 * @type {State}
25002 */
25003 function lineStart(code) {
25004 return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
25005 }
25006 }
25007
25008
25009 /***/ }),
25010
25011 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-indented.js":
25012 /*!**************************************************************************!*\
25013 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-indented.js ***!
25014 \**************************************************************************/
25015 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25016
25017 "use strict";
25018 __webpack_require__.r(__webpack_exports__);
25019 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25020 /* harmony export */ codeIndented: () => (/* binding */ codeIndented)
25021 /* harmony export */ });
25022 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25023 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25024 /* 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");
25025 /* 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");
25026 /* 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");
25027 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25028 /**
25029 * @typedef {import('micromark-util-types').Construct} Construct
25030 * @typedef {import('micromark-util-types').State} State
25031 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25032 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25033 */
25034
25035
25036
25037
25038
25039
25040
25041
25042 /** @type {Construct} */
25043 const codeIndented = {
25044 name: 'codeIndented',
25045 tokenize: tokenizeCodeIndented
25046 }
25047
25048 /** @type {Construct} */
25049 const furtherStart = {tokenize: tokenizeFurtherStart, partial: true}
25050
25051 /**
25052 * @this {TokenizeContext}
25053 * @type {Tokenizer}
25054 */
25055 function tokenizeCodeIndented(effects, ok, nok) {
25056 const self = this
25057 return start
25058
25059 /**
25060 * Start of code (indented).
25061 *
25062 * > **Parsing note**: it is not needed to check if this first line is a
25063 * > filled line (that it has a non-whitespace character), because blank lines
25064 * > are parsed already, so we never run into that.
25065 *
25066 * ```markdown
25067 * > | aaa
25068 * ^
25069 * ```
25070 *
25071 * @type {State}
25072 */
25073 function start(code) {
25074 // To do: manually check if interrupting like `markdown-rs`.
25075 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownSpace)(code))
25076 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented)
25077 // To do: use an improved `space_or_tab` function like `markdown-rs`,
25078 // so that we can drop the next state.
25079 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(
25080 effects,
25081 afterPrefix,
25082 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25083 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1
25084 )(code)
25085 }
25086
25087 /**
25088 * At start, after 1 or 4 spaces.
25089 *
25090 * ```markdown
25091 * > | aaa
25092 * ^
25093 * ```
25094 *
25095 * @type {State}
25096 */
25097 function afterPrefix(code) {
25098 const tail = self.events[self.events.length - 1]
25099 return tail &&
25100 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix &&
25101 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
25102 ? atBreak(code)
25103 : nok(code)
25104 }
25105
25106 /**
25107 * At a break.
25108 *
25109 * ```markdown
25110 * > | aaa
25111 * ^ ^
25112 * ```
25113 *
25114 * @type {State}
25115 */
25116 function atBreak(code) {
25117 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
25118 return after(code)
25119 }
25120
25121 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25122 return effects.attempt(furtherStart, atBreak, after)(code)
25123 }
25124
25125 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25126 return inside(code)
25127 }
25128
25129 /**
25130 * In code content.
25131 *
25132 * ```markdown
25133 * > | aaa
25134 * ^^^^
25135 * ```
25136 *
25137 * @type {State}
25138 */
25139 function inside(code) {
25140 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25141 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25142 return atBreak(code)
25143 }
25144
25145 effects.consume(code)
25146 return inside
25147 }
25148
25149 /** @type {State} */
25150 function after(code) {
25151 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented)
25152 // To do: allow interrupting like `markdown-rs`.
25153 // Feel free to interrupt.
25154 // tokenizer.interrupt = false
25155 return ok(code)
25156 }
25157 }
25158
25159 /**
25160 * @this {TokenizeContext}
25161 * @type {Tokenizer}
25162 */
25163 function tokenizeFurtherStart(effects, ok, nok) {
25164 const self = this
25165
25166 return furtherStart
25167
25168 /**
25169 * At eol, trying to parse another indent.
25170 *
25171 * ```markdown
25172 * > | aaa
25173 * ^
25174 * | bbb
25175 * ```
25176 *
25177 * @type {State}
25178 */
25179 function furtherStart(code) {
25180 // To do: improve `lazy` / `pierce` handling.
25181 // If this is a lazy line, it can’t be code.
25182 if (self.parser.lazy[self.now().line]) {
25183 return nok(code)
25184 }
25185
25186 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25187 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25188 effects.consume(code)
25189 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25190 return furtherStart
25191 }
25192
25193 // To do: the code here in `micromark-js` is a bit different from
25194 // `markdown-rs` because there it can attempt spaces.
25195 // We can’t yet.
25196 //
25197 // To do: use an improved `space_or_tab` function like `markdown-rs`,
25198 // so that we can drop the next state.
25199 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(
25200 effects,
25201 afterPrefix,
25202 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25203 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1
25204 )(code)
25205 }
25206
25207 /**
25208 * At start, after 1 or 4 spaces.
25209 *
25210 * ```markdown
25211 * > | aaa
25212 * ^
25213 * ```
25214 *
25215 * @type {State}
25216 */
25217 function afterPrefix(code) {
25218 const tail = self.events[self.events.length - 1]
25219 return tail &&
25220 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix &&
25221 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
25222 ? ok(code)
25223 : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)
25224 ? furtherStart(code)
25225 : nok(code)
25226 }
25227 }
25228
25229
25230 /***/ }),
25231
25232 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-text.js":
25233 /*!**********************************************************************!*\
25234 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-text.js ***!
25235 \**********************************************************************/
25236 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25237
25238 "use strict";
25239 __webpack_require__.r(__webpack_exports__);
25240 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25241 /* harmony export */ codeText: () => (/* binding */ codeText)
25242 /* harmony export */ });
25243 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25244 /* 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");
25245 /* 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");
25246 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25247 /**
25248 * @typedef {import('micromark-util-types').Construct} Construct
25249 * @typedef {import('micromark-util-types').Previous} Previous
25250 * @typedef {import('micromark-util-types').Resolver} Resolver
25251 * @typedef {import('micromark-util-types').State} State
25252 * @typedef {import('micromark-util-types').Token} Token
25253 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25254 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25255 */
25256
25257
25258
25259
25260
25261
25262 /** @type {Construct} */
25263 const codeText = {
25264 name: 'codeText',
25265 tokenize: tokenizeCodeText,
25266 resolve: resolveCodeText,
25267 previous
25268 }
25269
25270 // To do: next major: don’t resolve, like `markdown-rs`.
25271 /** @type {Resolver} */
25272 function resolveCodeText(events) {
25273 let tailExitIndex = events.length - 4
25274 let headEnterIndex = 3
25275 /** @type {number} */
25276 let index
25277 /** @type {number | undefined} */
25278 let enter
25279
25280 // If we start and end with an EOL or a space.
25281 if (
25282 (events[headEnterIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
25283 events[headEnterIndex][1].type === 'space') &&
25284 (events[tailExitIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
25285 events[tailExitIndex][1].type === 'space')
25286 ) {
25287 index = headEnterIndex
25288
25289 // And we have data.
25290 while (++index < tailExitIndex) {
25291 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData) {
25292 // Then we have padding.
25293 events[headEnterIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextPadding
25294 events[tailExitIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextPadding
25295 headEnterIndex += 2
25296 tailExitIndex -= 2
25297 break
25298 }
25299 }
25300 }
25301
25302 // Merge adjacent spaces and data.
25303 index = headEnterIndex - 1
25304 tailExitIndex++
25305
25306 while (++index <= tailExitIndex) {
25307 if (enter === undefined) {
25308 if (
25309 index !== tailExitIndex &&
25310 events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
25311 ) {
25312 enter = index
25313 }
25314 } else if (
25315 index === tailExitIndex ||
25316 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
25317 ) {
25318 events[enter][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData
25319
25320 if (index !== enter + 2) {
25321 events[enter][1].end = events[index - 1][1].end
25322 events.splice(enter + 2, index - enter - 2)
25323 tailExitIndex -= index - enter - 2
25324 index = enter + 2
25325 }
25326
25327 enter = undefined
25328 }
25329 }
25330
25331 return events
25332 }
25333
25334 /**
25335 * @this {TokenizeContext}
25336 * @type {Previous}
25337 */
25338 function previous(code) {
25339 // If there is a previous code, there will always be a tail.
25340 return (
25341 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
25342 this.events[this.events.length - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.characterEscape
25343 )
25344 }
25345
25346 /**
25347 * @this {TokenizeContext}
25348 * @type {Tokenizer}
25349 */
25350 function tokenizeCodeText(effects, ok, nok) {
25351 const self = this
25352 let sizeOpen = 0
25353 /** @type {number} */
25354 let size
25355 /** @type {Token} */
25356 let token
25357
25358 return start
25359
25360 /**
25361 * Start of code (text).
25362 *
25363 * ```markdown
25364 * > | `a`
25365 * ^
25366 * > | \`a`
25367 * ^
25368 * ```
25369 *
25370 * @type {State}
25371 */
25372 function start(code) {
25373 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent, 'expected `` ` ``')
25374 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(previous.call(self, self.previous), 'expected correct previous')
25375 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeText)
25376 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25377 return sequenceOpen(code)
25378 }
25379
25380 /**
25381 * In opening sequence.
25382 *
25383 * ```markdown
25384 * > | `a`
25385 * ^
25386 * ```
25387 *
25388 * @type {State}
25389 */
25390 function sequenceOpen(code) {
25391 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25392 effects.consume(code)
25393 sizeOpen++
25394 return sequenceOpen
25395 }
25396
25397 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25398 return between(code)
25399 }
25400
25401 /**
25402 * Between something and something else.
25403 *
25404 * ```markdown
25405 * > | `a`
25406 * ^^
25407 * ```
25408 *
25409 * @type {State}
25410 */
25411 function between(code) {
25412 // EOF.
25413 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
25414 return nok(code)
25415 }
25416
25417 // To do: next major: don’t do spaces in resolve, but when compiling,
25418 // like `markdown-rs`.
25419 // Tabs don’t work, and virtual spaces don’t make sense.
25420 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.space) {
25421 effects.enter('space')
25422 effects.consume(code)
25423 effects.exit('space')
25424 return between
25425 }
25426
25427 // Closing fence? Could also be data.
25428 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25429 token = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25430 size = 0
25431 return sequenceClose(code)
25432 }
25433
25434 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25435 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
25436 effects.consume(code)
25437 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
25438 return between
25439 }
25440
25441 // Data.
25442 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData)
25443 return data(code)
25444 }
25445
25446 /**
25447 * In data.
25448 *
25449 * ```markdown
25450 * > | `a`
25451 * ^
25452 * ```
25453 *
25454 * @type {State}
25455 */
25456 function data(code) {
25457 if (
25458 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
25459 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.space ||
25460 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
25461 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)
25462 ) {
25463 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData)
25464 return between(code)
25465 }
25466
25467 effects.consume(code)
25468 return data
25469 }
25470
25471 /**
25472 * In closing sequence.
25473 *
25474 * ```markdown
25475 * > | `a`
25476 * ^
25477 * ```
25478 *
25479 * @type {State}
25480 */
25481 function sequenceClose(code) {
25482 // More.
25483 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25484 effects.consume(code)
25485 size++
25486 return sequenceClose
25487 }
25488
25489 // Done!
25490 if (size === sizeOpen) {
25491 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25492 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeText)
25493 return ok(code)
25494 }
25495
25496 // More or less accents: mark as data.
25497 token.type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData
25498 return data(code)
25499 }
25500 }
25501
25502
25503 /***/ }),
25504
25505 /***/ "../node_modules/micromark-core-commonmark/dev/lib/content.js":
25506 /*!********************************************************************!*\
25507 !*** ../node_modules/micromark-core-commonmark/dev/lib/content.js ***!
25508 \********************************************************************/
25509 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25510
25511 "use strict";
25512 __webpack_require__.r(__webpack_exports__);
25513 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25514 /* harmony export */ content: () => (/* binding */ content)
25515 /* harmony export */ });
25516 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25517 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25518 /* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-subtokenize */ "../node_modules/micromark-util-subtokenize/dev/index.js");
25519 /* 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");
25520 /* 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");
25521 /* 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");
25522 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25523 /**
25524 * @typedef {import('micromark-util-types').Construct} Construct
25525 * @typedef {import('micromark-util-types').Resolver} Resolver
25526 * @typedef {import('micromark-util-types').State} State
25527 * @typedef {import('micromark-util-types').Token} Token
25528 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25529 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25530 */
25531
25532
25533
25534
25535
25536
25537
25538
25539
25540 /**
25541 * No name because it must not be turned off.
25542 * @type {Construct}
25543 */
25544 const content = {tokenize: tokenizeContent, resolve: resolveContent}
25545
25546 /** @type {Construct} */
25547 const continuationConstruct = {tokenize: tokenizeContinuation, partial: true}
25548
25549 /**
25550 * Content is transparent: it’s parsed right now. That way, definitions are also
25551 * parsed right now: before text in paragraphs (specifically, media) are parsed.
25552 *
25553 * @type {Resolver}
25554 */
25555 function resolveContent(events) {
25556 ;(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_1__.subtokenize)(events)
25557 return events
25558 }
25559
25560 /**
25561 * @this {TokenizeContext}
25562 * @type {Tokenizer}
25563 */
25564 function tokenizeContent(effects, ok) {
25565 /** @type {Token | undefined} */
25566 let previous
25567
25568 return chunkStart
25569
25570 /**
25571 * Before a content chunk.
25572 *
25573 * ```markdown
25574 * > | abc
25575 * ^
25576 * ```
25577 *
25578 * @type {State}
25579 */
25580 function chunkStart(code) {
25581 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25582 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code),
25583 'expected no eof or eol'
25584 )
25585
25586 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.content)
25587 previous = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {
25588 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent
25589 })
25590 return chunkInside(code)
25591 }
25592
25593 /**
25594 * In a content chunk.
25595 *
25596 * ```markdown
25597 * > | abc
25598 * ^^^
25599 * ```
25600 *
25601 * @type {State}
25602 */
25603 function chunkInside(code) {
25604 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
25605 return contentEnd(code)
25606 }
25607
25608 // To do: in `markdown-rs`, each line is parsed on its own, and everything
25609 // is stitched together resolving.
25610 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25611 return effects.check(
25612 continuationConstruct,
25613 contentContinue,
25614 contentEnd
25615 )(code)
25616 }
25617
25618 // Data.
25619 effects.consume(code)
25620 return chunkInside
25621 }
25622
25623 /**
25624 *
25625 *
25626 * @type {State}
25627 */
25628 function contentEnd(code) {
25629 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25630 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.content)
25631 return ok(code)
25632 }
25633
25634 /**
25635 *
25636 *
25637 * @type {State}
25638 */
25639 function contentContinue(code) {
25640 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected eol')
25641 effects.consume(code)
25642 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25643 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(previous, 'expected previous token')
25644 previous.next = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {
25645 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent,
25646 previous
25647 })
25648 previous = previous.next
25649 return chunkInside
25650 }
25651 }
25652
25653 /**
25654 * @this {TokenizeContext}
25655 * @type {Tokenizer}
25656 */
25657 function tokenizeContinuation(effects, ok, nok) {
25658 const self = this
25659
25660 return startLookahead
25661
25662 /**
25663 *
25664 *
25665 * @type {State}
25666 */
25667 function startLookahead(code) {
25668 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected a line ending')
25669 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25670 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
25671 effects.consume(code)
25672 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
25673 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, prefixed, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix)
25674 }
25675
25676 /**
25677 *
25678 *
25679 * @type {State}
25680 */
25681 function prefixed(code) {
25682 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25683 return nok(code)
25684 }
25685
25686 // Always populated by defaults.
25687 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25688 self.parser.constructs.disable.null,
25689 'expected `disable.null` to be populated'
25690 )
25691
25692 const tail = self.events[self.events.length - 1]
25693
25694 if (
25695 !self.parser.constructs.disable.null.includes('codeIndented') &&
25696 tail &&
25697 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix &&
25698 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
25699 ) {
25700 return ok(code)
25701 }
25702
25703 return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)
25704 }
25705 }
25706
25707
25708 /***/ }),
25709
25710 /***/ "../node_modules/micromark-core-commonmark/dev/lib/definition.js":
25711 /*!***********************************************************************!*\
25712 !*** ../node_modules/micromark-core-commonmark/dev/lib/definition.js ***!
25713 \***********************************************************************/
25714 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25715
25716 "use strict";
25717 __webpack_require__.r(__webpack_exports__);
25718 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25719 /* harmony export */ definition: () => (/* binding */ definition)
25720 /* harmony export */ });
25721 /* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-destination */ "../node_modules/micromark-factory-destination/dev/index.js");
25722 /* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-label */ "../node_modules/micromark-factory-label/dev/index.js");
25723 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25724 /* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-factory-title */ "../node_modules/micromark-factory-title/dev/index.js");
25725 /* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-whitespace */ "../node_modules/micromark-factory-whitespace/dev/index.js");
25726 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25727 /* 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");
25728 /* 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");
25729 /* 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");
25730 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25731 /**
25732 * @typedef {import('micromark-util-types').Construct} Construct
25733 * @typedef {import('micromark-util-types').State} State
25734 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25735 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25736 */
25737
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749 /** @type {Construct} */
25750 const definition = {name: 'definition', tokenize: tokenizeDefinition}
25751
25752 /** @type {Construct} */
25753 const titleBefore = {tokenize: tokenizeTitleBefore, partial: true}
25754
25755 /**
25756 * @this {TokenizeContext}
25757 * @type {Tokenizer}
25758 */
25759 function tokenizeDefinition(effects, ok, nok) {
25760 const self = this
25761 /** @type {string} */
25762 let identifier
25763
25764 return start
25765
25766 /**
25767 * At start of a definition.
25768 *
25769 * ```markdown
25770 * > | [a]: b "c"
25771 * ^
25772 * ```
25773 *
25774 * @type {State}
25775 */
25776 function start(code) {
25777 // Do not interrupt paragraphs (but do follow definitions).
25778 // To do: do `interrupt` the way `markdown-rs` does.
25779 // To do: parse whitespace the way `markdown-rs` does.
25780 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition)
25781 return before(code)
25782 }
25783
25784 /**
25785 * After optional whitespace, at `[`.
25786 *
25787 * ```markdown
25788 * > | [a]: b "c"
25789 * ^
25790 * ```
25791 *
25792 * @type {State}
25793 */
25794 function before(code) {
25795 // To do: parse whitespace the way `markdown-rs` does.
25796 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, 'expected `[`')
25797 return micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__.factoryLabel.call(
25798 self,
25799 effects,
25800 labelAfter,
25801 // Note: we don’t need to reset the way `markdown-rs` does.
25802 nok,
25803 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabel,
25804 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabelMarker,
25805 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabelString
25806 )(code)
25807 }
25808
25809 /**
25810 * After label.
25811 *
25812 * ```markdown
25813 * > | [a]: b "c"
25814 * ^
25815 * ```
25816 *
25817 * @type {State}
25818 */
25819 function labelAfter(code) {
25820 identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_4__.normalizeIdentifier)(
25821 self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
25822 )
25823
25824 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon) {
25825 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionMarker)
25826 effects.consume(code)
25827 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionMarker)
25828 return markerAfter
25829 }
25830
25831 return nok(code)
25832 }
25833
25834 /**
25835 * After marker.
25836 *
25837 * ```markdown
25838 * > | [a]: b "c"
25839 * ^
25840 * ```
25841 *
25842 * @type {State}
25843 */
25844 function markerAfter(code) {
25845 // Note: whitespace is optional.
25846 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
25847 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, destinationBefore)(code)
25848 : destinationBefore(code)
25849 }
25850
25851 /**
25852 * Before destination.
25853 *
25854 * ```markdown
25855 * > | [a]: b "c"
25856 * ^
25857 * ```
25858 *
25859 * @type {State}
25860 */
25861 function destinationBefore(code) {
25862 return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__.factoryDestination)(
25863 effects,
25864 destinationAfter,
25865 // Note: we don’t need to reset the way `markdown-rs` does.
25866 nok,
25867 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestination,
25868 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationLiteral,
25869 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationLiteralMarker,
25870 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationRaw,
25871 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationString
25872 )(code)
25873 }
25874
25875 /**
25876 * After destination.
25877 *
25878 * ```markdown
25879 * > | [a]: b "c"
25880 * ^
25881 * ```
25882 *
25883 * @type {State}
25884 */
25885 function destinationAfter(code) {
25886 return effects.attempt(titleBefore, after, after)(code)
25887 }
25888
25889 /**
25890 * After definition.
25891 *
25892 * ```markdown
25893 * > | [a]: b
25894 * ^
25895 * > | [a]: b "c"
25896 * ^
25897 * ```
25898 *
25899 * @type {State}
25900 */
25901 function after(code) {
25902 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)
25903 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(effects, afterWhitespace, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
25904 : afterWhitespace(code)
25905 }
25906
25907 /**
25908 * After definition, after optional whitespace.
25909 *
25910 * ```markdown
25911 * > | [a]: b
25912 * ^
25913 * > | [a]: b "c"
25914 * ^
25915 * ```
25916 *
25917 * @type {State}
25918 */
25919 function afterWhitespace(code) {
25920 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
25921 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition)
25922
25923 // Note: we don’t care about uniqueness.
25924 // It’s likely that that doesn’t happen very frequently.
25925 // It is more likely that it wastes precious time.
25926 self.parser.defined.push(identifier)
25927
25928 // To do: `markdown-rs` interrupt.
25929 // // You’d be interrupting.
25930 // tokenizer.interrupt = true
25931 return ok(code)
25932 }
25933
25934 return nok(code)
25935 }
25936 }
25937
25938 /**
25939 * @this {TokenizeContext}
25940 * @type {Tokenizer}
25941 */
25942 function tokenizeTitleBefore(effects, ok, nok) {
25943 return titleBefore
25944
25945 /**
25946 * After destination, at whitespace.
25947 *
25948 * ```markdown
25949 * > | [a]: b
25950 * ^
25951 * > | [a]: b "c"
25952 * ^
25953 * ```
25954 *
25955 * @type {State}
25956 */
25957 function titleBefore(code) {
25958 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
25959 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, beforeMarker)(code)
25960 : nok(code)
25961 }
25962
25963 /**
25964 * At title.
25965 *
25966 * ```markdown
25967 * | [a]: b
25968 * > | "c"
25969 * ^
25970 * ```
25971 *
25972 * @type {State}
25973 */
25974 function beforeMarker(code) {
25975 return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__.factoryTitle)(
25976 effects,
25977 titleAfter,
25978 nok,
25979 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitle,
25980 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitleMarker,
25981 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitleString
25982 )(code)
25983 }
25984
25985 /**
25986 * After title.
25987 *
25988 * ```markdown
25989 * > | [a]: b "c"
25990 * ^
25991 * ```
25992 *
25993 * @type {State}
25994 */
25995 function titleAfter(code) {
25996 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)
25997 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(
25998 effects,
25999 titleAfterOptionalWhitespace,
26000 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace
26001 )(code)
26002 : titleAfterOptionalWhitespace(code)
26003 }
26004
26005 /**
26006 * After title, after optional whitespace.
26007 *
26008 * ```markdown
26009 * > | [a]: b "c"
26010 * ^
26011 * ```
26012 *
26013 * @type {State}
26014 */
26015 function titleAfterOptionalWhitespace(code) {
26016 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)
26017 }
26018 }
26019
26020
26021 /***/ }),
26022
26023 /***/ "../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js":
26024 /*!******************************************************************************!*\
26025 !*** ../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js ***!
26026 \******************************************************************************/
26027 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26028
26029 "use strict";
26030 __webpack_require__.r(__webpack_exports__);
26031 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26032 /* harmony export */ hardBreakEscape: () => (/* binding */ hardBreakEscape)
26033 /* harmony export */ });
26034 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26035 /* 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");
26036 /* 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");
26037 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26038 /**
26039 * @typedef {import('micromark-util-types').Construct} Construct
26040 * @typedef {import('micromark-util-types').State} State
26041 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26042 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26043 */
26044
26045
26046
26047
26048
26049
26050 /** @type {Construct} */
26051 const hardBreakEscape = {
26052 name: 'hardBreakEscape',
26053 tokenize: tokenizeHardBreakEscape
26054 }
26055
26056 /**
26057 * @this {TokenizeContext}
26058 * @type {Tokenizer}
26059 */
26060 function tokenizeHardBreakEscape(effects, ok, nok) {
26061 return start
26062
26063 /**
26064 * Start of a hard break (escape).
26065 *
26066 * ```markdown
26067 * > | a\
26068 * ^
26069 * | b
26070 * ```
26071 *
26072 * @type {State}
26073 */
26074 function start(code) {
26075 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, 'expected `\\`')
26076 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape)
26077 effects.consume(code)
26078 return after
26079 }
26080
26081 /**
26082 * After `\`, at eol.
26083 *
26084 * ```markdown
26085 * > | a\
26086 * ^
26087 * | b
26088 * ```
26089 *
26090 * @type {State}
26091 */
26092 function after(code) {
26093 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
26094 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape)
26095 return ok(code)
26096 }
26097
26098 return nok(code)
26099 }
26100 }
26101
26102
26103 /***/ }),
26104
26105 /***/ "../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js":
26106 /*!************************************************************************!*\
26107 !*** ../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js ***!
26108 \************************************************************************/
26109 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26110
26111 "use strict";
26112 __webpack_require__.r(__webpack_exports__);
26113 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26114 /* harmony export */ headingAtx: () => (/* binding */ headingAtx)
26115 /* harmony export */ });
26116 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
26117 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26118 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
26119 /* 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");
26120 /* 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");
26121 /* 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");
26122 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26123 /**
26124 * @typedef {import('micromark-util-types').Construct} Construct
26125 * @typedef {import('micromark-util-types').Resolver} Resolver
26126 * @typedef {import('micromark-util-types').State} State
26127 * @typedef {import('micromark-util-types').Token} Token
26128 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26129 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26130 */
26131
26132
26133
26134
26135
26136
26137
26138
26139
26140 /** @type {Construct} */
26141 const headingAtx = {
26142 name: 'headingAtx',
26143 tokenize: tokenizeHeadingAtx,
26144 resolve: resolveHeadingAtx
26145 }
26146
26147 /** @type {Resolver} */
26148 function resolveHeadingAtx(events, context) {
26149 let contentEnd = events.length - 2
26150 let contentStart = 3
26151 /** @type {Token} */
26152 let content
26153 /** @type {Token} */
26154 let text
26155
26156 // Prefix whitespace, part of the opening.
26157 if (events[contentStart][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace) {
26158 contentStart += 2
26159 }
26160
26161 // Suffix whitespace, part of the closing.
26162 if (
26163 contentEnd - 2 > contentStart &&
26164 events[contentEnd][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace
26165 ) {
26166 contentEnd -= 2
26167 }
26168
26169 if (
26170 events[contentEnd][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence &&
26171 (contentStart === contentEnd - 1 ||
26172 (contentEnd - 4 > contentStart &&
26173 events[contentEnd - 2][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace))
26174 ) {
26175 contentEnd -= contentStart + 1 === contentEnd ? 2 : 4
26176 }
26177
26178 if (contentEnd > contentStart) {
26179 content = {
26180 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText,
26181 start: events[contentStart][1].start,
26182 end: events[contentEnd][1].end
26183 }
26184 text = {
26185 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkText,
26186 start: events[contentStart][1].start,
26187 end: events[contentEnd][1].end,
26188 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.contentTypeText
26189 }
26190
26191 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.splice)(events, contentStart, contentEnd - contentStart + 1, [
26192 ['enter', content, context],
26193 ['enter', text, context],
26194 ['exit', text, context],
26195 ['exit', content, context]
26196 ])
26197 }
26198
26199 return events
26200 }
26201
26202 /**
26203 * @this {TokenizeContext}
26204 * @type {Tokenizer}
26205 */
26206 function tokenizeHeadingAtx(effects, ok, nok) {
26207 let size = 0
26208
26209 return start
26210
26211 /**
26212 * Start of a heading (atx).
26213 *
26214 * ```markdown
26215 * > | ## aa
26216 * ^
26217 * ```
26218 *
26219 * @type {State}
26220 */
26221 function start(code) {
26222 // To do: parse indent like `markdown-rs`.
26223 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeading)
26224 return before(code)
26225 }
26226
26227 /**
26228 * After optional whitespace, at `#`.
26229 *
26230 * ```markdown
26231 * > | ## aa
26232 * ^
26233 * ```
26234 *
26235 * @type {State}
26236 */
26237 function before(code) {
26238 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign, 'expected `#`')
26239 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26240 return sequenceOpen(code)
26241 }
26242
26243 /**
26244 * In opening sequence.
26245 *
26246 * ```markdown
26247 * > | ## aa
26248 * ^
26249 * ```
26250 *
26251 * @type {State}
26252 */
26253 function sequenceOpen(code) {
26254 if (
26255 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign &&
26256 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.atxHeadingOpeningFenceSizeMax
26257 ) {
26258 effects.consume(code)
26259 return sequenceOpen
26260 }
26261
26262 // Always at least one `#`.
26263 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {
26264 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26265 return atBreak(code)
26266 }
26267
26268 return nok(code)
26269 }
26270
26271 /**
26272 * After something, before something else.
26273 *
26274 * ```markdown
26275 * > | ## aa
26276 * ^
26277 * ```
26278 *
26279 * @type {State}
26280 */
26281 function atBreak(code) {
26282 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {
26283 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26284 return sequenceFurther(code)
26285 }
26286
26287 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
26288 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeading)
26289 // To do: interrupt like `markdown-rs`.
26290 // // Feel free to interrupt.
26291 // tokenizer.interrupt = false
26292 return ok(code)
26293 }
26294
26295 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)) {
26296 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
26297 }
26298
26299 // To do: generate `data` tokens, add the `text` token later.
26300 // Needs edit map, see: `markdown.rs`.
26301 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText)
26302 return data(code)
26303 }
26304
26305 /**
26306 * In further sequence (after whitespace).
26307 *
26308 * Could be normal “visible” hashes in the heading or a final sequence.
26309 *
26310 * ```markdown
26311 * > | ## aa ##
26312 * ^
26313 * ```
26314 *
26315 * @type {State}
26316 */
26317 function sequenceFurther(code) {
26318 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {
26319 effects.consume(code)
26320 return sequenceFurther
26321 }
26322
26323 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26324 return atBreak(code)
26325 }
26326
26327 /**
26328 * In text.
26329 *
26330 * ```markdown
26331 * > | ## aa
26332 * ^
26333 * ```
26334 *
26335 * @type {State}
26336 */
26337 function data(code) {
26338 if (
26339 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof ||
26340 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign ||
26341 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
26342 ) {
26343 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText)
26344 return atBreak(code)
26345 }
26346
26347 effects.consume(code)
26348 return data
26349 }
26350 }
26351
26352
26353 /***/ }),
26354
26355 /***/ "../node_modules/micromark-core-commonmark/dev/lib/html-flow.js":
26356 /*!**********************************************************************!*\
26357 !*** ../node_modules/micromark-core-commonmark/dev/lib/html-flow.js ***!
26358 \**********************************************************************/
26359 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26360
26361 "use strict";
26362 __webpack_require__.r(__webpack_exports__);
26363 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26364 /* harmony export */ htmlFlow: () => (/* binding */ htmlFlow)
26365 /* harmony export */ });
26366 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26367 /* 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");
26368 /* 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");
26369 /* 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");
26370 /* 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");
26371 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26372 /* 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");
26373 /**
26374 * @typedef {import('micromark-util-types').Code} Code
26375 * @typedef {import('micromark-util-types').Construct} Construct
26376 * @typedef {import('micromark-util-types').Resolver} Resolver
26377 * @typedef {import('micromark-util-types').State} State
26378 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26379 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26380 */
26381
26382
26383
26384
26385
26386
26387
26388
26389
26390 /** @type {Construct} */
26391 const htmlFlow = {
26392 name: 'htmlFlow',
26393 tokenize: tokenizeHtmlFlow,
26394 resolveTo: resolveToHtmlFlow,
26395 concrete: true
26396 }
26397
26398 /** @type {Construct} */
26399 const blankLineBefore = {tokenize: tokenizeBlankLineBefore, partial: true}
26400 const nonLazyContinuationStart = {
26401 tokenize: tokenizeNonLazyContinuationStart,
26402 partial: true
26403 }
26404
26405 /** @type {Resolver} */
26406 function resolveToHtmlFlow(events) {
26407 let index = events.length
26408
26409 while (index--) {
26410 if (
26411 events[index][0] === 'enter' &&
26412 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow
26413 ) {
26414 break
26415 }
26416 }
26417
26418 if (index > 1 && events[index - 2][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix) {
26419 // Add the prefix start to the HTML token.
26420 events[index][1].start = events[index - 2][1].start
26421 // Add the prefix start to the HTML line token.
26422 events[index + 1][1].start = events[index - 2][1].start
26423 // Remove the line prefix.
26424 events.splice(index - 2, 2)
26425 }
26426
26427 return events
26428 }
26429
26430 /**
26431 * @this {TokenizeContext}
26432 * @type {Tokenizer}
26433 */
26434 function tokenizeHtmlFlow(effects, ok, nok) {
26435 const self = this
26436 /** @type {number} */
26437 let marker
26438 /** @type {boolean} */
26439 let closingTag
26440 /** @type {string} */
26441 let buffer
26442 /** @type {number} */
26443 let index
26444 /** @type {Code} */
26445 let markerB
26446
26447 return start
26448
26449 /**
26450 * Start of HTML (flow).
26451 *
26452 * ```markdown
26453 * > | <x />
26454 * ^
26455 * ```
26456 *
26457 * @type {State}
26458 */
26459 function start(code) {
26460 // To do: parse indent like `markdown-rs`.
26461 return before(code)
26462 }
26463
26464 /**
26465 * At `<`, after optional whitespace.
26466 *
26467 * ```markdown
26468 * > | <x />
26469 * ^
26470 * ```
26471 *
26472 * @type {State}
26473 */
26474 function before(code) {
26475 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan, 'expected `<`')
26476 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow)
26477 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
26478 effects.consume(code)
26479 return open
26480 }
26481
26482 /**
26483 * After `<`, at tag name or other stuff.
26484 *
26485 * ```markdown
26486 * > | <x />
26487 * ^
26488 * > | <!doctype>
26489 * ^
26490 * > | <!--xxx-->
26491 * ^
26492 * ```
26493 *
26494 * @type {State}
26495 */
26496 function open(code) {
26497 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark) {
26498 effects.consume(code)
26499 return declarationOpen
26500 }
26501
26502 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
26503 effects.consume(code)
26504 closingTag = true
26505 return tagCloseStart
26506 }
26507
26508 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark) {
26509 effects.consume(code)
26510 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction
26511 // To do:
26512 // tokenizer.concrete = true
26513 // To do: use `markdown-rs` style interrupt.
26514 // While we’re in an instruction instead of a declaration, we’re on a `?`
26515 // right now, so we do need to search for `>`, similar to declarations.
26516 return self.interrupt ? ok : continuationDeclarationInside
26517 }
26518
26519 // ASCII alphabetical.
26520 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26521 effects.consume(code)
26522 // @ts-expect-error: not null.
26523 buffer = String.fromCharCode(code)
26524 return tagName
26525 }
26526
26527 return nok(code)
26528 }
26529
26530 /**
26531 * After `<!`, at declaration, comment, or CDATA.
26532 *
26533 * ```markdown
26534 * > | <!doctype>
26535 * ^
26536 * > | <!--xxx-->
26537 * ^
26538 * > | <![CDATA[>&<]]>
26539 * ^
26540 * ```
26541 *
26542 * @type {State}
26543 */
26544 function declarationOpen(code) {
26545 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
26546 effects.consume(code)
26547 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment
26548 return commentOpenInside
26549 }
26550
26551 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {
26552 effects.consume(code)
26553 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata
26554 index = 0
26555 return cdataOpenInside
26556 }
26557
26558 // ASCII alphabetical.
26559 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26560 effects.consume(code)
26561 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration
26562 // // Do not form containers.
26563 // tokenizer.concrete = true
26564 return self.interrupt ? ok : continuationDeclarationInside
26565 }
26566
26567 return nok(code)
26568 }
26569
26570 /**
26571 * After `<!-`, inside a comment, at another `-`.
26572 *
26573 * ```markdown
26574 * > | <!--xxx-->
26575 * ^
26576 * ```
26577 *
26578 * @type {State}
26579 */
26580 function commentOpenInside(code) {
26581 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
26582 effects.consume(code)
26583 // // Do not form containers.
26584 // tokenizer.concrete = true
26585 return self.interrupt ? ok : continuationDeclarationInside
26586 }
26587
26588 return nok(code)
26589 }
26590
26591 /**
26592 * After `<![`, inside CDATA, expecting `CDATA[`.
26593 *
26594 * ```markdown
26595 * > | <![CDATA[>&<]]>
26596 * ^^^^^^
26597 * ```
26598 *
26599 * @type {State}
26600 */
26601 function cdataOpenInside(code) {
26602 const value = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.cdataOpeningString
26603
26604 if (code === value.charCodeAt(index++)) {
26605 effects.consume(code)
26606
26607 if (index === value.length) {
26608 // // Do not form containers.
26609 // tokenizer.concrete = true
26610 return self.interrupt ? ok : continuation
26611 }
26612
26613 return cdataOpenInside
26614 }
26615
26616 return nok(code)
26617 }
26618
26619 /**
26620 * After `</`, in closing tag, at tag name.
26621 *
26622 * ```markdown
26623 * > | </x>
26624 * ^
26625 * ```
26626 *
26627 * @type {State}
26628 */
26629 function tagCloseStart(code) {
26630 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26631 effects.consume(code)
26632 // @ts-expect-error: not null.
26633 buffer = String.fromCharCode(code)
26634 return tagName
26635 }
26636
26637 return nok(code)
26638 }
26639
26640 /**
26641 * In tag name.
26642 *
26643 * ```markdown
26644 * > | <ab>
26645 * ^^
26646 * > | </ab>
26647 * ^^
26648 * ```
26649 *
26650 * @type {State}
26651 */
26652 function tagName(code) {
26653 if (
26654 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26655 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26656 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26657 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)
26658 ) {
26659 const slash = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash
26660 const name = buffer.toLowerCase()
26661
26662 if (!slash && !closingTag && micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {
26663 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw
26664 // // Do not form containers.
26665 // tokenizer.concrete = true
26666 return self.interrupt ? ok(code) : continuation(code)
26667 }
26668
26669 if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlBlockNames.includes(buffer.toLowerCase())) {
26670 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic
26671
26672 if (slash) {
26673 effects.consume(code)
26674 return basicSelfClosing
26675 }
26676
26677 // // Do not form containers.
26678 // tokenizer.concrete = true
26679 return self.interrupt ? ok(code) : continuation(code)
26680 }
26681
26682 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete
26683 // Do not support complete HTML when interrupting.
26684 return self.interrupt && !self.parser.lazy[self.now().line]
26685 ? nok(code)
26686 : closingTag
26687 ? completeClosingTagAfter(code)
26688 : completeAttributeNameBefore(code)
26689 }
26690
26691 // ASCII alphanumerical and `-`.
26692 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)) {
26693 effects.consume(code)
26694 buffer += String.fromCharCode(code)
26695 return tagName
26696 }
26697
26698 return nok(code)
26699 }
26700
26701 /**
26702 * After closing slash of a basic tag name.
26703 *
26704 * ```markdown
26705 * > | <div/>
26706 * ^
26707 * ```
26708 *
26709 * @type {State}
26710 */
26711 function basicSelfClosing(code) {
26712 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
26713 effects.consume(code)
26714 // // Do not form containers.
26715 // tokenizer.concrete = true
26716 return self.interrupt ? ok : continuation
26717 }
26718
26719 return nok(code)
26720 }
26721
26722 /**
26723 * After closing slash of a complete tag name.
26724 *
26725 * ```markdown
26726 * > | <x/>
26727 * ^
26728 * ```
26729 *
26730 * @type {State}
26731 */
26732 function completeClosingTagAfter(code) {
26733 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26734 effects.consume(code)
26735 return completeClosingTagAfter
26736 }
26737
26738 return completeEnd(code)
26739 }
26740
26741 /**
26742 * At an attribute name.
26743 *
26744 * At first, this state is used after a complete tag name, after whitespace,
26745 * where it expects optional attributes or the end of the tag.
26746 * It is also reused after attributes, when expecting more optional
26747 * attributes.
26748 *
26749 * ```markdown
26750 * > | <a />
26751 * ^
26752 * > | <a :b>
26753 * ^
26754 * > | <a _b>
26755 * ^
26756 * > | <a b>
26757 * ^
26758 * > | <a >
26759 * ^
26760 * ```
26761 *
26762 * @type {State}
26763 */
26764 function completeAttributeNameBefore(code) {
26765 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
26766 effects.consume(code)
26767 return completeEnd
26768 }
26769
26770 // ASCII alphanumerical and `:` and `_`.
26771 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)) {
26772 effects.consume(code)
26773 return completeAttributeName
26774 }
26775
26776 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26777 effects.consume(code)
26778 return completeAttributeNameBefore
26779 }
26780
26781 return completeEnd(code)
26782 }
26783
26784 /**
26785 * In attribute name.
26786 *
26787 * ```markdown
26788 * > | <a :b>
26789 * ^
26790 * > | <a _b>
26791 * ^
26792 * > | <a b>
26793 * ^
26794 * ```
26795 *
26796 * @type {State}
26797 */
26798 function completeAttributeName(code) {
26799 // ASCII alphanumerical and `-`, `.`, `:`, and `_`.
26800 if (
26801 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||
26802 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dot ||
26803 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon ||
26804 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore ||
26805 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)
26806 ) {
26807 effects.consume(code)
26808 return completeAttributeName
26809 }
26810
26811 return completeAttributeNameAfter(code)
26812 }
26813
26814 /**
26815 * After attribute name, at an optional initializer, the end of the tag, or
26816 * whitespace.
26817 *
26818 * ```markdown
26819 * > | <a b>
26820 * ^
26821 * > | <a b=c>
26822 * ^
26823 * ```
26824 *
26825 * @type {State}
26826 */
26827 function completeAttributeNameAfter(code) {
26828 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo) {
26829 effects.consume(code)
26830 return completeAttributeValueBefore
26831 }
26832
26833 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26834 effects.consume(code)
26835 return completeAttributeNameAfter
26836 }
26837
26838 return completeAttributeNameBefore(code)
26839 }
26840
26841 /**
26842 * Before unquoted, double quoted, or single quoted attribute value, allowing
26843 * whitespace.
26844 *
26845 * ```markdown
26846 * > | <a b=c>
26847 * ^
26848 * > | <a b="c">
26849 * ^
26850 * ```
26851 *
26852 * @type {State}
26853 */
26854 function completeAttributeValueBefore(code) {
26855 if (
26856 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26857 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||
26858 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||
26859 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26860 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent
26861 ) {
26862 return nok(code)
26863 }
26864
26865 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) {
26866 effects.consume(code)
26867 markerB = code
26868 return completeAttributeValueQuoted
26869 }
26870
26871 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26872 effects.consume(code)
26873 return completeAttributeValueBefore
26874 }
26875
26876 return completeAttributeValueUnquoted(code)
26877 }
26878
26879 /**
26880 * In double or single quoted attribute value.
26881 *
26882 * ```markdown
26883 * > | <a b="c">
26884 * ^
26885 * > | <a b='c'>
26886 * ^
26887 * ```
26888 *
26889 * @type {State}
26890 */
26891 function completeAttributeValueQuoted(code) {
26892 if (code === markerB) {
26893 effects.consume(code)
26894 markerB = null
26895 return completeAttributeValueQuotedAfter
26896 }
26897
26898 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
26899 return nok(code)
26900 }
26901
26902 effects.consume(code)
26903 return completeAttributeValueQuoted
26904 }
26905
26906 /**
26907 * In unquoted attribute value.
26908 *
26909 * ```markdown
26910 * > | <a b=c>
26911 * ^
26912 * ```
26913 *
26914 * @type {State}
26915 */
26916 function completeAttributeValueUnquoted(code) {
26917 if (
26918 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26919 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark ||
26920 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe ||
26921 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26922 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||
26923 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||
26924 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26925 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
26926 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)
26927 ) {
26928 return completeAttributeNameAfter(code)
26929 }
26930
26931 effects.consume(code)
26932 return completeAttributeValueUnquoted
26933 }
26934
26935 /**
26936 * After double or single quoted attribute value, before whitespace or the
26937 * end of the tag.
26938 *
26939 * ```markdown
26940 * > | <a b="c">
26941 * ^
26942 * ```
26943 *
26944 * @type {State}
26945 */
26946 function completeAttributeValueQuotedAfter(code) {
26947 if (
26948 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26949 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26950 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
26951 ) {
26952 return completeAttributeNameBefore(code)
26953 }
26954
26955 return nok(code)
26956 }
26957
26958 /**
26959 * In certain circumstances of a complete tag where only an `>` is allowed.
26960 *
26961 * ```markdown
26962 * > | <a b="c">
26963 * ^
26964 * ```
26965 *
26966 * @type {State}
26967 */
26968 function completeEnd(code) {
26969 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
26970 effects.consume(code)
26971 return completeAfter
26972 }
26973
26974 return nok(code)
26975 }
26976
26977 /**
26978 * After `>` in a complete tag.
26979 *
26980 * ```markdown
26981 * > | <x>
26982 * ^
26983 * ```
26984 *
26985 * @type {State}
26986 */
26987 function completeAfter(code) {
26988 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
26989 // // Do not form containers.
26990 // tokenizer.concrete = true
26991 return continuation(code)
26992 }
26993
26994 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26995 effects.consume(code)
26996 return completeAfter
26997 }
26998
26999 return nok(code)
27000 }
27001
27002 /**
27003 * In continuation of any HTML kind.
27004 *
27005 * ```markdown
27006 * > | <!--xxx-->
27007 * ^
27008 * ```
27009 *
27010 * @type {State}
27011 */
27012 function continuation(code) {
27013 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) {
27014 effects.consume(code)
27015 return continuationCommentInside
27016 }
27017
27018 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) {
27019 effects.consume(code)
27020 return continuationRawTagOpen
27021 }
27022
27023 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) {
27024 effects.consume(code)
27025 return continuationClose
27026 }
27027
27028 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) {
27029 effects.consume(code)
27030 return continuationDeclarationInside
27031 }
27032
27033 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) {
27034 effects.consume(code)
27035 return continuationCdataInside
27036 }
27037
27038 if (
27039 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code) &&
27040 (marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic || marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete)
27041 ) {
27042 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27043 return effects.check(
27044 blankLineBefore,
27045 continuationAfter,
27046 continuationStart
27047 )(code)
27048 }
27049
27050 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27051 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27052 return continuationStart(code)
27053 }
27054
27055 effects.consume(code)
27056 return continuation
27057 }
27058
27059 /**
27060 * In continuation, at eol.
27061 *
27062 * ```markdown
27063 * > | <x>
27064 * ^
27065 * | asd
27066 * ```
27067 *
27068 * @type {State}
27069 */
27070 function continuationStart(code) {
27071 return effects.check(
27072 nonLazyContinuationStart,
27073 continuationStartNonLazy,
27074 continuationAfter
27075 )(code)
27076 }
27077
27078 /**
27079 * In continuation, at eol, before non-lazy content.
27080 *
27081 * ```markdown
27082 * > | <x>
27083 * ^
27084 * | asd
27085 * ```
27086 *
27087 * @type {State}
27088 */
27089 function continuationStartNonLazy(code) {
27090 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))
27091 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27092 effects.consume(code)
27093 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27094 return continuationBefore
27095 }
27096
27097 /**
27098 * In continuation, before non-lazy content.
27099 *
27100 * ```markdown
27101 * | <x>
27102 * > | asd
27103 * ^
27104 * ```
27105 *
27106 * @type {State}
27107 */
27108 function continuationBefore(code) {
27109 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27110 return continuationStart(code)
27111 }
27112
27113 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27114 return continuation(code)
27115 }
27116
27117 /**
27118 * In comment continuation, after one `-`, expecting another.
27119 *
27120 * ```markdown
27121 * > | <!--xxx-->
27122 * ^
27123 * ```
27124 *
27125 * @type {State}
27126 */
27127 function continuationCommentInside(code) {
27128 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
27129 effects.consume(code)
27130 return continuationDeclarationInside
27131 }
27132
27133 return continuation(code)
27134 }
27135
27136 /**
27137 * In raw continuation, after `<`, at `/`.
27138 *
27139 * ```markdown
27140 * > | <script>console.log(1)</script>
27141 * ^
27142 * ```
27143 *
27144 * @type {State}
27145 */
27146 function continuationRawTagOpen(code) {
27147 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
27148 effects.consume(code)
27149 buffer = ''
27150 return continuationRawEndTag
27151 }
27152
27153 return continuation(code)
27154 }
27155
27156 /**
27157 * In raw continuation, after `</`, in a raw tag name.
27158 *
27159 * ```markdown
27160 * > | <script>console.log(1)</script>
27161 * ^^^^^^
27162 * ```
27163 *
27164 * @type {State}
27165 */
27166 function continuationRawEndTag(code) {
27167 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27168 const name = buffer.toLowerCase()
27169
27170 if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {
27171 effects.consume(code)
27172 return continuationClose
27173 }
27174
27175 return continuation(code)
27176 }
27177
27178 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code) && buffer.length < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRawSizeMax) {
27179 effects.consume(code)
27180 // @ts-expect-error: not null.
27181 buffer += String.fromCharCode(code)
27182 return continuationRawEndTag
27183 }
27184
27185 return continuation(code)
27186 }
27187
27188 /**
27189 * In cdata continuation, after `]`, expecting `]>`.
27190 *
27191 * ```markdown
27192 * > | <![CDATA[>&<]]>
27193 * ^
27194 * ```
27195 *
27196 * @type {State}
27197 */
27198 function continuationCdataInside(code) {
27199 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightSquareBracket) {
27200 effects.consume(code)
27201 return continuationDeclarationInside
27202 }
27203
27204 return continuation(code)
27205 }
27206
27207 /**
27208 * In declaration or instruction continuation, at `>`.
27209 *
27210 * ```markdown
27211 * > | <!-->
27212 * ^
27213 * > | <?>
27214 * ^
27215 * > | <!q>
27216 * ^
27217 * > | <!--ab-->
27218 * ^
27219 * > | <![CDATA[>&<]]>
27220 * ^
27221 * ```
27222 *
27223 * @type {State}
27224 */
27225 function continuationDeclarationInside(code) {
27226 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27227 effects.consume(code)
27228 return continuationClose
27229 }
27230
27231 // More dashes.
27232 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) {
27233 effects.consume(code)
27234 return continuationDeclarationInside
27235 }
27236
27237 return continuation(code)
27238 }
27239
27240 /**
27241 * In closed continuation: everything we get until the eol/eof is part of it.
27242 *
27243 * ```markdown
27244 * > | <!doctype>
27245 * ^
27246 * ```
27247 *
27248 * @type {State}
27249 */
27250 function continuationClose(code) {
27251 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27252 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27253 return continuationAfter(code)
27254 }
27255
27256 effects.consume(code)
27257 return continuationClose
27258 }
27259
27260 /**
27261 * Done.
27262 *
27263 * ```markdown
27264 * > | <!doctype>
27265 * ^
27266 * ```
27267 *
27268 * @type {State}
27269 */
27270 function continuationAfter(code) {
27271 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow)
27272 // // Feel free to interrupt.
27273 // tokenizer.interrupt = false
27274 // // No longer concrete.
27275 // tokenizer.concrete = false
27276 return ok(code)
27277 }
27278 }
27279
27280 /**
27281 * @this {TokenizeContext}
27282 * @type {Tokenizer}
27283 */
27284 function tokenizeNonLazyContinuationStart(effects, ok, nok) {
27285 const self = this
27286
27287 return start
27288
27289 /**
27290 * At eol, before continuation.
27291 *
27292 * ```markdown
27293 * > | * ```js
27294 * ^
27295 * | b
27296 * ```
27297 *
27298 * @type {State}
27299 */
27300 function start(code) {
27301 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27302 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27303 effects.consume(code)
27304 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27305 return after
27306 }
27307
27308 return nok(code)
27309 }
27310
27311 /**
27312 * A continuation.
27313 *
27314 * ```markdown
27315 * | * ```js
27316 * > | b
27317 * ^
27318 * ```
27319 *
27320 * @type {State}
27321 */
27322 function after(code) {
27323 return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
27324 }
27325 }
27326
27327 /**
27328 * @this {TokenizeContext}
27329 * @type {Tokenizer}
27330 */
27331 function tokenizeBlankLineBefore(effects, ok, nok) {
27332 return start
27333
27334 /**
27335 * Before eol, expecting blank line.
27336 *
27337 * ```markdown
27338 * > | <div>
27339 * ^
27340 * |
27341 * ```
27342 *
27343 * @type {State}
27344 */
27345 function start(code) {
27346 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected a line ending')
27347 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27348 effects.consume(code)
27349 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27350 return effects.attempt(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, ok, nok)
27351 }
27352 }
27353
27354
27355 /***/ }),
27356
27357 /***/ "../node_modules/micromark-core-commonmark/dev/lib/html-text.js":
27358 /*!**********************************************************************!*\
27359 !*** ../node_modules/micromark-core-commonmark/dev/lib/html-text.js ***!
27360 \**********************************************************************/
27361 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
27362
27363 "use strict";
27364 __webpack_require__.r(__webpack_exports__);
27365 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
27366 /* harmony export */ htmlText: () => (/* binding */ htmlText)
27367 /* harmony export */ });
27368 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
27369 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
27370 /* 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");
27371 /* 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");
27372 /* 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");
27373 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
27374 /**
27375 * @typedef {import('micromark-util-types').Code} Code
27376 * @typedef {import('micromark-util-types').Construct} Construct
27377 * @typedef {import('micromark-util-types').State} State
27378 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
27379 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
27380 */
27381
27382
27383
27384
27385
27386
27387
27388
27389 /** @type {Construct} */
27390 const htmlText = {name: 'htmlText', tokenize: tokenizeHtmlText}
27391
27392 /**
27393 * @this {TokenizeContext}
27394 * @type {Tokenizer}
27395 */
27396 function tokenizeHtmlText(effects, ok, nok) {
27397 const self = this
27398 /** @type {NonNullable<Code> | undefined} */
27399 let marker
27400 /** @type {number} */
27401 let index
27402 /** @type {State} */
27403 let returnState
27404
27405 return start
27406
27407 /**
27408 * Start of HTML (text).
27409 *
27410 * ```markdown
27411 * > | a <b> c
27412 * ^
27413 * ```
27414 *
27415 * @type {State}
27416 */
27417 function start(code) {
27418 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')
27419 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlText)
27420 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
27421 effects.consume(code)
27422 return open
27423 }
27424
27425 /**
27426 * After `<`, at tag name or other stuff.
27427 *
27428 * ```markdown
27429 * > | a <b> c
27430 * ^
27431 * > | a <!doctype> c
27432 * ^
27433 * > | a <!--b--> c
27434 * ^
27435 * ```
27436 *
27437 * @type {State}
27438 */
27439 function open(code) {
27440 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.exclamationMark) {
27441 effects.consume(code)
27442 return declarationOpen
27443 }
27444
27445 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {
27446 effects.consume(code)
27447 return tagCloseStart
27448 }
27449
27450 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {
27451 effects.consume(code)
27452 return instruction
27453 }
27454
27455 // ASCII alphabetical.
27456 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27457 effects.consume(code)
27458 return tagOpen
27459 }
27460
27461 return nok(code)
27462 }
27463
27464 /**
27465 * After `<!`, at declaration, comment, or CDATA.
27466 *
27467 * ```markdown
27468 * > | a <!doctype> c
27469 * ^
27470 * > | a <!--b--> c
27471 * ^
27472 * > | a <![CDATA[>&<]]> c
27473 * ^
27474 * ```
27475 *
27476 * @type {State}
27477 */
27478 function declarationOpen(code) {
27479 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27480 effects.consume(code)
27481 return commentOpenInside
27482 }
27483
27484 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket) {
27485 effects.consume(code)
27486 index = 0
27487 return cdataOpenInside
27488 }
27489
27490 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27491 effects.consume(code)
27492 return declaration
27493 }
27494
27495 return nok(code)
27496 }
27497
27498 /**
27499 * In a comment, after `<!-`, at another `-`.
27500 *
27501 * ```markdown
27502 * > | a <!--b--> c
27503 * ^
27504 * ```
27505 *
27506 * @type {State}
27507 */
27508 function commentOpenInside(code) {
27509 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27510 effects.consume(code)
27511 return commentEnd
27512 }
27513
27514 return nok(code)
27515 }
27516
27517 /**
27518 * In comment.
27519 *
27520 * ```markdown
27521 * > | a <!--b--> c
27522 * ^
27523 * ```
27524 *
27525 * @type {State}
27526 */
27527 function comment(code) {
27528 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27529 return nok(code)
27530 }
27531
27532 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27533 effects.consume(code)
27534 return commentClose
27535 }
27536
27537 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27538 returnState = comment
27539 return lineEndingBefore(code)
27540 }
27541
27542 effects.consume(code)
27543 return comment
27544 }
27545
27546 /**
27547 * In comment, after `-`.
27548 *
27549 * ```markdown
27550 * > | a <!--b--> c
27551 * ^
27552 * ```
27553 *
27554 * @type {State}
27555 */
27556 function commentClose(code) {
27557 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27558 effects.consume(code)
27559 return commentEnd
27560 }
27561
27562 return comment(code)
27563 }
27564
27565 /**
27566 * In comment, after `--`.
27567 *
27568 * ```markdown
27569 * > | a <!--b--> c
27570 * ^
27571 * ```
27572 *
27573 * @type {State}
27574 */
27575 function commentEnd(code) {
27576 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan
27577 ? end(code)
27578 : code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash
27579 ? commentClose(code)
27580 : comment(code)
27581 }
27582
27583 /**
27584 * After `<![`, in CDATA, expecting `CDATA[`.
27585 *
27586 * ```markdown
27587 * > | a <![CDATA[>&<]]> b
27588 * ^^^^^^
27589 * ```
27590 *
27591 * @type {State}
27592 */
27593 function cdataOpenInside(code) {
27594 const value = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.cdataOpeningString
27595
27596 if (code === value.charCodeAt(index++)) {
27597 effects.consume(code)
27598 return index === value.length ? cdata : cdataOpenInside
27599 }
27600
27601 return nok(code)
27602 }
27603
27604 /**
27605 * In CDATA.
27606 *
27607 * ```markdown
27608 * > | a <![CDATA[>&<]]> b
27609 * ^^^
27610 * ```
27611 *
27612 * @type {State}
27613 */
27614 function cdata(code) {
27615 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27616 return nok(code)
27617 }
27618
27619 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27620 effects.consume(code)
27621 return cdataClose
27622 }
27623
27624 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27625 returnState = cdata
27626 return lineEndingBefore(code)
27627 }
27628
27629 effects.consume(code)
27630 return cdata
27631 }
27632
27633 /**
27634 * In CDATA, after `]`, at another `]`.
27635 *
27636 * ```markdown
27637 * > | a <![CDATA[>&<]]> b
27638 * ^
27639 * ```
27640 *
27641 * @type {State}
27642 */
27643 function cdataClose(code) {
27644 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27645 effects.consume(code)
27646 return cdataEnd
27647 }
27648
27649 return cdata(code)
27650 }
27651
27652 /**
27653 * In CDATA, after `]]`, at `>`.
27654 *
27655 * ```markdown
27656 * > | a <![CDATA[>&<]]> b
27657 * ^
27658 * ```
27659 *
27660 * @type {State}
27661 */
27662 function cdataEnd(code) {
27663 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
27664 return end(code)
27665 }
27666
27667 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27668 effects.consume(code)
27669 return cdataEnd
27670 }
27671
27672 return cdata(code)
27673 }
27674
27675 /**
27676 * In declaration.
27677 *
27678 * ```markdown
27679 * > | a <!b> c
27680 * ^
27681 * ```
27682 *
27683 * @type {State}
27684 */
27685 function declaration(code) {
27686 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) {
27687 return end(code)
27688 }
27689
27690 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27691 returnState = declaration
27692 return lineEndingBefore(code)
27693 }
27694
27695 effects.consume(code)
27696 return declaration
27697 }
27698
27699 /**
27700 * In instruction.
27701 *
27702 * ```markdown
27703 * > | a <?b?> c
27704 * ^
27705 * ```
27706 *
27707 * @type {State}
27708 */
27709 function instruction(code) {
27710 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27711 return nok(code)
27712 }
27713
27714 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {
27715 effects.consume(code)
27716 return instructionClose
27717 }
27718
27719 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27720 returnState = instruction
27721 return lineEndingBefore(code)
27722 }
27723
27724 effects.consume(code)
27725 return instruction
27726 }
27727
27728 /**
27729 * In instruction, after `?`, at `>`.
27730 *
27731 * ```markdown
27732 * > | a <?b?> c
27733 * ^
27734 * ```
27735 *
27736 * @type {State}
27737 */
27738 function instructionClose(code) {
27739 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ? end(code) : instruction(code)
27740 }
27741
27742 /**
27743 * After `</`, in closing tag, at tag name.
27744 *
27745 * ```markdown
27746 * > | a </b> c
27747 * ^
27748 * ```
27749 *
27750 * @type {State}
27751 */
27752 function tagCloseStart(code) {
27753 // ASCII alphabetical.
27754 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27755 effects.consume(code)
27756 return tagClose
27757 }
27758
27759 return nok(code)
27760 }
27761
27762 /**
27763 * After `</x`, in a tag name.
27764 *
27765 * ```markdown
27766 * > | a </b> c
27767 * ^
27768 * ```
27769 *
27770 * @type {State}
27771 */
27772 function tagClose(code) {
27773 // ASCII alphanumerical and `-`.
27774 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {
27775 effects.consume(code)
27776 return tagClose
27777 }
27778
27779 return tagCloseBetween(code)
27780 }
27781
27782 /**
27783 * In closing tag, after tag name.
27784 *
27785 * ```markdown
27786 * > | a </b> c
27787 * ^
27788 * ```
27789 *
27790 * @type {State}
27791 */
27792 function tagCloseBetween(code) {
27793 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27794 returnState = tagCloseBetween
27795 return lineEndingBefore(code)
27796 }
27797
27798 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27799 effects.consume(code)
27800 return tagCloseBetween
27801 }
27802
27803 return end(code)
27804 }
27805
27806 /**
27807 * After `<x`, in opening tag name.
27808 *
27809 * ```markdown
27810 * > | a <b> c
27811 * ^
27812 * ```
27813 *
27814 * @type {State}
27815 */
27816 function tagOpen(code) {
27817 // ASCII alphanumerical and `-`.
27818 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {
27819 effects.consume(code)
27820 return tagOpen
27821 }
27822
27823 if (
27824 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
27825 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
27826 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
27827 ) {
27828 return tagOpenBetween(code)
27829 }
27830
27831 return nok(code)
27832 }
27833
27834 /**
27835 * In opening tag, after tag name.
27836 *
27837 * ```markdown
27838 * > | a <b> c
27839 * ^
27840 * ```
27841 *
27842 * @type {State}
27843 */
27844 function tagOpenBetween(code) {
27845 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {
27846 effects.consume(code)
27847 return end
27848 }
27849
27850 // ASCII alphabetical and `:` and `_`.
27851 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)) {
27852 effects.consume(code)
27853 return tagOpenAttributeName
27854 }
27855
27856 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27857 returnState = tagOpenBetween
27858 return lineEndingBefore(code)
27859 }
27860
27861 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27862 effects.consume(code)
27863 return tagOpenBetween
27864 }
27865
27866 return end(code)
27867 }
27868
27869 /**
27870 * In attribute name.
27871 *
27872 * ```markdown
27873 * > | a <b c> d
27874 * ^
27875 * ```
27876 *
27877 * @type {State}
27878 */
27879 function tagOpenAttributeName(code) {
27880 // ASCII alphabetical and `-`, `.`, `:`, and `_`.
27881 if (
27882 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
27883 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
27884 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon ||
27885 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.underscore ||
27886 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)
27887 ) {
27888 effects.consume(code)
27889 return tagOpenAttributeName
27890 }
27891
27892 return tagOpenAttributeNameAfter(code)
27893 }
27894
27895 /**
27896 * After attribute name, before initializer, the end of the tag, or
27897 * whitespace.
27898 *
27899 * ```markdown
27900 * > | a <b c> d
27901 * ^
27902 * ```
27903 *
27904 * @type {State}
27905 */
27906 function tagOpenAttributeNameAfter(code) {
27907 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo) {
27908 effects.consume(code)
27909 return tagOpenAttributeValueBefore
27910 }
27911
27912 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27913 returnState = tagOpenAttributeNameAfter
27914 return lineEndingBefore(code)
27915 }
27916
27917 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27918 effects.consume(code)
27919 return tagOpenAttributeNameAfter
27920 }
27921
27922 return tagOpenBetween(code)
27923 }
27924
27925 /**
27926 * Before unquoted, double quoted, or single quoted attribute value, allowing
27927 * whitespace.
27928 *
27929 * ```markdown
27930 * > | a <b c=d> e
27931 * ^
27932 * ```
27933 *
27934 * @type {State}
27935 */
27936 function tagOpenAttributeValueBefore(code) {
27937 if (
27938 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
27939 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
27940 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo ||
27941 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
27942 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent
27943 ) {
27944 return nok(code)
27945 }
27946
27947 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) {
27948 effects.consume(code)
27949 marker = code
27950 return tagOpenAttributeValueQuoted
27951 }
27952
27953 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27954 returnState = tagOpenAttributeValueBefore
27955 return lineEndingBefore(code)
27956 }
27957
27958 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27959 effects.consume(code)
27960 return tagOpenAttributeValueBefore
27961 }
27962
27963 effects.consume(code)
27964 return tagOpenAttributeValueUnquoted
27965 }
27966
27967 /**
27968 * In double or single quoted attribute value.
27969 *
27970 * ```markdown
27971 * > | a <b c="d"> e
27972 * ^
27973 * ```
27974 *
27975 * @type {State}
27976 */
27977 function tagOpenAttributeValueQuoted(code) {
27978 if (code === marker) {
27979 effects.consume(code)
27980 marker = undefined
27981 return tagOpenAttributeValueQuotedAfter
27982 }
27983
27984 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27985 return nok(code)
27986 }
27987
27988 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27989 returnState = tagOpenAttributeValueQuoted
27990 return lineEndingBefore(code)
27991 }
27992
27993 effects.consume(code)
27994 return tagOpenAttributeValueQuoted
27995 }
27996
27997 /**
27998 * In unquoted attribute value.
27999 *
28000 * ```markdown
28001 * > | a <b c=d> e
28002 * ^
28003 * ```
28004 *
28005 * @type {State}
28006 */
28007 function tagOpenAttributeValueUnquoted(code) {
28008 if (
28009 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
28010 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.quotationMark ||
28011 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.apostrophe ||
28012 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
28013 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo ||
28014 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent
28015 ) {
28016 return nok(code)
28017 }
28018
28019 if (
28020 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
28021 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
28022 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
28023 ) {
28024 return tagOpenBetween(code)
28025 }
28026
28027 effects.consume(code)
28028 return tagOpenAttributeValueUnquoted
28029 }
28030
28031 /**
28032 * After double or single quoted attribute value, before whitespace or the end
28033 * of the tag.
28034 *
28035 * ```markdown
28036 * > | a <b c="d"> e
28037 * ^
28038 * ```
28039 *
28040 * @type {State}
28041 */
28042 function tagOpenAttributeValueQuotedAfter(code) {
28043 if (
28044 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
28045 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
28046 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
28047 ) {
28048 return tagOpenBetween(code)
28049 }
28050
28051 return nok(code)
28052 }
28053
28054 /**
28055 * In certain circumstances of a tag where only an `>` is allowed.
28056 *
28057 * ```markdown
28058 * > | a <b c="d"> e
28059 * ^
28060 * ```
28061 *
28062 * @type {State}
28063 */
28064 function end(code) {
28065 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
28066 effects.consume(code)
28067 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28068 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlText)
28069 return ok
28070 }
28071
28072 return nok(code)
28073 }
28074
28075 /**
28076 * At eol.
28077 *
28078 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28079 * > empty tokens.
28080 *
28081 * ```markdown
28082 * > | a <!--a
28083 * ^
28084 * | b-->
28085 * ```
28086 *
28087 * @type {State}
28088 */
28089 function lineEndingBefore(code) {
28090 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(returnState, 'expected return state')
28091 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected eol')
28092 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28093 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
28094 effects.consume(code)
28095 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
28096 return lineEndingAfter
28097 }
28098
28099 /**
28100 * After eol, at optional whitespace.
28101 *
28102 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28103 * > empty tokens.
28104 *
28105 * ```markdown
28106 * | a <!--a
28107 * > | b-->
28108 * ^
28109 * ```
28110 *
28111 * @type {State}
28112 */
28113 function lineEndingAfter(code) {
28114 // Always populated by defaults.
28115 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
28116 self.parser.constructs.disable.null,
28117 'expected `disable.null` to be populated'
28118 )
28119 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
28120 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
28121 effects,
28122 lineEndingAfterPrefix,
28123 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
28124 self.parser.constructs.disable.null.includes('codeIndented')
28125 ? undefined
28126 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
28127 )(code)
28128 : lineEndingAfterPrefix(code)
28129 }
28130
28131 /**
28132 * After eol, after optional whitespace.
28133 *
28134 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28135 * > empty tokens.
28136 *
28137 * ```markdown
28138 * | a <!--a
28139 * > | b-->
28140 * ^
28141 * ```
28142 *
28143 * @type {State}
28144 */
28145 function lineEndingAfterPrefix(code) {
28146 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28147 return returnState(code)
28148 }
28149 }
28150
28151
28152 /***/ }),
28153
28154 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-end.js":
28155 /*!**********************************************************************!*\
28156 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-end.js ***!
28157 \**********************************************************************/
28158 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28159
28160 "use strict";
28161 __webpack_require__.r(__webpack_exports__);
28162 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28163 /* harmony export */ labelEnd: () => (/* binding */ labelEnd)
28164 /* harmony export */ });
28165 /* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-destination */ "../node_modules/micromark-factory-destination/dev/index.js");
28166 /* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-factory-label */ "../node_modules/micromark-factory-label/dev/index.js");
28167 /* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-factory-title */ "../node_modules/micromark-factory-title/dev/index.js");
28168 /* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-whitespace */ "../node_modules/micromark-factory-whitespace/dev/index.js");
28169 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
28170 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
28171 /* 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");
28172 /* 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");
28173 /* 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");
28174 /* 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");
28175 /* 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");
28176 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28177 /**
28178 * @typedef {import('micromark-util-types').Construct} Construct
28179 * @typedef {import('micromark-util-types').Event} Event
28180 * @typedef {import('micromark-util-types').Resolver} Resolver
28181 * @typedef {import('micromark-util-types').State} State
28182 * @typedef {import('micromark-util-types').Token} Token
28183 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28184 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28185 */
28186
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200 /** @type {Construct} */
28201 const labelEnd = {
28202 name: 'labelEnd',
28203 tokenize: tokenizeLabelEnd,
28204 resolveTo: resolveToLabelEnd,
28205 resolveAll: resolveAllLabelEnd
28206 }
28207
28208 /** @type {Construct} */
28209 const resourceConstruct = {tokenize: tokenizeResource}
28210 /** @type {Construct} */
28211 const referenceFullConstruct = {tokenize: tokenizeReferenceFull}
28212 /** @type {Construct} */
28213 const referenceCollapsedConstruct = {tokenize: tokenizeReferenceCollapsed}
28214
28215 /** @type {Resolver} */
28216 function resolveAllLabelEnd(events) {
28217 let index = -1
28218
28219 while (++index < events.length) {
28220 const token = events[index][1]
28221
28222 if (
28223 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ||
28224 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink ||
28225 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd
28226 ) {
28227 // Remove the marker.
28228 events.splice(index + 1, token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ? 4 : 2)
28229 token.type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.data
28230 index++
28231 }
28232 }
28233
28234 return events
28235 }
28236
28237 /** @type {Resolver} */
28238 function resolveToLabelEnd(events, context) {
28239 let index = events.length
28240 let offset = 0
28241 /** @type {Token} */
28242 let token
28243 /** @type {number | undefined} */
28244 let open
28245 /** @type {number | undefined} */
28246 let close
28247 /** @type {Array<Event>} */
28248 let media
28249
28250 // Find an opening.
28251 while (index--) {
28252 token = events[index][1]
28253
28254 if (open) {
28255 // If we see another link, or inactive link label, we’ve been here before.
28256 if (
28257 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.link ||
28258 (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink && token._inactive)
28259 ) {
28260 break
28261 }
28262
28263 // Mark other link openings as inactive, as we can’t have links in
28264 // links.
28265 if (events[index][0] === 'enter' && token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) {
28266 token._inactive = true
28267 }
28268 } else if (close) {
28269 if (
28270 events[index][0] === 'enter' &&
28271 (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) &&
28272 !token._balanced
28273 ) {
28274 open = index
28275
28276 if (token.type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) {
28277 offset = 2
28278 break
28279 }
28280 }
28281 } else if (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd) {
28282 close = index
28283 }
28284 }
28285
28286 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(open !== undefined, '`open` is supposed to be found')
28287 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(close !== undefined, '`close` is supposed to be found')
28288
28289 const group = {
28290 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,
28291 start: Object.assign({}, events[open][1].start),
28292 end: Object.assign({}, events[events.length - 1][1].end)
28293 }
28294
28295 const label = {
28296 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.label,
28297 start: Object.assign({}, events[open][1].start),
28298 end: Object.assign({}, events[close][1].end)
28299 }
28300
28301 const text = {
28302 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelText,
28303 start: Object.assign({}, events[open + offset + 2][1].end),
28304 end: Object.assign({}, events[close - 2][1].start)
28305 }
28306
28307 media = [
28308 ['enter', group, context],
28309 ['enter', label, context]
28310 ]
28311
28312 // Opening marker.
28313 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(open + 1, open + offset + 3))
28314
28315 // Text open.
28316 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [['enter', text, context]])
28317
28318 // Always populated by defaults.
28319 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
28320 context.parser.constructs.insideSpan.null,
28321 'expected `insideSpan.null` to be populated'
28322 )
28323 // Between.
28324 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(
28325 media,
28326 (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(
28327 context.parser.constructs.insideSpan.null,
28328 events.slice(open + offset + 4, close - 3),
28329 context
28330 )
28331 )
28332
28333 // Text close, marker close, label close.
28334 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [
28335 ['exit', text, context],
28336 events[close - 2],
28337 events[close - 1],
28338 ['exit', label, context]
28339 ])
28340
28341 // Reference, resource, or so.
28342 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(close + 1))
28343
28344 // Media close.
28345 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [['exit', group, context]])
28346
28347 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open, events.length, media)
28348
28349 return events
28350 }
28351
28352 /**
28353 * @this {TokenizeContext}
28354 * @type {Tokenizer}
28355 */
28356 function tokenizeLabelEnd(effects, ok, nok) {
28357 const self = this
28358 let index = self.events.length
28359 /** @type {Token} */
28360 let labelStart
28361 /** @type {boolean} */
28362 let defined
28363
28364 // Find an opening.
28365 while (index--) {
28366 if (
28367 (self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ||
28368 self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) &&
28369 !self.events[index][1]._balanced
28370 ) {
28371 labelStart = self.events[index][1]
28372 break
28373 }
28374 }
28375
28376 return start
28377
28378 /**
28379 * Start of label end.
28380 *
28381 * ```markdown
28382 * > | [a](b) c
28383 * ^
28384 * > | [a][b] c
28385 * ^
28386 * > | [a][] b
28387 * ^
28388 * > | [a] b
28389 * ```
28390 *
28391 * @type {State}
28392 */
28393 function start(code) {
28394 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket, 'expected `]`')
28395
28396 // If there is not an okay opening.
28397 if (!labelStart) {
28398 return nok(code)
28399 }
28400
28401 // If the corresponding label (link) start is marked as inactive,
28402 // it means we’d be wrapping a link, like this:
28403 //
28404 // ```markdown
28405 // > | a [b [c](d) e](f) g.
28406 // ^
28407 // ```
28408 //
28409 // We can’t have that, so it’s just balanced brackets.
28410 if (labelStart._inactive) {
28411 return labelEndNok(code)
28412 }
28413
28414 defined = self.parser.defined.includes(
28415 (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(
28416 self.sliceSerialize({start: labelStart.end, end: self.now()})
28417 )
28418 )
28419 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd)
28420 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelMarker)
28421 effects.consume(code)
28422 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelMarker)
28423 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd)
28424 return after
28425 }
28426
28427 /**
28428 * After `]`.
28429 *
28430 * ```markdown
28431 * > | [a](b) c
28432 * ^
28433 * > | [a][b] c
28434 * ^
28435 * > | [a][] b
28436 * ^
28437 * > | [a] b
28438 * ^
28439 * ```
28440 *
28441 * @type {State}
28442 */
28443 function after(code) {
28444 // Note: `markdown-rs` also parses GFM footnotes here, which for us is in
28445 // an extension.
28446
28447 // Resource (`[asd](fgh)`)?
28448 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis) {
28449 return effects.attempt(
28450 resourceConstruct,
28451 labelEndOk,
28452 defined ? labelEndOk : labelEndNok
28453 )(code)
28454 }
28455
28456 // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?
28457 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket) {
28458 return effects.attempt(
28459 referenceFullConstruct,
28460 labelEndOk,
28461 defined ? referenceNotFull : labelEndNok
28462 )(code)
28463 }
28464
28465 // Shortcut (`[asd]`) reference?
28466 return defined ? labelEndOk(code) : labelEndNok(code)
28467 }
28468
28469 /**
28470 * After `]`, at `[`, but not at a full reference.
28471 *
28472 * > 👉 **Note**: we only get here if the label is defined.
28473 *
28474 * ```markdown
28475 * > | [a][] b
28476 * ^
28477 * > | [a] b
28478 * ^
28479 * ```
28480 *
28481 * @type {State}
28482 */
28483 function referenceNotFull(code) {
28484 return effects.attempt(
28485 referenceCollapsedConstruct,
28486 labelEndOk,
28487 labelEndNok
28488 )(code)
28489 }
28490
28491 /**
28492 * Done, we found something.
28493 *
28494 * ```markdown
28495 * > | [a](b) c
28496 * ^
28497 * > | [a][b] c
28498 * ^
28499 * > | [a][] b
28500 * ^
28501 * > | [a] b
28502 * ^
28503 * ```
28504 *
28505 * @type {State}
28506 */
28507 function labelEndOk(code) {
28508 // Note: `markdown-rs` does a bunch of stuff here.
28509 return ok(code)
28510 }
28511
28512 /**
28513 * Done, it’s nothing.
28514 *
28515 * There was an okay opening, but we didn’t match anything.
28516 *
28517 * ```markdown
28518 * > | [a](b c
28519 * ^
28520 * > | [a][b c
28521 * ^
28522 * > | [a] b
28523 * ^
28524 * ```
28525 *
28526 * @type {State}
28527 */
28528 function labelEndNok(code) {
28529 labelStart._balanced = true
28530 return nok(code)
28531 }
28532 }
28533
28534 /**
28535 * @this {TokenizeContext}
28536 * @type {Tokenizer}
28537 */
28538 function tokenizeResource(effects, ok, nok) {
28539 return resourceStart
28540
28541 /**
28542 * At a resource.
28543 *
28544 * ```markdown
28545 * > | [a](b) c
28546 * ^
28547 * ```
28548 *
28549 * @type {State}
28550 */
28551 function resourceStart(code) {
28552 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis, 'expected left paren')
28553 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resource)
28554 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28555 effects.consume(code)
28556 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28557 return resourceBefore
28558 }
28559
28560 /**
28561 * In resource, after `(`, at optional whitespace.
28562 *
28563 * ```markdown
28564 * > | [a](b) c
28565 * ^
28566 * ```
28567 *
28568 * @type {State}
28569 */
28570 function resourceBefore(code) {
28571 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28572 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceOpen)(code)
28573 : resourceOpen(code)
28574 }
28575
28576 /**
28577 * In resource, after optional whitespace, at `)` or a destination.
28578 *
28579 * ```markdown
28580 * > | [a](b) c
28581 * ^
28582 * ```
28583 *
28584 * @type {State}
28585 */
28586 function resourceOpen(code) {
28587 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {
28588 return resourceEnd(code)
28589 }
28590
28591 return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__.factoryDestination)(
28592 effects,
28593 resourceDestinationAfter,
28594 resourceDestinationMissing,
28595 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestination,
28596 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationLiteral,
28597 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationLiteralMarker,
28598 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationRaw,
28599 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationString,
28600 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_9__.constants.linkResourceDestinationBalanceMax
28601 )(code)
28602 }
28603
28604 /**
28605 * In resource, after destination, at optional whitespace.
28606 *
28607 * ```markdown
28608 * > | [a](b) c
28609 * ^
28610 * ```
28611 *
28612 * @type {State}
28613 */
28614 function resourceDestinationAfter(code) {
28615 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28616 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceBetween)(code)
28617 : resourceEnd(code)
28618 }
28619
28620 /**
28621 * At invalid destination.
28622 *
28623 * ```markdown
28624 * > | [a](<<) b
28625 * ^
28626 * ```
28627 *
28628 * @type {State}
28629 */
28630 function resourceDestinationMissing(code) {
28631 return nok(code)
28632 }
28633
28634 /**
28635 * In resource, after destination and whitespace, at `(` or title.
28636 *
28637 * ```markdown
28638 * > | [a](b ) c
28639 * ^
28640 * ```
28641 *
28642 * @type {State}
28643 */
28644 function resourceBetween(code) {
28645 if (
28646 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.quotationMark ||
28647 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.apostrophe ||
28648 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis
28649 ) {
28650 return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__.factoryTitle)(
28651 effects,
28652 resourceTitleAfter,
28653 nok,
28654 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitle,
28655 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitleMarker,
28656 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitleString
28657 )(code)
28658 }
28659
28660 return resourceEnd(code)
28661 }
28662
28663 /**
28664 * In resource, after title, at optional whitespace.
28665 *
28666 * ```markdown
28667 * > | [a](b "c") d
28668 * ^
28669 * ```
28670 *
28671 * @type {State}
28672 */
28673 function resourceTitleAfter(code) {
28674 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28675 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceEnd)(code)
28676 : resourceEnd(code)
28677 }
28678
28679 /**
28680 * In resource, at `)`.
28681 *
28682 * ```markdown
28683 * > | [a](b) d
28684 * ^
28685 * ```
28686 *
28687 * @type {State}
28688 */
28689 function resourceEnd(code) {
28690 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {
28691 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28692 effects.consume(code)
28693 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28694 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resource)
28695 return ok
28696 }
28697
28698 return nok(code)
28699 }
28700 }
28701
28702 /**
28703 * @this {TokenizeContext}
28704 * @type {Tokenizer}
28705 */
28706 function tokenizeReferenceFull(effects, ok, nok) {
28707 const self = this
28708
28709 return referenceFull
28710
28711 /**
28712 * In a reference (full), at the `[`.
28713 *
28714 * ```markdown
28715 * > | [a][b] d
28716 * ^
28717 * ```
28718 *
28719 * @type {State}
28720 */
28721 function referenceFull(code) {
28722 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, 'expected left bracket')
28723 return micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__.factoryLabel.call(
28724 self,
28725 effects,
28726 referenceFullAfter,
28727 referenceFullMissing,
28728 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference,
28729 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker,
28730 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceString
28731 )(code)
28732 }
28733
28734 /**
28735 * In a reference (full), after `]`.
28736 *
28737 * ```markdown
28738 * > | [a][b] d
28739 * ^
28740 * ```
28741 *
28742 * @type {State}
28743 */
28744 function referenceFullAfter(code) {
28745 return self.parser.defined.includes(
28746 (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(
28747 self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
28748 )
28749 )
28750 ? ok(code)
28751 : nok(code)
28752 }
28753
28754 /**
28755 * In reference (full) that was missing.
28756 *
28757 * ```markdown
28758 * > | [a][b d
28759 * ^
28760 * ```
28761 *
28762 * @type {State}
28763 */
28764 function referenceFullMissing(code) {
28765 return nok(code)
28766 }
28767 }
28768
28769 /**
28770 * @this {TokenizeContext}
28771 * @type {Tokenizer}
28772 */
28773 function tokenizeReferenceCollapsed(effects, ok, nok) {
28774 return referenceCollapsedStart
28775
28776 /**
28777 * In reference (collapsed), at `[`.
28778 *
28779 * > 👉 **Note**: we only get here if the label is defined.
28780 *
28781 * ```markdown
28782 * > | [a][] d
28783 * ^
28784 * ```
28785 *
28786 * @type {State}
28787 */
28788 function referenceCollapsedStart(code) {
28789 // We only attempt a collapsed label if there’s a `[`.
28790 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, 'expected left bracket')
28791 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference)
28792 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28793 effects.consume(code)
28794 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28795 return referenceCollapsedOpen
28796 }
28797
28798 /**
28799 * In reference (collapsed), at `]`.
28800 *
28801 * > 👉 **Note**: we only get here if the label is defined.
28802 *
28803 * ```markdown
28804 * > | [a][] d
28805 * ^
28806 * ```
28807 *
28808 * @type {State}
28809 */
28810 function referenceCollapsedOpen(code) {
28811 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket) {
28812 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28813 effects.consume(code)
28814 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28815 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference)
28816 return ok
28817 }
28818
28819 return nok(code)
28820 }
28821 }
28822
28823
28824 /***/ }),
28825
28826 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js":
28827 /*!******************************************************************************!*\
28828 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js ***!
28829 \******************************************************************************/
28830 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28831
28832 "use strict";
28833 __webpack_require__.r(__webpack_exports__);
28834 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28835 /* harmony export */ labelStartImage: () => (/* binding */ labelStartImage)
28836 /* harmony export */ });
28837 /* 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");
28838 /* 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");
28839 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28840 /* 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");
28841 /**
28842 * @typedef {import('micromark-util-types').Construct} Construct
28843 * @typedef {import('micromark-util-types').State} State
28844 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28845 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28846 */
28847
28848
28849
28850
28851
28852
28853 /** @type {Construct} */
28854 const labelStartImage = {
28855 name: 'labelStartImage',
28856 tokenize: tokenizeLabelStartImage,
28857 resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_1__.labelEnd.resolveAll
28858 }
28859
28860 /**
28861 * @this {TokenizeContext}
28862 * @type {Tokenizer}
28863 */
28864 function tokenizeLabelStartImage(effects, ok, nok) {
28865 const self = this
28866
28867 return start
28868
28869 /**
28870 * Start of label (image) start.
28871 *
28872 * ```markdown
28873 * > | a ![b] c
28874 * ^
28875 * ```
28876 *
28877 * @type {State}
28878 */
28879 function start(code) {
28880 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark, 'expected `!`')
28881 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImage)
28882 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker)
28883 effects.consume(code)
28884 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker)
28885 return open
28886 }
28887
28888 /**
28889 * After `!`, at `[`.
28890 *
28891 * ```markdown
28892 * > | a ![b] c
28893 * ^
28894 * ```
28895 *
28896 * @type {State}
28897 */
28898 function open(code) {
28899 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {
28900 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
28901 effects.consume(code)
28902 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
28903 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImage)
28904 return after
28905 }
28906
28907 return nok(code)
28908 }
28909
28910 /**
28911 * After `![`.
28912 *
28913 * ```markdown
28914 * > | a ![b] c
28915 * ^
28916 * ```
28917 *
28918 * This is needed in because, when GFM footnotes are enabled, images never
28919 * form when started with a `^`.
28920 * Instead, links form:
28921 *
28922 * ```markdown
28923 * ![^a](b)
28924 *
28925 * ![^a][b]
28926 *
28927 * [b]: c
28928 * ```
28929 *
28930 * ```html
28931 * <p>!<a href=\"b\">^a</a></p>
28932 * <p>!<a href=\"c\">^a</a></p>
28933 * ```
28934 *
28935 * @type {State}
28936 */
28937 function after(code) {
28938 // To do: use a new field to do this, this is still needed for
28939 // `micromark-extension-gfm-footnote`, but the `label-start-link`
28940 // behavior isn’t.
28941 // Hidden footnotes hook.
28942 /* c8 ignore next 3 */
28943 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.caret &&
28944 '_hiddenFootnoteSupport' in self.parser.constructs
28945 ? nok(code)
28946 : ok(code)
28947 }
28948 }
28949
28950
28951 /***/ }),
28952
28953 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js":
28954 /*!*****************************************************************************!*\
28955 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js ***!
28956 \*****************************************************************************/
28957 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28958
28959 "use strict";
28960 __webpack_require__.r(__webpack_exports__);
28961 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28962 /* harmony export */ labelStartLink: () => (/* binding */ labelStartLink)
28963 /* harmony export */ });
28964 /* 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");
28965 /* 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");
28966 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28967 /* 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");
28968 /**
28969 * @typedef {import('micromark-util-types').Construct} Construct
28970 * @typedef {import('micromark-util-types').State} State
28971 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28972 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28973 */
28974
28975
28976
28977
28978
28979
28980 /** @type {Construct} */
28981 const labelStartLink = {
28982 name: 'labelStartLink',
28983 tokenize: tokenizeLabelStartLink,
28984 resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_1__.labelEnd.resolveAll
28985 }
28986
28987 /**
28988 * @this {TokenizeContext}
28989 * @type {Tokenizer}
28990 */
28991 function tokenizeLabelStartLink(effects, ok, nok) {
28992 const self = this
28993
28994 return start
28995
28996 /**
28997 * Start of label (link) start.
28998 *
28999 * ```markdown
29000 * > | a [b] c
29001 * ^
29002 * ```
29003 *
29004 * @type {State}
29005 */
29006 function start(code) {
29007 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, 'expected `[`')
29008 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelLink)
29009 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
29010 effects.consume(code)
29011 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
29012 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelLink)
29013 return after
29014 }
29015
29016 /** @type {State} */
29017 function after(code) {
29018 // To do: this isn’t needed in `micromark-extension-gfm-footnote`,
29019 // remove.
29020 // Hidden footnotes hook.
29021 /* c8 ignore next 3 */
29022 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.caret &&
29023 '_hiddenFootnoteSupport' in self.parser.constructs
29024 ? nok(code)
29025 : ok(code)
29026 }
29027 }
29028
29029
29030 /***/ }),
29031
29032 /***/ "../node_modules/micromark-core-commonmark/dev/lib/line-ending.js":
29033 /*!************************************************************************!*\
29034 !*** ../node_modules/micromark-core-commonmark/dev/lib/line-ending.js ***!
29035 \************************************************************************/
29036 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29037
29038 "use strict";
29039 __webpack_require__.r(__webpack_exports__);
29040 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29041 /* harmony export */ lineEnding: () => (/* binding */ lineEnding)
29042 /* harmony export */ });
29043 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29044 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29045 /* 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");
29046 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29047 /**
29048 * @typedef {import('micromark-util-types').Construct} Construct
29049 * @typedef {import('micromark-util-types').State} State
29050 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29051 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29052 */
29053
29054
29055
29056
29057
29058
29059 /** @type {Construct} */
29060 const lineEnding = {name: 'lineEnding', tokenize: tokenizeLineEnding}
29061
29062 /**
29063 * @this {TokenizeContext}
29064 * @type {Tokenizer}
29065 */
29066 function tokenizeLineEnding(effects, ok) {
29067 return start
29068
29069 /** @type {State} */
29070 function start(code) {
29071 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code), 'expected eol')
29072 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
29073 effects.consume(code)
29074 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
29075 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, ok, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)
29076 }
29077 }
29078
29079
29080 /***/ }),
29081
29082 /***/ "../node_modules/micromark-core-commonmark/dev/lib/list.js":
29083 /*!*****************************************************************!*\
29084 !*** ../node_modules/micromark-core-commonmark/dev/lib/list.js ***!
29085 \*****************************************************************/
29086 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29087
29088 "use strict";
29089 __webpack_require__.r(__webpack_exports__);
29090 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29091 /* harmony export */ list: () => (/* binding */ list)
29092 /* harmony export */ });
29093 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29094 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29095 /* 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");
29096 /* 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");
29097 /* 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");
29098 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29099 /* 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");
29100 /* 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");
29101 /**
29102 * @typedef {import('micromark-util-types').Code} Code
29103 * @typedef {import('micromark-util-types').Construct} Construct
29104 * @typedef {import('micromark-util-types').ContainerState} ContainerState
29105 * @typedef {import('micromark-util-types').Exiter} Exiter
29106 * @typedef {import('micromark-util-types').State} State
29107 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29108 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29109 */
29110
29111
29112
29113
29114
29115
29116
29117
29118
29119
29120 /** @type {Construct} */
29121 const list = {
29122 name: 'list',
29123 tokenize: tokenizeListStart,
29124 continuation: {tokenize: tokenizeListContinuation},
29125 exit: tokenizeListEnd
29126 }
29127
29128 /** @type {Construct} */
29129 const listItemPrefixWhitespaceConstruct = {
29130 tokenize: tokenizeListItemPrefixWhitespace,
29131 partial: true
29132 }
29133
29134 /** @type {Construct} */
29135 const indentConstruct = {tokenize: tokenizeIndent, partial: true}
29136
29137 // To do: `markdown-rs` parses list items on their own and later stitches them
29138 // together.
29139
29140 /**
29141 * @type {Tokenizer}
29142 * @this {TokenizeContext}
29143 */
29144 function tokenizeListStart(effects, ok, nok) {
29145 const self = this
29146 const tail = self.events[self.events.length - 1]
29147 let initialSize =
29148 tail && tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix
29149 ? tail[2].sliceSerialize(tail[1], true).length
29150 : 0
29151 let size = 0
29152
29153 return start
29154
29155 /** @type {State} */
29156 function start(code) {
29157 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29158 const kind =
29159 self.containerState.type ||
29160 (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
29161 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered
29162 : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listOrdered)
29163
29164 if (
29165 kind === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered
29166 ? !self.containerState.marker || code === self.containerState.marker
29167 : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code)
29168 ) {
29169 if (!self.containerState.type) {
29170 self.containerState.type = kind
29171 effects.enter(kind, {_container: true})
29172 }
29173
29174 if (kind === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered) {
29175 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix)
29176 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
29177 ? effects.check(_thematic_break_js__WEBPACK_IMPORTED_MODULE_4__.thematicBreak, nok, atMarker)(code)
29178 : atMarker(code)
29179 }
29180
29181 if (!self.interrupt || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.digit1) {
29182 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix)
29183 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemValue)
29184 return inside(code)
29185 }
29186 }
29187
29188 return nok(code)
29189 }
29190
29191 /** @type {State} */
29192 function inside(code) {
29193 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29194 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code) && ++size < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.listItemValueSizeMax) {
29195 effects.consume(code)
29196 return inside
29197 }
29198
29199 if (
29200 (!self.interrupt || size < 2) &&
29201 (self.containerState.marker
29202 ? code === self.containerState.marker
29203 : code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightParenthesis || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dot)
29204 ) {
29205 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemValue)
29206 return atMarker(code)
29207 }
29208
29209 return nok(code)
29210 }
29211
29212 /**
29213 * @type {State}
29214 **/
29215 function atMarker(code) {
29216 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29217 ;(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')
29218 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemMarker)
29219 effects.consume(code)
29220 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemMarker)
29221 self.containerState.marker = self.containerState.marker || code
29222 return effects.check(
29223 _blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine,
29224 // Can’t be empty when interrupting.
29225 self.interrupt ? nok : onBlank,
29226 effects.attempt(
29227 listItemPrefixWhitespaceConstruct,
29228 endOfPrefix,
29229 otherPrefix
29230 )
29231 )
29232 }
29233
29234 /** @type {State} */
29235 function onBlank(code) {
29236 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29237 self.containerState.initialBlankLine = true
29238 initialSize++
29239 return endOfPrefix(code)
29240 }
29241
29242 /** @type {State} */
29243 function otherPrefix(code) {
29244 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
29245 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace)
29246 effects.consume(code)
29247 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace)
29248 return endOfPrefix
29249 }
29250
29251 return nok(code)
29252 }
29253
29254 /** @type {State} */
29255 function endOfPrefix(code) {
29256 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29257 self.containerState.size =
29258 initialSize +
29259 self.sliceSerialize(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix), true).length
29260 return ok(code)
29261 }
29262 }
29263
29264 /**
29265 * @type {Tokenizer}
29266 * @this {TokenizeContext}
29267 */
29268 function tokenizeListContinuation(effects, ok, nok) {
29269 const self = this
29270
29271 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29272 self.containerState._closeFlow = undefined
29273
29274 return effects.check(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, onBlank, notBlank)
29275
29276 /** @type {State} */
29277 function onBlank(code) {
29278 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29279 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof self.containerState.size === 'number', 'expected size')
29280 self.containerState.furtherBlankLines =
29281 self.containerState.furtherBlankLines ||
29282 self.containerState.initialBlankLine
29283
29284 // We have a blank line.
29285 // Still, try to consume at most the items size.
29286 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29287 effects,
29288 ok,
29289 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent,
29290 self.containerState.size + 1
29291 )(code)
29292 }
29293
29294 /** @type {State} */
29295 function notBlank(code) {
29296 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29297 if (self.containerState.furtherBlankLines || !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
29298 self.containerState.furtherBlankLines = undefined
29299 self.containerState.initialBlankLine = undefined
29300 return notInCurrentItem(code)
29301 }
29302
29303 self.containerState.furtherBlankLines = undefined
29304 self.containerState.initialBlankLine = undefined
29305 return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)
29306 }
29307
29308 /** @type {State} */
29309 function notInCurrentItem(code) {
29310 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29311 // While we do continue, we signal that the flow should be closed.
29312 self.containerState._closeFlow = true
29313 // As we’re closing flow, we’re no longer interrupting.
29314 self.interrupt = undefined
29315 // Always populated by defaults.
29316 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29317 self.parser.constructs.disable.null,
29318 'expected `disable.null` to be populated'
29319 )
29320 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29321 effects,
29322 effects.attempt(list, ok, nok),
29323 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix,
29324 self.parser.constructs.disable.null.includes('codeIndented')
29325 ? undefined
29326 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
29327 )(code)
29328 }
29329 }
29330
29331 /**
29332 * @type {Tokenizer}
29333 * @this {TokenizeContext}
29334 */
29335 function tokenizeIndent(effects, ok, nok) {
29336 const self = this
29337
29338 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29339 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof self.containerState.size === 'number', 'expected size')
29340
29341 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29342 effects,
29343 afterPrefix,
29344 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent,
29345 self.containerState.size + 1
29346 )
29347
29348 /** @type {State} */
29349 function afterPrefix(code) {
29350 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29351 const tail = self.events[self.events.length - 1]
29352 return tail &&
29353 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent &&
29354 tail[2].sliceSerialize(tail[1], true).length === self.containerState.size
29355 ? ok(code)
29356 : nok(code)
29357 }
29358 }
29359
29360 /**
29361 * @type {Exiter}
29362 * @this {TokenizeContext}
29363 */
29364 function tokenizeListEnd(effects) {
29365 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(this.containerState, 'expected state')
29366 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof this.containerState.type === 'string', 'expected type')
29367 effects.exit(this.containerState.type)
29368 }
29369
29370 /**
29371 * @type {Tokenizer}
29372 * @this {TokenizeContext}
29373 */
29374 function tokenizeListItemPrefixWhitespace(effects, ok, nok) {
29375 const self = this
29376
29377 // Always populated by defaults.
29378 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29379 self.parser.constructs.disable.null,
29380 'expected `disable.null` to be populated'
29381 )
29382
29383 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29384 effects,
29385 afterPrefix,
29386 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace,
29387 self.parser.constructs.disable.null.includes('codeIndented')
29388 ? undefined
29389 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize + 1
29390 )
29391
29392 /** @type {State} */
29393 function afterPrefix(code) {
29394 const tail = self.events[self.events.length - 1]
29395
29396 return !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code) &&
29397 tail &&
29398 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace
29399 ? ok(code)
29400 : nok(code)
29401 }
29402 }
29403
29404
29405 /***/ }),
29406
29407 /***/ "../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js":
29408 /*!*****************************************************************************!*\
29409 !*** ../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js ***!
29410 \*****************************************************************************/
29411 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29412
29413 "use strict";
29414 __webpack_require__.r(__webpack_exports__);
29415 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29416 /* harmony export */ setextUnderline: () => (/* binding */ setextUnderline)
29417 /* harmony export */ });
29418 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29419 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29420 /* 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");
29421 /* 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");
29422 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29423 /**
29424 * @typedef {import('micromark-util-types').Code} Code
29425 * @typedef {import('micromark-util-types').Construct} Construct
29426 * @typedef {import('micromark-util-types').Resolver} Resolver
29427 * @typedef {import('micromark-util-types').State} State
29428 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29429 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29430 */
29431
29432
29433
29434
29435
29436
29437
29438 /** @type {Construct} */
29439 const setextUnderline = {
29440 name: 'setextUnderline',
29441 tokenize: tokenizeSetextUnderline,
29442 resolveTo: resolveToSetextUnderline
29443 }
29444
29445 /** @type {Resolver} */
29446 function resolveToSetextUnderline(events, context) {
29447 // To do: resolve like `markdown-rs`.
29448 let index = events.length
29449 /** @type {number | undefined} */
29450 let content
29451 /** @type {number | undefined} */
29452 let text
29453 /** @type {number | undefined} */
29454 let definition
29455
29456 // Find the opening of the content.
29457 // It’ll always exist: we don’t tokenize if it isn’t there.
29458 while (index--) {
29459 if (events[index][0] === 'enter') {
29460 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
29461 content = index
29462 break
29463 }
29464
29465 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.paragraph) {
29466 text = index
29467 }
29468 }
29469 // Exit
29470 else {
29471 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
29472 // Remove the content end (if needed we’ll add it later)
29473 events.splice(index, 1)
29474 }
29475
29476 if (!definition && events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition) {
29477 definition = index
29478 }
29479 }
29480 }
29481
29482 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(text !== undefined, 'expected a `text` index to be found')
29483 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(content !== undefined, 'expected a `text` index to be found')
29484
29485 const heading = {
29486 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeading,
29487 start: Object.assign({}, events[text][1].start),
29488 end: Object.assign({}, events[events.length - 1][1].end)
29489 }
29490
29491 // Change the paragraph to setext heading text.
29492 events[text][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingText
29493
29494 // If we have definitions in the content, we’ll keep on having content,
29495 // but we need move it.
29496 if (definition) {
29497 events.splice(text, 0, ['enter', heading, context])
29498 events.splice(definition + 1, 0, ['exit', events[content][1], context])
29499 events[content][1].end = Object.assign({}, events[definition][1].end)
29500 } else {
29501 events[content][1] = heading
29502 }
29503
29504 // Add the heading exit at the end.
29505 events.push(['exit', heading, context])
29506
29507 return events
29508 }
29509
29510 /**
29511 * @this {TokenizeContext}
29512 * @type {Tokenizer}
29513 */
29514 function tokenizeSetextUnderline(effects, ok, nok) {
29515 const self = this
29516 /** @type {NonNullable<Code>} */
29517 let marker
29518
29519 return start
29520
29521 /**
29522 * At start of heading (setext) underline.
29523 *
29524 * ```markdown
29525 * | aa
29526 * > | ==
29527 * ^
29528 * ```
29529 *
29530 * @type {State}
29531 */
29532 function start(code) {
29533 let index = self.events.length
29534 /** @type {boolean | undefined} */
29535 let paragraph
29536
29537 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29538 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo,
29539 'expected `=` or `-`'
29540 )
29541
29542 // Find an opening.
29543 while (index--) {
29544 // Skip enter/exit of line ending, line prefix, and content.
29545 // We can now either have a definition or a paragraph.
29546 if (
29547 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding &&
29548 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix &&
29549 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content
29550 ) {
29551 paragraph = self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.paragraph
29552 break
29553 }
29554 }
29555
29556 // To do: handle lazy/pierce like `markdown-rs`.
29557 // To do: parse indent like `markdown-rs`.
29558 if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {
29559 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLine)
29560 marker = code
29561 return before(code)
29562 }
29563
29564 return nok(code)
29565 }
29566
29567 /**
29568 * After optional whitespace, at `-` or `=`.
29569 *
29570 * ```markdown
29571 * | aa
29572 * > | ==
29573 * ^
29574 * ```
29575 *
29576 * @type {State}
29577 */
29578 function before(code) {
29579 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLineSequence)
29580 return inside(code)
29581 }
29582
29583 /**
29584 * In sequence.
29585 *
29586 * ```markdown
29587 * | aa
29588 * > | ==
29589 * ^
29590 * ```
29591 *
29592 * @type {State}
29593 */
29594 function inside(code) {
29595 if (code === marker) {
29596 effects.consume(code)
29597 return inside
29598 }
29599
29600 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLineSequence)
29601
29602 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
29603 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, after, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix)(code)
29604 : after(code)
29605 }
29606
29607 /**
29608 * After sequence, after optional whitespace.
29609 *
29610 * ```markdown
29611 * | aa
29612 * > | ==
29613 * ^
29614 * ```
29615 *
29616 * @type {State}
29617 */
29618 function after(code) {
29619 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
29620 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLine)
29621 return ok(code)
29622 }
29623
29624 return nok(code)
29625 }
29626 }
29627
29628
29629 /***/ }),
29630
29631 /***/ "../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js":
29632 /*!***************************************************************************!*\
29633 !*** ../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js ***!
29634 \***************************************************************************/
29635 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29636
29637 "use strict";
29638 __webpack_require__.r(__webpack_exports__);
29639 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29640 /* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)
29641 /* harmony export */ });
29642 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29643 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29644 /* 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");
29645 /* 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");
29646 /* 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");
29647 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29648 /**
29649 * @typedef {import('micromark-util-types').Code} Code
29650 * @typedef {import('micromark-util-types').Construct} Construct
29651 * @typedef {import('micromark-util-types').State} State
29652 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29653 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29654 */
29655
29656
29657
29658
29659
29660
29661
29662
29663 /** @type {Construct} */
29664 const thematicBreak = {
29665 name: 'thematicBreak',
29666 tokenize: tokenizeThematicBreak
29667 }
29668
29669 /**
29670 * @this {TokenizeContext}
29671 * @type {Tokenizer}
29672 */
29673 function tokenizeThematicBreak(effects, ok, nok) {
29674 let size = 0
29675 /** @type {NonNullable<Code>} */
29676 let marker
29677
29678 return start
29679
29680 /**
29681 * Start of thematic break.
29682 *
29683 * ```markdown
29684 * > | ***
29685 * ^
29686 * ```
29687 *
29688 * @type {State}
29689 */
29690 function start(code) {
29691 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreak)
29692 // To do: parse indent like `markdown-rs`.
29693 return before(code)
29694 }
29695
29696 /**
29697 * After optional whitespace, at marker.
29698 *
29699 * ```markdown
29700 * > | ***
29701 * ^
29702 * ```
29703 *
29704 * @type {State}
29705 */
29706 function before(code) {
29707 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29708 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk ||
29709 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||
29710 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore,
29711 'expected `*`, `-`, or `_`'
29712 )
29713 marker = code
29714 return atBreak(code)
29715 }
29716
29717 /**
29718 * After something, before something else.
29719 *
29720 * ```markdown
29721 * > | ***
29722 * ^
29723 * ```
29724 *
29725 * @type {State}
29726 */
29727 function atBreak(code) {
29728 if (code === marker) {
29729 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreakSequence)
29730 return sequence(code)
29731 }
29732
29733 if (
29734 size >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.thematicBreakMarkerCountMin &&
29735 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))
29736 ) {
29737 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreak)
29738 return ok(code)
29739 }
29740
29741 return nok(code)
29742 }
29743
29744 /**
29745 * In sequence.
29746 *
29747 * ```markdown
29748 * > | ***
29749 * ^
29750 * ```
29751 *
29752 * @type {State}
29753 */
29754 function sequence(code) {
29755 if (code === marker) {
29756 effects.consume(code)
29757 size++
29758 return sequence
29759 }
29760
29761 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreakSequence)
29762 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
29763 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
29764 : atBreak(code)
29765 }
29766 }
29767
29768
29769 /***/ }),
29770
29771 /***/ "../node_modules/micromark-factory-destination/dev/index.js":
29772 /*!******************************************************************!*\
29773 !*** ../node_modules/micromark-factory-destination/dev/index.js ***!
29774 \******************************************************************/
29775 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29776
29777 "use strict";
29778 __webpack_require__.r(__webpack_exports__);
29779 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29780 /* harmony export */ factoryDestination: () => (/* binding */ factoryDestination)
29781 /* harmony export */ });
29782 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29783 /* 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");
29784 /* 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");
29785 /* 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");
29786 /**
29787 * @typedef {import('micromark-util-types').Effects} Effects
29788 * @typedef {import('micromark-util-types').State} State
29789 * @typedef {import('micromark-util-types').TokenType} TokenType
29790 */
29791
29792
29793
29794
29795
29796
29797 /**
29798 * Parse destinations.
29799 *
29800 * ###### Examples
29801 *
29802 * ```markdown
29803 * <a>
29804 * <a\>b>
29805 * <a b>
29806 * <a)>
29807 * a
29808 * a\)b
29809 * a(b)c
29810 * a(b)
29811 * ```
29812 *
29813 * @param {Effects} effects
29814 * Context.
29815 * @param {State} ok
29816 * State switched to when successful.
29817 * @param {State} nok
29818 * State switched to when unsuccessful.
29819 * @param {TokenType} type
29820 * Type for whole (`<a>` or `b`).
29821 * @param {TokenType} literalType
29822 * Type when enclosed (`<a>`).
29823 * @param {TokenType} literalMarkerType
29824 * Type for enclosing (`<` and `>`).
29825 * @param {TokenType} rawType
29826 * Type when not enclosed (`b`).
29827 * @param {TokenType} stringType
29828 * Type for the value (`a` or `b`).
29829 * @param {number | undefined} [max=Infinity]
29830 * Depth of nested parens (inclusive).
29831 * @returns {State}
29832 * Start state.
29833 */
29834 // eslint-disable-next-line max-params
29835 function factoryDestination(
29836 effects,
29837 ok,
29838 nok,
29839 type,
29840 literalType,
29841 literalMarkerType,
29842 rawType,
29843 stringType,
29844 max
29845 ) {
29846 const limit = max || Number.POSITIVE_INFINITY
29847 let balance = 0
29848
29849 return start
29850
29851 /**
29852 * Start of destination.
29853 *
29854 * ```markdown
29855 * > | <aa>
29856 * ^
29857 * > | aa
29858 * ^
29859 * ```
29860 *
29861 * @type {State}
29862 */
29863 function start(code) {
29864 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan) {
29865 effects.enter(type)
29866 effects.enter(literalType)
29867 effects.enter(literalMarkerType)
29868 effects.consume(code)
29869 effects.exit(literalMarkerType)
29870 return enclosedBefore
29871 }
29872
29873 // ASCII control, space, closing paren.
29874 if (
29875 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29876 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space ||
29877 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
29878 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)
29879 ) {
29880 return nok(code)
29881 }
29882
29883 effects.enter(type)
29884 effects.enter(rawType)
29885 effects.enter(stringType)
29886 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})
29887 return raw(code)
29888 }
29889
29890 /**
29891 * After `<`, at an enclosed destination.
29892 *
29893 * ```markdown
29894 * > | <aa>
29895 * ^
29896 * ```
29897 *
29898 * @type {State}
29899 */
29900 function enclosedBefore(code) {
29901 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {
29902 effects.enter(literalMarkerType)
29903 effects.consume(code)
29904 effects.exit(literalMarkerType)
29905 effects.exit(literalType)
29906 effects.exit(type)
29907 return ok
29908 }
29909
29910 effects.enter(stringType)
29911 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})
29912 return enclosed(code)
29913 }
29914
29915 /**
29916 * In enclosed destination.
29917 *
29918 * ```markdown
29919 * > | <aa>
29920 * ^
29921 * ```
29922 *
29923 * @type {State}
29924 */
29925 function enclosed(code) {
29926 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {
29927 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
29928 effects.exit(stringType)
29929 return enclosedBefore(code)
29930 }
29931
29932 if (
29933 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29934 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan ||
29935 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)
29936 ) {
29937 return nok(code)
29938 }
29939
29940 effects.consume(code)
29941 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? enclosedEscape : enclosed
29942 }
29943
29944 /**
29945 * After `\`, at a special character.
29946 *
29947 * ```markdown
29948 * > | <a\*a>
29949 * ^
29950 * ```
29951 *
29952 * @type {State}
29953 */
29954 function enclosedEscape(code) {
29955 if (
29956 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan ||
29957 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan ||
29958 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash
29959 ) {
29960 effects.consume(code)
29961 return enclosed
29962 }
29963
29964 return enclosed(code)
29965 }
29966
29967 /**
29968 * In raw destination.
29969 *
29970 * ```markdown
29971 * > | aa
29972 * ^
29973 * ```
29974 *
29975 * @type {State}
29976 */
29977 function raw(code) {
29978 if (
29979 !balance &&
29980 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29981 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
29982 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code))
29983 ) {
29984 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
29985 effects.exit(stringType)
29986 effects.exit(rawType)
29987 effects.exit(type)
29988 return ok(code)
29989 }
29990
29991 if (balance < limit && code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis) {
29992 effects.consume(code)
29993 balance++
29994 return raw
29995 }
29996
29997 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis) {
29998 effects.consume(code)
29999 balance--
30000 return raw
30001 }
30002
30003 // ASCII control (but *not* `\0`) and space and `(`.
30004 // Note: in `markdown-rs`, `\0` exists in codes, in `micromark-js` it
30005 // doesn’t.
30006 if (
30007 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
30008 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space ||
30009 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ||
30010 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)
30011 ) {
30012 return nok(code)
30013 }
30014
30015 effects.consume(code)
30016 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? rawEscape : raw
30017 }
30018
30019 /**
30020 * After `\`, at special character.
30021 *
30022 * ```markdown
30023 * > | a\*a
30024 * ^
30025 * ```
30026 *
30027 * @type {State}
30028 */
30029 function rawEscape(code) {
30030 if (
30031 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ||
30032 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
30033 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash
30034 ) {
30035 effects.consume(code)
30036 return raw
30037 }
30038
30039 return raw(code)
30040 }
30041 }
30042
30043
30044 /***/ }),
30045
30046 /***/ "../node_modules/micromark-factory-label/dev/index.js":
30047 /*!************************************************************!*\
30048 !*** ../node_modules/micromark-factory-label/dev/index.js ***!
30049 \************************************************************/
30050 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30051
30052 "use strict";
30053 __webpack_require__.r(__webpack_exports__);
30054 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30055 /* harmony export */ factoryLabel: () => (/* binding */ factoryLabel)
30056 /* harmony export */ });
30057 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30058 /* 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");
30059 /* 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");
30060 /* 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");
30061 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
30062 /**
30063 * @typedef {import('micromark-util-types').Effects} Effects
30064 * @typedef {import('micromark-util-types').State} State
30065 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
30066 * @typedef {import('micromark-util-types').TokenType} TokenType
30067 */
30068
30069
30070
30071
30072
30073
30074
30075 /**
30076 * Parse labels.
30077 *
30078 * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.
30079 *
30080 * ###### Examples
30081 *
30082 * ```markdown
30083 * [a]
30084 * [a
30085 * b]
30086 * [a\]b]
30087 * ```
30088 *
30089 * @this {TokenizeContext}
30090 * Tokenize context.
30091 * @param {Effects} effects
30092 * Context.
30093 * @param {State} ok
30094 * State switched to when successful.
30095 * @param {State} nok
30096 * State switched to when unsuccessful.
30097 * @param {TokenType} type
30098 * Type of the whole label (`[a]`).
30099 * @param {TokenType} markerType
30100 * Type for the markers (`[` and `]`).
30101 * @param {TokenType} stringType
30102 * Type for the identifier (`a`).
30103 * @returns {State}
30104 * Start state.
30105 */
30106 // eslint-disable-next-line max-params
30107 function factoryLabel(effects, ok, nok, type, markerType, stringType) {
30108 const self = this
30109 let size = 0
30110 /** @type {boolean} */
30111 let seen
30112
30113 return start
30114
30115 /**
30116 * Start of label.
30117 *
30118 * ```markdown
30119 * > | [a]
30120 * ^
30121 * ```
30122 *
30123 * @type {State}
30124 */
30125 function start(code) {
30126 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket, 'expected `[`')
30127 effects.enter(type)
30128 effects.enter(markerType)
30129 effects.consume(code)
30130 effects.exit(markerType)
30131 effects.enter(stringType)
30132 return atBreak
30133 }
30134
30135 /**
30136 * In label, at something, before something else.
30137 *
30138 * ```markdown
30139 * > | [a]
30140 * ^
30141 * ```
30142 *
30143 * @type {State}
30144 */
30145 function atBreak(code) {
30146 if (
30147 size > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax ||
30148 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
30149 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30150 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket && !seen) ||
30151 // To do: remove in the future once we’ve switched from
30152 // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
30153 // which doesn’t need this.
30154 // Hidden footnotes hook.
30155 /* c8 ignore next 3 */
30156 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.caret &&
30157 !size &&
30158 '_hiddenFootnoteSupport' in self.parser.constructs)
30159 ) {
30160 return nok(code)
30161 }
30162
30163 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
30164 effects.exit(stringType)
30165 effects.enter(markerType)
30166 effects.consume(code)
30167 effects.exit(markerType)
30168 effects.exit(type)
30169 return ok
30170 }
30171
30172 // To do: indent? Link chunks and EOLs together?
30173 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
30174 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
30175 effects.consume(code)
30176 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
30177 return atBreak
30178 }
30179
30180 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})
30181 return labelInside(code)
30182 }
30183
30184 /**
30185 * In label, in text.
30186 *
30187 * ```markdown
30188 * > | [a]
30189 * ^
30190 * ```
30191 *
30192 * @type {State}
30193 */
30194 function labelInside(code) {
30195 if (
30196 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
30197 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30198 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket ||
30199 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code) ||
30200 size++ > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax
30201 ) {
30202 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkString)
30203 return atBreak(code)
30204 }
30205
30206 effects.consume(code)
30207 if (!seen) seen = !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
30208 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? labelEscape : labelInside
30209 }
30210
30211 /**
30212 * After `\`, at a special character.
30213 *
30214 * ```markdown
30215 * > | [a\*a]
30216 * ^
30217 * ```
30218 *
30219 * @type {State}
30220 */
30221 function labelEscape(code) {
30222 if (
30223 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30224 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ||
30225 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket
30226 ) {
30227 effects.consume(code)
30228 size++
30229 return labelInside
30230 }
30231
30232 return labelInside(code)
30233 }
30234 }
30235
30236
30237 /***/ }),
30238
30239 /***/ "../node_modules/micromark-factory-space/dev/index.js":
30240 /*!************************************************************!*\
30241 !*** ../node_modules/micromark-factory-space/dev/index.js ***!
30242 \************************************************************/
30243 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30244
30245 "use strict";
30246 __webpack_require__.r(__webpack_exports__);
30247 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30248 /* harmony export */ factorySpace: () => (/* binding */ factorySpace)
30249 /* harmony export */ });
30250 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30251 /**
30252 * @typedef {import('micromark-util-types').Effects} Effects
30253 * @typedef {import('micromark-util-types').State} State
30254 * @typedef {import('micromark-util-types').TokenType} TokenType
30255 */
30256
30257
30258
30259 // To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.
30260
30261 /**
30262 * Parse spaces and tabs.
30263 *
30264 * There is no `nok` parameter:
30265 *
30266 * * spaces in markdown are often optional, in which case this factory can be
30267 * used and `ok` will be switched to whether spaces were found or not
30268 * * one line ending or space can be detected with `markdownSpace(code)` right
30269 * before using `factorySpace`
30270 *
30271 * ###### Examples
30272 *
30273 * Where `␉` represents a tab (plus how much it expands) and `␠` represents a
30274 * single space.
30275 *
30276 * ```markdown
30277 * ␉
30278 * ␠␠␠␠
30279 * ␉␠
30280 * ```
30281 *
30282 * @param {Effects} effects
30283 * Context.
30284 * @param {State} ok
30285 * State switched to when successful.
30286 * @param {TokenType} type
30287 * Type (`' \t'`).
30288 * @param {number | undefined} [max=Infinity]
30289 * Max (exclusive).
30290 * @returns
30291 * Start state.
30292 */
30293 function factorySpace(effects, ok, type, max) {
30294 const limit = max ? max - 1 : Number.POSITIVE_INFINITY
30295 let size = 0
30296
30297 return start
30298
30299 /** @type {State} */
30300 function start(code) {
30301 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {
30302 effects.enter(type)
30303 return prefix(code)
30304 }
30305
30306 return ok(code)
30307 }
30308
30309 /** @type {State} */
30310 function prefix(code) {
30311 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code) && size++ < limit) {
30312 effects.consume(code)
30313 return prefix
30314 }
30315
30316 effects.exit(type)
30317 return ok(code)
30318 }
30319 }
30320
30321
30322 /***/ }),
30323
30324 /***/ "../node_modules/micromark-factory-title/dev/index.js":
30325 /*!************************************************************!*\
30326 !*** ../node_modules/micromark-factory-title/dev/index.js ***!
30327 \************************************************************/
30328 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30329
30330 "use strict";
30331 __webpack_require__.r(__webpack_exports__);
30332 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30333 /* harmony export */ factoryTitle: () => (/* binding */ factoryTitle)
30334 /* harmony export */ });
30335 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
30336 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30337 /* 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");
30338 /* 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");
30339 /* 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");
30340 /**
30341 * @typedef {import('micromark-util-types').Code} Code
30342 * @typedef {import('micromark-util-types').Effects} Effects
30343 * @typedef {import('micromark-util-types').State} State
30344 * @typedef {import('micromark-util-types').TokenType} TokenType
30345 */
30346
30347
30348
30349
30350
30351
30352
30353 /**
30354 * Parse titles.
30355 *
30356 * ###### Examples
30357 *
30358 * ```markdown
30359 * "a"
30360 * 'b'
30361 * (c)
30362 * "a
30363 * b"
30364 * 'a
30365 * b'
30366 * (a\)b)
30367 * ```
30368 *
30369 * @param {Effects} effects
30370 * Context.
30371 * @param {State} ok
30372 * State switched to when successful.
30373 * @param {State} nok
30374 * State switched to when unsuccessful.
30375 * @param {TokenType} type
30376 * Type of the whole title (`"a"`, `'b'`, `(c)`).
30377 * @param {TokenType} markerType
30378 * Type for the markers (`"`, `'`, `(`, and `)`).
30379 * @param {TokenType} stringType
30380 * Type for the value (`a`).
30381 * @returns {State}
30382 * Start state.
30383 */
30384 // eslint-disable-next-line max-params
30385 function factoryTitle(effects, ok, nok, type, markerType, stringType) {
30386 /** @type {NonNullable<Code>} */
30387 let marker
30388
30389 return start
30390
30391 /**
30392 * Start of title.
30393 *
30394 * ```markdown
30395 * > | "a"
30396 * ^
30397 * ```
30398 *
30399 * @type {State}
30400 */
30401 function start(code) {
30402 if (
30403 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.quotationMark ||
30404 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.apostrophe ||
30405 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis
30406 ) {
30407 effects.enter(type)
30408 effects.enter(markerType)
30409 effects.consume(code)
30410 effects.exit(markerType)
30411 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
30412 return begin
30413 }
30414
30415 return nok(code)
30416 }
30417
30418 /**
30419 * After opening marker.
30420 *
30421 * This is also used at the closing marker.
30422 *
30423 * ```markdown
30424 * > | "a"
30425 * ^
30426 * ```
30427 *
30428 * @type {State}
30429 */
30430 function begin(code) {
30431 if (code === marker) {
30432 effects.enter(markerType)
30433 effects.consume(code)
30434 effects.exit(markerType)
30435 effects.exit(type)
30436 return ok
30437 }
30438
30439 effects.enter(stringType)
30440 return atBreak(code)
30441 }
30442
30443 /**
30444 * At something, before something else.
30445 *
30446 * ```markdown
30447 * > | "a"
30448 * ^
30449 * ```
30450 *
30451 * @type {State}
30452 */
30453 function atBreak(code) {
30454 if (code === marker) {
30455 effects.exit(stringType)
30456 return begin(marker)
30457 }
30458
30459 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof) {
30460 return nok(code)
30461 }
30462
30463 // Note: blank lines can’t exist in content.
30464 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
30465 // To do: use `space_or_tab_eol_with_options`, connect.
30466 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
30467 effects.consume(code)
30468 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
30469 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)
30470 }
30471
30472 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})
30473 return inside(code)
30474 }
30475
30476 /**
30477 *
30478 *
30479 * @type {State}
30480 */
30481 function inside(code) {
30482 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)) {
30483 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
30484 return atBreak(code)
30485 }
30486
30487 effects.consume(code)
30488 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? escape : inside
30489 }
30490
30491 /**
30492 * After `\`, at a special character.
30493 *
30494 * ```markdown
30495 * > | "a\*b"
30496 * ^
30497 * ```
30498 *
30499 * @type {State}
30500 */
30501 function escape(code) {
30502 if (code === marker || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash) {
30503 effects.consume(code)
30504 return inside
30505 }
30506
30507 return inside(code)
30508 }
30509 }
30510
30511
30512 /***/ }),
30513
30514 /***/ "../node_modules/micromark-factory-whitespace/dev/index.js":
30515 /*!*****************************************************************!*\
30516 !*** ../node_modules/micromark-factory-whitespace/dev/index.js ***!
30517 \*****************************************************************/
30518 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30519
30520 "use strict";
30521 __webpack_require__.r(__webpack_exports__);
30522 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30523 /* harmony export */ factoryWhitespace: () => (/* binding */ factoryWhitespace)
30524 /* harmony export */ });
30525 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
30526 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30527 /* 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");
30528 /**
30529 * @typedef {import('micromark-util-types').Effects} Effects
30530 * @typedef {import('micromark-util-types').State} State
30531 */
30532
30533
30534
30535
30536
30537 /**
30538 * Parse spaces and tabs.
30539 *
30540 * There is no `nok` parameter:
30541 *
30542 * * line endings or spaces in markdown are often optional, in which case this
30543 * factory can be used and `ok` will be switched to whether spaces were found
30544 * or not
30545 * * one line ending or space can be detected with
30546 * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`
30547 *
30548 * @param {Effects} effects
30549 * Context.
30550 * @param {State} ok
30551 * State switched to when successful.
30552 * @returns
30553 * Start state.
30554 */
30555 function factoryWhitespace(effects, ok) {
30556 /** @type {boolean} */
30557 let seen
30558
30559 return start
30560
30561 /** @type {State} */
30562 function start(code) {
30563 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownLineEnding)(code)) {
30564 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
30565 effects.consume(code)
30566 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
30567 seen = true
30568 return start
30569 }
30570
30571 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {
30572 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(
30573 effects,
30574 start,
30575 seen ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix
30576 )(code)
30577 }
30578
30579 return ok(code)
30580 }
30581 }
30582
30583
30584 /***/ }),
30585
30586 /***/ "../node_modules/micromark-util-character/dev/index.js":
30587 /*!*************************************************************!*\
30588 !*** ../node_modules/micromark-util-character/dev/index.js ***!
30589 \*************************************************************/
30590 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30591
30592 "use strict";
30593 __webpack_require__.r(__webpack_exports__);
30594 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30595 /* harmony export */ asciiAlpha: () => (/* binding */ asciiAlpha),
30596 /* harmony export */ asciiAlphanumeric: () => (/* binding */ asciiAlphanumeric),
30597 /* harmony export */ asciiAtext: () => (/* binding */ asciiAtext),
30598 /* harmony export */ asciiControl: () => (/* binding */ asciiControl),
30599 /* harmony export */ asciiDigit: () => (/* binding */ asciiDigit),
30600 /* harmony export */ asciiHexDigit: () => (/* binding */ asciiHexDigit),
30601 /* harmony export */ asciiPunctuation: () => (/* binding */ asciiPunctuation),
30602 /* harmony export */ markdownLineEnding: () => (/* binding */ markdownLineEnding),
30603 /* harmony export */ markdownLineEndingOrSpace: () => (/* binding */ markdownLineEndingOrSpace),
30604 /* harmony export */ markdownSpace: () => (/* binding */ markdownSpace),
30605 /* harmony export */ unicodePunctuation: () => (/* binding */ unicodePunctuation),
30606 /* harmony export */ unicodeWhitespace: () => (/* binding */ unicodeWhitespace)
30607 /* harmony export */ });
30608 /* 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");
30609 /* 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");
30610 /**
30611 * @typedef {import('micromark-util-types').Code} Code
30612 */
30613
30614
30615
30616
30617 /**
30618 * Check whether the character code represents an ASCII alpha (`a` through `z`,
30619 * case insensitive).
30620 *
30621 * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.
30622 *
30623 * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)
30624 * to U+005A (`Z`).
30625 *
30626 * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)
30627 * to U+007A (`z`).
30628 *
30629 * @param code
30630 * Code.
30631 * @returns
30632 * Whether it matches.
30633 */
30634 const asciiAlpha = regexCheck(/[A-Za-z]/)
30635
30636 /**
30637 * Check whether the character code represents an ASCII alphanumeric (`a`
30638 * through `z`, case insensitive, or `0` through `9`).
30639 *
30640 * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha
30641 * (see `asciiAlpha`).
30642 *
30643 * @param code
30644 * Code.
30645 * @returns
30646 * Whether it matches.
30647 */
30648 const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/)
30649
30650 /**
30651 * Check whether the character code represents an ASCII atext.
30652 *
30653 * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in
30654 * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),
30655 * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F
30656 * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E
30657 * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE
30658 * (`{`) to U+007E TILDE (`~`).
30659 *
30660 * See:
30661 * **\[RFC5322]**:
30662 * [Internet Message Format](https://tools.ietf.org/html/rfc5322).
30663 * P. Resnick.
30664 * IETF.
30665 *
30666 * @param code
30667 * Code.
30668 * @returns
30669 * Whether it matches.
30670 */
30671 const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/)
30672
30673 /**
30674 * Check whether a character code is an ASCII control character.
30675 *
30676 * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)
30677 * to U+001F (US), or U+007F (DEL).
30678 *
30679 * @param {Code} code
30680 * Code.
30681 * @returns {boolean}
30682 * Whether it matches.
30683 */
30684 function asciiControl(code) {
30685 return (
30686 // Special whitespace codes (which have negative values), C0 and Control
30687 // character DEL
30688 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)
30689 )
30690 }
30691
30692 /**
30693 * Check whether the character code represents an ASCII digit (`0` through `9`).
30694 *
30695 * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to
30696 * U+0039 (`9`).
30697 *
30698 * @param code
30699 * Code.
30700 * @returns
30701 * Whether it matches.
30702 */
30703 const asciiDigit = regexCheck(/\d/)
30704
30705 /**
30706 * Check whether the character code represents an ASCII hex digit (`a` through
30707 * `f`, case insensitive, or `0` through `9`).
30708 *
30709 * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex
30710 * digit, or an ASCII lower hex digit.
30711 *
30712 * An **ASCII upper hex digit** is a character in the inclusive range U+0041
30713 * (`A`) to U+0046 (`F`).
30714 *
30715 * An **ASCII lower hex digit** is a character in the inclusive range U+0061
30716 * (`a`) to U+0066 (`f`).
30717 *
30718 * @param code
30719 * Code.
30720 * @returns
30721 * Whether it matches.
30722 */
30723 const asciiHexDigit = regexCheck(/[\dA-Fa-f]/)
30724
30725 /**
30726 * Check whether the character code represents ASCII punctuation.
30727 *
30728 * An **ASCII punctuation** is a character in the inclusive ranges U+0021
30729 * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT
30730 * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT
30731 * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).
30732 *
30733 * @param code
30734 * Code.
30735 * @returns
30736 * Whether it matches.
30737 */
30738 const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)
30739
30740 /**
30741 * Check whether a character code is a markdown line ending.
30742 *
30743 * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN
30744 * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).
30745 *
30746 * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE
30747 * RETURN (CR) are replaced by these virtual characters depending on whether
30748 * they occurred together.
30749 *
30750 * @param {Code} code
30751 * Code.
30752 * @returns {boolean}
30753 * Whether it matches.
30754 */
30755 function markdownLineEnding(code) {
30756 return code !== null && code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab
30757 }
30758
30759 /**
30760 * Check whether a character code is a markdown line ending (see
30761 * `markdownLineEnding`) or markdown space (see `markdownSpace`).
30762 *
30763 * @param {Code} code
30764 * Code.
30765 * @returns {boolean}
30766 * Whether it matches.
30767 */
30768 function markdownLineEndingOrSpace(code) {
30769 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)
30770 }
30771
30772 /**
30773 * Check whether a character code is a markdown space.
30774 *
30775 * A **markdown space** is the concrete character U+0020 SPACE (SP) and the
30776 * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).
30777 *
30778 * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is
30779 * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL
30780 * SPACE (VS) characters, depending on the column at which the tab occurred.
30781 *
30782 * @param {Code} code
30783 * Code.
30784 * @returns {boolean}
30785 * Whether it matches.
30786 */
30787 function markdownSpace(code) {
30788 return (
30789 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab ||
30790 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace ||
30791 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space
30792 )
30793 }
30794
30795 // Size note: removing ASCII from the regex and using `asciiPunctuation` here
30796 // In fact adds to the bundle size.
30797 /**
30798 * Check whether the character code represents Unicode punctuation.
30799 *
30800 * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,
30801 * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`
30802 * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`
30803 * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII
30804 * punctuation (see `asciiPunctuation`).
30805 *
30806 * See:
30807 * **\[UNICODE]**:
30808 * [The Unicode Standard](https://www.unicode.org/versions/).
30809 * Unicode Consortium.
30810 *
30811 * @param code
30812 * Code.
30813 * @returns
30814 * Whether it matches.
30815 */
30816 const unicodePunctuation = regexCheck(_lib_unicode_punctuation_regex_js__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuationRegex)
30817
30818 /**
30819 * Check whether the character code represents Unicode whitespace.
30820 *
30821 * Note that this does handle micromark specific markdown whitespace characters.
30822 * See `markdownLineEndingOrSpace` to check that.
30823 *
30824 * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,
30825 * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),
30826 * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**).
30827 *
30828 * See:
30829 * **\[UNICODE]**:
30830 * [The Unicode Standard](https://www.unicode.org/versions/).
30831 * Unicode Consortium.
30832 *
30833 * @param code
30834 * Code.
30835 * @returns
30836 * Whether it matches.
30837 */
30838 const unicodeWhitespace = regexCheck(/\s/)
30839
30840 /**
30841 * Create a code check from a regex.
30842 *
30843 * @param {RegExp} regex
30844 * @returns {(code: Code) => boolean}
30845 */
30846 function regexCheck(regex) {
30847 return check
30848
30849 /**
30850 * Check whether a code matches the bound regex.
30851 *
30852 * @param {Code} code
30853 * Character code.
30854 * @returns {boolean}
30855 * Whether the character code matches the bound regex.
30856 */
30857 function check(code) {
30858 return code !== null && regex.test(String.fromCharCode(code))
30859 }
30860 }
30861
30862
30863 /***/ }),
30864
30865 /***/ "../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js":
30866 /*!*************************************************************************************!*\
30867 !*** ../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js ***!
30868 \*************************************************************************************/
30869 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30870
30871 "use strict";
30872 __webpack_require__.r(__webpack_exports__);
30873 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30874 /* harmony export */ unicodePunctuationRegex: () => (/* binding */ unicodePunctuationRegex)
30875 /* harmony export */ });
30876 // This module is generated by `script/`.
30877 //
30878 // CommonMark handles attention (emphasis, strong) markers based on what comes
30879 // before or after them.
30880 // One such difference is if those characters are Unicode punctuation.
30881 // This script is generated from the Unicode data.
30882
30883 /**
30884 * Regular expression that matches a unicode punctuation character.
30885 */
30886 const unicodePunctuationRegex =
30887 /[!-/:-@[-`{-~\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]/
30888
30889
30890 /***/ }),
30891
30892 /***/ "../node_modules/micromark-util-chunked/dev/index.js":
30893 /*!***********************************************************!*\
30894 !*** ../node_modules/micromark-util-chunked/dev/index.js ***!
30895 \***********************************************************/
30896 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30897
30898 "use strict";
30899 __webpack_require__.r(__webpack_exports__);
30900 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30901 /* harmony export */ push: () => (/* binding */ push),
30902 /* harmony export */ splice: () => (/* binding */ splice)
30903 /* harmony export */ });
30904 /* 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");
30905
30906
30907 /**
30908 * Like `Array#splice`, but smarter for giant arrays.
30909 *
30910 * `Array#splice` takes all items to be inserted as individual argument which
30911 * causes a stack overflow in V8 when trying to insert 100k items for instance.
30912 *
30913 * Otherwise, this does not return the removed items, and takes `items` as an
30914 * array instead of rest parameters.
30915 *
30916 * @template {unknown} T
30917 * Item type.
30918 * @param {Array<T>} list
30919 * List to operate on.
30920 * @param {number} start
30921 * Index to remove/insert at (can be negative).
30922 * @param {number} remove
30923 * Number of items to remove.
30924 * @param {Array<T>} items
30925 * Items to inject into `list`.
30926 * @returns {void}
30927 * Nothing.
30928 */
30929 function splice(list, start, remove, items) {
30930 const end = list.length
30931 let chunkStart = 0
30932 /** @type {Array<unknown>} */
30933 let parameters
30934
30935 // Make start between zero and `end` (included).
30936 if (start < 0) {
30937 start = -start > end ? 0 : end + start
30938 } else {
30939 start = start > end ? end : start
30940 }
30941
30942 remove = remove > 0 ? remove : 0
30943
30944 // No need to chunk the items if there’s only a couple (10k) items.
30945 if (items.length < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize) {
30946 parameters = Array.from(items)
30947 parameters.unshift(start, remove)
30948 // @ts-expect-error Hush, it’s fine.
30949 list.splice(...parameters)
30950 } else {
30951 // Delete `remove` items starting from `start`
30952 if (remove) list.splice(start, remove)
30953
30954 // Insert the items in chunks to not cause stack overflows.
30955 while (chunkStart < items.length) {
30956 parameters = items.slice(
30957 chunkStart,
30958 chunkStart + micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30959 )
30960 parameters.unshift(start, 0)
30961 // @ts-expect-error Hush, it’s fine.
30962 list.splice(...parameters)
30963
30964 chunkStart += micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30965 start += micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30966 }
30967 }
30968 }
30969
30970 /**
30971 * Append `items` (an array) at the end of `list` (another array).
30972 * When `list` was empty, returns `items` instead.
30973 *
30974 * This prevents a potentially expensive operation when `list` is empty,
30975 * and adds items in batches to prevent V8 from hanging.
30976 *
30977 * @template {unknown} T
30978 * Item type.
30979 * @param {Array<T>} list
30980 * List to operate on.
30981 * @param {Array<T>} items
30982 * Items to add to `list`.
30983 * @returns {Array<T>}
30984 * Either `list` or `items`.
30985 */
30986 function push(list, items) {
30987 if (list.length > 0) {
30988 splice(list, list.length, 0, items)
30989 return list
30990 }
30991
30992 return items
30993 }
30994
30995
30996 /***/ }),
30997
30998 /***/ "../node_modules/micromark-util-classify-character/dev/index.js":
30999 /*!**********************************************************************!*\
31000 !*** ../node_modules/micromark-util-classify-character/dev/index.js ***!
31001 \**********************************************************************/
31002 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31003
31004 "use strict";
31005 __webpack_require__.r(__webpack_exports__);
31006 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31007 /* harmony export */ classifyCharacter: () => (/* binding */ classifyCharacter)
31008 /* harmony export */ });
31009 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
31010 /* 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");
31011 /* 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");
31012 /**
31013 * @typedef {import('micromark-util-types').Code} Code
31014 */
31015
31016
31017
31018
31019
31020 /**
31021 * Classify whether a code represents whitespace, punctuation, or something
31022 * else.
31023 *
31024 * Used for attention (emphasis, strong), whose sequences can open or close
31025 * based on the class of surrounding characters.
31026 *
31027 * > 👉 **Note**: eof (`null`) is seen as whitespace.
31028 *
31029 * @param {Code} code
31030 * Code.
31031 * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}
31032 * Group.
31033 */
31034 function classifyCharacter(code) {
31035 if (
31036 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
31037 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) ||
31038 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code)
31039 ) {
31040 return micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupWhitespace
31041 }
31042
31043 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuation)(code)) {
31044 return micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupPunctuation
31045 }
31046 }
31047
31048
31049 /***/ }),
31050
31051 /***/ "../node_modules/micromark-util-combine-extensions/index.js":
31052 /*!******************************************************************!*\
31053 !*** ../node_modules/micromark-util-combine-extensions/index.js ***!
31054 \******************************************************************/
31055 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31056
31057 "use strict";
31058 __webpack_require__.r(__webpack_exports__);
31059 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31060 /* harmony export */ combineExtensions: () => (/* binding */ combineExtensions),
31061 /* harmony export */ combineHtmlExtensions: () => (/* binding */ combineHtmlExtensions)
31062 /* harmony export */ });
31063 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
31064 /**
31065 * @typedef {import('micromark-util-types').Extension} Extension
31066 * @typedef {import('micromark-util-types').Handles} Handles
31067 * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension
31068 * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension
31069 */
31070
31071
31072
31073 const hasOwnProperty = {}.hasOwnProperty
31074
31075 /**
31076 * Combine multiple syntax extensions into one.
31077 *
31078 * @param {Array<Extension>} extensions
31079 * List of syntax extensions.
31080 * @returns {NormalizedExtension}
31081 * A single combined extension.
31082 */
31083 function combineExtensions(extensions) {
31084 /** @type {NormalizedExtension} */
31085 const all = {}
31086 let index = -1
31087
31088 while (++index < extensions.length) {
31089 syntaxExtension(all, extensions[index])
31090 }
31091
31092 return all
31093 }
31094
31095 /**
31096 * Merge `extension` into `all`.
31097 *
31098 * @param {NormalizedExtension} all
31099 * Extension to merge into.
31100 * @param {Extension} extension
31101 * Extension to merge.
31102 * @returns {void}
31103 */
31104 function syntaxExtension(all, extension) {
31105 /** @type {keyof Extension} */
31106 let hook
31107
31108 for (hook in extension) {
31109 const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined
31110 /** @type {Record<string, unknown>} */
31111 const left = maybe || (all[hook] = {})
31112 /** @type {Record<string, unknown> | undefined} */
31113 const right = extension[hook]
31114 /** @type {string} */
31115 let code
31116
31117 if (right) {
31118 for (code in right) {
31119 if (!hasOwnProperty.call(left, code)) left[code] = []
31120 const value = right[code]
31121 constructs(
31122 // @ts-expect-error Looks like a list.
31123 left[code],
31124 Array.isArray(value) ? value : value ? [value] : []
31125 )
31126 }
31127 }
31128 }
31129 }
31130
31131 /**
31132 * Merge `list` into `existing` (both lists of constructs).
31133 * Mutates `existing`.
31134 *
31135 * @param {Array<unknown>} existing
31136 * @param {Array<unknown>} list
31137 * @returns {void}
31138 */
31139 function constructs(existing, list) {
31140 let index = -1
31141 /** @type {Array<unknown>} */
31142 const before = []
31143
31144 while (++index < list.length) {
31145 // @ts-expect-error Looks like an object.
31146 ;(list[index].add === 'after' ? existing : before).push(list[index])
31147 }
31148
31149 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__.splice)(existing, 0, 0, before)
31150 }
31151
31152 /**
31153 * Combine multiple HTML extensions into one.
31154 *
31155 * @param {Array<HtmlExtension>} htmlExtensions
31156 * List of HTML extensions.
31157 * @returns {HtmlExtension}
31158 * A single combined HTML extension.
31159 */
31160 function combineHtmlExtensions(htmlExtensions) {
31161 /** @type {HtmlExtension} */
31162 const handlers = {}
31163 let index = -1
31164
31165 while (++index < htmlExtensions.length) {
31166 htmlExtension(handlers, htmlExtensions[index])
31167 }
31168
31169 return handlers
31170 }
31171
31172 /**
31173 * Merge `extension` into `all`.
31174 *
31175 * @param {HtmlExtension} all
31176 * Extension to merge into.
31177 * @param {HtmlExtension} extension
31178 * Extension to merge.
31179 * @returns {void}
31180 */
31181 function htmlExtension(all, extension) {
31182 /** @type {keyof HtmlExtension} */
31183 let hook
31184
31185 for (hook in extension) {
31186 const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined
31187 const left = maybe || (all[hook] = {})
31188 const right = extension[hook]
31189 /** @type {keyof Handles} */
31190 let type
31191
31192 if (right) {
31193 for (type in right) {
31194 // @ts-expect-error assume document vs regular handler are managed correctly.
31195 left[type] = right[type]
31196 }
31197 }
31198 }
31199 }
31200
31201
31202 /***/ }),
31203
31204 /***/ "../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js":
31205 /*!**************************************************************************************!*\
31206 !*** ../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js ***!
31207 \**************************************************************************************/
31208 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31209
31210 "use strict";
31211 __webpack_require__.r(__webpack_exports__);
31212 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31213 /* harmony export */ decodeNumericCharacterReference: () => (/* binding */ decodeNumericCharacterReference)
31214 /* harmony export */ });
31215 /* 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");
31216 /* 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");
31217
31218
31219
31220 /**
31221 * Turn the number (in string form as either hexa- or plain decimal) coming from
31222 * a numeric character reference into a character.
31223 *
31224 * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes
31225 * non-characters and control characters safe.
31226 *
31227 * @param {string} value
31228 * Value to decode.
31229 * @param {number} base
31230 * Numeric base.
31231 * @returns {string}
31232 * Character.
31233 */
31234 function decodeNumericCharacterReference(value, base) {
31235 const code = Number.parseInt(value, base)
31236
31237 if (
31238 // C0 except for HT, LF, FF, CR, space.
31239 code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ht ||
31240 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.vt ||
31241 (code > micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.cr && code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space) ||
31242 // Control character (DEL) of C0, and C1 controls.
31243 (code > micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.tilde && code < 160) ||
31244 // Lone high surrogates and low surrogates.
31245 (code > 55295 && code < 57344) ||
31246 // Noncharacters.
31247 (code > 64975 && code < 65008) ||
31248 /* eslint-disable no-bitwise */
31249 (code & 65535) === 65535 ||
31250 (code & 65535) === 65534 ||
31251 /* eslint-enable no-bitwise */
31252 // Out of range
31253 code > 1114111
31254 ) {
31255 return micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_1__.values.replacementCharacter
31256 }
31257
31258 return String.fromCharCode(code)
31259 }
31260
31261
31262 /***/ }),
31263
31264 /***/ "../node_modules/micromark-util-decode-string/dev/index.js":
31265 /*!*****************************************************************!*\
31266 !*** ../node_modules/micromark-util-decode-string/dev/index.js ***!
31267 \*****************************************************************/
31268 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31269
31270 "use strict";
31271 __webpack_require__.r(__webpack_exports__);
31272 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31273 /* harmony export */ decodeString: () => (/* binding */ decodeString)
31274 /* harmony export */ });
31275 /* 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");
31276 /* 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");
31277 /* 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");
31278 /* 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");
31279
31280
31281
31282
31283
31284 const characterEscapeOrReference =
31285 /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi
31286
31287 /**
31288 * Decode markdown strings (which occur in places such as fenced code info
31289 * strings, destinations, labels, and titles).
31290 *
31291 * The “string” content type allows character escapes and -references.
31292 * This decodes those.
31293 *
31294 * @param {string} value
31295 * Value to decode.
31296 * @returns {string}
31297 * Decoded value.
31298 */
31299 function decodeString(value) {
31300 return value.replace(characterEscapeOrReference, decode)
31301 }
31302
31303 /**
31304 * @param {string} $0
31305 * @param {string} $1
31306 * @param {string} $2
31307 * @returns {string}
31308 */
31309 function decode($0, $1, $2) {
31310 if ($1) {
31311 // Escape.
31312 return $1
31313 }
31314
31315 // Reference.
31316 const head = $2.charCodeAt(0)
31317
31318 if (head === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign) {
31319 const head = $2.charCodeAt(1)
31320 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
31321 return (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__.decodeNumericCharacterReference)(
31322 $2.slice(hex ? 2 : 1),
31323 hex ? micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseHexadecimal : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseDecimal
31324 )
31325 }
31326
31327 return (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_3__.decodeNamedCharacterReference)($2) || $0
31328 }
31329
31330
31331 /***/ }),
31332
31333 /***/ "../node_modules/micromark-util-encode/index.js":
31334 /*!******************************************************!*\
31335 !*** ../node_modules/micromark-util-encode/index.js ***!
31336 \******************************************************/
31337 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31338
31339 "use strict";
31340 __webpack_require__.r(__webpack_exports__);
31341 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31342 /* harmony export */ encode: () => (/* binding */ encode)
31343 /* harmony export */ });
31344 const characterReferences = {'"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}
31345
31346 /**
31347 * Encode only the dangerous HTML characters.
31348 *
31349 * This ensures that certain characters which have special meaning in HTML are
31350 * dealt with.
31351 * Technically, we can skip `>` and `"` in many cases, but CM includes them.
31352 *
31353 * @param {string} value
31354 * Value to encode.
31355 * @returns {string}
31356 * Encoded value.
31357 */
31358 function encode(value) {
31359 return value.replace(/["&<>]/g, replace)
31360
31361 /**
31362 * @param {string} value
31363 * @returns {string}
31364 */
31365 function replace(value) {
31366 // @ts-expect-error Hush, it’s fine.
31367 return '&' + characterReferences[value] + ';'
31368 }
31369 }
31370
31371
31372 /***/ }),
31373
31374 /***/ "../node_modules/micromark-util-html-tag-name/index.js":
31375 /*!*************************************************************!*\
31376 !*** ../node_modules/micromark-util-html-tag-name/index.js ***!
31377 \*************************************************************/
31378 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31379
31380 "use strict";
31381 __webpack_require__.r(__webpack_exports__);
31382 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31383 /* harmony export */ htmlBlockNames: () => (/* binding */ htmlBlockNames),
31384 /* harmony export */ htmlRawNames: () => (/* binding */ htmlRawNames)
31385 /* harmony export */ });
31386 /**
31387 * List of lowercase HTML “block” tag names.
31388 *
31389 * The list, when parsing HTML (flow), results in more relaxed rules (condition
31390 * 6).
31391 * Because they are known blocks, the HTML-like syntax doesn’t have to be
31392 * strictly parsed.
31393 * For tag names not in this list, a more strict algorithm (condition 7) is used
31394 * to detect whether the HTML-like syntax is seen as HTML (flow) or not.
31395 *
31396 * This is copied from:
31397 * <https://spec.commonmark.org/0.30/#html-blocks>.
31398 *
31399 * > 👉 **Note**: `search` was added in `CommonMark@0.31`.
31400 */
31401 const htmlBlockNames = [
31402 'address',
31403 'article',
31404 'aside',
31405 'base',
31406 'basefont',
31407 'blockquote',
31408 'body',
31409 'caption',
31410 'center',
31411 'col',
31412 'colgroup',
31413 'dd',
31414 'details',
31415 'dialog',
31416 'dir',
31417 'div',
31418 'dl',
31419 'dt',
31420 'fieldset',
31421 'figcaption',
31422 'figure',
31423 'footer',
31424 'form',
31425 'frame',
31426 'frameset',
31427 'h1',
31428 'h2',
31429 'h3',
31430 'h4',
31431 'h5',
31432 'h6',
31433 'head',
31434 'header',
31435 'hr',
31436 'html',
31437 'iframe',
31438 'legend',
31439 'li',
31440 'link',
31441 'main',
31442 'menu',
31443 'menuitem',
31444 'nav',
31445 'noframes',
31446 'ol',
31447 'optgroup',
31448 'option',
31449 'p',
31450 'param',
31451 'search',
31452 'section',
31453 'summary',
31454 'table',
31455 'tbody',
31456 'td',
31457 'tfoot',
31458 'th',
31459 'thead',
31460 'title',
31461 'tr',
31462 'track',
31463 'ul'
31464 ]
31465
31466 /**
31467 * List of lowercase HTML “raw” tag names.
31468 *
31469 * The list, when parsing HTML (flow), results in HTML that can include lines
31470 * without exiting, until a closing tag also in this list is found (condition
31471 * 1).
31472 *
31473 * This module is copied from:
31474 * <https://spec.commonmark.org/0.30/#html-blocks>.
31475 *
31476 * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.
31477 */
31478 const htmlRawNames = ['pre', 'script', 'style', 'textarea']
31479
31480
31481 /***/ }),
31482
31483 /***/ "../node_modules/micromark-util-normalize-identifier/dev/index.js":
31484 /*!************************************************************************!*\
31485 !*** ../node_modules/micromark-util-normalize-identifier/dev/index.js ***!
31486 \************************************************************************/
31487 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31488
31489 "use strict";
31490 __webpack_require__.r(__webpack_exports__);
31491 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31492 /* harmony export */ normalizeIdentifier: () => (/* binding */ normalizeIdentifier)
31493 /* harmony export */ });
31494 /* 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");
31495
31496
31497 /**
31498 * Normalize an identifier (as found in references, definitions).
31499 *
31500 * Collapses markdown whitespace, trim, and then lower- and uppercase.
31501 *
31502 * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their
31503 * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different
31504 * uppercase character (U+0398 (`Θ`)).
31505 * So, to get a canonical form, we perform both lower- and uppercase.
31506 *
31507 * Using uppercase last makes sure keys will never interact with default
31508 * prototypal values (such as `constructor`): nothing in the prototype of
31509 * `Object` is uppercase.
31510 *
31511 * @param {string} value
31512 * Identifier to normalize.
31513 * @returns {string}
31514 * Normalized identifier.
31515 */
31516 function normalizeIdentifier(value) {
31517 return (
31518 value
31519 // Collapse markdown whitespace.
31520 .replace(/[\t\n\r ]+/g, micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_0__.values.space)
31521 // Trim.
31522 .replace(/^ | $/g, '')
31523 // Some characters are considered “uppercase”, but if their lowercase
31524 // counterpart is uppercased will result in a different uppercase
31525 // character.
31526 // Hence, to get that form, we perform both lower- and uppercase.
31527 // Upper case makes sure keys will not interact with default prototypal
31528 // methods: no method is uppercase.
31529 .toLowerCase()
31530 .toUpperCase()
31531 )
31532 }
31533
31534
31535 /***/ }),
31536
31537 /***/ "../node_modules/micromark-util-resolve-all/index.js":
31538 /*!***********************************************************!*\
31539 !*** ../node_modules/micromark-util-resolve-all/index.js ***!
31540 \***********************************************************/
31541 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31542
31543 "use strict";
31544 __webpack_require__.r(__webpack_exports__);
31545 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31546 /* harmony export */ resolveAll: () => (/* binding */ resolveAll)
31547 /* harmony export */ });
31548 /**
31549 * @typedef {import('micromark-util-types').Event} Event
31550 * @typedef {import('micromark-util-types').Resolver} Resolver
31551 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
31552 */
31553
31554 /**
31555 * Call all `resolveAll`s.
31556 *
31557 * @param {Array<{resolveAll?: Resolver | undefined}>} constructs
31558 * List of constructs, optionally with `resolveAll`s.
31559 * @param {Array<Event>} events
31560 * List of events.
31561 * @param {TokenizeContext} context
31562 * Context used by `tokenize`.
31563 * @returns {Array<Event>}
31564 * Changed events.
31565 */
31566 function resolveAll(constructs, events, context) {
31567 /** @type {Array<Resolver>} */
31568 const called = []
31569 let index = -1
31570
31571 while (++index < constructs.length) {
31572 const resolve = constructs[index].resolveAll
31573
31574 if (resolve && !called.includes(resolve)) {
31575 events = resolve(events, context)
31576 called.push(resolve)
31577 }
31578 }
31579
31580 return events
31581 }
31582
31583
31584 /***/ }),
31585
31586 /***/ "../node_modules/micromark-util-sanitize-uri/dev/index.js":
31587 /*!****************************************************************!*\
31588 !*** ../node_modules/micromark-util-sanitize-uri/dev/index.js ***!
31589 \****************************************************************/
31590 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31591
31592 "use strict";
31593 __webpack_require__.r(__webpack_exports__);
31594 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31595 /* harmony export */ normalizeUri: () => (/* binding */ normalizeUri),
31596 /* harmony export */ sanitizeUri: () => (/* binding */ sanitizeUri)
31597 /* harmony export */ });
31598 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
31599 /* harmony import */ var micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-encode */ "../node_modules/micromark-util-encode/index.js");
31600 /* 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");
31601 /* 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");
31602
31603
31604
31605
31606
31607 /**
31608 * Make a value safe for injection as a URL.
31609 *
31610 * This encodes unsafe characters with percent-encoding and skips already
31611 * encoded sequences (see `normalizeUri`).
31612 * Further unsafe characters are encoded as character references (see
31613 * `micromark-util-encode`).
31614 *
31615 * A regex of allowed protocols can be given, in which case the URL is
31616 * sanitized.
31617 * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or
31618 * `/^https?$/i` for `img[src]` (this is what `github.com` allows).
31619 * If the URL includes an unknown protocol (one not matched by `protocol`, such
31620 * as a dangerous example, `javascript:`), the value is ignored.
31621 *
31622 * @param {string | undefined} url
31623 * URI to sanitize.
31624 * @param {RegExp | null | undefined} [protocol]
31625 * Allowed protocols.
31626 * @returns {string}
31627 * Sanitized URI.
31628 */
31629 function sanitizeUri(url, protocol) {
31630 const value = (0,micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__.encode)(normalizeUri(url || ''))
31631
31632 if (!protocol) {
31633 return value
31634 }
31635
31636 const colon = value.indexOf(':')
31637 const questionMark = value.indexOf('?')
31638 const numberSign = value.indexOf('#')
31639 const slash = value.indexOf('/')
31640
31641 if (
31642 // If there is no protocol, it’s relative.
31643 colon < 0 ||
31644 // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.
31645 (slash > -1 && colon > slash) ||
31646 (questionMark > -1 && colon > questionMark) ||
31647 (numberSign > -1 && colon > numberSign) ||
31648 // It is a protocol, it should be allowed.
31649 protocol.test(value.slice(0, colon))
31650 ) {
31651 return value
31652 }
31653
31654 return ''
31655 }
31656
31657 /**
31658 * Normalize a URL.
31659 *
31660 * Encode unsafe characters with percent-encoding, skipping already encoded
31661 * sequences.
31662 *
31663 * @param {string} value
31664 * URI to normalize.
31665 * @returns {string}
31666 * Normalized URI.
31667 */
31668 function normalizeUri(value) {
31669 /** @type {Array<string>} */
31670 const result = []
31671 let index = -1
31672 let start = 0
31673 let skip = 0
31674
31675 while (++index < value.length) {
31676 const code = value.charCodeAt(index)
31677 /** @type {string} */
31678 let replace = ''
31679
31680 // A correct percent encoded value.
31681 if (
31682 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.percentSign &&
31683 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 1)) &&
31684 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 2))
31685 ) {
31686 skip = 2
31687 }
31688 // ASCII.
31689 else if (code < 128) {
31690 if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {
31691 replace = String.fromCharCode(code)
31692 }
31693 }
31694 // Astral.
31695 else if (code > 55295 && code < 57344) {
31696 const next = value.charCodeAt(index + 1)
31697
31698 // A correct surrogate pair.
31699 if (code < 56320 && next > 56319 && next < 57344) {
31700 replace = String.fromCharCode(code, next)
31701 skip = 1
31702 }
31703 // Lone surrogate.
31704 else {
31705 replace = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_3__.values.replacementCharacter
31706 }
31707 }
31708 // Unicode.
31709 else {
31710 replace = String.fromCharCode(code)
31711 }
31712
31713 if (replace) {
31714 result.push(value.slice(start, index), encodeURIComponent(replace))
31715 start = index + skip + 1
31716 replace = ''
31717 }
31718
31719 if (skip) {
31720 index += skip
31721 skip = 0
31722 }
31723 }
31724
31725 return result.join('') + value.slice(start)
31726 }
31727
31728
31729 /***/ }),
31730
31731 /***/ "../node_modules/micromark-util-subtokenize/dev/index.js":
31732 /*!***************************************************************!*\
31733 !*** ../node_modules/micromark-util-subtokenize/dev/index.js ***!
31734 \***************************************************************/
31735 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31736
31737 "use strict";
31738 __webpack_require__.r(__webpack_exports__);
31739 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31740 /* harmony export */ subtokenize: () => (/* binding */ subtokenize)
31741 /* harmony export */ });
31742 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
31743 /* 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");
31744 /* 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");
31745 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
31746 /**
31747 * @typedef {import('micromark-util-types').Chunk} Chunk
31748 * @typedef {import('micromark-util-types').Event} Event
31749 * @typedef {import('micromark-util-types').Token} Token
31750 */
31751
31752
31753
31754
31755
31756
31757 /**
31758 * Tokenize subcontent.
31759 *
31760 * @param {Array<Event>} events
31761 * List of events.
31762 * @returns {boolean}
31763 * Whether subtokens were found.
31764 */
31765 function subtokenize(events) {
31766 /** @type {Record<string, number>} */
31767 const jumps = {}
31768 let index = -1
31769 /** @type {Event} */
31770 let event
31771 /** @type {number | undefined} */
31772 let lineIndex
31773 /** @type {number} */
31774 let otherIndex
31775 /** @type {Event} */
31776 let otherEvent
31777 /** @type {Array<Event>} */
31778 let parameters
31779 /** @type {Array<Event>} */
31780 let subevents
31781 /** @type {boolean | undefined} */
31782 let more
31783
31784 while (++index < events.length) {
31785 while (index in jumps) {
31786 index = jumps[index]
31787 }
31788
31789 event = events[index]
31790
31791 // Add a hook for the GFM tasklist extension, which needs to know if text
31792 // is in the first content of a list item.
31793 if (
31794 index &&
31795 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow &&
31796 events[index - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix
31797 ) {
31798 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(event[1]._tokenizer, 'expected `_tokenizer` on subtokens')
31799 subevents = event[1]._tokenizer.events
31800 otherIndex = 0
31801
31802 if (
31803 otherIndex < subevents.length &&
31804 subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31805 ) {
31806 otherIndex += 2
31807 }
31808
31809 if (
31810 otherIndex < subevents.length &&
31811 subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content
31812 ) {
31813 while (++otherIndex < subevents.length) {
31814 if (subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
31815 break
31816 }
31817
31818 if (subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkText) {
31819 subevents[otherIndex][1]._isInFirstContentOfListItem = true
31820 otherIndex++
31821 }
31822 }
31823 }
31824 }
31825
31826 // Enter.
31827 if (event[0] === 'enter') {
31828 if (event[1].contentType) {
31829 Object.assign(jumps, subcontent(events, index))
31830 index = jumps[index]
31831 more = true
31832 }
31833 }
31834 // Exit.
31835 else if (event[1]._container) {
31836 otherIndex = index
31837 lineIndex = undefined
31838
31839 while (otherIndex--) {
31840 otherEvent = events[otherIndex]
31841
31842 if (
31843 otherEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
31844 otherEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31845 ) {
31846 if (otherEvent[0] === 'enter') {
31847 if (lineIndex) {
31848 events[lineIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31849 }
31850
31851 otherEvent[1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
31852 lineIndex = otherIndex
31853 }
31854 } else {
31855 break
31856 }
31857 }
31858
31859 if (lineIndex) {
31860 // Fix position.
31861 event[1].end = Object.assign({}, events[lineIndex][1].start)
31862
31863 // Switch container exit w/ line endings.
31864 parameters = events.slice(lineIndex, index)
31865 parameters.unshift(event)
31866 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, lineIndex, index - lineIndex + 1, parameters)
31867 }
31868 }
31869 }
31870
31871 return !more
31872 }
31873
31874 /**
31875 * Tokenize embedded tokens.
31876 *
31877 * @param {Array<Event>} events
31878 * @param {number} eventIndex
31879 * @returns {Record<string, number>}
31880 */
31881 function subcontent(events, eventIndex) {
31882 const token = events[eventIndex][1]
31883 const context = events[eventIndex][2]
31884 let startPosition = eventIndex - 1
31885 /** @type {Array<number>} */
31886 const startPositions = []
31887 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(token.contentType, 'expected `contentType` on subtokens')
31888 const tokenizer =
31889 token._tokenizer || context.parser[token.contentType](token.start)
31890 const childEvents = tokenizer.events
31891 /** @type {Array<[number, number]>} */
31892 const jumps = []
31893 /** @type {Record<string, number>} */
31894 const gaps = {}
31895 /** @type {Array<Chunk>} */
31896 let stream
31897 /** @type {Token | undefined} */
31898 let previous
31899 let index = -1
31900 /** @type {Token | undefined} */
31901 let current = token
31902 let adjust = 0
31903 let start = 0
31904 const breaks = [start]
31905
31906 // Loop forward through the linked tokens to pass them in order to the
31907 // subtokenizer.
31908 while (current) {
31909 // Find the position of the event for this token.
31910 while (events[++startPosition][1] !== current) {
31911 // Empty.
31912 }
31913
31914 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
31915 !previous || current.previous === previous,
31916 'expected previous to match'
31917 )
31918 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(!previous || previous.next === current, 'expected next to match')
31919
31920 startPositions.push(startPosition)
31921
31922 if (!current._tokenizer) {
31923 stream = context.sliceStream(current)
31924
31925 if (!current.next) {
31926 stream.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof)
31927 }
31928
31929 if (previous) {
31930 tokenizer.defineSkip(current.start)
31931 }
31932
31933 if (current._isInFirstContentOfListItem) {
31934 tokenizer._gfmTasklistFirstContentOfListItem = true
31935 }
31936
31937 tokenizer.write(stream)
31938
31939 if (current._isInFirstContentOfListItem) {
31940 tokenizer._gfmTasklistFirstContentOfListItem = undefined
31941 }
31942 }
31943
31944 // Unravel the next token.
31945 previous = current
31946 current = current.next
31947 }
31948
31949 // Now, loop back through all events (and linked tokens), to figure out which
31950 // parts belong where.
31951 current = token
31952
31953 while (++index < childEvents.length) {
31954 if (
31955 // Find a void token that includes a break.
31956 childEvents[index][0] === 'exit' &&
31957 childEvents[index - 1][0] === 'enter' &&
31958 childEvents[index][1].type === childEvents[index - 1][1].type &&
31959 childEvents[index][1].start.line !== childEvents[index][1].end.line
31960 ) {
31961 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(current, 'expected a current token')
31962 start = index + 1
31963 breaks.push(start)
31964 // Help GC.
31965 current._tokenizer = undefined
31966 current.previous = undefined
31967 current = current.next
31968 }
31969 }
31970
31971 // Help GC.
31972 tokenizer.events = []
31973
31974 // If there’s one more token (which is the cases for lines that end in an
31975 // EOF), that’s perfect: the last point we found starts it.
31976 // If there isn’t then make sure any remaining content is added to it.
31977 if (current) {
31978 // Help GC.
31979 current._tokenizer = undefined
31980 current.previous = undefined
31981 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(!current.next, 'expected no next token')
31982 } else {
31983 breaks.pop()
31984 }
31985
31986 // Now splice the events from the subtokenizer into the current events,
31987 // moving back to front so that splice indices aren’t affected.
31988 index = breaks.length
31989
31990 while (index--) {
31991 const slice = childEvents.slice(breaks[index], breaks[index + 1])
31992 const start = startPositions.pop()
31993 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(start !== undefined, 'expected a start position when splicing')
31994 jumps.unshift([start, start + slice.length - 1])
31995 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, start, 2, slice)
31996 }
31997
31998 index = -1
31999
32000 while (++index < jumps.length) {
32001 gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]
32002 adjust += jumps[index][1] - jumps[index][0] - 1
32003 }
32004
32005 return gaps
32006 }
32007
32008
32009 /***/ }),
32010
32011 /***/ "../node_modules/micromark-util-symbol/codes.js":
32012 /*!******************************************************!*\
32013 !*** ../node_modules/micromark-util-symbol/codes.js ***!
32014 \******************************************************/
32015 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32016
32017 "use strict";
32018 __webpack_require__.r(__webpack_exports__);
32019 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32020 /* harmony export */ codes: () => (/* binding */ codes)
32021 /* harmony export */ });
32022 /**
32023 * Character codes.
32024 *
32025 * This module is compiled away!
32026 *
32027 * micromark works based on character codes.
32028 * This module contains constants for the ASCII block and the replacement
32029 * character.
32030 * A couple of them are handled in a special way, such as the line endings
32031 * (CR, LF, and CR+LF, commonly known as end-of-line: EOLs), the tab (horizontal
32032 * tab) and its expansion based on what column it’s at (virtual space),
32033 * and the end-of-file (eof) character.
32034 * As values are preprocessed before handling them, the actual characters LF,
32035 * CR, HT, and NUL (which is present as the replacement character), are
32036 * guaranteed to not exist.
32037 *
32038 * Unicode basic latin block.
32039 */
32040 const codes = /** @type {const} */ ({
32041 carriageReturn: -5,
32042 lineFeed: -4,
32043 carriageReturnLineFeed: -3,
32044 horizontalTab: -2,
32045 virtualSpace: -1,
32046 eof: null,
32047 nul: 0,
32048 soh: 1,
32049 stx: 2,
32050 etx: 3,
32051 eot: 4,
32052 enq: 5,
32053 ack: 6,
32054 bel: 7,
32055 bs: 8,
32056 ht: 9, // `\t`
32057 lf: 10, // `\n`
32058 vt: 11, // `\v`
32059 ff: 12, // `\f`
32060 cr: 13, // `\r`
32061 so: 14,
32062 si: 15,
32063 dle: 16,
32064 dc1: 17,
32065 dc2: 18,
32066 dc3: 19,
32067 dc4: 20,
32068 nak: 21,
32069 syn: 22,
32070 etb: 23,
32071 can: 24,
32072 em: 25,
32073 sub: 26,
32074 esc: 27,
32075 fs: 28,
32076 gs: 29,
32077 rs: 30,
32078 us: 31,
32079 space: 32,
32080 exclamationMark: 33, // `!`
32081 quotationMark: 34, // `"`
32082 numberSign: 35, // `#`
32083 dollarSign: 36, // `$`
32084 percentSign: 37, // `%`
32085 ampersand: 38, // `&`
32086 apostrophe: 39, // `'`
32087 leftParenthesis: 40, // `(`
32088 rightParenthesis: 41, // `)`
32089 asterisk: 42, // `*`
32090 plusSign: 43, // `+`
32091 comma: 44, // `,`
32092 dash: 45, // `-`
32093 dot: 46, // `.`
32094 slash: 47, // `/`
32095 digit0: 48, // `0`
32096 digit1: 49, // `1`
32097 digit2: 50, // `2`
32098 digit3: 51, // `3`
32099 digit4: 52, // `4`
32100 digit5: 53, // `5`
32101 digit6: 54, // `6`
32102 digit7: 55, // `7`
32103 digit8: 56, // `8`
32104 digit9: 57, // `9`
32105 colon: 58, // `:`
32106 semicolon: 59, // `;`
32107 lessThan: 60, // `<`
32108 equalsTo: 61, // `=`
32109 greaterThan: 62, // `>`
32110 questionMark: 63, // `?`
32111 atSign: 64, // `@`
32112 uppercaseA: 65, // `A`
32113 uppercaseB: 66, // `B`
32114 uppercaseC: 67, // `C`
32115 uppercaseD: 68, // `D`
32116 uppercaseE: 69, // `E`
32117 uppercaseF: 70, // `F`
32118 uppercaseG: 71, // `G`
32119 uppercaseH: 72, // `H`
32120 uppercaseI: 73, // `I`
32121 uppercaseJ: 74, // `J`
32122 uppercaseK: 75, // `K`
32123 uppercaseL: 76, // `L`
32124 uppercaseM: 77, // `M`
32125 uppercaseN: 78, // `N`
32126 uppercaseO: 79, // `O`
32127 uppercaseP: 80, // `P`
32128 uppercaseQ: 81, // `Q`
32129 uppercaseR: 82, // `R`
32130 uppercaseS: 83, // `S`
32131 uppercaseT: 84, // `T`
32132 uppercaseU: 85, // `U`
32133 uppercaseV: 86, // `V`
32134 uppercaseW: 87, // `W`
32135 uppercaseX: 88, // `X`
32136 uppercaseY: 89, // `Y`
32137 uppercaseZ: 90, // `Z`
32138 leftSquareBracket: 91, // `[`
32139 backslash: 92, // `\`
32140 rightSquareBracket: 93, // `]`
32141 caret: 94, // `^`
32142 underscore: 95, // `_`
32143 graveAccent: 96, // `` ` ``
32144 lowercaseA: 97, // `a`
32145 lowercaseB: 98, // `b`
32146 lowercaseC: 99, // `c`
32147 lowercaseD: 100, // `d`
32148 lowercaseE: 101, // `e`
32149 lowercaseF: 102, // `f`
32150 lowercaseG: 103, // `g`
32151 lowercaseH: 104, // `h`
32152 lowercaseI: 105, // `i`
32153 lowercaseJ: 106, // `j`
32154 lowercaseK: 107, // `k`
32155 lowercaseL: 108, // `l`
32156 lowercaseM: 109, // `m`
32157 lowercaseN: 110, // `n`
32158 lowercaseO: 111, // `o`
32159 lowercaseP: 112, // `p`
32160 lowercaseQ: 113, // `q`
32161 lowercaseR: 114, // `r`
32162 lowercaseS: 115, // `s`
32163 lowercaseT: 116, // `t`
32164 lowercaseU: 117, // `u`
32165 lowercaseV: 118, // `v`
32166 lowercaseW: 119, // `w`
32167 lowercaseX: 120, // `x`
32168 lowercaseY: 121, // `y`
32169 lowercaseZ: 122, // `z`
32170 leftCurlyBrace: 123, // `{`
32171 verticalBar: 124, // `|`
32172 rightCurlyBrace: 125, // `}`
32173 tilde: 126, // `~`
32174 del: 127,
32175 // Unicode Specials block.
32176 byteOrderMarker: 65279,
32177 // Unicode Specials block.
32178 replacementCharacter: 65533 // ``
32179 })
32180
32181
32182 /***/ }),
32183
32184 /***/ "../node_modules/micromark-util-symbol/constants.js":
32185 /*!**********************************************************!*\
32186 !*** ../node_modules/micromark-util-symbol/constants.js ***!
32187 \**********************************************************/
32188 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32189
32190 "use strict";
32191 __webpack_require__.r(__webpack_exports__);
32192 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32193 /* harmony export */ constants: () => (/* binding */ constants)
32194 /* harmony export */ });
32195 /**
32196 * This module is compiled away!
32197 *
32198 * Parsing markdown comes with a couple of constants, such as minimum or maximum
32199 * sizes of certain sequences.
32200 * Additionally, there are a couple symbols used inside micromark.
32201 * These are all defined here, but compiled away by scripts.
32202 */
32203 const constants = /** @type {const} */ ({
32204 attentionSideBefore: 1, // Symbol to mark an attention sequence as before content: `*a`
32205 attentionSideAfter: 2, // Symbol to mark an attention sequence as after content: `a*`
32206 atxHeadingOpeningFenceSizeMax: 6, // 6 number signs is fine, 7 isn’t.
32207 autolinkDomainSizeMax: 63, // 63 characters is fine, 64 is too many.
32208 autolinkSchemeSizeMax: 32, // 32 characters is fine, 33 is too many.
32209 cdataOpeningString: 'CDATA[', // And preceded by `<![`.
32210 characterGroupWhitespace: 1, // Symbol used to indicate a character is whitespace
32211 characterGroupPunctuation: 2, // Symbol used to indicate a character is punctuation
32212 characterReferenceDecimalSizeMax: 7, // `&#9999999;`.
32213 characterReferenceHexadecimalSizeMax: 6, // `&#xff9999;`.
32214 characterReferenceNamedSizeMax: 31, // `&CounterClockwiseContourIntegral;`.
32215 codeFencedSequenceSizeMin: 3, // At least 3 ticks or tildes are needed.
32216 contentTypeDocument: 'document',
32217 contentTypeFlow: 'flow',
32218 contentTypeContent: 'content',
32219 contentTypeString: 'string',
32220 contentTypeText: 'text',
32221 hardBreakPrefixSizeMin: 2, // At least 2 trailing spaces are needed.
32222 htmlRaw: 1, // Symbol for `<script>`
32223 htmlComment: 2, // Symbol for `<!---->`
32224 htmlInstruction: 3, // Symbol for `<?php?>`
32225 htmlDeclaration: 4, // Symbol for `<!doctype>`
32226 htmlCdata: 5, // Symbol for `<![CDATA[]]>`
32227 htmlBasic: 6, // Symbol for `<div`
32228 htmlComplete: 7, // Symbol for `<x>`
32229 htmlRawSizeMax: 8, // Length of `textarea`.
32230 linkResourceDestinationBalanceMax: 32, // See: <https://spec.commonmark.org/0.30/#link-destination>, <https://github.com/remarkjs/react-markdown/issues/658#issuecomment-984345577>
32231 linkReferenceSizeMax: 999, // See: <https://spec.commonmark.org/0.30/#link-label>
32232 listItemValueSizeMax: 10, // See: <https://spec.commonmark.org/0.30/#ordered-list-marker>
32233 numericBaseDecimal: 10,
32234 numericBaseHexadecimal: 0x10,
32235 tabSize: 4, // Tabs have a hard-coded size of 4, per CommonMark.
32236 thematicBreakMarkerCountMin: 3, // At least 3 asterisks, dashes, or underscores are needed.
32237 v8MaxSafeChunkSize: 10000 // V8 (and potentially others) have problems injecting giant arrays into other arrays, hence we operate in chunks.
32238 })
32239
32240
32241 /***/ }),
32242
32243 /***/ "../node_modules/micromark-util-symbol/types.js":
32244 /*!******************************************************!*\
32245 !*** ../node_modules/micromark-util-symbol/types.js ***!
32246 \******************************************************/
32247 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32248
32249 "use strict";
32250 __webpack_require__.r(__webpack_exports__);
32251 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32252 /* harmony export */ types: () => (/* binding */ types)
32253 /* harmony export */ });
32254 /**
32255 * This module is compiled away!
32256 *
32257 * Here is the list of all types of tokens exposed by micromark, with a short
32258 * explanation of what they include and where they are found.
32259 * In picking names, generally, the rule is to be as explicit as possible
32260 * instead of reusing names.
32261 * For example, there is a `definitionDestination` and a `resourceDestination`,
32262 * instead of one shared name.
32263 */
32264
32265 // Note: when changing the next record, you must also change `TokenTypeMap`
32266 // in `micromark-util-types/index.d.ts`.
32267 const types = /** @type {const} */ ({
32268 // Generic type for data, such as in a title, a destination, etc.
32269 data: 'data',
32270
32271 // Generic type for syntactic whitespace (tabs, virtual spaces, spaces).
32272 // Such as, between a fenced code fence and an info string.
32273 whitespace: 'whitespace',
32274
32275 // Generic type for line endings (line feed, carriage return, carriage return +
32276 // line feed).
32277 lineEnding: 'lineEnding',
32278
32279 // A line ending, but ending a blank line.
32280 lineEndingBlank: 'lineEndingBlank',
32281
32282 // Generic type for whitespace (tabs, virtual spaces, spaces) at the start of a
32283 // line.
32284 linePrefix: 'linePrefix',
32285
32286 // Generic type for whitespace (tabs, virtual spaces, spaces) at the end of a
32287 // line.
32288 lineSuffix: 'lineSuffix',
32289
32290 // Whole ATX heading:
32291 //
32292 // ```markdown
32293 // #
32294 // ## Alpha
32295 // ### Bravo ###
32296 // ```
32297 //
32298 // Includes `atxHeadingSequence`, `whitespace`, `atxHeadingText`.
32299 atxHeading: 'atxHeading',
32300
32301 // Sequence of number signs in an ATX heading (`###`).
32302 atxHeadingSequence: 'atxHeadingSequence',
32303
32304 // Content in an ATX heading (`alpha`).
32305 // Includes text.
32306 atxHeadingText: 'atxHeadingText',
32307
32308 // Whole autolink (`<https://example.com>` or `<admin@example.com>`)
32309 // Includes `autolinkMarker` and `autolinkProtocol` or `autolinkEmail`.
32310 autolink: 'autolink',
32311
32312 // Email autolink w/o markers (`admin@example.com`)
32313 autolinkEmail: 'autolinkEmail',
32314
32315 // Marker around an `autolinkProtocol` or `autolinkEmail` (`<` or `>`).
32316 autolinkMarker: 'autolinkMarker',
32317
32318 // Protocol autolink w/o markers (`https://example.com`)
32319 autolinkProtocol: 'autolinkProtocol',
32320
32321 // A whole character escape (`\-`).
32322 // Includes `escapeMarker` and `characterEscapeValue`.
32323 characterEscape: 'characterEscape',
32324
32325 // The escaped character (`-`).
32326 characterEscapeValue: 'characterEscapeValue',
32327
32328 // A whole character reference (`&amp;`, `&#8800;`, or `&#x1D306;`).
32329 // Includes `characterReferenceMarker`, an optional
32330 // `characterReferenceMarkerNumeric`, in which case an optional
32331 // `characterReferenceMarkerHexadecimal`, and a `characterReferenceValue`.
32332 characterReference: 'characterReference',
32333
32334 // The start or end marker (`&` or `;`).
32335 characterReferenceMarker: 'characterReferenceMarker',
32336
32337 // Mark reference as numeric (`#`).
32338 characterReferenceMarkerNumeric: 'characterReferenceMarkerNumeric',
32339
32340 // Mark reference as numeric (`x` or `X`).
32341 characterReferenceMarkerHexadecimal: 'characterReferenceMarkerHexadecimal',
32342
32343 // Value of character reference w/o markers (`amp`, `8800`, or `1D306`).
32344 characterReferenceValue: 'characterReferenceValue',
32345
32346 // Whole fenced code:
32347 //
32348 // ````markdown
32349 // ```js
32350 // alert(1)
32351 // ```
32352 // ````
32353 codeFenced: 'codeFenced',
32354
32355 // A fenced code fence, including whitespace, sequence, info, and meta
32356 // (` ```js `).
32357 codeFencedFence: 'codeFencedFence',
32358
32359 // Sequence of grave accent or tilde characters (` ``` `) in a fence.
32360 codeFencedFenceSequence: 'codeFencedFenceSequence',
32361
32362 // Info word (`js`) in a fence.
32363 // Includes string.
32364 codeFencedFenceInfo: 'codeFencedFenceInfo',
32365
32366 // Meta words (`highlight="1"`) in a fence.
32367 // Includes string.
32368 codeFencedFenceMeta: 'codeFencedFenceMeta',
32369
32370 // A line of code.
32371 codeFlowValue: 'codeFlowValue',
32372
32373 // Whole indented code:
32374 //
32375 // ```markdown
32376 // alert(1)
32377 // ```
32378 //
32379 // Includes `lineEnding`, `linePrefix`, and `codeFlowValue`.
32380 codeIndented: 'codeIndented',
32381
32382 // A text code (``` `alpha` ```).
32383 // Includes `codeTextSequence`, `codeTextData`, `lineEnding`, and can include
32384 // `codeTextPadding`.
32385 codeText: 'codeText',
32386
32387 codeTextData: 'codeTextData',
32388
32389 // A space or line ending right after or before a tick.
32390 codeTextPadding: 'codeTextPadding',
32391
32392 // A text code fence (` `` `).
32393 codeTextSequence: 'codeTextSequence',
32394
32395 // Whole content:
32396 //
32397 // ```markdown
32398 // [a]: b
32399 // c
32400 // =
32401 // d
32402 // ```
32403 //
32404 // Includes `paragraph` and `definition`.
32405 content: 'content',
32406 // Whole definition:
32407 //
32408 // ```markdown
32409 // [micromark]: https://github.com/micromark/micromark
32410 // ```
32411 //
32412 // Includes `definitionLabel`, `definitionMarker`, `whitespace`,
32413 // `definitionDestination`, and optionally `lineEnding` and `definitionTitle`.
32414 definition: 'definition',
32415
32416 // Destination of a definition (`https://github.com/micromark/micromark` or
32417 // `<https://github.com/micromark/micromark>`).
32418 // Includes `definitionDestinationLiteral` or `definitionDestinationRaw`.
32419 definitionDestination: 'definitionDestination',
32420
32421 // Enclosed destination of a definition
32422 // (`<https://github.com/micromark/micromark>`).
32423 // Includes `definitionDestinationLiteralMarker` and optionally
32424 // `definitionDestinationString`.
32425 definitionDestinationLiteral: 'definitionDestinationLiteral',
32426
32427 // Markers of an enclosed definition destination (`<` or `>`).
32428 definitionDestinationLiteralMarker: 'definitionDestinationLiteralMarker',
32429
32430 // Unenclosed destination of a definition
32431 // (`https://github.com/micromark/micromark`).
32432 // Includes `definitionDestinationString`.
32433 definitionDestinationRaw: 'definitionDestinationRaw',
32434
32435 // Text in an destination (`https://github.com/micromark/micromark`).
32436 // Includes string.
32437 definitionDestinationString: 'definitionDestinationString',
32438
32439 // Label of a definition (`[micromark]`).
32440 // Includes `definitionLabelMarker` and `definitionLabelString`.
32441 definitionLabel: 'definitionLabel',
32442
32443 // Markers of a definition label (`[` or `]`).
32444 definitionLabelMarker: 'definitionLabelMarker',
32445
32446 // Value of a definition label (`micromark`).
32447 // Includes string.
32448 definitionLabelString: 'definitionLabelString',
32449
32450 // Marker between a label and a destination (`:`).
32451 definitionMarker: 'definitionMarker',
32452
32453 // Title of a definition (`"x"`, `'y'`, or `(z)`).
32454 // Includes `definitionTitleMarker` and optionally `definitionTitleString`.
32455 definitionTitle: 'definitionTitle',
32456
32457 // Marker around a title of a definition (`"`, `'`, `(`, or `)`).
32458 definitionTitleMarker: 'definitionTitleMarker',
32459
32460 // Data without markers in a title (`z`).
32461 // Includes string.
32462 definitionTitleString: 'definitionTitleString',
32463
32464 // Emphasis (`*alpha*`).
32465 // Includes `emphasisSequence` and `emphasisText`.
32466 emphasis: 'emphasis',
32467
32468 // Sequence of emphasis markers (`*` or `_`).
32469 emphasisSequence: 'emphasisSequence',
32470
32471 // Emphasis text (`alpha`).
32472 // Includes text.
32473 emphasisText: 'emphasisText',
32474
32475 // The character escape marker (`\`).
32476 escapeMarker: 'escapeMarker',
32477
32478 // A hard break created with a backslash (`\\n`).
32479 // Note: does not include the line ending.
32480 hardBreakEscape: 'hardBreakEscape',
32481
32482 // A hard break created with trailing spaces (` \n`).
32483 // Does not include the line ending.
32484 hardBreakTrailing: 'hardBreakTrailing',
32485
32486 // Flow HTML:
32487 //
32488 // ```markdown
32489 // <div
32490 // ```
32491 //
32492 // Inlcudes `lineEnding`, `htmlFlowData`.
32493 htmlFlow: 'htmlFlow',
32494
32495 htmlFlowData: 'htmlFlowData',
32496
32497 // HTML in text (the tag in `a <i> b`).
32498 // Includes `lineEnding`, `htmlTextData`.
32499 htmlText: 'htmlText',
32500
32501 htmlTextData: 'htmlTextData',
32502
32503 // Whole image (`![alpha](bravo)`, `![alpha][bravo]`, `![alpha][]`, or
32504 // `![alpha]`).
32505 // Includes `label` and an optional `resource` or `reference`.
32506 image: 'image',
32507
32508 // Whole link label (`[*alpha*]`).
32509 // Includes `labelLink` or `labelImage`, `labelText`, and `labelEnd`.
32510 label: 'label',
32511
32512 // Text in an label (`*alpha*`).
32513 // Includes text.
32514 labelText: 'labelText',
32515
32516 // Start a link label (`[`).
32517 // Includes a `labelMarker`.
32518 labelLink: 'labelLink',
32519
32520 // Start an image label (`![`).
32521 // Includes `labelImageMarker` and `labelMarker`.
32522 labelImage: 'labelImage',
32523
32524 // Marker of a label (`[` or `]`).
32525 labelMarker: 'labelMarker',
32526
32527 // Marker to start an image (`!`).
32528 labelImageMarker: 'labelImageMarker',
32529
32530 // End a label (`]`).
32531 // Includes `labelMarker`.
32532 labelEnd: 'labelEnd',
32533
32534 // Whole link (`[alpha](bravo)`, `[alpha][bravo]`, `[alpha][]`, or `[alpha]`).
32535 // Includes `label` and an optional `resource` or `reference`.
32536 link: 'link',
32537
32538 // Whole paragraph:
32539 //
32540 // ```markdown
32541 // alpha
32542 // bravo.
32543 // ```
32544 //
32545 // Includes text.
32546 paragraph: 'paragraph',
32547
32548 // A reference (`[alpha]` or `[]`).
32549 // Includes `referenceMarker` and an optional `referenceString`.
32550 reference: 'reference',
32551
32552 // A reference marker (`[` or `]`).
32553 referenceMarker: 'referenceMarker',
32554
32555 // Reference text (`alpha`).
32556 // Includes string.
32557 referenceString: 'referenceString',
32558
32559 // A resource (`(https://example.com "alpha")`).
32560 // Includes `resourceMarker`, an optional `resourceDestination` with an optional
32561 // `whitespace` and `resourceTitle`.
32562 resource: 'resource',
32563
32564 // A resource destination (`https://example.com`).
32565 // Includes `resourceDestinationLiteral` or `resourceDestinationRaw`.
32566 resourceDestination: 'resourceDestination',
32567
32568 // A literal resource destination (`<https://example.com>`).
32569 // Includes `resourceDestinationLiteralMarker` and optionally
32570 // `resourceDestinationString`.
32571 resourceDestinationLiteral: 'resourceDestinationLiteral',
32572
32573 // A resource destination marker (`<` or `>`).
32574 resourceDestinationLiteralMarker: 'resourceDestinationLiteralMarker',
32575
32576 // A raw resource destination (`https://example.com`).
32577 // Includes `resourceDestinationString`.
32578 resourceDestinationRaw: 'resourceDestinationRaw',
32579
32580 // Resource destination text (`https://example.com`).
32581 // Includes string.
32582 resourceDestinationString: 'resourceDestinationString',
32583
32584 // A resource marker (`(` or `)`).
32585 resourceMarker: 'resourceMarker',
32586
32587 // A resource title (`"alpha"`, `'alpha'`, or `(alpha)`).
32588 // Includes `resourceTitleMarker` and optionally `resourceTitleString`.
32589 resourceTitle: 'resourceTitle',
32590
32591 // A resource title marker (`"`, `'`, `(`, or `)`).
32592 resourceTitleMarker: 'resourceTitleMarker',
32593
32594 // Resource destination title (`alpha`).
32595 // Includes string.
32596 resourceTitleString: 'resourceTitleString',
32597
32598 // Whole setext heading:
32599 //
32600 // ```markdown
32601 // alpha
32602 // bravo
32603 // =====
32604 // ```
32605 //
32606 // Includes `setextHeadingText`, `lineEnding`, `linePrefix`, and
32607 // `setextHeadingLine`.
32608 setextHeading: 'setextHeading',
32609
32610 // Content in a setext heading (`alpha\nbravo`).
32611 // Includes text.
32612 setextHeadingText: 'setextHeadingText',
32613
32614 // Underline in a setext heading, including whitespace suffix (`==`).
32615 // Includes `setextHeadingLineSequence`.
32616 setextHeadingLine: 'setextHeadingLine',
32617
32618 // Sequence of equals or dash characters in underline in a setext heading (`-`).
32619 setextHeadingLineSequence: 'setextHeadingLineSequence',
32620
32621 // Strong (`**alpha**`).
32622 // Includes `strongSequence` and `strongText`.
32623 strong: 'strong',
32624
32625 // Sequence of strong markers (`**` or `__`).
32626 strongSequence: 'strongSequence',
32627
32628 // Strong text (`alpha`).
32629 // Includes text.
32630 strongText: 'strongText',
32631
32632 // Whole thematic break:
32633 //
32634 // ```markdown
32635 // * * *
32636 // ```
32637 //
32638 // Includes `thematicBreakSequence` and `whitespace`.
32639 thematicBreak: 'thematicBreak',
32640
32641 // A sequence of one or more thematic break markers (`***`).
32642 thematicBreakSequence: 'thematicBreakSequence',
32643
32644 // Whole block quote:
32645 //
32646 // ```markdown
32647 // > a
32648 // >
32649 // > b
32650 // ```
32651 //
32652 // Includes `blockQuotePrefix` and flow.
32653 blockQuote: 'blockQuote',
32654 // The `>` or `> ` of a block quote.
32655 blockQuotePrefix: 'blockQuotePrefix',
32656 // The `>` of a block quote prefix.
32657 blockQuoteMarker: 'blockQuoteMarker',
32658 // The optional ` ` of a block quote prefix.
32659 blockQuotePrefixWhitespace: 'blockQuotePrefixWhitespace',
32660
32661 // Whole unordered list:
32662 //
32663 // ```markdown
32664 // - a
32665 // b
32666 // ```
32667 //
32668 // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
32669 // lines.
32670 listOrdered: 'listOrdered',
32671
32672 // Whole ordered list:
32673 //
32674 // ```markdown
32675 // 1. a
32676 // b
32677 // ```
32678 //
32679 // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
32680 // lines.
32681 listUnordered: 'listUnordered',
32682
32683 // The indent of further list item lines.
32684 listItemIndent: 'listItemIndent',
32685
32686 // A marker, as in, `*`, `+`, `-`, `.`, or `)`.
32687 listItemMarker: 'listItemMarker',
32688
32689 // The thing that starts a list item, such as `1. `.
32690 // Includes `listItemValue` if ordered, `listItemMarker`, and
32691 // `listItemPrefixWhitespace` (unless followed by a line ending).
32692 listItemPrefix: 'listItemPrefix',
32693
32694 // The whitespace after a marker.
32695 listItemPrefixWhitespace: 'listItemPrefixWhitespace',
32696
32697 // The numerical value of an ordered item.
32698 listItemValue: 'listItemValue',
32699
32700 // Internal types used for subtokenizers, compiled away
32701 chunkDocument: 'chunkDocument',
32702 chunkContent: 'chunkContent',
32703 chunkFlow: 'chunkFlow',
32704 chunkText: 'chunkText',
32705 chunkString: 'chunkString'
32706 })
32707
32708
32709 /***/ }),
32710
32711 /***/ "../node_modules/micromark-util-symbol/values.js":
32712 /*!*******************************************************!*\
32713 !*** ../node_modules/micromark-util-symbol/values.js ***!
32714 \*******************************************************/
32715 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32716
32717 "use strict";
32718 __webpack_require__.r(__webpack_exports__);
32719 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32720 /* harmony export */ values: () => (/* binding */ values)
32721 /* harmony export */ });
32722 /**
32723 * This module is compiled away!
32724 *
32725 * While micromark works based on character codes, this module includes the
32726 * string versions of ’em.
32727 * The C0 block, except for LF, CR, HT, and w/ the replacement character added,
32728 * are available here.
32729 */
32730 const values = /** @type {const} */ ({
32731 ht: '\t',
32732 lf: '\n',
32733 cr: '\r',
32734 space: ' ',
32735 exclamationMark: '!',
32736 quotationMark: '"',
32737 numberSign: '#',
32738 dollarSign: '$',
32739 percentSign: '%',
32740 ampersand: '&',
32741 apostrophe: "'",
32742 leftParenthesis: '(',
32743 rightParenthesis: ')',
32744 asterisk: '*',
32745 plusSign: '+',
32746 comma: ',',
32747 dash: '-',
32748 dot: '.',
32749 slash: '/',
32750 digit0: '0',
32751 digit1: '1',
32752 digit2: '2',
32753 digit3: '3',
32754 digit4: '4',
32755 digit5: '5',
32756 digit6: '6',
32757 digit7: '7',
32758 digit8: '8',
32759 digit9: '9',
32760 colon: ':',
32761 semicolon: ';',
32762 lessThan: '<',
32763 equalsTo: '=',
32764 greaterThan: '>',
32765 questionMark: '?',
32766 atSign: '@',
32767 uppercaseA: 'A',
32768 uppercaseB: 'B',
32769 uppercaseC: 'C',
32770 uppercaseD: 'D',
32771 uppercaseE: 'E',
32772 uppercaseF: 'F',
32773 uppercaseG: 'G',
32774 uppercaseH: 'H',
32775 uppercaseI: 'I',
32776 uppercaseJ: 'J',
32777 uppercaseK: 'K',
32778 uppercaseL: 'L',
32779 uppercaseM: 'M',
32780 uppercaseN: 'N',
32781 uppercaseO: 'O',
32782 uppercaseP: 'P',
32783 uppercaseQ: 'Q',
32784 uppercaseR: 'R',
32785 uppercaseS: 'S',
32786 uppercaseT: 'T',
32787 uppercaseU: 'U',
32788 uppercaseV: 'V',
32789 uppercaseW: 'W',
32790 uppercaseX: 'X',
32791 uppercaseY: 'Y',
32792 uppercaseZ: 'Z',
32793 leftSquareBracket: '[',
32794 backslash: '\\',
32795 rightSquareBracket: ']',
32796 caret: '^',
32797 underscore: '_',
32798 graveAccent: '`',
32799 lowercaseA: 'a',
32800 lowercaseB: 'b',
32801 lowercaseC: 'c',
32802 lowercaseD: 'd',
32803 lowercaseE: 'e',
32804 lowercaseF: 'f',
32805 lowercaseG: 'g',
32806 lowercaseH: 'h',
32807 lowercaseI: 'i',
32808 lowercaseJ: 'j',
32809 lowercaseK: 'k',
32810 lowercaseL: 'l',
32811 lowercaseM: 'm',
32812 lowercaseN: 'n',
32813 lowercaseO: 'o',
32814 lowercaseP: 'p',
32815 lowercaseQ: 'q',
32816 lowercaseR: 'r',
32817 lowercaseS: 's',
32818 lowercaseT: 't',
32819 lowercaseU: 'u',
32820 lowercaseV: 'v',
32821 lowercaseW: 'w',
32822 lowercaseX: 'x',
32823 lowercaseY: 'y',
32824 lowercaseZ: 'z',
32825 leftCurlyBrace: '{',
32826 verticalBar: '|',
32827 rightCurlyBrace: '}',
32828 tilde: '~',
32829 replacementCharacter: ''
32830 })
32831
32832
32833 /***/ }),
32834
32835 /***/ "../node_modules/micromark/dev/lib/constructs.js":
32836 /*!*******************************************************!*\
32837 !*** ../node_modules/micromark/dev/lib/constructs.js ***!
32838 \*******************************************************/
32839 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32840
32841 "use strict";
32842 __webpack_require__.r(__webpack_exports__);
32843 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32844 /* harmony export */ attentionMarkers: () => (/* binding */ attentionMarkers),
32845 /* harmony export */ contentInitial: () => (/* binding */ contentInitial),
32846 /* harmony export */ disable: () => (/* binding */ disable),
32847 /* harmony export */ document: () => (/* binding */ document),
32848 /* harmony export */ flow: () => (/* binding */ flow),
32849 /* harmony export */ flowInitial: () => (/* binding */ flowInitial),
32850 /* harmony export */ insideSpan: () => (/* binding */ insideSpan),
32851 /* harmony export */ string: () => (/* binding */ string),
32852 /* harmony export */ text: () => (/* binding */ text)
32853 /* harmony export */ });
32854 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/list.js");
32855 /* 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");
32856 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/definition.js");
32857 /* 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");
32858 /* 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");
32859 /* 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");
32860 /* 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");
32861 /* 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");
32862 /* 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");
32863 /* 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");
32864 /* 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");
32865 /* 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");
32866 /* 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");
32867 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/attention.js");
32868 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/autolink.js");
32869 /* 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");
32870 /* 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");
32871 /* 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");
32872 /* 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");
32873 /* 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");
32874 /* 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");
32875 /* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./initialize/text.js */ "../node_modules/micromark/dev/lib/initialize/text.js");
32876 /**
32877 * @typedef {import('micromark-util-types').Extension} Extension
32878 */
32879
32880
32881
32882
32883
32884 /** @satisfies {Extension['document']} */
32885 const document = {
32886 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32887 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.plusSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32888 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.dash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32889 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit0]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32890 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit1]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32891 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit2]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32892 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit3]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32893 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit4]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32894 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit5]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32895 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit6]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32896 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit7]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32897 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit8]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32898 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit9]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32899 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__.blockQuote
32900 }
32901
32902 /** @satisfies {Extension['contentInitial']} */
32903 const contentInitial = {
32904 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.definition
32905 }
32906
32907 /** @satisfies {Extension['flowInitial']} */
32908 const flowInitial = {
32909 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,
32910 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,
32911 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented
32912 }
32913
32914 /** @satisfies {Extension['flow']} */
32915 const flow = {
32916 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_5__.headingAtx,
32917 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,
32918 [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],
32919 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_8__.htmlFlow,
32920 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.equalsTo]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.setextUnderline,
32921 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,
32922 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced,
32923 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.tilde]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced
32924 }
32925
32926 /** @satisfies {Extension['string']} */
32927 const string = {
32928 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,
32929 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__.characterEscape
32930 }
32931
32932 /** @satisfies {Extension['text']} */
32933 const text = {
32934 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32935 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32936 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32937 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.exclamationMark]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_13__.labelStartImage,
32938 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,
32939 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,
32940 [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],
32941 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_17__.labelStartLink,
32942 [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],
32943 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_19__.labelEnd,
32944 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,
32945 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_20__.codeText
32946 }
32947
32948 /** @satisfies {Extension['insideSpan']} */
32949 const insideSpan = {null: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention, _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__.resolver]}
32950
32951 /** @satisfies {Extension['attentionMarkers']} */
32952 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]}
32953
32954 /** @satisfies {Extension['disable']} */
32955 const disable = {null: []}
32956
32957
32958 /***/ }),
32959
32960 /***/ "../node_modules/micromark/dev/lib/create-tokenizer.js":
32961 /*!*************************************************************!*\
32962 !*** ../node_modules/micromark/dev/lib/create-tokenizer.js ***!
32963 \*************************************************************/
32964 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32965
32966 "use strict";
32967 __webpack_require__.r(__webpack_exports__);
32968 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32969 /* harmony export */ createTokenizer: () => (/* binding */ createTokenizer)
32970 /* harmony export */ });
32971 /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "../node_modules/debug/src/browser.js");
32972 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
32973 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
32974 /* 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");
32975 /* 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");
32976 /* 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");
32977 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
32978 /**
32979 * @typedef {import('micromark-util-types').Chunk} Chunk
32980 * @typedef {import('micromark-util-types').Code} Code
32981 * @typedef {import('micromark-util-types').Construct} Construct
32982 * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord
32983 * @typedef {import('micromark-util-types').Effects} Effects
32984 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
32985 * @typedef {import('micromark-util-types').ParseContext} ParseContext
32986 * @typedef {import('micromark-util-types').Point} Point
32987 * @typedef {import('micromark-util-types').State} State
32988 * @typedef {import('micromark-util-types').Token} Token
32989 * @typedef {import('micromark-util-types').TokenType} TokenType
32990 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
32991 */
32992
32993 /**
32994 * @callback Restore
32995 * @returns {void}
32996 *
32997 * @typedef Info
32998 * @property {Restore} restore
32999 * @property {number} from
33000 *
33001 * @callback ReturnHandle
33002 * Handle a successful run.
33003 * @param {Construct} construct
33004 * @param {Info} info
33005 * @returns {void}
33006 */
33007
33008
33009
33010
33011
33012
33013
33014
33015
33016 const debug = debug__WEBPACK_IMPORTED_MODULE_0__('micromark')
33017
33018 /**
33019 * Create a tokenizer.
33020 * Tokenizers deal with one type of data (e.g., containers, flow, text).
33021 * The parser is the object dealing with it all.
33022 * `initialize` works like other constructs, except that only its `tokenize`
33023 * function is used, in which case it doesn’t receive an `ok` or `nok`.
33024 * `from` can be given to set the point before the first character, although
33025 * when further lines are indented, they must be set with `defineSkip`.
33026 *
33027 * @param {ParseContext} parser
33028 * @param {InitialConstruct} initialize
33029 * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]
33030 * @returns {TokenizeContext}
33031 */
33032 function createTokenizer(parser, initialize, from) {
33033 /** @type {Point} */
33034 let point = Object.assign(
33035 from ? Object.assign({}, from) : {line: 1, column: 1, offset: 0},
33036 {_index: 0, _bufferIndex: -1}
33037 )
33038 /** @type {Record<string, number>} */
33039 const columnStart = {}
33040 /** @type {Array<Construct>} */
33041 const resolveAllConstructs = []
33042 /** @type {Array<Chunk>} */
33043 let chunks = []
33044 /** @type {Array<Token>} */
33045 let stack = []
33046 /** @type {boolean | undefined} */
33047 let consumed = true
33048
33049 /**
33050 * Tools used for tokenizing.
33051 *
33052 * @type {Effects}
33053 */
33054 const effects = {
33055 consume,
33056 enter,
33057 exit,
33058 attempt: constructFactory(onsuccessfulconstruct),
33059 check: constructFactory(onsuccessfulcheck),
33060 interrupt: constructFactory(onsuccessfulcheck, {interrupt: true})
33061 }
33062
33063 /**
33064 * State and tools for resolving and serializing.
33065 *
33066 * @type {TokenizeContext}
33067 */
33068 const context = {
33069 previous: micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof,
33070 code: micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof,
33071 containerState: {},
33072 events: [],
33073 parser,
33074 sliceStream,
33075 sliceSerialize,
33076 now,
33077 defineSkip,
33078 write
33079 }
33080
33081 /**
33082 * The state function.
33083 *
33084 * @type {State | void}
33085 */
33086 let state = initialize.tokenize.call(context, effects)
33087
33088 /**
33089 * Track which character we expect to be consumed, to catch bugs.
33090 *
33091 * @type {Code}
33092 */
33093 let expectedCode
33094
33095 if (initialize.resolveAll) {
33096 resolveAllConstructs.push(initialize)
33097 }
33098
33099 return context
33100
33101 /** @type {TokenizeContext['write']} */
33102 function write(slice) {
33103 chunks = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.push)(chunks, slice)
33104
33105 main()
33106
33107 // Exit if we’re not done, resolve might change stuff.
33108 if (chunks[chunks.length - 1] !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
33109 return []
33110 }
33111
33112 addResult(initialize, 0)
33113
33114 // Otherwise, resolve, and exit.
33115 context.events = (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_4__.resolveAll)(resolveAllConstructs, context.events, context)
33116
33117 return context.events
33118 }
33119
33120 //
33121 // Tools.
33122 //
33123
33124 /** @type {TokenizeContext['sliceSerialize']} */
33125 function sliceSerialize(token, expandTabs) {
33126 return serializeChunks(sliceStream(token), expandTabs)
33127 }
33128
33129 /** @type {TokenizeContext['sliceStream']} */
33130 function sliceStream(token) {
33131 return sliceChunks(chunks, token)
33132 }
33133
33134 /** @type {TokenizeContext['now']} */
33135 function now() {
33136 // This is a hot path, so we clone manually instead of `Object.assign({}, point)`
33137 const {line, column, offset, _index, _bufferIndex} = point
33138 return {line, column, offset, _index, _bufferIndex}
33139 }
33140
33141 /** @type {TokenizeContext['defineSkip']} */
33142 function defineSkip(value) {
33143 columnStart[value.line] = value.column
33144 accountForPotentialSkip()
33145 debug('position: define skip: `%j`', point)
33146 }
33147
33148 //
33149 // State management.
33150 //
33151
33152 /**
33153 * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by
33154 * `consume`).
33155 * Here is where we walk through the chunks, which either include strings of
33156 * several characters, or numerical character codes.
33157 * The reason to do this in a loop instead of a call is so the stack can
33158 * drain.
33159 *
33160 * @returns {void}
33161 */
33162 function main() {
33163 /** @type {number} */
33164 let chunkIndex
33165
33166 while (point._index < chunks.length) {
33167 const chunk = chunks[point._index]
33168
33169 // If we’re in a buffer chunk, loop through it.
33170 if (typeof chunk === 'string') {
33171 chunkIndex = point._index
33172
33173 if (point._bufferIndex < 0) {
33174 point._bufferIndex = 0
33175 }
33176
33177 while (
33178 point._index === chunkIndex &&
33179 point._bufferIndex < chunk.length
33180 ) {
33181 go(chunk.charCodeAt(point._bufferIndex))
33182 }
33183 } else {
33184 go(chunk)
33185 }
33186 }
33187 }
33188
33189 /**
33190 * Deal with one code.
33191 *
33192 * @param {Code} code
33193 * @returns {void}
33194 */
33195 function go(code) {
33196 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(consumed === true, 'expected character to be consumed')
33197 consumed = undefined
33198 debug('main: passing `%s` to %s', code, state && state.name)
33199 expectedCode = code
33200 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof state === 'function', 'expected state')
33201 state = state(code)
33202 }
33203
33204 /** @type {Effects['consume']} */
33205 function consume(code) {
33206 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected given code to equal expected code')
33207
33208 debug('consume: `%s`', code)
33209
33210 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33211 consumed === undefined,
33212 'expected code to not have been consumed: this might be because `return x(code)` instead of `return x` was used'
33213 )
33214 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33215 code === null
33216 ? context.events.length === 0 ||
33217 context.events[context.events.length - 1][0] === 'exit'
33218 : context.events[context.events.length - 1][0] === 'enter',
33219 'expected last token to be open'
33220 )
33221
33222 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
33223 point.line++
33224 point.column = 1
33225 point.offset += code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturnLineFeed ? 2 : 1
33226 accountForPotentialSkip()
33227 debug('position: after eol: `%j`', point)
33228 } else if (code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.virtualSpace) {
33229 point.column++
33230 point.offset++
33231 }
33232
33233 // Not in a string chunk.
33234 if (point._bufferIndex < 0) {
33235 point._index++
33236 } else {
33237 point._bufferIndex++
33238
33239 // At end of string chunk.
33240 // @ts-expect-error Points w/ non-negative `_bufferIndex` reference
33241 // strings.
33242 if (point._bufferIndex === chunks[point._index].length) {
33243 point._bufferIndex = -1
33244 point._index++
33245 }
33246 }
33247
33248 // Expose the previous character.
33249 context.previous = code
33250
33251 // Mark as consumed.
33252 consumed = true
33253 }
33254
33255 /** @type {Effects['enter']} */
33256 function enter(type, fields) {
33257 /** @type {Token} */
33258 // @ts-expect-error Patch instead of assign required fields to help GC.
33259 const token = fields || {}
33260 token.type = type
33261 token.start = now()
33262
33263 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof type === 'string', 'expected string type')
33264 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type.length > 0, 'expected non-empty string')
33265 debug('enter: `%s`', type)
33266
33267 context.events.push(['enter', token, context])
33268
33269 stack.push(token)
33270
33271 return token
33272 }
33273
33274 /** @type {Effects['exit']} */
33275 function exit(type) {
33276 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof type === 'string', 'expected string type')
33277 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type.length > 0, 'expected non-empty string')
33278
33279 const token = stack.pop()
33280 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(token, 'cannot close w/o open tokens')
33281 token.end = now()
33282
33283 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type === token.type, 'expected exit token to match current token')
33284
33285 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33286 !(
33287 token.start._index === token.end._index &&
33288 token.start._bufferIndex === token.end._bufferIndex
33289 ),
33290 'expected non-empty token (`' + type + '`)'
33291 )
33292
33293 debug('exit: `%s`', token.type)
33294 context.events.push(['exit', token, context])
33295
33296 return token
33297 }
33298
33299 /**
33300 * Use results.
33301 *
33302 * @type {ReturnHandle}
33303 */
33304 function onsuccessfulconstruct(construct, info) {
33305 addResult(construct, info.from)
33306 }
33307
33308 /**
33309 * Discard results.
33310 *
33311 * @type {ReturnHandle}
33312 */
33313 function onsuccessfulcheck(_, info) {
33314 info.restore()
33315 }
33316
33317 /**
33318 * Factory to attempt/check/interrupt.
33319 *
33320 * @param {ReturnHandle} onreturn
33321 * @param {{interrupt?: boolean | undefined} | undefined} [fields]
33322 */
33323 function constructFactory(onreturn, fields) {
33324 return hook
33325
33326 /**
33327 * Handle either an object mapping codes to constructs, a list of
33328 * constructs, or a single construct.
33329 *
33330 * @param {Array<Construct> | Construct | ConstructRecord} constructs
33331 * @param {State} returnState
33332 * @param {State | undefined} [bogusState]
33333 * @returns {State}
33334 */
33335 function hook(constructs, returnState, bogusState) {
33336 /** @type {Array<Construct>} */
33337 let listOfConstructs
33338 /** @type {number} */
33339 let constructIndex
33340 /** @type {Construct} */
33341 let currentConstruct
33342 /** @type {Info} */
33343 let info
33344
33345 return Array.isArray(constructs)
33346 ? /* c8 ignore next 1 */
33347 handleListOfConstructs(constructs)
33348 : 'tokenize' in constructs
33349 ? // @ts-expect-error Looks like a construct.
33350 handleListOfConstructs([constructs])
33351 : handleMapOfConstructs(constructs)
33352
33353 /**
33354 * Handle a list of construct.
33355 *
33356 * @param {ConstructRecord} map
33357 * @returns {State}
33358 */
33359 function handleMapOfConstructs(map) {
33360 return start
33361
33362 /** @type {State} */
33363 function start(code) {
33364 const def = code !== null && map[code]
33365 const all = code !== null && map.null
33366 const list = [
33367 // To do: add more extension tests.
33368 /* c8 ignore next 2 */
33369 ...(Array.isArray(def) ? def : def ? [def] : []),
33370 ...(Array.isArray(all) ? all : all ? [all] : [])
33371 ]
33372
33373 return handleListOfConstructs(list)(code)
33374 }
33375 }
33376
33377 /**
33378 * Handle a list of construct.
33379 *
33380 * @param {Array<Construct>} list
33381 * @returns {State}
33382 */
33383 function handleListOfConstructs(list) {
33384 listOfConstructs = list
33385 constructIndex = 0
33386
33387 if (list.length === 0) {
33388 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(bogusState, 'expected `bogusState` to be given')
33389 return bogusState
33390 }
33391
33392 return handleConstruct(list[constructIndex])
33393 }
33394
33395 /**
33396 * Handle a single construct.
33397 *
33398 * @param {Construct} construct
33399 * @returns {State}
33400 */
33401 function handleConstruct(construct) {
33402 return start
33403
33404 /** @type {State} */
33405 function start(code) {
33406 // To do: not needed to store if there is no bogus state, probably?
33407 // Currently doesn’t work because `inspect` in document does a check
33408 // w/o a bogus, which doesn’t make sense. But it does seem to help perf
33409 // by not storing.
33410 info = store()
33411 currentConstruct = construct
33412
33413 if (!construct.partial) {
33414 context.currentConstruct = construct
33415 }
33416
33417 // Always populated by defaults.
33418 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33419 context.parser.constructs.disable.null,
33420 'expected `disable.null` to be populated'
33421 )
33422
33423 if (
33424 construct.name &&
33425 context.parser.constructs.disable.null.includes(construct.name)
33426 ) {
33427 return nok(code)
33428 }
33429
33430 return construct.tokenize.call(
33431 // If we do have fields, create an object w/ `context` as its
33432 // prototype.
33433 // This allows a “live binding”, which is needed for `interrupt`.
33434 fields ? Object.assign(Object.create(context), fields) : context,
33435 effects,
33436 ok,
33437 nok
33438 )(code)
33439 }
33440 }
33441
33442 /** @type {State} */
33443 function ok(code) {
33444 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected code')
33445 consumed = true
33446 onreturn(currentConstruct, info)
33447 return returnState
33448 }
33449
33450 /** @type {State} */
33451 function nok(code) {
33452 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected code')
33453 consumed = true
33454 info.restore()
33455
33456 if (++constructIndex < listOfConstructs.length) {
33457 return handleConstruct(listOfConstructs[constructIndex])
33458 }
33459
33460 return bogusState
33461 }
33462 }
33463 }
33464
33465 /**
33466 * @param {Construct} construct
33467 * @param {number} from
33468 * @returns {void}
33469 */
33470 function addResult(construct, from) {
33471 if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {
33472 resolveAllConstructs.push(construct)
33473 }
33474
33475 if (construct.resolve) {
33476 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.splice)(
33477 context.events,
33478 from,
33479 context.events.length - from,
33480 construct.resolve(context.events.slice(from), context)
33481 )
33482 }
33483
33484 if (construct.resolveTo) {
33485 context.events = construct.resolveTo(context.events, context)
33486 }
33487
33488 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33489 construct.partial ||
33490 context.events.length === 0 ||
33491 context.events[context.events.length - 1][0] === 'exit',
33492 'expected last token to end'
33493 )
33494 }
33495
33496 /**
33497 * Store state.
33498 *
33499 * @returns {Info}
33500 */
33501 function store() {
33502 const startPoint = now()
33503 const startPrevious = context.previous
33504 const startCurrentConstruct = context.currentConstruct
33505 const startEventsIndex = context.events.length
33506 const startStack = Array.from(stack)
33507
33508 return {restore, from: startEventsIndex}
33509
33510 /**
33511 * Restore state.
33512 *
33513 * @returns {void}
33514 */
33515 function restore() {
33516 point = startPoint
33517 context.previous = startPrevious
33518 context.currentConstruct = startCurrentConstruct
33519 context.events.length = startEventsIndex
33520 stack = startStack
33521 accountForPotentialSkip()
33522 debug('position: restore: `%j`', point)
33523 }
33524 }
33525
33526 /**
33527 * Move the current point a bit forward in the line when it’s on a column
33528 * skip.
33529 *
33530 * @returns {void}
33531 */
33532 function accountForPotentialSkip() {
33533 if (point.line in columnStart && point.column < 2) {
33534 point.column = columnStart[point.line]
33535 point.offset += columnStart[point.line] - 1
33536 }
33537 }
33538 }
33539
33540 /**
33541 * Get the chunks from a slice of chunks in the range of a token.
33542 *
33543 * @param {Array<Chunk>} chunks
33544 * @param {Pick<Token, 'end' | 'start'>} token
33545 * @returns {Array<Chunk>}
33546 */
33547 function sliceChunks(chunks, token) {
33548 const startIndex = token.start._index
33549 const startBufferIndex = token.start._bufferIndex
33550 const endIndex = token.end._index
33551 const endBufferIndex = token.end._bufferIndex
33552 /** @type {Array<Chunk>} */
33553 let view
33554
33555 if (startIndex === endIndex) {
33556 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(endBufferIndex > -1, 'expected non-negative end buffer index')
33557 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(startBufferIndex > -1, 'expected non-negative start buffer index')
33558 // @ts-expect-error `_bufferIndex` is used on string chunks.
33559 view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]
33560 } else {
33561 view = chunks.slice(startIndex, endIndex)
33562
33563 if (startBufferIndex > -1) {
33564 const head = view[0]
33565 if (typeof head === 'string') {
33566 view[0] = head.slice(startBufferIndex)
33567 } else {
33568 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(startBufferIndex === 0, 'expected `startBufferIndex` to be `0`')
33569 view.shift()
33570 }
33571 }
33572
33573 if (endBufferIndex > 0) {
33574 // @ts-expect-error `_bufferIndex` is used on string chunks.
33575 view.push(chunks[endIndex].slice(0, endBufferIndex))
33576 }
33577 }
33578
33579 return view
33580 }
33581
33582 /**
33583 * Get the string value of a slice of chunks.
33584 *
33585 * @param {Array<Chunk>} chunks
33586 * @param {boolean | undefined} [expandTabs=false]
33587 * @returns {string}
33588 */
33589 function serializeChunks(chunks, expandTabs) {
33590 let index = -1
33591 /** @type {Array<string>} */
33592 const result = []
33593 /** @type {boolean | undefined} */
33594 let atTab
33595
33596 while (++index < chunks.length) {
33597 const chunk = chunks[index]
33598 /** @type {string} */
33599 let value
33600
33601 if (typeof chunk === 'string') {
33602 value = chunk
33603 } else
33604 switch (chunk) {
33605 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturn: {
33606 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.cr
33607
33608 break
33609 }
33610
33611 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lineFeed: {
33612 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.lf
33613
33614 break
33615 }
33616
33617 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturnLineFeed: {
33618 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.cr + micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.lf
33619
33620 break
33621 }
33622
33623 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.horizontalTab: {
33624 value = expandTabs ? micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.space : micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.ht
33625
33626 break
33627 }
33628
33629 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.virtualSpace: {
33630 if (!expandTabs && atTab) continue
33631 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.space
33632
33633 break
33634 }
33635
33636 default: {
33637 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof chunk === 'number', 'expected number')
33638 // Currently only replacement character.
33639 value = String.fromCharCode(chunk)
33640 }
33641 }
33642
33643 atTab = chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.horizontalTab
33644 result.push(value)
33645 }
33646
33647 return result.join('')
33648 }
33649
33650
33651 /***/ }),
33652
33653 /***/ "../node_modules/micromark/dev/lib/initialize/content.js":
33654 /*!***************************************************************!*\
33655 !*** ../node_modules/micromark/dev/lib/initialize/content.js ***!
33656 \***************************************************************/
33657 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33658
33659 "use strict";
33660 __webpack_require__.r(__webpack_exports__);
33661 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33662 /* harmony export */ content: () => (/* binding */ content)
33663 /* harmony export */ });
33664 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
33665 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
33666 /* 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");
33667 /* 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");
33668 /* 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");
33669 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
33670 /**
33671 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
33672 * @typedef {import('micromark-util-types').Initializer} Initializer
33673 * @typedef {import('micromark-util-types').State} State
33674 * @typedef {import('micromark-util-types').Token} Token
33675 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
33676 */
33677
33678
33679
33680
33681
33682
33683
33684
33685 /** @type {InitialConstruct} */
33686 const content = {tokenize: initializeContent}
33687
33688 /**
33689 * @this {TokenizeContext}
33690 * @type {Initializer}
33691 */
33692 function initializeContent(effects) {
33693 const contentStart = effects.attempt(
33694 this.parser.constructs.contentInitial,
33695 afterContentStartConstruct,
33696 paragraphInitial
33697 )
33698 /** @type {Token} */
33699 let previous
33700
33701 return contentStart
33702
33703 /** @type {State} */
33704 function afterContentStartConstruct(code) {
33705 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33706 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code),
33707 'expected eol or eof'
33708 )
33709
33710 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
33711 effects.consume(code)
33712 return
33713 }
33714
33715 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding)
33716 effects.consume(code)
33717 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding)
33718 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, contentStart, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.linePrefix)
33719 }
33720
33721 /** @type {State} */
33722 function paragraphInitial(code) {
33723 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33724 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code),
33725 'expected anything other than a line ending or EOF'
33726 )
33727 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.paragraph)
33728 return lineStart(code)
33729 }
33730
33731 /** @type {State} */
33732 function lineStart(code) {
33733 const token = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText, {
33734 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeText,
33735 previous
33736 })
33737
33738 if (previous) {
33739 previous.next = token
33740 }
33741
33742 previous = token
33743
33744 return data(code)
33745 }
33746
33747 /** @type {State} */
33748 function data(code) {
33749 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
33750 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText)
33751 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.paragraph)
33752 effects.consume(code)
33753 return
33754 }
33755
33756 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {
33757 effects.consume(code)
33758 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText)
33759 return lineStart
33760 }
33761
33762 // Data.
33763 effects.consume(code)
33764 return data
33765 }
33766 }
33767
33768
33769 /***/ }),
33770
33771 /***/ "../node_modules/micromark/dev/lib/initialize/document.js":
33772 /*!****************************************************************!*\
33773 !*** ../node_modules/micromark/dev/lib/initialize/document.js ***!
33774 \****************************************************************/
33775 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33776
33777 "use strict";
33778 __webpack_require__.r(__webpack_exports__);
33779 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33780 /* harmony export */ document: () => (/* binding */ document)
33781 /* harmony export */ });
33782 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
33783 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
33784 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
33785 /* 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");
33786 /* 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");
33787 /* 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");
33788 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
33789 /**
33790 * @typedef {import('micromark-util-types').Construct} Construct
33791 * @typedef {import('micromark-util-types').ContainerState} ContainerState
33792 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
33793 * @typedef {import('micromark-util-types').Initializer} Initializer
33794 * @typedef {import('micromark-util-types').Point} Point
33795 * @typedef {import('micromark-util-types').State} State
33796 * @typedef {import('micromark-util-types').Token} Token
33797 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
33798 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
33799 */
33800
33801 /**
33802 * @typedef {[Construct, ContainerState]} StackItem
33803 */
33804
33805
33806
33807
33808
33809
33810
33811
33812
33813 /** @type {InitialConstruct} */
33814 const document = {tokenize: initializeDocument}
33815
33816 /** @type {Construct} */
33817 const containerConstruct = {tokenize: tokenizeContainer}
33818
33819 /**
33820 * @this {TokenizeContext}
33821 * @type {Initializer}
33822 */
33823 function initializeDocument(effects) {
33824 const self = this
33825 /** @type {Array<StackItem>} */
33826 const stack = []
33827 let continued = 0
33828 /** @type {TokenizeContext | undefined} */
33829 let childFlow
33830 /** @type {Token | undefined} */
33831 let childToken
33832 /** @type {number} */
33833 let lineStartOffset
33834
33835 return start
33836
33837 /** @type {State} */
33838 function start(code) {
33839 // First we iterate through the open blocks, starting with the root
33840 // document, and descending through last children down to the last open
33841 // block.
33842 // Each block imposes a condition that the line must satisfy if the block is
33843 // to remain open.
33844 // For example, a block quote requires a `>` character.
33845 // A paragraph requires a non-blank line.
33846 // In this phase we may match all or just some of the open blocks.
33847 // But we cannot close unmatched blocks yet, because we may have a lazy
33848 // continuation line.
33849 if (continued < stack.length) {
33850 const item = stack[continued]
33851 self.containerState = item[1]
33852 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33853 item[0].continuation,
33854 'expected `continuation` to be defined on container construct'
33855 )
33856 return effects.attempt(
33857 item[0].continuation,
33858 documentContinue,
33859 checkNewContainers
33860 )(code)
33861 }
33862
33863 // Done.
33864 return checkNewContainers(code)
33865 }
33866
33867 /** @type {State} */
33868 function documentContinue(code) {
33869 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33870 self.containerState,
33871 'expected `containerState` to be defined after continuation'
33872 )
33873
33874 continued++
33875
33876 // Note: this field is called `_closeFlow` but it also closes containers.
33877 // Perhaps a good idea to rename it but it’s already used in the wild by
33878 // extensions.
33879 if (self.containerState._closeFlow) {
33880 self.containerState._closeFlow = undefined
33881
33882 if (childFlow) {
33883 closeFlow()
33884 }
33885
33886 // Note: this algorithm for moving events around is similar to the
33887 // algorithm when dealing with lazy lines in `writeToChild`.
33888 const indexBeforeExits = self.events.length
33889 let indexBeforeFlow = indexBeforeExits
33890 /** @type {Point | undefined} */
33891 let point
33892
33893 // Find the flow chunk.
33894 while (indexBeforeFlow--) {
33895 if (
33896 self.events[indexBeforeFlow][0] === 'exit' &&
33897 self.events[indexBeforeFlow][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow
33898 ) {
33899 point = self.events[indexBeforeFlow][1].end
33900 break
33901 }
33902 }
33903
33904 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(point, 'could not find previous flow chunk')
33905
33906 exitContainers(continued)
33907
33908 // Fix positions.
33909 let index = indexBeforeExits
33910
33911 while (index < self.events.length) {
33912 self.events[index][1].end = Object.assign({}, point)
33913 index++
33914 }
33915
33916 // Inject the exits earlier (they’re still also at the end).
33917 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(
33918 self.events,
33919 indexBeforeFlow + 1,
33920 0,
33921 self.events.slice(indexBeforeExits)
33922 )
33923
33924 // Discard the duplicate exits.
33925 self.events.length = index
33926
33927 return checkNewContainers(code)
33928 }
33929
33930 return start(code)
33931 }
33932
33933 /** @type {State} */
33934 function checkNewContainers(code) {
33935 // Next, after consuming the continuation markers for existing blocks, we
33936 // look for new block starts (e.g. `>` for a block quote).
33937 // If we encounter a new block start, we close any blocks unmatched in
33938 // step 1 before creating the new block as a child of the last matched
33939 // block.
33940 if (continued === stack.length) {
33941 // No need to `check` whether there’s a container, of `exitContainers`
33942 // would be moot.
33943 // We can instead immediately `attempt` to parse one.
33944 if (!childFlow) {
33945 return documentContinued(code)
33946 }
33947
33948 // If we have concrete content, such as block HTML or fenced code,
33949 // we can’t have containers “pierce” into them, so we can immediately
33950 // start.
33951 if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {
33952 return flowStart(code)
33953 }
33954
33955 // If we do have flow, it could still be a blank line,
33956 // but we’d be interrupting it w/ a new container if there’s a current
33957 // construct.
33958 // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer
33959 // needed in micromark-extension-gfm-table@1.0.6).
33960 self.interrupt = Boolean(
33961 childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack
33962 )
33963 }
33964
33965 // Check if there is a new container.
33966 self.containerState = {}
33967 return effects.check(
33968 containerConstruct,
33969 thereIsANewContainer,
33970 thereIsNoNewContainer
33971 )(code)
33972 }
33973
33974 /** @type {State} */
33975 function thereIsANewContainer(code) {
33976 if (childFlow) closeFlow()
33977 exitContainers(continued)
33978 return documentContinued(code)
33979 }
33980
33981 /** @type {State} */
33982 function thereIsNoNewContainer(code) {
33983 self.parser.lazy[self.now().line] = continued !== stack.length
33984 lineStartOffset = self.now().offset
33985 return flowStart(code)
33986 }
33987
33988 /** @type {State} */
33989 function documentContinued(code) {
33990 // Try new containers.
33991 self.containerState = {}
33992 return effects.attempt(
33993 containerConstruct,
33994 containerContinue,
33995 flowStart
33996 )(code)
33997 }
33998
33999 /** @type {State} */
34000 function containerContinue(code) {
34001 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34002 self.currentConstruct,
34003 'expected `currentConstruct` to be defined on tokenizer'
34004 )
34005 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34006 self.containerState,
34007 'expected `containerState` to be defined on tokenizer'
34008 )
34009 continued++
34010 stack.push([self.currentConstruct, self.containerState])
34011 // Try another.
34012 return documentContinued(code)
34013 }
34014
34015 /** @type {State} */
34016 function flowStart(code) {
34017 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {
34018 if (childFlow) closeFlow()
34019 exitContainers(0)
34020 effects.consume(code)
34021 return
34022 }
34023
34024 childFlow = childFlow || self.parser.flow(self.now())
34025 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow, {
34026 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.contentTypeFlow,
34027 previous: childToken,
34028 _tokenizer: childFlow
34029 })
34030
34031 return flowContinue(code)
34032 }
34033
34034 /** @type {State} */
34035 function flowContinue(code) {
34036 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {
34037 writeToChild(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow), true)
34038 exitContainers(0)
34039 effects.consume(code)
34040 return
34041 }
34042
34043 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
34044 effects.consume(code)
34045 writeToChild(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow))
34046 // Get ready for the next line.
34047 continued = 0
34048 self.interrupt = undefined
34049 return start
34050 }
34051
34052 effects.consume(code)
34053 return flowContinue
34054 }
34055
34056 /**
34057 * @param {Token} token
34058 * @param {boolean | undefined} [eof]
34059 * @returns {void}
34060 */
34061 function writeToChild(token, eof) {
34062 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, 'expected `childFlow` to be defined when continuing')
34063 const stream = self.sliceStream(token)
34064 if (eof) stream.push(null)
34065 token.previous = childToken
34066 if (childToken) childToken.next = token
34067 childToken = token
34068 childFlow.defineSkip(token.start)
34069 childFlow.write(stream)
34070
34071 // Alright, so we just added a lazy line:
34072 //
34073 // ```markdown
34074 // > a
34075 // b.
34076 //
34077 // Or:
34078 //
34079 // > ~~~c
34080 // d
34081 //
34082 // Or:
34083 //
34084 // > | e |
34085 // f
34086 // ```
34087 //
34088 // The construct in the second example (fenced code) does not accept lazy
34089 // lines, so it marked itself as done at the end of its first line, and
34090 // then the content construct parses `d`.
34091 // Most constructs in markdown match on the first line: if the first line
34092 // forms a construct, a non-lazy line can’t “unmake” it.
34093 //
34094 // The construct in the third example is potentially a GFM table, and
34095 // those are *weird*.
34096 // It *could* be a table, from the first line, if the following line
34097 // matches a condition.
34098 // In this case, that second line is lazy, which “unmakes” the first line
34099 // and turns the whole into one content block.
34100 //
34101 // We’ve now parsed the non-lazy and the lazy line, and can figure out
34102 // whether the lazy line started a new flow block.
34103 // If it did, we exit the current containers between the two flow blocks.
34104 if (self.parser.lazy[token.start.line]) {
34105 let index = childFlow.events.length
34106
34107 while (index--) {
34108 if (
34109 // The token starts before the line ending…
34110 childFlow.events[index][1].start.offset < lineStartOffset &&
34111 // …and either is not ended yet…
34112 (!childFlow.events[index][1].end ||
34113 // …or ends after it.
34114 childFlow.events[index][1].end.offset > lineStartOffset)
34115 ) {
34116 // Exit: there’s still something open, which means it’s a lazy line
34117 // part of something.
34118 return
34119 }
34120 }
34121
34122 // Note: this algorithm for moving events around is similar to the
34123 // algorithm when closing flow in `documentContinue`.
34124 const indexBeforeExits = self.events.length
34125 let indexBeforeFlow = indexBeforeExits
34126 /** @type {boolean | undefined} */
34127 let seen
34128 /** @type {Point | undefined} */
34129 let point
34130
34131 // Find the previous chunk (the one before the lazy line).
34132 while (indexBeforeFlow--) {
34133 if (
34134 self.events[indexBeforeFlow][0] === 'exit' &&
34135 self.events[indexBeforeFlow][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow
34136 ) {
34137 if (seen) {
34138 point = self.events[indexBeforeFlow][1].end
34139 break
34140 }
34141
34142 seen = true
34143 }
34144 }
34145
34146 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(point, 'could not find previous flow chunk')
34147
34148 exitContainers(continued)
34149
34150 // Fix positions.
34151 index = indexBeforeExits
34152
34153 while (index < self.events.length) {
34154 self.events[index][1].end = Object.assign({}, point)
34155 index++
34156 }
34157
34158 // Inject the exits earlier (they’re still also at the end).
34159 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(
34160 self.events,
34161 indexBeforeFlow + 1,
34162 0,
34163 self.events.slice(indexBeforeExits)
34164 )
34165
34166 // Discard the duplicate exits.
34167 self.events.length = index
34168 }
34169 }
34170
34171 /**
34172 * @param {number} size
34173 * @returns {void}
34174 */
34175 function exitContainers(size) {
34176 let index = stack.length
34177
34178 // Exit open containers.
34179 while (index-- > size) {
34180 const entry = stack[index]
34181 self.containerState = entry[1]
34182 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34183 entry[0].exit,
34184 'expected `exit` to be defined on container construct'
34185 )
34186 entry[0].exit.call(self, effects)
34187 }
34188
34189 stack.length = size
34190 }
34191
34192 function closeFlow() {
34193 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34194 self.containerState,
34195 'expected `containerState` to be defined when closing flow'
34196 )
34197 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, 'expected `childFlow` to be defined when closing it')
34198 childFlow.write([micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof])
34199 childToken = undefined
34200 childFlow = undefined
34201 self.containerState._closeFlow = undefined
34202 }
34203 }
34204
34205 /**
34206 * @this {TokenizeContext}
34207 * @type {Tokenizer}
34208 */
34209 function tokenizeContainer(effects, ok, nok) {
34210 // Always populated by defaults.
34211 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34212 this.parser.constructs.disable.null,
34213 'expected `disable.null` to be populated'
34214 )
34215 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(
34216 effects,
34217 effects.attempt(this.parser.constructs.document, ok, nok),
34218 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix,
34219 this.parser.constructs.disable.null.includes('codeIndented')
34220 ? undefined
34221 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
34222 )
34223 }
34224
34225
34226 /***/ }),
34227
34228 /***/ "../node_modules/micromark/dev/lib/initialize/flow.js":
34229 /*!************************************************************!*\
34230 !*** ../node_modules/micromark/dev/lib/initialize/flow.js ***!
34231 \************************************************************/
34232 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34233
34234 "use strict";
34235 __webpack_require__.r(__webpack_exports__);
34236 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34237 /* harmony export */ flow: () => (/* binding */ flow)
34238 /* harmony export */ });
34239 /* 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");
34240 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/content.js");
34241 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
34242 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
34243 /* 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");
34244 /* 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");
34245 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34246 /**
34247 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34248 * @typedef {import('micromark-util-types').Initializer} Initializer
34249 * @typedef {import('micromark-util-types').State} State
34250 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34251 */
34252
34253
34254
34255
34256
34257
34258
34259
34260 /** @type {InitialConstruct} */
34261 const flow = {tokenize: initializeFlow}
34262
34263 /**
34264 * @this {TokenizeContext}
34265 * @type {Initializer}
34266 */
34267 function initializeFlow(effects) {
34268 const self = this
34269 const initial = effects.attempt(
34270 // Try to parse a blank line.
34271 micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.blankLine,
34272 atBlankEnding,
34273 // Try to parse initial flow (essentially, only code).
34274 effects.attempt(
34275 this.parser.constructs.flowInitial,
34276 afterConstruct,
34277 (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(
34278 effects,
34279 effects.attempt(
34280 this.parser.constructs.flow,
34281 afterConstruct,
34282 effects.attempt(micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.content, afterConstruct)
34283 ),
34284 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix
34285 )
34286 )
34287 )
34288
34289 return initial
34290
34291 /** @type {State} */
34292 function atBlankEnding(code) {
34293 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34294 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code),
34295 'expected eol or eof'
34296 )
34297
34298 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
34299 effects.consume(code)
34300 return
34301 }
34302
34303 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank)
34304 effects.consume(code)
34305 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank)
34306 self.currentConstruct = undefined
34307 return initial
34308 }
34309
34310 /** @type {State} */
34311 function afterConstruct(code) {
34312 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34313 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code),
34314 'expected eol or eof'
34315 )
34316
34317 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
34318 effects.consume(code)
34319 return
34320 }
34321
34322 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
34323 effects.consume(code)
34324 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
34325 self.currentConstruct = undefined
34326 return initial
34327 }
34328 }
34329
34330
34331 /***/ }),
34332
34333 /***/ "../node_modules/micromark/dev/lib/initialize/text.js":
34334 /*!************************************************************!*\
34335 !*** ../node_modules/micromark/dev/lib/initialize/text.js ***!
34336 \************************************************************/
34337 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34338
34339 "use strict";
34340 __webpack_require__.r(__webpack_exports__);
34341 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34342 /* harmony export */ resolver: () => (/* binding */ resolver),
34343 /* harmony export */ string: () => (/* binding */ string),
34344 /* harmony export */ text: () => (/* binding */ text)
34345 /* harmony export */ });
34346 /* 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");
34347 /* 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");
34348 /* 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");
34349 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34350 /**
34351 * @typedef {import('micromark-util-types').Code} Code
34352 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34353 * @typedef {import('micromark-util-types').Initializer} Initializer
34354 * @typedef {import('micromark-util-types').Resolver} Resolver
34355 * @typedef {import('micromark-util-types').State} State
34356 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34357 */
34358
34359
34360
34361
34362
34363
34364 const resolver = {resolveAll: createResolver()}
34365 const string = initializeFactory('string')
34366 const text = initializeFactory('text')
34367
34368 /**
34369 * @param {'string' | 'text'} field
34370 * @returns {InitialConstruct}
34371 */
34372 function initializeFactory(field) {
34373 return {
34374 tokenize: initializeText,
34375 resolveAll: createResolver(
34376 field === 'text' ? resolveAllLineSuffixes : undefined
34377 )
34378 }
34379
34380 /**
34381 * @this {TokenizeContext}
34382 * @type {Initializer}
34383 */
34384 function initializeText(effects) {
34385 const self = this
34386 const constructs = this.parser.constructs[field]
34387 const text = effects.attempt(constructs, start, notText)
34388
34389 return start
34390
34391 /** @type {State} */
34392 function start(code) {
34393 return atBreak(code) ? text(code) : notText(code)
34394 }
34395
34396 /** @type {State} */
34397 function notText(code) {
34398 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34399 effects.consume(code)
34400 return
34401 }
34402
34403 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data)
34404 effects.consume(code)
34405 return data
34406 }
34407
34408 /** @type {State} */
34409 function data(code) {
34410 if (atBreak(code)) {
34411 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data)
34412 return text(code)
34413 }
34414
34415 // Data.
34416 effects.consume(code)
34417 return data
34418 }
34419
34420 /**
34421 * @param {Code} code
34422 * @returns {boolean}
34423 */
34424 function atBreak(code) {
34425 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34426 return true
34427 }
34428
34429 const list = constructs[code]
34430 let index = -1
34431
34432 if (list) {
34433 // Always populated by defaults.
34434 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(Array.isArray(list), 'expected `disable.null` to be populated')
34435
34436 while (++index < list.length) {
34437 const item = list[index]
34438 if (!item.previous || item.previous.call(self, self.previous)) {
34439 return true
34440 }
34441 }
34442 }
34443
34444 return false
34445 }
34446 }
34447 }
34448
34449 /**
34450 * @param {Resolver | undefined} [extraResolver]
34451 * @returns {Resolver}
34452 */
34453 function createResolver(extraResolver) {
34454 return resolveAllText
34455
34456 /** @type {Resolver} */
34457 function resolveAllText(events, context) {
34458 let index = -1
34459 /** @type {number | undefined} */
34460 let enter
34461
34462 // A rather boring computation (to merge adjacent `data` events) which
34463 // improves mm performance by 29%.
34464 while (++index <= events.length) {
34465 if (enter === undefined) {
34466 if (events[index] && events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data) {
34467 enter = index
34468 index++
34469 }
34470 } else if (!events[index] || events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data) {
34471 // Don’t do anything if there is one data token.
34472 if (index !== enter + 2) {
34473 events[enter][1].end = events[index - 1][1].end
34474 events.splice(enter + 2, index - enter - 2)
34475 index = enter + 2
34476 }
34477
34478 enter = undefined
34479 }
34480 }
34481
34482 return extraResolver ? extraResolver(events, context) : events
34483 }
34484 }
34485
34486 /**
34487 * A rather ugly set of instructions which again looks at chunks in the input
34488 * stream.
34489 * The reason to do this here is that it is *much* faster to parse in reverse.
34490 * And that we can’t hook into `null` to split the line suffix before an EOF.
34491 * To do: figure out if we can make this into a clean utility, or even in core.
34492 * As it will be useful for GFMs literal autolink extension (and maybe even
34493 * tables?)
34494 *
34495 * @type {Resolver}
34496 */
34497 function resolveAllLineSuffixes(events, context) {
34498 let eventIndex = 0 // Skip first.
34499
34500 while (++eventIndex <= events.length) {
34501 if (
34502 (eventIndex === events.length ||
34503 events[eventIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding) &&
34504 events[eventIndex - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data
34505 ) {
34506 const data = events[eventIndex - 1][1]
34507 const chunks = context.sliceStream(data)
34508 let index = chunks.length
34509 let bufferIndex = -1
34510 let size = 0
34511 /** @type {boolean | undefined} */
34512 let tabs
34513
34514 while (index--) {
34515 const chunk = chunks[index]
34516
34517 if (typeof chunk === 'string') {
34518 bufferIndex = chunk.length
34519
34520 while (chunk.charCodeAt(bufferIndex - 1) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.space) {
34521 size++
34522 bufferIndex--
34523 }
34524
34525 if (bufferIndex) break
34526 bufferIndex = -1
34527 }
34528 // Number
34529 else if (chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.horizontalTab) {
34530 tabs = true
34531 size++
34532 } else if (chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.virtualSpace) {
34533 // Empty
34534 } else {
34535 // Replacement character, exit.
34536 index++
34537 break
34538 }
34539 }
34540
34541 if (size) {
34542 const token = {
34543 type:
34544 eventIndex === events.length ||
34545 tabs ||
34546 size < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.hardBreakPrefixSizeMin
34547 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineSuffix
34548 : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakTrailing,
34549 start: {
34550 line: data.end.line,
34551 column: data.end.column - size,
34552 offset: data.end.offset - size,
34553 _index: data.start._index + index,
34554 _bufferIndex: index
34555 ? bufferIndex
34556 : data.start._bufferIndex + bufferIndex
34557 },
34558 end: Object.assign({}, data.end)
34559 }
34560
34561 data.end = Object.assign({}, token.start)
34562
34563 if (data.start.offset === data.end.offset) {
34564 Object.assign(data, token)
34565 } else {
34566 events.splice(
34567 eventIndex,
34568 0,
34569 ['enter', token, context],
34570 ['exit', token, context]
34571 )
34572 eventIndex += 2
34573 }
34574 }
34575
34576 eventIndex++
34577 }
34578 }
34579
34580 return events
34581 }
34582
34583
34584 /***/ }),
34585
34586 /***/ "../node_modules/micromark/dev/lib/parse.js":
34587 /*!**************************************************!*\
34588 !*** ../node_modules/micromark/dev/lib/parse.js ***!
34589 \**************************************************/
34590 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34591
34592 "use strict";
34593 __webpack_require__.r(__webpack_exports__);
34594 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34595 /* harmony export */ parse: () => (/* binding */ parse)
34596 /* harmony export */ });
34597 /* 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");
34598 /* harmony import */ var _initialize_content_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./initialize/content.js */ "../node_modules/micromark/dev/lib/initialize/content.js");
34599 /* harmony import */ var _initialize_document_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./initialize/document.js */ "../node_modules/micromark/dev/lib/initialize/document.js");
34600 /* harmony import */ var _initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./initialize/flow.js */ "../node_modules/micromark/dev/lib/initialize/flow.js");
34601 /* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./initialize/text.js */ "../node_modules/micromark/dev/lib/initialize/text.js");
34602 /* harmony import */ var _create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./create-tokenizer.js */ "../node_modules/micromark/dev/lib/create-tokenizer.js");
34603 /* harmony import */ var _constructs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructs.js */ "../node_modules/micromark/dev/lib/constructs.js");
34604 /**
34605 * @typedef {import('micromark-util-types').Create} Create
34606 * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension
34607 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34608 * @typedef {import('micromark-util-types').ParseContext} ParseContext
34609 * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
34610 */
34611
34612
34613
34614
34615
34616
34617
34618
34619
34620 /**
34621 * @param {ParseOptions | null | undefined} [options]
34622 * @returns {ParseContext}
34623 */
34624 function parse(options) {
34625 const settings = options || {}
34626 const constructs = /** @type {FullNormalizedExtension} */ (
34627 (0,micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__.combineExtensions)([_constructs_js__WEBPACK_IMPORTED_MODULE_1__, ...(settings.extensions || [])])
34628 )
34629
34630 /** @type {ParseContext} */
34631 const parser = {
34632 defined: [],
34633 lazy: {},
34634 constructs,
34635 content: create(_initialize_content_js__WEBPACK_IMPORTED_MODULE_2__.content),
34636 document: create(_initialize_document_js__WEBPACK_IMPORTED_MODULE_3__.document),
34637 flow: create(_initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__.flow),
34638 string: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.string),
34639 text: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.text)
34640 }
34641
34642 return parser
34643
34644 /**
34645 * @param {InitialConstruct} initial
34646 */
34647 function create(initial) {
34648 return creator
34649 /** @type {Create} */
34650 function creator(from) {
34651 return (0,_create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__.createTokenizer)(parser, initial, from)
34652 }
34653 }
34654 }
34655
34656
34657 /***/ }),
34658
34659 /***/ "../node_modules/micromark/dev/lib/postprocess.js":
34660 /*!********************************************************!*\
34661 !*** ../node_modules/micromark/dev/lib/postprocess.js ***!
34662 \********************************************************/
34663 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34664
34665 "use strict";
34666 __webpack_require__.r(__webpack_exports__);
34667 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34668 /* harmony export */ postprocess: () => (/* binding */ postprocess)
34669 /* harmony export */ });
34670 /* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-subtokenize */ "../node_modules/micromark-util-subtokenize/dev/index.js");
34671 /**
34672 * @typedef {import('micromark-util-types').Event} Event
34673 */
34674
34675
34676
34677 /**
34678 * @param {Array<Event>} events
34679 * @returns {Array<Event>}
34680 */
34681 function postprocess(events) {
34682 while (!(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__.subtokenize)(events)) {
34683 // Empty
34684 }
34685
34686 return events
34687 }
34688
34689
34690 /***/ }),
34691
34692 /***/ "../node_modules/micromark/dev/lib/preprocess.js":
34693 /*!*******************************************************!*\
34694 !*** ../node_modules/micromark/dev/lib/preprocess.js ***!
34695 \*******************************************************/
34696 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34697
34698 "use strict";
34699 __webpack_require__.r(__webpack_exports__);
34700 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34701 /* harmony export */ preprocess: () => (/* binding */ preprocess)
34702 /* harmony export */ });
34703 /* 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");
34704 /* 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");
34705 /**
34706 * @typedef {import('micromark-util-types').Chunk} Chunk
34707 * @typedef {import('micromark-util-types').Code} Code
34708 * @typedef {import('micromark-util-types').Encoding} Encoding
34709 * @typedef {import('micromark-util-types').Value} Value
34710 */
34711
34712 /**
34713 * @callback Preprocessor
34714 * @param {Value} value
34715 * @param {Encoding | null | undefined} [encoding]
34716 * @param {boolean | null | undefined} [end=false]
34717 * @returns {Array<Chunk>}
34718 */
34719
34720
34721
34722
34723 const search = /[\0\t\n\r]/g
34724
34725 /**
34726 * @returns {Preprocessor}
34727 */
34728 function preprocess() {
34729 let column = 1
34730 let buffer = ''
34731 /** @type {boolean | undefined} */
34732 let start = true
34733 /** @type {boolean | undefined} */
34734 let atCarriageReturn
34735
34736 return preprocessor
34737
34738 /** @type {Preprocessor} */
34739 function preprocessor(value, encoding, end) {
34740 /** @type {Array<Chunk>} */
34741 const chunks = []
34742 /** @type {RegExpMatchArray | null} */
34743 let match
34744 /** @type {number} */
34745 let next
34746 /** @type {number} */
34747 let startPosition
34748 /** @type {number} */
34749 let endPosition
34750 /** @type {Code} */
34751 let code
34752
34753 // @ts-expect-error `Buffer` does allow an encoding.
34754 value = buffer + value.toString(encoding)
34755 startPosition = 0
34756 buffer = ''
34757
34758 if (start) {
34759 // To do: `markdown-rs` actually parses BOMs (byte order mark).
34760 if (value.charCodeAt(0) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.byteOrderMarker) {
34761 startPosition++
34762 }
34763
34764 start = undefined
34765 }
34766
34767 while (startPosition < value.length) {
34768 search.lastIndex = startPosition
34769 match = search.exec(value)
34770 endPosition =
34771 match && match.index !== undefined ? match.index : value.length
34772 code = value.charCodeAt(endPosition)
34773
34774 if (!match) {
34775 buffer = value.slice(startPosition)
34776 break
34777 }
34778
34779 if (
34780 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lf &&
34781 startPosition === endPosition &&
34782 atCarriageReturn
34783 ) {
34784 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed)
34785 atCarriageReturn = undefined
34786 } else {
34787 if (atCarriageReturn) {
34788 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn)
34789 atCarriageReturn = undefined
34790 }
34791
34792 if (startPosition < endPosition) {
34793 chunks.push(value.slice(startPosition, endPosition))
34794 column += endPosition - startPosition
34795 }
34796
34797 switch (code) {
34798 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.nul: {
34799 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.replacementCharacter)
34800 column++
34801
34802 break
34803 }
34804
34805 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ht: {
34806 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
34807 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab)
34808 while (column++ < next) chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace)
34809
34810 break
34811 }
34812
34813 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lf: {
34814 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed)
34815 column = 1
34816
34817 break
34818 }
34819
34820 default: {
34821 atCarriageReturn = true
34822 column = 1
34823 }
34824 }
34825 }
34826
34827 startPosition = endPosition + 1
34828 }
34829
34830 if (end) {
34831 if (atCarriageReturn) chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn)
34832 if (buffer) chunks.push(buffer)
34833 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof)
34834 }
34835
34836 return chunks
34837 }
34838 }
34839
34840
34841 /***/ }),
34842
34843 /***/ "../node_modules/property-information/index.js":
34844 /*!*****************************************************!*\
34845 !*** ../node_modules/property-information/index.js ***!
34846 \*****************************************************/
34847 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34848
34849 "use strict";
34850 __webpack_require__.r(__webpack_exports__);
34851 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34852 /* harmony export */ find: () => (/* reexport safe */ _lib_find_js__WEBPACK_IMPORTED_MODULE_0__.find),
34853 /* harmony export */ hastToReact: () => (/* reexport safe */ _lib_hast_to_react_js__WEBPACK_IMPORTED_MODULE_1__.hastToReact),
34854 /* harmony export */ html: () => (/* binding */ html),
34855 /* harmony export */ normalize: () => (/* reexport safe */ _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__.normalize),
34856 /* harmony export */ svg: () => (/* binding */ svg)
34857 /* harmony export */ });
34858 /* 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");
34859 /* harmony import */ var _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/xlink.js */ "../node_modules/property-information/lib/xlink.js");
34860 /* harmony import */ var _lib_xml_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/xml.js */ "../node_modules/property-information/lib/xml.js");
34861 /* harmony import */ var _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/xmlns.js */ "../node_modules/property-information/lib/xmlns.js");
34862 /* harmony import */ var _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/aria.js */ "../node_modules/property-information/lib/aria.js");
34863 /* harmony import */ var _lib_html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/html.js */ "../node_modules/property-information/lib/html.js");
34864 /* harmony import */ var _lib_svg_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lib/svg.js */ "../node_modules/property-information/lib/svg.js");
34865 /* harmony import */ var _lib_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/find.js */ "../node_modules/property-information/lib/find.js");
34866 /* 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");
34867 /* harmony import */ var _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/normalize.js */ "../node_modules/property-information/lib/normalize.js");
34868 /**
34869 * @typedef {import('./lib/util/info.js').Info} Info
34870 * @typedef {import('./lib/util/schema.js').Schema} Schema
34871 */
34872
34873
34874
34875
34876
34877
34878
34879
34880
34881
34882
34883
34884 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')
34885 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')
34886
34887
34888 /***/ }),
34889
34890 /***/ "../node_modules/property-information/lib/aria.js":
34891 /*!********************************************************!*\
34892 !*** ../node_modules/property-information/lib/aria.js ***!
34893 \********************************************************/
34894 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34895
34896 "use strict";
34897 __webpack_require__.r(__webpack_exports__);
34898 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34899 /* harmony export */ aria: () => (/* binding */ aria)
34900 /* harmony export */ });
34901 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
34902 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
34903
34904
34905
34906 const aria = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
34907 transform(_, prop) {
34908 return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()
34909 },
34910 properties: {
34911 ariaActiveDescendant: null,
34912 ariaAtomic: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34913 ariaAutoComplete: null,
34914 ariaBusy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34915 ariaChecked: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34916 ariaColCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34917 ariaColIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34918 ariaColSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34919 ariaControls: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34920 ariaCurrent: null,
34921 ariaDescribedBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34922 ariaDetails: null,
34923 ariaDisabled: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34924 ariaDropEffect: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34925 ariaErrorMessage: null,
34926 ariaExpanded: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34927 ariaFlowTo: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34928 ariaGrabbed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34929 ariaHasPopup: null,
34930 ariaHidden: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34931 ariaInvalid: null,
34932 ariaKeyShortcuts: null,
34933 ariaLabel: null,
34934 ariaLabelledBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34935 ariaLevel: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34936 ariaLive: null,
34937 ariaModal: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34938 ariaMultiLine: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34939 ariaMultiSelectable: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34940 ariaOrientation: null,
34941 ariaOwns: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34942 ariaPlaceholder: null,
34943 ariaPosInSet: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34944 ariaPressed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34945 ariaReadOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34946 ariaRelevant: null,
34947 ariaRequired: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34948 ariaRoleDescription: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34949 ariaRowCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34950 ariaRowIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34951 ariaRowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34952 ariaSelected: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34953 ariaSetSize: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34954 ariaSort: null,
34955 ariaValueMax: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34956 ariaValueMin: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34957 ariaValueNow: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34958 ariaValueText: null,
34959 role: null
34960 }
34961 })
34962
34963
34964 /***/ }),
34965
34966 /***/ "../node_modules/property-information/lib/find.js":
34967 /*!********************************************************!*\
34968 !*** ../node_modules/property-information/lib/find.js ***!
34969 \********************************************************/
34970 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34971
34972 "use strict";
34973 __webpack_require__.r(__webpack_exports__);
34974 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34975 /* harmony export */ find: () => (/* binding */ find)
34976 /* harmony export */ });
34977 /* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normalize.js */ "../node_modules/property-information/lib/normalize.js");
34978 /* 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");
34979 /* harmony import */ var _util_info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/info.js */ "../node_modules/property-information/lib/util/info.js");
34980 /**
34981 * @typedef {import('./util/schema.js').Schema} Schema
34982 */
34983
34984
34985
34986
34987
34988 const valid = /^data[-\w.:]+$/i
34989 const dash = /-[a-z]/g
34990 const cap = /[A-Z]/g
34991
34992 /**
34993 * @param {Schema} schema
34994 * @param {string} value
34995 * @returns {Info}
34996 */
34997 function find(schema, value) {
34998 const normal = (0,_normalize_js__WEBPACK_IMPORTED_MODULE_0__.normalize)(value)
34999 let prop = value
35000 let Type = _util_info_js__WEBPACK_IMPORTED_MODULE_1__.Info
35001
35002 if (normal in schema.normal) {
35003 return schema.property[schema.normal[normal]]
35004 }
35005
35006 if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {
35007 // Attribute or property.
35008 if (value.charAt(4) === '-') {
35009 // Turn it into a property.
35010 const rest = value.slice(5).replace(dash, camelcase)
35011 prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)
35012 } else {
35013 // Turn it into an attribute.
35014 const rest = value.slice(4)
35015
35016 if (!dash.test(rest)) {
35017 let dashes = rest.replace(cap, kebab)
35018
35019 if (dashes.charAt(0) !== '-') {
35020 dashes = '-' + dashes
35021 }
35022
35023 value = 'data' + dashes
35024 }
35025 }
35026
35027 Type = _util_defined_info_js__WEBPACK_IMPORTED_MODULE_2__.DefinedInfo
35028 }
35029
35030 return new Type(prop, value)
35031 }
35032
35033 /**
35034 * @param {string} $0
35035 * @returns {string}
35036 */
35037 function kebab($0) {
35038 return '-' + $0.toLowerCase()
35039 }
35040
35041 /**
35042 * @param {string} $0
35043 * @returns {string}
35044 */
35045 function camelcase($0) {
35046 return $0.charAt(1).toUpperCase()
35047 }
35048
35049
35050 /***/ }),
35051
35052 /***/ "../node_modules/property-information/lib/hast-to-react.js":
35053 /*!*****************************************************************!*\
35054 !*** ../node_modules/property-information/lib/hast-to-react.js ***!
35055 \*****************************************************************/
35056 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35057
35058 "use strict";
35059 __webpack_require__.r(__webpack_exports__);
35060 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35061 /* harmony export */ hastToReact: () => (/* binding */ hastToReact)
35062 /* harmony export */ });
35063 /**
35064 * `hast` is close to `React`, but differs in a couple of cases.
35065 *
35066 * To get a React property from a hast property, check if it is in
35067 * `hastToReact`, if it is, then use the corresponding value,
35068 * otherwise, use the hast property.
35069 *
35070 * @type {Record<string, string>}
35071 */
35072 const hastToReact = {
35073 classId: 'classID',
35074 dataType: 'datatype',
35075 itemId: 'itemID',
35076 strokeDashArray: 'strokeDasharray',
35077 strokeDashOffset: 'strokeDashoffset',
35078 strokeLineCap: 'strokeLinecap',
35079 strokeLineJoin: 'strokeLinejoin',
35080 strokeMiterLimit: 'strokeMiterlimit',
35081 typeOf: 'typeof',
35082 xLinkActuate: 'xlinkActuate',
35083 xLinkArcRole: 'xlinkArcrole',
35084 xLinkHref: 'xlinkHref',
35085 xLinkRole: 'xlinkRole',
35086 xLinkShow: 'xlinkShow',
35087 xLinkTitle: 'xlinkTitle',
35088 xLinkType: 'xlinkType',
35089 xmlnsXLink: 'xmlnsXlink'
35090 }
35091
35092
35093 /***/ }),
35094
35095 /***/ "../node_modules/property-information/lib/html.js":
35096 /*!********************************************************!*\
35097 !*** ../node_modules/property-information/lib/html.js ***!
35098 \********************************************************/
35099 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35100
35101 "use strict";
35102 __webpack_require__.r(__webpack_exports__);
35103 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35104 /* harmony export */ html: () => (/* binding */ html)
35105 /* harmony export */ });
35106 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35107 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35108 /* 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");
35109
35110
35111
35112
35113 const html = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35114 space: 'html',
35115 attributes: {
35116 acceptcharset: 'accept-charset',
35117 classname: 'class',
35118 htmlfor: 'for',
35119 httpequiv: 'http-equiv'
35120 },
35121 transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,
35122 mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],
35123 properties: {
35124 // Standard Properties.
35125 abbr: null,
35126 accept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35127 acceptCharset: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35128 accessKey: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35129 action: null,
35130 allow: null,
35131 allowFullScreen: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35132 allowPaymentRequest: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35133 allowUserMedia: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35134 alt: null,
35135 as: null,
35136 async: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35137 autoCapitalize: null,
35138 autoComplete: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35139 autoFocus: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35140 autoPlay: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35141 capture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35142 charSet: null,
35143 checked: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35144 cite: null,
35145 className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35146 cols: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35147 colSpan: null,
35148 content: null,
35149 contentEditable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35150 controls: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35151 controlsList: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35152 coords: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number | _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35153 crossOrigin: null,
35154 data: null,
35155 dateTime: null,
35156 decoding: null,
35157 default: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35158 defer: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35159 dir: null,
35160 dirName: null,
35161 disabled: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35162 download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.overloadedBoolean,
35163 draggable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35164 encType: null,
35165 enterKeyHint: null,
35166 form: null,
35167 formAction: null,
35168 formEncType: null,
35169 formMethod: null,
35170 formNoValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35171 formTarget: null,
35172 headers: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35173 height: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35174 hidden: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35175 high: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35176 href: null,
35177 hrefLang: null,
35178 htmlFor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35179 httpEquiv: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35180 id: null,
35181 imageSizes: null,
35182 imageSrcSet: null,
35183 inputMode: null,
35184 integrity: null,
35185 is: null,
35186 isMap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35187 itemId: null,
35188 itemProp: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35189 itemRef: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35190 itemScope: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35191 itemType: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35192 kind: null,
35193 label: null,
35194 lang: null,
35195 language: null,
35196 list: null,
35197 loading: null,
35198 loop: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35199 low: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35200 manifest: null,
35201 max: null,
35202 maxLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35203 media: null,
35204 method: null,
35205 min: null,
35206 minLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35207 multiple: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35208 muted: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35209 name: null,
35210 nonce: null,
35211 noModule: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35212 noValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35213 onAbort: null,
35214 onAfterPrint: null,
35215 onAuxClick: null,
35216 onBeforeMatch: null,
35217 onBeforePrint: null,
35218 onBeforeUnload: null,
35219 onBlur: null,
35220 onCancel: null,
35221 onCanPlay: null,
35222 onCanPlayThrough: null,
35223 onChange: null,
35224 onClick: null,
35225 onClose: null,
35226 onContextLost: null,
35227 onContextMenu: null,
35228 onContextRestored: null,
35229 onCopy: null,
35230 onCueChange: null,
35231 onCut: null,
35232 onDblClick: null,
35233 onDrag: null,
35234 onDragEnd: null,
35235 onDragEnter: null,
35236 onDragExit: null,
35237 onDragLeave: null,
35238 onDragOver: null,
35239 onDragStart: null,
35240 onDrop: null,
35241 onDurationChange: null,
35242 onEmptied: null,
35243 onEnded: null,
35244 onError: null,
35245 onFocus: null,
35246 onFormData: null,
35247 onHashChange: null,
35248 onInput: null,
35249 onInvalid: null,
35250 onKeyDown: null,
35251 onKeyPress: null,
35252 onKeyUp: null,
35253 onLanguageChange: null,
35254 onLoad: null,
35255 onLoadedData: null,
35256 onLoadedMetadata: null,
35257 onLoadEnd: null,
35258 onLoadStart: null,
35259 onMessage: null,
35260 onMessageError: null,
35261 onMouseDown: null,
35262 onMouseEnter: null,
35263 onMouseLeave: null,
35264 onMouseMove: null,
35265 onMouseOut: null,
35266 onMouseOver: null,
35267 onMouseUp: null,
35268 onOffline: null,
35269 onOnline: null,
35270 onPageHide: null,
35271 onPageShow: null,
35272 onPaste: null,
35273 onPause: null,
35274 onPlay: null,
35275 onPlaying: null,
35276 onPopState: null,
35277 onProgress: null,
35278 onRateChange: null,
35279 onRejectionHandled: null,
35280 onReset: null,
35281 onResize: null,
35282 onScroll: null,
35283 onScrollEnd: null,
35284 onSecurityPolicyViolation: null,
35285 onSeeked: null,
35286 onSeeking: null,
35287 onSelect: null,
35288 onSlotChange: null,
35289 onStalled: null,
35290 onStorage: null,
35291 onSubmit: null,
35292 onSuspend: null,
35293 onTimeUpdate: null,
35294 onToggle: null,
35295 onUnhandledRejection: null,
35296 onUnload: null,
35297 onVolumeChange: null,
35298 onWaiting: null,
35299 onWheel: null,
35300 open: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35301 optimum: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35302 pattern: null,
35303 ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35304 placeholder: null,
35305 playsInline: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35306 poster: null,
35307 preload: null,
35308 readOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35309 referrerPolicy: null,
35310 rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35311 required: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35312 reversed: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35313 rows: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35314 rowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35315 sandbox: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35316 scope: null,
35317 scoped: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35318 seamless: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35319 selected: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35320 shape: null,
35321 size: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35322 sizes: null,
35323 slot: null,
35324 span: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35325 spellCheck: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35326 src: null,
35327 srcDoc: null,
35328 srcLang: null,
35329 srcSet: null,
35330 start: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35331 step: null,
35332 style: null,
35333 tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35334 target: null,
35335 title: null,
35336 translate: null,
35337 type: null,
35338 typeMustMatch: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35339 useMap: null,
35340 value: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35341 width: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35342 wrap: null,
35343
35344 // Legacy.
35345 // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis
35346 align: null, // Several. Use CSS `text-align` instead,
35347 aLink: null, // `<body>`. Use CSS `a:active {color}` instead
35348 archive: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated, // `<object>`. List of URIs to archives
35349 axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`
35350 background: null, // `<body>`. Use CSS `background-image` instead
35351 bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead
35352 border: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<table>`. Use CSS `border-width` instead,
35353 borderColor: null, // `<table>`. Use CSS `border-color` instead,
35354 bottomMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35355 cellPadding: null, // `<table>`
35356 cellSpacing: null, // `<table>`
35357 char: null, // Several table elements. When `align=char`, sets the character to align on
35358 charOff: null, // Several table elements. When `char`, offsets the alignment
35359 classId: null, // `<object>`
35360 clear: null, // `<br>`. Use CSS `clear` instead
35361 code: null, // `<object>`
35362 codeBase: null, // `<object>`
35363 codeType: null, // `<object>`
35364 color: null, // `<font>` and `<hr>`. Use CSS instead
35365 compact: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // Lists. Use CSS to reduce space between items instead
35366 declare: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<object>`
35367 event: null, // `<script>`
35368 face: null, // `<font>`. Use CSS instead
35369 frame: null, // `<table>`
35370 frameBorder: null, // `<iframe>`. Use CSS `border` instead
35371 hSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<img>` and `<object>`
35372 leftMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35373 link: null, // `<body>`. Use CSS `a:link {color: *}` instead
35374 longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
35375 lowSrc: null, // `<img>`. Use a `<picture>`
35376 marginHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35377 marginWidth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35378 noResize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<frame>`
35379 noHref: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<area>`. Use no href instead of an explicit `nohref`
35380 noShade: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<hr>`. Use background-color and height instead of borders
35381 noWrap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<td>` and `<th>`
35382 object: null, // `<applet>`
35383 profile: null, // `<head>`
35384 prompt: null, // `<isindex>`
35385 rev: null, // `<link>`
35386 rightMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35387 rules: null, // `<table>`
35388 scheme: null, // `<meta>`
35389 scrolling: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish, // `<frame>`. Use overflow in the child context
35390 standby: null, // `<object>`
35391 summary: null, // `<table>`
35392 text: null, // `<body>`. Use CSS `color` instead
35393 topMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35394 valueType: null, // `<param>`
35395 version: null, // `<html>`. Use a doctype.
35396 vAlign: null, // Several. Use CSS `vertical-align` instead
35397 vLink: null, // `<body>`. Use CSS `a:visited {color}` instead
35398 vSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<img>` and `<object>`
35399
35400 // Non-standard Properties.
35401 allowTransparency: null,
35402 autoCorrect: null,
35403 autoSave: null,
35404 disablePictureInPicture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35405 disableRemotePlayback: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35406 prefix: null,
35407 property: null,
35408 results: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35409 security: null,
35410 unselectable: null
35411 }
35412 })
35413
35414
35415 /***/ }),
35416
35417 /***/ "../node_modules/property-information/lib/normalize.js":
35418 /*!*************************************************************!*\
35419 !*** ../node_modules/property-information/lib/normalize.js ***!
35420 \*************************************************************/
35421 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35422
35423 "use strict";
35424 __webpack_require__.r(__webpack_exports__);
35425 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35426 /* harmony export */ normalize: () => (/* binding */ normalize)
35427 /* harmony export */ });
35428 /**
35429 * @param {string} value
35430 * @returns {string}
35431 */
35432 function normalize(value) {
35433 return value.toLowerCase()
35434 }
35435
35436
35437 /***/ }),
35438
35439 /***/ "../node_modules/property-information/lib/svg.js":
35440 /*!*******************************************************!*\
35441 !*** ../node_modules/property-information/lib/svg.js ***!
35442 \*******************************************************/
35443 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35444
35445 "use strict";
35446 __webpack_require__.r(__webpack_exports__);
35447 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35448 /* harmony export */ svg: () => (/* binding */ svg)
35449 /* harmony export */ });
35450 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35451 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35452 /* 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");
35453
35454
35455
35456
35457 const svg = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35458 space: 'svg',
35459 attributes: {
35460 accentHeight: 'accent-height',
35461 alignmentBaseline: 'alignment-baseline',
35462 arabicForm: 'arabic-form',
35463 baselineShift: 'baseline-shift',
35464 capHeight: 'cap-height',
35465 className: 'class',
35466 clipPath: 'clip-path',
35467 clipRule: 'clip-rule',
35468 colorInterpolation: 'color-interpolation',
35469 colorInterpolationFilters: 'color-interpolation-filters',
35470 colorProfile: 'color-profile',
35471 colorRendering: 'color-rendering',
35472 crossOrigin: 'crossorigin',
35473 dataType: 'datatype',
35474 dominantBaseline: 'dominant-baseline',
35475 enableBackground: 'enable-background',
35476 fillOpacity: 'fill-opacity',
35477 fillRule: 'fill-rule',
35478 floodColor: 'flood-color',
35479 floodOpacity: 'flood-opacity',
35480 fontFamily: 'font-family',
35481 fontSize: 'font-size',
35482 fontSizeAdjust: 'font-size-adjust',
35483 fontStretch: 'font-stretch',
35484 fontStyle: 'font-style',
35485 fontVariant: 'font-variant',
35486 fontWeight: 'font-weight',
35487 glyphName: 'glyph-name',
35488 glyphOrientationHorizontal: 'glyph-orientation-horizontal',
35489 glyphOrientationVertical: 'glyph-orientation-vertical',
35490 hrefLang: 'hreflang',
35491 horizAdvX: 'horiz-adv-x',
35492 horizOriginX: 'horiz-origin-x',
35493 horizOriginY: 'horiz-origin-y',
35494 imageRendering: 'image-rendering',
35495 letterSpacing: 'letter-spacing',
35496 lightingColor: 'lighting-color',
35497 markerEnd: 'marker-end',
35498 markerMid: 'marker-mid',
35499 markerStart: 'marker-start',
35500 navDown: 'nav-down',
35501 navDownLeft: 'nav-down-left',
35502 navDownRight: 'nav-down-right',
35503 navLeft: 'nav-left',
35504 navNext: 'nav-next',
35505 navPrev: 'nav-prev',
35506 navRight: 'nav-right',
35507 navUp: 'nav-up',
35508 navUpLeft: 'nav-up-left',
35509 navUpRight: 'nav-up-right',
35510 onAbort: 'onabort',
35511 onActivate: 'onactivate',
35512 onAfterPrint: 'onafterprint',
35513 onBeforePrint: 'onbeforeprint',
35514 onBegin: 'onbegin',
35515 onCancel: 'oncancel',
35516 onCanPlay: 'oncanplay',
35517 onCanPlayThrough: 'oncanplaythrough',
35518 onChange: 'onchange',
35519 onClick: 'onclick',
35520 onClose: 'onclose',
35521 onCopy: 'oncopy',
35522 onCueChange: 'oncuechange',
35523 onCut: 'oncut',
35524 onDblClick: 'ondblclick',
35525 onDrag: 'ondrag',
35526 onDragEnd: 'ondragend',
35527 onDragEnter: 'ondragenter',
35528 onDragExit: 'ondragexit',
35529 onDragLeave: 'ondragleave',
35530 onDragOver: 'ondragover',
35531 onDragStart: 'ondragstart',
35532 onDrop: 'ondrop',
35533 onDurationChange: 'ondurationchange',
35534 onEmptied: 'onemptied',
35535 onEnd: 'onend',
35536 onEnded: 'onended',
35537 onError: 'onerror',
35538 onFocus: 'onfocus',
35539 onFocusIn: 'onfocusin',
35540 onFocusOut: 'onfocusout',
35541 onHashChange: 'onhashchange',
35542 onInput: 'oninput',
35543 onInvalid: 'oninvalid',
35544 onKeyDown: 'onkeydown',
35545 onKeyPress: 'onkeypress',
35546 onKeyUp: 'onkeyup',
35547 onLoad: 'onload',
35548 onLoadedData: 'onloadeddata',
35549 onLoadedMetadata: 'onloadedmetadata',
35550 onLoadStart: 'onloadstart',
35551 onMessage: 'onmessage',
35552 onMouseDown: 'onmousedown',
35553 onMouseEnter: 'onmouseenter',
35554 onMouseLeave: 'onmouseleave',
35555 onMouseMove: 'onmousemove',
35556 onMouseOut: 'onmouseout',
35557 onMouseOver: 'onmouseover',
35558 onMouseUp: 'onmouseup',
35559 onMouseWheel: 'onmousewheel',
35560 onOffline: 'onoffline',
35561 onOnline: 'ononline',
35562 onPageHide: 'onpagehide',
35563 onPageShow: 'onpageshow',
35564 onPaste: 'onpaste',
35565 onPause: 'onpause',
35566 onPlay: 'onplay',
35567 onPlaying: 'onplaying',
35568 onPopState: 'onpopstate',
35569 onProgress: 'onprogress',
35570 onRateChange: 'onratechange',
35571 onRepeat: 'onrepeat',
35572 onReset: 'onreset',
35573 onResize: 'onresize',
35574 onScroll: 'onscroll',
35575 onSeeked: 'onseeked',
35576 onSeeking: 'onseeking',
35577 onSelect: 'onselect',
35578 onShow: 'onshow',
35579 onStalled: 'onstalled',
35580 onStorage: 'onstorage',
35581 onSubmit: 'onsubmit',
35582 onSuspend: 'onsuspend',
35583 onTimeUpdate: 'ontimeupdate',
35584 onToggle: 'ontoggle',
35585 onUnload: 'onunload',
35586 onVolumeChange: 'onvolumechange',
35587 onWaiting: 'onwaiting',
35588 onZoom: 'onzoom',
35589 overlinePosition: 'overline-position',
35590 overlineThickness: 'overline-thickness',
35591 paintOrder: 'paint-order',
35592 panose1: 'panose-1',
35593 pointerEvents: 'pointer-events',
35594 referrerPolicy: 'referrerpolicy',
35595 renderingIntent: 'rendering-intent',
35596 shapeRendering: 'shape-rendering',
35597 stopColor: 'stop-color',
35598 stopOpacity: 'stop-opacity',
35599 strikethroughPosition: 'strikethrough-position',
35600 strikethroughThickness: 'strikethrough-thickness',
35601 strokeDashArray: 'stroke-dasharray',
35602 strokeDashOffset: 'stroke-dashoffset',
35603 strokeLineCap: 'stroke-linecap',
35604 strokeLineJoin: 'stroke-linejoin',
35605 strokeMiterLimit: 'stroke-miterlimit',
35606 strokeOpacity: 'stroke-opacity',
35607 strokeWidth: 'stroke-width',
35608 tabIndex: 'tabindex',
35609 textAnchor: 'text-anchor',
35610 textDecoration: 'text-decoration',
35611 textRendering: 'text-rendering',
35612 typeOf: 'typeof',
35613 underlinePosition: 'underline-position',
35614 underlineThickness: 'underline-thickness',
35615 unicodeBidi: 'unicode-bidi',
35616 unicodeRange: 'unicode-range',
35617 unitsPerEm: 'units-per-em',
35618 vAlphabetic: 'v-alphabetic',
35619 vHanging: 'v-hanging',
35620 vIdeographic: 'v-ideographic',
35621 vMathematical: 'v-mathematical',
35622 vectorEffect: 'vector-effect',
35623 vertAdvY: 'vert-adv-y',
35624 vertOriginX: 'vert-origin-x',
35625 vertOriginY: 'vert-origin-y',
35626 wordSpacing: 'word-spacing',
35627 writingMode: 'writing-mode',
35628 xHeight: 'x-height',
35629 // These were camelcased in Tiny. Now lowercased in SVG 2
35630 playbackOrder: 'playbackorder',
35631 timelineBegin: 'timelinebegin'
35632 },
35633 transform: _util_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseSensitiveTransform,
35634 properties: {
35635 about: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35636 accentHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35637 accumulate: null,
35638 additive: null,
35639 alignmentBaseline: null,
35640 alphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35641 amplitude: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35642 arabicForm: null,
35643 ascent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35644 attributeName: null,
35645 attributeType: null,
35646 azimuth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35647 bandwidth: null,
35648 baselineShift: null,
35649 baseFrequency: null,
35650 baseProfile: null,
35651 bbox: null,
35652 begin: null,
35653 bias: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35654 by: null,
35655 calcMode: null,
35656 capHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35657 className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35658 clip: null,
35659 clipPath: null,
35660 clipPathUnits: null,
35661 clipRule: null,
35662 color: null,
35663 colorInterpolation: null,
35664 colorInterpolationFilters: null,
35665 colorProfile: null,
35666 colorRendering: null,
35667 content: null,
35668 contentScriptType: null,
35669 contentStyleType: null,
35670 crossOrigin: null,
35671 cursor: null,
35672 cx: null,
35673 cy: null,
35674 d: null,
35675 dataType: null,
35676 defaultAction: null,
35677 descent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35678 diffuseConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35679 direction: null,
35680 display: null,
35681 dur: null,
35682 divisor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35683 dominantBaseline: null,
35684 download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35685 dx: null,
35686 dy: null,
35687 edgeMode: null,
35688 editable: null,
35689 elevation: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35690 enableBackground: null,
35691 end: null,
35692 event: null,
35693 exponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35694 externalResourcesRequired: null,
35695 fill: null,
35696 fillOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35697 fillRule: null,
35698 filter: null,
35699 filterRes: null,
35700 filterUnits: null,
35701 floodColor: null,
35702 floodOpacity: null,
35703 focusable: null,
35704 focusHighlight: null,
35705 fontFamily: null,
35706 fontSize: null,
35707 fontSizeAdjust: null,
35708 fontStretch: null,
35709 fontStyle: null,
35710 fontVariant: null,
35711 fontWeight: null,
35712 format: null,
35713 fr: null,
35714 from: null,
35715 fx: null,
35716 fy: null,
35717 g1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35718 g2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35719 glyphName: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35720 glyphOrientationHorizontal: null,
35721 glyphOrientationVertical: null,
35722 glyphRef: null,
35723 gradientTransform: null,
35724 gradientUnits: null,
35725 handler: null,
35726 hanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35727 hatchContentUnits: null,
35728 hatchUnits: null,
35729 height: null,
35730 href: null,
35731 hrefLang: null,
35732 horizAdvX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35733 horizOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35734 horizOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35735 id: null,
35736 ideographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35737 imageRendering: null,
35738 initialVisibility: null,
35739 in: null,
35740 in2: null,
35741 intercept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35742 k: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35743 k1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35744 k2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35745 k3: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35746 k4: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35747 kernelMatrix: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35748 kernelUnitLength: null,
35749 keyPoints: null, // SEMI_COLON_SEPARATED
35750 keySplines: null, // SEMI_COLON_SEPARATED
35751 keyTimes: null, // SEMI_COLON_SEPARATED
35752 kerning: null,
35753 lang: null,
35754 lengthAdjust: null,
35755 letterSpacing: null,
35756 lightingColor: null,
35757 limitingConeAngle: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35758 local: null,
35759 markerEnd: null,
35760 markerMid: null,
35761 markerStart: null,
35762 markerHeight: null,
35763 markerUnits: null,
35764 markerWidth: null,
35765 mask: null,
35766 maskContentUnits: null,
35767 maskUnits: null,
35768 mathematical: null,
35769 max: null,
35770 media: null,
35771 mediaCharacterEncoding: null,
35772 mediaContentEncodings: null,
35773 mediaSize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35774 mediaTime: null,
35775 method: null,
35776 min: null,
35777 mode: null,
35778 name: null,
35779 navDown: null,
35780 navDownLeft: null,
35781 navDownRight: null,
35782 navLeft: null,
35783 navNext: null,
35784 navPrev: null,
35785 navRight: null,
35786 navUp: null,
35787 navUpLeft: null,
35788 navUpRight: null,
35789 numOctaves: null,
35790 observer: null,
35791 offset: null,
35792 onAbort: null,
35793 onActivate: null,
35794 onAfterPrint: null,
35795 onBeforePrint: null,
35796 onBegin: null,
35797 onCancel: null,
35798 onCanPlay: null,
35799 onCanPlayThrough: null,
35800 onChange: null,
35801 onClick: null,
35802 onClose: null,
35803 onCopy: null,
35804 onCueChange: null,
35805 onCut: null,
35806 onDblClick: null,
35807 onDrag: null,
35808 onDragEnd: null,
35809 onDragEnter: null,
35810 onDragExit: null,
35811 onDragLeave: null,
35812 onDragOver: null,
35813 onDragStart: null,
35814 onDrop: null,
35815 onDurationChange: null,
35816 onEmptied: null,
35817 onEnd: null,
35818 onEnded: null,
35819 onError: null,
35820 onFocus: null,
35821 onFocusIn: null,
35822 onFocusOut: null,
35823 onHashChange: null,
35824 onInput: null,
35825 onInvalid: null,
35826 onKeyDown: null,
35827 onKeyPress: null,
35828 onKeyUp: null,
35829 onLoad: null,
35830 onLoadedData: null,
35831 onLoadedMetadata: null,
35832 onLoadStart: null,
35833 onMessage: null,
35834 onMouseDown: null,
35835 onMouseEnter: null,
35836 onMouseLeave: null,
35837 onMouseMove: null,
35838 onMouseOut: null,
35839 onMouseOver: null,
35840 onMouseUp: null,
35841 onMouseWheel: null,
35842 onOffline: null,
35843 onOnline: null,
35844 onPageHide: null,
35845 onPageShow: null,
35846 onPaste: null,
35847 onPause: null,
35848 onPlay: null,
35849 onPlaying: null,
35850 onPopState: null,
35851 onProgress: null,
35852 onRateChange: null,
35853 onRepeat: null,
35854 onReset: null,
35855 onResize: null,
35856 onScroll: null,
35857 onSeeked: null,
35858 onSeeking: null,
35859 onSelect: null,
35860 onShow: null,
35861 onStalled: null,
35862 onStorage: null,
35863 onSubmit: null,
35864 onSuspend: null,
35865 onTimeUpdate: null,
35866 onToggle: null,
35867 onUnload: null,
35868 onVolumeChange: null,
35869 onWaiting: null,
35870 onZoom: null,
35871 opacity: null,
35872 operator: null,
35873 order: null,
35874 orient: null,
35875 orientation: null,
35876 origin: null,
35877 overflow: null,
35878 overlay: null,
35879 overlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35880 overlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35881 paintOrder: null,
35882 panose1: null,
35883 path: null,
35884 pathLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35885 patternContentUnits: null,
35886 patternTransform: null,
35887 patternUnits: null,
35888 phase: null,
35889 ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35890 pitch: null,
35891 playbackOrder: null,
35892 pointerEvents: null,
35893 points: null,
35894 pointsAtX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35895 pointsAtY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35896 pointsAtZ: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35897 preserveAlpha: null,
35898 preserveAspectRatio: null,
35899 primitiveUnits: null,
35900 propagate: null,
35901 property: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35902 r: null,
35903 radius: null,
35904 referrerPolicy: null,
35905 refX: null,
35906 refY: null,
35907 rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35908 rev: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35909 renderingIntent: null,
35910 repeatCount: null,
35911 repeatDur: null,
35912 requiredExtensions: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35913 requiredFeatures: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35914 requiredFonts: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35915 requiredFormats: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35916 resource: null,
35917 restart: null,
35918 result: null,
35919 rotate: null,
35920 rx: null,
35921 ry: null,
35922 scale: null,
35923 seed: null,
35924 shapeRendering: null,
35925 side: null,
35926 slope: null,
35927 snapshotTime: null,
35928 specularConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35929 specularExponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35930 spreadMethod: null,
35931 spacing: null,
35932 startOffset: null,
35933 stdDeviation: null,
35934 stemh: null,
35935 stemv: null,
35936 stitchTiles: null,
35937 stopColor: null,
35938 stopOpacity: null,
35939 strikethroughPosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35940 strikethroughThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35941 string: null,
35942 stroke: null,
35943 strokeDashArray: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35944 strokeDashOffset: null,
35945 strokeLineCap: null,
35946 strokeLineJoin: null,
35947 strokeMiterLimit: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35948 strokeOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35949 strokeWidth: null,
35950 style: null,
35951 surfaceScale: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35952 syncBehavior: null,
35953 syncBehaviorDefault: null,
35954 syncMaster: null,
35955 syncTolerance: null,
35956 syncToleranceDefault: null,
35957 systemLanguage: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35958 tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35959 tableValues: null,
35960 target: null,
35961 targetX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35962 targetY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35963 textAnchor: null,
35964 textDecoration: null,
35965 textRendering: null,
35966 textLength: null,
35967 timelineBegin: null,
35968 title: null,
35969 transformBehavior: null,
35970 type: null,
35971 typeOf: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35972 to: null,
35973 transform: null,
35974 u1: null,
35975 u2: null,
35976 underlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35977 underlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35978 unicode: null,
35979 unicodeBidi: null,
35980 unicodeRange: null,
35981 unitsPerEm: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35982 values: null,
35983 vAlphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35984 vMathematical: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35985 vectorEffect: null,
35986 vHanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35987 vIdeographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35988 version: null,
35989 vertAdvY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35990 vertOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35991 vertOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35992 viewBox: null,
35993 viewTarget: null,
35994 visibility: null,
35995 width: null,
35996 widths: null,
35997 wordSpacing: null,
35998 writingMode: null,
35999 x: null,
36000 x1: null,
36001 x2: null,
36002 xChannelSelector: null,
36003 xHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36004 y: null,
36005 y1: null,
36006 y2: null,
36007 yChannelSelector: null,
36008 z: null,
36009 zoomAndPan: null
36010 }
36011 })
36012
36013
36014 /***/ }),
36015
36016 /***/ "../node_modules/property-information/lib/util/case-insensitive-transform.js":
36017 /*!***********************************************************************************!*\
36018 !*** ../node_modules/property-information/lib/util/case-insensitive-transform.js ***!
36019 \***********************************************************************************/
36020 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36021
36022 "use strict";
36023 __webpack_require__.r(__webpack_exports__);
36024 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36025 /* harmony export */ caseInsensitiveTransform: () => (/* binding */ caseInsensitiveTransform)
36026 /* harmony export */ });
36027 /* 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");
36028
36029
36030 /**
36031 * @param {Record<string, string>} attributes
36032 * @param {string} property
36033 * @returns {string}
36034 */
36035 function caseInsensitiveTransform(attributes, property) {
36036 return (0,_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_0__.caseSensitiveTransform)(attributes, property.toLowerCase())
36037 }
36038
36039
36040 /***/ }),
36041
36042 /***/ "../node_modules/property-information/lib/util/case-sensitive-transform.js":
36043 /*!*********************************************************************************!*\
36044 !*** ../node_modules/property-information/lib/util/case-sensitive-transform.js ***!
36045 \*********************************************************************************/
36046 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36047
36048 "use strict";
36049 __webpack_require__.r(__webpack_exports__);
36050 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36051 /* harmony export */ caseSensitiveTransform: () => (/* binding */ caseSensitiveTransform)
36052 /* harmony export */ });
36053 /**
36054 * @param {Record<string, string>} attributes
36055 * @param {string} attribute
36056 * @returns {string}
36057 */
36058 function caseSensitiveTransform(attributes, attribute) {
36059 return attribute in attributes ? attributes[attribute] : attribute
36060 }
36061
36062
36063 /***/ }),
36064
36065 /***/ "../node_modules/property-information/lib/util/create.js":
36066 /*!***************************************************************!*\
36067 !*** ../node_modules/property-information/lib/util/create.js ***!
36068 \***************************************************************/
36069 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36070
36071 "use strict";
36072 __webpack_require__.r(__webpack_exports__);
36073 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36074 /* harmony export */ create: () => (/* binding */ create)
36075 /* harmony export */ });
36076 /* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../normalize.js */ "../node_modules/property-information/lib/normalize.js");
36077 /* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schema.js */ "../node_modules/property-information/lib/util/schema.js");
36078 /* harmony import */ var _defined_info_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defined-info.js */ "../node_modules/property-information/lib/util/defined-info.js");
36079 /**
36080 * @typedef {import('./schema.js').Properties} Properties
36081 * @typedef {import('./schema.js').Normal} Normal
36082 *
36083 * @typedef {Record<string, string>} Attributes
36084 *
36085 * @typedef {Object} Definition
36086 * @property {Record<string, number|null>} properties
36087 * @property {(attributes: Attributes, property: string) => string} transform
36088 * @property {string} [space]
36089 * @property {Attributes} [attributes]
36090 * @property {Array<string>} [mustUseProperty]
36091 */
36092
36093
36094
36095
36096
36097 const own = {}.hasOwnProperty
36098
36099 /**
36100 * @param {Definition} definition
36101 * @returns {Schema}
36102 */
36103 function create(definition) {
36104 /** @type {Properties} */
36105 const property = {}
36106 /** @type {Normal} */
36107 const normal = {}
36108 /** @type {string} */
36109 let prop
36110
36111 for (prop in definition.properties) {
36112 if (own.call(definition.properties, prop)) {
36113 const value = definition.properties[prop]
36114 const info = new _defined_info_js__WEBPACK_IMPORTED_MODULE_0__.DefinedInfo(
36115 prop,
36116 definition.transform(definition.attributes || {}, prop),
36117 value,
36118 definition.space
36119 )
36120
36121 if (
36122 definition.mustUseProperty &&
36123 definition.mustUseProperty.includes(prop)
36124 ) {
36125 info.mustUseProperty = true
36126 }
36127
36128 property[prop] = info
36129
36130 normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(prop)] = prop
36131 normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(info.attribute)] = prop
36132 }
36133 }
36134
36135 return new _schema_js__WEBPACK_IMPORTED_MODULE_2__.Schema(property, normal, definition.space)
36136 }
36137
36138
36139 /***/ }),
36140
36141 /***/ "../node_modules/property-information/lib/util/defined-info.js":
36142 /*!*********************************************************************!*\
36143 !*** ../node_modules/property-information/lib/util/defined-info.js ***!
36144 \*********************************************************************/
36145 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36146
36147 "use strict";
36148 __webpack_require__.r(__webpack_exports__);
36149 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36150 /* harmony export */ DefinedInfo: () => (/* binding */ DefinedInfo)
36151 /* harmony export */ });
36152 /* harmony import */ var _info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./info.js */ "../node_modules/property-information/lib/util/info.js");
36153 /* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types.js */ "../node_modules/property-information/lib/util/types.js");
36154
36155
36156
36157 /** @type {Array<keyof types>} */
36158 // @ts-expect-error: hush.
36159 const checks = Object.keys(_types_js__WEBPACK_IMPORTED_MODULE_0__)
36160
36161 class DefinedInfo extends _info_js__WEBPACK_IMPORTED_MODULE_1__.Info {
36162 /**
36163 * @constructor
36164 * @param {string} property
36165 * @param {string} attribute
36166 * @param {number|null} [mask]
36167 * @param {string} [space]
36168 */
36169 constructor(property, attribute, mask, space) {
36170 let index = -1
36171
36172 super(property, attribute)
36173
36174 mark(this, 'space', space)
36175
36176 if (typeof mask === 'number') {
36177 while (++index < checks.length) {
36178 const check = checks[index]
36179 mark(this, checks[index], (mask & _types_js__WEBPACK_IMPORTED_MODULE_0__[check]) === _types_js__WEBPACK_IMPORTED_MODULE_0__[check])
36180 }
36181 }
36182 }
36183 }
36184
36185 DefinedInfo.prototype.defined = true
36186
36187 /**
36188 * @param {DefinedInfo} values
36189 * @param {string} key
36190 * @param {unknown} value
36191 */
36192 function mark(values, key, value) {
36193 if (value) {
36194 // @ts-expect-error: assume `value` matches the expected value of `key`.
36195 values[key] = value
36196 }
36197 }
36198
36199
36200 /***/ }),
36201
36202 /***/ "../node_modules/property-information/lib/util/info.js":
36203 /*!*************************************************************!*\
36204 !*** ../node_modules/property-information/lib/util/info.js ***!
36205 \*************************************************************/
36206 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36207
36208 "use strict";
36209 __webpack_require__.r(__webpack_exports__);
36210 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36211 /* harmony export */ Info: () => (/* binding */ Info)
36212 /* harmony export */ });
36213 class Info {
36214 /**
36215 * @constructor
36216 * @param {string} property
36217 * @param {string} attribute
36218 */
36219 constructor(property, attribute) {
36220 /** @type {string} */
36221 this.property = property
36222 /** @type {string} */
36223 this.attribute = attribute
36224 }
36225 }
36226
36227 /** @type {string|null} */
36228 Info.prototype.space = null
36229 Info.prototype.boolean = false
36230 Info.prototype.booleanish = false
36231 Info.prototype.overloadedBoolean = false
36232 Info.prototype.number = false
36233 Info.prototype.commaSeparated = false
36234 Info.prototype.spaceSeparated = false
36235 Info.prototype.commaOrSpaceSeparated = false
36236 Info.prototype.mustUseProperty = false
36237 Info.prototype.defined = false
36238
36239
36240 /***/ }),
36241
36242 /***/ "../node_modules/property-information/lib/util/merge.js":
36243 /*!**************************************************************!*\
36244 !*** ../node_modules/property-information/lib/util/merge.js ***!
36245 \**************************************************************/
36246 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36247
36248 "use strict";
36249 __webpack_require__.r(__webpack_exports__);
36250 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36251 /* harmony export */ merge: () => (/* binding */ merge)
36252 /* harmony export */ });
36253 /* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schema.js */ "../node_modules/property-information/lib/util/schema.js");
36254 /**
36255 * @typedef {import('./schema.js').Properties} Properties
36256 * @typedef {import('./schema.js').Normal} Normal
36257 */
36258
36259
36260
36261 /**
36262 * @param {Schema[]} definitions
36263 * @param {string} [space]
36264 * @returns {Schema}
36265 */
36266 function merge(definitions, space) {
36267 /** @type {Properties} */
36268 const property = {}
36269 /** @type {Normal} */
36270 const normal = {}
36271 let index = -1
36272
36273 while (++index < definitions.length) {
36274 Object.assign(property, definitions[index].property)
36275 Object.assign(normal, definitions[index].normal)
36276 }
36277
36278 return new _schema_js__WEBPACK_IMPORTED_MODULE_0__.Schema(property, normal, space)
36279 }
36280
36281
36282 /***/ }),
36283
36284 /***/ "../node_modules/property-information/lib/util/schema.js":
36285 /*!***************************************************************!*\
36286 !*** ../node_modules/property-information/lib/util/schema.js ***!
36287 \***************************************************************/
36288 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36289
36290 "use strict";
36291 __webpack_require__.r(__webpack_exports__);
36292 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36293 /* harmony export */ Schema: () => (/* binding */ Schema)
36294 /* harmony export */ });
36295 /**
36296 * @typedef {import('./info.js').Info} Info
36297 * @typedef {Record<string, Info>} Properties
36298 * @typedef {Record<string, string>} Normal
36299 */
36300
36301 class Schema {
36302 /**
36303 * @constructor
36304 * @param {Properties} property
36305 * @param {Normal} normal
36306 * @param {string} [space]
36307 */
36308 constructor(property, normal, space) {
36309 this.property = property
36310 this.normal = normal
36311 if (space) {
36312 this.space = space
36313 }
36314 }
36315 }
36316
36317 /** @type {Properties} */
36318 Schema.prototype.property = {}
36319 /** @type {Normal} */
36320 Schema.prototype.normal = {}
36321 /** @type {string|null} */
36322 Schema.prototype.space = null
36323
36324
36325 /***/ }),
36326
36327 /***/ "../node_modules/property-information/lib/util/types.js":
36328 /*!**************************************************************!*\
36329 !*** ../node_modules/property-information/lib/util/types.js ***!
36330 \**************************************************************/
36331 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36332
36333 "use strict";
36334 __webpack_require__.r(__webpack_exports__);
36335 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36336 /* harmony export */ boolean: () => (/* binding */ boolean),
36337 /* harmony export */ booleanish: () => (/* binding */ booleanish),
36338 /* harmony export */ commaOrSpaceSeparated: () => (/* binding */ commaOrSpaceSeparated),
36339 /* harmony export */ commaSeparated: () => (/* binding */ commaSeparated),
36340 /* harmony export */ number: () => (/* binding */ number),
36341 /* harmony export */ overloadedBoolean: () => (/* binding */ overloadedBoolean),
36342 /* harmony export */ spaceSeparated: () => (/* binding */ spaceSeparated)
36343 /* harmony export */ });
36344 let powers = 0
36345
36346 const boolean = increment()
36347 const booleanish = increment()
36348 const overloadedBoolean = increment()
36349 const number = increment()
36350 const spaceSeparated = increment()
36351 const commaSeparated = increment()
36352 const commaOrSpaceSeparated = increment()
36353
36354 function increment() {
36355 return 2 ** ++powers
36356 }
36357
36358
36359 /***/ }),
36360
36361 /***/ "../node_modules/property-information/lib/xlink.js":
36362 /*!*********************************************************!*\
36363 !*** ../node_modules/property-information/lib/xlink.js ***!
36364 \*********************************************************/
36365 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36366
36367 "use strict";
36368 __webpack_require__.r(__webpack_exports__);
36369 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36370 /* harmony export */ xlink: () => (/* binding */ xlink)
36371 /* harmony export */ });
36372 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36373
36374
36375 const xlink = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36376 space: 'xlink',
36377 transform(_, prop) {
36378 return 'xlink:' + prop.slice(5).toLowerCase()
36379 },
36380 properties: {
36381 xLinkActuate: null,
36382 xLinkArcRole: null,
36383 xLinkHref: null,
36384 xLinkRole: null,
36385 xLinkShow: null,
36386 xLinkTitle: null,
36387 xLinkType: null
36388 }
36389 })
36390
36391
36392 /***/ }),
36393
36394 /***/ "../node_modules/property-information/lib/xml.js":
36395 /*!*******************************************************!*\
36396 !*** ../node_modules/property-information/lib/xml.js ***!
36397 \*******************************************************/
36398 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36399
36400 "use strict";
36401 __webpack_require__.r(__webpack_exports__);
36402 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36403 /* harmony export */ xml: () => (/* binding */ xml)
36404 /* harmony export */ });
36405 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36406
36407
36408 const xml = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36409 space: 'xml',
36410 transform(_, prop) {
36411 return 'xml:' + prop.slice(3).toLowerCase()
36412 },
36413 properties: {xmlLang: null, xmlBase: null, xmlSpace: null}
36414 })
36415
36416
36417 /***/ }),
36418
36419 /***/ "../node_modules/property-information/lib/xmlns.js":
36420 /*!*********************************************************!*\
36421 !*** ../node_modules/property-information/lib/xmlns.js ***!
36422 \*********************************************************/
36423 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36424
36425 "use strict";
36426 __webpack_require__.r(__webpack_exports__);
36427 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36428 /* harmony export */ xmlns: () => (/* binding */ xmlns)
36429 /* harmony export */ });
36430 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36431 /* 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");
36432
36433
36434
36435 const xmlns = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36436 space: 'xmlns',
36437 attributes: {xmlnsxlink: 'xmlns:xlink'},
36438 transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,
36439 properties: {xmlns: null, xmlnsXLink: null}
36440 })
36441
36442
36443 /***/ }),
36444
36445 /***/ "../node_modules/react-markdown/index.js":
36446 /*!***********************************************!*\
36447 !*** ../node_modules/react-markdown/index.js ***!
36448 \***********************************************/
36449 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36450
36451 "use strict";
36452 __webpack_require__.r(__webpack_exports__);
36453 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36454 /* harmony export */ "default": () => (/* reexport safe */ _lib_react_markdown_js__WEBPACK_IMPORTED_MODULE_1__.ReactMarkdown),
36455 /* harmony export */ uriTransformer: () => (/* reexport safe */ _lib_uri_transformer_js__WEBPACK_IMPORTED_MODULE_0__.uriTransformer)
36456 /* harmony export */ });
36457 /* 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");
36458 /* 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");
36459 /**
36460 * @typedef {import('./lib/react-markdown.js').ReactMarkdownOptions} Options
36461 * @typedef {import('./lib/ast-to-react.js').Components} Components
36462 */
36463
36464
36465
36466
36467
36468
36469 /***/ }),
36470
36471 /***/ "../node_modules/react-markdown/lib/ast-to-react.js":
36472 /*!**********************************************************!*\
36473 !*** ../node_modules/react-markdown/lib/ast-to-react.js ***!
36474 \**********************************************************/
36475 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36476
36477 "use strict";
36478 __webpack_require__.r(__webpack_exports__);
36479 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36480 /* harmony export */ childrenToReact: () => (/* binding */ childrenToReact)
36481 /* harmony export */ });
36482 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
36483 /* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");
36484 /* harmony import */ var hast_util_whitespace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! hast-util-whitespace */ "../node_modules/hast-util-whitespace/index.js");
36485 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/index.js");
36486 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/lib/find.js");
36487 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/lib/hast-to-react.js");
36488 /* harmony import */ var space_separated_tokens__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! space-separated-tokens */ "../node_modules/space-separated-tokens/index.js");
36489 /* harmony import */ var comma_separated_tokens__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! comma-separated-tokens */ "../node_modules/comma-separated-tokens/index.js");
36490 /* harmony import */ var style_to_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! style-to-object */ "../node_modules/style-to-object/index.mjs");
36491 /* harmony import */ var _uri_transformer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./uri-transformer.js */ "../node_modules/react-markdown/lib/uri-transformer.js");
36492 /**
36493 * @template T
36494 * @typedef {import('react').ComponentType<T>} ComponentType<T>
36495 */
36496
36497 /**
36498 * @template {import('react').ElementType} T
36499 * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>
36500 */
36501
36502 /**
36503 * @typedef {import('react').ReactNode} ReactNode
36504 * @typedef {import('unist').Position} Position
36505 * @typedef {import('hast').Element} Element
36506 * @typedef {import('hast').ElementContent} ElementContent
36507 * @typedef {import('hast').Root} Root
36508 * @typedef {import('hast').Text} Text
36509 * @typedef {import('hast').Comment} Comment
36510 * @typedef {import('hast').DocType} Doctype
36511 * @typedef {import('property-information').Info} Info
36512 * @typedef {import('property-information').Schema} Schema
36513 * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps
36514 *
36515 * @typedef Raw
36516 * @property {'raw'} type
36517 * @property {string} value
36518 *
36519 * @typedef Context
36520 * @property {Options} options
36521 * @property {Schema} schema
36522 * @property {number} listDepth
36523 *
36524 * @callback TransformLink
36525 * @param {string} href
36526 * @param {Array<ElementContent>} children
36527 * @param {string?} title
36528 * @returns {string}
36529 *
36530 * @callback TransformImage
36531 * @param {string} src
36532 * @param {string} alt
36533 * @param {string?} title
36534 * @returns {string}
36535 *
36536 * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType
36537 *
36538 * @callback TransformLinkTarget
36539 * @param {string} href
36540 * @param {Array<ElementContent>} children
36541 * @param {string?} title
36542 * @returns {TransformLinkTargetType|undefined}
36543 *
36544 * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames
36545 *
36546 * To do: is `data-sourcepos` typeable?
36547 *
36548 * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps
36549 * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps
36550 * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps
36551 * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps
36552 * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps
36553 * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps
36554 * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps
36555 * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps
36556 *
36557 * @typedef {ComponentType<CodeProps>} CodeComponent
36558 * @typedef {ComponentType<HeadingProps>} HeadingComponent
36559 * @typedef {ComponentType<LiProps>} LiComponent
36560 * @typedef {ComponentType<OrderedListProps>} OrderedListComponent
36561 * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent
36562 * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent
36563 * @typedef {ComponentType<TableRowProps>} TableRowComponent
36564 * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent
36565 *
36566 * @typedef SpecialComponents
36567 * @property {CodeComponent|ReactMarkdownNames} code
36568 * @property {HeadingComponent|ReactMarkdownNames} h1
36569 * @property {HeadingComponent|ReactMarkdownNames} h2
36570 * @property {HeadingComponent|ReactMarkdownNames} h3
36571 * @property {HeadingComponent|ReactMarkdownNames} h4
36572 * @property {HeadingComponent|ReactMarkdownNames} h5
36573 * @property {HeadingComponent|ReactMarkdownNames} h6
36574 * @property {LiComponent|ReactMarkdownNames} li
36575 * @property {OrderedListComponent|ReactMarkdownNames} ol
36576 * @property {TableDataCellComponent|ReactMarkdownNames} td
36577 * @property {TableHeaderCellComponent|ReactMarkdownNames} th
36578 * @property {TableRowComponent|ReactMarkdownNames} tr
36579 * @property {UnorderedListComponent|ReactMarkdownNames} ul
36580 *
36581 * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components
36582 *
36583 * @typedef Options
36584 * @property {boolean} [sourcePos=false]
36585 * @property {boolean} [rawSourcePos=false]
36586 * @property {boolean} [skipHtml=false]
36587 * @property {boolean} [includeElementIndex=false]
36588 * @property {null|false|TransformLink} [transformLinkUri]
36589 * @property {TransformImage} [transformImageUri]
36590 * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]
36591 * @property {Components} [components]
36592 */
36593
36594
36595
36596
36597
36598
36599
36600
36601
36602
36603 const own = {}.hasOwnProperty
36604
36605 // The table-related elements that must not contain whitespace text according
36606 // to React.
36607 const tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])
36608
36609 /**
36610 * @param {Context} context
36611 * @param {Element|Root} node
36612 */
36613 function childrenToReact(context, node) {
36614 /** @type {Array<ReactNode>} */
36615 const children = []
36616 let childIndex = -1
36617 /** @type {Comment|Doctype|Element|Raw|Text} */
36618 let child
36619
36620 while (++childIndex < node.children.length) {
36621 child = node.children[childIndex]
36622
36623 if (child.type === 'element') {
36624 children.push(toReact(context, child, childIndex, node))
36625 } else if (child.type === 'text') {
36626 // Currently, a warning is triggered by react for *any* white space in
36627 // tables.
36628 // So we drop it.
36629 // See: <https://github.com/facebook/react/pull/7081>.
36630 // See: <https://github.com/facebook/react/pull/7515>.
36631 // See: <https://github.com/remarkjs/remark-react/issues/64>.
36632 // See: <https://github.com/remarkjs/react-markdown/issues/576>.
36633 if (
36634 node.type !== 'element' ||
36635 !tableElements.has(node.tagName) ||
36636 !(0,hast_util_whitespace__WEBPACK_IMPORTED_MODULE_3__.whitespace)(child)
36637 ) {
36638 children.push(child.value)
36639 }
36640 } else if (child.type === 'raw' && !context.options.skipHtml) {
36641 // Default behavior is to show (encoded) HTML.
36642 children.push(child.value)
36643 }
36644 }
36645
36646 return children
36647 }
36648
36649 /**
36650 * @param {Context} context
36651 * @param {Element} node
36652 * @param {number} index
36653 * @param {Element|Root} parent
36654 */
36655 function toReact(context, node, index, parent) {
36656 const options = context.options
36657 const transform =
36658 options.transformLinkUri === undefined
36659 ? _uri_transformer_js__WEBPACK_IMPORTED_MODULE_4__.uriTransformer
36660 : options.transformLinkUri
36661 const parentSchema = context.schema
36662 /** @type {ReactMarkdownNames} */
36663 // @ts-expect-error assume a known HTML/SVG element.
36664 const name = node.tagName
36665 /** @type {Record<string, unknown>} */
36666 const properties = {}
36667 let schema = parentSchema
36668 /** @type {string} */
36669 let property
36670
36671 if (parentSchema.space === 'html' && name === 'svg') {
36672 schema = property_information__WEBPACK_IMPORTED_MODULE_5__.svg
36673 context.schema = schema
36674 }
36675
36676 if (node.properties) {
36677 for (property in node.properties) {
36678 if (own.call(node.properties, property)) {
36679 addProperty(properties, property, node.properties[property], context)
36680 }
36681 }
36682 }
36683
36684 if (name === 'ol' || name === 'ul') {
36685 context.listDepth++
36686 }
36687
36688 const children = childrenToReact(context, node)
36689
36690 if (name === 'ol' || name === 'ul') {
36691 context.listDepth--
36692 }
36693
36694 // Restore parent schema.
36695 context.schema = parentSchema
36696
36697 // Nodes created by plugins do not have positional info, in which case we use
36698 // an object that matches the position interface.
36699 const position = node.position || {
36700 start: {line: null, column: null, offset: null},
36701 end: {line: null, column: null, offset: null}
36702 }
36703 const component =
36704 options.components && own.call(options.components, name)
36705 ? options.components[name]
36706 : name
36707 const basic = typeof component === 'string' || component === react__WEBPACK_IMPORTED_MODULE_0__.Fragment
36708
36709 if (!react_is__WEBPACK_IMPORTED_MODULE_1__.isValidElementType(component)) {
36710 throw new TypeError(
36711 `Component for name \`${name}\` not defined or is not renderable`
36712 )
36713 }
36714
36715 properties.key = index
36716
36717 if (name === 'a' && options.linkTarget) {
36718 properties.target =
36719 typeof options.linkTarget === 'function'
36720 ? options.linkTarget(
36721 String(properties.href || ''),
36722 node.children,
36723 typeof properties.title === 'string' ? properties.title : null
36724 )
36725 : options.linkTarget
36726 }
36727
36728 if (name === 'a' && transform) {
36729 properties.href = transform(
36730 String(properties.href || ''),
36731 node.children,
36732 typeof properties.title === 'string' ? properties.title : null
36733 )
36734 }
36735
36736 if (
36737 !basic &&
36738 name === 'code' &&
36739 parent.type === 'element' &&
36740 parent.tagName !== 'pre'
36741 ) {
36742 properties.inline = true
36743 }
36744
36745 if (
36746 !basic &&
36747 (name === 'h1' ||
36748 name === 'h2' ||
36749 name === 'h3' ||
36750 name === 'h4' ||
36751 name === 'h5' ||
36752 name === 'h6')
36753 ) {
36754 properties.level = Number.parseInt(name.charAt(1), 10)
36755 }
36756
36757 if (name === 'img' && options.transformImageUri) {
36758 properties.src = options.transformImageUri(
36759 String(properties.src || ''),
36760 String(properties.alt || ''),
36761 typeof properties.title === 'string' ? properties.title : null
36762 )
36763 }
36764
36765 if (!basic && name === 'li' && parent.type === 'element') {
36766 const input = getInputElement(node)
36767 properties.checked =
36768 input && input.properties ? Boolean(input.properties.checked) : null
36769 properties.index = getElementsBeforeCount(parent, node)
36770 properties.ordered = parent.tagName === 'ol'
36771 }
36772
36773 if (!basic && (name === 'ol' || name === 'ul')) {
36774 properties.ordered = name === 'ol'
36775 properties.depth = context.listDepth
36776 }
36777
36778 if (name === 'td' || name === 'th') {
36779 if (properties.align) {
36780 if (!properties.style) properties.style = {}
36781 // @ts-expect-error assume `style` is an object
36782 properties.style.textAlign = properties.align
36783 delete properties.align
36784 }
36785
36786 if (!basic) {
36787 properties.isHeader = name === 'th'
36788 }
36789 }
36790
36791 if (!basic && name === 'tr' && parent.type === 'element') {
36792 properties.isHeader = Boolean(parent.tagName === 'thead')
36793 }
36794
36795 // If `sourcePos` is given, pass source information (line/column info from markdown source).
36796 if (options.sourcePos) {
36797 properties['data-sourcepos'] = flattenPosition(position)
36798 }
36799
36800 if (!basic && options.rawSourcePos) {
36801 properties.sourcePosition = node.position
36802 }
36803
36804 // If `includeElementIndex` is given, pass node index info to components.
36805 if (!basic && options.includeElementIndex) {
36806 properties.index = getElementsBeforeCount(parent, node)
36807 properties.siblingCount = getElementsBeforeCount(parent)
36808 }
36809
36810 if (!basic) {
36811 properties.node = node
36812 }
36813
36814 // Ensure no React warnings are emitted for void elements w/ children.
36815 return children.length > 0
36816 ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, properties, children)
36817 : react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, properties)
36818 }
36819
36820 /**
36821 * @param {Element|Root} node
36822 * @returns {Element?}
36823 */
36824 function getInputElement(node) {
36825 let index = -1
36826
36827 while (++index < node.children.length) {
36828 const child = node.children[index]
36829
36830 if (child.type === 'element' && child.tagName === 'input') {
36831 return child
36832 }
36833 }
36834
36835 return null
36836 }
36837
36838 /**
36839 * @param {Element|Root} parent
36840 * @param {Element} [node]
36841 * @returns {number}
36842 */
36843 function getElementsBeforeCount(parent, node) {
36844 let index = -1
36845 let count = 0
36846
36847 while (++index < parent.children.length) {
36848 if (parent.children[index] === node) break
36849 if (parent.children[index].type === 'element') count++
36850 }
36851
36852 return count
36853 }
36854
36855 /**
36856 * @param {Record<string, unknown>} props
36857 * @param {string} prop
36858 * @param {unknown} value
36859 * @param {Context} ctx
36860 */
36861 function addProperty(props, prop, value, ctx) {
36862 const info = (0,property_information__WEBPACK_IMPORTED_MODULE_6__.find)(ctx.schema, prop)
36863 let result = value
36864
36865 // Ignore nullish and `NaN` values.
36866 // eslint-disable-next-line no-self-compare
36867 if (result === null || result === undefined || result !== result) {
36868 return
36869 }
36870
36871 // Accept `array`.
36872 // Most props are space-separated.
36873 if (Array.isArray(result)) {
36874 result = info.commaSeparated ? (0,comma_separated_tokens__WEBPACK_IMPORTED_MODULE_7__.stringify)(result) : (0,space_separated_tokens__WEBPACK_IMPORTED_MODULE_8__.stringify)(result)
36875 }
36876
36877 if (info.property === 'style' && typeof result === 'string') {
36878 result = parseStyle(result)
36879 }
36880
36881 if (info.space && info.property) {
36882 props[
36883 own.call(property_information__WEBPACK_IMPORTED_MODULE_9__.hastToReact, info.property)
36884 ? property_information__WEBPACK_IMPORTED_MODULE_9__.hastToReact[info.property]
36885 : info.property
36886 ] = result
36887 } else if (info.attribute) {
36888 props[info.attribute] = result
36889 }
36890 }
36891
36892 /**
36893 * @param {string} value
36894 * @returns {Record<string, string>}
36895 */
36896 function parseStyle(value) {
36897 /** @type {Record<string, string>} */
36898 const result = {}
36899
36900 try {
36901 ;(0,style_to_object__WEBPACK_IMPORTED_MODULE_2__["default"])(value, iterator)
36902 } catch {
36903 // Silent.
36904 }
36905
36906 return result
36907
36908 /**
36909 * @param {string} name
36910 * @param {string} v
36911 */
36912 function iterator(name, v) {
36913 const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name
36914 result[k.replace(/-([a-z])/g, styleReplacer)] = v
36915 }
36916 }
36917
36918 /**
36919 * @param {unknown} _
36920 * @param {string} $1
36921 */
36922 function styleReplacer(_, $1) {
36923 return $1.toUpperCase()
36924 }
36925
36926 /**
36927 * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos
36928 * @returns {string}
36929 */
36930 function flattenPosition(pos) {
36931 return [
36932 pos.start.line,
36933 ':',
36934 pos.start.column,
36935 '-',
36936 pos.end.line,
36937 ':',
36938 pos.end.column
36939 ]
36940 .map(String)
36941 .join('')
36942 }
36943
36944
36945 /***/ }),
36946
36947 /***/ "../node_modules/react-markdown/lib/react-markdown.js":
36948 /*!************************************************************!*\
36949 !*** ../node_modules/react-markdown/lib/react-markdown.js ***!
36950 \************************************************************/
36951 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36952
36953 "use strict";
36954 __webpack_require__.r(__webpack_exports__);
36955 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36956 /* harmony export */ ReactMarkdown: () => (/* binding */ ReactMarkdown)
36957 /* harmony export */ });
36958 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
36959 /* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile */ "../node_modules/vfile/lib/index.js");
36960 /* harmony import */ var unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unified */ "../node_modules/unified/lib/index.js");
36961 /* harmony import */ var remark_parse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! remark-parse */ "../node_modules/remark-parse/lib/index.js");
36962 /* harmony import */ var remark_rehype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! remark-rehype */ "../node_modules/remark-rehype/lib/index.js");
36963 /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
36964 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/index.js");
36965 /* harmony import */ var _rehype_filter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./rehype-filter.js */ "../node_modules/react-markdown/lib/rehype-filter.js");
36966 /* 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");
36967 /**
36968 * @typedef {import('react').ReactNode} ReactNode
36969 * @typedef {import('react').ReactElement<{}>} ReactElement
36970 * @typedef {import('unified').PluggableList} PluggableList
36971 * @typedef {import('hast').Root} Root
36972 * @typedef {import('./rehype-filter.js').Options} FilterOptions
36973 * @typedef {import('./ast-to-react.js').Options} TransformOptions
36974 *
36975 * @typedef CoreOptions
36976 * @property {string} children
36977 *
36978 * @typedef PluginOptions
36979 * @property {PluggableList} [remarkPlugins=[]]
36980 * @property {PluggableList} [rehypePlugins=[]]
36981 * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]
36982 *
36983 * @typedef LayoutOptions
36984 * @property {string} [className]
36985 *
36986 * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions
36987 *
36988 * @typedef Deprecation
36989 * @property {string} id
36990 * @property {string} [to]
36991 */
36992
36993
36994
36995
36996
36997
36998
36999
37000
37001
37002
37003 const own = {}.hasOwnProperty
37004 const changelog =
37005 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'
37006
37007 /** @type {Record<string, Deprecation>} */
37008 const deprecated = {
37009 plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},
37010 renderers: {to: 'components', id: 'change-renderers-to-components'},
37011 astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},
37012 allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},
37013 escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},
37014 source: {to: 'children', id: 'change-source-to-children'},
37015 allowNode: {
37016 to: 'allowElement',
37017 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37018 },
37019 allowedTypes: {
37020 to: 'allowedElements',
37021 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37022 },
37023 disallowedTypes: {
37024 to: 'disallowedElements',
37025 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37026 },
37027 includeNodeIndex: {
37028 to: 'includeElementIndex',
37029 id: 'change-includenodeindex-to-includeelementindex'
37030 }
37031 }
37032
37033 /**
37034 * React component to render markdown.
37035 *
37036 * @param {ReactMarkdownOptions} options
37037 * @returns {ReactElement}
37038 */
37039 function ReactMarkdown(options) {
37040 for (const key in deprecated) {
37041 if (own.call(deprecated, key) && own.call(options, key)) {
37042 const deprecation = deprecated[key]
37043 console.warn(
37044 `[react-markdown] Warning: please ${
37045 deprecation.to ? `use \`${deprecation.to}\` instead of` : 'remove'
37046 } \`${key}\` (see <${changelog}#${deprecation.id}> for more info)`
37047 )
37048 delete deprecated[key]
37049 }
37050 }
37051
37052 const processor = (0,unified__WEBPACK_IMPORTED_MODULE_1__.unified)()
37053 .use(remark_parse__WEBPACK_IMPORTED_MODULE_2__["default"])
37054 .use(options.remarkPlugins || [])
37055 .use(remark_rehype__WEBPACK_IMPORTED_MODULE_3__["default"], {
37056 ...options.remarkRehypeOptions,
37057 allowDangerousHtml: true
37058 })
37059 .use(options.rehypePlugins || [])
37060 .use(_rehype_filter_js__WEBPACK_IMPORTED_MODULE_4__["default"], options)
37061
37062 const file = new vfile__WEBPACK_IMPORTED_MODULE_5__.VFile()
37063
37064 if (typeof options.children === 'string') {
37065 file.value = options.children
37066 } else if (options.children !== undefined && options.children !== null) {
37067 console.warn(
37068 `[react-markdown] Warning: please pass a string as \`children\` (not: \`${options.children}\`)`
37069 )
37070 }
37071
37072 const hastNode = processor.runSync(processor.parse(file), file)
37073
37074 if (hastNode.type !== 'root') {
37075 throw new TypeError('Expected a `root` node')
37076 }
37077
37078 /** @type {ReactElement} */
37079 let result = react__WEBPACK_IMPORTED_MODULE_0__.createElement(
37080 react__WEBPACK_IMPORTED_MODULE_0__.Fragment,
37081 {},
37082 (0,_ast_to_react_js__WEBPACK_IMPORTED_MODULE_6__.childrenToReact)({options, schema: property_information__WEBPACK_IMPORTED_MODULE_7__.html, listDepth: 0}, hastNode)
37083 )
37084
37085 if (options.className) {
37086 result = react__WEBPACK_IMPORTED_MODULE_0__.createElement('div', {className: options.className}, result)
37087 }
37088
37089 return result
37090 }
37091
37092 ReactMarkdown.propTypes = {
37093 // Core options:
37094 children: prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37095 // Layout options:
37096 className: prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37097 // Filter options:
37098 allowElement: prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37099 allowedElements: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_8__.string),
37100 disallowedElements: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_8__.string),
37101 unwrapDisallowed: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37102 // Plugin options:
37103 remarkPlugins: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37104 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37105 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37106 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37107 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37108 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37109 prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37110 prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37111 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37112 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37113 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37114 // prettier-ignore
37115 // type-coverage:ignore-next-line
37116 prop_types__WEBPACK_IMPORTED_MODULE_8__.any
37117 )
37118 ])
37119 )
37120 ])
37121 ),
37122 rehypePlugins: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37123 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37124 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37125 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37126 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37127 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37128 prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37129 prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37130 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37131 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37132 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37133 // prettier-ignore
37134 // type-coverage:ignore-next-line
37135 prop_types__WEBPACK_IMPORTED_MODULE_8__.any
37136 )
37137 ])
37138 )
37139 ])
37140 ),
37141 // Transform options:
37142 sourcePos: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37143 rawSourcePos: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37144 skipHtml: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37145 includeElementIndex: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37146 transformLinkUri: prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_8__.func, prop_types__WEBPACK_IMPORTED_MODULE_8__.bool]),
37147 linkTarget: prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_8__.func, prop_types__WEBPACK_IMPORTED_MODULE_8__.string]),
37148 transformImageUri: prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37149 components: prop_types__WEBPACK_IMPORTED_MODULE_8__.object
37150 }
37151
37152
37153 /***/ }),
37154
37155 /***/ "../node_modules/react-markdown/lib/rehype-filter.js":
37156 /*!***********************************************************!*\
37157 !*** ../node_modules/react-markdown/lib/rehype-filter.js ***!
37158 \***********************************************************/
37159 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37160
37161 "use strict";
37162 __webpack_require__.r(__webpack_exports__);
37163 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37164 /* harmony export */ "default": () => (/* binding */ rehypeFilter)
37165 /* harmony export */ });
37166 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
37167
37168
37169 /**
37170 * @typedef {import('unist').Node} Node
37171 * @typedef {import('hast').Root} Root
37172 * @typedef {import('hast').Element} Element
37173 *
37174 * @callback AllowElement
37175 * @param {Element} element
37176 * @param {number} index
37177 * @param {Element|Root} parent
37178 * @returns {boolean|undefined}
37179 *
37180 * @typedef Options
37181 * @property {Array<string>} [allowedElements]
37182 * @property {Array<string>} [disallowedElements=[]]
37183 * @property {AllowElement} [allowElement]
37184 * @property {boolean} [unwrapDisallowed=false]
37185 */
37186
37187 /**
37188 * @type {import('unified').Plugin<[Options], Root>}
37189 */
37190 function rehypeFilter(options) {
37191 if (options.allowedElements && options.disallowedElements) {
37192 throw new TypeError(
37193 'Only one of `allowedElements` and `disallowedElements` should be defined'
37194 )
37195 }
37196
37197 if (
37198 options.allowedElements ||
37199 options.disallowedElements ||
37200 options.allowElement
37201 ) {
37202 return (tree) => {
37203 (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(tree, 'element', (node, index, parent_) => {
37204 const parent = /** @type {Element|Root} */ (parent_)
37205 /** @type {boolean|undefined} */
37206 let remove
37207
37208 if (options.allowedElements) {
37209 remove = !options.allowedElements.includes(node.tagName)
37210 } else if (options.disallowedElements) {
37211 remove = options.disallowedElements.includes(node.tagName)
37212 }
37213
37214 if (!remove && options.allowElement && typeof index === 'number') {
37215 remove = !options.allowElement(node, index, parent)
37216 }
37217
37218 if (remove && typeof index === 'number') {
37219 if (options.unwrapDisallowed && node.children) {
37220 parent.children.splice(index, 1, ...node.children)
37221 } else {
37222 parent.children.splice(index, 1)
37223 }
37224
37225 return index
37226 }
37227
37228 return undefined
37229 })
37230 }
37231 }
37232 }
37233
37234
37235 /***/ }),
37236
37237 /***/ "../node_modules/react-markdown/lib/uri-transformer.js":
37238 /*!*************************************************************!*\
37239 !*** ../node_modules/react-markdown/lib/uri-transformer.js ***!
37240 \*************************************************************/
37241 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37242
37243 "use strict";
37244 __webpack_require__.r(__webpack_exports__);
37245 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37246 /* harmony export */ uriTransformer: () => (/* binding */ uriTransformer)
37247 /* harmony export */ });
37248 const protocols = ['http', 'https', 'mailto', 'tel']
37249
37250 /**
37251 * @param {string} uri
37252 * @returns {string}
37253 */
37254 function uriTransformer(uri) {
37255 const url = (uri || '').trim()
37256 const first = url.charAt(0)
37257
37258 if (first === '#' || first === '/') {
37259 return url
37260 }
37261
37262 const colon = url.indexOf(':')
37263 if (colon === -1) {
37264 return url
37265 }
37266
37267 let index = -1
37268
37269 while (++index < protocols.length) {
37270 const protocol = protocols[index]
37271
37272 if (
37273 colon === protocol.length &&
37274 url.slice(0, protocol.length).toLowerCase() === protocol
37275 ) {
37276 return url
37277 }
37278 }
37279
37280 index = url.indexOf('?')
37281 if (index !== -1 && colon > index) {
37282 return url
37283 }
37284
37285 index = url.indexOf('#')
37286 if (index !== -1 && colon > index) {
37287 return url
37288 }
37289
37290 // eslint-disable-next-line no-script-url
37291 return 'javascript:void(0)'
37292 }
37293
37294
37295 /***/ }),
37296
37297 /***/ "../node_modules/remark-parse/lib/index.js":
37298 /*!*************************************************!*\
37299 !*** ../node_modules/remark-parse/lib/index.js ***!
37300 \*************************************************/
37301 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37302
37303 "use strict";
37304 __webpack_require__.r(__webpack_exports__);
37305 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37306 /* harmony export */ "default": () => (/* binding */ remarkParse)
37307 /* harmony export */ });
37308 /* 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");
37309 /**
37310 * @typedef {import('mdast').Root} Root
37311 * @typedef {import('mdast-util-from-markdown').Options} Options
37312 */
37313
37314
37315
37316 /**
37317 * @this {import('unified').Processor}
37318 * @type {import('unified').Plugin<[Options?] | void[], string, Root>}
37319 */
37320 function remarkParse(options) {
37321 /** @type {import('unified').ParserFunction<Root>} */
37322 const parser = (doc) => {
37323 // Assume options.
37324 const settings = /** @type {Options} */ (this.data('settings'))
37325
37326 return (0,mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_0__.fromMarkdown)(
37327 doc,
37328 Object.assign({}, settings, options, {
37329 // Note: these options are not in the readme.
37330 // The goal is for them to be set by plugins on `data` instead of being
37331 // passed by users.
37332 extensions: this.data('micromarkExtensions') || [],
37333 mdastExtensions: this.data('fromMarkdownExtensions') || []
37334 })
37335 )
37336 }
37337
37338 Object.assign(this, {Parser: parser})
37339 }
37340
37341
37342 /***/ }),
37343
37344 /***/ "../node_modules/remark-rehype/lib/index.js":
37345 /*!**************************************************!*\
37346 !*** ../node_modules/remark-rehype/lib/index.js ***!
37347 \**************************************************/
37348 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37349
37350 "use strict";
37351 __webpack_require__.r(__webpack_exports__);
37352 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37353 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37354 /* harmony export */ });
37355 /* 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");
37356 /**
37357 * @typedef {import('hast').Root} HastRoot
37358 * @typedef {import('mdast').Root} MdastRoot
37359 * @typedef {import('mdast-util-to-hast').Options} Options
37360 * @typedef {import('unified').Processor<any, any, any, any>} Processor
37361 *
37362 * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree
37363 */
37364
37365
37366
37367 // Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(
37368
37369 /**
37370 * Plugin that turns markdown into HTML to support rehype.
37371 *
37372 * * If a destination processor is given, that processor runs with a new HTML
37373 * (hast) tree (bridge-mode).
37374 * As the given processor runs with a hast tree, and rehype plugins support
37375 * hast, that means rehype plugins can be used with the given processor.
37376 * The hast tree is discarded in the end.
37377 * It’s highly unlikely that you want to do this.
37378 * * The common case is to not pass a destination processor, in which case the
37379 * current processor continues running with a new HTML (hast) tree
37380 * (mutate-mode).
37381 * As the current processor continues with a hast tree, and rehype plugins
37382 * support hast, that means rehype plugins can be used after
37383 * `remark-rehype`.
37384 * It’s likely that this is what you want to do.
37385 *
37386 * @param destination
37387 * Optional unified processor.
37388 * @param options
37389 * Options passed to `mdast-util-to-hast`.
37390 */
37391 const remarkRehype =
37392 /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */
37393 (
37394 function (destination, options) {
37395 return destination && 'run' in destination
37396 ? bridge(destination, options)
37397 : mutate(destination || options)
37398 }
37399 )
37400
37401 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (remarkRehype);
37402
37403 /**
37404 * Bridge-mode.
37405 * Runs the destination with the new hast tree.
37406 *
37407 * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}
37408 */
37409 function bridge(destination, options) {
37410 return (node, file, next) => {
37411 destination.run((0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(node, options), file, (error) => {
37412 next(error)
37413 })
37414 }
37415 }
37416
37417 /**
37418 * Mutate-mode.
37419 * Further plugins run on the hast tree.
37420 *
37421 * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}
37422 */
37423 function mutate(options) {
37424 // @ts-expect-error: assume a corresponding node is returned by `toHast`.
37425 return (node) => (0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(node, options)
37426 }
37427
37428
37429 /***/ }),
37430
37431 /***/ "../node_modules/space-separated-tokens/index.js":
37432 /*!*******************************************************!*\
37433 !*** ../node_modules/space-separated-tokens/index.js ***!
37434 \*******************************************************/
37435 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37436
37437 "use strict";
37438 __webpack_require__.r(__webpack_exports__);
37439 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37440 /* harmony export */ parse: () => (/* binding */ parse),
37441 /* harmony export */ stringify: () => (/* binding */ stringify)
37442 /* harmony export */ });
37443 /**
37444 * Parse space-separated tokens to an array of strings.
37445 *
37446 * @param {string} value
37447 * Space-separated tokens.
37448 * @returns {Array<string>}
37449 * List of tokens.
37450 */
37451 function parse(value) {
37452 const input = String(value || '').trim()
37453 return input ? input.split(/[ \t\n\r\f]+/g) : []
37454 }
37455
37456 /**
37457 * Serialize an array of strings as space separated-tokens.
37458 *
37459 * @param {Array<string|number>} values
37460 * List of tokens.
37461 * @returns {string}
37462 * Space-separated tokens.
37463 */
37464 function stringify(values) {
37465 return values.join(' ').trim()
37466 }
37467
37468
37469 /***/ }),
37470
37471 /***/ "../node_modules/style-to-object/index.mjs":
37472 /*!*************************************************!*\
37473 !*** ../node_modules/style-to-object/index.mjs ***!
37474 \*************************************************/
37475 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37476
37477 "use strict";
37478 __webpack_require__.r(__webpack_exports__);
37479 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37480 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37481 /* harmony export */ });
37482 /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "../node_modules/style-to-object/index.js");
37483
37484
37485 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_index_js__WEBPACK_IMPORTED_MODULE_0__);
37486
37487
37488 /***/ }),
37489
37490 /***/ "../node_modules/trim-lines/index.js":
37491 /*!*******************************************!*\
37492 !*** ../node_modules/trim-lines/index.js ***!
37493 \*******************************************/
37494 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37495
37496 "use strict";
37497 __webpack_require__.r(__webpack_exports__);
37498 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37499 /* harmony export */ trimLines: () => (/* binding */ trimLines)
37500 /* harmony export */ });
37501 const tab = 9 /* `\t` */
37502 const space = 32 /* ` ` */
37503
37504 /**
37505 * Remove initial and final spaces and tabs at the line breaks in `value`.
37506 * Does not trim initial and final spaces and tabs of the value itself.
37507 *
37508 * @param {string} value
37509 * Value to trim.
37510 * @returns {string}
37511 * Trimmed value.
37512 */
37513 function trimLines(value) {
37514 const source = String(value)
37515 const search = /\r?\n|\r/g
37516 let match = search.exec(source)
37517 let last = 0
37518 /** @type {Array<string>} */
37519 const lines = []
37520
37521 while (match) {
37522 lines.push(
37523 trimLine(source.slice(last, match.index), last > 0, true),
37524 match[0]
37525 )
37526
37527 last = match.index + match[0].length
37528 match = search.exec(source)
37529 }
37530
37531 lines.push(trimLine(source.slice(last), last > 0, false))
37532
37533 return lines.join('')
37534 }
37535
37536 /**
37537 * @param {string} value
37538 * Line to trim.
37539 * @param {boolean} start
37540 * Whether to trim the start of the line.
37541 * @param {boolean} end
37542 * Whether to trim the end of the line.
37543 * @returns {string}
37544 * Trimmed line.
37545 */
37546 function trimLine(value, start, end) {
37547 let startIndex = 0
37548 let endIndex = value.length
37549
37550 if (start) {
37551 let code = value.codePointAt(startIndex)
37552
37553 while (code === tab || code === space) {
37554 startIndex++
37555 code = value.codePointAt(startIndex)
37556 }
37557 }
37558
37559 if (end) {
37560 let code = value.codePointAt(endIndex - 1)
37561
37562 while (code === tab || code === space) {
37563 endIndex--
37564 code = value.codePointAt(endIndex - 1)
37565 }
37566 }
37567
37568 return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''
37569 }
37570
37571
37572 /***/ }),
37573
37574 /***/ "../node_modules/trough/index.js":
37575 /*!***************************************!*\
37576 !*** ../node_modules/trough/index.js ***!
37577 \***************************************/
37578 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37579
37580 "use strict";
37581 __webpack_require__.r(__webpack_exports__);
37582 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37583 /* harmony export */ trough: () => (/* binding */ trough),
37584 /* harmony export */ wrap: () => (/* binding */ wrap)
37585 /* harmony export */ });
37586 /**
37587 * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback
37588 * @typedef {(...input: Array<any>) => any} Middleware
37589 *
37590 * @typedef {(...input: Array<any>) => void} Run
37591 * Call all middleware.
37592 * @typedef {(fn: Middleware) => Pipeline} Use
37593 * Add `fn` (middleware) to the list.
37594 * @typedef {{run: Run, use: Use}} Pipeline
37595 * Middleware.
37596 */
37597
37598 /**
37599 * Create new middleware.
37600 *
37601 * @returns {Pipeline}
37602 */
37603 function trough() {
37604 /** @type {Array<Middleware>} */
37605 const fns = []
37606 /** @type {Pipeline} */
37607 const pipeline = {run, use}
37608
37609 return pipeline
37610
37611 /** @type {Run} */
37612 function run(...values) {
37613 let middlewareIndex = -1
37614 /** @type {Callback} */
37615 const callback = values.pop()
37616
37617 if (typeof callback !== 'function') {
37618 throw new TypeError('Expected function as last argument, not ' + callback)
37619 }
37620
37621 next(null, ...values)
37622
37623 /**
37624 * Run the next `fn`, or we’re done.
37625 *
37626 * @param {Error|null|undefined} error
37627 * @param {Array<any>} output
37628 */
37629 function next(error, ...output) {
37630 const fn = fns[++middlewareIndex]
37631 let index = -1
37632
37633 if (error) {
37634 callback(error)
37635 return
37636 }
37637
37638 // Copy non-nullish input into values.
37639 while (++index < values.length) {
37640 if (output[index] === null || output[index] === undefined) {
37641 output[index] = values[index]
37642 }
37643 }
37644
37645 // Save the newly created `output` for the next call.
37646 values = output
37647
37648 // Next or done.
37649 if (fn) {
37650 wrap(fn, next)(...output)
37651 } else {
37652 callback(null, ...output)
37653 }
37654 }
37655 }
37656
37657 /** @type {Use} */
37658 function use(middelware) {
37659 if (typeof middelware !== 'function') {
37660 throw new TypeError(
37661 'Expected `middelware` to be a function, not ' + middelware
37662 )
37663 }
37664
37665 fns.push(middelware)
37666 return pipeline
37667 }
37668 }
37669
37670 /**
37671 * Wrap `middleware`.
37672 * Can be sync or async; return a promise, receive a callback, or return new
37673 * values and errors.
37674 *
37675 * @param {Middleware} middleware
37676 * @param {Callback} callback
37677 */
37678 function wrap(middleware, callback) {
37679 /** @type {boolean} */
37680 let called
37681
37682 return wrapped
37683
37684 /**
37685 * Call `middleware`.
37686 * @this {any}
37687 * @param {Array<any>} parameters
37688 * @returns {void}
37689 */
37690 function wrapped(...parameters) {
37691 const fnExpectsCallback = middleware.length > parameters.length
37692 /** @type {any} */
37693 let result
37694
37695 if (fnExpectsCallback) {
37696 parameters.push(done)
37697 }
37698
37699 try {
37700 result = middleware.apply(this, parameters)
37701 } catch (error) {
37702 const exception = /** @type {Error} */ (error)
37703
37704 // Well, this is quite the pickle.
37705 // `middleware` received a callback and called it synchronously, but that
37706 // threw an error.
37707 // The only thing left to do is to throw the thing instead.
37708 if (fnExpectsCallback && called) {
37709 throw exception
37710 }
37711
37712 return done(exception)
37713 }
37714
37715 if (!fnExpectsCallback) {
37716 if (result instanceof Promise) {
37717 result.then(then, done)
37718 } else if (result instanceof Error) {
37719 done(result)
37720 } else {
37721 then(result)
37722 }
37723 }
37724 }
37725
37726 /**
37727 * Call `callback`, only once.
37728 * @type {Callback}
37729 */
37730 function done(error, ...output) {
37731 if (!called) {
37732 called = true
37733 callback(error, ...output)
37734 }
37735 }
37736
37737 /**
37738 * Call `done` with one value.
37739 *
37740 * @param {any} [value]
37741 */
37742 function then(value) {
37743 done(null, value)
37744 }
37745 }
37746
37747
37748 /***/ }),
37749
37750 /***/ "../node_modules/unified/lib/index.js":
37751 /*!********************************************!*\
37752 !*** ../node_modules/unified/lib/index.js ***!
37753 \********************************************/
37754 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37755
37756 "use strict";
37757 __webpack_require__.r(__webpack_exports__);
37758 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37759 /* harmony export */ unified: () => (/* binding */ unified)
37760 /* harmony export */ });
37761 /* harmony import */ var bail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! bail */ "../node_modules/bail/index.js");
37762 /* harmony import */ var is_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-buffer */ "../node_modules/is-buffer/index.js");
37763 /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! extend */ "../node_modules/extend/index.js");
37764 /* harmony import */ var is_plain_obj__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! is-plain-obj */ "../node_modules/is-plain-obj/index.js");
37765 /* harmony import */ var trough__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! trough */ "../node_modules/trough/index.js");
37766 /* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile */ "../node_modules/vfile/lib/index.js");
37767 /**
37768 * @typedef {import('unist').Node} Node
37769 * @typedef {import('vfile').VFileCompatible} VFileCompatible
37770 * @typedef {import('vfile').VFileValue} VFileValue
37771 * @typedef {import('..').Processor} Processor
37772 * @typedef {import('..').Plugin} Plugin
37773 * @typedef {import('..').Preset} Preset
37774 * @typedef {import('..').Pluggable} Pluggable
37775 * @typedef {import('..').PluggableList} PluggableList
37776 * @typedef {import('..').Transformer} Transformer
37777 * @typedef {import('..').Parser} Parser
37778 * @typedef {import('..').Compiler} Compiler
37779 * @typedef {import('..').RunCallback} RunCallback
37780 * @typedef {import('..').ProcessCallback} ProcessCallback
37781 *
37782 * @typedef Context
37783 * @property {Node} tree
37784 * @property {VFile} file
37785 */
37786
37787
37788
37789
37790
37791
37792
37793
37794 // Expose a frozen processor.
37795 const unified = base().freeze()
37796
37797 const own = {}.hasOwnProperty
37798
37799 // Function to create the first processor.
37800 /**
37801 * @returns {Processor}
37802 */
37803 function base() {
37804 const transformers = (0,trough__WEBPACK_IMPORTED_MODULE_3__.trough)()
37805 /** @type {Processor['attachers']} */
37806 const attachers = []
37807 /** @type {Record<string, unknown>} */
37808 let namespace = {}
37809 /** @type {boolean|undefined} */
37810 let frozen
37811 let freezeIndex = -1
37812
37813 // Data management.
37814 // @ts-expect-error: overloads are handled.
37815 processor.data = data
37816 processor.Parser = undefined
37817 processor.Compiler = undefined
37818
37819 // Lock.
37820 processor.freeze = freeze
37821
37822 // Plugins.
37823 processor.attachers = attachers
37824 // @ts-expect-error: overloads are handled.
37825 processor.use = use
37826
37827 // API.
37828 processor.parse = parse
37829 processor.stringify = stringify
37830 // @ts-expect-error: overloads are handled.
37831 processor.run = run
37832 processor.runSync = runSync
37833 // @ts-expect-error: overloads are handled.
37834 processor.process = process
37835 processor.processSync = processSync
37836
37837 // Expose.
37838 return processor
37839
37840 // Create a new processor based on the processor in the current scope.
37841 /** @type {Processor} */
37842 function processor() {
37843 const destination = base()
37844 let index = -1
37845
37846 while (++index < attachers.length) {
37847 destination.use(...attachers[index])
37848 }
37849
37850 destination.data(extend__WEBPACK_IMPORTED_MODULE_1__(true, {}, namespace))
37851
37852 return destination
37853 }
37854
37855 /**
37856 * @param {string|Record<string, unknown>} [key]
37857 * @param {unknown} [value]
37858 * @returns {unknown}
37859 */
37860 function data(key, value) {
37861 if (typeof key === 'string') {
37862 // Set `key`.
37863 if (arguments.length === 2) {
37864 assertUnfrozen('data', frozen)
37865 namespace[key] = value
37866 return processor
37867 }
37868
37869 // Get `key`.
37870 return (own.call(namespace, key) && namespace[key]) || null
37871 }
37872
37873 // Set space.
37874 if (key) {
37875 assertUnfrozen('data', frozen)
37876 namespace = key
37877 return processor
37878 }
37879
37880 // Get space.
37881 return namespace
37882 }
37883
37884 /** @type {Processor['freeze']} */
37885 function freeze() {
37886 if (frozen) {
37887 return processor
37888 }
37889
37890 while (++freezeIndex < attachers.length) {
37891 const [attacher, ...options] = attachers[freezeIndex]
37892
37893 if (options[0] === false) {
37894 continue
37895 }
37896
37897 if (options[0] === true) {
37898 options[0] = undefined
37899 }
37900
37901 /** @type {Transformer|void} */
37902 const transformer = attacher.call(processor, ...options)
37903
37904 if (typeof transformer === 'function') {
37905 transformers.use(transformer)
37906 }
37907 }
37908
37909 frozen = true
37910 freezeIndex = Number.POSITIVE_INFINITY
37911
37912 return processor
37913 }
37914
37915 /**
37916 * @param {Pluggable|null|undefined} [value]
37917 * @param {...unknown} options
37918 * @returns {Processor}
37919 */
37920 function use(value, ...options) {
37921 /** @type {Record<string, unknown>|undefined} */
37922 let settings
37923
37924 assertUnfrozen('use', frozen)
37925
37926 if (value === null || value === undefined) {
37927 // Empty.
37928 } else if (typeof value === 'function') {
37929 addPlugin(value, ...options)
37930 } else if (typeof value === 'object') {
37931 if (Array.isArray(value)) {
37932 addList(value)
37933 } else {
37934 addPreset(value)
37935 }
37936 } else {
37937 throw new TypeError('Expected usable value, not `' + value + '`')
37938 }
37939
37940 if (settings) {
37941 namespace.settings = Object.assign(namespace.settings || {}, settings)
37942 }
37943
37944 return processor
37945
37946 /**
37947 * @param {import('..').Pluggable<unknown[]>} value
37948 * @returns {void}
37949 */
37950 function add(value) {
37951 if (typeof value === 'function') {
37952 addPlugin(value)
37953 } else if (typeof value === 'object') {
37954 if (Array.isArray(value)) {
37955 const [plugin, ...options] = value
37956 addPlugin(plugin, ...options)
37957 } else {
37958 addPreset(value)
37959 }
37960 } else {
37961 throw new TypeError('Expected usable value, not `' + value + '`')
37962 }
37963 }
37964
37965 /**
37966 * @param {Preset} result
37967 * @returns {void}
37968 */
37969 function addPreset(result) {
37970 addList(result.plugins)
37971
37972 if (result.settings) {
37973 settings = Object.assign(settings || {}, result.settings)
37974 }
37975 }
37976
37977 /**
37978 * @param {PluggableList|null|undefined} [plugins]
37979 * @returns {void}
37980 */
37981 function addList(plugins) {
37982 let index = -1
37983
37984 if (plugins === null || plugins === undefined) {
37985 // Empty.
37986 } else if (Array.isArray(plugins)) {
37987 while (++index < plugins.length) {
37988 const thing = plugins[index]
37989 add(thing)
37990 }
37991 } else {
37992 throw new TypeError('Expected a list of plugins, not `' + plugins + '`')
37993 }
37994 }
37995
37996 /**
37997 * @param {Plugin} plugin
37998 * @param {...unknown} [value]
37999 * @returns {void}
38000 */
38001 function addPlugin(plugin, value) {
38002 let index = -1
38003 /** @type {Processor['attachers'][number]|undefined} */
38004 let entry
38005
38006 while (++index < attachers.length) {
38007 if (attachers[index][0] === plugin) {
38008 entry = attachers[index]
38009 break
38010 }
38011 }
38012
38013 if (entry) {
38014 if ((0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(entry[1]) && (0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(value)) {
38015 value = extend__WEBPACK_IMPORTED_MODULE_1__(true, entry[1], value)
38016 }
38017
38018 entry[1] = value
38019 } else {
38020 // @ts-expect-error: fine.
38021 attachers.push([...arguments])
38022 }
38023 }
38024 }
38025
38026 /** @type {Processor['parse']} */
38027 function parse(doc) {
38028 processor.freeze()
38029 const file = vfile(doc)
38030 const Parser = processor.Parser
38031 assertParser('parse', Parser)
38032
38033 if (newable(Parser, 'parse')) {
38034 // @ts-expect-error: `newable` checks this.
38035 return new Parser(String(file), file).parse()
38036 }
38037
38038 // @ts-expect-error: `newable` checks this.
38039 return Parser(String(file), file) // eslint-disable-line new-cap
38040 }
38041
38042 /** @type {Processor['stringify']} */
38043 function stringify(node, doc) {
38044 processor.freeze()
38045 const file = vfile(doc)
38046 const Compiler = processor.Compiler
38047 assertCompiler('stringify', Compiler)
38048 assertNode(node)
38049
38050 if (newable(Compiler, 'compile')) {
38051 // @ts-expect-error: `newable` checks this.
38052 return new Compiler(node, file).compile()
38053 }
38054
38055 // @ts-expect-error: `newable` checks this.
38056 return Compiler(node, file) // eslint-disable-line new-cap
38057 }
38058
38059 /**
38060 * @param {Node} node
38061 * @param {VFileCompatible|RunCallback} [doc]
38062 * @param {RunCallback} [callback]
38063 * @returns {Promise<Node>|void}
38064 */
38065 function run(node, doc, callback) {
38066 assertNode(node)
38067 processor.freeze()
38068
38069 if (!callback && typeof doc === 'function') {
38070 callback = doc
38071 doc = undefined
38072 }
38073
38074 if (!callback) {
38075 return new Promise(executor)
38076 }
38077
38078 executor(null, callback)
38079
38080 /**
38081 * @param {null|((node: Node) => void)} resolve
38082 * @param {(error: Error) => void} reject
38083 * @returns {void}
38084 */
38085 function executor(resolve, reject) {
38086 // @ts-expect-error: `doc` can’t be a callback anymore, we checked.
38087 transformers.run(node, vfile(doc), done)
38088
38089 /**
38090 * @param {Error|null} error
38091 * @param {Node} tree
38092 * @param {VFile} file
38093 * @returns {void}
38094 */
38095 function done(error, tree, file) {
38096 tree = tree || node
38097 if (error) {
38098 reject(error)
38099 } else if (resolve) {
38100 resolve(tree)
38101 } else {
38102 // @ts-expect-error: `callback` is defined if `resolve` is not.
38103 callback(null, tree, file)
38104 }
38105 }
38106 }
38107 }
38108
38109 /** @type {Processor['runSync']} */
38110 function runSync(node, file) {
38111 /** @type {Node|undefined} */
38112 let result
38113 /** @type {boolean|undefined} */
38114 let complete
38115
38116 processor.run(node, file, done)
38117
38118 assertDone('runSync', 'run', complete)
38119
38120 // @ts-expect-error: we either bailed on an error or have a tree.
38121 return result
38122
38123 /**
38124 * @param {Error|null} [error]
38125 * @param {Node} [tree]
38126 * @returns {void}
38127 */
38128 function done(error, tree) {
38129 ;(0,bail__WEBPACK_IMPORTED_MODULE_4__.bail)(error)
38130 result = tree
38131 complete = true
38132 }
38133 }
38134
38135 /**
38136 * @param {VFileCompatible} doc
38137 * @param {ProcessCallback} [callback]
38138 * @returns {Promise<VFile>|undefined}
38139 */
38140 function process(doc, callback) {
38141 processor.freeze()
38142 assertParser('process', processor.Parser)
38143 assertCompiler('process', processor.Compiler)
38144
38145 if (!callback) {
38146 return new Promise(executor)
38147 }
38148
38149 executor(null, callback)
38150
38151 /**
38152 * @param {null|((file: VFile) => void)} resolve
38153 * @param {(error?: Error|null|undefined) => void} reject
38154 * @returns {void}
38155 */
38156 function executor(resolve, reject) {
38157 const file = vfile(doc)
38158
38159 processor.run(processor.parse(file), file, (error, tree, file) => {
38160 if (error || !tree || !file) {
38161 done(error)
38162 } else {
38163 /** @type {unknown} */
38164 const result = processor.stringify(tree, file)
38165
38166 if (result === undefined || result === null) {
38167 // Empty.
38168 } else if (looksLikeAVFileValue(result)) {
38169 file.value = result
38170 } else {
38171 file.result = result
38172 }
38173
38174 done(error, file)
38175 }
38176 })
38177
38178 /**
38179 * @param {Error|null|undefined} [error]
38180 * @param {VFile|undefined} [file]
38181 * @returns {void}
38182 */
38183 function done(error, file) {
38184 if (error || !file) {
38185 reject(error)
38186 } else if (resolve) {
38187 resolve(file)
38188 } else {
38189 // @ts-expect-error: `callback` is defined if `resolve` is not.
38190 callback(null, file)
38191 }
38192 }
38193 }
38194 }
38195
38196 /** @type {Processor['processSync']} */
38197 function processSync(doc) {
38198 /** @type {boolean|undefined} */
38199 let complete
38200
38201 processor.freeze()
38202 assertParser('processSync', processor.Parser)
38203 assertCompiler('processSync', processor.Compiler)
38204
38205 const file = vfile(doc)
38206
38207 processor.process(file, done)
38208
38209 assertDone('processSync', 'process', complete)
38210
38211 return file
38212
38213 /**
38214 * @param {Error|null|undefined} [error]
38215 * @returns {void}
38216 */
38217 function done(error) {
38218 complete = true
38219 ;(0,bail__WEBPACK_IMPORTED_MODULE_4__.bail)(error)
38220 }
38221 }
38222 }
38223
38224 /**
38225 * Check if `value` is a constructor.
38226 *
38227 * @param {unknown} value
38228 * @param {string} name
38229 * @returns {boolean}
38230 */
38231 function newable(value, name) {
38232 return (
38233 typeof value === 'function' &&
38234 // Prototypes do exist.
38235 // type-coverage:ignore-next-line
38236 value.prototype &&
38237 // A function with keys in its prototype is probably a constructor.
38238 // Classes’ prototype methods are not enumerable, so we check if some value
38239 // exists in the prototype.
38240 // type-coverage:ignore-next-line
38241 (keys(value.prototype) || name in value.prototype)
38242 )
38243 }
38244
38245 /**
38246 * Check if `value` is an object with keys.
38247 *
38248 * @param {Record<string, unknown>} value
38249 * @returns {boolean}
38250 */
38251 function keys(value) {
38252 /** @type {string} */
38253 let key
38254
38255 for (key in value) {
38256 if (own.call(value, key)) {
38257 return true
38258 }
38259 }
38260
38261 return false
38262 }
38263
38264 /**
38265 * Assert a parser is available.
38266 *
38267 * @param {string} name
38268 * @param {unknown} value
38269 * @returns {asserts value is Parser}
38270 */
38271 function assertParser(name, value) {
38272 if (typeof value !== 'function') {
38273 throw new TypeError('Cannot `' + name + '` without `Parser`')
38274 }
38275 }
38276
38277 /**
38278 * Assert a compiler is available.
38279 *
38280 * @param {string} name
38281 * @param {unknown} value
38282 * @returns {asserts value is Compiler}
38283 */
38284 function assertCompiler(name, value) {
38285 if (typeof value !== 'function') {
38286 throw new TypeError('Cannot `' + name + '` without `Compiler`')
38287 }
38288 }
38289
38290 /**
38291 * Assert the processor is not frozen.
38292 *
38293 * @param {string} name
38294 * @param {unknown} frozen
38295 * @returns {asserts frozen is false}
38296 */
38297 function assertUnfrozen(name, frozen) {
38298 if (frozen) {
38299 throw new Error(
38300 'Cannot call `' +
38301 name +
38302 '` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'
38303 )
38304 }
38305 }
38306
38307 /**
38308 * Assert `node` is a unist node.
38309 *
38310 * @param {unknown} node
38311 * @returns {asserts node is Node}
38312 */
38313 function assertNode(node) {
38314 // `isPlainObj` unfortunately uses `any` instead of `unknown`.
38315 // type-coverage:ignore-next-line
38316 if (!(0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(node) || typeof node.type !== 'string') {
38317 throw new TypeError('Expected node, got `' + node + '`')
38318 // Fine.
38319 }
38320 }
38321
38322 /**
38323 * Assert that `complete` is `true`.
38324 *
38325 * @param {string} name
38326 * @param {string} asyncName
38327 * @param {unknown} complete
38328 * @returns {asserts complete is true}
38329 */
38330 function assertDone(name, asyncName, complete) {
38331 if (!complete) {
38332 throw new Error(
38333 '`' + name + '` finished async. Use `' + asyncName + '` instead'
38334 )
38335 }
38336 }
38337
38338 /**
38339 * @param {VFileCompatible} [value]
38340 * @returns {VFile}
38341 */
38342 function vfile(value) {
38343 return looksLikeAVFile(value) ? value : new vfile__WEBPACK_IMPORTED_MODULE_5__.VFile(value)
38344 }
38345
38346 /**
38347 * @param {VFileCompatible} [value]
38348 * @returns {value is VFile}
38349 */
38350 function looksLikeAVFile(value) {
38351 return Boolean(
38352 value &&
38353 typeof value === 'object' &&
38354 'message' in value &&
38355 'messages' in value
38356 )
38357 }
38358
38359 /**
38360 * @param {unknown} [value]
38361 * @returns {value is VFileValue}
38362 */
38363 function looksLikeAVFileValue(value) {
38364 return typeof value === 'string' || is_buffer__WEBPACK_IMPORTED_MODULE_0__(value)
38365 }
38366
38367
38368 /***/ }),
38369
38370 /***/ "../node_modules/unist-util-generated/lib/index.js":
38371 /*!*********************************************************!*\
38372 !*** ../node_modules/unist-util-generated/lib/index.js ***!
38373 \*********************************************************/
38374 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38375
38376 "use strict";
38377 __webpack_require__.r(__webpack_exports__);
38378 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38379 /* harmony export */ generated: () => (/* binding */ generated)
38380 /* harmony export */ });
38381 /**
38382 * @typedef PointLike
38383 * @property {number | null | undefined} [line]
38384 * @property {number | null | undefined} [column]
38385 * @property {number | null | undefined} [offset]
38386 *
38387 * @typedef PositionLike
38388 * @property {PointLike | null | undefined} [start]
38389 * @property {PointLike | null | undefined} [end]
38390 *
38391 * @typedef NodeLike
38392 * @property {PositionLike | null | undefined} [position]
38393 */
38394
38395 /**
38396 * Check if `node` is generated.
38397 *
38398 * @param {NodeLike | null | undefined} [node]
38399 * Node to check.
38400 * @returns {boolean}
38401 * Whether `node` is generated (does not have positional info).
38402 */
38403 function generated(node) {
38404 return (
38405 !node ||
38406 !node.position ||
38407 !node.position.start ||
38408 !node.position.start.line ||
38409 !node.position.start.column ||
38410 !node.position.end ||
38411 !node.position.end.line ||
38412 !node.position.end.column
38413 )
38414 }
38415
38416
38417 /***/ }),
38418
38419 /***/ "../node_modules/unist-util-is/lib/index.js":
38420 /*!**************************************************!*\
38421 !*** ../node_modules/unist-util-is/lib/index.js ***!
38422 \**************************************************/
38423 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38424
38425 "use strict";
38426 __webpack_require__.r(__webpack_exports__);
38427 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38428 /* harmony export */ convert: () => (/* binding */ convert),
38429 /* harmony export */ is: () => (/* binding */ is)
38430 /* harmony export */ });
38431 /**
38432 * @typedef {import('unist').Node} Node
38433 * @typedef {import('unist').Parent} Parent
38434 */
38435
38436 /**
38437 * @typedef {Record<string, unknown>} Props
38438 * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test
38439 * Check for an arbitrary node, unaware of TypeScript inferral.
38440 *
38441 * @callback TestFunctionAnything
38442 * Check if a node passes a test, unaware of TypeScript inferral.
38443 * @param {unknown} this
38444 * The given context.
38445 * @param {Node} node
38446 * A node.
38447 * @param {number | null | undefined} [index]
38448 * The node’s position in its parent.
38449 * @param {Parent | null | undefined} [parent]
38450 * The node’s parent.
38451 * @returns {boolean | void}
38452 * Whether this node passes the test.
38453 */
38454
38455 /**
38456 * @template {Node} Kind
38457 * Node type.
38458 * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest
38459 * Check for a node that can be inferred by TypeScript.
38460 */
38461
38462 /**
38463 * Check if a node passes a certain test.
38464 *
38465 * @template {Node} Kind
38466 * Node type.
38467 * @callback TestFunctionPredicate
38468 * Complex test function for a node that can be inferred by TypeScript.
38469 * @param {Node} node
38470 * A node.
38471 * @param {number | null | undefined} [index]
38472 * The node’s position in its parent.
38473 * @param {Parent | null | undefined} [parent]
38474 * The node’s parent.
38475 * @returns {node is Kind}
38476 * Whether this node passes the test.
38477 */
38478
38479 /**
38480 * @callback AssertAnything
38481 * Check that an arbitrary value is a node, unaware of TypeScript inferral.
38482 * @param {unknown} [node]
38483 * Anything (typically a node).
38484 * @param {number | null | undefined} [index]
38485 * The node’s position in its parent.
38486 * @param {Parent | null | undefined} [parent]
38487 * The node’s parent.
38488 * @returns {boolean}
38489 * Whether this is a node and passes a test.
38490 */
38491
38492 /**
38493 * Check if a node is a node and passes a certain node test.
38494 *
38495 * @template {Node} Kind
38496 * Node type.
38497 * @callback AssertPredicate
38498 * Check that an arbitrary value is a specific node, aware of TypeScript.
38499 * @param {unknown} [node]
38500 * Anything (typically a node).
38501 * @param {number | null | undefined} [index]
38502 * The node’s position in its parent.
38503 * @param {Parent | null | undefined} [parent]
38504 * The node’s parent.
38505 * @returns {node is Kind}
38506 * Whether this is a node and passes a test.
38507 */
38508
38509 /**
38510 * Check if `node` is a `Node` and whether it passes the given test.
38511 *
38512 * @param node
38513 * Thing to check, typically `Node`.
38514 * @param test
38515 * A check for a specific node.
38516 * @param index
38517 * The node’s position in its parent.
38518 * @param parent
38519 * The node’s parent.
38520 * @returns
38521 * Whether `node` is a node and passes a test.
38522 */
38523 const is =
38524 /**
38525 * @type {(
38526 * (() => false) &
38527 * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &
38528 * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &
38529 * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &
38530 * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)
38531 * )}
38532 */
38533 (
38534 /**
38535 * @param {unknown} [node]
38536 * @param {Test} [test]
38537 * @param {number | null | undefined} [index]
38538 * @param {Parent | null | undefined} [parent]
38539 * @param {unknown} [context]
38540 * @returns {boolean}
38541 */
38542 // eslint-disable-next-line max-params
38543 function is(node, test, index, parent, context) {
38544 const check = convert(test)
38545
38546 if (
38547 index !== undefined &&
38548 index !== null &&
38549 (typeof index !== 'number' ||
38550 index < 0 ||
38551 index === Number.POSITIVE_INFINITY)
38552 ) {
38553 throw new Error('Expected positive finite index')
38554 }
38555
38556 if (
38557 parent !== undefined &&
38558 parent !== null &&
38559 (!is(parent) || !parent.children)
38560 ) {
38561 throw new Error('Expected parent node')
38562 }
38563
38564 if (
38565 (parent === undefined || parent === null) !==
38566 (index === undefined || index === null)
38567 ) {
38568 throw new Error('Expected both parent and index')
38569 }
38570
38571 // @ts-expect-error Looks like a node.
38572 return node && node.type && typeof node.type === 'string'
38573 ? Boolean(check.call(context, node, index, parent))
38574 : false
38575 }
38576 )
38577
38578 /**
38579 * Generate an assertion from a test.
38580 *
38581 * Useful if you’re going to test many nodes, for example when creating a
38582 * utility where something else passes a compatible test.
38583 *
38584 * The created function is a bit faster because it expects valid input only:
38585 * a `node`, `index`, and `parent`.
38586 *
38587 * @param test
38588 * * when nullish, checks if `node` is a `Node`.
38589 * * when `string`, works like passing `(node) => node.type === test`.
38590 * * when `function` checks if function passed the node is true.
38591 * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.
38592 * * when `array`, checks if any one of the subtests pass.
38593 * @returns
38594 * An assertion.
38595 */
38596 const convert =
38597 /**
38598 * @type {(
38599 * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &
38600 * ((test?: Test) => AssertAnything)
38601 * )}
38602 */
38603 (
38604 /**
38605 * @param {Test} [test]
38606 * @returns {AssertAnything}
38607 */
38608 function (test) {
38609 if (test === undefined || test === null) {
38610 return ok
38611 }
38612
38613 if (typeof test === 'string') {
38614 return typeFactory(test)
38615 }
38616
38617 if (typeof test === 'object') {
38618 return Array.isArray(test) ? anyFactory(test) : propsFactory(test)
38619 }
38620
38621 if (typeof test === 'function') {
38622 return castFactory(test)
38623 }
38624
38625 throw new Error('Expected function, string, or object as test')
38626 }
38627 )
38628
38629 /**
38630 * @param {Array<string | Props | TestFunctionAnything>} tests
38631 * @returns {AssertAnything}
38632 */
38633 function anyFactory(tests) {
38634 /** @type {Array<AssertAnything>} */
38635 const checks = []
38636 let index = -1
38637
38638 while (++index < tests.length) {
38639 checks[index] = convert(tests[index])
38640 }
38641
38642 return castFactory(any)
38643
38644 /**
38645 * @this {unknown}
38646 * @param {Array<unknown>} parameters
38647 * @returns {boolean}
38648 */
38649 function any(...parameters) {
38650 let index = -1
38651
38652 while (++index < checks.length) {
38653 if (checks[index].call(this, ...parameters)) return true
38654 }
38655
38656 return false
38657 }
38658 }
38659
38660 /**
38661 * Turn an object into a test for a node with a certain fields.
38662 *
38663 * @param {Props} check
38664 * @returns {AssertAnything}
38665 */
38666 function propsFactory(check) {
38667 return castFactory(all)
38668
38669 /**
38670 * @param {Node} node
38671 * @returns {boolean}
38672 */
38673 function all(node) {
38674 /** @type {string} */
38675 let key
38676
38677 for (key in check) {
38678 // @ts-expect-error: hush, it sure works as an index.
38679 if (node[key] !== check[key]) return false
38680 }
38681
38682 return true
38683 }
38684 }
38685
38686 /**
38687 * Turn a string into a test for a node with a certain type.
38688 *
38689 * @param {string} check
38690 * @returns {AssertAnything}
38691 */
38692 function typeFactory(check) {
38693 return castFactory(type)
38694
38695 /**
38696 * @param {Node} node
38697 */
38698 function type(node) {
38699 return node && node.type === check
38700 }
38701 }
38702
38703 /**
38704 * Turn a custom test into a test for a node that passes that test.
38705 *
38706 * @param {TestFunctionAnything} check
38707 * @returns {AssertAnything}
38708 */
38709 function castFactory(check) {
38710 return assertion
38711
38712 /**
38713 * @this {unknown}
38714 * @param {unknown} node
38715 * @param {Array<unknown>} parameters
38716 * @returns {boolean}
38717 */
38718 function assertion(node, ...parameters) {
38719 return Boolean(
38720 node &&
38721 typeof node === 'object' &&
38722 'type' in node &&
38723 // @ts-expect-error: fine.
38724 Boolean(check.call(this, node, ...parameters))
38725 )
38726 }
38727 }
38728
38729 function ok() {
38730 return true
38731 }
38732
38733
38734 /***/ }),
38735
38736 /***/ "../node_modules/unist-util-position/lib/index.js":
38737 /*!********************************************************!*\
38738 !*** ../node_modules/unist-util-position/lib/index.js ***!
38739 \********************************************************/
38740 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38741
38742 "use strict";
38743 __webpack_require__.r(__webpack_exports__);
38744 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38745 /* harmony export */ pointEnd: () => (/* binding */ pointEnd),
38746 /* harmony export */ pointStart: () => (/* binding */ pointStart),
38747 /* harmony export */ position: () => (/* binding */ position)
38748 /* harmony export */ });
38749 /**
38750 * @typedef {import('unist').Position} Position
38751 * @typedef {import('unist').Node} Node
38752 * @typedef {import('unist').Point} Point
38753 */
38754
38755 /**
38756 * @typedef NodeLike
38757 * @property {string} type
38758 * @property {PositionLike | null | undefined} [position]
38759 *
38760 * @typedef PositionLike
38761 * @property {PointLike | null | undefined} [start]
38762 * @property {PointLike | null | undefined} [end]
38763 *
38764 * @typedef PointLike
38765 * @property {number | null | undefined} [line]
38766 * @property {number | null | undefined} [column]
38767 * @property {number | null | undefined} [offset]
38768 */
38769
38770 /**
38771 * Get the starting point of `node`.
38772 *
38773 * @param node
38774 * Node.
38775 * @returns
38776 * Point.
38777 */
38778 const pointStart = point('start')
38779
38780 /**
38781 * Get the ending point of `node`.
38782 *
38783 * @param node
38784 * Node.
38785 * @returns
38786 * Point.
38787 */
38788 const pointEnd = point('end')
38789
38790 /**
38791 * Get the positional info of `node`.
38792 *
38793 * @param {NodeLike | Node | null | undefined} [node]
38794 * Node.
38795 * @returns {Position}
38796 * Position.
38797 */
38798 function position(node) {
38799 return {start: pointStart(node), end: pointEnd(node)}
38800 }
38801
38802 /**
38803 * Get the positional info of `node`.
38804 *
38805 * @param {'start' | 'end'} type
38806 * Side.
38807 * @returns
38808 * Getter.
38809 */
38810 function point(type) {
38811 return point
38812
38813 /**
38814 * Get the point info of `node` at a bound side.
38815 *
38816 * @param {NodeLike | Node | null | undefined} [node]
38817 * @returns {Point}
38818 */
38819 function point(node) {
38820 const point = (node && node.position && node.position[type]) || {}
38821
38822 // To do: next major: don’t return points when invalid.
38823 return {
38824 // @ts-expect-error: in practice, null is allowed.
38825 line: point.line || null,
38826 // @ts-expect-error: in practice, null is allowed.
38827 column: point.column || null,
38828 // @ts-expect-error: in practice, null is allowed.
38829 offset: point.offset > -1 ? point.offset : null
38830 }
38831 }
38832 }
38833
38834
38835 /***/ }),
38836
38837 /***/ "../node_modules/unist-util-stringify-position/lib/index.js":
38838 /*!******************************************************************!*\
38839 !*** ../node_modules/unist-util-stringify-position/lib/index.js ***!
38840 \******************************************************************/
38841 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38842
38843 "use strict";
38844 __webpack_require__.r(__webpack_exports__);
38845 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38846 /* harmony export */ stringifyPosition: () => (/* binding */ stringifyPosition)
38847 /* harmony export */ });
38848 /**
38849 * @typedef {import('unist').Node} Node
38850 * @typedef {import('unist').Point} Point
38851 * @typedef {import('unist').Position} Position
38852 */
38853
38854 /**
38855 * @typedef NodeLike
38856 * @property {string} type
38857 * @property {PositionLike | null | undefined} [position]
38858 *
38859 * @typedef PositionLike
38860 * @property {PointLike | null | undefined} [start]
38861 * @property {PointLike | null | undefined} [end]
38862 *
38863 * @typedef PointLike
38864 * @property {number | null | undefined} [line]
38865 * @property {number | null | undefined} [column]
38866 * @property {number | null | undefined} [offset]
38867 */
38868
38869 /**
38870 * Serialize the positional info of a point, position (start and end points),
38871 * or node.
38872 *
38873 * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]
38874 * Node, position, or point.
38875 * @returns {string}
38876 * Pretty printed positional info of a node (`string`).
38877 *
38878 * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
38879 * or a point `l:c` (when given `point`), where `l` stands for line, `c` for
38880 * column, `s` for `start`, and `e` for end.
38881 * An empty string (`''`) is returned if the given value is neither `node`,
38882 * `position`, nor `point`.
38883 */
38884 function stringifyPosition(value) {
38885 // Nothing.
38886 if (!value || typeof value !== 'object') {
38887 return ''
38888 }
38889
38890 // Node.
38891 if ('position' in value || 'type' in value) {
38892 return position(value.position)
38893 }
38894
38895 // Position.
38896 if ('start' in value || 'end' in value) {
38897 return position(value)
38898 }
38899
38900 // Point.
38901 if ('line' in value || 'column' in value) {
38902 return point(value)
38903 }
38904
38905 // ?
38906 return ''
38907 }
38908
38909 /**
38910 * @param {Point | PointLike | null | undefined} point
38911 * @returns {string}
38912 */
38913 function point(point) {
38914 return index(point && point.line) + ':' + index(point && point.column)
38915 }
38916
38917 /**
38918 * @param {Position | PositionLike | null | undefined} pos
38919 * @returns {string}
38920 */
38921 function position(pos) {
38922 return point(pos && pos.start) + '-' + point(pos && pos.end)
38923 }
38924
38925 /**
38926 * @param {number | null | undefined} value
38927 * @returns {number}
38928 */
38929 function index(value) {
38930 return value && typeof value === 'number' ? value : 1
38931 }
38932
38933
38934 /***/ }),
38935
38936 /***/ "../node_modules/unist-util-visit-parents/lib/color.browser.js":
38937 /*!*********************************************************************!*\
38938 !*** ../node_modules/unist-util-visit-parents/lib/color.browser.js ***!
38939 \*********************************************************************/
38940 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38941
38942 "use strict";
38943 __webpack_require__.r(__webpack_exports__);
38944 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38945 /* harmony export */ color: () => (/* binding */ color)
38946 /* harmony export */ });
38947 /**
38948 * @param {string} d
38949 * @returns {string}
38950 */
38951 function color(d) {
38952 return d
38953 }
38954
38955
38956 /***/ }),
38957
38958 /***/ "../node_modules/unist-util-visit-parents/lib/index.js":
38959 /*!*************************************************************!*\
38960 !*** ../node_modules/unist-util-visit-parents/lib/index.js ***!
38961 \*************************************************************/
38962 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38963
38964 "use strict";
38965 __webpack_require__.r(__webpack_exports__);
38966 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38967 /* harmony export */ CONTINUE: () => (/* binding */ CONTINUE),
38968 /* harmony export */ EXIT: () => (/* binding */ EXIT),
38969 /* harmony export */ SKIP: () => (/* binding */ SKIP),
38970 /* harmony export */ visitParents: () => (/* binding */ visitParents)
38971 /* harmony export */ });
38972 /* harmony import */ var unist_util_is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-is */ "../node_modules/unist-util-is/lib/index.js");
38973 /* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "../node_modules/unist-util-visit-parents/lib/color.browser.js");
38974 /**
38975 * @typedef {import('unist').Node} Node
38976 * @typedef {import('unist').Parent} Parent
38977 * @typedef {import('unist-util-is').Test} Test
38978 */
38979
38980 /**
38981 * @typedef {boolean | 'skip'} Action
38982 * Union of the action types.
38983 *
38984 * @typedef {number} Index
38985 * Move to the sibling at `index` next (after node itself is completely
38986 * traversed).
38987 *
38988 * Useful if mutating the tree, such as removing the node the visitor is
38989 * currently on, or any of its previous siblings.
38990 * Results less than 0 or greater than or equal to `children.length` stop
38991 * traversing the parent.
38992 *
38993 * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple
38994 * List with one or two values, the first an action, the second an index.
38995 *
38996 * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult
38997 * Any value that can be returned from a visitor.
38998 */
38999
39000 /**
39001 * @template {Node} [Visited=Node]
39002 * Visited node type.
39003 * @template {Parent} [Ancestor=Parent]
39004 * Ancestor type.
39005 * @callback Visitor
39006 * Handle a node (matching `test`, if given).
39007 *
39008 * Visitors are free to transform `node`.
39009 * They can also transform the parent of node (the last of `ancestors`).
39010 *
39011 * Replacing `node` itself, if `SKIP` is not returned, still causes its
39012 * descendants to be walked (which is a bug).
39013 *
39014 * When adding or removing previous siblings of `node` (or next siblings, in
39015 * case of reverse), the `Visitor` should return a new `Index` to specify the
39016 * sibling to traverse after `node` is traversed.
39017 * Adding or removing next siblings of `node` (or previous siblings, in case
39018 * of reverse) is handled as expected without needing to return a new `Index`.
39019 *
39020 * Removing the children property of an ancestor still results in them being
39021 * traversed.
39022 * @param {Visited} node
39023 * Found node.
39024 * @param {Array<Ancestor>} ancestors
39025 * Ancestors of `node`.
39026 * @returns {VisitorResult}
39027 * What to do next.
39028 *
39029 * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
39030 * An `Action` is treated as a tuple of `[Action]`.
39031 *
39032 * Passing a tuple back only makes sense if the `Action` is `SKIP`.
39033 * When the `Action` is `EXIT`, that action can be returned.
39034 * When the `Action` is `CONTINUE`, `Index` can be returned.
39035 */
39036
39037 /**
39038 * @template {Node} [Tree=Node]
39039 * Tree type.
39040 * @template {Test} [Check=string]
39041 * Test type.
39042 * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor
39043 * Build a typed `Visitor` function from a tree and a test.
39044 *
39045 * It will infer which values are passed as `node` and which as `parents`.
39046 */
39047
39048
39049
39050
39051 /**
39052 * Continue traversing as normal.
39053 */
39054 const CONTINUE = true
39055
39056 /**
39057 * Stop traversing immediately.
39058 */
39059 const EXIT = false
39060
39061 /**
39062 * Do not traverse this node’s children.
39063 */
39064 const SKIP = 'skip'
39065
39066 /**
39067 * Visit nodes, with ancestral information.
39068 *
39069 * This algorithm performs *depth-first* *tree traversal* in *preorder*
39070 * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
39071 *
39072 * You can choose for which nodes `visitor` is called by passing a `test`.
39073 * For complex tests, you should test yourself in `visitor`, as it will be
39074 * faster and will have improved type information.
39075 *
39076 * Walking the tree is an intensive task.
39077 * Make use of the return values of the visitor when possible.
39078 * Instead of walking a tree multiple times, walk it once, use `unist-util-is`
39079 * to check if a node matches, and then perform different operations.
39080 *
39081 * You can change the tree.
39082 * See `Visitor` for more info.
39083 *
39084 * @param tree
39085 * Tree to traverse.
39086 * @param test
39087 * `unist-util-is`-compatible test
39088 * @param visitor
39089 * Handle each node.
39090 * @param reverse
39091 * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
39092 * @returns
39093 * Nothing.
39094 */
39095 const visitParents =
39096 /**
39097 * @type {(
39098 * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
39099 * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
39100 * )}
39101 */
39102 (
39103 /**
39104 * @param {Node} tree
39105 * @param {Test} test
39106 * @param {Visitor<Node>} visitor
39107 * @param {boolean | null | undefined} [reverse]
39108 * @returns {void}
39109 */
39110 function (tree, test, visitor, reverse) {
39111 if (typeof test === 'function' && typeof visitor !== 'function') {
39112 reverse = visitor
39113 // @ts-expect-error no visitor given, so `visitor` is test.
39114 visitor = test
39115 test = null
39116 }
39117
39118 const is = (0,unist_util_is__WEBPACK_IMPORTED_MODULE_0__.convert)(test)
39119 const step = reverse ? -1 : 1
39120
39121 factory(tree, undefined, [])()
39122
39123 /**
39124 * @param {Node} node
39125 * @param {number | undefined} index
39126 * @param {Array<Parent>} parents
39127 */
39128 function factory(node, index, parents) {
39129 /** @type {Record<string, unknown>} */
39130 // @ts-expect-error: hush
39131 const value = node && typeof node === 'object' ? node : {}
39132
39133 if (typeof value.type === 'string') {
39134 const name =
39135 // `hast`
39136 typeof value.tagName === 'string'
39137 ? value.tagName
39138 : // `xast`
39139 typeof value.name === 'string'
39140 ? value.name
39141 : undefined
39142
39143 Object.defineProperty(visit, 'name', {
39144 value:
39145 'node (' + (0,_color_js__WEBPACK_IMPORTED_MODULE_1__.color)(node.type + (name ? '<' + name + '>' : '')) + ')'
39146 })
39147 }
39148
39149 return visit
39150
39151 function visit() {
39152 /** @type {ActionTuple} */
39153 let result = []
39154 /** @type {ActionTuple} */
39155 let subresult
39156 /** @type {number} */
39157 let offset
39158 /** @type {Array<Parent>} */
39159 let grandparents
39160
39161 if (!test || is(node, index, parents[parents.length - 1] || null)) {
39162 result = toResult(visitor(node, parents))
39163
39164 if (result[0] === EXIT) {
39165 return result
39166 }
39167 }
39168
39169 // @ts-expect-error looks like a parent.
39170 if (node.children && result[0] !== SKIP) {
39171 // @ts-expect-error looks like a parent.
39172 offset = (reverse ? node.children.length : -1) + step
39173 // @ts-expect-error looks like a parent.
39174 grandparents = parents.concat(node)
39175
39176 // @ts-expect-error looks like a parent.
39177 while (offset > -1 && offset < node.children.length) {
39178 // @ts-expect-error looks like a parent.
39179 subresult = factory(node.children[offset], offset, grandparents)()
39180
39181 if (subresult[0] === EXIT) {
39182 return subresult
39183 }
39184
39185 offset =
39186 typeof subresult[1] === 'number' ? subresult[1] : offset + step
39187 }
39188 }
39189
39190 return result
39191 }
39192 }
39193 }
39194 )
39195
39196 /**
39197 * Turn a return value into a clean result.
39198 *
39199 * @param {VisitorResult} value
39200 * Valid return values from visitors.
39201 * @returns {ActionTuple}
39202 * Clean result.
39203 */
39204 function toResult(value) {
39205 if (Array.isArray(value)) {
39206 return value
39207 }
39208
39209 if (typeof value === 'number') {
39210 return [CONTINUE, value]
39211 }
39212
39213 return [value]
39214 }
39215
39216
39217 /***/ }),
39218
39219 /***/ "../node_modules/unist-util-visit/lib/index.js":
39220 /*!*****************************************************!*\
39221 !*** ../node_modules/unist-util-visit/lib/index.js ***!
39222 \*****************************************************/
39223 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39224
39225 "use strict";
39226 __webpack_require__.r(__webpack_exports__);
39227 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39228 /* harmony export */ CONTINUE: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.CONTINUE),
39229 /* harmony export */ EXIT: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.EXIT),
39230 /* harmony export */ SKIP: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.SKIP),
39231 /* harmony export */ visit: () => (/* binding */ visit)
39232 /* harmony export */ });
39233 /* 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");
39234 /**
39235 * @typedef {import('unist').Node} Node
39236 * @typedef {import('unist').Parent} Parent
39237 * @typedef {import('unist-util-is').Test} Test
39238 * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult
39239 */
39240
39241 /**
39242 * Check if `Child` can be a child of `Ancestor`.
39243 *
39244 * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns
39245 * `never`.
39246 *
39247 * @template {Node} Ancestor
39248 * Node type.
39249 * @template {Node} Child
39250 * Node type.
39251 * @typedef {(
39252 * Ancestor extends Parent
39253 * ? Child extends Ancestor['children'][number]
39254 * ? Ancestor
39255 * : never
39256 * : never
39257 * )} ParentsOf
39258 */
39259
39260 /**
39261 * @template {Node} [Visited=Node]
39262 * Visited node type.
39263 * @template {Parent} [Ancestor=Parent]
39264 * Ancestor type.
39265 * @callback Visitor
39266 * Handle a node (matching `test`, if given).
39267 *
39268 * Visitors are free to transform `node`.
39269 * They can also transform `parent`.
39270 *
39271 * Replacing `node` itself, if `SKIP` is not returned, still causes its
39272 * descendants to be walked (which is a bug).
39273 *
39274 * When adding or removing previous siblings of `node` (or next siblings, in
39275 * case of reverse), the `Visitor` should return a new `Index` to specify the
39276 * sibling to traverse after `node` is traversed.
39277 * Adding or removing next siblings of `node` (or previous siblings, in case
39278 * of reverse) is handled as expected without needing to return a new `Index`.
39279 *
39280 * Removing the children property of `parent` still results in them being
39281 * traversed.
39282 * @param {Visited} node
39283 * Found node.
39284 * @param {Visited extends Node ? number | null : never} index
39285 * Index of `node` in `parent`.
39286 * @param {Ancestor extends Node ? Ancestor | null : never} parent
39287 * Parent of `node`.
39288 * @returns {VisitorResult}
39289 * What to do next.
39290 *
39291 * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
39292 * An `Action` is treated as a tuple of `[Action]`.
39293 *
39294 * Passing a tuple back only makes sense if the `Action` is `SKIP`.
39295 * When the `Action` is `EXIT`, that action can be returned.
39296 * When the `Action` is `CONTINUE`, `Index` can be returned.
39297 */
39298
39299 /**
39300 * Build a typed `Visitor` function from a node and all possible parents.
39301 *
39302 * It will infer which values are passed as `node` and which as `parent`.
39303 *
39304 * @template {Node} Visited
39305 * Node type.
39306 * @template {Parent} Ancestor
39307 * Parent type.
39308 * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch
39309 */
39310
39311 /**
39312 * Build a typed `Visitor` function from a list of descendants and a test.
39313 *
39314 * It will infer which values are passed as `node` and which as `parent`.
39315 *
39316 * @template {Node} Descendant
39317 * Node type.
39318 * @template {Test} Check
39319 * Test type.
39320 * @typedef {(
39321 * BuildVisitorFromMatch<
39322 * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,
39323 * Extract<Descendant, Parent>
39324 * >
39325 * )} BuildVisitorFromDescendants
39326 */
39327
39328 /**
39329 * Build a typed `Visitor` function from a tree and a test.
39330 *
39331 * It will infer which values are passed as `node` and which as `parent`.
39332 *
39333 * @template {Node} [Tree=Node]
39334 * Node type.
39335 * @template {Test} [Check=string]
39336 * Test type.
39337 * @typedef {(
39338 * BuildVisitorFromDescendants<
39339 * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,
39340 * Check
39341 * >
39342 * )} BuildVisitor
39343 */
39344
39345
39346
39347 /**
39348 * Visit nodes.
39349 *
39350 * This algorithm performs *depth-first* *tree traversal* in *preorder*
39351 * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
39352 *
39353 * You can choose for which nodes `visitor` is called by passing a `test`.
39354 * For complex tests, you should test yourself in `visitor`, as it will be
39355 * faster and will have improved type information.
39356 *
39357 * Walking the tree is an intensive task.
39358 * Make use of the return values of the visitor when possible.
39359 * Instead of walking a tree multiple times, walk it once, use `unist-util-is`
39360 * to check if a node matches, and then perform different operations.
39361 *
39362 * You can change the tree.
39363 * See `Visitor` for more info.
39364 *
39365 * @param tree
39366 * Tree to traverse.
39367 * @param test
39368 * `unist-util-is`-compatible test
39369 * @param visitor
39370 * Handle each node.
39371 * @param reverse
39372 * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
39373 * @returns
39374 * Nothing.
39375 */
39376 const visit =
39377 /**
39378 * @type {(
39379 * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
39380 * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
39381 * )}
39382 */
39383 (
39384 /**
39385 * @param {Node} tree
39386 * @param {Test} test
39387 * @param {Visitor} visitor
39388 * @param {boolean | null | undefined} [reverse]
39389 * @returns {void}
39390 */
39391 function (tree, test, visitor, reverse) {
39392 if (typeof test === 'function' && typeof visitor !== 'function') {
39393 reverse = visitor
39394 visitor = test
39395 test = null
39396 }
39397
39398 (0,unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.visitParents)(tree, test, overload, reverse)
39399
39400 /**
39401 * @param {Node} node
39402 * @param {Array<Parent>} parents
39403 */
39404 function overload(node, parents) {
39405 const parent = parents[parents.length - 1]
39406 return visitor(
39407 node,
39408 parent ? parent.children.indexOf(node) : null,
39409 parent
39410 )
39411 }
39412 }
39413 )
39414
39415
39416
39417
39418 /***/ }),
39419
39420 /***/ "../node_modules/uvu/assert/index.mjs":
39421 /*!********************************************!*\
39422 !*** ../node_modules/uvu/assert/index.mjs ***!
39423 \********************************************/
39424 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39425
39426 "use strict";
39427 __webpack_require__.r(__webpack_exports__);
39428 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39429 /* harmony export */ Assertion: () => (/* binding */ Assertion),
39430 /* harmony export */ equal: () => (/* binding */ equal),
39431 /* harmony export */ fixture: () => (/* binding */ fixture),
39432 /* harmony export */ instance: () => (/* binding */ instance),
39433 /* harmony export */ is: () => (/* binding */ is),
39434 /* harmony export */ match: () => (/* binding */ match),
39435 /* harmony export */ not: () => (/* binding */ not),
39436 /* harmony export */ ok: () => (/* binding */ ok),
39437 /* harmony export */ snapshot: () => (/* binding */ snapshot),
39438 /* harmony export */ throws: () => (/* binding */ throws),
39439 /* harmony export */ type: () => (/* binding */ type),
39440 /* harmony export */ unreachable: () => (/* binding */ unreachable)
39441 /* harmony export */ });
39442 /* harmony import */ var dequal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dequal */ "../node_modules/dequal/dist/index.mjs");
39443 /* harmony import */ var uvu_diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uvu/diff */ "../node_modules/uvu/diff/index.mjs");
39444
39445
39446
39447 function dedent(str) {
39448 str = str.replace(/\r?\n/g, '\n');
39449 let arr = str.match(/^[ \t]*(?=\S)/gm);
39450 let i = 0, min = 1/0, len = (arr||[]).length;
39451 for (; i < len; i++) min = Math.min(min, arr[i].length);
39452 return len && min ? str.replace(new RegExp(`^[ \\t]{${min}}`, 'gm'), '') : str;
39453 }
39454
39455 class Assertion extends Error {
39456 constructor(opts={}) {
39457 super(opts.message);
39458 this.name = 'Assertion';
39459 this.code = 'ERR_ASSERTION';
39460 if (Error.captureStackTrace) {
39461 Error.captureStackTrace(this, this.constructor);
39462 }
39463 this.details = opts.details || false;
39464 this.generated = !!opts.generated;
39465 this.operator = opts.operator;
39466 this.expects = opts.expects;
39467 this.actual = opts.actual;
39468 }
39469 }
39470
39471 function assert(bool, actual, expects, operator, detailer, backup, msg) {
39472 if (bool) return;
39473 let message = msg || backup;
39474 if (msg instanceof Error) throw msg;
39475 let details = detailer && detailer(actual, expects);
39476 throw new Assertion({ actual, expects, operator, message, details, generated: !msg });
39477 }
39478
39479 function ok(val, msg) {
39480 assert(!!val, false, true, 'ok', false, 'Expected value to be truthy', msg);
39481 }
39482
39483 function is(val, exp, msg) {
39484 assert(val === exp, val, exp, 'is', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.compare, 'Expected values to be strictly equal:', msg);
39485 }
39486
39487 function equal(val, exp, msg) {
39488 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);
39489 }
39490
39491 function unreachable(msg) {
39492 assert(false, true, false, 'unreachable', false, 'Expected not to be reached!', msg);
39493 }
39494
39495 function type(val, exp, msg) {
39496 let tmp = typeof val;
39497 assert(tmp === exp, tmp, exp, 'type', false, `Expected "${tmp}" to be "${exp}"`, msg);
39498 }
39499
39500 function instance(val, exp, msg) {
39501 let name = '`' + (exp.name || exp.constructor.name) + '`';
39502 assert(val instanceof exp, val, exp, 'instance', false, `Expected value to be an instance of ${name}`, msg);
39503 }
39504
39505 function match(val, exp, msg) {
39506 if (typeof exp === 'string') {
39507 assert(val.includes(exp), val, exp, 'match', false, `Expected value to include "${exp}" substring`, msg);
39508 } else {
39509 assert(exp.test(val), val, exp, 'match', false, `Expected value to match \`${String(exp)}\` pattern`, msg);
39510 }
39511 }
39512
39513 function snapshot(val, exp, msg) {
39514 val=dedent(val); exp=dedent(exp);
39515 assert(val === exp, val, exp, 'snapshot', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.lines, 'Expected value to match snapshot:', msg);
39516 }
39517
39518 const lineNums = (x, y) => (0,uvu_diff__WEBPACK_IMPORTED_MODULE_1__.lines)(x, y, 1);
39519 function fixture(val, exp, msg) {
39520 val=dedent(val); exp=dedent(exp);
39521 assert(val === exp, val, exp, 'fixture', lineNums, 'Expected value to match fixture:', msg);
39522 }
39523
39524 function throws(blk, exp, msg) {
39525 if (!msg && typeof exp === 'string') {
39526 msg = exp; exp = null;
39527 }
39528
39529 try {
39530 blk();
39531 assert(false, false, true, 'throws', false, 'Expected function to throw', msg);
39532 } catch (err) {
39533 if (err instanceof Assertion) throw err;
39534
39535 if (typeof exp === 'function') {
39536 assert(exp(err), false, true, 'throws', false, 'Expected function to throw matching exception', msg);
39537 } else if (exp instanceof RegExp) {
39538 assert(exp.test(err.message), false, true, 'throws', false, `Expected function to throw exception matching \`${String(exp)}\` pattern`, msg);
39539 }
39540 }
39541 }
39542
39543 // ---
39544
39545 function not(val, msg) {
39546 assert(!val, true, false, 'not', false, 'Expected value to be falsey', msg);
39547 }
39548
39549 not.ok = not;
39550
39551 is.not = function (val, exp, msg) {
39552 assert(val !== exp, val, exp, 'is.not', false, 'Expected values not to be strictly equal', msg);
39553 }
39554
39555 not.equal = function (val, exp, msg) {
39556 assert(!(0,dequal__WEBPACK_IMPORTED_MODULE_0__.dequal)(val, exp), val, exp, 'not.equal', false, 'Expected values not to be deeply equal', msg);
39557 }
39558
39559 not.type = function (val, exp, msg) {
39560 let tmp = typeof val;
39561 assert(tmp !== exp, tmp, exp, 'not.type', false, `Expected "${tmp}" not to be "${exp}"`, msg);
39562 }
39563
39564 not.instance = function (val, exp, msg) {
39565 let name = '`' + (exp.name || exp.constructor.name) + '`';
39566 assert(!(val instanceof exp), val, exp, 'not.instance', false, `Expected value not to be an instance of ${name}`, msg);
39567 }
39568
39569 not.snapshot = function (val, exp, msg) {
39570 val=dedent(val); exp=dedent(exp);
39571 assert(val !== exp, val, exp, 'not.snapshot', false, 'Expected value not to match snapshot', msg);
39572 }
39573
39574 not.fixture = function (val, exp, msg) {
39575 val=dedent(val); exp=dedent(exp);
39576 assert(val !== exp, val, exp, 'not.fixture', false, 'Expected value not to match fixture', msg);
39577 }
39578
39579 not.match = function (val, exp, msg) {
39580 if (typeof exp === 'string') {
39581 assert(!val.includes(exp), val, exp, 'not.match', false, `Expected value not to include "${exp}" substring`, msg);
39582 } else {
39583 assert(!exp.test(val), val, exp, 'not.match', false, `Expected value not to match \`${String(exp)}\` pattern`, msg);
39584 }
39585 }
39586
39587 not.throws = function (blk, exp, msg) {
39588 if (!msg && typeof exp === 'string') {
39589 msg = exp; exp = null;
39590 }
39591
39592 try {
39593 blk();
39594 } catch (err) {
39595 if (typeof exp === 'function') {
39596 assert(!exp(err), true, false, 'not.throws', false, 'Expected function not to throw matching exception', msg);
39597 } else if (exp instanceof RegExp) {
39598 assert(!exp.test(err.message), true, false, 'not.throws', false, `Expected function not to throw exception matching \`${String(exp)}\` pattern`, msg);
39599 } else if (!exp) {
39600 assert(false, true, false, 'not.throws', false, 'Expected function not to throw', msg);
39601 }
39602 }
39603 }
39604
39605
39606 /***/ }),
39607
39608 /***/ "../node_modules/uvu/diff/index.mjs":
39609 /*!******************************************!*\
39610 !*** ../node_modules/uvu/diff/index.mjs ***!
39611 \******************************************/
39612 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39613
39614 "use strict";
39615 __webpack_require__.r(__webpack_exports__);
39616 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39617 /* harmony export */ arrays: () => (/* binding */ arrays),
39618 /* harmony export */ chars: () => (/* binding */ chars),
39619 /* harmony export */ circular: () => (/* binding */ circular),
39620 /* harmony export */ compare: () => (/* binding */ compare),
39621 /* harmony export */ direct: () => (/* binding */ direct),
39622 /* harmony export */ lines: () => (/* binding */ lines),
39623 /* harmony export */ sort: () => (/* binding */ sort),
39624 /* harmony export */ stringify: () => (/* binding */ stringify)
39625 /* harmony export */ });
39626 /* harmony import */ var kleur__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kleur */ "../node_modules/uvu/node_modules/kleur/index.mjs");
39627 /* harmony import */ var diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diff */ "../node_modules/diff/lib/index.mjs");
39628
39629
39630
39631 const colors = {
39632 '--': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].red,
39633 '··': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].grey,
39634 '++': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].green,
39635 };
39636
39637 const TITLE = kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim().italic;
39638 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('↵');
39639 const LOG = (sym, str) => colors[sym](sym + PRETTY(str)) + '\n';
39640 const LINE = (num, x) => kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim('L' + String(num).padStart(x, '0') + ' ');
39641 const PRETTY = str => str.replace(/[ ]/g, SPACE).replace(/\t/g, TAB).replace(/(\r?\n)/g, NL);
39642
39643 function line(obj, prev, pad) {
39644 let char = obj.removed ? '--' : obj.added ? '++' : '··';
39645 let arr = obj.value.replace(/\r?\n$/, '').split('\n');
39646 let i=0, tmp, out='';
39647
39648 if (obj.added) out += colors[char]().underline(TITLE('Expected:')) + '\n';
39649 else if (obj.removed) out += colors[char]().underline(TITLE('Actual:')) + '\n';
39650
39651 for (; i < arr.length; i++) {
39652 tmp = arr[i];
39653 if (tmp != null) {
39654 if (prev) out += LINE(prev + i, pad);
39655 out += LOG(char, tmp || '\n');
39656 }
39657 }
39658
39659 return out;
39660 }
39661
39662 // TODO: want better diffing
39663 //~> complex items bail outright
39664 function arrays(input, expect) {
39665 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffArrays(input, expect);
39666 let i=0, j=0, k=0, tmp, val, char, isObj, str;
39667 let out = LOG('··', '[');
39668
39669 for (; i < arr.length; i++) {
39670 char = (tmp = arr[i]).removed ? '--' : tmp.added ? '++' : '··';
39671
39672 if (tmp.added) {
39673 out += colors[char]().underline(TITLE('Expected:')) + '\n';
39674 } else if (tmp.removed) {
39675 out += colors[char]().underline(TITLE('Actual:')) + '\n';
39676 }
39677
39678 for (j=0; j < tmp.value.length; j++) {
39679 isObj = (tmp.value[j] && typeof tmp.value[j] === 'object');
39680 val = stringify(tmp.value[j]).split(/\r?\n/g);
39681 for (k=0; k < val.length;) {
39682 str = ' ' + val[k++] + (isObj ? '' : ',');
39683 if (isObj && k === val.length && (j + 1) < tmp.value.length) str += ',';
39684 out += LOG(char, str);
39685 }
39686 }
39687 }
39688
39689 return out + LOG('··', ']');
39690 }
39691
39692 function lines(input, expect, linenum = 0) {
39693 let i=0, tmp, output='';
39694 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffLines(input, expect);
39695 let pad = String(expect.split(/\r?\n/g).length - linenum).length;
39696
39697 for (; i < arr.length; i++) {
39698 output += line(tmp = arr[i], linenum, pad);
39699 if (linenum && !tmp.removed) linenum += tmp.count;
39700 }
39701
39702 return output;
39703 }
39704
39705 function chars(input, expect) {
39706 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffChars(input, expect);
39707 let i=0, output='', tmp;
39708
39709 let l1 = input.length;
39710 let l2 = expect.length;
39711
39712 let p1 = PRETTY(input);
39713 let p2 = PRETTY(expect);
39714
39715 tmp = arr[i];
39716
39717 if (l1 === l2) {
39718 // no length offsets
39719 } else if (tmp.removed && arr[i + 1]) {
39720 let del = tmp.count - arr[i + 1].count;
39721 if (del == 0) {
39722 // wash~
39723 } else if (del > 0) {
39724 expect = ' '.repeat(del) + expect;
39725 p2 = ' '.repeat(del) + p2;
39726 l2 += del;
39727 } else if (del < 0) {
39728 input = ' '.repeat(-del) + input;
39729 p1 = ' '.repeat(-del) + p1;
39730 l1 += -del;
39731 }
39732 }
39733
39734 output += direct(p1, p2, l1, l2);
39735
39736 if (l1 === l2) {
39737 for (tmp=' '; i < l1; i++) {
39738 tmp += input[i] === expect[i] ? ' ' : '^';
39739 }
39740 } else {
39741 for (tmp=' '; i < arr.length; i++) {
39742 tmp += ((arr[i].added || arr[i].removed) ? '^' : ' ').repeat(Math.max(arr[i].count, 0));
39743 if (i + 1 < arr.length && ((arr[i].added && arr[i+1].removed) || (arr[i].removed && arr[i+1].added))) {
39744 arr[i + 1].count -= arr[i].count;
39745 }
39746 }
39747 }
39748
39749 return output + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].red(tmp);
39750 }
39751
39752 function direct(input, expect, lenA = String(input).length, lenB = String(expect).length) {
39753 let gutter = 4;
39754 let lenC = Math.max(lenA, lenB);
39755 let typeA=typeof input, typeB=typeof expect;
39756
39757 if (typeA !== typeB) {
39758 gutter = 2;
39759
39760 let delA = gutter + lenC - lenA;
39761 let delB = gutter + lenC - lenB;
39762
39763 input += ' '.repeat(delA) + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim(`[${typeA}]`);
39764 expect += ' '.repeat(delB) + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim(`[${typeB}]`);
39765
39766 lenA += delA + typeA.length + 2;
39767 lenB += delB + typeB.length + 2;
39768 lenC = Math.max(lenA, lenB);
39769 }
39770
39771 let output = colors['++']('++' + expect + ' '.repeat(gutter + lenC - lenB) + TITLE('(Expected)')) + '\n';
39772 return output + colors['--']('--' + input + ' '.repeat(gutter + lenC - lenA) + TITLE('(Actual)')) + '\n';
39773 }
39774
39775 function sort(input, expect) {
39776 var k, i=0, tmp, isArr = Array.isArray(input);
39777 var keys=[], out=isArr ? Array(input.length) : {};
39778
39779 if (isArr) {
39780 for (i=0; i < out.length; i++) {
39781 tmp = input[i];
39782 if (!tmp || typeof tmp !== 'object') out[i] = tmp;
39783 else out[i] = sort(tmp, expect[i]); // might not be right
39784 }
39785 } else {
39786 for (k in expect)
39787 keys.push(k);
39788
39789 for (; i < keys.length; i++) {
39790 if (Object.prototype.hasOwnProperty.call(input, k = keys[i])) {
39791 if (!(tmp = input[k]) || typeof tmp !== 'object') out[k] = tmp;
39792 else out[k] = sort(tmp, expect[k]);
39793 }
39794 }
39795
39796 for (k in input) {
39797 if (!out.hasOwnProperty(k)) {
39798 out[k] = input[k]; // expect didnt have
39799 }
39800 }
39801 }
39802
39803 return out;
39804 }
39805
39806 function circular() {
39807 var cache = new Set;
39808 return function print(key, val) {
39809 if (val === void 0) return '[__VOID__]';
39810 if (typeof val === 'number' && val !== val) return '[__NAN__]';
39811 if (typeof val === 'bigint') return val.toString();
39812 if (!val || typeof val !== 'object') return val;
39813 if (cache.has(val)) return '[Circular]';
39814 cache.add(val); return val;
39815 }
39816 }
39817
39818 function stringify(input) {
39819 return JSON.stringify(input, circular(), 2).replace(/"\[__NAN__\]"/g, 'NaN').replace(/"\[__VOID__\]"/g, 'undefined');
39820 }
39821
39822 function compare(input, expect) {
39823 if (Array.isArray(expect) && Array.isArray(input)) return arrays(input, expect);
39824 if (expect instanceof RegExp) return chars(''+input, ''+expect);
39825
39826 let isA = input && typeof input == 'object';
39827 let isB = expect && typeof expect == 'object';
39828
39829 if (isA && isB) input = sort(input, expect);
39830 if (isB) expect = stringify(expect);
39831 if (isA) input = stringify(input);
39832
39833 if (expect && typeof expect == 'object') {
39834 input = stringify(sort(input, expect));
39835 expect = stringify(expect);
39836 }
39837
39838 isA = typeof input == 'string';
39839 isB = typeof expect == 'string';
39840
39841 if (isA && /\r?\n/.test(input)) return lines(input, ''+expect);
39842 if (isB && /\r?\n/.test(expect)) return lines(''+input, expect);
39843 if (isA && isB) return chars(input, expect);
39844
39845 return direct(input, expect);
39846 }
39847
39848
39849 /***/ }),
39850
39851 /***/ "../node_modules/uvu/node_modules/kleur/index.mjs":
39852 /*!********************************************************!*\
39853 !*** ../node_modules/uvu/node_modules/kleur/index.mjs ***!
39854 \********************************************************/
39855 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39856
39857 "use strict";
39858 __webpack_require__.r(__webpack_exports__);
39859 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39860 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
39861 /* harmony export */ });
39862
39863
39864 let FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY=true;
39865 if (typeof process !== 'undefined') {
39866 ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});
39867 isTTY = process.stdout && process.stdout.isTTY;
39868 }
39869
39870 const $ = {
39871 enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== 'dumb' && (
39872 FORCE_COLOR != null && FORCE_COLOR !== '0' || isTTY
39873 ),
39874
39875 // modifiers
39876 reset: init(0, 0),
39877 bold: init(1, 22),
39878 dim: init(2, 22),
39879 italic: init(3, 23),
39880 underline: init(4, 24),
39881 inverse: init(7, 27),
39882 hidden: init(8, 28),
39883 strikethrough: init(9, 29),
39884
39885 // colors
39886 black: init(30, 39),
39887 red: init(31, 39),
39888 green: init(32, 39),
39889 yellow: init(33, 39),
39890 blue: init(34, 39),
39891 magenta: init(35, 39),
39892 cyan: init(36, 39),
39893 white: init(37, 39),
39894 gray: init(90, 39),
39895 grey: init(90, 39),
39896
39897 // background colors
39898 bgBlack: init(40, 49),
39899 bgRed: init(41, 49),
39900 bgGreen: init(42, 49),
39901 bgYellow: init(43, 49),
39902 bgBlue: init(44, 49),
39903 bgMagenta: init(45, 49),
39904 bgCyan: init(46, 49),
39905 bgWhite: init(47, 49)
39906 };
39907
39908 function run(arr, str) {
39909 let i=0, tmp, beg='', end='';
39910 for (; i < arr.length; i++) {
39911 tmp = arr[i];
39912 beg += tmp.open;
39913 end += tmp.close;
39914 if (!!~str.indexOf(tmp.close)) {
39915 str = str.replace(tmp.rgx, tmp.close + tmp.open);
39916 }
39917 }
39918 return beg + str + end;
39919 }
39920
39921 function chain(has, keys) {
39922 let ctx = { has, keys };
39923
39924 ctx.reset = $.reset.bind(ctx);
39925 ctx.bold = $.bold.bind(ctx);
39926 ctx.dim = $.dim.bind(ctx);
39927 ctx.italic = $.italic.bind(ctx);
39928 ctx.underline = $.underline.bind(ctx);
39929 ctx.inverse = $.inverse.bind(ctx);
39930 ctx.hidden = $.hidden.bind(ctx);
39931 ctx.strikethrough = $.strikethrough.bind(ctx);
39932
39933 ctx.black = $.black.bind(ctx);
39934 ctx.red = $.red.bind(ctx);
39935 ctx.green = $.green.bind(ctx);
39936 ctx.yellow = $.yellow.bind(ctx);
39937 ctx.blue = $.blue.bind(ctx);
39938 ctx.magenta = $.magenta.bind(ctx);
39939 ctx.cyan = $.cyan.bind(ctx);
39940 ctx.white = $.white.bind(ctx);
39941 ctx.gray = $.gray.bind(ctx);
39942 ctx.grey = $.grey.bind(ctx);
39943
39944 ctx.bgBlack = $.bgBlack.bind(ctx);
39945 ctx.bgRed = $.bgRed.bind(ctx);
39946 ctx.bgGreen = $.bgGreen.bind(ctx);
39947 ctx.bgYellow = $.bgYellow.bind(ctx);
39948 ctx.bgBlue = $.bgBlue.bind(ctx);
39949 ctx.bgMagenta = $.bgMagenta.bind(ctx);
39950 ctx.bgCyan = $.bgCyan.bind(ctx);
39951 ctx.bgWhite = $.bgWhite.bind(ctx);
39952
39953 return ctx;
39954 }
39955
39956 function init(open, close) {
39957 let blk = {
39958 open: `\x1b[${open}m`,
39959 close: `\x1b[${close}m`,
39960 rgx: new RegExp(`\\x1b\\[${close}m`, 'g')
39961 };
39962 return function (txt) {
39963 if (this !== void 0 && this.has !== void 0) {
39964 !!~this.has.indexOf(open) || (this.has.push(open),this.keys.push(blk));
39965 return txt === void 0 ? this : $.enabled ? run(this.keys, txt+'') : txt+'';
39966 }
39967 return txt === void 0 ? chain([open], [blk]) : $.enabled ? run([blk], txt+'') : txt+'';
39968 };
39969 }
39970
39971 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ($);
39972
39973
39974 /***/ }),
39975
39976 /***/ "../node_modules/vfile-message/lib/index.js":
39977 /*!**************************************************!*\
39978 !*** ../node_modules/vfile-message/lib/index.js ***!
39979 \**************************************************/
39980 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39981
39982 "use strict";
39983 __webpack_require__.r(__webpack_exports__);
39984 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39985 /* harmony export */ VFileMessage: () => (/* binding */ VFileMessage)
39986 /* harmony export */ });
39987 /* 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");
39988 /**
39989 * @typedef {import('unist').Node} Node
39990 * @typedef {import('unist').Position} Position
39991 * @typedef {import('unist').Point} Point
39992 * @typedef {object & {type: string, position?: Position | undefined}} NodeLike
39993 */
39994
39995
39996
39997 /**
39998 * Message.
39999 */
40000 class VFileMessage extends Error {
40001 /**
40002 * Create a message for `reason` at `place` from `origin`.
40003 *
40004 * When an error is passed in as `reason`, the `stack` is copied.
40005 *
40006 * @param {string | Error | VFileMessage} reason
40007 * Reason for message, uses the stack and message of the error if given.
40008 *
40009 * > 👉 **Note**: you should use markdown.
40010 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40011 * Place in file where the message occurred.
40012 * @param {string | null | undefined} [origin]
40013 * Place in code where the message originates (example:
40014 * `'my-package:my-rule'` or `'my-rule'`).
40015 * @returns
40016 * Instance of `VFileMessage`.
40017 */
40018 // To do: next major: expose `undefined` everywhere instead of `null`.
40019 constructor(reason, place, origin) {
40020 /** @type {[string | null, string | null]} */
40021 const parts = [null, null]
40022 /** @type {Position} */
40023 let position = {
40024 // @ts-expect-error: we always follows the structure of `position`.
40025 start: {line: null, column: null},
40026 // @ts-expect-error: "
40027 end: {line: null, column: null}
40028 }
40029
40030 super()
40031
40032 if (typeof place === 'string') {
40033 origin = place
40034 place = undefined
40035 }
40036
40037 if (typeof origin === 'string') {
40038 const index = origin.indexOf(':')
40039
40040 if (index === -1) {
40041 parts[1] = origin
40042 } else {
40043 parts[0] = origin.slice(0, index)
40044 parts[1] = origin.slice(index + 1)
40045 }
40046 }
40047
40048 if (place) {
40049 // Node.
40050 if ('type' in place || 'position' in place) {
40051 if (place.position) {
40052 // To do: next major: deep clone.
40053 // @ts-expect-error: looks like a position.
40054 position = place.position
40055 }
40056 }
40057 // Position.
40058 else if ('start' in place || 'end' in place) {
40059 // @ts-expect-error: looks like a position.
40060 // To do: next major: deep clone.
40061 position = place
40062 }
40063 // Point.
40064 else if ('line' in place || 'column' in place) {
40065 // To do: next major: deep clone.
40066 position.start = place
40067 }
40068 }
40069
40070 // Fields from `Error`.
40071 /**
40072 * Serialized positional info of error.
40073 *
40074 * On normal errors, this would be something like `ParseError`, buit in
40075 * `VFile` messages we use this space to show where an error happened.
40076 */
40077 this.name = (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_0__.stringifyPosition)(place) || '1:1'
40078
40079 /**
40080 * Reason for message.
40081 *
40082 * @type {string}
40083 */
40084 this.message = typeof reason === 'object' ? reason.message : reason
40085
40086 /**
40087 * Stack of message.
40088 *
40089 * This is used by normal errors to show where something happened in
40090 * programming code, irrelevant for `VFile` messages,
40091 *
40092 * @type {string}
40093 */
40094 this.stack = ''
40095
40096 if (typeof reason === 'object' && reason.stack) {
40097 this.stack = reason.stack
40098 }
40099
40100 /**
40101 * Reason for message.
40102 *
40103 * > 👉 **Note**: you should use markdown.
40104 *
40105 * @type {string}
40106 */
40107 this.reason = this.message
40108
40109 /* eslint-disable no-unused-expressions */
40110 /**
40111 * State of problem.
40112 *
40113 * * `true` — marks associated file as no longer processable (error)
40114 * * `false` — necessitates a (potential) change (warning)
40115 * * `null | undefined` — for things that might not need changing (info)
40116 *
40117 * @type {boolean | null | undefined}
40118 */
40119 this.fatal
40120
40121 /**
40122 * Starting line of error.
40123 *
40124 * @type {number | null}
40125 */
40126 this.line = position.start.line
40127
40128 /**
40129 * Starting column of error.
40130 *
40131 * @type {number | null}
40132 */
40133 this.column = position.start.column
40134
40135 /**
40136 * Full unist position.
40137 *
40138 * @type {Position | null}
40139 */
40140 this.position = position
40141
40142 /**
40143 * Namespace of message (example: `'my-package'`).
40144 *
40145 * @type {string | null}
40146 */
40147 this.source = parts[0]
40148
40149 /**
40150 * Category of message (example: `'my-rule'`).
40151 *
40152 * @type {string | null}
40153 */
40154 this.ruleId = parts[1]
40155
40156 /**
40157 * Path of a file (used throughout the `VFile` ecosystem).
40158 *
40159 * @type {string | null}
40160 */
40161 this.file
40162
40163 // The following fields are “well known”.
40164 // Not standard.
40165 // Feel free to add other non-standard fields to your messages.
40166
40167 /**
40168 * Specify the source value that’s being reported, which is deemed
40169 * incorrect.
40170 *
40171 * @type {string | null}
40172 */
40173 this.actual
40174
40175 /**
40176 * Suggest acceptable values that can be used instead of `actual`.
40177 *
40178 * @type {Array<string> | null}
40179 */
40180 this.expected
40181
40182 /**
40183 * Link to docs for the message.
40184 *
40185 * > 👉 **Note**: this must be an absolute URL that can be passed as `x`
40186 * > to `new URL(x)`.
40187 *
40188 * @type {string | null}
40189 */
40190 this.url
40191
40192 /**
40193 * Long form description of the message (you should use markdown).
40194 *
40195 * @type {string | null}
40196 */
40197 this.note
40198 /* eslint-enable no-unused-expressions */
40199 }
40200 }
40201
40202 VFileMessage.prototype.file = ''
40203 VFileMessage.prototype.name = ''
40204 VFileMessage.prototype.reason = ''
40205 VFileMessage.prototype.message = ''
40206 VFileMessage.prototype.stack = ''
40207 VFileMessage.prototype.fatal = null
40208 VFileMessage.prototype.column = null
40209 VFileMessage.prototype.line = null
40210 VFileMessage.prototype.source = null
40211 VFileMessage.prototype.ruleId = null
40212 VFileMessage.prototype.position = null
40213
40214
40215 /***/ }),
40216
40217 /***/ "../node_modules/vfile/lib/index.js":
40218 /*!******************************************!*\
40219 !*** ../node_modules/vfile/lib/index.js ***!
40220 \******************************************/
40221 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40222
40223 "use strict";
40224 __webpack_require__.r(__webpack_exports__);
40225 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40226 /* harmony export */ VFile: () => (/* binding */ VFile)
40227 /* harmony export */ });
40228 /* harmony import */ var is_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-buffer */ "../node_modules/is-buffer/index.js");
40229 /* harmony import */ var vfile_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile-message */ "../node_modules/vfile-message/lib/index.js");
40230 /* harmony import */ var _minpath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./minpath.js */ "../node_modules/vfile/lib/minpath.browser.js");
40231 /* harmony import */ var _minproc_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minproc.js */ "../node_modules/vfile/lib/minproc.browser.js");
40232 /* harmony import */ var _minurl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./minurl.js */ "../node_modules/vfile/lib/minurl.shared.js");
40233 /* harmony import */ var _minurl_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minurl.js */ "../node_modules/vfile/lib/minurl.browser.js");
40234 /**
40235 * @typedef {import('unist').Node} Node
40236 * @typedef {import('unist').Position} Position
40237 * @typedef {import('unist').Point} Point
40238 * @typedef {import('./minurl.shared.js').URL} URL
40239 * @typedef {import('../index.js').Data} Data
40240 * @typedef {import('../index.js').Value} Value
40241 */
40242
40243 /**
40244 * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike
40245 *
40246 * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding
40247 * Encodings supported by the buffer class.
40248 *
40249 * This is a copy of the types from Node, copied to prevent Node globals from
40250 * being needed.
40251 * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>
40252 *
40253 * @typedef {Options | URL | Value | VFile} Compatible
40254 * Things that can be passed to the constructor.
40255 *
40256 * @typedef VFileCoreOptions
40257 * Set multiple values.
40258 * @property {Value | null | undefined} [value]
40259 * Set `value`.
40260 * @property {string | null | undefined} [cwd]
40261 * Set `cwd`.
40262 * @property {Array<string> | null | undefined} [history]
40263 * Set `history`.
40264 * @property {URL | string | null | undefined} [path]
40265 * Set `path`.
40266 * @property {string | null | undefined} [basename]
40267 * Set `basename`.
40268 * @property {string | null | undefined} [stem]
40269 * Set `stem`.
40270 * @property {string | null | undefined} [extname]
40271 * Set `extname`.
40272 * @property {string | null | undefined} [dirname]
40273 * Set `dirname`.
40274 * @property {Data | null | undefined} [data]
40275 * Set `data`.
40276 *
40277 * @typedef Map
40278 * Raw source map.
40279 *
40280 * See:
40281 * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.
40282 * @property {number} version
40283 * Which version of the source map spec this map is following.
40284 * @property {Array<string>} sources
40285 * An array of URLs to the original source files.
40286 * @property {Array<string>} names
40287 * An array of identifiers which can be referenced by individual mappings.
40288 * @property {string | undefined} [sourceRoot]
40289 * The URL root from which all sources are relative.
40290 * @property {Array<string> | undefined} [sourcesContent]
40291 * An array of contents of the original source files.
40292 * @property {string} mappings
40293 * A string of base64 VLQs which contain the actual mappings.
40294 * @property {string} file
40295 * The generated file this source map is associated with.
40296 *
40297 * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options
40298 * Configuration.
40299 *
40300 * A bunch of keys that will be shallow copied over to the new file.
40301 *
40302 * @typedef {Record<string, unknown>} ReporterSettings
40303 * Configuration for reporters.
40304 */
40305
40306 /**
40307 * @template {ReporterSettings} Settings
40308 * Options type.
40309 * @callback Reporter
40310 * Type for a reporter.
40311 * @param {Array<VFile>} files
40312 * Files to report.
40313 * @param {Settings} options
40314 * Configuration.
40315 * @returns {string}
40316 * Report.
40317 */
40318
40319
40320
40321
40322
40323
40324
40325 /**
40326 * Order of setting (least specific to most), we need this because otherwise
40327 * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a
40328 * stem can be set.
40329 *
40330 * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}
40331 */
40332 const order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']
40333
40334 class VFile {
40335 /**
40336 * Create a new virtual file.
40337 *
40338 * `options` is treated as:
40339 *
40340 * * `string` or `Buffer` — `{value: options}`
40341 * * `URL` — `{path: options}`
40342 * * `VFile` — shallow copies its data over to the new file
40343 * * `object` — all fields are shallow copied over to the new file
40344 *
40345 * Path related fields are set in the following order (least specific to
40346 * most specific): `history`, `path`, `basename`, `stem`, `extname`,
40347 * `dirname`.
40348 *
40349 * You cannot set `dirname` or `extname` without setting either `history`,
40350 * `path`, `basename`, or `stem` too.
40351 *
40352 * @param {Compatible | null | undefined} [value]
40353 * File value.
40354 * @returns
40355 * New instance.
40356 */
40357 constructor(value) {
40358 /** @type {Options | VFile} */
40359 let options
40360
40361 if (!value) {
40362 options = {}
40363 } else if (typeof value === 'string' || buffer(value)) {
40364 options = {value}
40365 } else if ((0,_minurl_js__WEBPACK_IMPORTED_MODULE_1__.isUrl)(value)) {
40366 options = {path: value}
40367 } else {
40368 options = value
40369 }
40370
40371 /**
40372 * Place to store custom information (default: `{}`).
40373 *
40374 * It’s OK to store custom data directly on the file but moving it to
40375 * `data` is recommended.
40376 *
40377 * @type {Data}
40378 */
40379 this.data = {}
40380
40381 /**
40382 * List of messages associated with the file.
40383 *
40384 * @type {Array<VFileMessage>}
40385 */
40386 this.messages = []
40387
40388 /**
40389 * List of filepaths the file moved between.
40390 *
40391 * The first is the original path and the last is the current path.
40392 *
40393 * @type {Array<string>}
40394 */
40395 this.history = []
40396
40397 /**
40398 * Base of `path` (default: `process.cwd()` or `'/'` in browsers).
40399 *
40400 * @type {string}
40401 */
40402 this.cwd = _minproc_js__WEBPACK_IMPORTED_MODULE_2__.proc.cwd()
40403
40404 /* eslint-disable no-unused-expressions */
40405 /**
40406 * Raw value.
40407 *
40408 * @type {Value}
40409 */
40410 this.value
40411
40412 // The below are non-standard, they are “well-known”.
40413 // As in, used in several tools.
40414
40415 /**
40416 * Whether a file was saved to disk.
40417 *
40418 * This is used by vfile reporters.
40419 *
40420 * @type {boolean}
40421 */
40422 this.stored
40423
40424 /**
40425 * Custom, non-string, compiled, representation.
40426 *
40427 * This is used by unified to store non-string results.
40428 * One example is when turning markdown into React nodes.
40429 *
40430 * @type {unknown}
40431 */
40432 this.result
40433
40434 /**
40435 * Source map.
40436 *
40437 * This type is equivalent to the `RawSourceMap` type from the `source-map`
40438 * module.
40439 *
40440 * @type {Map | null | undefined}
40441 */
40442 this.map
40443 /* eslint-enable no-unused-expressions */
40444
40445 // Set path related properties in the correct order.
40446 let index = -1
40447
40448 while (++index < order.length) {
40449 const prop = order[index]
40450
40451 // Note: we specifically use `in` instead of `hasOwnProperty` to accept
40452 // `vfile`s too.
40453 if (
40454 prop in options &&
40455 options[prop] !== undefined &&
40456 options[prop] !== null
40457 ) {
40458 // @ts-expect-error: TS doesn’t understand basic reality.
40459 this[prop] = prop === 'history' ? [...options[prop]] : options[prop]
40460 }
40461 }
40462
40463 /** @type {string} */
40464 let prop
40465
40466 // Set non-path related properties.
40467 for (prop in options) {
40468 // @ts-expect-error: fine to set other things.
40469 if (!order.includes(prop)) {
40470 // @ts-expect-error: fine to set other things.
40471 this[prop] = options[prop]
40472 }
40473 }
40474 }
40475
40476 /**
40477 * Get the full path (example: `'~/index.min.js'`).
40478 *
40479 * @returns {string}
40480 */
40481 get path() {
40482 return this.history[this.history.length - 1]
40483 }
40484
40485 /**
40486 * Set the full path (example: `'~/index.min.js'`).
40487 *
40488 * Cannot be nullified.
40489 * You can set a file URL (a `URL` object with a `file:` protocol) which will
40490 * be turned into a path with `url.fileURLToPath`.
40491 *
40492 * @param {string | URL} path
40493 */
40494 set path(path) {
40495 if ((0,_minurl_js__WEBPACK_IMPORTED_MODULE_1__.isUrl)(path)) {
40496 path = (0,_minurl_js__WEBPACK_IMPORTED_MODULE_3__.urlToPath)(path)
40497 }
40498
40499 assertNonEmpty(path, 'path')
40500
40501 if (this.path !== path) {
40502 this.history.push(path)
40503 }
40504 }
40505
40506 /**
40507 * Get the parent path (example: `'~'`).
40508 */
40509 get dirname() {
40510 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.dirname(this.path) : undefined
40511 }
40512
40513 /**
40514 * Set the parent path (example: `'~'`).
40515 *
40516 * Cannot be set if there’s no `path` yet.
40517 */
40518 set dirname(dirname) {
40519 assertPath(this.basename, 'dirname')
40520 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(dirname || '', this.basename)
40521 }
40522
40523 /**
40524 * Get the basename (including extname) (example: `'index.min.js'`).
40525 */
40526 get basename() {
40527 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.basename(this.path) : undefined
40528 }
40529
40530 /**
40531 * Set basename (including extname) (`'index.min.js'`).
40532 *
40533 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40534 * on windows).
40535 * Cannot be nullified (use `file.path = file.dirname` instead).
40536 */
40537 set basename(basename) {
40538 assertNonEmpty(basename, 'basename')
40539 assertPart(basename, 'basename')
40540 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname || '', basename)
40541 }
40542
40543 /**
40544 * Get the extname (including dot) (example: `'.js'`).
40545 */
40546 get extname() {
40547 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.extname(this.path) : undefined
40548 }
40549
40550 /**
40551 * Set the extname (including dot) (example: `'.js'`).
40552 *
40553 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40554 * on windows).
40555 * Cannot be set if there’s no `path` yet.
40556 */
40557 set extname(extname) {
40558 assertPart(extname, 'extname')
40559 assertPath(this.dirname, 'extname')
40560
40561 if (extname) {
40562 if (extname.charCodeAt(0) !== 46 /* `.` */) {
40563 throw new Error('`extname` must start with `.`')
40564 }
40565
40566 if (extname.includes('.', 1)) {
40567 throw new Error('`extname` cannot contain multiple dots')
40568 }
40569 }
40570
40571 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname, this.stem + (extname || ''))
40572 }
40573
40574 /**
40575 * Get the stem (basename w/o extname) (example: `'index.min'`).
40576 */
40577 get stem() {
40578 return typeof this.path === 'string'
40579 ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.basename(this.path, this.extname)
40580 : undefined
40581 }
40582
40583 /**
40584 * Set the stem (basename w/o extname) (example: `'index.min'`).
40585 *
40586 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40587 * on windows).
40588 * Cannot be nullified (use `file.path = file.dirname` instead).
40589 */
40590 set stem(stem) {
40591 assertNonEmpty(stem, 'stem')
40592 assertPart(stem, 'stem')
40593 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname || '', stem + (this.extname || ''))
40594 }
40595
40596 /**
40597 * Serialize the file.
40598 *
40599 * @param {BufferEncoding | null | undefined} [encoding='utf8']
40600 * Character encoding to understand `value` as when it’s a `Buffer`
40601 * (default: `'utf8'`).
40602 * @returns {string}
40603 * Serialized file.
40604 */
40605 toString(encoding) {
40606 return (this.value || '').toString(encoding || undefined)
40607 }
40608
40609 /**
40610 * Create a warning message associated with the file.
40611 *
40612 * Its `fatal` is set to `false` and `file` is set to the current file path.
40613 * Its added to `file.messages`.
40614 *
40615 * @param {string | Error | VFileMessage} reason
40616 * Reason for message, uses the stack and message of the error if given.
40617 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40618 * Place in file where the message occurred.
40619 * @param {string | null | undefined} [origin]
40620 * Place in code where the message originates (example:
40621 * `'my-package:my-rule'` or `'my-rule'`).
40622 * @returns {VFileMessage}
40623 * Message.
40624 */
40625 message(reason, place, origin) {
40626 const message = new vfile_message__WEBPACK_IMPORTED_MODULE_5__.VFileMessage(reason, place, origin)
40627
40628 if (this.path) {
40629 message.name = this.path + ':' + message.name
40630 message.file = this.path
40631 }
40632
40633 message.fatal = false
40634
40635 this.messages.push(message)
40636
40637 return message
40638 }
40639
40640 /**
40641 * Create an info message associated with the file.
40642 *
40643 * Its `fatal` is set to `null` and `file` is set to the current file path.
40644 * Its added to `file.messages`.
40645 *
40646 * @param {string | Error | VFileMessage} reason
40647 * Reason for message, uses the stack and message of the error if given.
40648 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40649 * Place in file where the message occurred.
40650 * @param {string | null | undefined} [origin]
40651 * Place in code where the message originates (example:
40652 * `'my-package:my-rule'` or `'my-rule'`).
40653 * @returns {VFileMessage}
40654 * Message.
40655 */
40656 info(reason, place, origin) {
40657 const message = this.message(reason, place, origin)
40658
40659 message.fatal = null
40660
40661 return message
40662 }
40663
40664 /**
40665 * Create a fatal error associated with the file.
40666 *
40667 * Its `fatal` is set to `true` and `file` is set to the current file path.
40668 * Its added to `file.messages`.
40669 *
40670 * > 👉 **Note**: a fatal error means that a file is no longer processable.
40671 *
40672 * @param {string | Error | VFileMessage} reason
40673 * Reason for message, uses the stack and message of the error if given.
40674 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40675 * Place in file where the message occurred.
40676 * @param {string | null | undefined} [origin]
40677 * Place in code where the message originates (example:
40678 * `'my-package:my-rule'` or `'my-rule'`).
40679 * @returns {never}
40680 * Message.
40681 * @throws {VFileMessage}
40682 * Message.
40683 */
40684 fail(reason, place, origin) {
40685 const message = this.message(reason, place, origin)
40686
40687 message.fatal = true
40688
40689 throw message
40690 }
40691 }
40692
40693 /**
40694 * Assert that `part` is not a path (as in, does not contain `path.sep`).
40695 *
40696 * @param {string | null | undefined} part
40697 * File path part.
40698 * @param {string} name
40699 * Part name.
40700 * @returns {void}
40701 * Nothing.
40702 */
40703 function assertPart(part, name) {
40704 if (part && part.includes(_minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.sep)) {
40705 throw new Error(
40706 '`' + name + '` cannot be a path: did not expect `' + _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.sep + '`'
40707 )
40708 }
40709 }
40710
40711 /**
40712 * Assert that `part` is not empty.
40713 *
40714 * @param {string | undefined} part
40715 * Thing.
40716 * @param {string} name
40717 * Part name.
40718 * @returns {asserts part is string}
40719 * Nothing.
40720 */
40721 function assertNonEmpty(part, name) {
40722 if (!part) {
40723 throw new Error('`' + name + '` cannot be empty')
40724 }
40725 }
40726
40727 /**
40728 * Assert `path` exists.
40729 *
40730 * @param {string | undefined} path
40731 * Path.
40732 * @param {string} name
40733 * Dependency name.
40734 * @returns {asserts path is string}
40735 * Nothing.
40736 */
40737 function assertPath(path, name) {
40738 if (!path) {
40739 throw new Error('Setting `' + name + '` requires `path` to be set too')
40740 }
40741 }
40742
40743 /**
40744 * Assert `value` is a buffer.
40745 *
40746 * @param {unknown} value
40747 * thing.
40748 * @returns {value is Buffer}
40749 * Whether `value` is a Node.js buffer.
40750 */
40751 function buffer(value) {
40752 return is_buffer__WEBPACK_IMPORTED_MODULE_0__(value)
40753 }
40754
40755
40756 /***/ }),
40757
40758 /***/ "../node_modules/vfile/lib/minpath.browser.js":
40759 /*!****************************************************!*\
40760 !*** ../node_modules/vfile/lib/minpath.browser.js ***!
40761 \****************************************************/
40762 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40763
40764 "use strict";
40765 __webpack_require__.r(__webpack_exports__);
40766 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40767 /* harmony export */ path: () => (/* binding */ path)
40768 /* harmony export */ });
40769 // A derivative work based on:
40770 // <https://github.com/browserify/path-browserify>.
40771 // Which is licensed:
40772 //
40773 // MIT License
40774 //
40775 // Copyright (c) 2013 James Halliday
40776 //
40777 // Permission is hereby granted, free of charge, to any person obtaining a copy of
40778 // this software and associated documentation files (the "Software"), to deal in
40779 // the Software without restriction, including without limitation the rights to
40780 // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
40781 // the Software, and to permit persons to whom the Software is furnished to do so,
40782 // subject to the following conditions:
40783 //
40784 // The above copyright notice and this permission notice shall be included in all
40785 // copies or substantial portions of the Software.
40786 //
40787 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
40788 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
40789 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
40790 // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
40791 // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
40792 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
40793 // A derivative work based on:
40794 //
40795 // Parts of that are extracted from Node’s internal `path` module:
40796 // <https://github.com/nodejs/node/blob/master/lib/path.js>.
40797 // Which is licensed:
40798 //
40799 // Copyright Joyent, Inc. and other Node contributors.
40800 //
40801 // Permission is hereby granted, free of charge, to any person obtaining a
40802 // copy of this software and associated documentation files (the
40803 // "Software"), to deal in the Software without restriction, including
40804 // without limitation the rights to use, copy, modify, merge, publish,
40805 // distribute, sublicense, and/or sell copies of the Software, and to permit
40806 // persons to whom the Software is furnished to do so, subject to the
40807 // following conditions:
40808 //
40809 // The above copyright notice and this permission notice shall be included
40810 // in all copies or substantial portions of the Software.
40811 //
40812 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
40813 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
40814 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
40815 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
40816 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
40817 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
40818 // USE OR OTHER DEALINGS IN THE SOFTWARE.
40819
40820 const path = {basename, dirname, extname, join, sep: '/'}
40821
40822 /* eslint-disable max-depth, complexity */
40823
40824 /**
40825 * Get the basename from a path.
40826 *
40827 * @param {string} path
40828 * File path.
40829 * @param {string | undefined} [ext]
40830 * Extension to strip.
40831 * @returns {string}
40832 * Stem or basename.
40833 */
40834 function basename(path, ext) {
40835 if (ext !== undefined && typeof ext !== 'string') {
40836 throw new TypeError('"ext" argument must be a string')
40837 }
40838
40839 assertPath(path)
40840 let start = 0
40841 let end = -1
40842 let index = path.length
40843 /** @type {boolean | undefined} */
40844 let seenNonSlash
40845
40846 if (ext === undefined || ext.length === 0 || ext.length > path.length) {
40847 while (index--) {
40848 if (path.charCodeAt(index) === 47 /* `/` */) {
40849 // If we reached a path separator that was not part of a set of path
40850 // separators at the end of the string, stop now.
40851 if (seenNonSlash) {
40852 start = index + 1
40853 break
40854 }
40855 } else if (end < 0) {
40856 // We saw the first non-path separator, mark this as the end of our
40857 // path component.
40858 seenNonSlash = true
40859 end = index + 1
40860 }
40861 }
40862
40863 return end < 0 ? '' : path.slice(start, end)
40864 }
40865
40866 if (ext === path) {
40867 return ''
40868 }
40869
40870 let firstNonSlashEnd = -1
40871 let extIndex = ext.length - 1
40872
40873 while (index--) {
40874 if (path.charCodeAt(index) === 47 /* `/` */) {
40875 // If we reached a path separator that was not part of a set of path
40876 // separators at the end of the string, stop now.
40877 if (seenNonSlash) {
40878 start = index + 1
40879 break
40880 }
40881 } else {
40882 if (firstNonSlashEnd < 0) {
40883 // We saw the first non-path separator, remember this index in case
40884 // we need it if the extension ends up not matching.
40885 seenNonSlash = true
40886 firstNonSlashEnd = index + 1
40887 }
40888
40889 if (extIndex > -1) {
40890 // Try to match the explicit extension.
40891 if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {
40892 if (extIndex < 0) {
40893 // We matched the extension, so mark this as the end of our path
40894 // component
40895 end = index
40896 }
40897 } else {
40898 // Extension does not match, so our result is the entire path
40899 // component
40900 extIndex = -1
40901 end = firstNonSlashEnd
40902 }
40903 }
40904 }
40905 }
40906
40907 if (start === end) {
40908 end = firstNonSlashEnd
40909 } else if (end < 0) {
40910 end = path.length
40911 }
40912
40913 return path.slice(start, end)
40914 }
40915
40916 /**
40917 * Get the dirname from a path.
40918 *
40919 * @param {string} path
40920 * File path.
40921 * @returns {string}
40922 * File path.
40923 */
40924 function dirname(path) {
40925 assertPath(path)
40926
40927 if (path.length === 0) {
40928 return '.'
40929 }
40930
40931 let end = -1
40932 let index = path.length
40933 /** @type {boolean | undefined} */
40934 let unmatchedSlash
40935
40936 // Prefix `--` is important to not run on `0`.
40937 while (--index) {
40938 if (path.charCodeAt(index) === 47 /* `/` */) {
40939 if (unmatchedSlash) {
40940 end = index
40941 break
40942 }
40943 } else if (!unmatchedSlash) {
40944 // We saw the first non-path separator
40945 unmatchedSlash = true
40946 }
40947 }
40948
40949 return end < 0
40950 ? path.charCodeAt(0) === 47 /* `/` */
40951 ? '/'
40952 : '.'
40953 : end === 1 && path.charCodeAt(0) === 47 /* `/` */
40954 ? '//'
40955 : path.slice(0, end)
40956 }
40957
40958 /**
40959 * Get an extname from a path.
40960 *
40961 * @param {string} path
40962 * File path.
40963 * @returns {string}
40964 * Extname.
40965 */
40966 function extname(path) {
40967 assertPath(path)
40968
40969 let index = path.length
40970
40971 let end = -1
40972 let startPart = 0
40973 let startDot = -1
40974 // Track the state of characters (if any) we see before our first dot and
40975 // after any path separator we find.
40976 let preDotState = 0
40977 /** @type {boolean | undefined} */
40978 let unmatchedSlash
40979
40980 while (index--) {
40981 const code = path.charCodeAt(index)
40982
40983 if (code === 47 /* `/` */) {
40984 // If we reached a path separator that was not part of a set of path
40985 // separators at the end of the string, stop now.
40986 if (unmatchedSlash) {
40987 startPart = index + 1
40988 break
40989 }
40990
40991 continue
40992 }
40993
40994 if (end < 0) {
40995 // We saw the first non-path separator, mark this as the end of our
40996 // extension.
40997 unmatchedSlash = true
40998 end = index + 1
40999 }
41000
41001 if (code === 46 /* `.` */) {
41002 // If this is our first dot, mark it as the start of our extension.
41003 if (startDot < 0) {
41004 startDot = index
41005 } else if (preDotState !== 1) {
41006 preDotState = 1
41007 }
41008 } else if (startDot > -1) {
41009 // We saw a non-dot and non-path separator before our dot, so we should
41010 // have a good chance at having a non-empty extension.
41011 preDotState = -1
41012 }
41013 }
41014
41015 if (
41016 startDot < 0 ||
41017 end < 0 ||
41018 // We saw a non-dot character immediately before the dot.
41019 preDotState === 0 ||
41020 // The (right-most) trimmed path component is exactly `..`.
41021 (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)
41022 ) {
41023 return ''
41024 }
41025
41026 return path.slice(startDot, end)
41027 }
41028
41029 /**
41030 * Join segments from a path.
41031 *
41032 * @param {Array<string>} segments
41033 * Path segments.
41034 * @returns {string}
41035 * File path.
41036 */
41037 function join(...segments) {
41038 let index = -1
41039 /** @type {string | undefined} */
41040 let joined
41041
41042 while (++index < segments.length) {
41043 assertPath(segments[index])
41044
41045 if (segments[index]) {
41046 joined =
41047 joined === undefined ? segments[index] : joined + '/' + segments[index]
41048 }
41049 }
41050
41051 return joined === undefined ? '.' : normalize(joined)
41052 }
41053
41054 /**
41055 * Normalize a basic file path.
41056 *
41057 * @param {string} path
41058 * File path.
41059 * @returns {string}
41060 * File path.
41061 */
41062 // Note: `normalize` is not exposed as `path.normalize`, so some code is
41063 // manually removed from it.
41064 function normalize(path) {
41065 assertPath(path)
41066
41067 const absolute = path.charCodeAt(0) === 47 /* `/` */
41068
41069 // Normalize the path according to POSIX rules.
41070 let value = normalizeString(path, !absolute)
41071
41072 if (value.length === 0 && !absolute) {
41073 value = '.'
41074 }
41075
41076 if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {
41077 value += '/'
41078 }
41079
41080 return absolute ? '/' + value : value
41081 }
41082
41083 /**
41084 * Resolve `.` and `..` elements in a path with directory names.
41085 *
41086 * @param {string} path
41087 * File path.
41088 * @param {boolean} allowAboveRoot
41089 * Whether `..` can move above root.
41090 * @returns {string}
41091 * File path.
41092 */
41093 function normalizeString(path, allowAboveRoot) {
41094 let result = ''
41095 let lastSegmentLength = 0
41096 let lastSlash = -1
41097 let dots = 0
41098 let index = -1
41099 /** @type {number | undefined} */
41100 let code
41101 /** @type {number} */
41102 let lastSlashIndex
41103
41104 while (++index <= path.length) {
41105 if (index < path.length) {
41106 code = path.charCodeAt(index)
41107 } else if (code === 47 /* `/` */) {
41108 break
41109 } else {
41110 code = 47 /* `/` */
41111 }
41112
41113 if (code === 47 /* `/` */) {
41114 if (lastSlash === index - 1 || dots === 1) {
41115 // Empty.
41116 } else if (lastSlash !== index - 1 && dots === 2) {
41117 if (
41118 result.length < 2 ||
41119 lastSegmentLength !== 2 ||
41120 result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||
41121 result.charCodeAt(result.length - 2) !== 46 /* `.` */
41122 ) {
41123 if (result.length > 2) {
41124 lastSlashIndex = result.lastIndexOf('/')
41125
41126 if (lastSlashIndex !== result.length - 1) {
41127 if (lastSlashIndex < 0) {
41128 result = ''
41129 lastSegmentLength = 0
41130 } else {
41131 result = result.slice(0, lastSlashIndex)
41132 lastSegmentLength = result.length - 1 - result.lastIndexOf('/')
41133 }
41134
41135 lastSlash = index
41136 dots = 0
41137 continue
41138 }
41139 } else if (result.length > 0) {
41140 result = ''
41141 lastSegmentLength = 0
41142 lastSlash = index
41143 dots = 0
41144 continue
41145 }
41146 }
41147
41148 if (allowAboveRoot) {
41149 result = result.length > 0 ? result + '/..' : '..'
41150 lastSegmentLength = 2
41151 }
41152 } else {
41153 if (result.length > 0) {
41154 result += '/' + path.slice(lastSlash + 1, index)
41155 } else {
41156 result = path.slice(lastSlash + 1, index)
41157 }
41158
41159 lastSegmentLength = index - lastSlash - 1
41160 }
41161
41162 lastSlash = index
41163 dots = 0
41164 } else if (code === 46 /* `.` */ && dots > -1) {
41165 dots++
41166 } else {
41167 dots = -1
41168 }
41169 }
41170
41171 return result
41172 }
41173
41174 /**
41175 * Make sure `path` is a string.
41176 *
41177 * @param {string} path
41178 * File path.
41179 * @returns {asserts path is string}
41180 * Nothing.
41181 */
41182 function assertPath(path) {
41183 if (typeof path !== 'string') {
41184 throw new TypeError(
41185 'Path must be a string. Received ' + JSON.stringify(path)
41186 )
41187 }
41188 }
41189
41190 /* eslint-enable max-depth, complexity */
41191
41192
41193 /***/ }),
41194
41195 /***/ "../node_modules/vfile/lib/minproc.browser.js":
41196 /*!****************************************************!*\
41197 !*** ../node_modules/vfile/lib/minproc.browser.js ***!
41198 \****************************************************/
41199 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41200
41201 "use strict";
41202 __webpack_require__.r(__webpack_exports__);
41203 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41204 /* harmony export */ proc: () => (/* binding */ proc)
41205 /* harmony export */ });
41206 // Somewhat based on:
41207 // <https://github.com/defunctzombie/node-process/blob/master/browser.js>.
41208 // But I don’t think one tiny line of code can be copyrighted. 😅
41209 const proc = {cwd}
41210
41211 function cwd() {
41212 return '/'
41213 }
41214
41215
41216 /***/ }),
41217
41218 /***/ "../node_modules/vfile/lib/minurl.browser.js":
41219 /*!***************************************************!*\
41220 !*** ../node_modules/vfile/lib/minurl.browser.js ***!
41221 \***************************************************/
41222 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41223
41224 "use strict";
41225 __webpack_require__.r(__webpack_exports__);
41226 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41227 /* harmony export */ isUrl: () => (/* reexport safe */ _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl),
41228 /* harmony export */ urlToPath: () => (/* binding */ urlToPath)
41229 /* harmony export */ });
41230 /* harmony import */ var _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./minurl.shared.js */ "../node_modules/vfile/lib/minurl.shared.js");
41231 /// <reference lib="dom" />
41232
41233
41234
41235 // See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>
41236
41237 /**
41238 * @param {string | URL} path
41239 * File URL.
41240 * @returns {string}
41241 * File URL.
41242 */
41243 function urlToPath(path) {
41244 if (typeof path === 'string') {
41245 path = new URL(path)
41246 } else if (!(0,_minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl)(path)) {
41247 /** @type {NodeJS.ErrnoException} */
41248 const error = new TypeError(
41249 'The "path" argument must be of type string or an instance of URL. Received `' +
41250 path +
41251 '`'
41252 )
41253 error.code = 'ERR_INVALID_ARG_TYPE'
41254 throw error
41255 }
41256
41257 if (path.protocol !== 'file:') {
41258 /** @type {NodeJS.ErrnoException} */
41259 const error = new TypeError('The URL must be of scheme file')
41260 error.code = 'ERR_INVALID_URL_SCHEME'
41261 throw error
41262 }
41263
41264 return getPathFromURLPosix(path)
41265 }
41266
41267 /**
41268 * Get a path from a POSIX URL.
41269 *
41270 * @param {URL} url
41271 * URL.
41272 * @returns {string}
41273 * File path.
41274 */
41275 function getPathFromURLPosix(url) {
41276 if (url.hostname !== '') {
41277 /** @type {NodeJS.ErrnoException} */
41278 const error = new TypeError(
41279 'File URL host must be "localhost" or empty on darwin'
41280 )
41281 error.code = 'ERR_INVALID_FILE_URL_HOST'
41282 throw error
41283 }
41284
41285 const pathname = url.pathname
41286 let index = -1
41287
41288 while (++index < pathname.length) {
41289 if (
41290 pathname.charCodeAt(index) === 37 /* `%` */ &&
41291 pathname.charCodeAt(index + 1) === 50 /* `2` */
41292 ) {
41293 const third = pathname.charCodeAt(index + 2)
41294 if (third === 70 /* `F` */ || third === 102 /* `f` */) {
41295 /** @type {NodeJS.ErrnoException} */
41296 const error = new TypeError(
41297 'File URL path must not include encoded / characters'
41298 )
41299 error.code = 'ERR_INVALID_FILE_URL_PATH'
41300 throw error
41301 }
41302 }
41303 }
41304
41305 return decodeURIComponent(pathname)
41306 }
41307
41308
41309
41310
41311 /***/ }),
41312
41313 /***/ "../node_modules/vfile/lib/minurl.shared.js":
41314 /*!**************************************************!*\
41315 !*** ../node_modules/vfile/lib/minurl.shared.js ***!
41316 \**************************************************/
41317 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41318
41319 "use strict";
41320 __webpack_require__.r(__webpack_exports__);
41321 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41322 /* harmony export */ isUrl: () => (/* binding */ isUrl)
41323 /* harmony export */ });
41324 /**
41325 * @typedef URL
41326 * @property {string} hash
41327 * @property {string} host
41328 * @property {string} hostname
41329 * @property {string} href
41330 * @property {string} origin
41331 * @property {string} password
41332 * @property {string} pathname
41333 * @property {string} port
41334 * @property {string} protocol
41335 * @property {string} search
41336 * @property {any} searchParams
41337 * @property {string} username
41338 * @property {() => string} toString
41339 * @property {() => string} toJSON
41340 */
41341
41342 /**
41343 * Check if `fileUrlOrPath` looks like a URL.
41344 *
41345 * @param {unknown} fileUrlOrPath
41346 * File path or URL.
41347 * @returns {fileUrlOrPath is URL}
41348 * Whether it’s a URL.
41349 */
41350 // From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>
41351 function isUrl(fileUrlOrPath) {
41352 return (
41353 fileUrlOrPath !== null &&
41354 typeof fileUrlOrPath === 'object' &&
41355 // @ts-expect-error: indexable.
41356 fileUrlOrPath.href &&
41357 // @ts-expect-error: indexable.
41358 fileUrlOrPath.origin
41359 )
41360 }
41361
41362
41363 /***/ })
41364
41365 /******/ });
41366 /************************************************************************/
41367 /******/ // The module cache
41368 /******/ var __webpack_module_cache__ = {};
41369 /******/
41370 /******/ // The require function
41371 /******/ function __webpack_require__(moduleId) {
41372 /******/ // Check if module is in cache
41373 /******/ var cachedModule = __webpack_module_cache__[moduleId];
41374 /******/ if (cachedModule !== undefined) {
41375 /******/ return cachedModule.exports;
41376 /******/ }
41377 /******/ // Create a new module (and put it into the cache)
41378 /******/ var module = __webpack_module_cache__[moduleId] = {
41379 /******/ // no module.id needed
41380 /******/ // no module.loaded needed
41381 /******/ exports: {}
41382 /******/ };
41383 /******/
41384 /******/ // Execute the module function
41385 /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
41386 /******/
41387 /******/ // Return the exports of the module
41388 /******/ return module.exports;
41389 /******/ }
41390 /******/
41391 /************************************************************************/
41392 /******/ /* webpack/runtime/compat get default export */
41393 /******/ (() => {
41394 /******/ // getDefaultExport function for compatibility with non-harmony modules
41395 /******/ __webpack_require__.n = (module) => {
41396 /******/ var getter = module && module.__esModule ?
41397 /******/ () => (module['default']) :
41398 /******/ () => (module);
41399 /******/ __webpack_require__.d(getter, { a: getter });
41400 /******/ return getter;
41401 /******/ };
41402 /******/ })();
41403 /******/
41404 /******/ /* webpack/runtime/define property getters */
41405 /******/ (() => {
41406 /******/ // define getter functions for harmony exports
41407 /******/ __webpack_require__.d = (exports, definition) => {
41408 /******/ for(var key in definition) {
41409 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
41410 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
41411 /******/ }
41412 /******/ }
41413 /******/ };
41414 /******/ })();
41415 /******/
41416 /******/ /* webpack/runtime/hasOwnProperty shorthand */
41417 /******/ (() => {
41418 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
41419 /******/ })();
41420 /******/
41421 /******/ /* webpack/runtime/make namespace object */
41422 /******/ (() => {
41423 /******/ // define __esModule on exports
41424 /******/ __webpack_require__.r = (exports) => {
41425 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
41426 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
41427 /******/ }
41428 /******/ Object.defineProperty(exports, '__esModule', { value: true });
41429 /******/ };
41430 /******/ })();
41431 /******/
41432 /************************************************************************/
41433 var __webpack_exports__ = {};
41434 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
41435 (() => {
41436 "use strict";
41437 /*!**********************************************!*\
41438 !*** ../modules/ai/assets/js/admin/index.js ***!
41439 \**********************************************/
41440
41441
41442 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
41443 var _app = _interopRequireDefault(__webpack_require__(/*! elementor/modules/ai/assets/js/editor/app */ "../modules/ai/assets/js/editor/app.js"));
41444 // Temporary solution for exposing the AI App.
41445 window.__UNSTABLE__elementorAI = {
41446 App: _app.default
41447 };
41448 })();
41449
41450 /******/ })()
41451 ;
41452 //# sourceMappingURL=ai-admin.js.map